Mercurial > public > mercurial-scm > hg-stable
diff mercurial/utils/dateutil.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | d4d2c567bb72 |
children | 687b865b95ad |
line wrap: on
line diff
--- a/mercurial/utils/dateutil.py Sat Oct 05 10:29:34 2019 -0400 +++ b/mercurial/utils/dateutil.py Sun Oct 06 09:45:02 2019 -0400 @@ -20,14 +20,14 @@ # used by parsedate defaultdateformats = ( - '%Y-%m-%dT%H:%M:%S', # the 'real' ISO8601 - '%Y-%m-%dT%H:%M', # without seconds - '%Y-%m-%dT%H%M%S', # another awful but legal variant without : - '%Y-%m-%dT%H%M', # without seconds - '%Y-%m-%d %H:%M:%S', # our common legal variant - '%Y-%m-%d %H:%M', # without seconds - '%Y-%m-%d %H%M%S', # without : - '%Y-%m-%d %H%M', # without seconds + '%Y-%m-%dT%H:%M:%S', # the 'real' ISO8601 + '%Y-%m-%dT%H:%M', # without seconds + '%Y-%m-%dT%H%M%S', # another awful but legal variant without : + '%Y-%m-%dT%H%M', # without seconds + '%Y-%m-%d %H:%M:%S', # our common legal variant + '%Y-%m-%d %H:%M', # without seconds + '%Y-%m-%d %H%M%S', # without : + '%Y-%m-%d %H%M', # without seconds '%Y-%m-%d %I:%M:%S%p', '%Y-%m-%d %H:%M', '%Y-%m-%d %I:%M%p', @@ -38,7 +38,7 @@ '%m/%d/%Y', '%a %b %d %H:%M:%S %Y', '%a %b %d %I:%M:%S%p %Y', - '%a, %d %b %Y %H:%M:%S', # GNU coreutils "/bin/date --rfc-2822" + '%a, %d %b %Y %H:%M:%S', # GNU coreutils "/bin/date --rfc-2822" '%b %d %H:%M:%S %Y', '%b %d %I:%M:%S%p %Y', '%b %d %H:%M:%S', @@ -53,12 +53,8 @@ '%I:%M%p', ) -extendeddateformats = defaultdateformats + ( - "%Y", - "%Y-%m", - "%b", - "%b %Y", -) +extendeddateformats = defaultdateformats + ("%Y", "%Y-%m", "%b", "%b %Y",) + def makedate(timestamp=None): '''Return a unix timestamp (or the current time) as a (unixtime, @@ -68,11 +64,13 @@ if timestamp < 0: hint = _("check your clock") raise error.Abort(_("negative timestamp: %d") % timestamp, hint=hint) - delta = (datetime.datetime.utcfromtimestamp(timestamp) - - datetime.datetime.fromtimestamp(timestamp)) + delta = datetime.datetime.utcfromtimestamp( + timestamp + ) - datetime.datetime.fromtimestamp(timestamp) tz = delta.days * 86400 + delta.seconds return timestamp, tz + def datestr(date=None, format='%a %b %d %H:%M:%S %Y %1%2'): """represent a (unixtime, offset) tuple as a localized time. unixtime is seconds since the epoch, and offset is the time zone's @@ -98,8 +96,8 @@ format = format.replace("%1", "%c%02d" % (sign, q)) format = format.replace("%2", "%02d" % r) d = t - tz - if d > 0x7fffffff: - d = 0x7fffffff + if d > 0x7FFFFFFF: + d = 0x7FFFFFFF elif d < -0x80000000: d = -0x80000000 # Never use time.gmtime() and datetime.datetime.fromtimestamp() @@ -109,10 +107,12 @@ s = encoding.strtolocal(t.strftime(encoding.strfromlocal(format))) return s + def shortdate(date=None): """turn (timestamp, tzoff) tuple into iso 8631 date.""" return datestr(date, format='%Y-%m-%d') + def parsetimezone(s): """find a trailing timezone, if any, in string, and return a (offset, remainder) pair""" @@ -133,8 +133,13 @@ return 0, s[:-1] # ISO8601-style [+-]hh:mm - if (len(s) >= 6 and s[-6] in "+-" and s[-3] == ":" and - s[-5:-3].isdigit() and s[-2:].isdigit()): + if ( + len(s) >= 6 + and s[-6] in "+-" + and s[-3] == ":" + and s[-5:-3].isdigit() + and s[-2:].isdigit() + ): sign = (s[-6] == "+") and 1 or -1 hours = int(s[-5:-3]) minutes = int(s[-2:]) @@ -142,6 +147,7 @@ return None, s + def strdate(string, format, defaults=None): """parse a localized time string and return a (unixtime, offset) tuple. if the string cannot be parsed, ValueError is raised.""" @@ -152,10 +158,10 @@ offset, date = parsetimezone(string) # add missing elements from defaults - usenow = False # default to using biased defaults - for part in ("S", "M", "HI", "d", "mb", "yY"): # decreasing specificity + usenow = False # default to using biased defaults + for part in ("S", "M", "HI", "d", "mb", "yY"): # decreasing specificity part = pycompat.bytestr(part) - found = [True for p in part if ("%"+p) in format] + found = [True for p in part if ("%" + p) in format] if not found: date += "@" + defaults[part][usenow] format += "@%" + part[0] @@ -164,8 +170,9 @@ # elements are relative to today usenow = True - timetuple = time.strptime(encoding.strfromlocal(date), - encoding.strfromlocal(format)) + timetuple = time.strptime( + encoding.strfromlocal(date), encoding.strfromlocal(format) + ) localunixtime = int(calendar.timegm(timetuple)) if offset is None: # local timezone @@ -175,6 +182,7 @@ unixtime = localunixtime + offset return unixtime, offset + def parsedate(date, formats=None, bias=None): """parse a localized date/time and return a (unixtime, offset) tuple. @@ -211,8 +219,9 @@ date = datetime.date.today().strftime(r'%b %d') date = encoding.strtolocal(date) elif date == 'yesterday' or date == _('yesterday'): - date = (datetime.date.today() - - datetime.timedelta(days=1)).strftime(r'%b %d') + date = (datetime.date.today() - datetime.timedelta(days=1)).strftime( + r'%b %d' + ) date = encoding.strtolocal(date) try: @@ -244,17 +253,19 @@ break else: raise error.ParseError( - _('invalid date: %r') % pycompat.bytestr(date)) + _('invalid date: %r') % pycompat.bytestr(date) + ) # validate explicit (probably user-specified) date and # time zone offset. values must fit in signed 32 bits for # current 32-bit linux runtimes. timezones go from UTC-12 # to UTC+14 - if when < -0x80000000 or when > 0x7fffffff: + if when < -0x80000000 or when > 0x7FFFFFFF: raise error.ParseError(_('date exceeds 32 bits: %d') % when) if offset < -50400 or offset > 43200: raise error.ParseError(_('impossible time zone offset: %d') % offset) return when, offset + def matchdate(date): """Return a function that matches a given date match specifier @@ -319,8 +330,9 @@ except ValueError: raise error.Abort(_("invalid day spec: %s") % date[1:]) if days < 0: - raise error.Abort(_("%s must be nonnegative (see 'hg help dates')") - % date[1:]) + raise error.Abort( + _("%s must be nonnegative (see 'hg help dates')") % date[1:] + ) when = makedate()[0] - days * 3600 * 24 return lambda x: x >= when elif b" to " in date: