mirror of
https://github.com/ansible-collections/community.crypto.git
synced 2026-05-07 13:53:06 +00:00
Reformat everything with black.
I had to undo the u string prefix removals to not drop Python 2 compatibility. That's why black isn't enabled in antsibull-nox.toml yet.
This commit is contained in:
@@ -33,13 +33,13 @@ except AttributeError:
|
||||
return _DURATION_ZERO
|
||||
|
||||
def tzname(self, dt):
|
||||
return 'UTC'
|
||||
return "UTC"
|
||||
|
||||
def fromutc(self, dt):
|
||||
return dt
|
||||
|
||||
def __repr__(self):
|
||||
return 'UTC'
|
||||
return "UTC"
|
||||
|
||||
UTC = _UTCClass()
|
||||
|
||||
@@ -69,20 +69,29 @@ def remove_timezone(timestamp):
|
||||
|
||||
|
||||
def add_or_remove_timezone(timestamp, with_timezone):
|
||||
return ensure_utc_timezone(timestamp) if with_timezone else remove_timezone(timestamp)
|
||||
return (
|
||||
ensure_utc_timezone(timestamp) if with_timezone else remove_timezone(timestamp)
|
||||
)
|
||||
|
||||
|
||||
if sys.version_info < (3, 3):
|
||||
|
||||
def get_epoch_seconds(timestamp):
|
||||
epoch = datetime.datetime(1970, 1, 1, tzinfo=UTC if timestamp.tzinfo is not None else None)
|
||||
epoch = datetime.datetime(
|
||||
1970, 1, 1, tzinfo=UTC if timestamp.tzinfo is not None else None
|
||||
)
|
||||
delta = timestamp - epoch
|
||||
try:
|
||||
return delta.total_seconds()
|
||||
except AttributeError:
|
||||
# Python 2.6 and earlier: total_seconds() does not yet exist, so we use the formula from
|
||||
# https://docs.python.org/2/library/datetime.html#datetime.timedelta.total_seconds
|
||||
return (delta.microseconds + (delta.seconds + delta.days * 24 * 3600) * 10**6) / 10**6
|
||||
return (
|
||||
delta.microseconds + (delta.seconds + delta.days * 24 * 3600) * 10**6
|
||||
) / 10**6
|
||||
|
||||
else:
|
||||
|
||||
def get_epoch_seconds(timestamp):
|
||||
if timestamp.tzinfo is None:
|
||||
# timestamp.timestamp() is offset by the local timezone if timestamp has no timezone
|
||||
@@ -101,7 +110,8 @@ def convert_relative_to_datetime(relative_time_string, with_timezone=False, now=
|
||||
|
||||
parsed_result = re.match(
|
||||
r"^(?P<prefix>[+-])((?P<weeks>\d+)[wW])?((?P<days>\d+)[dD])?((?P<hours>\d+)[hH])?((?P<minutes>\d+)[mM])?((?P<seconds>\d+)[sS]?)?$",
|
||||
relative_time_string)
|
||||
relative_time_string,
|
||||
)
|
||||
|
||||
if parsed_result is None or len(relative_time_string) == 1:
|
||||
# not matched or only a single "+" or "-"
|
||||
@@ -115,11 +125,9 @@ def convert_relative_to_datetime(relative_time_string, with_timezone=False, now=
|
||||
if parsed_result.group("hours") is not None:
|
||||
offset += datetime.timedelta(hours=int(parsed_result.group("hours")))
|
||||
if parsed_result.group("minutes") is not None:
|
||||
offset += datetime.timedelta(
|
||||
minutes=int(parsed_result.group("minutes")))
|
||||
offset += datetime.timedelta(minutes=int(parsed_result.group("minutes")))
|
||||
if parsed_result.group("seconds") is not None:
|
||||
offset += datetime.timedelta(
|
||||
seconds=int(parsed_result.group("seconds")))
|
||||
offset += datetime.timedelta(seconds=int(parsed_result.group("seconds")))
|
||||
|
||||
if now is None:
|
||||
now = get_now_datetime(with_timezone=with_timezone)
|
||||
@@ -132,33 +140,43 @@ def convert_relative_to_datetime(relative_time_string, with_timezone=False, now=
|
||||
return now - offset
|
||||
|
||||
|
||||
def get_relative_time_option(input_string, input_name, backend='cryptography', with_timezone=False, now=None):
|
||||
def get_relative_time_option(
|
||||
input_string, input_name, backend="cryptography", with_timezone=False, now=None
|
||||
):
|
||||
"""Return an absolute timespec if a relative timespec or an ASN1 formatted
|
||||
string is provided.
|
||||
string is provided.
|
||||
|
||||
The return value will be a datetime object for the cryptography backend,
|
||||
and a ASN1 formatted string for the pyopenssl backend."""
|
||||
The return value will be a datetime object for the cryptography backend,
|
||||
and a ASN1 formatted string for the pyopenssl backend."""
|
||||
result = to_native(input_string)
|
||||
if result is None:
|
||||
raise OpenSSLObjectError(
|
||||
'The timespec "%s" for %s is not valid' %
|
||||
input_string, input_name)
|
||||
'The timespec "%s" for %s is not valid' % input_string, input_name
|
||||
)
|
||||
# Relative time
|
||||
if result.startswith("+") or result.startswith("-"):
|
||||
result_datetime = convert_relative_to_datetime(result, with_timezone=with_timezone, now=now)
|
||||
if backend == 'pyopenssl':
|
||||
result_datetime = convert_relative_to_datetime(
|
||||
result, with_timezone=with_timezone, now=now
|
||||
)
|
||||
if backend == "pyopenssl":
|
||||
return result_datetime.strftime("%Y%m%d%H%M%SZ")
|
||||
elif backend == 'cryptography':
|
||||
elif backend == "cryptography":
|
||||
return result_datetime
|
||||
# Absolute time
|
||||
if backend == 'pyopenssl':
|
||||
if backend == "pyopenssl":
|
||||
return input_string
|
||||
elif backend == 'cryptography':
|
||||
elif backend == "cryptography":
|
||||
for date_fmt, length in [
|
||||
('%Y%m%d%H%M%SZ', 15), # this also parses '202401020304Z', but as datetime(2024, 1, 2, 3, 0, 4)
|
||||
('%Y%m%d%H%MZ', 13),
|
||||
('%Y%m%d%H%M%S%z', 14 + 5), # this also parses '202401020304+0000', but as datetime(2024, 1, 2, 3, 0, 4, tzinfo=...)
|
||||
('%Y%m%d%H%M%z', 12 + 5),
|
||||
(
|
||||
"%Y%m%d%H%M%SZ",
|
||||
15,
|
||||
), # this also parses '202401020304Z', but as datetime(2024, 1, 2, 3, 0, 4)
|
||||
("%Y%m%d%H%MZ", 13),
|
||||
(
|
||||
"%Y%m%d%H%M%S%z",
|
||||
14 + 5,
|
||||
), # this also parses '202401020304+0000', but as datetime(2024, 1, 2, 3, 0, 4, tzinfo=...)
|
||||
("%Y%m%d%H%M%z", 12 + 5),
|
||||
]:
|
||||
if len(result) != length:
|
||||
continue
|
||||
@@ -170,6 +188,5 @@ def get_relative_time_option(input_string, input_name, backend='cryptography', w
|
||||
return add_or_remove_timezone(res, with_timezone=with_timezone)
|
||||
|
||||
raise OpenSSLObjectError(
|
||||
'The time spec "%s" for %s is invalid' %
|
||||
(input_string, input_name)
|
||||
'The time spec "%s" for %s is invalid' % (input_string, input_name)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user