diff --git a/.github/workflows/bundle_windows.yml b/.github/workflows/bundle_windows.yml index 679b645..fbd0a49 100644 --- a/.github/workflows/bundle_windows.yml +++ b/.github/workflows/bundle_windows.yml @@ -40,7 +40,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - pip install -e . + pip install -e .[gui] pip install cx_freeze - name: Bundle with cx_Freeze diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 9cf24c5..fb834fd 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -33,7 +33,7 @@ jobs: pip install -r requirements.txt pip install -r requirements-test.txt sudo apt-get install libopenjp2-7 - pip install -e . + pip install -e .[gui] - name: Run Flake8 run: | flake8 . diff --git a/README.md b/README.md index 2068c10..faa3a28 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,9 @@ with low-level SL details. See the [Local Animation addon example](https://githu * Activate the virtualenv by running the appropriate activation script * * Under Linux this would be something like `source /bin/activate` * * Under Windows it's `\Scripts\activate.bat` -* Run `pip install hippolyzer`, or run `pip install -e .` in a cloned repo to install an editable version +* Run `pip install hippolyzer[gui]` for a full install, or run `pip install -e .[gui]` in a cloned repo to install an editable version +* * If you only want the core library without proxy or GUI support, use `pip install hippolyzer` or `pip install -e .` +* * If you only want proxy/CLI support without the GUI, use `pip install hippolyzer[proxy]` or `pip install -e .[proxy]` ### Binary Windows Builds diff --git a/pyproject.toml b/pyproject.toml index d2f3153..c82745d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,24 +26,31 @@ classifiers = [ ] dependencies = [ "aiohttp<4.0.0", - "arpeggio", "defusedxml", "gltflib", "Glymur<0.9.7", "idna<3,>=2.5", "lazy-object-proxy", "llsd<1.1.0", - "mitmproxy>=11.0.0,<12", "numpy<2.0", - "outleap<1.0", - "ptpython<4.0", "pycollada", - "pyside6-essentials", - "qasync", "recordclass>=0.23.1,<0.24", "transformations", +] + +[project.optional-dependencies] +proxy = [ + "arpeggio", + "mitmproxy>=11.0.0,<12", + "outleap<1.0", + "ptpython<4.0", "Werkzeug<4.0", ] +gui = [ + "hippolyzer[proxy]", + "pyside6-essentials", + "qasync", +] [tool.setuptools.packages.find] where = ["."]