everysk-lib 1.9.6__tar.gz → 1.9.8__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.
- {everysk_lib-1.9.6/src/everysk_lib.egg-info → everysk_lib-1.9.8}/PKG-INFO +2 -2
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/pyproject.toml +1 -1
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/datetime.py +83 -19
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/secrets/base.py +4 -1
- {everysk_lib-1.9.6 → everysk_lib-1.9.8/src/everysk_lib.egg-info}/PKG-INFO +2 -2
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk_lib.egg-info/requires.txt +1 -1
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/LICENSE.txt +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/MANIFEST.in +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/README.md +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/setup.cfg +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/setup.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/_version.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_requestor.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/api_resource.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/calculation.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/custom_index.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/datastore.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/file.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/market_data.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/parser.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/portfolio.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/private_security.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/report.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/report_template.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/worker_execution.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/workflow.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/workflow_execution.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/api_resources/workspace.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/http_client.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/api/utils.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/config.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/_tests/serialize/test_json.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/_tests/serialize/test_orjson.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/_tests/serialize/test_pickle.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/cloud_function/main.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/cloud_function/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/compress.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/calendar.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/date.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/date_expression.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/date_mixin.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/datetime/date_settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/exceptions.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/fields.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/firestore.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/fixtures/_settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/fixtures/other/_settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/fixtures/user_agents.json +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/http.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/lists.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/log.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/number.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/object.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/redis.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/serialize.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/sftp.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/signing.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/slack.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/string.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/threads.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/undefined.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/unittests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/core/workers.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/cache.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/compliance.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/cryptography.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/lock.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/market_data.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/engines/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/base_list.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/custom_index/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/custom_index/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/datastore/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/datastore/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/fields.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/file/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/file/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/portfolio/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/portfolio/securities.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/portfolio/security.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/portfolio/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/private_security/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/private_security/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/query.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/report/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/report/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/script.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/secrets/script.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/secrets/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/tags.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/worker_execution/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/worker_execution/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/workflow_execution/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/workflow_execution/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/workspace/base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/workspace/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/worker_base.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/applications.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/endpoints.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/example_api.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/middlewares.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/requests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/responses.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/routing.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/server/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sql/__init__.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sql/connection.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sql/model.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sql/query.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sql/settings.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sql/utils.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/tests.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/utils.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/version.py +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk_lib.egg-info/.gitignore +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk_lib.egg-info/SOURCES.txt +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk_lib.egg-info/dependency_links.txt +0 -0
- {everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk_lib.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: everysk-lib
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.8
|
|
4
4
|
Summary: Generic lib to share python code on Everysk.
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
Project-URL: Homepage, https://everysk.com/
|
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
12
12
|
Requires-Python: >=3.11
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE.txt
|
|
15
|
-
Requires-Dist: python-dateutil<=
|
|
15
|
+
Requires-Dist: python-dateutil<=3.0.0,>=2.8.2
|
|
16
16
|
Requires-Dist: holidays==0.51
|
|
17
17
|
Requires-Dist: tzdata<=2025.2,>=2024.1
|
|
18
18
|
Provides-Extra: requests
|
|
@@ -7,17 +7,27 @@
|
|
|
7
7
|
# without authorization of EVERYSK TECHNOLOGIES is prohibited.
|
|
8
8
|
#
|
|
9
9
|
###############################################################################
|
|
10
|
-
from datetime import datetime, timezone
|
|
11
|
-
from typing import Any,
|
|
10
|
+
from datetime import datetime, timezone # pylint: disable=import-self
|
|
11
|
+
from typing import Any, Self
|
|
12
12
|
from zoneinfo import ZoneInfo
|
|
13
13
|
|
|
14
|
-
from everysk.core.datetime.date_mixin import DateMixin
|
|
15
14
|
from everysk.core.datetime import date_settings
|
|
15
|
+
from everysk.core.datetime.date_mixin import DateMixin
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
class DateTime(DateMixin, datetime):
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
class DateTime(DateMixin, datetime): # pylint: disable=inherit-non-class
|
|
19
|
+
def __new__(
|
|
20
|
+
cls,
|
|
21
|
+
year: int,
|
|
22
|
+
month: int = None,
|
|
23
|
+
day: int = None,
|
|
24
|
+
hour: int = 0,
|
|
25
|
+
minute: int = 0,
|
|
26
|
+
second: int = 0,
|
|
27
|
+
microsecond: int = 0,
|
|
28
|
+
tzinfo: ZoneInfo = None,
|
|
29
|
+
fold: int = 0,
|
|
30
|
+
) -> Self:
|
|
21
31
|
"""
|
|
22
32
|
Create a new DateTime object.
|
|
23
33
|
|
|
@@ -46,10 +56,17 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
46
56
|
See Also:
|
|
47
57
|
[Python Documentation](https://docs.python.org/3/library/datetime.html#datetime.datetime.fold)
|
|
48
58
|
"""
|
|
49
|
-
# We check for tzinfo to enforce the UTC if
|
|
50
|
-
|
|
59
|
+
# We check for tzinfo to enforce the UTC if it is not provided
|
|
60
|
+
# This is useful for all methods that do not provide tzinfo except replace - see below
|
|
61
|
+
if tzinfo is None:
|
|
51
62
|
tzinfo = ZoneInfo('UTC')
|
|
52
63
|
|
|
64
|
+
# https://everysk.atlassian.net/browse/COD-13539
|
|
65
|
+
# None is a valid tzinfo used to remove it, only use the replace method so we exchange it for Undefined.
|
|
66
|
+
# See replace method at the bottom of this file.
|
|
67
|
+
if tzinfo is Undefined:
|
|
68
|
+
tzinfo = None
|
|
69
|
+
|
|
53
70
|
args = (year, month, day, hour, minute, second, microsecond)
|
|
54
71
|
kwargs = {'tzinfo': tzinfo, 'fold': fold}
|
|
55
72
|
# To keep the pickle support we need to check the year param
|
|
@@ -87,9 +104,20 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
87
104
|
DateTime(2023, 9, 15, 0, 0, tzinfo=zoneinfo.ZoneInfo(key='UTC'))
|
|
88
105
|
"""
|
|
89
106
|
try:
|
|
90
|
-
value = cls(
|
|
107
|
+
value = cls(
|
|
108
|
+
value.year,
|
|
109
|
+
value.month,
|
|
110
|
+
value.day,
|
|
111
|
+
value.hour,
|
|
112
|
+
value.minute,
|
|
113
|
+
value.second,
|
|
114
|
+
value.microsecond,
|
|
115
|
+
value.tzinfo,
|
|
116
|
+
)
|
|
91
117
|
except AttributeError as error:
|
|
92
|
-
raise ValueError(
|
|
118
|
+
raise ValueError(
|
|
119
|
+
f"Invalid instantiation of class '{cls.__name__}' from '{value.__class__.__name__}'"
|
|
120
|
+
) from error
|
|
93
121
|
|
|
94
122
|
return value
|
|
95
123
|
|
|
@@ -237,7 +265,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
237
265
|
# 2023-08-08T21:29:54.5713046Z -> This is from Refinitiv
|
|
238
266
|
if '.' in date_string:
|
|
239
267
|
# We need to get all numbers after the '.'
|
|
240
|
-
milliseconds = date_string[date_string.index('.') + 1
|
|
268
|
+
milliseconds = date_string[date_string.index('.') + 1 : -1]
|
|
241
269
|
|
|
242
270
|
# Then we need to transform to be 6 length exact
|
|
243
271
|
# rjust will put 0 to the right until reach 6 in size
|
|
@@ -311,13 +339,15 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
311
339
|
elif force_time == 'LAST_MINUTE':
|
|
312
340
|
hour, minute, second, microsecond = 23, 59, 59, 999999
|
|
313
341
|
else:
|
|
314
|
-
raise ValueError(
|
|
342
|
+
raise ValueError(
|
|
343
|
+
'Invalid force_time. Please choose one of the following: NOW, MIDDAY, FIRST_MINUTE, LAST_MINUTE.'
|
|
344
|
+
)
|
|
315
345
|
|
|
316
346
|
return self.replace(hour=hour, minute=minute, second=second, microsecond=microsecond)
|
|
317
347
|
|
|
318
348
|
# OLD string_to_date_time
|
|
319
349
|
@classmethod
|
|
320
|
-
def strptime(cls, date_string: str, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) -> Self:
|
|
350
|
+
def strptime(cls, date_string: str, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) -> Self: # pylint: disable=redefined-builtin
|
|
321
351
|
"""
|
|
322
352
|
Parse a string representing a date and time into a DateTime object.
|
|
323
353
|
|
|
@@ -344,7 +374,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
344
374
|
return super().strptime(date_string, format)
|
|
345
375
|
|
|
346
376
|
@classmethod
|
|
347
|
-
def strptime_or_null(cls, date_string: str, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) ->
|
|
377
|
+
def strptime_or_null(cls, date_string: str, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) -> Self | None: # pylint: disable=redefined-builtin
|
|
348
378
|
"""
|
|
349
379
|
Parse a string representing a date and time into a DateTime object, or return None if parsing fails.
|
|
350
380
|
|
|
@@ -373,7 +403,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
373
403
|
|
|
374
404
|
try:
|
|
375
405
|
date_time = cls.strptime(date_string, format=format)
|
|
376
|
-
except Exception:
|
|
406
|
+
except Exception: # pylint: disable=broad-exception-caught
|
|
377
407
|
pass
|
|
378
408
|
|
|
379
409
|
return date_time
|
|
@@ -421,7 +451,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
421
451
|
force_time = '23:59:59'
|
|
422
452
|
return super().strptime(f'{date_string} {force_time}', date_settings.DEFAULT_DATE_TIME_FORMAT)
|
|
423
453
|
|
|
424
|
-
def strftime(self, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) -> str:
|
|
454
|
+
def strftime(self, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) -> str: # pylint: disable=redefined-builtin, useless-parent-delegation
|
|
425
455
|
"""
|
|
426
456
|
Convert a DateTime object to a date string.
|
|
427
457
|
|
|
@@ -449,7 +479,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
449
479
|
return super().strftime(format)
|
|
450
480
|
|
|
451
481
|
@classmethod
|
|
452
|
-
def strftime_or_null(cls, datetime_: Any, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) ->
|
|
482
|
+
def strftime_or_null(cls, datetime_: Any, format: str = date_settings.DEFAULT_DATE_TIME_FORMAT) -> str | None: # pylint: disable=redefined-builtin
|
|
453
483
|
"""
|
|
454
484
|
Convert a `DateTime` object to a string representation or return None if the input is not a Date.
|
|
455
485
|
|
|
@@ -478,7 +508,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
478
508
|
if datetime_ is not None:
|
|
479
509
|
try:
|
|
480
510
|
datetime_ = datetime_.strftime(format=format)
|
|
481
|
-
except Exception:
|
|
511
|
+
except Exception: # pylint: disable=broad-exception-caught
|
|
482
512
|
datetime_ = None
|
|
483
513
|
|
|
484
514
|
return datetime_
|
|
@@ -542,7 +572,7 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
542
572
|
return out
|
|
543
573
|
|
|
544
574
|
@classmethod
|
|
545
|
-
def date_to_date_time(cls, date_: 'Date', frc_time: str = date_settings.DEFAULT_FORCE_TIME) -> Self:
|
|
575
|
+
def date_to_date_time(cls, date_: 'Date', frc_time: str = date_settings.DEFAULT_FORCE_TIME) -> Self: # type: ignore
|
|
546
576
|
"""
|
|
547
577
|
Convert a Date object to a DateTime object.
|
|
548
578
|
|
|
@@ -647,3 +677,37 @@ class DateTime(DateMixin, datetime): #pylint: disable=inherit-non-class
|
|
|
647
677
|
True
|
|
648
678
|
"""
|
|
649
679
|
return DateTime.now().date() == self.date()
|
|
680
|
+
|
|
681
|
+
def replace(self, **kwargs: Any) -> Self:
|
|
682
|
+
"""
|
|
683
|
+
Return a new DateTime object with specified attributes replaced.
|
|
684
|
+
|
|
685
|
+
This method creates a new DateTime object by replacing specified attributes
|
|
686
|
+
of the current DateTime object with new values provided as keyword arguments.
|
|
687
|
+
|
|
688
|
+
We need to use kwargs to not put required parameters and allow only the ones that are passed to be replaced.
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
Args:
|
|
692
|
+
**kwargs: Keyword arguments representing the attributes to be replaced.
|
|
693
|
+
Valid attributes include 'year', 'month', 'day', 'hour', 'minute',
|
|
694
|
+
'second', 'microsecond', 'tzinfo', and 'fold'.
|
|
695
|
+
|
|
696
|
+
Example:
|
|
697
|
+
Replace attributes of a DateTime object:
|
|
698
|
+
>>> dt = DateTime(2023, 9, 15, 12, 0)
|
|
699
|
+
>>> new_dt = dt.replace(hour=15, minute=30)
|
|
700
|
+
>>> new_dt
|
|
701
|
+
DateTime(2023, 9, 15, 15, 30, tzinfo=zoneinfo.ZoneInfo(key='UTC'))
|
|
702
|
+
"""
|
|
703
|
+
import sys # noqa: PLC0415
|
|
704
|
+
|
|
705
|
+
# On Python 3.12.11 and below, the replace method validate tzinfo, so we can't pass Undefined
|
|
706
|
+
# but the tzinfo=None works as expected.
|
|
707
|
+
if sys.version_info[:3] >= (3, 12, 12):
|
|
708
|
+
# https://everysk.atlassian.net/browse/COD-13539
|
|
709
|
+
# We use Undefined to identify when we want to remove the tzinfo
|
|
710
|
+
if 'tzinfo' in kwargs and kwargs['tzinfo'] is None:
|
|
711
|
+
kwargs['tzinfo'] = Undefined
|
|
712
|
+
|
|
713
|
+
return super().replace(**kwargs)
|
|
@@ -119,7 +119,10 @@ class Secrets(BaseEntity, metaclass=SecretsScriptMetaClass):
|
|
|
119
119
|
path (str): The path to retrieve the value from.
|
|
120
120
|
|
|
121
121
|
Returns:
|
|
122
|
-
Any: The value retrieved from the path.
|
|
122
|
+
Any | None: The value retrieved from the path or None if the path is empty.
|
|
123
123
|
"""
|
|
124
|
+
if not path:
|
|
125
|
+
return None
|
|
126
|
+
|
|
124
127
|
_, _ = cls._split_path(path)
|
|
125
128
|
return cls.get_response(params={'path': path})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: everysk-lib
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.8
|
|
4
4
|
Summary: Generic lib to share python code on Everysk.
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
Project-URL: Homepage, https://everysk.com/
|
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
12
12
|
Requires-Python: >=3.11
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE.txt
|
|
15
|
-
Requires-Dist: python-dateutil<=
|
|
15
|
+
Requires-Dist: python-dateutil<=3.0.0,>=2.8.2
|
|
16
16
|
Requires-Dist: holidays==0.51
|
|
17
17
|
Requires-Dist: tzdata<=2025.2,>=2024.1
|
|
18
18
|
Provides-Extra: requests
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/private_security/settings.py
RENAMED
|
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
|
{everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/worker_execution/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
{everysk_lib-1.9.6 → everysk_lib-1.9.8}/src/everysk/sdk/entities/workflow_execution/settings.py
RENAMED
|
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
|
|
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
|