adsorpy 1.0.3__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 (41) hide show
  1. adsorpy-1.0.3/.github/workflows/docs-ci.yml +68 -0
  2. adsorpy-1.0.3/.github/workflows/publish_to_PyPI.yml +49 -0
  3. adsorpy-1.0.3/.github/workflows/tests-ci.yml +45 -0
  4. adsorpy-1.0.3/CHANGELOG.md +57 -0
  5. adsorpy-1.0.3/LICENSE.md +21 -0
  6. adsorpy-1.0.3/PKG-INFO +97 -0
  7. adsorpy-1.0.3/README.md +50 -0
  8. adsorpy-1.0.3/docs/Makefile +20 -0
  9. adsorpy-1.0.3/docs/make.bat +35 -0
  10. adsorpy-1.0.3/docs/source/adsorpy.molecule_lib.rst +7 -0
  11. adsorpy-1.0.3/docs/source/adsorpy.randomsequentialadsorption.rst +7 -0
  12. adsorpy-1.0.3/docs/source/adsorpy.rsa_calculator.rst +7 -0
  13. adsorpy-1.0.3/docs/source/adsorpy.rsa_config.rst +7 -0
  14. adsorpy-1.0.3/docs/source/adsorpy.rst +19 -0
  15. adsorpy-1.0.3/docs/source/adsorpy.run_simulation.rst +7 -0
  16. adsorpy-1.0.3/docs/source/conf.py +109 -0
  17. adsorpy-1.0.3/docs/source/index.rst +21 -0
  18. adsorpy-1.0.3/docs/source/modules.rst +7 -0
  19. adsorpy-1.0.3/images/AdsorPy_Covered_Surface.png +0 -0
  20. adsorpy-1.0.3/py.typed +0 -0
  21. adsorpy-1.0.3/pyproject.toml +204 -0
  22. adsorpy-1.0.3/requirements.txt +5 -0
  23. adsorpy-1.0.3/requirements_dev.txt +8 -0
  24. adsorpy-1.0.3/src/__init__.py +0 -0
  25. adsorpy-1.0.3/src/__main__.py +8 -0
  26. adsorpy-1.0.3/src/adsorpy/VdW_Radii.csv +93 -0
  27. adsorpy-1.0.3/src/adsorpy/__init__.py +17 -0
  28. adsorpy-1.0.3/src/adsorpy/config.json +56 -0
  29. adsorpy-1.0.3/src/adsorpy/molecule_colour.json +111 -0
  30. adsorpy-1.0.3/src/adsorpy/molecule_lib.py +656 -0
  31. adsorpy-1.0.3/src/adsorpy/randomsequentialadsorption.py +1612 -0
  32. adsorpy-1.0.3/src/adsorpy/rsa_calculator.py +344 -0
  33. adsorpy-1.0.3/src/adsorpy/rsa_config.py +86 -0
  34. adsorpy-1.0.3/src/adsorpy/run_simulation.py +572 -0
  35. adsorpy-1.0.3/tests/__init__.py +0 -0
  36. adsorpy-1.0.3/tests/rsa_test.py +523 -0
  37. adsorpy-1.0.3/tests/run_simulation_test.py +312 -0
  38. adsorpy-1.0.3/tests/test_data/config_test_hard.json +56 -0
  39. adsorpy-1.0.3/tests/test_data/config_test_periodic.json +56 -0
  40. adsorpy-1.0.3/tests/test_data/config_test_soft.json +56 -0
  41. adsorpy-1.0.3/tox.ini +33 -0
@@ -0,0 +1,68 @@
1
+
2
+ name: Docs
3
+
4
+ on:
5
+ push:
6
+ branches: [ "main" ]
7
+ workflow_dispatch:
8
+
9
+ # Top-level permissions for Pages (recommended)
10
+ permissions:
11
+ contents: read
12
+ pages: write
13
+ id-token: write
14
+
15
+ concurrency:
16
+ group: "pages"
17
+ cancel-in-progress: true
18
+
19
+ jobs:
20
+ deploy-docs:
21
+ name: Build and Upload Docs Artifact
22
+ runs-on: ubuntu-latest
23
+ # needs: test
24
+
25
+ steps:
26
+ - name: Checkout
27
+ uses: actions/checkout@v6
28
+
29
+ - name: Set up Python
30
+ uses: actions/setup-python@v6
31
+ with:
32
+ python-version: '3.13'
33
+
34
+ - name: Install Sphinx and theme
35
+ run: |
36
+ python -m pip install --upgrade pip
37
+ python -m pip install -e .
38
+ python -m pip install sphinx furo sphinx_design sphinx-autodoc-typehints
39
+
40
+ # Optional: configure Pages (sets up base_url, etc.)
41
+ - name: Configure Pages
42
+ uses: actions/configure-pages@v6
43
+
44
+ - name: Build Sphinx docs
45
+ run: |
46
+ mkdir -p public
47
+ # python -m sphinx docs/source public
48
+ python -m sphinx -W docs/source public
49
+
50
+ - name: Upload artifact for Pages
51
+ uses: actions/upload-pages-artifact@v5
52
+ with:
53
+ path: ./public
54
+
55
+ deploy:
56
+ name: Deploy to GitHub Pages
57
+ runs-on: ubuntu-latest
58
+ needs: deploy-docs
59
+ environment:
60
+ name: github-pages
61
+ url: ${{ steps.deploy-pages.outputs.page_url }}
62
+ permissions:
63
+ pages: write
64
+ id-token: write
65
+ steps:
66
+ - name: Deploy to GitHub Pages
67
+ id: deploy-pages
68
+ uses: actions/deploy-pages@v5
@@ -0,0 +1,49 @@
1
+ on:
2
+ release:
3
+ types:
4
+ - published
5
+
6
+ name: release
7
+
8
+ jobs:
9
+ pypi:
10
+ name: upload release to PyPI
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ id-token: write
14
+ steps:
15
+ - uses: actions/checkout@v6
16
+
17
+ - uses: actions/setup-python@v6
18
+ with:
19
+ python-version: "3.x"
20
+
21
+ - name: deps
22
+ run: python -m pip install -U build
23
+
24
+ - name: build
25
+ run: python -m build
26
+
27
+ - name: mint API token
28
+ id: mint-token
29
+ run: |
30
+ # retrieve the ambient OIDC token
31
+ resp=$(curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
32
+ "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=pypi")
33
+ oidc_token=$(jq -r '.value' <<< "${resp}")
34
+
35
+ # exchange the OIDC token for an API token
36
+ resp=$(curl -X POST https://pypi.org/_/oidc/mint-token -d "{\"token\": \"${oidc_token}\"}")
37
+ api_token=$(jq -r '.token' <<< "${resp}")
38
+
39
+ # mask the newly minted API token, so that we don't accidentally leak it
40
+ echo "::add-mask::${api_token}"
41
+
42
+ # see the next step in the workflow for an example of using this step output
43
+ echo "api-token=${api_token}" >> "${GITHUB_OUTPUT}"
44
+
45
+ - name: publish
46
+ # gh-action-pypi-publish uses TWINE_PASSWORD automatically
47
+ uses: pypa/gh-action-pypi-publish@release/v1
48
+ with:
49
+ password: ${{ steps.mint-token.outputs.api-token }}
@@ -0,0 +1,45 @@
1
+
2
+ name: CI
3
+
4
+ on:
5
+ push:
6
+ paths:
7
+ - "src/**"
8
+ - "tests/**"
9
+ pull_request:
10
+
11
+ jobs:
12
+ test:
13
+ name: Python Tests
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ matrix:
17
+ python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14' ]
18
+ steps:
19
+ - uses: actions/checkout@v6
20
+
21
+ - name: Set up Python ${{ matrix.python-version }}
22
+ uses: actions/setup-python@v6
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+
26
+ - name: Upgrade pip
27
+ run: python -m pip install --upgrade pip
28
+
29
+ - name: Install tox and plugins
30
+ run: pip install tox tox-gh-actions
31
+
32
+ - name: Run tests with tox
33
+ run: tox -e ruff,mypy,py${{ matrix.python-version }}
34
+
35
+ - name: Upload test results
36
+ if: always() && matrix.python-version == '3.13'
37
+ uses: actions/upload-artifact@v7
38
+ with:
39
+ name: junit-results
40
+ path: results.xml
41
+
42
+ - name: Upload coverage reports to Codecov
43
+ uses: codecov/codecov-action@v6
44
+ with:
45
+ token: ${{ secrets.GIST_SECRET }}
@@ -0,0 +1,57 @@
1
+ # Change Log
2
+ All important changes to ``AdsorPy`` will be documented in this file.
3
+
4
+ This format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
5
+
6
+ ## [unreleased]
7
+ ### Added
8
+ ### Changed
9
+ ### Fixed
10
+ ### Removed
11
+
12
+ ## 1.0.3 - 2026-04-28
13
+ ### Added
14
+ - Add the ``Simulator`` class as 6th return value of ``run_simulation()``.
15
+ - Add overlap and gap size subtests to the dosing scheme tests of ``run_simulation_test``.
16
+ - Add ``__version__``, ``__name__``, ``__author__``, and ``__author_email__`` to ``__init__.py``.
17
+ ### Changed
18
+ - Update CI action/deploy-pages to v5. Update CI action/upload-artifact to v7.
19
+ - Move overlap and gap size test for alt simulation to subtests.
20
+ - Update dependency versions.
21
+ ### Fixed
22
+ - Fix ``pyproject.toml``: ``"AdsorPy" = ["py.typed"]`` (from ``rsa-mc``, the old internal project name.)
23
+ - Turn relative imports into absolute imports to make the package pip-installable.
24
+ - Fix the type hints that broke as a result of this.
25
+ - Update ``pyproject.toml`` to have the appropriate keywords and classifiers. The project does not show up on the PyPI index but can be installed from it.
26
+ ### Removed
27
+
28
+
29
+ ## 1.0.2 - 2026-04-23
30
+
31
+ ### Added
32
+
33
+ ### Changed
34
+ - Update CI actions to move from ``node.js`` 20 to 24.
35
+
36
+ ### Fixed
37
+
38
+ ### Removed
39
+ - Remove unnecessary type casts.
40
+
41
+ ## 1.0.1 - 2026-04-23
42
+
43
+ ### Added
44
+ - Implement subtests for the test_run_alt (a test for the RSA simulator on an alternative seed).
45
+ - Add a determinism test to show identical outcome for identical seeds.
46
+ - In ``tool.ruff.lint``: use ``future-annotations = true``, this correctly checks ``__future__`` annotation.
47
+ ### Changed
48
+ - Update version dependencies.
49
+ - Strengthen seed comparison test.
50
+ - Vectorise (remove a for-loop) from overlap test.
51
+
52
+ ### Fixed
53
+
54
+ ### Removed
55
+
56
+ ## 1.0.0 - 2025-11-29
57
+ - Full release
@@ -0,0 +1,21 @@
1
+ # MIT License
2
+
3
+ Copyright (c) 2025 J.F.W. Maas
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
adsorpy-1.0.3/PKG-INFO ADDED
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.4
2
+ Name: adsorpy
3
+ Version: 1.0.3
4
+ Summary: Random sequential adsorption (RSA) simulation, 2D lattice-based.
5
+ Project-URL: Repository, https://github.com/JoostFWMaas/AdsorPy
6
+ Project-URL: Documentation, https://joostfwmaas.github.io/AdsorPy
7
+ Project-URL: Changelog, https://github.com/JoostFWMaas/AdsorPy/blob/main/CHANGELOG.md
8
+ Author-email: "J.F.W. Maas" <j.f.w.maas@tue.nl>
9
+ License-Expression: MIT
10
+ License-File: LICENSE.md
11
+ Keywords: Monte Carlo,RSA,adsorption,computational chemistry,computational physics,coverage,gap size distribution,jamming,lattice model,molecular adsorption,packing,random sequential adsorption,statistical mechanics,stochastic simulation,surface science
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Natural Language :: English
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Classifier: Topic :: Scientific/Engineering
27
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
28
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
29
+ Classifier: Topic :: Scientific/Engineering :: Physics
30
+ Classifier: Topic :: Software Development
31
+ Classifier: Typing :: Typed
32
+ Requires-Python: >=3.10
33
+ Requires-Dist: matplotlib
34
+ Requires-Dist: numba
35
+ Requires-Dist: numpy
36
+ Requires-Dist: rtree
37
+ Requires-Dist: shapely
38
+ Provides-Extra: testing
39
+ Requires-Dist: hypothesis; extra == 'testing'
40
+ Requires-Dist: mypy; extra == 'testing'
41
+ Requires-Dist: pytest; extra == 'testing'
42
+ Requires-Dist: pytest-cov; extra == 'testing'
43
+ Requires-Dist: ruff; extra == 'testing'
44
+ Requires-Dist: scipy==1.15.3; (python_version <= '3.10') and extra == 'testing'
45
+ Requires-Dist: scipy>=1.16.3; (python_version > '3.10') and extra == 'testing'
46
+ Description-Content-Type: text/markdown
47
+
48
+ # AdsorPy
49
+
50
+ ![Output of an AdsorPy run, an image of a covered surface.](/images/AdsorPy_Covered_Surface.png)
51
+
52
+ ![test results badge](https://github.com/JoostFWMaas/AdsorPy/actions/workflows/tests-ci.yml/badge.svg)
53
+ [![codecov](https://codecov.io/github/JoostFWMaas/AdsorPy/graph/badge.svg?token=XBYZU63D8Y)](https://codecov.io/github/JoostFWMaas/AdsorPy)
54
+
55
+ Lattice-based random sequential adsorption (RSA) Python 3.10+ script.
56
+
57
+ In RSA, molecules arrive one by one at a surface. Adsorption takes place if the molecule does not overlap with molecules
58
+ already on the surface.
59
+ The list of available orientations for the molecule is traversed in random order until the first orientation that fits
60
+ is found, or until the list is exhausted.
61
+ All available sites are checked, and various metrics can be extracted afterwards such as the coverage, covered area, and
62
+ gap size distribution.
63
+
64
+ ## How to use
65
+
66
+ Run the `adsorpy.main` in order to run a simple single run using the standard disk-shaped molecule on hexagonal aluminium oxide.
67
+ New molecules can be created by running the `adsorpy.molecule_lib` or by calling the `adsorpy.molecule_lib.first_time_loader()` function. Molecules can be generated from `.xyz` files. It is
68
+ recommended to run `adsorpy.molecule_lib` directly from command line to define the molecule orientation, then store the new
69
+ molecule string for repeated use.
70
+
71
+ Run the `adsorpy.run_simulation.run_simulation()` function with the molecule footprints generated in the previous step. Output can be printed to stdout, plotted, and saved.
72
+
73
+ User friendliness will be updated at a later stage, allowing the user to define simulation modes, surfaces, and
74
+ molecules more easily.
75
+
76
+ Documentation (generated with `Sphinx`): https://joostfwmaas.github.io/AdsorPy/
77
+
78
+ ## Future additions
79
+
80
+ In a future update, the code will be expanded with diffusion, desorption, and species conversion (changing from one molecule on the surface to another).
81
+
82
+ ## Design philosophy
83
+
84
+ Because AdsorPy has been made with scientific rigour in mind, the package is tested in multiple ways:
85
+ - Unit tests (`Pytest`) of the code ensure correct behaviour for expected input.
86
+ - Property tests (`Hypothesis`) of the most critical code components ensure correct behaviour for unexpected input as well.
87
+ - `Mypy` (in `--strict` mode) ensures that the package is correctly-typed, as if it were static. The `py.typed` file--a promise that the code is type-hinted properly--is added because the code passes this test.
88
+ - `Ruff` is used as a linter with almost all rules enabled (see the pyproject.toml for the list of exclusions and reasons).
89
+ - `Tox` is used to run all of the aforementioned tests in parallel for multiple Python versions to ensure correct behaviour.
90
+ - CI is used for automated testing.
91
+
92
+ The package also makes use of an optional config file that falls back on standard behaviour, because configs are often used in scientific software (set-and-forget).
93
+
94
+ # Openness and academic collaboration
95
+
96
+ The script was made public for the sake of openness and academic collaboration. Please let me know if you have questions about the script, or if you have discovered any issues/bugs.
97
+ At the end of this file, I will place a list of papers that make use of this work. Feel free to contact me if you want your work to be added to the list as well.
@@ -0,0 +1,50 @@
1
+ # AdsorPy
2
+
3
+ ![Output of an AdsorPy run, an image of a covered surface.](/images/AdsorPy_Covered_Surface.png)
4
+
5
+ ![test results badge](https://github.com/JoostFWMaas/AdsorPy/actions/workflows/tests-ci.yml/badge.svg)
6
+ [![codecov](https://codecov.io/github/JoostFWMaas/AdsorPy/graph/badge.svg?token=XBYZU63D8Y)](https://codecov.io/github/JoostFWMaas/AdsorPy)
7
+
8
+ Lattice-based random sequential adsorption (RSA) Python 3.10+ script.
9
+
10
+ In RSA, molecules arrive one by one at a surface. Adsorption takes place if the molecule does not overlap with molecules
11
+ already on the surface.
12
+ The list of available orientations for the molecule is traversed in random order until the first orientation that fits
13
+ is found, or until the list is exhausted.
14
+ All available sites are checked, and various metrics can be extracted afterwards such as the coverage, covered area, and
15
+ gap size distribution.
16
+
17
+ ## How to use
18
+
19
+ Run the `adsorpy.main` in order to run a simple single run using the standard disk-shaped molecule on hexagonal aluminium oxide.
20
+ New molecules can be created by running the `adsorpy.molecule_lib` or by calling the `adsorpy.molecule_lib.first_time_loader()` function. Molecules can be generated from `.xyz` files. It is
21
+ recommended to run `adsorpy.molecule_lib` directly from command line to define the molecule orientation, then store the new
22
+ molecule string for repeated use.
23
+
24
+ Run the `adsorpy.run_simulation.run_simulation()` function with the molecule footprints generated in the previous step. Output can be printed to stdout, plotted, and saved.
25
+
26
+ User friendliness will be updated at a later stage, allowing the user to define simulation modes, surfaces, and
27
+ molecules more easily.
28
+
29
+ Documentation (generated with `Sphinx`): https://joostfwmaas.github.io/AdsorPy/
30
+
31
+ ## Future additions
32
+
33
+ In a future update, the code will be expanded with diffusion, desorption, and species conversion (changing from one molecule on the surface to another).
34
+
35
+ ## Design philosophy
36
+
37
+ Because AdsorPy has been made with scientific rigour in mind, the package is tested in multiple ways:
38
+ - Unit tests (`Pytest`) of the code ensure correct behaviour for expected input.
39
+ - Property tests (`Hypothesis`) of the most critical code components ensure correct behaviour for unexpected input as well.
40
+ - `Mypy` (in `--strict` mode) ensures that the package is correctly-typed, as if it were static. The `py.typed` file--a promise that the code is type-hinted properly--is added because the code passes this test.
41
+ - `Ruff` is used as a linter with almost all rules enabled (see the pyproject.toml for the list of exclusions and reasons).
42
+ - `Tox` is used to run all of the aforementioned tests in parallel for multiple Python versions to ensure correct behaviour.
43
+ - CI is used for automated testing.
44
+
45
+ The package also makes use of an optional config file that falls back on standard behaviour, because configs are often used in scientific software (set-and-forget).
46
+
47
+ # Openness and academic collaboration
48
+
49
+ The script was made public for the sake of openness and academic collaboration. Please let me know if you have questions about the script, or if you have discovered any issues/bugs.
50
+ At the end of this file, I will place a list of papers that make use of this work. Feel free to contact me if you want your work to be added to the list as well.
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,7 @@
1
+ adsorpy.molecule\_lib module
2
+ ============================
3
+
4
+ .. automodule:: adsorpy.molecule_lib
5
+ :members:
6
+ :show-inheritance:
7
+ :undoc-members:
@@ -0,0 +1,7 @@
1
+ adsorpy.randomsequentialadsorption module
2
+ =========================================
3
+
4
+ .. automodule:: adsorpy.randomsequentialadsorption
5
+ :members:
6
+ :show-inheritance:
7
+ :undoc-members:
@@ -0,0 +1,7 @@
1
+ adsorpy.rsa\_calculator module
2
+ ==============================
3
+
4
+ .. automodule:: adsorpy.rsa_calculator
5
+ :members:
6
+ :show-inheritance:
7
+ :undoc-members:
@@ -0,0 +1,7 @@
1
+ adsorpy.rsa\_config module
2
+ ==========================
3
+
4
+ .. automodule:: adsorpy.rsa_config
5
+ :members:
6
+ :show-inheritance:
7
+ :undoc-members:
@@ -0,0 +1,19 @@
1
+ adsorpy package
2
+ ===============
3
+
4
+ .. automodule:: adsorpy
5
+ :members:
6
+ :show-inheritance:
7
+ :undoc-members:
8
+
9
+ Submodules
10
+ ----------
11
+
12
+ .. toctree::
13
+ :maxdepth: 4
14
+
15
+ adsorpy.molecule_lib
16
+ adsorpy.randomsequentialadsorption
17
+ adsorpy.rsa_calculator
18
+ adsorpy.rsa_config
19
+ adsorpy.run_simulation
@@ -0,0 +1,7 @@
1
+ adsorpy.run\_simulation module
2
+ ==============================
3
+
4
+ .. automodule:: adsorpy.run_simulation
5
+ :members:
6
+ :show-inheritance:
7
+ :undoc-members:
@@ -0,0 +1,109 @@
1
+ import sys
2
+ from pathlib import Path
3
+
4
+ # Configuration file for the Sphinx documentation builder.
5
+ #
6
+ # For the full list of built-in configuration values, see the documentation:
7
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
8
+
9
+ # -- Project information -----------------------------------------------------
10
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
11
+
12
+ project = "AdsorPy"
13
+ copyright = "2025, J.F.W. Maas"
14
+ author = "J.F.W. Maas"
15
+ version = "1.0"
16
+ release = "1.0.0"
17
+
18
+ # -- General configuration ---------------------------------------------------
19
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
20
+
21
+ extensions = [
22
+ "sphinx.ext.duration",
23
+ "sphinx.ext.doctest",
24
+ "sphinx.ext.autodoc",
25
+ "sphinx.ext.autosummary",
26
+ "sphinx.ext.napoleon",
27
+ "sphinx_autodoc_typehints",
28
+ "sphinx.ext.viewcode",
29
+ "sphinx.ext.githubpages",
30
+ 'sphinx.ext.intersphinx',
31
+ "sphinx_design",
32
+ ]
33
+
34
+ intersphinx_mapping = {
35
+ 'numpy': ('https://numpy.org/doc/stable/', None),
36
+ }
37
+
38
+
39
+ sd_custom_directives = {
40
+ "dropdown-syntax": {
41
+ "inherit": "dropdown",
42
+ "argument": "Syntax",
43
+ "options": {
44
+ "color": "primary",
45
+ "icon": "code",
46
+ },
47
+ },
48
+ }
49
+
50
+ templates_path = ["_templates"]
51
+ # source_dir = "."
52
+
53
+ # autodoc_member_order = "bysource"
54
+
55
+
56
+ # List of patterns, relative to source directory, that match files and
57
+ # directories to ignore when looking for source files.
58
+ # This pattern also affects html_static_path and html_extra_path.
59
+ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "scripts/*.rst"]
60
+
61
+ automodule_path = [""]
62
+ automodule_members = True
63
+ autoclass_content = "both"
64
+
65
+ autodoc_default_options = {
66
+ "members": True,
67
+ "undoc-members": True,
68
+ "private-members": True,
69
+ "special-members": "__init__",
70
+ "inherited-members": True,
71
+ "show-inheritance": True,
72
+ }
73
+
74
+ autodoc_member_order = "bysource"
75
+
76
+ suppress_warnings = ["config.cache"]
77
+
78
+ # -- Options for HTML output -------------------------------------------------
79
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
80
+
81
+ html_theme = "furo"
82
+ html_title = "AdsorPy 2D lattice-based random sequential adsorption (RSA)"
83
+
84
+
85
+ # Get the path to the directory containing the Python modules to mock
86
+ module_directory = Path("../../src/adsorpy/")
87
+
88
+ # Get the path to the directory containing the Python modules to mock
89
+
90
+ # Get a list of all .py files in the directory
91
+ py_files = module_directory.glob("*.py")
92
+
93
+ # Extract the module names from the filenames
94
+ module_names = [f.stem for f in py_files]
95
+ print(module_names)
96
+
97
+ # List of modules to mock during documentation build
98
+ autodoc_mock_imports = module_names
99
+
100
+ # -- Path setup --------------------------------------------------------------
101
+
102
+ # If extensions (or modules to document with autodoc) are in another directory,
103
+ # add these directories to sys.path here. If the directory is relative to the
104
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
105
+ #
106
+
107
+ sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "src"))
108
+
109
+
@@ -0,0 +1,21 @@
1
+ .. Random Sequential Adsorption documentation master file, created by
2
+ sphinx-quickstart on Fri Apr 26 02:12:35 2024.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ Welcome to the documentation of AdsorPy!
7
+ ========================================
8
+
9
+ .. toctree::
10
+ :maxdepth: 4
11
+ :caption: Contents:
12
+
13
+ modules
14
+
15
+ Indices and tables
16
+ ==================
17
+
18
+ * :ref:`genindex`
19
+ * :ref:`modindex`
20
+ * :ref:`search`
21
+
@@ -0,0 +1,7 @@
1
+ adsorpy
2
+ =======
3
+
4
+ .. toctree::
5
+ :maxdepth: 4
6
+
7
+ adsorpy
adsorpy-1.0.3/py.typed ADDED
File without changes