# piker: trading gear for hackers # Copyright (C) 2018-present (in stewardship of pikers) # Tyler Goodlet and the pike pikes # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" # ------ - ------ [tool.ruff.lint] # https://docs.astral.sh/ruff/settings/#lint_ignore ignore = [] # https://docs.astral.sh/ruff/settings/#lint_per-file-ignores "piker/ui/qt.py" = [ "E402", 'F401', # unused imports (without __all__ or blah as blah) # "F841", # unused variable rules ] # ignore-init-module-imports = false # ------ - ------ [tool.poetry] name = "piker" version = "0.1.0.alpha0.dev0" description = "trading gear for hackers" authors = ["Tyler Goodlet "] license = "AGPLv3" readme = "README.rst" # ------ - ------ [tool.poetry.dependencies] async-generator = "^1.10" attrs = "^23.1.0" bidict = "^0.22.1" colorama = "^0.4.6" colorlog = "^6.7.0" cython = "^3.0.0" greenback = "^1.1.1" ib-insync = "^0.9.86" msgspec = "^0.18.0" numba = "^0.59.0" numpy = "^1.25" polars = "^0.18.13" pygments = "^2.16.1" python = ">=3.11, <3.13" rich = "^13.5.2" # setuptools = "^68.0.0" tomli = "^2.0.1" tomli-w = "^1.0.0" trio-util = "^0.7.0" trio-websocket = "^0.10.3" typer = "^0.9.0" rapidfuzz = "^3.5.2" pdbp = "^1.5.0" trio = "^0.24" pendulum = "^3.0.0" httpx = "^0.27.0" [tool.poetry.dependencies.tractor] develop = true git = 'https://github.com/goodboy/tractor.git' branch = 'asyncio_debugger_support' # path = "../tractor" [tool.poetry.dependencies.asyncvnc] git = 'https://github.com/pikers/asyncvnc.git' branch = 'main' [tool.poetry.dependencies.tomlkit] develop = true git = 'https://github.com/pikers/tomlkit.git' branch = 'piker_pin' # path = "../tomlkit/" [tool.poetry.group.uis] optional = true [tool.poetry.group.uis.dependencies] # https://python-poetry.org/docs/managing-dependencies/#dependency-groups # TODO: make sure the levenshtein shit compiles on nix.. # rapidfuzz = {extras = ["speedup"], version = "^0.18.0"} rapidfuzz = "^3.2.0" qdarkstyle = ">=3.0.2" pyqtgraph = { git = 'https://github.com/pikers/pyqtgraph.git' } # ------ - ------ pyqt6 = "^6.7.0" [tool.poetry.group.dev] optional = true [tool.poetry.group.dev.dependencies] # testing / CI pytest = "^6.0.0" elasticsearch = "^8.9.0" xonsh = "^0.14.2" prompt-toolkit = "3.0.40" # console ehancements and eventually remote debugging # extras/helpers. # TODO: add a toolset that makes debugging a `pikerd` service # (tree) easy to hack on directly using more or less the local env: # - xonsh + xxh # - rsyscall + pdbp # - actor runtime control console like BEAM/OTP # ------ - ------ # TODO: add an `--only daemon` group for running non-ui / pikerd # service tree in distributed mode B) # https://python-poetry.org/docs/managing-dependencies/#installing-group-dependencies # [tool.poetry.group.daemon.dependencies] [tool.poetry.scripts] piker = 'piker.cli:cli' pikerd = 'piker.cli:pikerd' ledger = 'piker.accounting.cli:ledger' [project] keywords=[ "async", "trading", "finance", "quant", "charting", ] classifiers=[ 'Development Status :: 3 - Alpha', "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", 'Operating System :: POSIX :: Linux', "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", 'Intended Audience :: Financial and Insurance Industry', 'Intended Audience :: Science/Research', 'Intended Audience :: Developers', 'Intended Audience :: Education', ]