openfund-core 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.
Files changed (35) hide show
  1. openfund/core/__init__.py +0 -0
  2. openfund/core/binance_tools/__init__.py +16 -0
  3. openfund/core/binance_tools/binance_tools.py +39 -0
  4. openfund/core/binance_tools/continuous_klines.py +147 -0
  5. openfund/core/factory.py +37 -0
  6. openfund/core/libs/__init__.py +6 -0
  7. openfund/core/libs/email_tools.py +56 -0
  8. openfund/core/libs/enums.py +507 -0
  9. openfund/core/libs/file_tools.py +13 -0
  10. openfund/core/libs/log_tools.py +45 -0
  11. openfund/core/libs/prepare_env.py +28 -0
  12. openfund/core/libs/time.py +14 -0
  13. openfund/core/libs/time_tools.py +22 -0
  14. openfund/core/openfund_old/__init__.py +0 -0
  15. openfund/core/openfund_old/continuous_klines.py +153 -0
  16. openfund/core/openfund_old/depth.py +92 -0
  17. openfund/core/openfund_old/historical_trades.py +123 -0
  18. openfund/core/openfund_old/index_info.py +67 -0
  19. openfund/core/openfund_old/index_price_kline.py +118 -0
  20. openfund/core/openfund_old/klines.py +95 -0
  21. openfund/core/openfund_old/klines_qrr.py +103 -0
  22. openfund/core/openfund_old/mark_price.py +121 -0
  23. openfund/core/openfund_old/mark_price_klines.py +122 -0
  24. openfund/core/openfund_old/ticker_24hr_price_change.py +99 -0
  25. openfund/core/pyopenfund.py +32 -0
  26. openfund/core/sample/__init__.py +1 -0
  27. openfund/core/sample/sample.py +20 -0
  28. openfund/core/sycu_exam/__init__.py +1 -0
  29. openfund/core/sycu_exam/exam.py +19 -0
  30. openfund/core/sycu_exam/random_grade_cplus.py +440 -0
  31. openfund/core/sycu_exam/random_grade_web.py +404 -0
  32. openfund_core-0.0.2.dist-info/LICENSE +201 -0
  33. openfund_core-0.0.2.dist-info/METADATA +66 -0
  34. openfund_core-0.0.2.dist-info/RECORD +35 -0
  35. openfund_core-0.0.2.dist-info/WHEEL +4 -0
@@ -0,0 +1,507 @@
1
+ from enum import Enum
2
+
3
+ SYMBOL_TYPE_SPOT = "SPOT"
4
+
5
+ ORDER_STATUS_NEW = "NEW"
6
+ ORDER_STATUS_PARTIALLY_FILLED = "PARTIALLY_FILLED"
7
+ ORDER_STATUS_FILLED = "FILLED"
8
+ ORDER_STATUS_CANCELED = "CANCELED"
9
+ ORDER_STATUS_PENDING_CANCEL = "PENDING_CANCEL"
10
+ ORDER_STATUS_REJECTED = "REJECTED"
11
+ ORDER_STATUS_EXPIRED = "EXPIRED"
12
+
13
+ KLINE_INTERVAL_1SECOND = "1s"
14
+ KLINE_INTERVAL_1MINUTE = "1m"
15
+ KLINE_INTERVAL_3MINUTE = "3m"
16
+ KLINE_INTERVAL_5MINUTE = "5m"
17
+ KLINE_INTERVAL_15MINUTE = "15m"
18
+ KLINE_INTERVAL_30MINUTE = "30m"
19
+ KLINE_INTERVAL_1HOUR = "1h"
20
+ KLINE_INTERVAL_2HOUR = "2h"
21
+ KLINE_INTERVAL_4HOUR = "4h"
22
+ KLINE_INTERVAL_6HOUR = "6h"
23
+ KLINE_INTERVAL_8HOUR = "8h"
24
+ KLINE_INTERVAL_12HOUR = "12h"
25
+ KLINE_INTERVAL_1DAY = "1d"
26
+ KLINE_INTERVAL_3DAY = "3d"
27
+ KLINE_INTERVAL_1WEEK = "1w"
28
+ KLINE_INTERVAL_1MONTH = "1M"
29
+
30
+ SIDE_BUY = "BUY"
31
+ SIDE_SELL = "SELL"
32
+
33
+ ORDER_TYPE_LIMIT = "LIMIT"
34
+ ORDER_TYPE_MARKET = "MARKET"
35
+ ORDER_TYPE_STOP_LOSS = "STOP_LOSS"
36
+ ORDER_TYPE_STOP_LOSS_LIMIT = "STOP_LOSS_LIMIT"
37
+ ORDER_TYPE_TAKE_PROFIT = "TAKE_PROFIT"
38
+ ORDER_TYPE_TAKE_PROFIT_LIMIT = "TAKE_PROFIT_LIMIT"
39
+ ORDER_TYPE_LIMIT_MAKER = "LIMIT_MAKER"
40
+
41
+ FUTURE_ORDER_TYPE_LIMIT = "LIMIT"
42
+ FUTURE_ORDER_TYPE_MARKET = "MARKET"
43
+ FUTURE_ORDER_TYPE_STOP = "STOP"
44
+ FUTURE_ORDER_TYPE_STOP_MARKET = "STOP_MARKET"
45
+ FUTURE_ORDER_TYPE_TAKE_PROFIT = "TAKE_PROFIT"
46
+ FUTURE_ORDER_TYPE_TAKE_PROFIT_MARKET = "TAKE_PROFIT_MARKET"
47
+ FUTURE_ORDER_TYPE_LIMIT_MAKER = "LIMIT_MAKER"
48
+ FUTURE_ORDER_TYPE_TRAILING_STOP_MARKET = "TRAILING_STOP_MARKET"
49
+
50
+ TIME_IN_FORCE_GTC = "GTC" # Good till cancelled
51
+ TIME_IN_FORCE_IOC = "IOC" # Immediate or cancel
52
+ TIME_IN_FORCE_FOK = "FOK" # Fill or kill
53
+ TIME_IN_FORCE_GTX = "GTX" # Post only order
54
+
55
+ ORDER_RESP_TYPE_ACK = "ACK"
56
+ ORDER_RESP_TYPE_RESULT = "RESULT"
57
+ ORDER_RESP_TYPE_FULL = "FULL"
58
+
59
+ WEBSOCKET_DEPTH_5 = "5"
60
+ WEBSOCKET_DEPTH_10 = "10"
61
+ WEBSOCKET_DEPTH_20 = "20"
62
+
63
+ NO_SIDE_EFFECT_TYPE = "NO_SIDE_EFFECT"
64
+ MARGIN_BUY_TYPE = "MARGIN_BUY"
65
+ AUTO_REPAY_TYPE = "AUTO_REPAY"
66
+ # BTC、ETH、Sol、matic、DYD、AAVE、GMT、STarl、LTC、Blur
67
+ CUR_SYMBOL_POOL = [
68
+ "AAVEUSDT",
69
+ "BTCBUSD",
70
+ "BTCDOMUSDT",
71
+ "BTCSTUSDT",
72
+ "BTCUSDT",
73
+ "BTCUSDT_231229",
74
+ "BTCUSDT_240329",
75
+ "BLURUSDT",
76
+ "DYDXUSDT",
77
+ "ETHBTC",
78
+ "ETHBUSD",
79
+ "ETHUSDT",
80
+ "ETHUSDT_231229",
81
+ "ETHUSDT_240329",
82
+ "GMTBUSD",
83
+ "GMTUSDT",
84
+ "LTCBUSD",
85
+ "LTCUSDT",
86
+ "MATICBUSD",
87
+ "MATICUSDT",
88
+ "SOLBUSD",
89
+ "SOLUSDT",
90
+ ]
91
+
92
+ NEW_SYMBOL_POLL = [
93
+ "BTCUSDT",
94
+ "YFIUSDT",
95
+ "ETHUSDT",
96
+ "MKRUSDT",
97
+ "BNBUSDT",
98
+ "BCHUSDT",
99
+ "XMRUSDT",
100
+ "LTCUSDT",
101
+ "AAVEUSDT",
102
+ "COMPUSDT",
103
+ "GMXUSDT",
104
+ "BSVUSDT",
105
+ "DASHUSDT",
106
+ "EGLDUSDT",
107
+ "TRBUSDT",
108
+ "ZECUSDT",
109
+ "KSMUSDT",
110
+ "SOLUSDT",
111
+ "ETCUSDT",
112
+ "AVAXUSDT",
113
+ "ENSUSDT",
114
+ "NEOUSDT",
115
+ "ZENUSDT",
116
+ "ATOMUSDT",
117
+ "LINKUSDT",
118
+ "LPTUSDT",
119
+ "APTUSDT",
120
+ "AXSUSDT",
121
+ "ARUSDT",
122
+ "ANTUSDT",
123
+ "UNIUSDT",
124
+ "DOTUSDT",
125
+ "ORDIUSDT",
126
+ "FILUSDT",
127
+ "BALUSDT",
128
+ "ICPUSDT",
129
+ "MASKUSDT",
130
+ "QTUMUSDT",
131
+ "SNXUSDT",
132
+ "BADGERUSDT",
133
+ "LDOUSDT",
134
+ "OPUSDT",
135
+ "UMAUSDT",
136
+ "WLDUSDT",
137
+ "APEUSDT",
138
+ "NEARUSDT",
139
+ "API3USDT",
140
+ "BANDUSDT",
141
+ "USDCUSDT",
142
+ "ARBUSDT",
143
+ "XTZUSDT",
144
+ "SUSHIUSDT",
145
+ "PERPUSDT",
146
+ "THETAUSDT",
147
+ "KNCUSDT",
148
+ "EOSUSDT",
149
+ "AGLDUSDT",
150
+ "IMXUSDT",
151
+ "MATICUSDT",
152
+ "XRPUSDT",
153
+ "MAGICUSDT",
154
+ "STXUSDT",
155
+ "OMGUSDT",
156
+ "CRVUSDT",
157
+ "SUIUSDT",
158
+ "CELOUSDT",
159
+ "BNTUSDT",
160
+ "MINAUSDT",
161
+ "STORJUSDT",
162
+ "SANDUSDT",
163
+ "MANAUSDT",
164
+ "ADAUSDT",
165
+ "RDNTUSDT",
166
+ "BICOUSDT",
167
+ "YGGUSDT",
168
+ "FTMUSDT",
169
+ "ZRXUSDT",
170
+ "LRCUSDT",
171
+ "BLURUSDT",
172
+ "BATUSDT",
173
+ "WOOUSDT",
174
+ "ONTUSDT",
175
+ "GMTUSDT",
176
+ "IOTAUSDT",
177
+ "CFXUSDT",
178
+ "KLAYUSDT",
179
+ "XLMUSDT",
180
+ "ALGOUSDT",
181
+ "FLMUSDT",
182
+ "GRTUSDT",
183
+ "TRXUSDT",
184
+ "ALPHAUSDT",
185
+ "CVCUSDT",
186
+ "DOGEUSDT",
187
+ "CHZUSDT",
188
+ "HBARUSDT",
189
+ "RENUSDT",
190
+ "ZILUSDT",
191
+ "RVNUSDT",
192
+ "GALAUSDT",
193
+ "PEOPLEUSDT",
194
+ "IOSTUSDT",
195
+ "RSRUSDT",
196
+ "SLPUSDT",
197
+ "GASUSDT",
198
+ ]
199
+
200
+
201
+ ALL_SYMBOL_POOL = [
202
+ "1000BONKUSDT",
203
+ "1000FLOKIUSDT",
204
+ "1000LUNCBUSD",
205
+ "1000LUNCUSDT",
206
+ "1000PEPEUSDT",
207
+ "1000SHIBBUSD",
208
+ "1000SHIBUSDT",
209
+ "1000XECUSDT",
210
+ "1INCHUSDT",
211
+ "AAVEUSDT",
212
+ "ACHUSDT",
213
+ "ADABUSD",
214
+ "ADAUSDT",
215
+ "AGIXBUSD",
216
+ "AGIXUSDT",
217
+ "AGLDUSDT",
218
+ "ALGOUSDT",
219
+ "ALICEUSDT",
220
+ "ALPHAUSDT",
221
+ "AMBBUSD",
222
+ "AMBUSDT",
223
+ "ANCBUSD",
224
+ "ANKRUSDT",
225
+ "ANTUSDT",
226
+ "APEBUSD",
227
+ "APEUSDT",
228
+ "API3USDT",
229
+ "APTBUSD",
230
+ "APTUSDT",
231
+ "ARBUSDT",
232
+ "ARKMUSDT",
233
+ "ARKUSDT",
234
+ "ARPAUSDT",
235
+ "ARUSDT",
236
+ "ASTRUSDT",
237
+ "ATAUSDT",
238
+ "ATOMUSDT",
239
+ "AUCTIONBUSD",
240
+ "AUDIOUSDT",
241
+ "AVAXBUSD",
242
+ "AVAXUSDT",
243
+ "AXSUSDT",
244
+ "BADGERUSDT",
245
+ "BAKEUSDT",
246
+ "BALUSDT",
247
+ "BANDUSDT",
248
+ "BATUSDT",
249
+ "BCHUSDT",
250
+ "BEAMXUSDT",
251
+ "BELUSDT",
252
+ "BICOUSDT",
253
+ "BIGTIMEUSDT",
254
+ "BLUEBIRDUSDT",
255
+ "BLURUSDT",
256
+ "BLZUSDT",
257
+ "BNBBTC",
258
+ "BNBBUSD",
259
+ "BNBUSDT",
260
+ "BNTUSDT",
261
+ "BNXUSDT",
262
+ "BONDUSDT",
263
+ "BSVUSDT",
264
+ "BTCBUSD",
265
+ "BTCDOMUSDT",
266
+ "BTCSTUSDT",
267
+ "BTCUSDT",
268
+ "BTCUSDT_231229",
269
+ "BTCUSDT_240329",
270
+ "BTSUSDT",
271
+ "C98USDT",
272
+ "CAKEUSDT",
273
+ "CELOUSDT",
274
+ "CELRUSDT",
275
+ "CFXUSDT",
276
+ "CHRUSDT",
277
+ "CHZUSDT",
278
+ "CKBUSDT",
279
+ "COCOSUSDT",
280
+ "COMBOUSDT",
281
+ "COMPUSDT",
282
+ "COTIUSDT",
283
+ "CRVUSDT",
284
+ "CTKUSDT",
285
+ "CTSIUSDT",
286
+ "CVCUSDT",
287
+ "CVXBUSD",
288
+ "CVXUSDT",
289
+ "CYBERUSDT",
290
+ "DARUSDT",
291
+ "DASHUSDT",
292
+ "DEFIUSDT",
293
+ "DENTUSDT",
294
+ "DGBUSDT",
295
+ "DODOBUSD",
296
+ "DODOXUSDT",
297
+ "DOGEBUSD",
298
+ "DOGEUSDT",
299
+ "DOTBUSD",
300
+ "DOTUSDT",
301
+ "DUSKUSDT",
302
+ "DYDXUSDT",
303
+ "EDUUSDT",
304
+ "EGLDUSDT",
305
+ "ENJUSDT",
306
+ "ENSUSDT",
307
+ "EOSUSDT",
308
+ "ETCBUSD",
309
+ "ETCUSDT",
310
+ "ETHBTC",
311
+ "ETHBUSD",
312
+ "ETHUSDT",
313
+ "ETHUSDT_231229",
314
+ "ETHUSDT_240329",
315
+ "FETUSDT",
316
+ "FILBUSD",
317
+ "FILUSDT",
318
+ "FLMUSDT",
319
+ "FLOWUSDT",
320
+ "FOOTBALLUSDT",
321
+ "FRONTUSDT",
322
+ "FTMBUSD",
323
+ "FTMUSDT",
324
+ "FTTBUSD",
325
+ "FTTUSDT",
326
+ "FXSUSDT",
327
+ "GALABUSD",
328
+ "GALAUSDT",
329
+ "GALBUSD",
330
+ "GALUSDT",
331
+ "GASUSDT",
332
+ "GLMRUSDT",
333
+ "GMTBUSD",
334
+ "GMTUSDT",
335
+ "GMXUSDT",
336
+ "GRTUSDT",
337
+ "GTCUSDT",
338
+ "HBARUSDT",
339
+ "HFTUSDT",
340
+ "HIFIUSDT",
341
+ "HIGHUSDT",
342
+ "HNTUSDT",
343
+ "HOOKUSDT",
344
+ "HOTUSDT",
345
+ "ICPUSDT",
346
+ "ICXUSDT",
347
+ "IDEXUSDT",
348
+ "IDUSDT",
349
+ "ILVUSDT",
350
+ "IMXUSDT",
351
+ "INJUSDT",
352
+ "IOSTUSDT",
353
+ "IOTAUSDT",
354
+ "IOTXUSDT",
355
+ "JASMYUSDT",
356
+ "JOEUSDT",
357
+ "KASUSDT",
358
+ "KAVAUSDT",
359
+ "KEYUSDT",
360
+ "KLAYUSDT",
361
+ "KNCUSDT",
362
+ "KSMUSDT",
363
+ "LDOBUSD",
364
+ "LDOUSDT",
365
+ "LEVERBUSD",
366
+ "LEVERUSDT",
367
+ "LINAUSDT",
368
+ "LINKBUSD",
369
+ "LINKUSDT",
370
+ "LITUSDT",
371
+ "LOOMUSDT",
372
+ "LPTUSDT",
373
+ "LQTYUSDT",
374
+ "LRCUSDT",
375
+ "LTCBUSD",
376
+ "LTCUSDT",
377
+ "LUNA2USDT",
378
+ "MAGICUSDT",
379
+ "MANAUSDT",
380
+ "MASKUSDT",
381
+ "MATICBUSD",
382
+ "MATICUSDT",
383
+ "MAVUSDT",
384
+ "MBLUSDT",
385
+ "MDTUSDT",
386
+ "MEMEUSDT",
387
+ "MINAUSDT",
388
+ "MKRUSDT",
389
+ "MTLUSDT",
390
+ "NEARBUSD",
391
+ "NEARUSDT",
392
+ "NEOUSDT",
393
+ "NKNUSDT",
394
+ "NMRUSDT",
395
+ "NTRNUSDT",
396
+ "OCEANUSDT",
397
+ "OGNUSDT",
398
+ "OMGUSDT",
399
+ "ONEUSDT",
400
+ "ONTUSDT",
401
+ "OPUSDT",
402
+ "ORBSUSDT",
403
+ "ORDIUSDT",
404
+ "OXTUSDT",
405
+ "PENDLEUSDT",
406
+ "PEOPLEUSDT",
407
+ "PERPUSDT",
408
+ "PHBBUSD",
409
+ "PHBUSDT",
410
+ "POLYXUSDT",
411
+ "POWRUSDT",
412
+ "PYTHUSDT",
413
+ "QNTUSDT",
414
+ "QTUMUSDT",
415
+ "RADUSDT",
416
+ "RAYUSDT",
417
+ "RDNTUSDT",
418
+ "REEFUSDT",
419
+ "RENUSDT",
420
+ "RIFUSDT",
421
+ "RLCUSDT",
422
+ "RNDRUSDT",
423
+ "ROSEUSDT",
424
+ "RSRUSDT",
425
+ "RUNEUSDT",
426
+ "RVNUSDT",
427
+ "SANDBUSD",
428
+ "SANDUSDT",
429
+ "SCUSDT",
430
+ "SEIUSDT",
431
+ "SFPUSDT",
432
+ "SKLUSDT",
433
+ "SLPUSDT",
434
+ "SNTUSDT",
435
+ "SNXUSDT",
436
+ "SOLBUSD",
437
+ "SOLUSDT",
438
+ "SPELLUSDT",
439
+ "SRMUSDT",
440
+ "SSVUSDT",
441
+ "STEEMUSDT",
442
+ "STGUSDT",
443
+ "STMXUSDT",
444
+ "STORJUSDT",
445
+ "STPTUSDT",
446
+ "STRAXUSDT",
447
+ "STXUSDT",
448
+ "SUIUSDT",
449
+ "SUSHIUSDT",
450
+ "SXPUSDT",
451
+ "THETAUSDT",
452
+ "TIAUSDT",
453
+ "TLMBUSD",
454
+ "TLMUSDT",
455
+ "TOKENUSDT",
456
+ "TOMOUSDT",
457
+ "TRBUSDT",
458
+ "TRUUSDT",
459
+ "TRXBUSD",
460
+ "TRXUSDT",
461
+ "TUSDT",
462
+ "TWTUSDT",
463
+ "UMAUSDT",
464
+ "UNFIUSDT",
465
+ "UNIBUSD",
466
+ "UNIUSDT",
467
+ "USDCUSDT",
468
+ "VETUSDT",
469
+ "WAVESBUSD",
470
+ "WAVESUSDT",
471
+ "WAXPUSDT",
472
+ "WLDUSDT",
473
+ "WOOUSDT",
474
+ "XEMUSDT",
475
+ "XLMUSDT",
476
+ "XMRUSDT",
477
+ "XRPBUSD",
478
+ "XRPUSDT",
479
+ "XTZUSDT",
480
+ "XVGUSDT",
481
+ "XVSUSDT",
482
+ "YFIUSDT",
483
+ "YGGUSDT",
484
+ "ZECUSDT",
485
+ "ZENUSDT",
486
+ "ZILUSDT",
487
+ "ZRXUSDT",
488
+ ]
489
+
490
+
491
+ class HistoricalKlinesType(Enum):
492
+ SPOT = 1
493
+ FUTURES = 2
494
+ FUTURES_COIN = 3
495
+
496
+
497
+ class FuturesType(Enum):
498
+ USD_M = 1
499
+ COIN_M = 2
500
+
501
+
502
+ class ContractType(Enum):
503
+ PERPETUAL = "PERPETUAL" # 永续期货合约
504
+ CURRENT_QUARTER = "CURRENT_QUARTER"
505
+ NEXT_QUARTER = "NEXT_QUARTER"
506
+ NEXT_MONTH = "NEXT_MONTH"
507
+ CURRENT_MONTH = "CURRENT_MONTH"
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env python
2
+
3
+ import os
4
+
5
+
6
+ def create_path(path):
7
+ isExists = os.path.exists(path)
8
+ if not isExists:
9
+ os.makedirs(path)
10
+
11
+
12
+
13
+
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env python
2
+ import sys
3
+ import os
4
+
5
+ from loguru import logger
6
+ from datetime import datetime
7
+
8
+ # log_path = "F:\PythonProject\Logs\\"
9
+ from prepare_env import get_path
10
+
11
+
12
+ class Logger:
13
+ def __init__(self, log_name):
14
+ data_path, log_path = get_path()
15
+ self.logger = logger # 初始化一个logger
16
+ self.logger.remove() # 清空所有设置
17
+ # 添加控制台输出的格式,sys.stdout为输出到屏幕
18
+ self.logger.add(
19
+ sys.stdout,
20
+ format="<green>{time:YYYYMMDD HH:mm:ss}</green> | " # 颜色>时间
21
+ "{process.name} | " # 进程名
22
+ "{thread.name} | " # 进程名
23
+ "<cyan>{module}</cyan>.<cyan>{function}</cyan>" # 模块名.方法名
24
+ ":<cyan>{line}</cyan> | " # 行号
25
+ "<level>{level}</level>: " # 等级
26
+ "<level>{message}</level>", # 日志内容
27
+ )
28
+ # 输出到文件
29
+ rq = datetime.now().strftime("%Y%m%d")
30
+ if not log_path.endswith("/"):
31
+ log_path = log_path + "/"
32
+ file_name = log_path + log_name + "_" + rq + ".log" # 文件名称
33
+ self.logger.add(
34
+ file_name,
35
+ level="INFO",
36
+ format="{time:YYYYMMDD HH:mm:ss} - " # 时间
37
+ "{process.name} | " # 进程名
38
+ "{thread.name} | " # 进程名
39
+ "{module}.{function}:{line} - {level} -{message}", # 模块名.方法名:行号
40
+ rotation="50 MB",
41
+ compression="tar.gz",
42
+ )
43
+
44
+ def get_log(self):
45
+ return self.logger
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python
2
+
3
+ import os
4
+ import pathlib
5
+ from configparser import ConfigParser
6
+
7
+ config = ConfigParser()
8
+ config_file_path = os.path.join(
9
+ pathlib.Path(__file__).parent.resolve(), "..", "config.ini"
10
+ )
11
+ config.read(config_file_path)
12
+
13
+
14
+ def get_api_key():
15
+
16
+ return config["keys"]["api_key"], config["keys"]["api_secret"]
17
+
18
+
19
+ def get_path():
20
+ return config["path"]["data_path"], config["path"]["log_path"]
21
+
22
+
23
+ def get_mail():
24
+ return (
25
+ config["mail"]["email_address"],
26
+ config["mail"]["email_password"],
27
+ config["mail"]["email_receiver"],
28
+ )
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env python
2
+ import logging
3
+ import time
4
+
5
+ from binance.cm_futures import CMFutures
6
+ from binance.lib.utils import config_logging
7
+
8
+ config_logging(logging, logging.DEBUG)
9
+
10
+ cm_futures_client = CMFutures(show_limit_usage=True)
11
+
12
+ logging.info(cm_futures_client.time())
13
+
14
+
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env python
2
+
3
+ import time
4
+ from datetime import date, datetime, timedelta
5
+
6
+
7
+ def print_timestamp(timestamp):
8
+ print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp / 1000)))
9
+
10
+
11
+ def format_timestamp(timestamp):
12
+ return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp / 1000))
13
+
14
+
15
+ def format_date(timestamp):
16
+ return time.strftime("%Y-%m-%d", time.localtime(timestamp / 1000))
17
+
18
+
19
+ def format_date_to(to_days):
20
+ now = date.today()
21
+ to = now + timedelta(days=to_days)
22
+ return to
File without changes