pypsbuilder
Not that simplistic THERMOCALC front-end for constructing and visualizations of P-T, T-X and P-X pseudosections
How to install
Using uv (recommended)
If you don't already have uv installed, see the installation instructions.
Create an isolated environment and install pypsbuilder into it. You should choose the UI framework using option pyqt5 or pyqt6:
uv venv
uv pip install pypsbuilder[pyqt6]
JupyterLab could also be installed providing the lab option:
uv pip install pypsbuilder[pyqt6,lab]
Using pip and venv
It is strongly suggested to install pypsbuilder into separate environment. You can create Python virtual environment. For Linux and macOS use:
python -m venv .venv
source .venv/bin/activate
for Windows use Command Prompt or PowerShell:
python -m venv .venv
.venv\Scripts\activate
or, if you will got error 'python' is not recognized as an internal or external command, try:
py -m venv .venv
.venv\Scripts\activate
[!NOTE] On Microsoft Windows, it may be required to set the execution policy in PowerShell for the user. You can do this by issuing the following PowerShell command:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
and install pypsbuilder using pip within the environment. You should choose the UI framework using option pyqt5 or pyqt6:
pip install pypsbuilder[pyqt6]
JupyterLab could also be installed providing the lab option:
pip install pypsbuilder[pyqt6,lab]
I'm using conda or mamba to manage environments
If you have already have conda or mamba installed, you can create environment with:
conda create -n pyps python=3.12.8 matplotlib shapely pyqt tqdm scikit-image qtpy jupyterlab
or
mamba create -n pyps python=3.12.8 matplotlib shapely pyqt tqdm scikit-image qtpy jupyterlab
Then activate the new environment:
conda activate pyps
or
mamba activate pyps
and install with pip. As PyQt is already installed with mamba/conda, we will install pypsbuilder without UI framework:
pip install pypsbuilder
[!NOTE] If you encounter errors during install, try to install without upgrading dependencies:
pip install --no-deps pypsbuilder
Upgrade existing installation
To upgrade an already installed pypsbuilder to the latest release:
uv pip install --upgrade pypsbuilder[pyqt6]
Contributing / development install
Clone the repository and install with uv:
uv sync --group dev
This installs pypsbuilder in editable mode with UI, notebook, test and docs extras plus dev tooling (ruff, pre-commit).
Running tests
Run the full test suite (must be run from the repo root, since tests
reference ./examples/outputs with a relative path):
uv run pytest
uv run pytest --cov --cov-report=xml
Run a single test:
uv run pytest pypsbuilder/tests/test_pclasses.py::test_parse_ini1
Formatting and linting
pypsbuilder uses ruff for both formatting and linting:
uv run ruff format pypsbuilder
uv run ruff check pypsbuilder
pre-commit hooks
Formatting, linting and the test suite also run automatically via pre-commit:
uv run pre-commit install
uv run pre-commit run --all-files
Building the package
uv build
Rebuilding Qt UI modules
After editing a .ui file in Qt Designer, regenerate the corresponding
ui_*.py module (requires pyuic6):
cd pypsbuilder/ui && ./compile_ui.sh
The script rewrites each generated file's PyQt6 imports to qtpy
imports, so the app stays usable with either pyqt5 or pyqt6.
Documentation and tutorials
Check documentation and tutorials on RTD https://pypsbuilder.readthedocs.io/en/latest/
License
pypsbuilder is free software: you can redistribute it and/or modify it under the terms of the MIT License. A copy of this license is provided in LICENSE file.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypsbuilder-2.6.7.tar.gz.
File metadata
- Download URL: pypsbuilder-2.6.7.tar.gz
- Upload date:
- Size: 5.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dce00ac0cd8ce69eba012228a0ec6969ff002d954271ae0748a5e13a19720f26
|
|
| MD5 |
382bf2a1c0032c4621a7e3fa71bd3443
|
|
| BLAKE2b-256 |
3185bf20855cc3997cf223a39af7eebe8d6b8de7b58377a3b357a4022a012530
|
File details
Details for the file pypsbuilder-2.6.7-py3-none-any.whl.
File metadata
- Download URL: pypsbuilder-2.6.7-py3-none-any.whl
- Upload date:
- Size: 189.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
598a1c40297ea2e74ba21e94ed1128615097fd4ad966d7e6e0ccc68949d6ab46
|
|
| MD5 |
87da66f465a3da86eb24d2a46c9d70d3
|
|
| BLAKE2b-256 |
8564525dc056a762a32a3389465000cbfc3fd65538de24e82f6285de7e6745a6
|