From 1199780155f666b6806d563a29d093a251664009 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 30 Jan 2021 09:13:47 +0100 Subject: Adding upstream version 2.1.2. Signed-off-by: Daniel Baumann --- pendulum/parsing/__init__.py | 234 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 pendulum/parsing/__init__.py (limited to 'pendulum/parsing/__init__.py') diff --git a/pendulum/parsing/__init__.py b/pendulum/parsing/__init__.py new file mode 100644 index 0000000..400f119 --- /dev/null +++ b/pendulum/parsing/__init__.py @@ -0,0 +1,234 @@ +import copy +import os +import re +import struct + +from datetime import date +from datetime import datetime +from datetime import time + +from dateutil import parser + +from .exceptions import ParserError + + +with_extensions = os.getenv("PENDULUM_EXTENSIONS", "1") == "1" + +try: + if not with_extensions or struct.calcsize("P") == 4: + raise ImportError() + + from ._iso8601 import parse_iso8601 +except ImportError: + from .iso8601 import parse_iso8601 + + +COMMON = re.compile( + # Date (optional) + "^" + "(?P" + " (?P" # Classic date (YYYY-MM-DD) + r" (?P\d{4})" # Year + " (?P" + r" (?P[/:])?(?P\d{2})" # Month (optional) + r" ((?P[/:])?(?P\d{2}))" # Day (optional) + " )?" + " )" + ")?" + # Time (optional) + "(?P