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=3066934...
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: General 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 15:08
Message: I'm sorry, our systems run CentOS Linux which comes with a specific Python version that I do not have access to change.
----------------------------------------------------------------------
Comment By: xqt (xqt) Date: 2010-09-15 14:10
Message: I am not shure but maybe py 2.4 isn't able to handle such class construct. I'll revert this changes for now.
Could you try it with a newer python?
----------------------------------------------------------------------
Comment By: Daniel Barrett (djbarrett) Date: 2010-09-15 13:46
Message: One more:
wp.Timestamp.fromtimestampformat(t)
Traceback (most recent call last): File "<stdin>", line 1, in ? 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'
----------------------------------------------------------------------
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=3066934...
pywikipedia-bugs@lists.wikimedia.org