Bugs item #3066934, was opened at 2010-09-15 11:12
Message generated for change (Comment added) made by djbarrett
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=306693…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: category
Group: None
Status: Open
Resolution: None
Priority: 7
Private: No
Submitted By: Daniel Barrett (djbarrett)
Assigned to: xqt (xqt)
Summary: AttributeError: type object 'Timestamp' has no attribute 'st
Initial Comment:
category.py is throwing the error in the Summary. MediaWiki 1.15.4,
$ sudo python category.py move -from:"AABBCC" -to:"DD"
Traceback (most recent call last):
File "/usr/local/pywikipedia/pagegenerators.py", line 1238, in __iter__
for loaded_page in self.preload(somePages):
File "/usr/local/pywikipedia/pagegenerators.py", line 1257, in preload
pywikibot.getall(site, pagesThisSite)
File "/usr/local/pywikipedia/wikipedia.py", line 4208, in getall
_GetAll(site, pages, throttle, force).run()
File "/usr/local/pywikipedia/wikipedia.py", line 3887, in run
xml.sax.parseString(data, handler)
File "/usr/lib64/python2.4/xml/sax/__init__.py", line 49, in parseString
parser.parse(inpsrc)
File "/usr/lib64/python2.4/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib64/python2.4/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib64/python2.4/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib64/python2.4/xml/sax/expatreader.py", line 303, in end_element
self._cont_handler.endElement(name)
File "/usr/local/pywikipedia/xmlreader.py", line 202, in endElement
self.callback(entry)
File "/usr/local/pywikipedia/wikipedia.py", line 3923, in oneDone
page2._versionhistory = [(revisionId, str(Timestamp.fromtimestampformat(timestamp)),
username, entry.comment)]
File "/usr/local/pywikipedia/pywikibot/__init__.py", line 47, in
fromtimestampformat
return cls.strptime(ts, cls.mediawikiTSFormat)
AttributeError: type object 'Timestamp' has no attribute 'strptime'
type object 'Timestamp' has no attribute 'strptime'
Getting [[Category:AABBCC]]...
Getting [[Category:AABBCC]]...
Couldn't delete Category:AABBCC - not empty.
$ python version.py
Pywikipedia [http] trunk/pywikipedia (r8562, 2010/09/15, 12:54:46)
Python 2.4.3 (#1, Sep 3 2009, 15:37:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)]
config-settings:
use_api = True
use_api_login = True
----------------------------------------------------------------------
Comment By: Daniel Barrett (djbarrett)
Date:
2010-09-15 13:45
Message:
OK trying again:
import time
import wikipedia as wp
t = time.strftime("%Y%m%d%H%M%S",time.gmtime())
t
Produces:
'20100915174350'
Then:
wp.Timestamp
still produces:
<class 'pywikibot.Timestamp'>
----------------------------------------------------------------------
Comment By: Daniel Barrett (djbarrett)
Date: 2010-09-15 13:42
Message:
I don't know Python, so I am just repeating what you wrote. First I did:
$ python
Python 2.4.3 (#1, Sep 3 2009, 15:37:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license"
for more information.
>>
Then I did:
import wikipedia as wp
t = time.strftime("%Y%m%d%H%M%S",time.gmtime())
Produces:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'time' is not defined
wp.Timestamp.
Produces:
<class 'pywikibot.Timestamp'>
Then I did:
import sys
sys.path
Produces:
['', '/usr/lib64/python24.zip', '/usr/lib64/python2.4',
'/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk',
'/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages',
'/usr/lib64/python2.4/site-packages/gtk-2.0',
'/usr/lib/python2.4/site-packages',
'/usr/local/pywikipedia/userinterfaces',
'/usr/local/pywikipedia/families']
----------------------------------------------------------------------
Comment By: xqt (xqt)
Date: 2010-09-15 13:34
Message:
I haven't found this error. Could you verify some things via idle:
import wikipedia as wp
t = time.strftime("%Y%m%d%H%M%S",time.gmtime())
t
this should print sth like
'20100915172517'
wp.Timestamp.
Please hold this dot and you'll see availlable methods
wp.Timestamp.fromtimestampformat(t)
produces
Timestamp(2010, 9, 15, 17, 31, 53)
str(wp.Timestamp.fromtimestampformat(t))
produces
'2010-09-15T17:31:53Z'
Please also give me your sys.path()
----------------------------------------------------------------------
Comment By: Daniel Barrett (djbarrett)
Date: 2010-09-15 11:22
Message:
The bug was introduced in revision 8562:
svn diff -c8562
Index: wikipedia.py
===================================================================
--- wikipedia.py (revision 8561)
+++ wikipedia.py (revision 8562)
@@ -2559,8 +2559,11 @@
dataQuery = self._versionhistoryearliest
else:
thisHistoryDone = True
- elif not hasattr(self, '_versionhistory') or forceReload:
+ elif not hasattr(self, '_versionhistory') or forceReload or \
+ len(self._versionhistory) < revCount:
self._versionhistory = []
+ # ?? does not load if len(self._versionhistory) > revCount
+ # shouldn't it
elif getAll and len(self._versionhistory) == revCount:
# Cause a reload, or at least make the loop run
thisHistoryDone = False
@@ -3907,7 +3910,7 @@
successful = False
for page2 in self.pages:
if page2.sectionFreeTitle() == page.sectionFreeTitle():
- if not (hasattr(page2,'_contents') or
hasattr(page2,'_getexception')) or self.force:
+ if not (hasattr(page2,'_contents') or hasattr(page2,
'_getexception')) or self.force:
page2.editRestriction = entry.editRestriction
page2.moveRestriction = entry.moveRestriction
if editRestriction == 'autoconfirmed':
@@ -3917,6 +3920,7 @@
page2._ipedit = ipedit
page2._revisionId = revisionId
page2._editTime = timestamp
+ page2._versionhistory = [(revisionId,
str(Timestamp.fromtimestampformat(timestamp)), username, entry.comment)]
section = page2.section()
# Store the content
page2._contents = text
----------------------------------------------------------------------
Comment By: Daniel Barrett (djbarrett)
Date: 2010-09-15 11:16
Message:
Note: the example did create category "DD" but did not recategorize the
page in the AABBCC category. (There is only one page in the category.)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=306693…