@@ -33,21 +33,19 @@ classifiers = [
3333 " Programming Language :: Python :: 3.13" ,
3434 " Programming Language :: Python :: 3.14" ,
3535 " Framework :: AsyncIO" ,
36- # The supported platforms, stated in the metadata rather than only in prose. Without these PyPI
37- # says nothing at all about where this package runs, which is the same as claiming everywhere.
3836 " Operating System :: POSIX :: Linux" ,
3937 " Operating System :: MacOS :: MacOS X" ,
4038]
4139requires-python = " >=3.12"
4240dependencies = [
4341 " websockets>=14.1" ,
4442 " pyyaml" ,
45- " aiohttp>=3.14.3" , # 3.13.x cannot decode a Content-Encoding: zstd response (Poloniex sends one)
43+ " aiohttp>=3.14.3" ,
4644 " msgspec>=0.19.0" ,
4745 " uvloop ; platform_system!='Windows'" ,
48- " order_book>=1.0.2" , # 1.0.2 computes the Bitfinex book checksums, the raw (L3) book's included
46+ " order_book>=1.0.2" ,
4947 " aiodns>=1.1" ,
50- " zstandard>=0.23 ; python_version<'3.14'" # capture compression; 3.14+ uses stdlib compression.zstd
48+ " zstandard>=0.23 ; python_version<'3.14'"
5149]
5250
5351[project .optional-dependencies ]
@@ -88,9 +86,6 @@ dev = [
8886include = [" cryptofeed*" ]
8987
9088[tool .setuptools .package-data ]
91- # py.typed is PEP 561: without it every downstream mypy treats the package as untyped, whatever
92- # annotations it carries. types.pyi is the stub for the Cython extension, whose .pyx setuptools
93- # ships but whose types are otherwise opaque to a type checker.
9489cryptofeed = [" *.pyx" , " py.typed" , " types.pyi" ]
9590
9691# For a debug build that keeps the runtime assertions, remove the CYTHON_WITHOUT_ASSERTIONS macro and rebuild
@@ -101,20 +96,10 @@ define-macros = [["CYTHON_WITHOUT_ASSERTIONS", ""]]
10196
10297[tool .cibuildwheel ]
10398build = " cp312-* cp313-* cp314-*"
104- # free-threaded builds are deliberately not produced: cryptofeed.types does not declare
105- # Py_MOD_GIL_NOT_USED, and asserting thread safety would mean auditing it together with the
106- # external order_book extension. Standard CPython only for 3.0 (decision D10). cp314t-* is
107- # excluded by the build selector above; this makes the intent explicit rather than incidental.
108- # musllinux is not built: the supported platforms are glibc Linux (x86_64 and aarch64) and macOS on
109- # Apple silicon. An Alpine wheel would be the worst of both - it installs, and then its hard
110- # `order_book` dependency has no musl wheel either and has to compile on an image that characteristically
111- # has no compiler. Anyone who wants musl can build from the sdist, which works.
11299skip = " *t-* *musllinux*"
113100test-command = " python -c \" from cryptofeed import FeedHandler; from cryptofeed.types import COMPILED_WITH_ASSERTIONS; assert COMPILED_WITH_ASSERTIONS is False\" "
114101
115102[tool .cibuildwheel .macos ]
116- # arm64 only. Intel Macs are not a supported platform, and `order_book` publishes no macosx_x86_64
117- # wheel either, so an Intel wheel would install and then need a toolchain to finish.
118103archs = [" arm64" ]
119104
120105[tool .ruff .lint ]
@@ -134,5 +119,5 @@ markers = [
134119]
135120addopts = " -m 'not live'"
136121asyncio_mode = " auto"
137- # a replay that stalls should fail, not hang the run
122+ # a replay that hangs should fail
138123timeout = 600
0 commit comments