2727 pytz = None
2828 import zoneinfo
2929
30+ import datetime
3031from bisect import bisect_right
3132from collections .abc import Iterable
32- import datetime
3333
3434from babel import localtime
3535from babel .core import Locale , default_locale , get_global
4949# empty set characters ( U+2205 )."
5050# - https://www.unicode.org/reports/tr35/tr35-dates.html#Metazone_Names
5151
52- NO_INHERITANCE_MARKER = u '\u2205 \u2205 \u2205 '
52+ NO_INHERITANCE_MARKER = '\u2205 \u2205 \u2205 '
5353
5454
5555if pytz :
@@ -247,13 +247,13 @@ def get_timezone(zone: str | datetime.tzinfo | None = None) -> datetime.tzinfo:
247247 if pytz :
248248 try :
249249 return pytz .timezone (zone )
250- except pytz .UnknownTimeZoneError as exc :
250+ except pytz .UnknownTimeZoneError as exc : # noqa: F841
251251 pass
252252 else :
253253 assert zoneinfo
254254 try :
255255 return zoneinfo .ZoneInfo (zone )
256- except zoneinfo .ZoneInfoNotFoundError as exc :
256+ except zoneinfo .ZoneInfoNotFoundError as exc : # noqa: F841
257257 pass
258258
259259 raise LookupError (f"Unknown timezone { zone } " ) from exc
@@ -558,11 +558,11 @@ def get_timezone_gmt(
558558 if return_z and hours == 0 and seconds == 0 :
559559 return 'Z'
560560 elif seconds == 0 and width == 'iso8601_short' :
561- return u '%+03d' % hours
561+ return '%+03d' % hours
562562 elif width == 'short' or width == 'iso8601_short' :
563- pattern = u '%+03d%02d'
563+ pattern = '%+03d%02d'
564564 elif width == 'iso8601' :
565- pattern = u '%+03d:%02d'
565+ pattern = '%+03d:%02d'
566566 else :
567567 pattern = locale .zone_formats ['gmt' ] % '%+03d:%02d'
568568 return pattern % (hours , seconds // 60 )
@@ -1083,10 +1083,10 @@ def _iter_patterns(a_unit):
10831083 break
10841084 # This really should not happen
10851085 if pattern is None :
1086- return u ''
1086+ return ''
10871087 return pattern .replace ('{0}' , str (value ))
10881088
1089- return u ''
1089+ return ''
10901090
10911091
10921092def _format_fallback_interval (
@@ -1349,8 +1349,7 @@ def parse_date(
13491349 month_idx = format_str .index ('l' )
13501350 day_idx = format_str .index ('d' )
13511351
1352- indexes = [(year_idx , 'Y' ), (month_idx , 'M' ), (day_idx , 'D' )]
1353- indexes .sort ()
1352+ indexes = sorted ([(year_idx , 'Y' ), (month_idx , 'M' ), (day_idx , 'D' )])
13541353 indexes = {item [1 ]: idx for idx , item in enumerate (indexes )}
13551354
13561355 # FIXME: this currently only supports numbers, but should also support month
@@ -1399,8 +1398,7 @@ def parse_time(
13991398 min_idx = format_str .index ('m' )
14001399 sec_idx = format_str .index ('s' )
14011400
1402- indexes = [(hour_idx , 'H' ), (min_idx , 'M' ), (sec_idx , 'S' )]
1403- indexes .sort ()
1401+ indexes = sorted ([(hour_idx , 'H' ), (min_idx , 'M' ), (sec_idx , 'S' )])
14041402 indexes = {item [1 ]: idx for idx , item in enumerate (indexes )}
14051403
14061404 # TODO: support time zones
@@ -1436,7 +1434,7 @@ def __str__(self) -> str:
14361434 return pat
14371435
14381436 def __mod__ (self , other : DateTimeFormat ) -> str :
1439- if type (other ) is not DateTimeFormat :
1437+ if not isinstance (other , DateTimeFormat ) :
14401438 return NotImplemented
14411439 return self .format % other
14421440
@@ -1829,7 +1827,7 @@ def parse_pattern(pattern: str) -> DateTimePattern:
18291827
18301828 :param pattern: the formatting pattern to parse
18311829 """
1832- if type (pattern ) is DateTimePattern :
1830+ if isinstance (pattern , DateTimePattern ) :
18331831 return pattern
18341832
18351833 if pattern in _pattern_cache :
@@ -1849,7 +1847,7 @@ def parse_pattern(pattern: str) -> DateTimePattern:
18491847 else :
18501848 raise NotImplementedError (f"Unknown token type: { tok_type } " )
18511849
1852- _pattern_cache [pattern ] = pat = DateTimePattern (pattern , u '' .join (result ))
1850+ _pattern_cache [pattern ] = pat = DateTimePattern (pattern , '' .join (result ))
18531851 return pat
18541852
18551853
@@ -1884,7 +1882,7 @@ def append_field():
18841882 fieldchar [0 ] = ''
18851883 fieldnum [0 ] = 0
18861884
1887- for idx , char in enumerate ( pattern .replace ("''" , '\0 ' ) ):
1885+ for char in pattern .replace ("''" , '\0 ' ):
18881886 if quotebuf is None :
18891887 if char == "'" : # quote started
18901888 if fieldchar [0 ]:
0 commit comments