-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
140 lines (133 loc) · 5.55 KB
/
Copy pathpyproject.toml
File metadata and controls
140 lines (133 loc) · 5.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
[build-system]
requires = ["setuptools==82.0.1"]
build-backend = "setuptools.build_meta"
[project]
name = "ccxt"
version = "4.5.64"
description = "A cryptocurrency trading API with more than 100 exchanges in JavaScript / TypeScript / Python / C# / PHP / Go"
readme = "python/README.md"
license = "MIT"
authors = [
{ name = "Igor Kroitor", email = "igor.kroitor@gmail.com" },
]
requires-python = ">=3.10"
keywords = [
"algorithmic", "algotrading", "altcoin", "altcoins", "api", "arbitrage", "backtest", "backtesting", "bitcoin", "bot",
"btc", "crypto", "cryptocurrency", "crypto currency", "crypto market", "currency", "currencies", "darkcoin",
"dash", "digital currency", "doge", "dogecoin", "e-commerce", "etc", "eth", "ether", "ethereum", "exchange",
"exchanges", "eur", "framework", "invest", "investing", "investor", "library", "light", "litecoin", "ltc",
"market", "market data", "markets", "merchandise", "merchant", "minimal", "ohlcv", "order", "orderbook",
"order book", "price", "price data", "pricefeed", "private", "public", "ripple", "strategy", "ticker",
"tickers", "toolkit", "trade", "trader", "trading", "usd", "volume", "websocket", "websockets",
"web socket", "web sockets", "ws", "xbt", "xrp", "zec", "zerocoin",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Financial and Insurance Industry",
"Intended Audience :: Information Technology",
"Topic :: Software Development :: Build Tools",
"Topic :: Office/Business :: Financial :: Investment",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: JavaScript",
"Programming Language :: PHP",
"Operating System :: OS Independent",
"Environment :: Console",
]
# all dependencies are pinned to exact versions to protect against
# malicious or vulnerable releases of downstream dependencies
dependencies = [
"setuptools==82.0.1",
"certifi==2026.6.17",
"requests==2.34.2",
"cryptography==49.0.0",
"typing_extensions==4.16.0",
"aiohttp==3.14.1",
"aiodns==4.0.4",
"yarl==1.24.2",
# fast zlib backend for aiohttp, enabled in ccxt.async_support.base.exchange
"aiohttp-fast-zlib==0.3.0",
"zlib-ng==1.0.0",
# event loop accelerator, installed where supported (no Windows/PyPy wheels);
# opt-in at the application entry point: uvloop.run(main())
"uvloop==0.22.1; platform_system != \"Windows\" and implementation_name == \"cpython\"",
# Windows counterpart of uvloop (same API, incl. winloop.run); wheels exist
# for CPython 3.8-3.14 on win_amd64/win_arm64 only - no win32, no sdist builds
"winloop==0.6.3; platform_system == \"Windows\" and implementation_name == \"cpython\" and python_version < \"3.15\" and platform_machine in \"AMD64 ARM64\"",
# fast JSON, installed only where orjson 3.11.9 ships a prebuilt wheel so that
# `pip install ccxt` never triggers a Rust source build. Allowlist mirrors the
# wheel matrix on PyPI (CPython 3.10-3.14 only, no PyPy, no free-threaded builds).
# NOTE: lowercase "arm64" matches macOS but intentionally NOT Windows "ARM64"
# (marker `in` is a case-sensitive substring match; cp310 has no win_arm64 wheel)
"orjson==3.11.9; implementation_name == \"cpython\" and python_version < \"3.15\" and platform_machine in \"x86_64 AMD64 aarch64 arm64 armv7l i686 ppc64le s390x\"",
"coincurve==21.0.0; python_version <= \"3.13\"",
# transitive dependencies of aiohttp
"aiohappyeyeballs==2.7.1",
"aiosignal==1.4.0",
"attrs==26.1.0",
"frozenlist==1.8.0",
"multidict==6.7.1",
"propcache==0.5.2",
# transitive dependencies of aiodns
"pycares==5.0.1",
# transitive dependencies of cryptography
"cffi==2.0.0",
"pycparser==3.0",
# transitive dependencies of requests
"charset_normalizer==3.4.7",
"idna==3.18",
"urllib3==2.7.0",
]
[project.optional-dependencies]
qa = [
"ruff==0.0.292",
"tox==4.56.1",
]
type = [
"mypy==1.6.1",
]
dev = [
"setuptools==82.0.1",
"certifi==2026.6.17",
"requests==2.34.2",
"cryptography==49.0.0",
"typing_extensions==4.16.0",
"aiohttp==3.14.1",
"aiodns==4.0.4",
"yarl==1.24.2",
"aiohttp-fast-zlib==0.3.0",
"zlib-ng==1.0.0",
"uvloop==0.22.1; platform_system != \"Windows\" and implementation_name == \"cpython\"",
"winloop==0.6.3; platform_system == \"Windows\" and implementation_name == \"cpython\" and python_version < \"3.15\" and platform_machine in \"AMD64 ARM64\"",
"orjson==3.11.9; implementation_name == \"cpython\" and python_version < \"3.15\" and platform_machine in \"x86_64 AMD64 aarch64 arm64 armv7l i686 ppc64le s390x\"",
"ruff==0.0.292",
"tox==4.56.1",
"mypy==1.6.1",
]
[project.urls]
Homepage = "https://ccxt.com"
Documentation = "https://github.com/ccxt/ccxt/wiki"
Discord = "https://discord.gg/ccxt"
Twitter = "https://twitter.com/ccxt_official"
Funding = "https://opencollective.com/ccxt"
[tool.setuptools.packages.find]
where = ["python"]
[tool.setuptools.package-data]
ccxt = [
"static_dependencies/mnemonic/wordlist/**/*",
"static_dependencies/dydx_v4_client/**/*",
"static_dependencies/lighter_client/*",
]
[tool.ruff]
preview = true
select = ["W", "F", "E"]
ignore = ["F722", "F841", "F821", "E402", "E501", "E902", "E713", "E741", "E714", "E275", "E721"]
exclude = [
"static_dependencies",
"protobuf",
]