rashdf 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rashdf-0.2.0 → rashdf-0.2.1}/PKG-INFO +1 -1
- {rashdf-0.2.0 → rashdf-0.2.1}/pyproject.toml +1 -1
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf/utils.py +24 -5
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf.egg-info/PKG-INFO +1 -1
- {rashdf-0.2.0 → rashdf-0.2.1}/tests/test_utils.py +22 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/LICENSE +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/README.md +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/setup.cfg +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/cli.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf/__init__.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf/base.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf/geom.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf/plan.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf.egg-info/SOURCES.txt +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf.egg-info/dependency_links.txt +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf.egg-info/entry_points.txt +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf.egg-info/requires.txt +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/src/rashdf.egg-info/top_level.txt +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/tests/test_cli.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/tests/test_geom.py +0 -0
- {rashdf-0.2.0 → rashdf-0.2.1}/tests/test_plan.py +0 -0
|
@@ -8,23 +8,34 @@ from typing import Any, List, Tuple, Union, Optional
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def parse_ras_datetime(datetime_str: str) -> datetime:
|
|
11
|
-
"""
|
|
11
|
+
"""
|
|
12
|
+
Parse a datetime string from a RAS file into a datetime object. If the datetime has
|
|
13
|
+
a time of 2400, then it is converted to midnight of the next day.
|
|
12
14
|
|
|
13
15
|
Parameters
|
|
14
16
|
----------
|
|
15
|
-
datetime_str (str): The datetime string to be parsed. The string should be in the format "ddMMMyyyy
|
|
17
|
+
datetime_str (str): The datetime string to be parsed. The string should be in the format "ddMMMyyyy HH:mm:ss".
|
|
16
18
|
|
|
17
19
|
Returns
|
|
18
20
|
-------
|
|
19
21
|
datetime: A datetime object representing the parsed datetime.
|
|
20
22
|
"""
|
|
21
23
|
format = "%d%b%Y %H:%M:%S"
|
|
22
|
-
|
|
24
|
+
|
|
25
|
+
if datetime_str.endswith("24:00:00"):
|
|
26
|
+
datetime_str = datetime_str.replace("24:00:00", "00:00:00")
|
|
27
|
+
parsed_dt = datetime.strptime(datetime_str, format)
|
|
28
|
+
parsed_dt += timedelta(days=1)
|
|
29
|
+
else:
|
|
30
|
+
parsed_dt = datetime.strptime(datetime_str, format)
|
|
31
|
+
|
|
32
|
+
return parsed_dt
|
|
23
33
|
|
|
24
34
|
|
|
25
35
|
def parse_ras_simulation_window_datetime(datetime_str) -> datetime:
|
|
26
36
|
"""
|
|
27
|
-
Parse a datetime string from a RAS simulation window into a datetime object.
|
|
37
|
+
Parse a datetime string from a RAS simulation window into a datetime object.If the datetime has a
|
|
38
|
+
time of 2400, then it is converted to midnight of the next day.
|
|
28
39
|
|
|
29
40
|
Parameters
|
|
30
41
|
----------
|
|
@@ -35,7 +46,15 @@ def parse_ras_simulation_window_datetime(datetime_str) -> datetime:
|
|
|
35
46
|
datetime: A datetime object representing the parsed datetime.
|
|
36
47
|
"""
|
|
37
48
|
format = "%d%b%Y %H%M"
|
|
38
|
-
|
|
49
|
+
|
|
50
|
+
if datetime_str.endswith("2400"):
|
|
51
|
+
datetime_str = datetime_str.replace("2400", "0000")
|
|
52
|
+
parsed_dt = datetime.strptime(datetime_str, format)
|
|
53
|
+
parsed_dt += timedelta(days=1)
|
|
54
|
+
else:
|
|
55
|
+
parsed_dt = datetime.strptime(datetime_str, format)
|
|
56
|
+
|
|
57
|
+
return parsed_dt
|
|
39
58
|
|
|
40
59
|
|
|
41
60
|
def parse_run_time_window(window: str) -> Tuple[datetime, datetime]:
|
|
@@ -15,13 +15,35 @@ def test_convert_ras_hdf_value():
|
|
|
15
15
|
assert utils.convert_ras_hdf_value(b"15Mar2024 16:39:01") == datetime(
|
|
16
16
|
2024, 3, 15, 16, 39, 1
|
|
17
17
|
)
|
|
18
|
+
assert utils.convert_ras_hdf_value(b"15Mar2024 24:00:00") == datetime(
|
|
19
|
+
2024, 3, 16, 0, 0, 0
|
|
20
|
+
)
|
|
18
21
|
assert utils.convert_ras_hdf_value(b"15Mar2024 16:39:01 to 16Mar2024 16:39:01") == [
|
|
19
22
|
datetime(2024, 3, 15, 16, 39, 1),
|
|
20
23
|
datetime(2024, 3, 16, 16, 39, 1),
|
|
21
24
|
]
|
|
25
|
+
assert utils.convert_ras_hdf_value(b"18Mar2024 24:00:00 to 19Mar2024 24:00:00") == [
|
|
26
|
+
datetime(2024, 3, 19, 0, 0, 0),
|
|
27
|
+
datetime(2024, 3, 20, 0, 0, 0),
|
|
28
|
+
]
|
|
22
29
|
assert utils.convert_ras_hdf_value(b"01:23:45") == timedelta(
|
|
23
30
|
hours=1, minutes=23, seconds=45
|
|
24
31
|
)
|
|
32
|
+
assert utils.convert_ras_hdf_value(b"15Mar2024 2400") == datetime(
|
|
33
|
+
2024, 3, 16, 0, 0, 0
|
|
34
|
+
)
|
|
35
|
+
assert utils.convert_ras_hdf_value(b"15Mar2024 2315") == datetime(
|
|
36
|
+
2024, 3, 15, 23, 15, 0
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
assert utils.convert_ras_hdf_value(b"15Mar2024 1639 to 16Mar2024 1639") == [
|
|
40
|
+
datetime(2024, 3, 15, 16, 39, 0),
|
|
41
|
+
datetime(2024, 3, 16, 16, 39, 0),
|
|
42
|
+
]
|
|
43
|
+
assert utils.convert_ras_hdf_value(b"18Mar2024 2400 to 19Mar2024 2400") == [
|
|
44
|
+
datetime(2024, 3, 19, 0, 0, 0),
|
|
45
|
+
datetime(2024, 3, 20, 0, 0, 0),
|
|
46
|
+
]
|
|
25
47
|
|
|
26
48
|
|
|
27
49
|
def test_df_datetimes_to_str():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|