mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 07:18:47 +00:00
feat: make GUI dependencies optional
This commit is contained in:
15
README.md
15
README.md
@@ -270,10 +270,17 @@ python -m seedpass_gui
|
|||||||
seedpass-gui
|
seedpass-gui
|
||||||
```
|
```
|
||||||
|
|
||||||
Only `toga-core` and the headless `toga-dummy` backend are included by default.
|
GUI dependencies are optional. Install them alongside SeedPass with:
|
||||||
The quick installer automatically installs the correct BeeWare backend so the
|
|
||||||
GUI works out of the box. If you set up SeedPass manually, install the backend
|
```bash
|
||||||
for your platform:
|
pip install "seedpass[gui]"
|
||||||
|
|
||||||
|
# or when working from a local checkout
|
||||||
|
pip install -e .[gui]
|
||||||
|
```
|
||||||
|
|
||||||
|
After installing the optional GUI extras, add the BeeWare backend for your
|
||||||
|
platform:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Linux
|
# Linux
|
||||||
|
@@ -14,10 +14,17 @@ python -m seedpass_gui
|
|||||||
seedpass-gui
|
seedpass-gui
|
||||||
```
|
```
|
||||||
|
|
||||||
Only `toga-core` and the headless `toga-dummy` backend ship with the project.
|
GUI dependencies are optional. Install them alongside SeedPass with:
|
||||||
The installation scripts automatically install the correct BeeWare backend so
|
|
||||||
the GUI works out of the box. If you set up SeedPass manually, install the
|
```bash
|
||||||
backend for your platform:
|
pip install "seedpass[gui]"
|
||||||
|
|
||||||
|
# or when working from a local checkout
|
||||||
|
pip install -e .[gui]
|
||||||
|
```
|
||||||
|
|
||||||
|
After installing the optional GUI extras, add the BeeWare backend for your
|
||||||
|
platform:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Linux
|
# Linux
|
||||||
|
9
poetry.lock
generated
9
poetry.lock
generated
@@ -1854,7 +1854,7 @@ version = "10.4.0"
|
|||||||
description = "Python Imaging Library (Fork)"
|
description = "Python Imaging Library (Fork)"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
groups = ["dev"]
|
groups = ["main", "dev"]
|
||||||
files = [
|
files = [
|
||||||
{file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"},
|
{file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"},
|
||||||
{file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"},
|
{file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"},
|
||||||
@@ -2905,6 +2905,7 @@ files = [
|
|||||||
{file = "toga_core-0.5.2-py3-none-any.whl", hash = "sha256:e872cebd2d899e9138f73393e8cd834a55a057aa269608ff7314a853ab33cb4e"},
|
{file = "toga_core-0.5.2-py3-none-any.whl", hash = "sha256:e872cebd2d899e9138f73393e8cd834a55a057aa269608ff7314a853ab33cb4e"},
|
||||||
{file = "toga_core-0.5.2.tar.gz", hash = "sha256:bdd3760146b74c8d315cb901392c2b645ab3e5d4cd90114f3e36e0e7dad3d6d1"},
|
{file = "toga_core-0.5.2.tar.gz", hash = "sha256:bdd3760146b74c8d315cb901392c2b645ab3e5d4cd90114f3e36e0e7dad3d6d1"},
|
||||||
]
|
]
|
||||||
|
markers = {main = "extra == \"gui\""}
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
travertino = "0.5.2"
|
travertino = "0.5.2"
|
||||||
@@ -2994,6 +2995,7 @@ files = [
|
|||||||
{file = "travertino-0.5.2-py3-none-any.whl", hash = "sha256:fd69ac3b14f2847e4c972198588b8a86ca3b437aaa0c8ce7259bbe5dab17aff1"},
|
{file = "travertino-0.5.2-py3-none-any.whl", hash = "sha256:fd69ac3b14f2847e4c972198588b8a86ca3b437aaa0c8ce7259bbe5dab17aff1"},
|
||||||
{file = "travertino-0.5.2.tar.gz", hash = "sha256:5afcc673e14e16c3c04c0e3fe387062633e6bc88e87bc0bbd214a04b4dfbbcd4"},
|
{file = "travertino-0.5.2.tar.gz", hash = "sha256:5afcc673e14e16c3c04c0e3fe387062633e6bc88e87bc0bbd214a04b4dfbbcd4"},
|
||||||
]
|
]
|
||||||
|
markers = {main = "extra == \"gui\""}
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dev = ["coverage-conditional-plugin (==0.9.0)", "coverage[toml] (==7.9.2)", "pytest (==8.4.1)", "tox (==4.27.0)", "typing-extensions (==4.12.2) ; python_version < \"3.10\""]
|
dev = ["coverage-conditional-plugin (==0.9.0)", "coverage[toml] (==7.9.2)", "pytest (==8.4.1)", "tox (==4.27.0)", "typing-extensions (==4.12.2) ; python_version < \"3.10\""]
|
||||||
@@ -3386,7 +3388,10 @@ idna = ">=2.0"
|
|||||||
multidict = ">=4.0"
|
multidict = ">=4.0"
|
||||||
propcache = ">=0.2.1"
|
propcache = ">=0.2.1"
|
||||||
|
|
||||||
|
[extras]
|
||||||
|
gui = ["pillow", "toga-core"]
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.1"
|
lock-version = "2.1"
|
||||||
python-versions = ">=3.10,<3.13"
|
python-versions = ">=3.10,<3.13"
|
||||||
content-hash = "9328b804a5f8600a6dbf7c857d35d1edbbc4727084aed8bde34d49967775a6ff"
|
content-hash = "8d9d5db692f39b9b05e0a365d779505583074f510d34de17627ac1849ca61bde"
|
||||||
|
@@ -6,7 +6,6 @@ authors = []
|
|||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = ">=3.10,<3.13"
|
python = ">=3.10,<3.13"
|
||||||
toga-core = ">=0.5.2"
|
|
||||||
colorama = ">=0.4.6"
|
colorama = ">=0.4.6"
|
||||||
termcolor = ">=1.1.0"
|
termcolor = ">=1.1.0"
|
||||||
cryptography = ">=40.0.2"
|
cryptography = ">=40.0.2"
|
||||||
@@ -35,6 +34,11 @@ orjson = "*"
|
|||||||
argon2-cffi = "*"
|
argon2-cffi = "*"
|
||||||
PyJWT = ">=2.8.0"
|
PyJWT = ">=2.8.0"
|
||||||
slowapi = "^0.1.9"
|
slowapi = "^0.1.9"
|
||||||
|
toga-core = { version = ">=0.5.2", optional = true }
|
||||||
|
pillow = { version = "*", optional = true }
|
||||||
|
|
||||||
|
[tool.poetry.extras]
|
||||||
|
gui = ["toga-core", "pillow"]
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
pytest = "^8.2"
|
pytest = "^8.2"
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# This file is autogenerated by pip-compile with Python 3.11
|
# This file is autogenerated by pip-compile with Python 3.12
|
||||||
# by the following command:
|
# by the following command:
|
||||||
#
|
#
|
||||||
# pip-compile --generate-hashes --output-file=requirements.lock src/requirements.txt
|
# pip-compile --generate-hashes --output-file=requirements.lock src/requirements.txt
|
||||||
|
@@ -255,7 +255,7 @@ if ($LASTEXITCODE -ne 0) {
|
|||||||
Write-Error "Dependency installation failed."
|
Write-Error "Dependency installation failed."
|
||||||
}
|
}
|
||||||
|
|
||||||
& "$VenvDir\Scripts\python.exe" -m pip install -e .
|
& "$VenvDir\Scripts\python.exe" -m pip install -e .[gui]
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Error "Failed to install SeedPass package"
|
Write-Error "Failed to install SeedPass package"
|
||||||
}
|
}
|
||||||
|
@@ -143,7 +143,7 @@ main() {
|
|||||||
print_info "Installing/updating Python dependencies from requirements.lock..."
|
print_info "Installing/updating Python dependencies from requirements.lock..."
|
||||||
pip install --upgrade pip
|
pip install --upgrade pip
|
||||||
pip install --require-hashes -r requirements.lock
|
pip install --require-hashes -r requirements.lock
|
||||||
pip install -e .
|
pip install -e .[gui]
|
||||||
print_info "Installing platform-specific Toga backend..."
|
print_info "Installing platform-specific Toga backend..."
|
||||||
if [ "$OS_NAME" = "Linux" ]; then
|
if [ "$OS_NAME" = "Linux" ]; then
|
||||||
print_info "Installing toga-gtk for Linux..."
|
print_info "Installing toga-gtk for Linux..."
|
||||||
|
@@ -27,4 +27,3 @@ requests>=2.32
|
|||||||
python-multipart>=0.0.20
|
python-multipart>=0.0.20
|
||||||
orjson
|
orjson
|
||||||
argon2-cffi
|
argon2-cffi
|
||||||
toga-core>=0.5.2
|
|
||||||
|
Reference in New Issue
Block a user