require at least python 3.10 and remove old runtime patch
This commit is contained in:
@@ -166,66 +166,3 @@ for alias in ["windows-874", "windows_874"]:
|
|||||||
aliases[alias] = "cp874"
|
aliases[alias] = "cp874"
|
||||||
|
|
||||||
setattr(encodings.aliases, "aliases", aliases)
|
setattr(encodings.aliases, "aliases", aliases)
|
||||||
|
|
||||||
|
|
||||||
if version_info.major == 3 and version_info.minor < 10:
|
|
||||||
# https://bugs.python.org/issue30681
|
|
||||||
#
|
|
||||||
# fix: https://github.com/python/cpython/pull/22090
|
|
||||||
|
|
||||||
import email.errors
|
|
||||||
from email.errors import HeaderDefect
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidDateDefect(HeaderDefect):
|
|
||||||
"""Header has unparseable or invalid date"""
|
|
||||||
|
|
||||||
|
|
||||||
setattr(email.errors, "InvalidDateDefect", InvalidDateDefect)
|
|
||||||
|
|
||||||
|
|
||||||
import email.utils
|
|
||||||
from email.utils import _parsedate_tz
|
|
||||||
import datetime
|
|
||||||
|
|
||||||
|
|
||||||
def parsedate_to_datetime(data):
|
|
||||||
parsed_date_tz = _parsedate_tz(data)
|
|
||||||
if parsed_date_tz is None:
|
|
||||||
raise ValueError('Invalid date value or format "%s"' % str(data))
|
|
||||||
*dtuple, tz = parsed_date_tz
|
|
||||||
if tz is None:
|
|
||||||
return datetime.datetime(*dtuple[:6])
|
|
||||||
return datetime.datetime(*dtuple[:6],
|
|
||||||
tzinfo=datetime.timezone(datetime.timedelta(seconds=tz)))
|
|
||||||
|
|
||||||
|
|
||||||
setattr(email.utils, "parsedate_to_datetime", parsedate_to_datetime)
|
|
||||||
|
|
||||||
|
|
||||||
import email.headerregistry
|
|
||||||
from email import utils, _header_value_parser as parser
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def parse(cls, value, kwds):
|
|
||||||
if not value:
|
|
||||||
kwds['defects'].append(errors.HeaderMissingRequiredValue())
|
|
||||||
kwds['datetime'] = None
|
|
||||||
kwds['decoded'] = ''
|
|
||||||
kwds['parse_tree'] = parser.TokenList()
|
|
||||||
return
|
|
||||||
if isinstance(value, str):
|
|
||||||
kwds['decoded'] = value
|
|
||||||
try:
|
|
||||||
value = utils.parsedate_to_datetime(value)
|
|
||||||
except ValueError:
|
|
||||||
kwds['defects'].append(errors.InvalidDateDefect('Invalid date value or format'))
|
|
||||||
kwds['datetime'] = None
|
|
||||||
kwds['parse_tree'] = parser.TokenList()
|
|
||||||
return
|
|
||||||
kwds['datetime'] = value
|
|
||||||
kwds['decoded'] = utils.format_datetime(kwds['datetime'])
|
|
||||||
kwds['parse_tree'] = cls.value_parser(kwds['decoded'])
|
|
||||||
|
|
||||||
|
|
||||||
setattr(email.headerregistry.DateHeader, "parse", parse)
|
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -49,5 +49,5 @@ setup(name = "pyquarantine",
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
install_requires = ["pymilter >= 1.5", "jsonschema", "netaddr", "beautifulsoup4[lxml]", "peewee"],
|
install_requires = ["pymilter >= 1.5", "jsonschema", "netaddr", "beautifulsoup4[lxml]", "peewee"],
|
||||||
python_requires = ">=3.9"
|
python_requires = ">=3.10"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user