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,51 @@
1
+ import typing
2
+
3
+ import marshmallow
4
+
5
+
6
+ class Sequence(marshmallow.fields.List):
7
+ """
8
+ A sequence field, basically an immutable version of the list field.
9
+ """
10
+
11
+ def _deserialize( # type: ignore[override]
12
+ self,
13
+ value: typing.Any,
14
+ attr: typing.Any,
15
+ data: typing.Any,
16
+ **kwargs: typing.Any,
17
+ ) -> typing.Optional[typing.Sequence[typing.Any]]:
18
+ optional_list = super()._deserialize(value, attr, data, **kwargs)
19
+ return None if optional_list is None else tuple(optional_list)
20
+
21
+
22
+ class Set(marshmallow.fields.List):
23
+ """
24
+ A set field. A set is an unordered/mutable collection of unique elements, same for frozenset
25
+ except it's immutable.
26
+
27
+ Notes:
28
+ Beware the a Set guarantees uniqueness in the resulting list but in return the item's order
29
+ will be random. So if the order matters, use a List or Sequence !
30
+ """
31
+
32
+ def __init__(
33
+ self,
34
+ cls_or_instance: typing.Union[marshmallow.fields.Field, type],
35
+ frozen: bool = False,
36
+ **kwargs,
37
+ ):
38
+ super().__init__(cls_or_instance, **kwargs)
39
+ self.set_type: typing.Type[typing.Union[frozenset, set]] = (
40
+ frozenset if frozen else set
41
+ )
42
+
43
+ def _deserialize( # type: ignore[override]
44
+ self,
45
+ value: typing.Any,
46
+ attr: typing.Any,
47
+ data: typing.Any,
48
+ **kwargs: typing.Any,
49
+ ) -> typing.Union[typing.Set[typing.Any], typing.FrozenSet[typing.Any], None]:
50
+ optional_list = super()._deserialize(value, attr, data, **kwargs)
51
+ return None if optional_list is None else self.set_type(optional_list)
@@ -0,0 +1,45 @@
1
+ from typing import Any, Callable, Optional
2
+
3
+
4
+ __all__ = ("lazy_class_attribute",)
5
+
6
+
7
+ class LazyClassAttribute:
8
+ """Descriptor decorator implementing a class-level, read-only
9
+ property, which caches its results on the class(es) on which it
10
+ operates.
11
+ """
12
+
13
+ __slots__ = ("func", "name", "called", "forward_value")
14
+
15
+ def __init__(
16
+ self,
17
+ func: Callable[..., Any],
18
+ name: Optional[str] = None,
19
+ forward_value: Any = None,
20
+ ):
21
+ self.func = func
22
+ self.name = name
23
+ self.called = False
24
+ self.forward_value = forward_value
25
+
26
+ def __get__(self, instance, cls=None):
27
+ if not cls:
28
+ cls = type(instance)
29
+
30
+ # avoid recursion
31
+ if self.called:
32
+ return self.forward_value
33
+
34
+ self.called = True
35
+
36
+ setattr(cls, self.name, self.func())
37
+
38
+ # "getattr" is used to handle bounded methods
39
+ return getattr(cls, self.name)
40
+
41
+ def __set_name__(self, owner, name):
42
+ self.name = self.name or name
43
+
44
+
45
+ lazy_class_attribute = LazyClassAttribute
@@ -0,0 +1,71 @@
1
+ import inspect
2
+ from typing import Callable, Optional, Type
3
+
4
+ from mypy import nodes
5
+ from mypy.plugin import DynamicClassDefContext, Plugin
6
+ from mypy.plugins import dataclasses
7
+
8
+ import marshmallow_dataclass
9
+
10
+ _NEW_TYPE_SIG = inspect.signature(marshmallow_dataclass.NewType)
11
+
12
+
13
+ def plugin(version: str) -> Type[Plugin]:
14
+ return MarshmallowDataclassPlugin
15
+
16
+
17
+ class MarshmallowDataclassPlugin(Plugin):
18
+ def get_dynamic_class_hook(
19
+ self, fullname: str
20
+ ) -> Optional[Callable[[DynamicClassDefContext], None]]:
21
+ if fullname == "marshmallow_dataclass.NewType":
22
+ return new_type_hook
23
+ return None
24
+
25
+ def get_class_decorator_hook(self, fullname: str):
26
+ if fullname == "marshmallow_dataclass.dataclass":
27
+ return dataclasses.dataclass_class_maker_callback
28
+ return None
29
+
30
+
31
+ def new_type_hook(ctx: DynamicClassDefContext) -> None:
32
+ """
33
+ Dynamic class hook for :func:`marshmallow_dataclass.NewType`.
34
+
35
+ Uses the type of the ``typ`` argument.
36
+ """
37
+ typ = _get_arg_by_name(ctx.call, "typ", _NEW_TYPE_SIG)
38
+ if not isinstance(typ, nodes.RefExpr):
39
+ return
40
+ info = typ.node
41
+ if not isinstance(info, nodes.TypeInfo):
42
+ return
43
+ ctx.api.add_symbol_table_node(ctx.name, nodes.SymbolTableNode(nodes.GDEF, info))
44
+
45
+
46
+ def _get_arg_by_name(
47
+ call: nodes.CallExpr, name: str, sig: inspect.Signature
48
+ ) -> Optional[nodes.Expression]:
49
+ """
50
+ Get value of argument from a call.
51
+
52
+ :return: The argument value, or ``None`` if it cannot be found.
53
+
54
+ .. warning::
55
+ This probably doesn't yet work for calls with ``*args`` and/or ``*kwargs``.
56
+ """
57
+ args = []
58
+ kwargs = {}
59
+ for arg_name, arg_value in zip(call.arg_names, call.args):
60
+ if arg_name is None:
61
+ args.append(arg_value)
62
+ else:
63
+ kwargs[arg_name] = arg_value
64
+ try:
65
+ bound_args = sig.bind(*args, **kwargs)
66
+ except TypeError:
67
+ return None
68
+ try:
69
+ return bound_args.arguments[name]
70
+ except KeyError:
71
+ return None
@@ -0,0 +1,14 @@
1
+ import sys
2
+
3
+ import marshmallow.fields
4
+
5
+ if sys.version_info >= (3, 9):
6
+ from typing import Annotated
7
+ else:
8
+ from typing_extensions import Annotated
9
+
10
+ Url = Annotated[str, marshmallow.fields.Url]
11
+ Email = Annotated[str, marshmallow.fields.Email]
12
+
13
+ # Aliases
14
+ URL = Url
@@ -0,0 +1,82 @@
1
+ import copy
2
+ import inspect
3
+ from typing import List, Tuple, Any, Optional
4
+
5
+ import typeguard
6
+ from marshmallow import fields, Schema, ValidationError
7
+
8
+ try:
9
+ from typeguard import TypeCheckError # type: ignore[attr-defined]
10
+ except ImportError:
11
+ # typeguard < 3
12
+ TypeCheckError = TypeError # type: ignore[misc, assignment]
13
+
14
+ if "argname" not in inspect.signature(typeguard.check_type).parameters:
15
+
16
+ def _check_type(value, expected_type, argname: str):
17
+ return typeguard.check_type(value=value, expected_type=expected_type)
18
+
19
+ else:
20
+ # typeguard < 3.0.0rc2
21
+ def _check_type(value, expected_type, argname: str):
22
+ return typeguard.check_type( # type: ignore[call-overload]
23
+ value=value, expected_type=expected_type, argname=argname
24
+ )
25
+
26
+
27
+ class Union(fields.Field):
28
+ """A union field, composed other `Field` classes or instances.
29
+ This field serializes elements based on their type, with one of its child fields.
30
+
31
+ Example: ::
32
+
33
+ number_or_string = UnionField([
34
+ (float, fields.Float()),
35
+ (str, fields.Str())
36
+ ])
37
+
38
+ :param union_fields: A list of types and their associated field instance.
39
+ :param kwargs: The same keyword arguments that :class:`Field` receives.
40
+ """
41
+
42
+ def __init__(self, union_fields: List[Tuple[type, fields.Field]], **kwargs):
43
+ super().__init__(**kwargs)
44
+ self.union_fields = union_fields
45
+
46
+ def _bind_to_schema(self, field_name: str, schema: Schema) -> None:
47
+ super()._bind_to_schema(field_name, schema)
48
+ new_union_fields = []
49
+ for typ, field in self.union_fields:
50
+ field = copy.deepcopy(field)
51
+ field._bind_to_schema(field_name, self)
52
+ new_union_fields.append((typ, field))
53
+
54
+ self.union_fields = new_union_fields
55
+
56
+ def _serialize(self, value: Any, attr: Optional[str], obj, **kwargs) -> Any:
57
+ errors = []
58
+ if value is None:
59
+ return value
60
+ for typ, field in self.union_fields:
61
+ try:
62
+ _check_type(value=value, expected_type=typ, argname=attr or "anonymous")
63
+ return field._serialize(value, attr, obj, **kwargs)
64
+ except TypeCheckError as e:
65
+ errors.append(e)
66
+ raise TypeError(
67
+ f"Unable to serialize value with any of the fields in the union: {errors}"
68
+ )
69
+
70
+ def _deserialize(self, value: Any, attr: Optional[str], data, **kwargs) -> Any:
71
+ errors = []
72
+ for typ, field in self.union_fields:
73
+ try:
74
+ result = field.deserialize(value, **kwargs)
75
+ _check_type(
76
+ value=result, expected_type=typ, argname=attr or "anonymous"
77
+ )
78
+ return result
79
+ except (TypeCheckError, ValidationError) as e:
80
+ errors.append(e)
81
+
82
+ raise ValidationError(errors)
@@ -0,0 +1 @@
1
+ from .one_of_schema import OneOfSchema # noqa
@@ -0,0 +1,193 @@
1
+ import typing
2
+
3
+ from ..marshmallow import Schema, ValidationError
4
+
5
+
6
+ class OneOfSchema(Schema):
7
+ """
8
+ This is a special kind of schema that actually multiplexes other schemas
9
+ based on object type. When serializing values, it uses get_obj_type() method
10
+ to get object type name. Then it uses `type_schemas` name-to-Schema mapping
11
+ to get schema for that particular object type, serializes object using that
12
+ schema and adds an extra "type" field with name of object type.
13
+ Deserialization is reverse.
14
+
15
+ Example:
16
+
17
+ class Foo(object):
18
+ def __init__(self, foo):
19
+ self.foo = foo
20
+
21
+ class Bar(object):
22
+ def __init__(self, bar):
23
+ self.bar = bar
24
+
25
+ class FooSchema(marshmallow.Schema):
26
+ foo = marshmallow.fields.String(required=True)
27
+
28
+ @marshmallow.post_load
29
+ def make_foo(self, data, **kwargs):
30
+ return Foo(**data)
31
+
32
+ class BarSchema(marshmallow.Schema):
33
+ bar = marshmallow.fields.Integer(required=True)
34
+
35
+ @marshmallow.post_load
36
+ def make_bar(self, data, **kwargs):
37
+ return Bar(**data)
38
+
39
+ class MyUberSchema(marshmallow.OneOfSchema):
40
+ type_schemas = {
41
+ 'foo': FooSchema,
42
+ 'bar': BarSchema,
43
+ }
44
+
45
+ def get_obj_type(self, obj):
46
+ if isinstance(obj, Foo):
47
+ return 'foo'
48
+ elif isinstance(obj, Bar):
49
+ return 'bar'
50
+ else:
51
+ raise Exception('Unknown object type: %s' % repr(obj))
52
+
53
+ MyUberSchema().dump([Foo(foo='hello'), Bar(bar=123)], many=True)
54
+ # => [{'type': 'foo', 'foo': 'hello'}, {'type': 'bar', 'bar': 123}]
55
+
56
+ You can control type field name added to serialized object representation by
57
+ setting `type_field` class property.
58
+ """
59
+
60
+ type_field = "type"
61
+ type_field_remove = True
62
+ type_schemas: typing.Mapping[str, typing.Union[typing.Type[Schema], Schema]] = {}
63
+
64
+ def get_obj_type(self, obj):
65
+ """Returns name of the schema during dump() calls, given the object
66
+ being dumped."""
67
+ return obj.__class__.__name__
68
+
69
+ def get_data_type(self, data):
70
+ """Returns name of the schema during load() calls, given the data being
71
+ loaded. Defaults to looking up `type_field` in the data."""
72
+ data_type = data.get(self.type_field)
73
+ if self.type_field in data and self.type_field_remove:
74
+ data.pop(self.type_field)
75
+ return data_type
76
+
77
+ def dump(self, obj, *, many=None, **kwargs):
78
+ errors = {}
79
+ result_data = []
80
+ result_errors = {}
81
+ many = self.many if many is None else bool(many)
82
+ if not many:
83
+ result = result_data = self._dump(obj, **kwargs)
84
+ else:
85
+ for idx, o in enumerate(obj):
86
+ try:
87
+ result = self._dump(o, **kwargs)
88
+ result_data.append(result)
89
+ except ValidationError as error:
90
+ result_errors[idx] = error.normalized_messages()
91
+ result_data.append(error.valid_data)
92
+
93
+ result = result_data
94
+ errors = result_errors
95
+
96
+ if not errors:
97
+ return result
98
+ else:
99
+ exc = ValidationError(errors, data=obj, valid_data=result)
100
+ raise exc
101
+
102
+ def _dump(self, obj, *, update_fields=True, **kwargs):
103
+ obj_type = self.get_obj_type(obj)
104
+ if obj_type is None:
105
+ return (
106
+ None,
107
+ {"_schema": f"Unknown object class: {obj.__class__.__name__}"},
108
+ )
109
+
110
+ type_schema = self.type_schemas.get(obj_type)
111
+ if not type_schema:
112
+ return None, {"_schema": f"Unsupported object type: {obj_type}"}
113
+
114
+ schema = type_schema if isinstance(type_schema, Schema) else type_schema()
115
+
116
+ schema.context.update(getattr(self, "context", {}))
117
+
118
+ result = schema.dump(obj, many=False, **kwargs)
119
+ if result is not None:
120
+ result[self.type_field] = obj_type
121
+ return result
122
+
123
+ def load(self, data, *, many=None, partial=None, unknown=None, **kwargs):
124
+ errors = {}
125
+ result_data = []
126
+ result_errors = {}
127
+ many = self.many if many is None else bool(many)
128
+ if partial is None:
129
+ partial = self.partial
130
+ if not many:
131
+ try:
132
+ result = result_data = self._load(
133
+ data, partial=partial, unknown=unknown, **kwargs
134
+ )
135
+ # result_data.append(result)
136
+ except ValidationError as error:
137
+ result_errors = error.normalized_messages()
138
+ result_data.append(error.valid_data)
139
+ else:
140
+ for idx, item in enumerate(data):
141
+ try:
142
+ result = self._load(item, partial=partial, **kwargs)
143
+ result_data.append(result)
144
+ except ValidationError as error:
145
+ result_errors[idx] = error.normalized_messages()
146
+ result_data.append(error.valid_data)
147
+
148
+ result = result_data
149
+ errors = result_errors
150
+
151
+ if not errors:
152
+ return result
153
+ else:
154
+ exc = ValidationError(errors, data=data, valid_data=result)
155
+ raise exc
156
+
157
+ def _load(self, data, *, partial=None, unknown=None, **kwargs):
158
+ if not isinstance(data, dict):
159
+ raise ValidationError({"_schema": f"Invalid data type: {data}"})
160
+
161
+ data = dict(data)
162
+ unknown = unknown or self.unknown
163
+ data_type = self.get_data_type(data)
164
+
165
+ if data_type is None:
166
+ raise ValidationError(
167
+ {self.type_field: ["Missing data for required field."]}
168
+ )
169
+
170
+ try:
171
+ type_schema = self.type_schemas.get(data_type)
172
+ except TypeError as error:
173
+ # data_type could be unhashable
174
+ raise ValidationError(
175
+ {self.type_field: [f"Invalid value: {data_type}"]}
176
+ ) from error
177
+ if not type_schema:
178
+ raise ValidationError(
179
+ {self.type_field: [f"Unsupported value: {data_type}"]}
180
+ )
181
+
182
+ schema = type_schema if isinstance(type_schema, Schema) else type_schema()
183
+
184
+ schema.context.update(getattr(self, "context", {}))
185
+
186
+ return schema.load(data, many=False, partial=partial, unknown=unknown, **kwargs)
187
+
188
+ def validate(self, data, *, many=None, partial=None):
189
+ try:
190
+ self.load(data, many=many, partial=partial)
191
+ except ValidationError as ve:
192
+ return ve.messages
193
+ return {}
@@ -0,0 +1,55 @@
1
+ from .exceptions import *
2
+ from .ext import ExtType, Timestamp
3
+
4
+ import os
5
+
6
+
7
+ version = (1, 0, 7)
8
+ __version__ = "1.0.7"
9
+
10
+
11
+ if os.environ.get("MSGPACK_PUREPYTHON"):
12
+ from .fallback import Packer, unpackb, Unpacker
13
+ else:
14
+ try:
15
+ from ._cmsgpack import Packer, unpackb, Unpacker
16
+ except ImportError:
17
+ from .fallback import Packer, unpackb, Unpacker
18
+
19
+
20
+ def pack(o, stream, **kwargs):
21
+ """
22
+ Pack object `o` and write it to `stream`
23
+
24
+ See :class:`Packer` for options.
25
+ """
26
+ packer = Packer(**kwargs)
27
+ stream.write(packer.pack(o))
28
+
29
+
30
+ def packb(o, **kwargs):
31
+ """
32
+ Pack object `o` and return packed bytes
33
+
34
+ See :class:`Packer` for options.
35
+ """
36
+ return Packer(**kwargs).pack(o)
37
+
38
+
39
+ def unpack(stream, **kwargs):
40
+ """
41
+ Unpack an object from `stream`.
42
+
43
+ Raises `ExtraData` when `stream` contains extra bytes.
44
+ See :class:`Unpacker` for options.
45
+ """
46
+ data = stream.read()
47
+ return unpackb(data, **kwargs)
48
+
49
+
50
+ # alias for compatibility to simplejson/marshal/pickle.
51
+ load = unpack
52
+ loads = unpackb
53
+
54
+ dump = pack
55
+ dumps = packb
@@ -0,0 +1,11 @@
1
+ # coding: utf-8
2
+ #cython: embedsignature=True, c_string_encoding=ascii, language_level=3
3
+ from cpython.datetime cimport import_datetime, datetime_new
4
+ import_datetime()
5
+
6
+ import datetime
7
+ cdef object utc = datetime.timezone.utc
8
+ cdef object epoch = datetime_new(1970, 1, 1, 0, 0, 0, 0, tz=utc)
9
+
10
+ include "_packer.pyx"
11
+ include "_unpacker.pyx"