networktocode / circuit-maintenance-parser

Python library to parse circuit maintenances from network service providers.
Apache License 2.0
71 stars 23 forks source link

Sparkle maintenance failed due to unknown datetime string format (MMM/DD/YYY) #211

Open csessh opened 1 year ago

csessh commented 1 year ago

Frankly, I'm not entirely sure if this classifies as bug or feature request. Sparkle started sending us maintenance notifications with this datetime format: MMM/DD/YYYY HH:mm UTC. For example: Jan/27/2023 03:00 UTC.

Currently circuit-maintenance-parser doesn't support this format and it's not a common/standard format. However, it can very much be parsed:

Python 3.10.9 (main, Dec 15 2022, 17:11:09) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import arrow
>>> a = "Jan/27/2023 03:00 UTC"
>>> arrow.get(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/tdo/Documents/dev/MNA/lib/python3.10/site-packages/arrow/api.py", line 91, in get
    return _factory.get(*args, **kwargs)
  File "/Users/tdo/Documents/dev/MNA/lib/python3.10/site-packages/arrow/factory.py", line 254, in get
    dt = parser.DateTimeParser(locale).parse_iso(arg, normalize_whitespace)
  File "/Users/tdo/Documents/dev/MNA/lib/python3.10/site-packages/arrow/parser.py", line 208, in parse_iso
    raise ParserError(
arrow.parser.ParserError: Expected an ISO 8601-like string, but was given 'Jan/27/2023 03:00 UTC'. Try passing in a format string to resolve this.
>>> arrow.get(a, 'MMM/DD/YYYY HH:mm UTC')
<Arrow [2023-01-27T03:00:00+00:00]>

Environment

Expected Behavior

We expected a successfully parsed Maintenance object.

Observed Behavior

We get an error as shown here:

(CMP) tdo@PlayStation [16:02:13] [~]
-> % circuit-maintenance-parser --data-file ~/Downloads/NETENG-22869.eml --data-type email --provider-type sparkle
Provider processing failed: Failed creating Maintenance notification for Sparkle.
Details:
- Processor CombinedProcessor from Sparkle failed due to: Unknown string format: Jan/27/202303:00 UTC

Steps to Reproduce

  1. unzip sparkle-email.zip
  2. circuit-maintenance-parser --data-file /path/to/sparkle.eml --data-type email --provider-type sparkle
csessh commented 1 year ago

@chadell just a quick follow up to see if there's any traction with this issue?

chadell commented 1 year ago

Hi @csessh , I have not seen any PR for it yet, but as I see you already have a workaround, could you contribute it back?