Update of /cvsroot/python/python/nondist/sandbox/datetime In directory sc8-pr-cvs1:/tmp/cvs-serv9721 Modified Files: datetime.py doc.txt test_datetime.py Log Message: I give up: unless I write my own strftime by hand, datetime just can't be trusted with years before 1900, so now we raise ValueError if a date or datetime or datetimetz .strftime() method is called with a year before 1900. Index: datetime.py =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.py,v retrieving revision 1.119 retrieving revision 1.120 diff -C2 -d -r1.119 -r1.120 *** datetime.py 22 Dec 2002 20:32:53 -0000 1.119 --- datetime.py 22 Dec 2002 20:44:00 -0000 1.120 *************** *** 165,168 **** --- 165,172 ---- # Correctly substitute for %z and %Z escapes in strftime formats. def _wrap_strftime(object, format, timetuple): + year = timetuple[0] + if year < 1900: + raise ValueError("year=%d is before 1900; the datetime strftime() " + "methods require year >= 1900" % year) # Don't call _utcoffset() or tzname() unless actually needed. zreplace = None # the string to use for %z Index: doc.txt =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/datetime/doc.txt,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** doc.txt 22 Dec 2002 20:32:53 -0000 1.66 --- doc.txt 22 Dec 2002 20:44:00 -0000 1.67 *************** *** 189,195 **** The exact range of years for which strftime() works also varies ! across platforms, and years before 1900 cannot be used on any ! platform if the environment variable PYTHON2K is set (see the ! documentation for Python's time module). --- 189,194 ---- The exact range of years for which strftime() works also varies ! across platforms. Regardless of platform, years before 1900 cannot ! be used. Index: test_datetime.py =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/datetime/test_datetime.py,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -d -r1.76 -r1.77 *** test_datetime.py 22 Dec 2002 01:43:13 -0000 1.76 --- test_datetime.py 22 Dec 2002 20:44:00 -0000 1.77 *************** *** 879,882 **** --- 879,888 ---- self.failUnless(self.theclass.max) + def test_srftime_out_of_range(self): + # For nasty technical reasons, we can't handle years before 1900. + cls = self.theclass + self.assertEqual(cls(1900, 1, 1).strftime("%Y"), "1900") + for y in 1, 49, 51, 99, 100, 1000, 1899: + self.assertRaises(ValueError, cls(y, 1, 1).strftime, "%Y") ############################################################################# # datetime tests
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4