pypsbuilder 2.5.2__tar.gz → 2.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. pypsbuilder-2.6.1/.github/dependabot.yml +6 -0
  2. pypsbuilder-2.6.1/.github/workflows/release.yml +32 -0
  3. pypsbuilder-2.6.1/.github/workflows/testing.yml +43 -0
  4. pypsbuilder-2.6.1/.github/workflows/testrelease.yml +33 -0
  5. pypsbuilder-2.6.1/.gitignore +66 -0
  6. pypsbuilder-2.6.1/.pre-commit-config.yaml +28 -0
  7. pypsbuilder-2.6.1/.readthedocs.yaml +24 -0
  8. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/CHANGELOG.md +10 -2
  9. pypsbuilder-2.6.1/PKG-INFO +158 -0
  10. pypsbuilder-2.6.1/README.md +82 -0
  11. pypsbuilder-2.6.1/codecov.yml +10 -0
  12. pypsbuilder-2.6.1/docs/_static/theme_overrides.css +13 -0
  13. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.Dogmin.rst +31 -0
  14. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.InvPoint.rst +34 -0
  15. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.PTsection.rst +41 -0
  16. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.PXsection.rst +41 -0
  17. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.TCResult.rst +30 -0
  18. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.TCResultSet.rst +35 -0
  19. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.TXsection.rst +41 -0
  20. pypsbuilder-2.6.1/docs/api/pypsbuilder.psclasses.UniLine.rst +36 -0
  21. pypsbuilder-2.6.1/docs/api/pypsbuilder.psexplorer.PTPS.rst +80 -0
  22. pypsbuilder-2.6.1/docs/api/pypsbuilder.psexplorer.PXPS.rst +77 -0
  23. pypsbuilder-2.6.1/docs/api/pypsbuilder.psexplorer.TXPS.rst +77 -0
  24. pypsbuilder-2.6.1/docs/api/pypsbuilder.tcapi.TC34API.rst +58 -0
  25. pypsbuilder-2.6.1/docs/api/pypsbuilder.tcapi.TC35API.rst +57 -0
  26. pypsbuilder-2.6.1/docs/api.rst +104 -0
  27. pypsbuilder-2.6.1/docs/authors.rst +12 -0
  28. pypsbuilder-2.6.1/docs/command-line.rst +168 -0
  29. pypsbuilder-2.6.1/docs/conf.py +172 -0
  30. pypsbuilder-2.6.1/docs/images/create_environment.png +0 -0
  31. pypsbuilder-2.6.1/docs/images/crossing.png +0 -0
  32. pypsbuilder-2.6.1/docs/images/delta.png +0 -0
  33. pypsbuilder-2.6.1/docs/images/install_locally.png +0 -0
  34. pypsbuilder-2.6.1/docs/images/invsearch.png +0 -0
  35. pypsbuilder-2.6.1/docs/images/isopleths_1.png +0 -0
  36. pypsbuilder-2.6.1/docs/images/isopleths_2.png +0 -0
  37. pypsbuilder-2.6.1/docs/images/modes.png +0 -0
  38. pypsbuilder-2.6.1/docs/images/psbuilder_areas.png +0 -0
  39. pypsbuilder-2.6.1/docs/images/psbuilder_dogmin.png +0 -0
  40. pypsbuilder-2.6.1/docs/images/psbuilder_finished.png +0 -0
  41. pypsbuilder-2.6.1/docs/images/psbuilder_highlight.png +0 -0
  42. pypsbuilder-2.6.1/docs/images/psbuilder_init.png +0 -0
  43. pypsbuilder-2.6.1/docs/images/psbuilder_inv.png +0 -0
  44. pypsbuilder-2.6.1/docs/images/psbuilder_modes.png +0 -0
  45. pypsbuilder-2.6.1/docs/images/psbuilder_uni.png +0 -0
  46. pypsbuilder-2.6.1/docs/images/psiso_alm.png +0 -0
  47. pypsbuilder-2.6.1/docs/images/psiso_labelkey.png +0 -0
  48. pypsbuilder-2.6.1/docs/images/psiso_mode.png +0 -0
  49. pypsbuilder-2.6.1/docs/images/psiso_other.png +0 -0
  50. pypsbuilder-2.6.1/docs/images/psshow_out.png +0 -0
  51. pypsbuilder-2.6.1/docs/images/ptpath.png +0 -0
  52. pypsbuilder-2.6.1/docs/images/show_data.png +0 -0
  53. pypsbuilder-2.6.1/docs/images/show_grid.png +0 -0
  54. pypsbuilder-2.6.1/docs/images/show_label.png +0 -0
  55. pypsbuilder-2.6.1/docs/images/show_out.png +0 -0
  56. pypsbuilder-2.6.1/docs/images/show_plain.png +0 -0
  57. pypsbuilder-2.6.1/docs/images/status.png +0 -0
  58. pypsbuilder-2.6.1/docs/index.rst +47 -0
  59. pypsbuilder-2.6.1/docs/psbuilders-tutorial.rst +238 -0
  60. pypsbuilder-2.6.1/docs/psexplorer-tutorial.rst +250 -0
  61. pypsbuilder-2.6.1/docs/readme.rst +1 -0
  62. pypsbuilder-2.6.1/environment.yml +15 -0
  63. pypsbuilder-2.6.1/examples/avgpelite/tc-avgpelite.txt +211 -0
  64. pypsbuilder-2.6.1/examples/avgpelite/tc-ds62.txt +2494 -0
  65. pypsbuilder-2.6.1/examples/avgpelite/tc-mp50MnNCKFMASHTO.txt +2072 -0
  66. pypsbuilder-2.6.1/examples/avgpelite/tc-prefs.txt +9 -0
  67. pypsbuilder-2.6.1/examples/avgpelite_34/tc-6axmn.txt +2559 -0
  68. pypsbuilder-2.6.1/examples/avgpelite_34/tc-avgpelite.txt +1138 -0
  69. pypsbuilder-2.6.1/examples/avgpelite_34/tc-ds62.txt +2494 -0
  70. pypsbuilder-2.6.1/examples/avgpelite_34/tc-prefs.txt +13 -0
  71. pypsbuilder-2.6.1/examples/outputs/inv1-ic.txt +111 -0
  72. pypsbuilder-2.6.1/examples/outputs/inv1-log.txt +104 -0
  73. pypsbuilder-2.6.1/examples/outputs/inv2-ic.txt +114 -0
  74. pypsbuilder-2.6.1/examples/outputs/inv2-log.txt +104 -0
  75. pypsbuilder-2.6.1/examples/outputs/inv3-ic.txt +99 -0
  76. pypsbuilder-2.6.1/examples/outputs/inv3-log.txt +94 -0
  77. pypsbuilder-2.6.1/examples/outputs/uni1-ic.txt +3663 -0
  78. pypsbuilder-2.6.1/examples/outputs/uni1-log.txt +1706 -0
  79. pypsbuilder-2.6.1/examples/outputs/uni2-ic.txt +4896 -0
  80. pypsbuilder-2.6.1/examples/outputs/uni2-log.txt +2096 -0
  81. pypsbuilder-2.6.1/examples/outputs/uni3-ic.txt +3069 -0
  82. pypsbuilder-2.6.1/examples/outputs/uni3-log.txt +1297 -0
  83. pypsbuilder-2.6.1/notebooks/pypsbuilder.ipynb +566 -0
  84. pypsbuilder-2.6.1/pyproject.toml +66 -0
  85. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/__init__.py +2 -3
  86. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/psbuilders.py +1130 -442
  87. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/psclasses.py +125 -37
  88. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/psexplorer.py +434 -139
  89. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/tcapi.py +235 -66
  90. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/tcinit.py +15 -11
  91. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/tests/test_pclasses.py +15 -13
  92. pypsbuilder-2.6.1/pypsbuilder/ui/compile_ui.sh +10 -0
  93. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui_addinv.py +15 -17
  94. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui_adduni.py +15 -17
  95. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui_ptbuilder.py +184 -193
  96. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui_pxbuilder.py +180 -189
  97. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui_txbuilder.py +180 -189
  98. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui_uniguess.py +11 -13
  99. pypsbuilder-2.5.2/PKG-INFO +0 -94
  100. pypsbuilder-2.5.2/README.md +0 -61
  101. pypsbuilder-2.5.2/pyproject.toml +0 -67
  102. pypsbuilder-2.5.2/pypsbuilder/tests/__init__.py +0 -0
  103. pypsbuilder-2.5.2/pypsbuilder/ui/compile_ui.sh +0 -9
  104. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/AUTHORS.md +0 -0
  105. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/CONTRIBUTING.md +0 -0
  106. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/LICENSE +0 -0
  107. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/images/ptbuilder.png +0 -0
  108. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/images/pxbuilder.png +0 -0
  109. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/images/pypsbuilder.png +0 -0
  110. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/images/txbuilder.png +0 -0
  111. {pypsbuilder-2.5.2/pypsbuilder/images → pypsbuilder-2.6.1/pypsbuilder/tests}/__init__.py +0 -0
  112. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui/addinv.ui +0 -0
  113. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui/adduni.ui +0 -0
  114. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui/ptbuilder.ui +0 -0
  115. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui/pxbuilder.ui +0 -0
  116. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui/txbuilder.ui +0 -0
  117. {pypsbuilder-2.5.2 → pypsbuilder-2.6.1}/pypsbuilder/ui/uniguess.ui +0 -0
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "monthly"
@@ -0,0 +1,32 @@
1
+ name: PyPi Publisher
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ pypi-publisher:
9
+ runs-on: ubuntu-latest
10
+ environment:
11
+ name: pypi
12
+ url: https://pypi.org/p/pypsbuilder
13
+
14
+ permissions:
15
+ id-token: write # IMPORTANT: mandatory for trusted publishing
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ persist-credentials: false
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.x"
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ pip install build
29
+ - name: Build package
30
+ run: python -m build
31
+ - name: Publish distribution 📦 to PyPI
32
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ name: Python testing
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - "**"
7
+ pull_request:
8
+
9
+ jobs:
10
+ build:
11
+ name: Testing on ${{matrix.os}}
12
+ runs-on: ${{matrix.os}}
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-latest, macos-latest, windows-latest]
16
+ python-version: ["3.10", "3.11", "3.12"]
17
+
18
+ steps:
19
+ - name: Checkout repository
20
+ uses: actions/checkout@v4
21
+ with:
22
+ # setuptools_scm requires a non-shallow clone of the repository
23
+ fetch-depth: 0
24
+
25
+ - name: Set up Python ${{ matrix.python-version }}
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+
30
+ - name: Install Python package
31
+ run: |
32
+ python -m pip install .[tests]
33
+
34
+ - name: Run Python tests
35
+ run: |
36
+ python -m pytest --cov --cov-report=xml
37
+
38
+ - name: Upload coverage to Codecov
39
+ uses: codecov/codecov-action@v5
40
+ with:
41
+ token: ${{ secrets.CODECOV_TOKEN }}
42
+ fail_ci_if_error: true
43
+ files: ./coverage.xml
@@ -0,0 +1,33 @@
1
+ name: TestPyPi Publisher
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ pypi-publisher:
8
+ runs-on: ubuntu-latest
9
+ environment:
10
+ name: testpypi
11
+ url: https://test.pypi.org/p/pypsbuilder
12
+
13
+ permissions:
14
+ id-token: write # IMPORTANT: mandatory for trusted publishing
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ persist-credentials: false
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.x"
24
+ - name: Install dependencies
25
+ run: |
26
+ python -m pip install --upgrade pip
27
+ pip install build
28
+ - name: Build package
29
+ run: python -m build
30
+ - name: Publish distribution 📦 to TestPyPI
31
+ uses: pypa/gh-action-pypi-publish@release/v1
32
+ with:
33
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,66 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # PyInstaller
28
+ # Usually these files are written by a python script from a template
29
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
30
+ *.manifest
31
+ *.spec
32
+
33
+ # Installer logs
34
+ pip-log.txt
35
+ pip-delete-this-directory.txt
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .coverage.*
42
+ .cache
43
+ nosetests.xml
44
+ coverage.xml
45
+ *,cover
46
+ .hypothesis/
47
+
48
+ # Translations
49
+ *.mo
50
+ *.pot
51
+
52
+ # Django stuff:
53
+ *.log
54
+
55
+ # Jupyter
56
+ .ipynb_checkpoints
57
+ */.ipynb_checkpoints/*
58
+
59
+ # Sphinx documentation
60
+ docs/_build/
61
+
62
+ # PyBuilder
63
+ target/
64
+
65
+ # venv
66
+ .venv/
@@ -0,0 +1,28 @@
1
+ default_stages: [commit, push]
2
+ repos:
3
+ - repo: https://github.com/psf/black
4
+ rev: 24.8.0
5
+ hooks:
6
+ - id: black
7
+ args: [--line-length=88]
8
+ exclude: ^(venv/|docs/)
9
+ types: ['python']
10
+ - repo: https://github.com/PyCQA/flake8
11
+ rev: 7.1.1
12
+ hooks:
13
+ - id: flake8
14
+ args:
15
+ - --max-line-length=88
16
+ - --ignore=F401,E501,W503,E731,E743,E741,E203
17
+ exclude: ^(venv/|docs/)
18
+ types: ['python']
19
+ - repo: local
20
+ hooks:
21
+ - id: pytest
22
+ name: pytest
23
+ entry: ./.venv/bin/pytest
24
+ language: system
25
+ types: [python]
26
+ pass_filenames: false
27
+ always_run: true
28
+
@@ -0,0 +1,24 @@
1
+ #.readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Build documentation in the docs/ directory with Sphinx
9
+ sphinx:
10
+ configuration: docs/conf.py
11
+
12
+ # Optionally build your docs in additional formats such as PDF and ePub
13
+ formats: all
14
+
15
+ build:
16
+ os: ubuntu-22.04
17
+ tools:
18
+ python: "3.11"
19
+
20
+ # Optionally set the version of Python and requirements required to build your docs
21
+ python:
22
+ install:
23
+ - method: pip
24
+ path: .[docs]
@@ -1,8 +1,16 @@
1
1
  # Changelog
2
2
  All notable pypsbuilder changes.
3
3
 
4
- ## [2.5.0] - 2024-12-13
5
- Fully refactored tp pyproject.toml
4
+ ## [2.6.1] - master
5
+ ### Added
6
+ - Both PyQt5 and PyQt6 are supported and need to be specified as
7
+ extra option during installation
8
+
9
+ ## [2.6.0] - 2025-01-23
10
+ Initial PyQt6 release
11
+
12
+ ## [2.5.3] - 2024-12-18
13
+ Latest version using PyQt5 only
6
14
 
7
15
  ## [2.5.0] - 2024-12-13
8
16
  ### Fixed
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.4
2
+ Name: pypsbuilder
3
+ Version: 2.6.1
4
+ Summary: THERMOCALC front-end for constructing and analyzing PT pseudosections
5
+ Project-URL: Homepage, https://github.com/ondrolexa/pypsbuilder
6
+ Project-URL: Documentation, https://pypsbuilder.readthedocs.io
7
+ Project-URL: Repository, https://github.com/ondrolexa/pypsbuilder.git
8
+ Project-URL: Issues, https://github.com/ondrolexa/pypsbuilder/issues
9
+ Project-URL: Changelog, https://github.com/ondrolexa/pypsbuilder/blob/master/CHANGELOG.md
10
+ Author-email: Ondrej Lexa <lexa.ondrej@gmail.com>
11
+ Maintainer-email: Ondrej Lexa <lexa.ondrej@gmail.com>
12
+ License: MIT License
13
+
14
+ Simplistic THERMOCALC front-end for constructing PT pseudosections.
15
+ Copyright (c) 2015, Ondrej Lexa
16
+
17
+ Permission is hereby granted, free of charge, to any person obtaining a copy
18
+ of this software and associated documentation files (the "Software"), to deal
19
+ in the Software without restriction, including without limitation the rights
20
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21
+ copies of the Software, and to permit persons to whom the Software is
22
+ furnished to do so, subject to the following conditions:
23
+
24
+ The above copyright notice and this permission notice shall be included in all
25
+ copies or substantial portions of the Software.
26
+
27
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
+ SOFTWARE.
34
+ License-File: AUTHORS.md
35
+ License-File: LICENSE
36
+ Keywords: THERMOCALC,petrology
37
+ Classifier: Development Status :: 4 - Beta
38
+ Classifier: Intended Audience :: Science/Research
39
+ Classifier: Programming Language :: Python :: 3
40
+ Classifier: Programming Language :: Python :: 3 :: Only
41
+ Classifier: Programming Language :: Python :: 3.10
42
+ Classifier: Topic :: Scientific/Engineering
43
+ Classifier: Topic :: Utilities
44
+ Requires-Python: >=3.10
45
+ Requires-Dist: matplotlib>=3.8
46
+ Requires-Dist: networkx
47
+ Requires-Dist: numpy
48
+ Requires-Dist: qtpy
49
+ Requires-Dist: scikit-image
50
+ Requires-Dist: scipy
51
+ Requires-Dist: shapely>=2
52
+ Requires-Dist: tqdm
53
+ Provides-Extra: dev
54
+ Requires-Dist: black; extra == 'dev'
55
+ Requires-Dist: jupyterlab; extra == 'dev'
56
+ Requires-Dist: pyqt6; extra == 'dev'
57
+ Requires-Dist: pytest; extra == 'dev'
58
+ Requires-Dist: pytest-cov; extra == 'dev'
59
+ Requires-Dist: sphinx; extra == 'dev'
60
+ Requires-Dist: sphinx-mdinclude; extra == 'dev'
61
+ Requires-Dist: sphinx-rtd-theme; extra == 'dev'
62
+ Provides-Extra: docs
63
+ Requires-Dist: sphinx; extra == 'docs'
64
+ Requires-Dist: sphinx-mdinclude; extra == 'docs'
65
+ Requires-Dist: sphinx-rtd-theme; extra == 'docs'
66
+ Provides-Extra: jupyter
67
+ Requires-Dist: jupyterlab; extra == 'jupyter'
68
+ Provides-Extra: pyqt5
69
+ Requires-Dist: pyqt5; extra == 'pyqt5'
70
+ Provides-Extra: pyqt6
71
+ Requires-Dist: pyqt6; extra == 'pyqt6'
72
+ Provides-Extra: tests
73
+ Requires-Dist: pytest; extra == 'tests'
74
+ Requires-Dist: pytest-cov; extra == 'tests'
75
+ Description-Content-Type: text/markdown
76
+
77
+ # pypsbuilder
78
+
79
+ [![PyPI - Version](https://img.shields.io/pypi/v/pypsbuilder)](https://pypi.org/project/pypsbuilder/)
80
+ [![Testing](https://github.com/ondrolexa/pypsbuilder/actions/workflows/testing.yml/badge.svg?event=push)](https://github.com/ondrolexa/pypsbuilder)
81
+ [![Documentation Status](https://readthedocs.org/projects/polylx/badge/?version=stable)](https://pypsbuilder.readthedocs.io/en/latest/?badge=latest)
82
+
83
+ Not that simplistic THERMOCALC front-end for constructing and visualizations of P-T, T-X and P-X pseudosections
84
+
85
+ ## How to install
86
+
87
+ It is strongly suggested to install **pypsbuilder** into separate environment. You can create
88
+ Python virtual environment. For Linux and macOS use:
89
+
90
+ python -m venv pyps
91
+ source pyps/bin/activate
92
+
93
+ for Windows use PowerShell:
94
+
95
+ py -m venv pyps
96
+ pyps\Scripts\activate
97
+
98
+ > [!NOTE]
99
+ > On Microsoft Windows, it may be required to enable the activate script by setting the execution policy for the user.
100
+ > You can do this by issuing the following PowerShell command:
101
+ > ```
102
+ > PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
103
+ > ```
104
+
105
+ and install **pypsbuilder** using pip within the environment:
106
+
107
+ pip install pypsbuilder[pyqt6]
108
+
109
+ Providing jupyter option, JupyterLab will be also installed:
110
+
111
+ pip install pypsbuilder[pyqt6,jupyter]
112
+
113
+ ## I'm using conda or mamba to manage environments
114
+
115
+ If you have already have conda or mamba installed, you can create environment with:
116
+
117
+ conda create -n pyps numpy matplotlib scipy networkx shapely pyqt tqdm jupyterlab
118
+
119
+ or
120
+
121
+ mamba create -n pyps numpy matplotlib scipy networkx shapely pyqt tqdm jupyterlab
122
+
123
+ Then activate the new environment:
124
+
125
+ conda activate pyps
126
+
127
+ or
128
+
129
+ mamba activate pyps
130
+
131
+ and install with pip. Note that PyQt6 is not yet available in conda repositories,
132
+ so we need to use the pyqt5 version:
133
+
134
+ pip install pypsbuilder[pyqt5]
135
+
136
+ > [!NOTE]
137
+ > If you encounter errors during install, try to install without upgrading dependencies:
138
+ > ```
139
+ > pip install --no-deps pypsbuilder[pyqt5]
140
+ > ```
141
+
142
+ #### Upgrade existing installation
143
+
144
+ To upgrade an already installed **pypsbuilder** to the latest release:
145
+
146
+ pip install --upgrade pypsbuilder
147
+
148
+ or to the latest master version:
149
+
150
+ pip install --upgrade https://github.com/ondrolexa/pypsbuilder/archive/master.zip
151
+
152
+ ## Documentation and tutorials
153
+
154
+ Check documentation and tutorials on RTD [https://pypsbuilder.readthedocs.io/en/latest/](https://pypsbuilder.readthedocs.io/en/latest/)
155
+
156
+ ## License
157
+
158
+ 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.
@@ -0,0 +1,82 @@
1
+ # pypsbuilder
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/pypsbuilder)](https://pypi.org/project/pypsbuilder/)
4
+ [![Testing](https://github.com/ondrolexa/pypsbuilder/actions/workflows/testing.yml/badge.svg?event=push)](https://github.com/ondrolexa/pypsbuilder)
5
+ [![Documentation Status](https://readthedocs.org/projects/polylx/badge/?version=stable)](https://pypsbuilder.readthedocs.io/en/latest/?badge=latest)
6
+
7
+ Not that simplistic THERMOCALC front-end for constructing and visualizations of P-T, T-X and P-X pseudosections
8
+
9
+ ## How to install
10
+
11
+ It is strongly suggested to install **pypsbuilder** into separate environment. You can create
12
+ Python virtual environment. For Linux and macOS use:
13
+
14
+ python -m venv pyps
15
+ source pyps/bin/activate
16
+
17
+ for Windows use PowerShell:
18
+
19
+ py -m venv pyps
20
+ pyps\Scripts\activate
21
+
22
+ > [!NOTE]
23
+ > On Microsoft Windows, it may be required to enable the activate script by setting the execution policy for the user.
24
+ > You can do this by issuing the following PowerShell command:
25
+ > ```
26
+ > PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
27
+ > ```
28
+
29
+ and install **pypsbuilder** using pip within the environment:
30
+
31
+ pip install pypsbuilder[pyqt6]
32
+
33
+ Providing jupyter option, JupyterLab will be also installed:
34
+
35
+ pip install pypsbuilder[pyqt6,jupyter]
36
+
37
+ ## I'm using conda or mamba to manage environments
38
+
39
+ If you have already have conda or mamba installed, you can create environment with:
40
+
41
+ conda create -n pyps numpy matplotlib scipy networkx shapely pyqt tqdm jupyterlab
42
+
43
+ or
44
+
45
+ mamba create -n pyps numpy matplotlib scipy networkx shapely pyqt tqdm jupyterlab
46
+
47
+ Then activate the new environment:
48
+
49
+ conda activate pyps
50
+
51
+ or
52
+
53
+ mamba activate pyps
54
+
55
+ and install with pip. Note that PyQt6 is not yet available in conda repositories,
56
+ so we need to use the pyqt5 version:
57
+
58
+ pip install pypsbuilder[pyqt5]
59
+
60
+ > [!NOTE]
61
+ > If you encounter errors during install, try to install without upgrading dependencies:
62
+ > ```
63
+ > pip install --no-deps pypsbuilder[pyqt5]
64
+ > ```
65
+
66
+ #### Upgrade existing installation
67
+
68
+ To upgrade an already installed **pypsbuilder** to the latest release:
69
+
70
+ pip install --upgrade pypsbuilder
71
+
72
+ or to the latest master version:
73
+
74
+ pip install --upgrade https://github.com/ondrolexa/pypsbuilder/archive/master.zip
75
+
76
+ ## Documentation and tutorials
77
+
78
+ Check documentation and tutorials on RTD [https://pypsbuilder.readthedocs.io/en/latest/](https://pypsbuilder.readthedocs.io/en/latest/)
79
+
80
+ ## License
81
+
82
+ 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.
@@ -0,0 +1,10 @@
1
+ codecov:
2
+ require_ci_to_pass: yes
3
+
4
+ coverage:
5
+ precision: 2
6
+ round: down
7
+ range: "70...100"
8
+
9
+ ignore:
10
+ - "**/tests"
@@ -0,0 +1,13 @@
1
+ /* override table width restrictions */
2
+ @media screen and (min-width: 767px) {
3
+
4
+ .wy-table-responsive table td {
5
+ /* !important prevents the common CSS stylesheets from overriding
6
+ this as on RTD they are loaded after this stylesheet */
7
+ white-space: normal !important;
8
+ }
9
+
10
+ .wy-table-responsive {
11
+ overflow: visible !important;
12
+ }
13
+ }
@@ -0,0 +1,31 @@
1
+ pypsbuilder.psclasses.Dogmin
2
+ ============================
3
+
4
+ .. currentmodule:: pypsbuilder.psclasses
5
+
6
+ .. autoclass:: Dogmin
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~Dogmin.__init__
17
+ ~Dogmin.annotation
18
+ ~Dogmin.label
19
+ ~Dogmin.ptguess
20
+
21
+
22
+
23
+
24
+
25
+ .. rubric:: Attributes
26
+
27
+ .. autosummary::
28
+
29
+ ~Dogmin.out
30
+
31
+
@@ -0,0 +1,34 @@
1
+ pypsbuilder.psclasses.InvPoint
2
+ ==============================
3
+
4
+ .. currentmodule:: pypsbuilder.psclasses
5
+
6
+ .. autoclass:: InvPoint
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~InvPoint.__init__
17
+ ~InvPoint.all_unilines
18
+ ~InvPoint.annotation
19
+ ~InvPoint.datakeys
20
+ ~InvPoint.label
21
+ ~InvPoint.ptguess
22
+ ~InvPoint.shape
23
+
24
+
25
+
26
+
27
+
28
+ .. rubric:: Attributes
29
+
30
+ .. autosummary::
31
+
32
+ ~InvPoint.midix
33
+
34
+
@@ -0,0 +1,41 @@
1
+ pypsbuilder.psclasses.PTsection
2
+ ===============================
3
+
4
+ .. currentmodule:: pypsbuilder.psclasses
5
+
6
+ .. autoclass:: PTsection
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~PTsection.__init__
17
+ ~PTsection.add_dogmin
18
+ ~PTsection.add_inv
19
+ ~PTsection.add_uni
20
+ ~PTsection.cleanup_data
21
+ ~PTsection.create_shapes
22
+ ~PTsection.from_file
23
+ ~PTsection.getidinv
24
+ ~PTsection.getiduni
25
+ ~PTsection.read_file
26
+ ~PTsection.show
27
+ ~PTsection.trim_uni
28
+
29
+
30
+
31
+
32
+
33
+ .. rubric:: Attributes
34
+
35
+ .. autosummary::
36
+
37
+ ~PTsection.range_shapes
38
+ ~PTsection.ratio
39
+ ~PTsection.type
40
+
41
+
@@ -0,0 +1,41 @@
1
+ pypsbuilder.psclasses.PXsection
2
+ ===============================
3
+
4
+ .. currentmodule:: pypsbuilder.psclasses
5
+
6
+ .. autoclass:: PXsection
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~PXsection.__init__
17
+ ~PXsection.add_dogmin
18
+ ~PXsection.add_inv
19
+ ~PXsection.add_uni
20
+ ~PXsection.cleanup_data
21
+ ~PXsection.create_shapes
22
+ ~PXsection.from_file
23
+ ~PXsection.getidinv
24
+ ~PXsection.getiduni
25
+ ~PXsection.read_file
26
+ ~PXsection.show
27
+ ~PXsection.trim_uni
28
+
29
+
30
+
31
+
32
+
33
+ .. rubric:: Attributes
34
+
35
+ .. autosummary::
36
+
37
+ ~PXsection.range_shapes
38
+ ~PXsection.ratio
39
+ ~PXsection.type
40
+
41
+