dukascript 0.0.0__py3-none-any.whl → 0.0.2__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.
- dukascript/__init__.py +16 -40
- {dukascript-0.0.0.dist-info → dukascript-0.0.2.dist-info}/METADATA +1 -1
- dukascript-0.0.2.dist-info/RECORD +8 -0
- dukascript-0.0.0.dist-info/RECORD +0 -8
- {dukascript-0.0.0.dist-info → dukascript-0.0.2.dist-info}/WHEEL +0 -0
- {dukascript-0.0.0.dist-info → dukascript-0.0.2.dist-info}/licenses/LICENSE +0 -0
- {dukascript-0.0.0.dist-info → dukascript-0.0.2.dist-info}/top_level.txt +0 -0
dukascript/__init__.py
CHANGED
@@ -7,8 +7,6 @@ import string
|
|
7
7
|
from time import sleep
|
8
8
|
import logging
|
9
9
|
|
10
|
-
from .instruments import *
|
11
|
-
|
12
10
|
TIME_UNIT_MONTH = "MONTH"
|
13
11
|
TIME_UNIT_WEEK = "WEEK"
|
14
12
|
TIME_UNIT_DAY = "DAY"
|
@@ -32,20 +30,20 @@ INTERVAL_SEC_10 = f"10{TIME_UNIT_SEC}"
|
|
32
30
|
INTERVAL_SEC_1 = f"1{TIME_UNIT_SEC}"
|
33
31
|
INTERVAL_TICK = TIME_UNIT_TICK
|
34
32
|
|
35
|
-
|
36
|
-
INTERVAL_MONTH_1,
|
37
|
-
INTERVAL_WEEK_1,
|
38
|
-
INTERVAL_DAY_1,
|
39
|
-
INTERVAL_HOUR_4,
|
40
|
-
INTERVAL_HOUR_1,
|
41
|
-
INTERVAL_MIN_30,
|
42
|
-
INTERVAL_MIN_15,
|
43
|
-
INTERVAL_MIN_10,
|
44
|
-
INTERVAL_MIN_5,
|
45
|
-
INTERVAL_MIN_1,
|
46
|
-
INTERVAL_SEC_30,
|
47
|
-
INTERVAL_SEC_10,
|
48
|
-
INTERVAL_SEC_1,
|
33
|
+
_interval_units = {
|
34
|
+
INTERVAL_MONTH_1:TIME_UNIT_MONTH,
|
35
|
+
INTERVAL_WEEK_1:TIME_UNIT_WEEK,
|
36
|
+
INTERVAL_DAY_1:TIME_UNIT_DAY,
|
37
|
+
INTERVAL_HOUR_4:TIME_UNIT_HOUR,
|
38
|
+
INTERVAL_HOUR_1:TIME_UNIT_HOUR,
|
39
|
+
INTERVAL_MIN_30:TIME_UNIT_MIN,
|
40
|
+
INTERVAL_MIN_15:TIME_UNIT_MIN,
|
41
|
+
INTERVAL_MIN_10:TIME_UNIT_MIN,
|
42
|
+
INTERVAL_MIN_5:TIME_UNIT_MIN,
|
43
|
+
INTERVAL_MIN_1:TIME_UNIT_MIN,
|
44
|
+
INTERVAL_SEC_30:TIME_UNIT_SEC,
|
45
|
+
INTERVAL_SEC_10:TIME_UNIT_SEC,
|
46
|
+
INTERVAL_SEC_1:TIME_UNIT_SEC,
|
49
47
|
}
|
50
48
|
|
51
49
|
OFFER_SIDE_BID = "B"
|
@@ -56,24 +54,9 @@ def _get_custom_logger(debug=False):
|
|
56
54
|
logger = logging.getLogger("DUKASCRIPT")
|
57
55
|
logger.setLevel(logging.DEBUG if debug else logging.INFO)
|
58
56
|
|
59
|
-
if not logger.handlers:
|
60
|
-
# Formatter
|
61
|
-
formatter = logging.Formatter("[%(levelname)s] %(message)s")
|
62
|
-
|
63
|
-
# Console Handler
|
64
|
-
ch = logging.StreamHandler()
|
65
|
-
ch.setLevel(logging.DEBUG if debug else logging.INFO)
|
66
|
-
ch.setFormatter(formatter)
|
67
|
-
|
68
|
-
logger.addHandler(ch)
|
69
|
-
|
70
57
|
return logger
|
71
58
|
|
72
59
|
|
73
|
-
def _is_valid_api_interval(interval):
|
74
|
-
return True if interval in INTERVALS_SET else False
|
75
|
-
|
76
|
-
|
77
60
|
def _resample_to_nearest(
|
78
61
|
timestamp: datetime,
|
79
62
|
time_unit: str,
|
@@ -266,8 +249,7 @@ def _stream(
|
|
266
249
|
|
267
250
|
def fetch(
|
268
251
|
instrument: str,
|
269
|
-
|
270
|
-
time_unit: str,
|
252
|
+
interval: str,
|
271
253
|
offer_side: str,
|
272
254
|
start: datetime,
|
273
255
|
end: datetime,
|
@@ -276,17 +258,11 @@ def fetch(
|
|
276
258
|
debug=False,
|
277
259
|
):
|
278
260
|
logger = _get_custom_logger(debug)
|
261
|
+
time_unit=_interval_units[interval]
|
279
262
|
columns = _get_dataframe_columns_for_timeunit(time_unit)
|
280
263
|
|
281
264
|
data = []
|
282
265
|
|
283
|
-
interval = (
|
284
|
-
time_unit if time_unit == TIME_UNIT_TICK else f"{interval_value}{time_unit}"
|
285
|
-
)
|
286
|
-
|
287
|
-
if not _is_valid_api_interval(interval):
|
288
|
-
raise ValueError("allowed intervals ", INTERVALS_SET)
|
289
|
-
|
290
266
|
datafeed = _stream(
|
291
267
|
instrument=instrument,
|
292
268
|
interval=interval,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
dukascript/__init__.py,sha256=uKpjTfC7lEw8LRPHdXbEw2jyviA4mUhW2CoKJw412nE,11398
|
2
|
+
dukascript/_instrument_generator.py,sha256=WDTNS1bLa-J2uI3TmoBTg-WCHdAtkX6d6tq0xhqL4GI,24848
|
3
|
+
dukascript/instruments.py,sha256=OxKTWR8zx2sjaHtGtd81FsQwTdAMItjgUSojzuJ1waI,59069
|
4
|
+
dukascript-0.0.2.dist-info/licenses/LICENSE,sha256=SA8D35cWkNTiEI71ATLBPTzWgFwjPNZLeloeBJrAJr4,1061
|
5
|
+
dukascript-0.0.2.dist-info/METADATA,sha256=4mb_CxQLSNqAhflL7miHQVJQEKumZ5a-yJ4LBEDLQw0,2040
|
6
|
+
dukascript-0.0.2.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
7
|
+
dukascript-0.0.2.dist-info/top_level.txt,sha256=h7GgEQykn3TuhHU4jJxZQ7oNjP_naNvjUwZAw6KU3VE,11
|
8
|
+
dukascript-0.0.2.dist-info/RECORD,,
|
@@ -1,8 +0,0 @@
|
|
1
|
-
dukascript/__init__.py,sha256=AkXcp_kk-CKJ-_A0lP6sb4EUsJ87qBe0-U8CrpN6Yjs,11846
|
2
|
-
dukascript/_instrument_generator.py,sha256=WDTNS1bLa-J2uI3TmoBTg-WCHdAtkX6d6tq0xhqL4GI,24848
|
3
|
-
dukascript/instruments.py,sha256=OxKTWR8zx2sjaHtGtd81FsQwTdAMItjgUSojzuJ1waI,59069
|
4
|
-
dukascript-0.0.0.dist-info/licenses/LICENSE,sha256=SA8D35cWkNTiEI71ATLBPTzWgFwjPNZLeloeBJrAJr4,1061
|
5
|
-
dukascript-0.0.0.dist-info/METADATA,sha256=VwPTAE7fk2cAW4C_X3NTVYiu9mzWDy-d21BXu7lm0hg,2040
|
6
|
-
dukascript-0.0.0.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
7
|
-
dukascript-0.0.0.dist-info/top_level.txt,sha256=h7GgEQykn3TuhHU4jJxZQ7oNjP_naNvjUwZAw6KU3VE,11
|
8
|
-
dukascript-0.0.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|