ccxt 4.4.51__py2.py3-none-any.whl → 4.4.52__py2.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.
ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.51'
25
+ __version__ = '4.4.52'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.51'
7
+ __version__ = '4.4.52'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.51'
5
+ __version__ = '4.4.52'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -3071,9 +3071,12 @@ class deribit(Exchange, ImplicitAPI):
3071
3071
  market = self.market(symbol)
3072
3072
  paginate = False
3073
3073
  paginate, params = self.handle_option_and_params(params, 'fetchFundingRateHistory', 'paginate')
3074
+ maxEntriesPerRequest = 744 # seems exchange returns max 744 items per request
3075
+ eachItemDuration = '1h'
3074
3076
  if paginate:
3075
- # 1h needed to fix : https://github.com/ccxt/ccxt/issues/25040
3076
- return await self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, '1h', params, 720)
3077
+ # fix for: https://github.com/ccxt/ccxt/issues/25040
3078
+ return await self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, eachItemDuration, self.extend(params, {'isDeribitPaginationCall': True}), maxEntriesPerRequest)
3079
+ duration = self.parse_timeframe(eachItemDuration) * 1000
3077
3080
  time = self.milliseconds()
3078
3081
  month = 30 * 24 * 60 * 60 * 1000
3079
3082
  if since is None:
@@ -3090,6 +3093,10 @@ class deribit(Exchange, ImplicitAPI):
3090
3093
  request['end_timestamp'] = until
3091
3094
  else:
3092
3095
  request['end_timestamp'] = time
3096
+ if 'isDeribitPaginationCall' in params:
3097
+ params = self.omit(params, 'isDeribitPaginationCall')
3098
+ maxUntil = self.sum(since, limit * duration)
3099
+ request['end_timestamp'] = min(request['end_timestamp'], maxUntil)
3093
3100
  response = await self.publicGetGetFundingRateHistory(self.extend(request, params))
3094
3101
  #
3095
3102
  # {
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.51'
7
+ __version__ = '4.4.52'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -5728,6 +5728,27 @@ class Exchange(object):
5728
5728
  symbol = None if (market is None) else market['symbol']
5729
5729
  return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
5730
5730
 
5731
+ def handle_trigger_direction_and_params(self, params, exchangeSpecificKey: Str = None, allowEmpty: Bool = False):
5732
+ """
5733
+ @ignore
5734
+ :returns [str, dict]: the trigger-direction value and omited params
5735
+ """
5736
+ triggerDirection = self.safe_string(params, 'triggerDirection')
5737
+ exchangeSpecificDefined = (exchangeSpecificKey is not None) and (exchangeSpecificKey in params)
5738
+ if triggerDirection is not None:
5739
+ params = self.omit(params, 'triggerDirection')
5740
+ # raise exception if:
5741
+ # A) if provided value is not unified(support old "up/down" strings too)
5742
+ # B) if exchange specific "trigger direction key"(eg. "stopPriceSide") was not provided
5743
+ if not self.in_array(triggerDirection, ['ascending', 'descending', 'up', 'down', 'above', 'below']) and not exchangeSpecificDefined and not allowEmpty:
5744
+ raise ArgumentsRequired(self.id + ' createOrder() : trigger orders require params["triggerDirection"] to be either "ascending" or "descending"')
5745
+ # if old format was provided, overwrite to new
5746
+ if triggerDirection == 'up' or triggerDirection == 'above':
5747
+ triggerDirection = 'ascending'
5748
+ elif triggerDirection == 'down' or triggerDirection == 'below':
5749
+ triggerDirection = 'descending'
5750
+ return [triggerDirection, params]
5751
+
5731
5752
  def handle_trigger_and_params(self, params):
5732
5753
  isTrigger = self.safe_bool_2(params, 'trigger', 'stop')
5733
5754
  if isTrigger:
ccxt/deribit.py CHANGED
@@ -3071,9 +3071,12 @@ class deribit(Exchange, ImplicitAPI):
3071
3071
  market = self.market(symbol)
3072
3072
  paginate = False
3073
3073
  paginate, params = self.handle_option_and_params(params, 'fetchFundingRateHistory', 'paginate')
3074
+ maxEntriesPerRequest = 744 # seems exchange returns max 744 items per request
3075
+ eachItemDuration = '1h'
3074
3076
  if paginate:
3075
- # 1h needed to fix : https://github.com/ccxt/ccxt/issues/25040
3076
- return self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, '1h', params, 720)
3077
+ # fix for: https://github.com/ccxt/ccxt/issues/25040
3078
+ return self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, eachItemDuration, self.extend(params, {'isDeribitPaginationCall': True}), maxEntriesPerRequest)
3079
+ duration = self.parse_timeframe(eachItemDuration) * 1000
3077
3080
  time = self.milliseconds()
3078
3081
  month = 30 * 24 * 60 * 60 * 1000
3079
3082
  if since is None:
@@ -3090,6 +3093,10 @@ class deribit(Exchange, ImplicitAPI):
3090
3093
  request['end_timestamp'] = until
3091
3094
  else:
3092
3095
  request['end_timestamp'] = time
3096
+ if 'isDeribitPaginationCall' in params:
3097
+ params = self.omit(params, 'isDeribitPaginationCall')
3098
+ maxUntil = self.sum(since, limit * duration)
3099
+ request['end_timestamp'] = min(request['end_timestamp'], maxUntil)
3093
3100
  response = self.publicGetGetFundingRateHistory(self.extend(request, params))
3094
3101
  #
3095
3102
  # {
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.51'
7
+ __version__ = '4.4.52'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/test/tests_async.py CHANGED
@@ -12,7 +12,6 @@ class testMainClass:
12
12
  request_tests = False
13
13
  ws_tests = False
14
14
  response_tests = False
15
- static_tests = False
16
15
  info = False
17
16
  verbose = False
18
17
  debug = False
ccxt/test/tests_sync.py CHANGED
@@ -9,7 +9,6 @@ class testMainClass:
9
9
  request_tests = False
10
10
  ws_tests = False
11
11
  response_tests = False
12
- static_tests = False
13
12
  info = False
14
13
  verbose = False
15
14
  debug = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.51
3
+ Version: 4.4.52
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -278,13 +278,13 @@ console.log(version, Object.keys(exchanges));
278
278
 
279
279
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
280
280
 
281
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.51/dist/ccxt.browser.min.js
282
- * unpkg: https://unpkg.com/ccxt@4.4.51/dist/ccxt.browser.min.js
281
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.52/dist/ccxt.browser.min.js
282
+ * unpkg: https://unpkg.com/ccxt@4.4.52/dist/ccxt.browser.min.js
283
283
 
284
284
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
285
285
 
286
286
  ```HTML
287
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.51/dist/ccxt.browser.min.js"></script>
287
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.52/dist/ccxt.browser.min.js"></script>
288
288
  ```
289
289
 
290
290
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=Ov6M3r1u_HSu1QDcalwFlrwqD9BojAhr2owvsMgyGXs,16874
1
+ ccxt/__init__.py,sha256=ILN_h9chrG9X6MyMcPrqrT5IK3uk1tWy2ezDbHQYeRg,16874
2
2
  ccxt/ace.py,sha256=KPY_01yi7GOz4cTrWNDdsT6tSXp989CQZ6TsFZldBWg,44594
3
3
  ccxt/alpaca.py,sha256=ms7D8xCQjNxmHm7zYEaCQmnb-MrFuunYDlI93r3jfD4,77875
4
4
  ccxt/ascendex.py,sha256=C_SFpO1YMH7SfxeZovZipPyHieWrknOQamZ2fdVKRoo,155813
@@ -53,7 +53,7 @@ ccxt/cryptocom.py,sha256=XUqDnQmsHSdcj09Be0JkjqB4_uJy6-t-g-Pq5GbEYW4,140426
53
53
  ccxt/currencycom.py,sha256=ejPOchlX42Itozx_sfvtUnb91RrzabcbyD9ZJ0NR9qU,89834
54
54
  ccxt/defx.py,sha256=o6VbIe7DyoJqqWQWd89IgIoRrnNjSv4bxvIYcykZBEU,85008
55
55
  ccxt/delta.py,sha256=HfjIddlj-lbSg1BzJdquekb5X2heW0fwwhmP_L4UYvg,154689
56
- ccxt/deribit.py,sha256=w7kF7F4TxgakOrKKrcrTnAv5V6lOztwLrebM31GbFMc,165993
56
+ ccxt/deribit.py,sha256=Xzfjx2xHk48QnXYv7DYRH4RWI8KNgv5xFVG4yGmn_Qs,166494
57
57
  ccxt/digifinex.py,sha256=oVzJEW5l1bL5IfMqIfwvXKli_Cal0SdKeDeuPBS5qjY,177146
58
58
  ccxt/ellipx.py,sha256=F2VtDmI2cZjH6oheV-uZIP0lrJsp4ybaOTTO7OTuXO8,78809
59
59
  ccxt/exmo.py,sha256=Si7NATsXgtmqUoW-B-Z1G1tZk-IZzEbHpRTeS19hYUk,120419
@@ -224,7 +224,7 @@ ccxt/abstract/xt.py,sha256=PwTBDqdI8Ka7i4EbwRwamii_LcaDmqu1_J96SefsbyA,27139
224
224
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
225
225
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
226
226
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
227
- ccxt/async_support/__init__.py,sha256=qR7wG37asl16vueiswQh3Dhb-1O2TFNCKXAJj6Lz5og,16717
227
+ ccxt/async_support/__init__.py,sha256=1ZuGdL5oB7A83BRnYc5NsxGjI337i4xiharhBOHwH40,16717
228
228
  ccxt/async_support/ace.py,sha256=Jg6ghypA8t_z0VIs9pH33zZt_BbAFHoPb9SvDnh9-14,44818
229
229
  ccxt/async_support/alpaca.py,sha256=bvP1uMSXKAHfJqwvxYuZd6GnEm7pN7l8xkWXzzjheDQ,78321
230
230
  ccxt/async_support/ascendex.py,sha256=0lRstZed7ObwXOH9nL13LA9_0YZTvuLAgAE8czwmR7c,156626
@@ -279,7 +279,7 @@ ccxt/async_support/cryptocom.py,sha256=wlZjsz1q6Wt7ozS66_qlvv0LGK4tQj3YZfXsXWM3w
279
279
  ccxt/async_support/currencycom.py,sha256=2251kTmKHKYWiDQvU6ru065UwCidrq9k1cpEGL-Fk8s,90256
280
280
  ccxt/async_support/defx.py,sha256=VVIO_LjIlwz__YjgYoFoV9VhsxIZAsCvSTIg8wS3g4Q,85510
281
281
  ccxt/async_support/delta.py,sha256=vxnV2ix0Bu1yTxkO8w2lT_RMLDhQmWi6mUKz0OfEa0Q,155297
282
- ccxt/async_support/deribit.py,sha256=mpmI8EggSRJ4yGzKbomAMSDEea_LFgckOPWBN9A75Ps,166775
282
+ ccxt/async_support/deribit.py,sha256=M-K6ptxlDSSTkm54NHOrnIjKzHeTsuHU2BVRnpF8MVs,167276
283
283
  ccxt/async_support/digifinex.py,sha256=PH-UhQUCWwJGUfU8G-wSuYDEPF_GLvDCgmogyJ-Go9E,178134
284
284
  ccxt/async_support/ellipx.py,sha256=NdCzpE9ijNPeuae3WdWrRFWKiAJgmRTQCiz79v79iPE,79117
285
285
  ccxt/async_support/exmo.py,sha256=lLNWpjIC0o7mjUjYCBB7ASBQHIlxZ9y8PzJjK4lHIjo,121105
@@ -338,7 +338,7 @@ ccxt/async_support/yobit.py,sha256=9utgh_VB4TxNT7VJMwnO4o7Y_d3ZyIsESuwU1-UMClI,5
338
338
  ccxt/async_support/zaif.py,sha256=-5ikz0v4tDtaObdGpn-JXAI6ltkk-lOxF94kfqvICE8,31247
339
339
  ccxt/async_support/zonda.py,sha256=whee7XGjoB_UyQNfQdACqGPMBxqqDilvnkPW7ph5Mg4,85210
340
340
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
341
- ccxt/async_support/base/exchange.py,sha256=LhYN5c2fcreWKnKZEuWclfwZQFadCktae6Pn3-cuQCs,115829
341
+ ccxt/async_support/base/exchange.py,sha256=NVYqOZtVKmJAu7qJ5-sBZPh5jnJ23Nb8YgEl5tkC1ao,115829
342
342
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
343
343
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
344
344
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Y5HxAVXyyYduj6b6SbbUZETlq3GrVMzrkW1r-TMgpb8,6329
@@ -352,10 +352,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
352
352
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
353
353
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
354
354
  ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
355
- ccxt/base/exchange.py,sha256=5_aqmdXUCL-xAekX3e3PS2uzyMtnm0hzGJcHAgKMNDI,315167
355
+ ccxt/base/exchange.py,sha256=_QOlc75565k8XRpRzksIM4qaqimxY_hDFbu78qQh4UQ,316519
356
356
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
357
357
  ccxt/base/types.py,sha256=sWoDanT5JPRUEc4AOLuOmcqKSXpDXyeoSwMk5HQtXOs,10733
358
- ccxt/pro/__init__.py,sha256=pn_L0HeCTY0reqPMwasADPVm_CurtvwtxknLBLdiauM,8124
358
+ ccxt/pro/__init__.py,sha256=hgIUo2aV1wShFUDfiTJ1Q2_-Bv9KcKHdQ2H5rIR0_sg,8124
359
359
  ccxt/pro/alpaca.py,sha256=Imdm0wlioL9MMI7ytu0l-wrTIBzNGnHOf8h8Ux2XpJg,27611
360
360
  ccxt/pro/ascendex.py,sha256=BJh0w31wjTIZJriDqWWC1NbEgiW7X4VboYC3g61c4w4,37500
361
361
  ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
@@ -658,12 +658,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
658
658
  ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
659
659
  ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
660
660
  ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
661
- ccxt/test/tests_async.py,sha256=blk5m2oKOZtOsCc3z6rAF8Xbdz-NKDJufu-EKdCBZ5c,88315
661
+ ccxt/test/tests_async.py,sha256=pC5j9S0td2prdnTQkPOYwH2ZJ0A4SzkaL7D3uK8Mce8,88290
662
662
  ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
663
663
  ccxt/test/tests_init.py,sha256=GodMIrJue4KBHHqD4vSPZxokPWpxbZIuEp19UdxlFAg,1166
664
- ccxt/test/tests_sync.py,sha256=zb7LRax-lRrDs8WKNa-Kj0WRswTZMmTYYhBsP6euQaI,87341
665
- ccxt-4.4.51.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
666
- ccxt-4.4.51.dist-info/METADATA,sha256=tlGrZzGYYA1PjLEQrx_M5GJtvAK8Bkh3mKYQJddTRRo,117851
667
- ccxt-4.4.51.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
668
- ccxt-4.4.51.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
669
- ccxt-4.4.51.dist-info/RECORD,,
664
+ ccxt/test/tests_sync.py,sha256=M6Aj1eH7esDJxOMs3DlSICJz0ZoMs5u584-19MOueDY,87316
665
+ ccxt-4.4.52.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
666
+ ccxt-4.4.52.dist-info/METADATA,sha256=cpovEODG83yHXiM43Ftr-JYG3HVZTD2yV2mzsRxg5hU,117851
667
+ ccxt-4.4.52.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
668
+ ccxt-4.4.52.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
669
+ ccxt-4.4.52.dist-info/RECORD,,
File without changes