diff --git a/pyproject.toml b/pyproject.toml
index e242ef00..172dcf2d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -15,8 +15,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
[build-system]
-requires = ["hatchling"]
-build-backend = "hatchling.build"
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
# ------ - ------
@@ -34,114 +34,122 @@ ignore = []
# ------ - ------
-[project]
+[tool.poetry]
name = "piker"
-version = "0.1.0a0dev0"
+version = "0.1.0.alpha0.dev0"
description = "trading gear for hackers"
-authors = [{ name = "Tyler Goodlet", email = "goodboy_foss@protonmail.com" }]
-requires-python = ">=3.12, <3.13"
-license = "AGPL-3.0-or-later"
+authors = ["Tyler Goodlet "]
+license = "AGPLv3"
readme = "README.rst"
-keywords = [
- "async",
- "trading",
- "finance",
- "quant",
- "charting",
+
+# ------ - ------
+
+[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]
+name="piker"
+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",
+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',
]
-dependencies = [
- "async-generator >=1.10, <2.0.0",
- "attrs >=23.1.0, <24.0.0",
- "bidict >=0.22.1, <0.23.0",
- "colorama >=0.4.6, <0.5.0",
- "colorlog >=6.7.0, <7.0.0",
- "ib-insync >=0.9.86, <0.10.0",
- "numba >=0.59.0, <0.60.0",
- "numpy >=1.25, <2.0",
- "polars >=0.18.13, <0.19.0",
- "pygments >=2.16.1, <3.0.0",
- "rich >=13.5.2, <14.0.0",
- "tomli >=2.0.1, <3.0.0",
- "tomli-w >=1.0.0, <2.0.0",
- "trio-util >=0.7.0, <0.8.0",
- "trio-websocket >=0.10.3, <0.11.0",
- "typer >=0.9.0, <1.0.0",
- "rapidfuzz >=3.5.2, <4.0.0",
- "pdbp >=1.5.0, <2.0.0",
- "trio >=0.24, <0.25",
- "pendulum >=3.0.0, <4.0.0",
- "httpx >=0.27.0, <0.28.0",
- "cryptofeed >=2.4.0, <3.0.0",
- "pyarrow >=17.0.0, <18.0.0",
- "websockets ==12.0",
- "msgspec",
- "tractor",
- "asyncvnc",
- "tomlkit",
-]
-
-[project.optional-dependencies]
-uis = [
- # https://docs.astral.sh/uv/concepts/projects/dependencies/#optional-dependencies
- # TODO: make sure the levenshtein shit compiles on nix..
- # rapidfuzz = {extras = ["speedup"], version = "^0.18.0"}
- "rapidfuzz >=3.2.0, <4.0.0",
- "qdarkstyle >=3.0.2, <4.0.0",
- "pyqt6 >=6.7.0, <7.0.0",
- "pyqtgraph",
-
- # ------ - ------
-
- # TODO: add an `--only daemon` group for running non-ui / pikerd
- # service tree in distributed mode B)
- # https://docs.astral.sh/uv/concepts/projects/dependencies/#optional-dependencies
- # [project.optional-dependencies]
-]
-
-[dependency-groups]
-dev = [
- "pytest >=6.0.0, <7.0.0",
- "elasticsearch >=8.9.0, <9.0.0",
- "xonsh >=0.14.2, <0.15.0",
- "prompt-toolkit ==3.0.40",
- "cython >=3.0.0, <4.0.0",
- "greenback >=1.1.1, <2.0.0",
- # 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
-]
-
-[project.scripts]
-piker = "piker.cli:cli"
-pikerd = "piker.cli:pikerd"
-ledger = "piker.accounting.cli:ledger"
-
-[tool.hatch.build.targets.sdist]
-include = ["piker"]
-
-[tool.hatch.build.targets.wheel]
-include = ["piker"]
-
-[tool.uv.sources]
-pyqtgraph = { git = "https://github.com/pikers/pyqtgraph.git" }
-asyncvnc = { git = "https://github.com/pikers/asyncvnc.git", branch = "main" }
-tomlkit = { git = "https://github.com/pikers/tomlkit.git", branch ="piker_pin" }
-msgspec = { git = "https://github.com/jcrist/msgspec.git" }
-tractor = { path = "../tractor" }