coinex-api 0.0.13__py3-none-any.whl → 0.0.14__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 (289) hide show
  1. coinex/__init__.py +7 -0
  2. coinex/ccxt/__init__.py +101 -0
  3. coinex/ccxt/abstract/coinex.py +237 -0
  4. coinex/ccxt/async_support/__init__.py +80 -0
  5. coinex/ccxt/async_support/base/__init__.py +1 -0
  6. coinex/ccxt/async_support/base/exchange.py +2100 -0
  7. coinex/ccxt/async_support/base/throttler.py +50 -0
  8. coinex/ccxt/async_support/base/ws/__init__.py +38 -0
  9. coinex/ccxt/async_support/base/ws/aiohttp_client.py +147 -0
  10. coinex/ccxt/async_support/base/ws/cache.py +213 -0
  11. coinex/ccxt/async_support/base/ws/client.py +214 -0
  12. coinex/ccxt/async_support/base/ws/fast_client.py +97 -0
  13. coinex/ccxt/async_support/base/ws/functions.py +59 -0
  14. coinex/ccxt/async_support/base/ws/future.py +69 -0
  15. coinex/ccxt/async_support/base/ws/order_book.py +78 -0
  16. coinex/ccxt/async_support/base/ws/order_book_side.py +174 -0
  17. coinex/ccxt/async_support/coinex.py +5833 -0
  18. coinex/ccxt/base/__init__.py +27 -0
  19. coinex/ccxt/base/decimal_to_precision.py +174 -0
  20. coinex/ccxt/base/errors.py +267 -0
  21. coinex/ccxt/base/exchange.py +6769 -0
  22. coinex/ccxt/base/precise.py +297 -0
  23. coinex/ccxt/base/types.py +577 -0
  24. coinex/ccxt/coinex.py +5832 -0
  25. coinex/ccxt/pro/__init__.py +21 -0
  26. coinex/ccxt/pro/coinex.py +1366 -0
  27. coinex/ccxt/static_dependencies/README.md +1 -0
  28. coinex/ccxt/static_dependencies/__init__.py +1 -0
  29. coinex/ccxt/static_dependencies/ecdsa/__init__.py +14 -0
  30. coinex/ccxt/static_dependencies/ecdsa/_version.py +520 -0
  31. coinex/ccxt/static_dependencies/ecdsa/curves.py +56 -0
  32. coinex/ccxt/static_dependencies/ecdsa/der.py +221 -0
  33. coinex/ccxt/static_dependencies/ecdsa/ecdsa.py +310 -0
  34. coinex/ccxt/static_dependencies/ecdsa/ellipticcurve.py +197 -0
  35. coinex/ccxt/static_dependencies/ecdsa/keys.py +332 -0
  36. coinex/ccxt/static_dependencies/ecdsa/numbertheory.py +531 -0
  37. coinex/ccxt/static_dependencies/ecdsa/rfc6979.py +100 -0
  38. coinex/ccxt/static_dependencies/ecdsa/util.py +266 -0
  39. coinex/ccxt/static_dependencies/ethereum/__init__.py +7 -0
  40. coinex/ccxt/static_dependencies/ethereum/abi/__init__.py +16 -0
  41. coinex/ccxt/static_dependencies/ethereum/abi/abi.py +19 -0
  42. coinex/ccxt/static_dependencies/ethereum/abi/base.py +152 -0
  43. coinex/ccxt/static_dependencies/ethereum/abi/codec.py +217 -0
  44. coinex/ccxt/static_dependencies/ethereum/abi/constants.py +3 -0
  45. coinex/ccxt/static_dependencies/ethereum/abi/decoding.py +565 -0
  46. coinex/ccxt/static_dependencies/ethereum/abi/encoding.py +720 -0
  47. coinex/ccxt/static_dependencies/ethereum/abi/exceptions.py +139 -0
  48. coinex/ccxt/static_dependencies/ethereum/abi/grammar.py +443 -0
  49. coinex/ccxt/static_dependencies/ethereum/abi/packed.py +13 -0
  50. coinex/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  51. coinex/ccxt/static_dependencies/ethereum/abi/registry.py +643 -0
  52. coinex/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +3 -0
  53. coinex/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +230 -0
  54. coinex/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  55. coinex/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +83 -0
  56. coinex/ccxt/static_dependencies/ethereum/abi/utils/padding.py +27 -0
  57. coinex/ccxt/static_dependencies/ethereum/abi/utils/string.py +19 -0
  58. coinex/ccxt/static_dependencies/ethereum/account/__init__.py +3 -0
  59. coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +4 -0
  60. coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +239 -0
  61. coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +40 -0
  62. coinex/ccxt/static_dependencies/ethereum/account/messages.py +263 -0
  63. coinex/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  64. coinex/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +5 -0
  65. coinex/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +54 -0
  66. coinex/ccxt/static_dependencies/ethereum/hexbytes/main.py +65 -0
  67. coinex/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  68. coinex/ccxt/static_dependencies/ethereum/typing/__init__.py +63 -0
  69. coinex/ccxt/static_dependencies/ethereum/typing/abi.py +6 -0
  70. coinex/ccxt/static_dependencies/ethereum/typing/bls.py +7 -0
  71. coinex/ccxt/static_dependencies/ethereum/typing/discovery.py +5 -0
  72. coinex/ccxt/static_dependencies/ethereum/typing/encoding.py +7 -0
  73. coinex/ccxt/static_dependencies/ethereum/typing/enums.py +17 -0
  74. coinex/ccxt/static_dependencies/ethereum/typing/ethpm.py +9 -0
  75. coinex/ccxt/static_dependencies/ethereum/typing/evm.py +20 -0
  76. coinex/ccxt/static_dependencies/ethereum/typing/networks.py +1122 -0
  77. coinex/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  78. coinex/ccxt/static_dependencies/ethereum/utils/__init__.py +115 -0
  79. coinex/ccxt/static_dependencies/ethereum/utils/abi.py +72 -0
  80. coinex/ccxt/static_dependencies/ethereum/utils/address.py +171 -0
  81. coinex/ccxt/static_dependencies/ethereum/utils/applicators.py +151 -0
  82. coinex/ccxt/static_dependencies/ethereum/utils/conversions.py +190 -0
  83. coinex/ccxt/static_dependencies/ethereum/utils/currency.py +107 -0
  84. coinex/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +269 -0
  85. coinex/ccxt/static_dependencies/ethereum/utils/debug.py +20 -0
  86. coinex/ccxt/static_dependencies/ethereum/utils/decorators.py +132 -0
  87. coinex/ccxt/static_dependencies/ethereum/utils/encoding.py +6 -0
  88. coinex/ccxt/static_dependencies/ethereum/utils/exceptions.py +4 -0
  89. coinex/ccxt/static_dependencies/ethereum/utils/functional.py +75 -0
  90. coinex/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +74 -0
  91. coinex/ccxt/static_dependencies/ethereum/utils/humanize.py +188 -0
  92. coinex/ccxt/static_dependencies/ethereum/utils/logging.py +159 -0
  93. coinex/ccxt/static_dependencies/ethereum/utils/module_loading.py +31 -0
  94. coinex/ccxt/static_dependencies/ethereum/utils/numeric.py +43 -0
  95. coinex/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  96. coinex/ccxt/static_dependencies/ethereum/utils/toolz.py +76 -0
  97. coinex/ccxt/static_dependencies/ethereum/utils/types.py +54 -0
  98. coinex/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +18 -0
  99. coinex/ccxt/static_dependencies/ethereum/utils/typing/misc.py +14 -0
  100. coinex/ccxt/static_dependencies/ethereum/utils/units.py +31 -0
  101. coinex/ccxt/static_dependencies/keccak/__init__.py +3 -0
  102. coinex/ccxt/static_dependencies/keccak/keccak.py +197 -0
  103. coinex/ccxt/static_dependencies/lark/__init__.py +38 -0
  104. coinex/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
  105. coinex/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
  106. coinex/ccxt/static_dependencies/lark/ast_utils.py +59 -0
  107. coinex/ccxt/static_dependencies/lark/common.py +86 -0
  108. coinex/ccxt/static_dependencies/lark/exceptions.py +292 -0
  109. coinex/ccxt/static_dependencies/lark/grammar.py +130 -0
  110. coinex/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  111. coinex/ccxt/static_dependencies/lark/grammars/common.lark +59 -0
  112. coinex/ccxt/static_dependencies/lark/grammars/lark.lark +62 -0
  113. coinex/ccxt/static_dependencies/lark/grammars/python.lark +302 -0
  114. coinex/ccxt/static_dependencies/lark/grammars/unicode.lark +7 -0
  115. coinex/ccxt/static_dependencies/lark/indenter.py +143 -0
  116. coinex/ccxt/static_dependencies/lark/lark.py +658 -0
  117. coinex/ccxt/static_dependencies/lark/lexer.py +678 -0
  118. coinex/ccxt/static_dependencies/lark/load_grammar.py +1428 -0
  119. coinex/ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
  120. coinex/ccxt/static_dependencies/lark/parser_frontends.py +257 -0
  121. coinex/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  122. coinex/ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
  123. coinex/ccxt/static_dependencies/lark/parsers/earley.py +314 -0
  124. coinex/ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
  125. coinex/ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
  126. coinex/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
  127. coinex/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
  128. coinex/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
  129. coinex/ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
  130. coinex/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
  131. coinex/ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
  132. coinex/ccxt/static_dependencies/lark/py.typed +0 -0
  133. coinex/ccxt/static_dependencies/lark/reconstruct.py +107 -0
  134. coinex/ccxt/static_dependencies/lark/tools/__init__.py +70 -0
  135. coinex/ccxt/static_dependencies/lark/tools/nearley.py +202 -0
  136. coinex/ccxt/static_dependencies/lark/tools/serialize.py +32 -0
  137. coinex/ccxt/static_dependencies/lark/tools/standalone.py +196 -0
  138. coinex/ccxt/static_dependencies/lark/tree.py +267 -0
  139. coinex/ccxt/static_dependencies/lark/tree_matcher.py +186 -0
  140. coinex/ccxt/static_dependencies/lark/tree_templates.py +180 -0
  141. coinex/ccxt/static_dependencies/lark/utils.py +343 -0
  142. coinex/ccxt/static_dependencies/lark/visitors.py +596 -0
  143. coinex/ccxt/static_dependencies/marshmallow/__init__.py +81 -0
  144. coinex/ccxt/static_dependencies/marshmallow/base.py +65 -0
  145. coinex/ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
  146. coinex/ccxt/static_dependencies/marshmallow/decorators.py +231 -0
  147. coinex/ccxt/static_dependencies/marshmallow/error_store.py +60 -0
  148. coinex/ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
  149. coinex/ccxt/static_dependencies/marshmallow/fields.py +2114 -0
  150. coinex/ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
  151. coinex/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  152. coinex/ccxt/static_dependencies/marshmallow/schema.py +1228 -0
  153. coinex/ccxt/static_dependencies/marshmallow/types.py +12 -0
  154. coinex/ccxt/static_dependencies/marshmallow/utils.py +378 -0
  155. coinex/ccxt/static_dependencies/marshmallow/validate.py +678 -0
  156. coinex/ccxt/static_dependencies/marshmallow/warnings.py +2 -0
  157. coinex/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
  158. coinex/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
  159. coinex/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
  160. coinex/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
  161. coinex/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  162. coinex/ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
  163. coinex/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
  164. coinex/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
  165. coinex/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
  166. coinex/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  167. coinex/ccxt/static_dependencies/msgpack/__init__.py +55 -0
  168. coinex/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +11 -0
  169. coinex/ccxt/static_dependencies/msgpack/_packer.pyx +374 -0
  170. coinex/ccxt/static_dependencies/msgpack/_unpacker.pyx +547 -0
  171. coinex/ccxt/static_dependencies/msgpack/buff_converter.h +8 -0
  172. coinex/ccxt/static_dependencies/msgpack/exceptions.py +48 -0
  173. coinex/ccxt/static_dependencies/msgpack/ext.py +168 -0
  174. coinex/ccxt/static_dependencies/msgpack/fallback.py +951 -0
  175. coinex/ccxt/static_dependencies/msgpack/pack.h +89 -0
  176. coinex/ccxt/static_dependencies/msgpack/pack_template.h +820 -0
  177. coinex/ccxt/static_dependencies/msgpack/sysdep.h +194 -0
  178. coinex/ccxt/static_dependencies/msgpack/unpack.h +391 -0
  179. coinex/ccxt/static_dependencies/msgpack/unpack_define.h +95 -0
  180. coinex/ccxt/static_dependencies/msgpack/unpack_template.h +464 -0
  181. coinex/ccxt/static_dependencies/parsimonious/__init__.py +10 -0
  182. coinex/ccxt/static_dependencies/parsimonious/exceptions.py +105 -0
  183. coinex/ccxt/static_dependencies/parsimonious/expressions.py +479 -0
  184. coinex/ccxt/static_dependencies/parsimonious/grammar.py +487 -0
  185. coinex/ccxt/static_dependencies/parsimonious/nodes.py +325 -0
  186. coinex/ccxt/static_dependencies/parsimonious/utils.py +40 -0
  187. coinex/ccxt/static_dependencies/starknet/__init__.py +0 -0
  188. coinex/ccxt/static_dependencies/starknet/abi/v0/__init__.py +2 -0
  189. coinex/ccxt/static_dependencies/starknet/abi/v0/model.py +44 -0
  190. coinex/ccxt/static_dependencies/starknet/abi/v0/parser.py +216 -0
  191. coinex/ccxt/static_dependencies/starknet/abi/v0/schemas.py +72 -0
  192. coinex/ccxt/static_dependencies/starknet/abi/v0/shape.py +63 -0
  193. coinex/ccxt/static_dependencies/starknet/abi/v1/__init__.py +2 -0
  194. coinex/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +14 -0
  195. coinex/ccxt/static_dependencies/starknet/abi/v1/model.py +39 -0
  196. coinex/ccxt/static_dependencies/starknet/abi/v1/parser.py +220 -0
  197. coinex/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +179 -0
  198. coinex/ccxt/static_dependencies/starknet/abi/v1/schemas.py +66 -0
  199. coinex/ccxt/static_dependencies/starknet/abi/v1/shape.py +47 -0
  200. coinex/ccxt/static_dependencies/starknet/abi/v2/__init__.py +2 -0
  201. coinex/ccxt/static_dependencies/starknet/abi/v2/model.py +89 -0
  202. coinex/ccxt/static_dependencies/starknet/abi/v2/parser.py +293 -0
  203. coinex/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +192 -0
  204. coinex/ccxt/static_dependencies/starknet/abi/v2/schemas.py +132 -0
  205. coinex/ccxt/static_dependencies/starknet/abi/v2/shape.py +107 -0
  206. coinex/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  207. coinex/ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
  208. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  209. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
  210. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
  211. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
  212. coinex/ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
  213. coinex/ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
  214. coinex/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  215. coinex/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
  216. coinex/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  217. coinex/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
  218. coinex/ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
  219. coinex/ccxt/static_dependencies/starknet/common.py +15 -0
  220. coinex/ccxt/static_dependencies/starknet/constants.py +39 -0
  221. coinex/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  222. coinex/ccxt/static_dependencies/starknet/hash/address.py +79 -0
  223. coinex/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
  224. coinex/ccxt/static_dependencies/starknet/hash/selector.py +16 -0
  225. coinex/ccxt/static_dependencies/starknet/hash/storage.py +12 -0
  226. coinex/ccxt/static_dependencies/starknet/hash/utils.py +78 -0
  227. coinex/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  228. coinex/ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
  229. coinex/ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
  230. coinex/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
  231. coinex/ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
  232. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
  233. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
  234. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
  235. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
  236. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
  237. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
  238. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
  239. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
  240. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
  241. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
  242. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
  243. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
  244. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
  245. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
  246. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
  247. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
  248. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
  249. coinex/ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
  250. coinex/ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
  251. coinex/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
  252. coinex/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
  253. coinex/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  254. coinex/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
  255. coinex/ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
  256. coinex/ccxt/static_dependencies/starknet/utils/schema.py +13 -0
  257. coinex/ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
  258. coinex/ccxt/static_dependencies/starkware/__init__.py +0 -0
  259. coinex/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  260. coinex/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
  261. coinex/ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
  262. coinex/ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
  263. coinex/ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
  264. coinex/ccxt/static_dependencies/sympy/__init__.py +0 -0
  265. coinex/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  266. coinex/ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
  267. coinex/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  268. coinex/ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
  269. coinex/ccxt/static_dependencies/sympy/external/importtools.py +187 -0
  270. coinex/ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
  271. coinex/ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
  272. coinex/ccxt/static_dependencies/toolz/__init__.py +26 -0
  273. coinex/ccxt/static_dependencies/toolz/_signatures.py +784 -0
  274. coinex/ccxt/static_dependencies/toolz/_version.py +520 -0
  275. coinex/ccxt/static_dependencies/toolz/compatibility.py +30 -0
  276. coinex/ccxt/static_dependencies/toolz/curried/__init__.py +101 -0
  277. coinex/ccxt/static_dependencies/toolz/curried/exceptions.py +22 -0
  278. coinex/ccxt/static_dependencies/toolz/curried/operator.py +22 -0
  279. coinex/ccxt/static_dependencies/toolz/dicttoolz.py +339 -0
  280. coinex/ccxt/static_dependencies/toolz/functoolz.py +1049 -0
  281. coinex/ccxt/static_dependencies/toolz/itertoolz.py +1057 -0
  282. coinex/ccxt/static_dependencies/toolz/recipes.py +46 -0
  283. coinex/ccxt/static_dependencies/toolz/utils.py +9 -0
  284. coinex/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  285. coinex/ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
  286. {coinex_api-0.0.13.dist-info → coinex_api-0.0.14.dist-info}/METADATA +1 -1
  287. coinex_api-0.0.14.dist-info/RECORD +288 -0
  288. coinex_api-0.0.13.dist-info/RECORD +0 -3
  289. {coinex_api-0.0.13.dist-info → coinex_api-0.0.14.dist-info}/WHEEL +0 -0
@@ -0,0 +1,12 @@
1
+ """Type aliases.
2
+
3
+ .. warning::
4
+
5
+ This module is provisional. Types may be modified, added, and removed between minor releases.
6
+ """
7
+
8
+ import typing
9
+
10
+ StrSequenceOrSet = typing.Union[typing.Sequence[str], typing.AbstractSet[str]]
11
+ Tag = typing.Union[str, typing.Tuple[str, bool]]
12
+ Validator = typing.Callable[[typing.Any], typing.Any]
@@ -0,0 +1,378 @@
1
+ """Utility methods for marshmallow."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import collections
6
+ import datetime as dt
7
+ import functools
8
+ import inspect
9
+ import json
10
+ import re
11
+ import typing
12
+ import warnings
13
+ from collections.abc import Mapping
14
+ from email.utils import format_datetime, parsedate_to_datetime
15
+ from pprint import pprint as py_pprint
16
+
17
+ from .base import FieldABC
18
+ from .exceptions import FieldInstanceResolutionError
19
+ from .warnings import RemovedInMarshmallow4Warning
20
+
21
+ EXCLUDE = "exclude"
22
+ INCLUDE = "include"
23
+ RAISE = "raise"
24
+ _UNKNOWN_VALUES = {EXCLUDE, INCLUDE, RAISE}
25
+
26
+
27
+ class _Missing:
28
+ def __bool__(self):
29
+ return False
30
+
31
+ def __copy__(self):
32
+ return self
33
+
34
+ def __deepcopy__(self, _):
35
+ return self
36
+
37
+ def __repr__(self):
38
+ return "<marshmallow.missing>"
39
+
40
+
41
+ # Singleton value that indicates that a field's value is missing from input
42
+ # dict passed to :meth:`Schema.load`. If the field's value is not required,
43
+ # it's ``default`` value is used.
44
+ missing = _Missing()
45
+
46
+
47
+ def is_generator(obj) -> bool:
48
+ """Return True if ``obj`` is a generator"""
49
+ return inspect.isgeneratorfunction(obj) or inspect.isgenerator(obj)
50
+
51
+
52
+ def is_iterable_but_not_string(obj) -> bool:
53
+ """Return True if ``obj`` is an iterable object that isn't a string."""
54
+ return (hasattr(obj, "__iter__") and not hasattr(obj, "strip")) or is_generator(obj)
55
+
56
+
57
+ def is_collection(obj) -> bool:
58
+ """Return True if ``obj`` is a collection type, e.g list, tuple, queryset."""
59
+ return is_iterable_but_not_string(obj) and not isinstance(obj, Mapping)
60
+
61
+
62
+ def is_instance_or_subclass(val, class_) -> bool:
63
+ """Return True if ``val`` is either a subclass or instance of ``class_``."""
64
+ try:
65
+ return issubclass(val, class_)
66
+ except TypeError:
67
+ return isinstance(val, class_)
68
+
69
+
70
+ def is_keyed_tuple(obj) -> bool:
71
+ """Return True if ``obj`` has keyed tuple behavior, such as
72
+ namedtuples or SQLAlchemy's KeyedTuples.
73
+ """
74
+ return isinstance(obj, tuple) and hasattr(obj, "_fields")
75
+
76
+
77
+ def pprint(obj, *args, **kwargs) -> None:
78
+ """Pretty-printing function that can pretty-print OrderedDicts
79
+ like regular dictionaries. Useful for printing the output of
80
+ :meth:`marshmallow.Schema.dump`.
81
+
82
+ .. deprecated:: 3.7.0
83
+ marshmallow.pprint will be removed in marshmallow 4.
84
+ """
85
+ warnings.warn(
86
+ "marshmallow's pprint function is deprecated and will be removed in marshmallow 4.",
87
+ RemovedInMarshmallow4Warning,
88
+ stacklevel=2,
89
+ )
90
+ if isinstance(obj, collections.OrderedDict):
91
+ print(json.dumps(obj, *args, **kwargs))
92
+ else:
93
+ py_pprint(obj, *args, **kwargs)
94
+
95
+
96
+ # https://stackoverflow.com/a/27596917
97
+ def is_aware(datetime: dt.datetime) -> bool:
98
+ return (
99
+ datetime.tzinfo is not None and datetime.tzinfo.utcoffset(datetime) is not None
100
+ )
101
+
102
+
103
+ def from_rfc(datestring: str) -> dt.datetime:
104
+ """Parse a RFC822-formatted datetime string and return a datetime object.
105
+
106
+ https://stackoverflow.com/questions/885015/how-to-parse-a-rfc-2822-date-time-into-a-python-datetime # noqa: B950
107
+ """
108
+ return parsedate_to_datetime(datestring)
109
+
110
+
111
+ def rfcformat(datetime: dt.datetime) -> str:
112
+ """Return the RFC822-formatted representation of a datetime object.
113
+
114
+ :param datetime datetime: The datetime.
115
+ """
116
+ return format_datetime(datetime)
117
+
118
+
119
+ # Hat tip to Django for ISO8601 deserialization functions
120
+
121
+ _iso8601_datetime_re = re.compile(
122
+ r"(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})"
123
+ r"[T ](?P<hour>\d{1,2}):(?P<minute>\d{1,2})"
124
+ r"(?::(?P<second>\d{1,2})(?:\.(?P<microsecond>\d{1,6})\d{0,6})?)?"
125
+ r"(?P<tzinfo>Z|[+-]\d{2}(?::?\d{2})?)?$"
126
+ )
127
+
128
+ _iso8601_date_re = re.compile(r"(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})$")
129
+
130
+ _iso8601_time_re = re.compile(
131
+ r"(?P<hour>\d{1,2}):(?P<minute>\d{1,2})"
132
+ r"(?::(?P<second>\d{1,2})(?:\.(?P<microsecond>\d{1,6})\d{0,6})?)?"
133
+ )
134
+
135
+
136
+ def get_fixed_timezone(offset: int | float | dt.timedelta) -> dt.timezone:
137
+ """Return a tzinfo instance with a fixed offset from UTC."""
138
+ if isinstance(offset, dt.timedelta):
139
+ offset = offset.total_seconds() // 60
140
+ sign = "-" if offset < 0 else "+"
141
+ hhmm = "%02d%02d" % divmod(abs(offset), 60)
142
+ name = sign + hhmm
143
+ return dt.timezone(dt.timedelta(minutes=offset), name)
144
+
145
+
146
+ def from_iso_datetime(value):
147
+ """Parse a string and return a datetime.datetime.
148
+
149
+ This function supports time zone offsets. When the input contains one,
150
+ the output uses a timezone with a fixed offset from UTC.
151
+ """
152
+ match = _iso8601_datetime_re.match(value)
153
+ if not match:
154
+ raise ValueError("Not a valid ISO8601-formatted datetime string")
155
+ kw = match.groupdict()
156
+ kw["microsecond"] = kw["microsecond"] and kw["microsecond"].ljust(6, "0")
157
+ tzinfo = kw.pop("tzinfo")
158
+ if tzinfo == "Z":
159
+ tzinfo = dt.timezone.utc
160
+ elif tzinfo is not None:
161
+ offset_mins = int(tzinfo[-2:]) if len(tzinfo) > 3 else 0
162
+ offset = 60 * int(tzinfo[1:3]) + offset_mins
163
+ if tzinfo[0] == "-":
164
+ offset = -offset
165
+ tzinfo = get_fixed_timezone(offset)
166
+ kw = {k: int(v) for k, v in kw.items() if v is not None}
167
+ kw["tzinfo"] = tzinfo
168
+ return dt.datetime(**kw)
169
+
170
+
171
+ def from_iso_time(value):
172
+ """Parse a string and return a datetime.time.
173
+
174
+ This function doesn't support time zone offsets.
175
+ """
176
+ match = _iso8601_time_re.match(value)
177
+ if not match:
178
+ raise ValueError("Not a valid ISO8601-formatted time string")
179
+ kw = match.groupdict()
180
+ kw["microsecond"] = kw["microsecond"] and kw["microsecond"].ljust(6, "0")
181
+ kw = {k: int(v) for k, v in kw.items() if v is not None}
182
+ return dt.time(**kw)
183
+
184
+
185
+ def from_iso_date(value):
186
+ """Parse a string and return a datetime.date."""
187
+ match = _iso8601_date_re.match(value)
188
+ if not match:
189
+ raise ValueError("Not a valid ISO8601-formatted date string")
190
+ kw = {k: int(v) for k, v in match.groupdict().items()}
191
+ return dt.date(**kw)
192
+
193
+
194
+ def from_timestamp(value: typing.Any) -> dt.datetime:
195
+ if value is True or value is False:
196
+ raise ValueError("Not a valid POSIX timestamp")
197
+ value = float(value)
198
+ if value < 0:
199
+ raise ValueError("Not a valid POSIX timestamp")
200
+
201
+ # Load a timestamp with utc as timezone to prevent using system timezone.
202
+ # Then set timezone to None, to let the Field handle adding timezone info.
203
+ try:
204
+ return dt.datetime.fromtimestamp(value, tz=dt.timezone.utc).replace(tzinfo=None)
205
+ except OverflowError as exc:
206
+ raise ValueError("Timestamp is too large") from exc
207
+ except OSError as exc:
208
+ raise ValueError("Error converting value to datetime") from exc
209
+
210
+
211
+ def from_timestamp_ms(value: typing.Any) -> dt.datetime:
212
+ value = float(value)
213
+ return from_timestamp(value / 1000)
214
+
215
+
216
+ def timestamp(
217
+ value: dt.datetime,
218
+ ) -> float:
219
+ if not is_aware(value):
220
+ # When a date is naive, use UTC as zone info to prevent using system timezone.
221
+ value = value.replace(tzinfo=dt.timezone.utc)
222
+ return value.timestamp()
223
+
224
+
225
+ def timestamp_ms(value: dt.datetime) -> float:
226
+ return timestamp(value) * 1000
227
+
228
+
229
+ def isoformat(datetime: dt.datetime) -> str:
230
+ """Return the ISO8601-formatted representation of a datetime object.
231
+
232
+ :param datetime datetime: The datetime.
233
+ """
234
+ return datetime.isoformat()
235
+
236
+
237
+ def to_iso_time(time: dt.time) -> str:
238
+ return dt.time.isoformat(time)
239
+
240
+
241
+ def to_iso_date(date: dt.date) -> str:
242
+ return dt.date.isoformat(date)
243
+
244
+
245
+ def ensure_text_type(val: str | bytes) -> str:
246
+ if isinstance(val, bytes):
247
+ val = val.decode("utf-8")
248
+ return str(val)
249
+
250
+
251
+ def pluck(dictlist: list[dict[str, typing.Any]], key: str):
252
+ """Extracts a list of dictionary values from a list of dictionaries.
253
+ ::
254
+
255
+ >>> dlist = [{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}]
256
+ >>> pluck(dlist, 'id')
257
+ [1, 2]
258
+ """
259
+ return [d[key] for d in dictlist]
260
+
261
+
262
+ # Various utilities for pulling keyed values from objects
263
+
264
+
265
+ def get_value(obj, key: int | str, default=missing):
266
+ """Helper for pulling a keyed value off various types of objects. Fields use
267
+ this method by default to access attributes of the source object. For object `x`
268
+ and attribute `i`, this method first tries to access `x[i]`, and then falls back to
269
+ `x.i` if an exception is raised.
270
+
271
+ .. warning::
272
+ If an object `x` does not raise an exception when `x[i]` does not exist,
273
+ `get_value` will never check the value `x.i`. Consider overriding
274
+ `marshmallow.fields.Field.get_value` in this case.
275
+ """
276
+ if not isinstance(key, int) and "." in key:
277
+ return _get_value_for_keys(obj, key.split("."), default)
278
+ else:
279
+ return _get_value_for_key(obj, key, default)
280
+
281
+
282
+ def _get_value_for_keys(obj, keys, default):
283
+ if len(keys) == 1:
284
+ return _get_value_for_key(obj, keys[0], default)
285
+ else:
286
+ return _get_value_for_keys(
287
+ _get_value_for_key(obj, keys[0], default), keys[1:], default
288
+ )
289
+
290
+
291
+ def _get_value_for_key(obj, key, default):
292
+ if not hasattr(obj, "__getitem__"):
293
+ return getattr(obj, key, default)
294
+
295
+ try:
296
+ return obj[key]
297
+ except (KeyError, IndexError, TypeError, AttributeError):
298
+ return getattr(obj, key, default)
299
+
300
+
301
+ def set_value(dct: dict[str, typing.Any], key: str, value: typing.Any):
302
+ """Set a value in a dict. If `key` contains a '.', it is assumed
303
+ be a path (i.e. dot-delimited string) to the value's location.
304
+
305
+ ::
306
+
307
+ >>> d = {}
308
+ >>> set_value(d, 'foo.bar', 42)
309
+ >>> d
310
+ {'foo': {'bar': 42}}
311
+ """
312
+ if "." in key:
313
+ head, rest = key.split(".", 1)
314
+ target = dct.setdefault(head, {})
315
+ if not isinstance(target, dict):
316
+ raise ValueError(
317
+ f"Cannot set {key} in {head} " f"due to existing value: {target}"
318
+ )
319
+ set_value(target, rest, value)
320
+ else:
321
+ dct[key] = value
322
+
323
+
324
+ def callable_or_raise(obj):
325
+ """Check that an object is callable, else raise a :exc:`TypeError`."""
326
+ if not callable(obj):
327
+ raise TypeError(f"Object {obj!r} is not callable.")
328
+ return obj
329
+
330
+
331
+ def _signature(func: typing.Callable) -> list[str]:
332
+ return list(inspect.signature(func).parameters.keys())
333
+
334
+
335
+ def get_func_args(func: typing.Callable) -> list[str]:
336
+ """Given a callable, return a list of argument names. Handles
337
+ `functools.partial` objects and class-based callables.
338
+
339
+ .. versionchanged:: 3.0.0a1
340
+ Do not return bound arguments, eg. ``self``.
341
+ """
342
+ if inspect.isfunction(func) or inspect.ismethod(func):
343
+ return _signature(func)
344
+ if isinstance(func, functools.partial):
345
+ return _signature(func.func)
346
+ # Callable class
347
+ return _signature(func)
348
+
349
+
350
+ def resolve_field_instance(cls_or_instance):
351
+ """Return a Schema instance from a Schema class or instance.
352
+
353
+ :param type|Schema cls_or_instance: Marshmallow Schema class or instance.
354
+ """
355
+ if isinstance(cls_or_instance, type):
356
+ if not issubclass(cls_or_instance, FieldABC):
357
+ raise FieldInstanceResolutionError
358
+ return cls_or_instance()
359
+ else:
360
+ if not isinstance(cls_or_instance, FieldABC):
361
+ raise FieldInstanceResolutionError
362
+ return cls_or_instance
363
+
364
+
365
+ def timedelta_to_microseconds(value: dt.timedelta) -> int:
366
+ """Compute the total microseconds of a timedelta
367
+
368
+ https://github.com/python/cpython/blob/bb3e0c240bc60fe08d332ff5955d54197f79751c/Lib/datetime.py#L665-L667 # noqa: B950
369
+ """
370
+ return (value.days * (24 * 3600) + value.seconds) * 1000000 + value.microseconds
371
+
372
+
373
+ def validate_unknown_parameter_value(obj: typing.Any) -> str:
374
+ if obj not in _UNKNOWN_VALUES:
375
+ raise ValueError(
376
+ f"Object {obj!r} is not a valid value for the 'unknown' parameter"
377
+ )
378
+ return obj