Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-DateTime for openSUSE:Factory checked in at 2023-11-14 21:43:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-DateTime (Old) and /work/SRC/openSUSE:Factory/.python-DateTime.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-DateTime" Tue Nov 14 21:43:34 2023 rev:9 rq:1125873 version:5.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-DateTime/python-DateTime.changes 2023-07-27 16:51:14.521961235 +0200 +++ /work/SRC/openSUSE:Factory/.python-DateTime.new.17445/python-DateTime.changes 2023-11-14 21:43:42.902135697 +0100 @@ -1,0 +2,7 @@ +Tue Nov 14 12:39:24 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 5.3: + * Add support for Python 3.12. + * Add preliminary support for Python 3.13a2. + +------------------------------------------------------------------- Old: ---- DateTime-5.2.tar.gz New: ---- DateTime-5.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-DateTime.spec ++++++ --- /var/tmp/diff_new_pack.sXO3Yv/_old 2023-11-14 21:43:43.934173900 +0100 +++ /var/tmp/diff_new_pack.sXO3Yv/_new 2023-11-14 21:43:43.938174048 +0100 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-DateTime -Version: 5.2 +Version: 5.3 Release: 0 Summary: Zope DateTime data type License: ZPL-2.1 ++++++ DateTime-5.2.tar.gz -> DateTime-5.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/CHANGES.rst new/DateTime-5.3/CHANGES.rst --- old/DateTime-5.2/CHANGES.rst 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/CHANGES.rst 2023-11-14 09:06:33.000000000 +0100 @@ -1,6 +1,14 @@ Changelog ========= +5.3 (2023-11-14) +---------------- + +- Add support for Python 3.12. + +- Add preliminary support for Python 3.13a2. + + 5.2 (2023-07-19) ---------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/PKG-INFO new/DateTime-5.3/PKG-INFO --- old/DateTime-5.2/PKG-INFO 2023-07-19 08:25:15.164005300 +0200 +++ new/DateTime-5.3/PKG-INFO 2023-11-14 09:06:33.584568300 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: DateTime -Version: 5.2 +Version: 5.3 Summary: This package provides a DateTime data type, as known from Zope. Unless you need to communicate with Zope APIs, you're probably better off using Python's built-in datetime module. Home-page: https://github.com/zopefoundation/DateTime Author: Zope Foundation and Contributors @@ -18,10 +18,13 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Requires-Python: >=3.7 License-File: LICENSE.txt +Requires-Dist: zope.interface +Requires-Dist: pytz .. image:: https://github.com/zopefoundation/DateTime/workflows/tests/badge.svg :target: https://github.com/zopefoundation/DateTime/actions?query=workflow%3Atests @@ -106,7 +109,7 @@ functions (Compatibility Note: int, long and float return the number of days since 1901 in GMT rather than local machine timezone). DateTime objects also provide access to their value in a float format -usable with the python time module, provided that the value of the +usable with the Python time module, provided that the value of the object falls in the range of the epoch-based time module. A DateTime object should be considered immutable; all conversion and numeric @@ -196,7 +199,7 @@ permitted around the delimiters. Year, month, and day values may be given in any order as long as it is possible to distinguish the components. If all three components are numbers that are less than - 13, then a a month-day-year ordering is assumed. + 13, then a month-day-year ordering is assumed. The time component consists of hour, minute, and second values separated by colons. The hour value must be an integer between 0 @@ -412,7 +415,7 @@ >>> dt.year() 1997 -* ``month()`` retursn the month of the object as an integer: +* ``month()`` returns the month of the object as an integer: >>> dt.month() 3 @@ -422,12 +425,12 @@ >>> dt.Month() 'March' -* ``aMonth()`` returns the abreviated month name: +* ``aMonth()`` returns the abbreviated month name: >>> dt.aMonth() 'Mar' -* ``pMonth()`` returns the abreviated (with period) month name: +* ``pMonth()`` returns the abbreviated (with period) month name: >>> dt.pMonth() 'Mar.' @@ -685,7 +688,7 @@ 3618678 DateTime objects can be compared to other DateTime objects OR floating -point numbers such as the ones which are returned by the python time +point numbers such as the ones which are returned by the Python time module by using the equalTo method. Using this API, True is returned if the object represents a date/time equal to the specified DateTime or time module style time: @@ -839,6 +842,14 @@ Changelog ========= +5.3 (2023-11-14) +---------------- + +- Add support for Python 3.12. + +- Add preliminary support for Python 3.13a2. + + 5.2 (2023-07-19) ---------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/buildout.cfg new/DateTime-5.3/buildout.cfg --- old/DateTime-5.2/buildout.cfg 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/buildout.cfg 2023-11-14 09:06:33.000000000 +0100 @@ -6,6 +6,9 @@ interpreter test +[buildout:windows] +bin-directory = Scripts + [versions] DateTime = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/setup.cfg new/DateTime-5.3/setup.cfg --- old/DateTime-5.2/setup.cfg 2023-07-19 08:25:15.164251300 +0200 +++ new/DateTime-5.3/setup.cfg 2023-11-14 09:06:33.584891300 +0100 @@ -15,7 +15,7 @@ force_single_line = True combine_as_imports = True sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER -known_third_party = six, docutils, pkg_resources +known_third_party = docutils, pkg_resources, pytz known_zope = known_first_party = default_section = ZOPE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/setup.py new/DateTime-5.3/setup.py --- old/DateTime-5.2/setup.py 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/setup.py 2023-11-14 09:06:33.000000000 +0100 @@ -26,7 +26,7 @@ with open(os.path.join(here, 'CHANGES.rst')) as f: CHANGES = f.read() -version = '5.2' +version = '5.3' setup( name='DateTime', @@ -60,6 +60,7 @@ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/src/DateTime/DateTime.py new/DateTime-5.3/src/DateTime/DateTime.py --- old/DateTime-5.2/src/DateTime/DateTime.py 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/src/DateTime/DateTime.py 2023-11-14 09:06:33.000000000 +0100 @@ -54,7 +54,7 @@ # To control rounding errors, we round system time to the nearest -# microsecond. Then delicate calculations can rely on that the +# microsecond. Then delicate calculations can rely on the fact that the # maximum precision that needs to be preserved is known. _system_time = time @@ -406,7 +406,7 @@ long, and float functions (Compatibility Note: int, long and float return the number of days since 1901 in GMT rather than local machine timezone). DateTime objects also provide access - to their value in a float format usable with the python time + to their value in a float format usable with the Python time module, provided that the value of the object falls in the range of the epoch-based time module, and as a datetime.datetime object. @@ -478,7 +478,7 @@ Note that in all cases the local machine timezone is used for representation if no timezone is specified. - DateTimes may be created with from zero to seven arguments. + DateTimes may be created with zero to seven arguments. - If the function is called with no arguments or with None, then the current date/time is returned, represented in the @@ -510,16 +510,16 @@ essentially be the same as if you had captured time.time() at the specified date and time on a machine in that timezone: - <PRE> - e=DateTime('US/Eastern') + <pre> + e = DateTime('US/Eastern') # returns current date/time, represented in US/Eastern. - x=DateTime('1997/3/9 1:45pm') + x = DateTime('1997/3/9 1:45pm') # returns specified time, represented in local machine zone. - y=DateTime('Mar 9, 1997 13:45:00') + y = DateTime('Mar 9, 1997 13:45:00') # y is equal to x - </PRE> + </pre> The date component consists of year, month, and day values. The year value must be a one-, two-, or @@ -535,7 +535,7 @@ month, and day values may be given in any order as long as it is possible to distinguish the components. If all three components are numbers that are less than 13, - then a a month-day-year ordering is assumed. + then a month-day-year ordering is assumed. The time component consists of hour, minute, and second values separated by colons. The hour value must be an @@ -555,14 +555,14 @@ The existing ISO8601 parser was extended to support almost the whole ISO8601 specification. New formats includes: - <PRE> - y=DateTime('1993-045') + <pre> + y = DateTime('1993-045') # returns the 45th day from 1993, which is 14th February - w=DateTime('1993-W06-7') + w = DateTime('1993-W06-7') # returns the 7th day from the 6th week from 1993, which # is also 14th February - </PRE> + </pre> See http://en.wikipedia.org/wiki/ISO_8601 for full specs. @@ -608,19 +608,19 @@ with a value of that gmt time will be returned, represented in the given timezone. - <PRE> + <pre> import time - t=time.time() + t = time.time() - now_east=DateTime(t,'US/Eastern') + now_east = DateTime(t,'US/Eastern') # Time t represented as US/Eastern - now_west=DateTime(t,'US/Pacific') + now_west = DateTime(t,'US/Pacific') # Time t represented as US/Pacific # now_east == now_west # only their representations are different - </PRE> + </pre> - If the function is invoked with three or more numeric arguments, then the first is taken to be an integer @@ -847,7 +847,7 @@ # cannot rely on C sprintf (Python '%') formatting to round # consistently; doing it ourselves ensures that all but truly # horrid C sprintf implementations will yield the same result - # x-platform, provided the format asks for exactly 6 digits after + # cross-platform, provided the format asks for exactly 6 digits after # the decimal point. sc = round(sc, 6) if sc >= 60.0: # can happen if, e.g., orig sc was 59.9999999 @@ -950,7 +950,6 @@ ints.append(float(s)) continue - # AJ ts_results = INT_PATTERN.match(st, i) if ts_results: s = ts_results.group(0) @@ -1124,7 +1123,7 @@ def timeTime(self): """Return the date/time as a floating-point number in UTC, - in the format used by the python time module. + in the format used by the Python time module. Note that it is possible to create date/time values with DateTime that have no meaningful value to the time module. @@ -1175,7 +1174,7 @@ def isCurrentYear(self): """Return true if this object represents a date/time that falls within the current year, in the context - of this object\'s timezone representation. + of this object's timezone representation. """ t = time() return safegmtime(t + _tzoffset(self._tz, t))[0] == self._year @@ -1183,7 +1182,7 @@ def isCurrentMonth(self): """Return true if this object represents a date/time that falls within the current month, in the context - of this object\'s timezone representation. + of this object's timezone representation. """ t = time() gmt = safegmtime(t + _tzoffset(self._tz, t)) @@ -1192,7 +1191,7 @@ def isCurrentDay(self): """Return true if this object represents a date/time that falls within the current day, in the context - of this object\'s timezone representation. + of this object's timezone representation. """ t = time() gmt = safegmtime(t + _tzoffset(self._tz, t)) @@ -1202,7 +1201,7 @@ def isCurrentHour(self): """Return true if this object represents a date/time that falls within the current hour, in the context - of this object\'s timezone representation. + of this object's timezone representation. """ t = time() gmt = safegmtime(t + _tzoffset(self._tz, t)) @@ -1212,7 +1211,7 @@ def isCurrentMinute(self): """Return true if this object represents a date/time that falls within the current minute, in the context - of this object\'s timezone representation. + of this object's timezone representation. """ t = time() gmt = safegmtime(t + _tzoffset(self._tz, t)) @@ -1223,7 +1222,7 @@ def earliestTime(self): """Return a new DateTime object that represents the earliest possible time (in whole seconds) that still falls within - the current object\'s day, in the object\'s timezone context. + the current object's day, in the object's timezone context. """ return self.__class__( self._year, self._month, self._day, 0, 0, 0, self._tz) @@ -1231,7 +1230,7 @@ def latestTime(self): """Return a new DateTime object that represents the latest possible time (in whole seconds) that still falls within - the current object\'s day, in the object\'s timezone context. + the current object's day, in the object's timezone context. """ return self.__class__( self._year, self._month, self._day, 23, 59, 59, self._tz) @@ -1239,7 +1238,7 @@ def greaterThan(self, t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned - by the python time module. + by the Python time module. Returns true if the object represents a date/time greater than the specified DateTime or time module style time. @@ -1259,7 +1258,7 @@ def greaterThanEqualTo(self, t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned - by the python time module. + by the Python time module. Returns true if the object represents a date/time greater than or equal to the specified DateTime or time module style @@ -1280,7 +1279,7 @@ def equalTo(self, t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned - by the python time module. + by the Python time module. Returns true if the object represents a date/time equal to the specified DateTime or time module style time. @@ -1298,7 +1297,7 @@ def notEqualTo(self, t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned - by the python time module. + by the Python time module. Returns true if the object represents a date/time not equal to the specified DateTime or time module style time. @@ -1313,7 +1312,7 @@ Return True if their internal state is the same. Two objects representing the same time in different timezones are regared as unequal. Use the equalTo method if you are only interested in them - refering to the same moment in time. + referring to the same moment in time. """ if not isinstance(t, DateTime): return False @@ -1325,7 +1324,7 @@ def lessThan(self, t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned - by the python time module. + by the Python time module. Returns true if the object represents a date/time less than the specified DateTime or time module style time. @@ -1345,7 +1344,7 @@ def lessThanEqualTo(self, t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned - by the python time module. + by the Python time module. Returns true if the object represents a date/time less than or equal to the specified DateTime or time module style time. @@ -1364,7 +1363,7 @@ def isLeapYear(self): """Return true if the current year (in the context of the - object\'s timezone) is a leap year. + object's timezone) is a leap year. """ return (self._year % 4 == 0 and (self._year % 100 != 0 or self._year % 400 == 0)) @@ -1469,11 +1468,11 @@ return self._pday def dow(self): - """Return the integer day of the week, where sunday is 0.""" + """Return the integer day of the week, where Sunday is 0.""" return self._dayoffset def dow_1(self): - """Return the integer day of the week, where sunday is 1.""" + """Return the integer day of the week, where Sunday is 1.""" return self._dayoffset + 1 @property @@ -1523,10 +1522,10 @@ return self._micros def timezoneNaive(self): - """The python datetime module introduces the idea of distinguishing + """The Python datetime module introduces the idea of distinguishing between timezone aware and timezone naive datetime values. For lossless - conversion to and from datetime.datetime record if we record this - information using True / False. DateTime makes no distinction, when we + conversion to and from datetime.datetime we record this + information using True / False. DateTime makes no distinction, if we don't have any information we return None here. """ try: @@ -1605,7 +1604,7 @@ # New formats def fCommon(self): - """Return a string representing the object\'s value + """Return a string representing the object's value in the format: March 1, 1997 1:45 pm. """ return '%s %s, %4.4d %s:%2.2d %s' % ( @@ -1613,7 +1612,7 @@ self._minute, self._pm) def fCommonZ(self): - """Return a string representing the object\'s value + """Return a string representing the object's value in the format: March 1, 1997 1:45 pm US/Eastern. """ return '%s %s, %4.4d %d:%2.2d %s %s' % ( @@ -1621,7 +1620,7 @@ self._minute, self._pm, self._tz) def aCommon(self): - """Return a string representing the object\'s value + """Return a string representing the object's value in the format: Mar 1, 1997 1:45 pm. """ return '%s %s, %4.4d %s:%2.2d %s' % ( @@ -1629,7 +1628,7 @@ self._minute, self._pm) def aCommonZ(self): - """Return a string representing the object\'s value + """Return a string representing the object's value in the format: Mar 1, 1997 1:45 pm US/Eastern. """ return '%s %s, %4.4d %d:%2.2d %s %s' % ( @@ -1637,7 +1636,7 @@ self._minute, self._pm, self._tz) def pCommon(self): - """Return a string representing the object\'s value + """Return a string representing the object's value in the format: Mar. 1, 1997 1:45 pm. """ return '%s %s, %4.4d %s:%2.2d %s' % ( @@ -1645,7 +1644,7 @@ self._minute, self._pm) def pCommonZ(self): - """Return a string representing the object\'s value + """Return a string representing the object's value in the format: Mar. 1, 1997 1:45 pm US/Eastern. """ return '%s %s, %4.4d %d:%2.2d %s %s' % ( @@ -1719,7 +1718,7 @@ return dt def utcdatetime(self): - """Convert the time to UTC then return a timezone naive datetime object + """Convert the time to UTC and return a timezone naive datetime object """ utc = self.toZone('UTC') second = int(utc._second) @@ -1730,7 +1729,7 @@ def __add__(self, other): """A DateTime may be added to a number and a number may be - added to a DateTime; two DateTimes cannot be added. + added to a DateTime; two DateTimes cannot be added. """ if hasattr(other, '_t'): raise DateTimeError('Cannot add two DateTimes') @@ -1812,7 +1811,7 @@ def _parse_iso8601(self, s): # preserve the previously implied contract - # who know where this could be used... + # who knows where this could be used... return self._parse_iso8601_preserving_tznaive(s)[:7] def _parse_iso8601_preserving_tznaive(self, s): @@ -1899,7 +1898,7 @@ def JulianDay(self): """Return the Julian day. - See: http://www.tondering.dk/claus/cal/node3.html#sec-calcjd + See: https://www.tondering.dk/claus/cal/julperiod.php#formula """ a = (14 - self._month) // 12 y = self._year + 4800 - a @@ -1910,7 +1909,7 @@ def week(self): """Return the week number according to ISO. - See: http://www.tondering.dk/claus/cal/node6.html + See: https://www.tondering.dk/claus/cal/week.php#weekno """ J = self.JulianDay() d4 = (J + 31741 - (J % 7)) % 146097 % 36524 % 1461 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/src/DateTime/DateTime.txt new/DateTime-5.3/src/DateTime/DateTime.txt --- old/DateTime-5.2/src/DateTime/DateTime.txt 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/src/DateTime/DateTime.txt 2023-11-14 09:06:33.000000000 +0100 @@ -55,7 +55,7 @@ functions (Compatibility Note: int, long and float return the number of days since 1901 in GMT rather than local machine timezone). DateTime objects also provide access to their value in a float format -usable with the python time module, provided that the value of the +usable with the Python time module, provided that the value of the object falls in the range of the epoch-based time module. A DateTime object should be considered immutable; all conversion and numeric @@ -145,7 +145,7 @@ permitted around the delimiters. Year, month, and day values may be given in any order as long as it is possible to distinguish the components. If all three components are numbers that are less than - 13, then a a month-day-year ordering is assumed. + 13, then a month-day-year ordering is assumed. The time component consists of hour, minute, and second values separated by colons. The hour value must be an integer between 0 @@ -361,7 +361,7 @@ >>> dt.year() 1997 -* ``month()`` retursn the month of the object as an integer: +* ``month()`` returns the month of the object as an integer: >>> dt.month() 3 @@ -371,12 +371,12 @@ >>> dt.Month() 'March' -* ``aMonth()`` returns the abreviated month name: +* ``aMonth()`` returns the abbreviated month name: >>> dt.aMonth() 'Mar' -* ``pMonth()`` returns the abreviated (with period) month name: +* ``pMonth()`` returns the abbreviated (with period) month name: >>> dt.pMonth() 'Mar.' @@ -634,7 +634,7 @@ 3618678 DateTime objects can be compared to other DateTime objects OR floating -point numbers such as the ones which are returned by the python time +point numbers such as the ones which are returned by the Python time module by using the equalTo method. Using this API, True is returned if the object represents a date/time equal to the specified DateTime or time module style time: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/src/DateTime/interfaces.py new/DateTime-5.3/src/DateTime/interfaces.py --- old/DateTime-5.2/src/DateTime/interfaces.py 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/src/DateTime/interfaces.py 2023-11-14 09:06:33.000000000 +0100 @@ -32,14 +32,13 @@ class IDateTime(Interface): # Conversion and comparison methods - # TODO determine whether this method really is part of the public API def localZone(ltm=None): - '''Returns the time zone on the given date. The time zone - can change according to daylight savings.''' + """Returns the time zone on the given date. The time zone + can change according to daylight savings.""" def timeTime(): """Return the date/time as a floating-point number in UTC, in - the format used by the python time module. Note that it is + the format used by the Python time module. Note that it is possible to create date/time values with DateTime that have no meaningful value to the time module.""" @@ -97,7 +96,7 @@ def greaterThan(t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned by the - python time module. Returns true if the object represents a + Python time module. Returns true if the object represents a date/time greater than the specified DateTime or time module style time. Revised to give more correct results through comparison of long integer milliseconds.""" @@ -107,7 +106,7 @@ def greaterThanEqualTo(t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned by the - python time module. Returns true if the object represents a + Python time module. Returns true if the object represents a date/time greater than or equal to the specified DateTime or time module style time. Revised to give more correct results through comparison of long integer milliseconds.""" @@ -117,7 +116,7 @@ def equalTo(t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned by the - python time module. Returns true if the object represents a + Python time module. Returns true if the object represents a date/time equal to the specified DateTime or time module style time. Revised to give more correct results through comparison of long integer milliseconds.""" @@ -127,7 +126,7 @@ def notEqualTo(t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned by the - python time module. Returns true if the object represents a + Python time module. Returns true if the object represents a date/time not equal to the specified DateTime or time module style time. Revised to give more correct results through comparison of long integer milliseconds.""" @@ -137,7 +136,7 @@ def lessThan(t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned by the - python time module. Returns true if the object represents a + Python time module. Returns true if the object represents a date/time less than the specified DateTime or time module style time. Revised to give more correct results through comparison of long integer milliseconds.""" @@ -147,7 +146,7 @@ def lessThanEqualTo(t): """Compare this DateTime object to another DateTime object OR a floating point number such as that which is returned by the - python time module. Returns true if the object represents a + Python time module. Returns true if the object represents a date/time less than or equal to the specified DateTime or time module style time. Revised to give more correct results through comparison of long integer milliseconds.""" @@ -176,13 +175,13 @@ """Return the full month name""" def aMonth(): - """Return the abreviated month name.""" + """Return the abbreviated month name.""" def Mon(): """Compatibility: see aMonth""" def pMonth(): - """Return the abreviated (with period) month name.""" + """Return the abbreviated (with period) month name.""" def Mon_(): """Compatibility: see pMonth""" @@ -201,10 +200,10 @@ representation of the object""" def aDay(): - """Return the abreviated name of the day of the week""" + """Return the abbreviated name of the day of the week""" def pDay(): - """Return the abreviated (with period) name of the day of the + """Return the abbreviated (with period) name of the day of the week""" def Day_(): @@ -334,7 +333,7 @@ def JulianDay(): """Return the Julian day according to - http://www.tondering.dk/claus/cal/node3.html#sec-calcjd + https://www.tondering.dk/claus/cal/julperiod.php#formula """ def week(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/src/DateTime/pytz.txt new/DateTime-5.3/src/DateTime/pytz.txt --- old/DateTime-5.2/src/DateTime/pytz.txt 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/src/DateTime/pytz.txt 2023-11-14 09:06:33.000000000 +0100 @@ -132,7 +132,7 @@ ['Africa/Abidjan'... 'Africa/Accra'... 'IDLE'... 'NZST'... 'NZT'...] The _zidx attribute is a list of lower-case and possibly abbreviated -time zone names that can be mapped to offical zone names. +time zone names that can be mapped to official zone names. >>> 'australia/yancowinna' in cache._zidx True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/src/DateTime/pytz_support.py new/DateTime-5.3/src/DateTime/pytz_support.py --- old/DateTime-5.2/src/DateTime/pytz_support.py 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/src/DateTime/pytz_support.py 2023-11-14 09:06:33.000000000 +0100 @@ -22,7 +22,7 @@ from .interfaces import DateTimeError -EPOCH = datetime.utcfromtimestamp(0).replace(tzinfo=pytz.utc) +EPOCH = datetime.fromtimestamp(0, tz=pytz.utc) _numeric_timezone_data = { 'GMT': ('GMT', 0, 1, [], '', [(0, 0, 0)], 'GMT\000'), @@ -223,7 +223,7 @@ def info(self, t=None): if t is None: - dt = datetime.utcnow().replace(tzinfo=pytz.utc) + dt = datetime.now(tz=pytz.utc) else: # can't use utcfromtimestamp past 2038 dt = EPOCH + timedelta(0, t) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/src/DateTime.egg-info/PKG-INFO new/DateTime-5.3/src/DateTime.egg-info/PKG-INFO --- old/DateTime-5.2/src/DateTime.egg-info/PKG-INFO 2023-07-19 08:25:15.000000000 +0200 +++ new/DateTime-5.3/src/DateTime.egg-info/PKG-INFO 2023-11-14 09:06:33.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: DateTime -Version: 5.2 +Version: 5.3 Summary: This package provides a DateTime data type, as known from Zope. Unless you need to communicate with Zope APIs, you're probably better off using Python's built-in datetime module. Home-page: https://github.com/zopefoundation/DateTime Author: Zope Foundation and Contributors @@ -18,10 +18,13 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Requires-Python: >=3.7 License-File: LICENSE.txt +Requires-Dist: zope.interface +Requires-Dist: pytz .. image:: https://github.com/zopefoundation/DateTime/workflows/tests/badge.svg :target: https://github.com/zopefoundation/DateTime/actions?query=workflow%3Atests @@ -106,7 +109,7 @@ functions (Compatibility Note: int, long and float return the number of days since 1901 in GMT rather than local machine timezone). DateTime objects also provide access to their value in a float format -usable with the python time module, provided that the value of the +usable with the Python time module, provided that the value of the object falls in the range of the epoch-based time module. A DateTime object should be considered immutable; all conversion and numeric @@ -196,7 +199,7 @@ permitted around the delimiters. Year, month, and day values may be given in any order as long as it is possible to distinguish the components. If all three components are numbers that are less than - 13, then a a month-day-year ordering is assumed. + 13, then a month-day-year ordering is assumed. The time component consists of hour, minute, and second values separated by colons. The hour value must be an integer between 0 @@ -412,7 +415,7 @@ >>> dt.year() 1997 -* ``month()`` retursn the month of the object as an integer: +* ``month()`` returns the month of the object as an integer: >>> dt.month() 3 @@ -422,12 +425,12 @@ >>> dt.Month() 'March' -* ``aMonth()`` returns the abreviated month name: +* ``aMonth()`` returns the abbreviated month name: >>> dt.aMonth() 'Mar' -* ``pMonth()`` returns the abreviated (with period) month name: +* ``pMonth()`` returns the abbreviated (with period) month name: >>> dt.pMonth() 'Mar.' @@ -685,7 +688,7 @@ 3618678 DateTime objects can be compared to other DateTime objects OR floating -point numbers such as the ones which are returned by the python time +point numbers such as the ones which are returned by the Python time module by using the equalTo method. Using this API, True is returned if the object represents a date/time equal to the specified DateTime or time module style time: @@ -839,6 +842,14 @@ Changelog ========= +5.3 (2023-11-14) +---------------- + +- Add support for Python 3.12. + +- Add preliminary support for Python 3.13a2. + + 5.2 (2023-07-19) ---------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DateTime-5.2/tox.ini new/DateTime-5.3/tox.ini --- old/DateTime-5.2/tox.ini 2023-07-19 08:25:14.000000000 +0200 +++ new/DateTime-5.3/tox.ini 2023-11-14 09:06:33.000000000 +0100 @@ -3,12 +3,15 @@ [tox] minversion = 3.18 envlist = + release-check lint py37 py38 py39 py310 py311 + py312 + py313 pypy3 coverage @@ -17,10 +20,30 @@ deps = zc.buildout >= 3.0.1 wheel > 0.37 +setenv = + py312: VIRTUALENV_PIP=23.1.2 + py312: PIP_REQUIRE_VIRTUALENV=0 commands_pre = {envbindir}/buildout -nc {toxinidir}/buildout.cfg buildout:directory={envdir} buildout:develop={toxinidir} install test commands = - {envdir}/bin/test {posargs:-cv} + {envbindir}/test {posargs:-cv} + +[testenv:release-check] +description = ensure that the distribution is ready to release +basepython = python3 +skip_install = true +deps = + twine + build + check-manifest + check-python-versions >= 0.20.0 + wheel +commands_pre = +commands = + check-manifest + check-python-versions + python -m build --sdist --no-isolation + twine check dist/* [testenv:lint] basepython = python3 @@ -31,11 +54,7 @@ commands = isort --check-only --diff {toxinidir}/src {toxinidir}/setup.py flake8 {toxinidir}/src {toxinidir}/setup.py - check-manifest - check-python-versions deps = - check-manifest - check-python-versions flake8 isort # Useful flake8 plugins that are Python and Plone specific: @@ -55,13 +74,14 @@ basepython = python3 skip_install = true allowlist_externals = + {[testenv]allowlist_externals} mkdir deps = {[testenv]deps} coverage commands = mkdir -p {toxinidir}/parts/htmlcov - coverage run {envdir}/bin/test {posargs:-cv} + coverage run {envbindir}/test {posargs:-cv} coverage html coverage report -m --fail-under=88