11'''
2- Copyright (C) 2017-2025 Bryant Moscon - bmoscon@gmail.com
2+ Copyright (C) 2017-2026 Bryant Moscon - bmoscon@gmail.com
33
44Please see the LICENSE file for the terms and conditions
55associated with this software.
66'''
7+ # This setup.py is minimal and only handles the Cython extension,
78import os
8- import sys
9-
109from setuptools import Extension , setup
11- from setuptools import find_packages
12- from setuptools .command .test import test as TestCommand
1310from Cython .Build import cythonize
1411
1512
16- def get_long_description ():
17- """Read the contents of README.md, INSTALL.md and CHANGES.md files."""
18- from os import path
19-
20- repo_dir = path .abspath (path .dirname (__file__ ))
21- markdown = []
22- for filename in ["README.md" , "INSTALL.md" , "CHANGES.md" ]:
23- with open (path .join (repo_dir , filename ), encoding = "utf-8" ) as markdown_file :
24- markdown .append (markdown_file .read ())
25- return "\n \n ----\n \n " .join (markdown )
26-
27-
28- class Test (TestCommand ):
29- def run_tests (self ):
30- import pytest
31- errno = pytest .main (['tests/' ])
32- sys .exit (errno )
33-
3413
3514extra_compile_args = ["/O2" if os .name == "nt" else "-O3" ]
3615define_macros = []
@@ -43,70 +22,7 @@ def run_tests(self):
4322 extra_compile_args = extra_compile_args ,
4423 define_macros = define_macros )
4524
25+
4626setup (
47- name = "cryptofeed" ,
4827 ext_modules = cythonize ([extension ], language_level = 3 , force = True ),
49- version = "2.4.1" ,
50- author = "Bryant Moscon" ,
51- author_email = "bmoscon@gmail.com" ,
52- description = "Cryptocurrency Exchange Websocket Data Feed Handler" ,
53- long_description = get_long_description (),
54- long_description_content_type = "text/markdown" ,
55- license = "XFree86" ,
56- keywords = ["cryptocurrency" , "bitcoin" , "btc" , "feed handler" , "market feed" , "market data" , "crypto assets" ,
57- "Trades" , "Tickers" , "BBO" , "Funding" , "Open Interest" , "Liquidation" , "Order book" , "Bid" , "Ask" ,
58- "fmfw.io" , "Bitfinex" , "bitFlyer" , "AscendEX" , "Bitstamp" , "Blockchain.com" , "Bybit" ,
59- "Binance" , "Binance Delivery" , "Binance Futures" , "Binance US" , "BitMEX" , "Coinbase" , "Deribit" , "EXX" ,
60- "Gate.io" , "Gemini" , "HitBTC" , "Huobi" , "Huobi DM" , "Huobi Swap" , "Kraken" ,
61- "Kraken Futures" , "OKCoin" , "OKX" , "Poloniex" , "ProBit" , "Upbit" ],
62- url = "https://github.com/bmoscon/cryptofeed" ,
63- packages = find_packages (exclude = ['tests*' ]),
64- cmdclass = {'test' : Test },
65- python_requires = '>=3.9' ,
66- classifiers = [
67- "Intended Audience :: Developers" ,
68- "Development Status :: 4 - Beta" ,
69- "Programming Language :: Python :: 3 :: Only" ,
70- "Programming Language :: Python :: 3.9" ,
71- "Programming Language :: Python :: 3.10" ,
72- "Programming Language :: Python :: 3.11" ,
73- "Programming Language :: Python :: 3.12" ,
74- "Framework :: AsyncIO" ,
75- ],
76- tests_require = ["pytest" ],
77- install_requires = [
78- "requests>=2.18.4" ,
79- "websockets>=14.1" ,
80- "pyyaml" ,
81- "aiohttp>=3.11.6" ,
82- "aiofile>=2.0.0" ,
83- "yapic.json>=1.6.3" ,
84- 'uvloop ; platform_system!="Windows"' ,
85- "order_book>=0.6.0" ,
86- "aiodns>=1.1" # aiodns speeds up DNS resolving
87- ],
88- extras_require = {
89- "arctic" : ["arctic" , "pandas" ],
90- "gcp_pubsub" : ["google_cloud_pubsub>=2.4.1" , "gcloud_aio_pubsub" ],
91- "kafka" : ["aiokafka>=0.7.0" ],
92- "mongo" : ["motor" ],
93- "postgres" : ["asyncpg" ],
94- "quasardb" : ["quasardb" , "numpy" ],
95- "rabbit" : ["aio_pika" , "pika" ],
96- "redis" : ["hiredis" , "redis>=4.5.1" ],
97- "zmq" : ["pyzmq" ],
98- "all" : [
99- "arctic" ,
100- "google_cloud_pubsub>=2.4.1" ,
101- "gcloud_aio_pubsub" ,
102- "aiokafka>=0.7.0" ,
103- "motor" ,
104- "asyncpg" ,
105- "aio_pika" ,
106- "pika" ,
107- "hiredis" ,
108- "redis>=4.5.1" ,
109- "pyzmq" ,
110- ],
111- },
11228)
0 commit comments