trd-utils 0.0.18__py3-none-any.whl → 0.0.19__py3-none-any.whl

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.

Potentially problematic release.


This version of trd-utils might be problematic. Click here for more details.

trd_utils/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- __version__ = "0.0.18"
2
+ __version__ = "0.0.19"
3
3
 
@@ -14,3 +14,12 @@ def dt_from_ts(timestamp: float) -> datetime:
14
14
  # Timezone in ms - convert to seconds
15
15
  timestamp /= 1000
16
16
  return datetime.fromtimestamp(timestamp, tz=timezone.utc)
17
+
18
+ def dt_to_ts(dt: datetime, default: int = 0) -> int:
19
+ """
20
+ Return dt in ms as a timestamp in UTC.
21
+ If dt is None, return the given default.
22
+ """
23
+ if dt:
24
+ return int(dt.timestamp() * 1000)
25
+ return default
@@ -10,6 +10,7 @@ from typing import (
10
10
 
11
11
  import dateutil.parser
12
12
 
13
+ from trd_utils.date_utils.datetime_helpers import dt_from_ts, dt_to_ts
13
14
  from trd_utils.html_utils.html_formats import camel_to_snake
14
15
 
15
16
  # Whether to use ultra-list instead of normal python list or not.
@@ -91,6 +92,9 @@ def value_to_normal_obj(value, omit_none: bool = False):
91
92
  result[inner_key] = normalized_value
92
93
 
93
94
  return result
95
+
96
+ if isinstance(value, datetime.datetime):
97
+ return dt_to_ts(value)
94
98
 
95
99
  raise TypeError(f"unsupported type provided: {type(value)}")
96
100
 
@@ -244,9 +248,12 @@ class BaseModel:
244
248
 
245
249
  if ULTRA_LIST_ENABLED and isinstance(value, list):
246
250
  value = convert_to_ultra_list(value)
247
- elif expected_type is datetime.datetime and isinstance(value, str):
251
+ elif expected_type is datetime.datetime:
248
252
  try:
249
- value = dateutil.parser.parse(value)
253
+ if isinstance(value, str):
254
+ value = dateutil.parser.parse(value)
255
+ elif isinstance(value, int):
256
+ value = dt_from_ts(value)
250
257
  except Exception as ex:
251
258
  raise ValueError(
252
259
  f"Failed to parse the string as datetime: {value}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: trd_utils
3
- Version: 0.0.18
3
+ Version: 0.0.19
4
4
  Summary: Common Basic Utils for Python3. By ALiwoto.
5
5
  Keywords: utils,trd_utils,basic-utils,common-utils
6
6
  Author: ALiwoto
@@ -1,8 +1,8 @@
1
- trd_utils/__init__.py,sha256=-sXQylIr7KKXXK5-Vez-PRli6E2MHlbeJS_La608XMw,25
1
+ trd_utils/__init__.py,sha256=5VsjvbcZt1tZKEb5CSJ0arTPA63xHY8ibWQ5EXVRXvY,25
2
2
  trd_utils/cipher/__init__.py,sha256=V05KNuzQwCic-ihMVHlC8sENaJGc3I8MCb4pg4849X8,1765
3
3
  trd_utils/common_utils/float_utils.py,sha256=W-jv7nzjl88xwGB6gsEXmDDhF6DseOrrVT2qx7OvyCo,266
4
4
  trd_utils/date_utils/__init__.py,sha256=Erg_E1TfKWNpiuZFm_NXRjCwoRMfxpPS2-mJK6V4lFM,77
5
- trd_utils/date_utils/datetime_helpers.py,sha256=Ai9rDCLoMg2dRH8NIBTJQgUSfNQp15Vtp6a1IQwHEbw,366
5
+ trd_utils/date_utils/datetime_helpers.py,sha256=euIJBr-6PfJzLScOC9xVXd8Re_Gw5CSBPwtHX9_Il4A,596
6
6
  trd_utils/exchanges/README.md,sha256=UwkpsfcoLCJaMvJe4yBsFkDpf8P6DOLYhtybb6xWMLc,6738
7
7
  trd_utils/exchanges/__init__.py,sha256=x74_8-P7ktZyL-1AuAU_SDQD8eKZMPh1gfkLzPuS1xY,440
8
8
  trd_utils/exchanges/base_types.py,sha256=bPsRUetQIHdW7ESMAQcjvX-Z2uixtCC93Vb-XnX6FFs,3229
@@ -24,8 +24,8 @@ trd_utils/tradingview/__init__.py,sha256=H0QYb-O5qvy7qC3yswtlcSWLmeBnaS6oJ3Jtjvm
24
24
  trd_utils/tradingview/tradingview_client.py,sha256=g_eWYaCRQAL8Kvd-r6AnAdbH7Jha6C_GAyCuxh-RQUU,3917
25
25
  trd_utils/tradingview/tradingview_types.py,sha256=z21MXPVdWHAduEl3gSeMIRhxtBN9yK-jPYHfZSMIbSA,6144
26
26
  trd_utils/types_helper/__init__.py,sha256=lLbUiW1jUV1gjzTMFLthwkvF0hwauH-F_J2JZq--1U0,67
27
- trd_utils/types_helper/base_model.py,sha256=cdkvzkjZ1RE__GY98YvhtALHKMux9M4uzcdd8ofQNYU,10617
28
- trd_utils-0.0.18.dist-info/LICENSE,sha256=J1EP2xt87RjjmsTV1jTjHDQMLIM9FjdwEftTpw8hyv4,1067
29
- trd_utils-0.0.18.dist-info/METADATA,sha256=GRyFLFA_vGFyCTOiUg3CDQ8ewoSdxRgDnMerR7gQZnA,1095
30
- trd_utils-0.0.18.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
31
- trd_utils-0.0.18.dist-info/RECORD,,
27
+ trd_utils/types_helper/base_model.py,sha256=zehCrDH-9OhWtdKVu05yfcKP52oBD303aMEhs_nytSg,10892
28
+ trd_utils-0.0.19.dist-info/LICENSE,sha256=J1EP2xt87RjjmsTV1jTjHDQMLIM9FjdwEftTpw8hyv4,1067
29
+ trd_utils-0.0.19.dist-info/METADATA,sha256=GB_FuAcnnuw3a6HaRWIlEZeeF2IR1u5f4zFIYaXvqbg,1095
30
+ trd_utils-0.0.19.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
31
+ trd_utils-0.0.19.dist-info/RECORD,,