uv migration
Migrate to uv, use msgspec from git due to python 3.13 compatibility
							parent
							
								
									01b27dce1b
								
							
						
					
					
						commit
						5f940ef4cd
					
				
							
								
								
									
										18
									
								
								default.nix
								
								
								
								
							
							
						
						
									
										18
									
								
								default.nix
								
								
								
								
							|  | @ -25,7 +25,7 @@ let | |||
|   xorgxcbutilrenderutilStorePath = lib.getLib xorg.xcbutilrenderutil; | ||||
| in | ||||
| stdenv.mkDerivation { | ||||
|   name = "piker-qt6-poetry-shell"; | ||||
|   name = "piker-qt6-uv"; | ||||
|   buildInputs = [ | ||||
|     # System requirements. | ||||
|     glib | ||||
|  | @ -50,7 +50,7 @@ stdenv.mkDerivation { | |||
| 
 | ||||
|     # Python requirements. | ||||
|     python312Full | ||||
|     python312Packages.poetry-core | ||||
|     python312Packages.uv | ||||
|     python312Packages.qdarkstyle | ||||
|     python312Packages.rapidfuzz | ||||
|     python312Packages.pyqt6 | ||||
|  | @ -123,18 +123,8 @@ stdenv.mkDerivation { | |||
| 
 | ||||
|     export PATCH | ||||
| 
 | ||||
|     # Maybe create venv & install deps | ||||
|     poetry install --with uis | ||||
| 
 | ||||
|     # Use pyqt6 from System, patch activate script | ||||
|     ACTIVATE_SCRIPT_PATH="$(poetry env info --path)/bin/activate" | ||||
| 
 | ||||
|     if grep -q "$PATCH" "$ACTIVATE_SCRIPT_PATH"; then | ||||
|         echo "venv is already patched." | ||||
|     else | ||||
|         echo "patching $ACTIVATE_SCRIPT_PATH to use pyqt6 from nixos..." | ||||
|         sed -i "\$i$PATCH" $ACTIVATE_SCRIPT_PATH | ||||
|     fi | ||||
|     # Install deps | ||||
|     uv lock | ||||
| 
 | ||||
|   ''; | ||||
| } | ||||
|  |  | |||
							
								
								
									
										166
									
								
								pyproject.toml
								
								
								
								
							
							
						
						
									
										166
									
								
								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 <https://www.gnu.org/licenses/>. | ||||
| [build-system] | ||||
| requires = ["poetry-core"] | ||||
| build-backend = "poetry.core.masonry.api" | ||||
| requires = ["hatchling"] | ||||
| build-backend = "hatchling.build" | ||||
| 
 | ||||
| # ------ - ------ | ||||
| 
 | ||||
|  | @ -34,80 +34,64 @@ ignore = [] | |||
| 
 | ||||
| # ------ - ------ | ||||
| 
 | ||||
| [tool.poetry] | ||||
| [project] | ||||
| name = "piker" | ||||
| version = "0.1.0.alpha0.dev0" | ||||
| version = "0.1.0a0dev0" | ||||
| description = "trading gear for hackers" | ||||
| authors = ["Tyler Goodlet <goodboy_foss@protonmail.com>"] | ||||
| license = "AGPLv3" | ||||
| authors = [{ name = "Tyler Goodlet", email = "goodboy_foss@protonmail.com" }] | ||||
| license = "AGPL-3.0-or-later" | ||||
| readme = "README.rst" | ||||
| requires-python = ">=3.12, <3.13" | ||||
| 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", | ||||
| ] | ||||
| 
 | ||||
| # ------ - ------ | ||||
| 
 | ||||
| [tool.poetry.dependencies] | ||||
| async-generator = "^1.10" | ||||
| attrs = "^23.1.0" | ||||
| bidict = "^0.22.1" | ||||
| colorama = "^0.4.6" | ||||
| colorlog = "^6.7.0" | ||||
| ib-insync = "^0.9.86" | ||||
| msgspec = "^0.18.6" | ||||
| 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" | ||||
| cryptofeed = "^2.4.0" | ||||
| pyarrow = "^17.0.0" | ||||
| 
 | ||||
| tractor = {path = "../tractor", develop = true} | ||||
| websockets = "12.0" | ||||
| [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] | ||||
| [project.optional-dependencies] | ||||
| uis = [ | ||||
|     # 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" | ||||
| cython = "^3.0.0" | ||||
| greenback = "^1.1.1" | ||||
|     "rapidfuzz >=3.2.0, <4.0.0", | ||||
|     "qdarkstyle >=3.0.2, <4.0.0", | ||||
|     "pyqt6 >=6.7.0, <7.0.0", | ||||
|     "pyqtgraph", | ||||
| ] | ||||
| 
 | ||||
| [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 | ||||
|  | @ -122,32 +106,22 @@ greenback = "^1.1.1" | |||
|     # 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', | ||||
| ] | ||||
| 
 | ||||
| [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" } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue