pax_global_header00006660000000000000000000000064145310421270014511gustar00rootroot0000000000000052 comment=04253400e65aeaebc74f0de67c1188aa685dbc43 sphinx-autodoc2-0.5.0/000077500000000000000000000000001453104212700145425ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/.gitattributes000066400000000000000000000001021453104212700174260ustar00rootroot00000000000000# Auto detect text files and perform LF normalization * text=auto sphinx-autodoc2-0.5.0/.github/000077500000000000000000000000001453104212700161025ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/.github/dependabot.yml000066400000000000000000000011301453104212700207250ustar00rootroot00000000000000# To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. # Please see the documentation for all configuration options: # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 updates: - package-ecosystem: github-actions directory: / commit-message: prefix: ⬆️ schedule: interval: monthly - package-ecosystem: pip directory: / commit-message: prefix: ⬆️ schedule: interval: monthly sphinx-autodoc2-0.5.0/.github/workflows/000077500000000000000000000000001453104212700201375ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/.github/workflows/main.yml000066400000000000000000000040031453104212700216030ustar00rootroot00000000000000name: tests on: push: branches: [main] tags: - "v[0-9]+.[0-9]+.[0-9]+*" pull_request: jobs: pre-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: python-version: "3.8" - uses: pre-commit/action@v3.0.0 tests: name: Pytest (${{ matrix.platform }}, Python ${{ matrix.python-version }}) strategy: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11"] platform: [ubuntu-latest] include: - python-version: "3.8" platform: "windows-latest" runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -e .[testing] - name: Run tests run: pytest # https://github.com/marketplace/actions/alls-green#why check: # This job does nothing and is only used for the branch protection if: always() needs: - pre-commit - tests runs-on: ubuntu-latest steps: - name: Decide whether the needed jobs succeeded or failed uses: re-actors/alls-green@release/v1 with: jobs: ${{ toJSON(needs) }} publish: name: Publish to PyPI needs: - check if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: python-version: "3.8" - name: install flit run: | pip install flit~=3.4 - name: Build and publish run: | flit publish env: FLIT_USERNAME: __token__ FLIT_PASSWORD: ${{ secrets.PYPI_TOKEN }} sphinx-autodoc2-0.5.0/.gitignore000066400000000000000000000053531453104212700165400ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # poetry # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control #poetry.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ # PyCharm # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ .vscode/ docs/_build/ _autodoc/ sphinx-autodoc2-0.5.0/.pre-commit-config.yaml000066400000000000000000000013671453104212700210320ustar00rootroot00000000000000# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks exclude: ^tests/.*\.md|tests/.*\.rst|tests/.*\.xml|docs/apidocs/.* repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.1.6 hooks: - id: ruff args: [--fix] - id: ruff-format - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.7.1 hooks: - id: mypy args: [--config-file=pyproject.toml] additional_dependencies: ["sphinx", "typer[all]"] exclude: ^tests/.*\.py$ sphinx-autodoc2-0.5.0/.readthedocs.yml000066400000000000000000000003271453104212700176320ustar00rootroot00000000000000version: 2 build: os: ubuntu-22.04 tools: python: "3.8" python: install: - method: pip path: . extra_requirements: - docs sphinx: builder: html fail_on_warning: true sphinx-autodoc2-0.5.0/LICENSE000066400000000000000000000020671453104212700155540ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2023 Chris Sewell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. sphinx-autodoc2-0.5.0/README.md000066400000000000000000000073711453104212700160310ustar00rootroot00000000000000# sphinx-autodoc2 `sphinx-autodoc2` is a Sphinx extension that automatically generates API documentation for your Python packages. [![GitHub Repo stars](https://img.shields.io/github/stars/chrisjsewell/sphinx-autodoc2?label=Like%20and%20Share%21&style=social)](https://github.com/chrisjsewell/sphinx-autodoc2) [![PyPI](https://img.shields.io/pypi/v/sphinx-autodoc2?label=PyPI&logo=pypi&style=social)](https://pypi.org/project/sphinx-autodoc2/) Static analysis of Python code : There is no need to install your package to generate the documentation, and `sphinx-autodoc2` will correctly handle `if TYPE_CHECKING` blocks and other typing only features. : You can even document packages from outside the project (via `git clone`)! Optimized for rebuilds : Analysis of packages and file rendering are cached, so you can use `sphinx-autodoc2` in your development workflow. Support for `__all__` : `sphinx-autodoc2` can follow `__all__` variable, to only document the public API. Support for both `rst` and `md` docstrings : `sphinx-autodoc2` supports both `rst` and `md` ([MyST](https://myst-parser.readthedocs.io)) docstrings, which can be mixed within the same project. Highly configurable : `sphinx-autodoc2` is highly configurable, with many options to control the analysis and output of the documentation. Decoupled analysis and rendering : The analysis and rendering of the documentation are decoupled, and not dependent on Sphinx. : This means that you can use `sphinx-autodoc2` to generate documentation outside of Sphinx (see the `autodoc2` command line tool). See the documentation for more information! ## Design and comparison to sphinx-autoapi I wanted an extension with the following goals: - Static analysis of Python code, so things like `if TYPE_CHECKING` were handled correctly - Support for MyST docstrings (see ) - Also support for transitioning from `rst` to `md`, i.e. mixing docstrings - Make it simple and minimise the amount of configuration and rebuilds necessary - Support for building public API via `__all__` variable I am not looking to support other languages tha Python (at least for now). [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) was a good candidate, but it had a few issues: - It does not support MyST docstrings: - It does not support the `__all__` very well: - The analysis and rendering are coupled, making it difficult to test, modify and use outside of Sphinx I've use a lot of their code, for the `astroid` static analysis, but I've made a number of "improvements": - separating concerns: analysis and template writing - type annotations for code base - fixed `a | b` annotations inference - added analysis of `functools.singledispatch` and their registers - handling of `__all__` - docstrings (and summaries) are now parsed with the correct source/line, i.e. warnings point to the correct location in the source file - added `:canonical:` to `py` directives - Moved away from using jinja templates, to using python functions - IMO the templates were too complex and hard to read, plus they do not benefit from any form of type checking, linting, etc. - uses `list-table`, instead of `auto-summary` directive ## Development All configuration is mainly in `pyproject.toml`. Use [tox](https://tox.readthedocs.io/en/latest/) to run the tests. ```bash pipx install tox tox -av ``` Use [pre-commit](https://pre-commit.com/) to run the linters and formatters. ```bash pipx install pre-commit pre-commit run --all-files # pre-commit install ``` [flit](https://flit.readthedocs.io/en/latest/) is used to build the package. ```bash pipx install flit flit build ``` sphinx-autodoc2-0.5.0/docs/000077500000000000000000000000001453104212700154725ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/docs/apidocs/000077500000000000000000000000001453104212700171145ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/docs/apidocs/aiida/000077500000000000000000000000001453104212700201635ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.cmdline.rst000066400000000000000000001145341453104212700234060ustar00rootroot00000000000000:py:mod:`aiida.cmdline` ======================= .. py:module:: aiida.cmdline .. autodoc2-docstring:: aiida.cmdline :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AbsolutePathParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.path.AbsolutePathParamType :summary: * - :py:obj:`CalculationParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.calculation.CalculationParamType :summary: * - :py:obj:`CodeParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType :summary: * - :py:obj:`ComputerParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ComputerParamType :summary: * - :py:obj:`ConfigOptionParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.config.ConfigOptionParamType :summary: * - :py:obj:`DataParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.data.DataParamType :summary: * - :py:obj:`DynamicEntryPointCommandGroup ` - .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup :summary: * - :py:obj:`EmailType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EmailType :summary: * - :py:obj:`EntryPointType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EntryPointType :summary: * - :py:obj:`FileOrUrl ` - .. autodoc2-docstring:: aiida.cmdline.params.types.path.FileOrUrl :summary: * - :py:obj:`GroupParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType :summary: * - :py:obj:`HostnameType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.strings.HostnameType :summary: * - :py:obj:`IdentifierParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.identifier.IdentifierParamType :summary: * - :py:obj:`LabelStringType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.strings.LabelStringType :summary: * - :py:obj:`LazyChoice ` - .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice :summary: * - :py:obj:`MpirunCommandParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.computer.MpirunCommandParamType :summary: * - :py:obj:`MultipleValueParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.multiple.MultipleValueParamType :summary: * - :py:obj:`NodeParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.node.NodeParamType :summary: * - :py:obj:`NonEmptyStringParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.strings.NonEmptyStringParamType :summary: * - :py:obj:`PathOrUrl ` - .. autodoc2-docstring:: aiida.cmdline.params.types.path.PathOrUrl :summary: * - :py:obj:`PluginParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType :summary: * - :py:obj:`ProcessParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.process.ProcessParamType :summary: * - :py:obj:`ProfileParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType :summary: * - :py:obj:`ShebangParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ShebangParamType :summary: * - :py:obj:`UserParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.user.UserParamType :summary: * - :py:obj:`VerdiCommandGroup ` - .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup :summary: * - :py:obj:`WorkflowParamType ` - .. autodoc2-docstring:: aiida.cmdline.params.types.workflow.WorkflowParamType :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`dbenv ` - .. autodoc2-docstring:: aiida.cmdline.utils.decorators.dbenv :summary: * - :py:obj:`echo_critical ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_critical :summary: * - :py:obj:`echo_dictionary ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_dictionary :summary: * - :py:obj:`echo_error ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_error :summary: * - :py:obj:`echo_info ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_info :summary: * - :py:obj:`echo_report ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_report :summary: * - :py:obj:`echo_success ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_success :summary: * - :py:obj:`echo_warning ` - .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_warning :summary: * - :py:obj:`format_call_graph ` - .. autodoc2-docstring:: aiida.cmdline.utils.ascii_vis.format_call_graph :summary: * - :py:obj:`is_verbose ` - .. autodoc2-docstring:: aiida.cmdline.utils.common.is_verbose :summary: * - :py:obj:`only_if_daemon_running ` - .. autodoc2-docstring:: aiida.cmdline.utils.decorators.only_if_daemon_running :summary: * - :py:obj:`with_dbenv ` - .. autodoc2-docstring:: aiida.cmdline.utils.decorators.with_dbenv :summary: API ~~~ .. py:class:: AbsolutePathParamType :canonical: aiida.cmdline.params.types.path.AbsolutePathParamType Bases: :py:obj:`click.Path` .. autodoc2-docstring:: aiida.cmdline.params.types.path.AbsolutePathParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.path.AbsolutePathParamType.name :value: 'AbsolutePath' .. autodoc2-docstring:: aiida.cmdline.params.types.path.AbsolutePathParamType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.path.AbsolutePathParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.path.AbsolutePathParamType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.path.AbsolutePathParamType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.path.AbsolutePathParamType.__repr__ .. py:class:: CalculationParamType :canonical: aiida.cmdline.params.types.calculation.CalculationParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.calculation.CalculationParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.calculation.CalculationParamType.name :value: 'Calculation' .. autodoc2-docstring:: aiida.cmdline.params.types.calculation.CalculationParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.calculation.CalculationParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.calculation.CalculationParamType.orm_class_loader .. py:class:: CodeParamType(sub_classes=None, entry_point=None) :canonical: aiida.cmdline.params.types.code.CodeParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.code.CodeParamType.name :value: 'Code' .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.code.CodeParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType.orm_class_loader .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.code.CodeParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType.shell_complete .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.code.CodeParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.code.CodeParamType.convert .. py:class:: ComputerParamType :canonical: aiida.cmdline.params.types.computer.ComputerParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ComputerParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.computer.ComputerParamType.name :value: 'Computer' .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ComputerParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.computer.ComputerParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ComputerParamType.orm_class_loader .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.computer.ComputerParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ComputerParamType.shell_complete .. py:class:: ConfigOptionParamType :canonical: aiida.cmdline.params.types.config.ConfigOptionParamType Bases: :py:obj:`click.types.StringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.config.ConfigOptionParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.config.ConfigOptionParamType.name :value: 'config option' .. autodoc2-docstring:: aiida.cmdline.params.types.config.ConfigOptionParamType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.config.ConfigOptionParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.config.ConfigOptionParamType.convert .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.config.ConfigOptionParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.config.ConfigOptionParamType.shell_complete .. py:class:: DataParamType(sub_classes=None) :canonical: aiida.cmdline.params.types.data.DataParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.data.DataParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.data.DataParamType.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.data.DataParamType.name :value: 'Data' .. autodoc2-docstring:: aiida.cmdline.params.types.data.DataParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.data.DataParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.data.DataParamType.orm_class_loader .. py:class:: DynamicEntryPointCommandGroup(command, entry_point_group: str, entry_point_name_filter='.*', **kwargs) :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup Bases: :py:obj:`aiida.cmdline.groups.verdi.VerdiCommandGroup` .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.__init__ .. py:method:: list_commands(ctx) -> list[str] :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.list_commands .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.list_commands .. py:method:: get_command(ctx, cmd_name) :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.get_command .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.get_command .. py:method:: create_command(entry_point) :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.create_command .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.create_command .. py:method:: create_options(entry_point) :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.create_options .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.create_options .. py:method:: list_options(entry_point) :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.list_options .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.list_options .. py:method:: create_option(name, spec) :canonical: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.create_option :staticmethod: .. autodoc2-docstring:: aiida.cmdline.groups.dynamic.DynamicEntryPointCommandGroup.create_option .. py:class:: EmailType :canonical: aiida.cmdline.params.types.strings.EmailType Bases: :py:obj:`click.types.StringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EmailType .. py:attribute:: name :canonical: aiida.cmdline.params.types.strings.EmailType.name :value: 'email' .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EmailType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.strings.EmailType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EmailType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.strings.EmailType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EmailType.__repr__ .. py:class:: EntryPointType :canonical: aiida.cmdline.params.types.strings.EntryPointType Bases: :py:obj:`aiida.cmdline.params.types.strings.NonEmptyStringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EntryPointType .. py:attribute:: name :canonical: aiida.cmdline.params.types.strings.EntryPointType.name :value: 'entrypoint' .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EntryPointType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.strings.EntryPointType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EntryPointType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.strings.EntryPointType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.strings.EntryPointType.__repr__ .. py:class:: FileOrUrl(timeout_seconds=URL_TIMEOUT_SECONDS, **kwargs) :canonical: aiida.cmdline.params.types.path.FileOrUrl Bases: :py:obj:`click.File` .. autodoc2-docstring:: aiida.cmdline.params.types.path.FileOrUrl .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.path.FileOrUrl.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.path.FileOrUrl.name :value: 'FileOrUrl' .. autodoc2-docstring:: aiida.cmdline.params.types.path.FileOrUrl.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.path.FileOrUrl.convert .. autodoc2-docstring:: aiida.cmdline.params.types.path.FileOrUrl.convert .. py:method:: get_url(url, param, ctx) :canonical: aiida.cmdline.params.types.path.FileOrUrl.get_url .. autodoc2-docstring:: aiida.cmdline.params.types.path.FileOrUrl.get_url .. py:class:: GroupParamType(create_if_not_exist=False, sub_classes=('aiida.groups:core', )) :canonical: aiida.cmdline.params.types.group.GroupParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.group.GroupParamType.name :value: 'Group' .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.group.GroupParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType.orm_class_loader .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.group.GroupParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType.shell_complete .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.group.GroupParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.group.GroupParamType.convert .. py:class:: HostnameType :canonical: aiida.cmdline.params.types.strings.HostnameType Bases: :py:obj:`click.types.StringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.strings.HostnameType .. py:attribute:: name :canonical: aiida.cmdline.params.types.strings.HostnameType.name :value: 'hostname' .. autodoc2-docstring:: aiida.cmdline.params.types.strings.HostnameType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.strings.HostnameType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.strings.HostnameType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.strings.HostnameType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.strings.HostnameType.__repr__ .. py:class:: IdentifierParamType(sub_classes=None) :canonical: aiida.cmdline.params.types.identifier.IdentifierParamType Bases: :py:obj:`click.ParamType`, :py:obj:`abc.ABC` .. autodoc2-docstring:: aiida.cmdline.params.types.identifier.IdentifierParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.identifier.IdentifierParamType.__init__ .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.identifier.IdentifierParamType.orm_class_loader :abstractmethod: .. autodoc2-docstring:: aiida.cmdline.params.types.identifier.IdentifierParamType.orm_class_loader .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.identifier.IdentifierParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.identifier.IdentifierParamType.convert .. py:class:: LabelStringType :canonical: aiida.cmdline.params.types.strings.LabelStringType Bases: :py:obj:`aiida.cmdline.params.types.strings.NonEmptyStringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.strings.LabelStringType .. py:attribute:: name :canonical: aiida.cmdline.params.types.strings.LabelStringType.name :value: 'labelstring' .. autodoc2-docstring:: aiida.cmdline.params.types.strings.LabelStringType.name .. py:attribute:: ALPHABET :canonical: aiida.cmdline.params.types.strings.LabelStringType.ALPHABET :value: '\\w\\.\\-' .. autodoc2-docstring:: aiida.cmdline.params.types.strings.LabelStringType.ALPHABET .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.strings.LabelStringType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.strings.LabelStringType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.strings.LabelStringType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.strings.LabelStringType.__repr__ .. py:class:: LazyChoice(get_choices) :canonical: aiida.cmdline.params.types.choice.LazyChoice Bases: :py:obj:`click.ParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.choice.LazyChoice.name :value: 'choice' .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.name .. py:property:: _click_choice :canonical: aiida.cmdline.params.types.choice.LazyChoice._click_choice .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice._click_choice .. py:property:: choices :canonical: aiida.cmdline.params.types.choice.LazyChoice.choices .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.choices .. py:method:: get_metavar(param) :canonical: aiida.cmdline.params.types.choice.LazyChoice.get_metavar .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.get_metavar .. py:method:: get_missing_message(param) :canonical: aiida.cmdline.params.types.choice.LazyChoice.get_missing_message .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.get_missing_message .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.choice.LazyChoice.convert .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.choice.LazyChoice.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.choice.LazyChoice.__repr__ .. py:class:: MpirunCommandParamType :canonical: aiida.cmdline.params.types.computer.MpirunCommandParamType Bases: :py:obj:`click.types.StringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.computer.MpirunCommandParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.computer.MpirunCommandParamType.name :value: 'mpiruncommandstring' .. autodoc2-docstring:: aiida.cmdline.params.types.computer.MpirunCommandParamType.name .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.computer.MpirunCommandParamType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.computer.MpirunCommandParamType.__repr__ .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.computer.MpirunCommandParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.computer.MpirunCommandParamType.convert .. py:class:: MultipleValueParamType(param_type) :canonical: aiida.cmdline.params.types.multiple.MultipleValueParamType Bases: :py:obj:`click.ParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.multiple.MultipleValueParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.multiple.MultipleValueParamType.__init__ .. py:method:: get_metavar(param) :canonical: aiida.cmdline.params.types.multiple.MultipleValueParamType.get_metavar .. autodoc2-docstring:: aiida.cmdline.params.types.multiple.MultipleValueParamType.get_metavar .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.multiple.MultipleValueParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.multiple.MultipleValueParamType.convert .. py:class:: NodeParamType :canonical: aiida.cmdline.params.types.node.NodeParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.node.NodeParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.node.NodeParamType.name :value: 'Node' .. autodoc2-docstring:: aiida.cmdline.params.types.node.NodeParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.node.NodeParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.node.NodeParamType.orm_class_loader .. py:class:: NonEmptyStringParamType :canonical: aiida.cmdline.params.types.strings.NonEmptyStringParamType Bases: :py:obj:`click.types.StringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.strings.NonEmptyStringParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.strings.NonEmptyStringParamType.name :value: 'nonemptystring' .. autodoc2-docstring:: aiida.cmdline.params.types.strings.NonEmptyStringParamType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.strings.NonEmptyStringParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.strings.NonEmptyStringParamType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.strings.NonEmptyStringParamType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.strings.NonEmptyStringParamType.__repr__ .. py:class:: PathOrUrl(timeout_seconds=URL_TIMEOUT_SECONDS, **kwargs) :canonical: aiida.cmdline.params.types.path.PathOrUrl Bases: :py:obj:`click.Path` .. autodoc2-docstring:: aiida.cmdline.params.types.path.PathOrUrl .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.path.PathOrUrl.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.path.PathOrUrl.name :value: 'PathOrUrl' .. autodoc2-docstring:: aiida.cmdline.params.types.path.PathOrUrl.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.path.PathOrUrl.convert .. autodoc2-docstring:: aiida.cmdline.params.types.path.PathOrUrl.convert .. py:method:: checks_url(url, param, ctx) :canonical: aiida.cmdline.params.types.path.PathOrUrl.checks_url .. autodoc2-docstring:: aiida.cmdline.params.types.path.PathOrUrl.checks_url .. py:class:: PluginParamType(group=None, load=False, *args, **kwargs) :canonical: aiida.cmdline.params.types.plugin.PluginParamType Bases: :py:obj:`aiida.cmdline.params.types.strings.EntryPointType` .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.plugin.PluginParamType.name :value: 'plugin' .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.name .. py:attribute:: _factory_mapping :canonical: aiida.cmdline.params.types.plugin.PluginParamType._factory_mapping :value: None .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType._factory_mapping .. py:method:: _init_entry_points() :canonical: aiida.cmdline.params.types.plugin.PluginParamType._init_entry_points .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType._init_entry_points .. py:property:: groups :canonical: aiida.cmdline.params.types.plugin.PluginParamType.groups .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.groups .. py:property:: has_potential_ambiguity :canonical: aiida.cmdline.params.types.plugin.PluginParamType.has_potential_ambiguity .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.has_potential_ambiguity .. py:method:: get_valid_arguments() :canonical: aiida.cmdline.params.types.plugin.PluginParamType.get_valid_arguments .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.get_valid_arguments .. py:method:: get_possibilities(incomplete='') :canonical: aiida.cmdline.params.types.plugin.PluginParamType.get_possibilities .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.get_possibilities .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.plugin.PluginParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.shell_complete .. py:method:: get_missing_message(param) :canonical: aiida.cmdline.params.types.plugin.PluginParamType.get_missing_message .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.get_missing_message .. py:method:: get_entry_point_from_string(entry_point_string) :canonical: aiida.cmdline.params.types.plugin.PluginParamType.get_entry_point_from_string .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.get_entry_point_from_string .. py:method:: validate_entry_point_group(group) :canonical: aiida.cmdline.params.types.plugin.PluginParamType.validate_entry_point_group .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.validate_entry_point_group .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.plugin.PluginParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.plugin.PluginParamType.convert .. py:class:: ProcessParamType :canonical: aiida.cmdline.params.types.process.ProcessParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.process.ProcessParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.process.ProcessParamType.name :value: 'Process' .. autodoc2-docstring:: aiida.cmdline.params.types.process.ProcessParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.process.ProcessParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.process.ProcessParamType.orm_class_loader .. py:class:: ProfileParamType(*args, **kwargs) :canonical: aiida.cmdline.params.types.profile.ProfileParamType Bases: :py:obj:`aiida.cmdline.params.types.strings.LabelStringType` .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.profile.ProfileParamType.name :value: 'profile' .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType.name .. py:method:: deconvert_default(value) :canonical: aiida.cmdline.params.types.profile.ProfileParamType.deconvert_default :staticmethod: .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType.deconvert_default .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.profile.ProfileParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType.convert .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.profile.ProfileParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.profile.ProfileParamType.shell_complete .. py:class:: ShebangParamType :canonical: aiida.cmdline.params.types.computer.ShebangParamType Bases: :py:obj:`click.types.StringParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ShebangParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.computer.ShebangParamType.name :value: 'shebangline' .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ShebangParamType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.computer.ShebangParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ShebangParamType.convert .. py:method:: __repr__() :canonical: aiida.cmdline.params.types.computer.ShebangParamType.__repr__ .. autodoc2-docstring:: aiida.cmdline.params.types.computer.ShebangParamType.__repr__ .. py:class:: UserParamType(create=False) :canonical: aiida.cmdline.params.types.user.UserParamType Bases: :py:obj:`click.ParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.user.UserParamType .. rubric:: Initialization .. autodoc2-docstring:: aiida.cmdline.params.types.user.UserParamType.__init__ .. py:attribute:: name :canonical: aiida.cmdline.params.types.user.UserParamType.name :value: 'user' .. autodoc2-docstring:: aiida.cmdline.params.types.user.UserParamType.name .. py:method:: convert(value, param, ctx) :canonical: aiida.cmdline.params.types.user.UserParamType.convert .. autodoc2-docstring:: aiida.cmdline.params.types.user.UserParamType.convert .. py:method:: shell_complete(ctx, param, incomplete) :canonical: aiida.cmdline.params.types.user.UserParamType.shell_complete .. autodoc2-docstring:: aiida.cmdline.params.types.user.UserParamType.shell_complete .. py:class:: VerdiCommandGroup :canonical: aiida.cmdline.groups.verdi.VerdiCommandGroup Bases: :py:obj:`click.Group` .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup .. py:attribute:: context_class :canonical: aiida.cmdline.groups.verdi.VerdiCommandGroup.context_class :value: None .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup.context_class .. py:method:: add_verbosity_option(cmd) :canonical: aiida.cmdline.groups.verdi.VerdiCommandGroup.add_verbosity_option :staticmethod: .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup.add_verbosity_option .. py:method:: fail_with_suggestions(ctx, cmd_name) :canonical: aiida.cmdline.groups.verdi.VerdiCommandGroup.fail_with_suggestions .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup.fail_with_suggestions .. py:method:: get_command(ctx, cmd_name) :canonical: aiida.cmdline.groups.verdi.VerdiCommandGroup.get_command .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup.get_command .. py:method:: group(*args, **kwargs) :canonical: aiida.cmdline.groups.verdi.VerdiCommandGroup.group .. autodoc2-docstring:: aiida.cmdline.groups.verdi.VerdiCommandGroup.group .. py:class:: WorkflowParamType :canonical: aiida.cmdline.params.types.workflow.WorkflowParamType Bases: :py:obj:`aiida.cmdline.params.types.identifier.IdentifierParamType` .. autodoc2-docstring:: aiida.cmdline.params.types.workflow.WorkflowParamType .. py:attribute:: name :canonical: aiida.cmdline.params.types.workflow.WorkflowParamType.name :value: 'WorkflowNode' .. autodoc2-docstring:: aiida.cmdline.params.types.workflow.WorkflowParamType.name .. py:property:: orm_class_loader :canonical: aiida.cmdline.params.types.workflow.WorkflowParamType.orm_class_loader .. autodoc2-docstring:: aiida.cmdline.params.types.workflow.WorkflowParamType.orm_class_loader .. py:function:: dbenv() :canonical: aiida.cmdline.utils.decorators.dbenv .. autodoc2-docstring:: aiida.cmdline.utils.decorators.dbenv .. py:function:: echo_critical(message: str, bold: bool = False, nl: bool = True, err: bool = True, prefix: bool = True) -> None :canonical: aiida.cmdline.utils.echo.echo_critical .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_critical .. py:function:: echo_dictionary(dictionary, fmt='json+date', sort_keys=True) :canonical: aiida.cmdline.utils.echo.echo_dictionary .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_dictionary .. py:function:: echo_error(message: str, bold: bool = False, nl: bool = True, err: bool = True, prefix: bool = True) -> None :canonical: aiida.cmdline.utils.echo.echo_error .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_error .. py:function:: echo_info(message: str, bold: bool = False, nl: bool = True, err: bool = False, prefix: bool = True) -> None :canonical: aiida.cmdline.utils.echo.echo_info .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_info .. py:function:: echo_report(message: str, bold: bool = False, nl: bool = True, err: bool = False, prefix: bool = True) -> None :canonical: aiida.cmdline.utils.echo.echo_report .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_report .. py:function:: echo_success(message: str, bold: bool = False, nl: bool = True, err: bool = False, prefix: bool = True) -> None :canonical: aiida.cmdline.utils.echo.echo_success .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_success .. py:function:: echo_warning(message: str, bold: bool = False, nl: bool = True, err: bool = False, prefix: bool = True) -> None :canonical: aiida.cmdline.utils.echo.echo_warning .. autodoc2-docstring:: aiida.cmdline.utils.echo.echo_warning .. py:function:: format_call_graph(calc_node, max_depth: int = None, info_fn=calc_info) :canonical: aiida.cmdline.utils.ascii_vis.format_call_graph .. autodoc2-docstring:: aiida.cmdline.utils.ascii_vis.format_call_graph .. py:function:: is_verbose() :canonical: aiida.cmdline.utils.common.is_verbose .. autodoc2-docstring:: aiida.cmdline.utils.common.is_verbose .. py:function:: only_if_daemon_running(echo_function=echo.echo_critical, message=None) :canonical: aiida.cmdline.utils.decorators.only_if_daemon_running .. autodoc2-docstring:: aiida.cmdline.utils.decorators.only_if_daemon_running .. py:function:: with_dbenv() :canonical: aiida.cmdline.utils.decorators.with_dbenv .. autodoc2-docstring:: aiida.cmdline.utils.decorators.with_dbenv sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.common.rst000066400000000000000000001024711453104212700232600ustar00rootroot00000000000000:py:mod:`aiida.common` ====================== .. py:module:: aiida.common .. autodoc2-docstring:: aiida.common :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AttributeDict ` - .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict :summary: * - :py:obj:`CalcInfo ` - .. autodoc2-docstring:: aiida.common.datastructures.CalcInfo :summary: * - :py:obj:`CalcJobState ` - .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState :summary: * - :py:obj:`CodeInfo ` - .. autodoc2-docstring:: aiida.common.datastructures.CodeInfo :summary: * - :py:obj:`CodeRunMode ` - .. autodoc2-docstring:: aiida.common.datastructures.CodeRunMode :summary: * - :py:obj:`DefaultFieldsAttributeDict ` - .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict :summary: * - :py:obj:`FixedFieldsAttributeDict ` - .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict :summary: * - :py:obj:`GraphTraversalRules ` - .. autodoc2-docstring:: aiida.common.links.GraphTraversalRules :summary: * - :py:obj:`LinkType ` - .. autodoc2-docstring:: aiida.common.links.LinkType :summary: * - :py:obj:`ProgressReporterAbstract ` - .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract :summary: * - :py:obj:`StashMode ` - .. autodoc2-docstring:: aiida.common.datastructures.StashMode :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`create_callback ` - .. autodoc2-docstring:: aiida.common.progress_reporter.create_callback :summary: * - :py:obj:`get_progress_reporter ` - .. autodoc2-docstring:: aiida.common.progress_reporter.get_progress_reporter :summary: * - :py:obj:`override_log_level ` - .. autodoc2-docstring:: aiida.common.log.override_log_level :summary: * - :py:obj:`set_progress_bar_tqdm ` - .. autodoc2-docstring:: aiida.common.progress_reporter.set_progress_bar_tqdm :summary: * - :py:obj:`set_progress_reporter ` - .. autodoc2-docstring:: aiida.common.progress_reporter.set_progress_reporter :summary: * - :py:obj:`validate_link_label ` - .. autodoc2-docstring:: aiida.common.links.validate_link_label :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AIIDA_LOGGER ` - .. autodoc2-docstring:: aiida.common.log.AIIDA_LOGGER :summary: * - :py:obj:`GraphTraversalRule ` - .. autodoc2-docstring:: aiida.common.links.GraphTraversalRule :summary: * - :py:obj:`TQDM_BAR_FORMAT ` - .. autodoc2-docstring:: aiida.common.progress_reporter.TQDM_BAR_FORMAT :summary: API ~~~ .. py:data:: AIIDA_LOGGER :canonical: aiida.common.log.AIIDA_LOGGER :value: None .. autodoc2-docstring:: aiida.common.log.AIIDA_LOGGER .. py:exception:: AiidaException() :canonical: aiida.common.exceptions.AiidaException Bases: :py:obj:`Exception` .. autodoc2-docstring:: aiida.common.exceptions.AiidaException .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.AiidaException.__init__ .. py:class:: AttributeDict(dictionary=None) :canonical: aiida.common.extendeddicts.AttributeDict Bases: :py:obj:`dict` .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__init__ .. py:method:: __repr__() :canonical: aiida.common.extendeddicts.AttributeDict.__repr__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__repr__ .. py:method:: __getattr__(attr) :canonical: aiida.common.extendeddicts.AttributeDict.__getattr__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__getattr__ .. py:method:: __setattr__(attr, value) :canonical: aiida.common.extendeddicts.AttributeDict.__setattr__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__setattr__ .. py:method:: __delattr__(attr) :canonical: aiida.common.extendeddicts.AttributeDict.__delattr__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__delattr__ .. py:method:: __deepcopy__(memo=None) :canonical: aiida.common.extendeddicts.AttributeDict.__deepcopy__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__deepcopy__ .. py:method:: __getstate__() :canonical: aiida.common.extendeddicts.AttributeDict.__getstate__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__getstate__ .. py:method:: __setstate__(dictionary) :canonical: aiida.common.extendeddicts.AttributeDict.__setstate__ .. autodoc2-docstring:: aiida.common.extendeddicts.AttributeDict.__setstate__ .. py:method:: __dir__() :canonical: aiida.common.extendeddicts.AttributeDict.__dir__ .. py:class:: CalcInfo(dictionary=None) :canonical: aiida.common.datastructures.CalcInfo Bases: :py:obj:`aiida.common.extendeddicts.DefaultFieldsAttributeDict` .. autodoc2-docstring:: aiida.common.datastructures.CalcInfo .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.datastructures.CalcInfo.__init__ .. py:attribute:: _default_fields :canonical: aiida.common.datastructures.CalcInfo._default_fields :value: ('job_environment', 'email', 'email_on_started', 'email_on_terminated', 'uuid', 'prepend_text', 'app... .. autodoc2-docstring:: aiida.common.datastructures.CalcInfo._default_fields .. py:class:: CalcJobState(*args, **kwds) :canonical: aiida.common.datastructures.CalcJobState Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.__init__ .. py:attribute:: UPLOADING :canonical: aiida.common.datastructures.CalcJobState.UPLOADING :value: 'uploading' .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.UPLOADING .. py:attribute:: SUBMITTING :canonical: aiida.common.datastructures.CalcJobState.SUBMITTING :value: 'submitting' .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.SUBMITTING .. py:attribute:: WITHSCHEDULER :canonical: aiida.common.datastructures.CalcJobState.WITHSCHEDULER :value: 'withscheduler' .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.WITHSCHEDULER .. py:attribute:: STASHING :canonical: aiida.common.datastructures.CalcJobState.STASHING :value: 'stashing' .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.STASHING .. py:attribute:: RETRIEVING :canonical: aiida.common.datastructures.CalcJobState.RETRIEVING :value: 'retrieving' .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.RETRIEVING .. py:attribute:: PARSING :canonical: aiida.common.datastructures.CalcJobState.PARSING :value: 'parsing' .. autodoc2-docstring:: aiida.common.datastructures.CalcJobState.PARSING .. py:exception:: ClosedStorage() :canonical: aiida.common.exceptions.ClosedStorage Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.ClosedStorage .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ClosedStorage.__init__ .. py:class:: CodeInfo(dictionary=None) :canonical: aiida.common.datastructures.CodeInfo Bases: :py:obj:`aiida.common.extendeddicts.DefaultFieldsAttributeDict` .. autodoc2-docstring:: aiida.common.datastructures.CodeInfo .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.datastructures.CodeInfo.__init__ .. py:attribute:: _default_fields :canonical: aiida.common.datastructures.CodeInfo._default_fields :value: ('cmdline_params', 'stdin_name', 'stdout_name', 'stderr_name', 'join_files', 'withmpi', 'code_uuid') .. autodoc2-docstring:: aiida.common.datastructures.CodeInfo._default_fields .. py:class:: CodeRunMode() :canonical: aiida.common.datastructures.CodeRunMode Bases: :py:obj:`enum.IntEnum` .. autodoc2-docstring:: aiida.common.datastructures.CodeRunMode .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.datastructures.CodeRunMode.__init__ .. py:attribute:: SERIAL :canonical: aiida.common.datastructures.CodeRunMode.SERIAL :value: 0 .. autodoc2-docstring:: aiida.common.datastructures.CodeRunMode.SERIAL .. py:attribute:: PARALLEL :canonical: aiida.common.datastructures.CodeRunMode.PARALLEL :value: 1 .. autodoc2-docstring:: aiida.common.datastructures.CodeRunMode.PARALLEL .. py:exception:: ConfigurationError() :canonical: aiida.common.exceptions.ConfigurationError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.ConfigurationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ConfigurationError.__init__ .. py:exception:: ConfigurationVersionError() :canonical: aiida.common.exceptions.ConfigurationVersionError Bases: :py:obj:`aiida.common.exceptions.ConfigurationError` .. autodoc2-docstring:: aiida.common.exceptions.ConfigurationVersionError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ConfigurationVersionError.__init__ .. py:exception:: ContentNotExistent() :canonical: aiida.common.exceptions.ContentNotExistent Bases: :py:obj:`aiida.common.exceptions.NotExistent` .. autodoc2-docstring:: aiida.common.exceptions.ContentNotExistent .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ContentNotExistent.__init__ .. py:exception:: CorruptStorage() :canonical: aiida.common.exceptions.CorruptStorage Bases: :py:obj:`aiida.common.exceptions.ConfigurationError` .. autodoc2-docstring:: aiida.common.exceptions.CorruptStorage .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.CorruptStorage.__init__ .. py:exception:: DbContentError() :canonical: aiida.common.exceptions.DbContentError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.DbContentError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.DbContentError.__init__ .. py:class:: DefaultFieldsAttributeDict(dictionary=None) :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict Bases: :py:obj:`aiida.common.extendeddicts.AttributeDict` .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.__init__ .. py:attribute:: _default_fields :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict._default_fields :value: None .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict._default_fields .. py:method:: validate() :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict.validate .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.validate .. py:method:: __setattr__(attr, value) :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict.__setattr__ .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.__setattr__ .. py:method:: __getitem__(key) :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict.__getitem__ .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.__getitem__ .. py:method:: get_default_fields() :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict.get_default_fields :classmethod: .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.get_default_fields .. py:method:: defaultkeys() :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict.defaultkeys .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.defaultkeys .. py:method:: extrakeys() :canonical: aiida.common.extendeddicts.DefaultFieldsAttributeDict.extrakeys .. autodoc2-docstring:: aiida.common.extendeddicts.DefaultFieldsAttributeDict.extrakeys .. py:exception:: EntryPointError() :canonical: aiida.common.exceptions.EntryPointError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.EntryPointError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.EntryPointError.__init__ .. py:exception:: FailedError() :canonical: aiida.common.exceptions.FailedError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.FailedError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.FailedError.__init__ .. py:exception:: FeatureDisabled() :canonical: aiida.common.exceptions.FeatureDisabled Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.FeatureDisabled .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.FeatureDisabled.__init__ .. py:exception:: FeatureNotAvailable() :canonical: aiida.common.exceptions.FeatureNotAvailable Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.FeatureNotAvailable .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.FeatureNotAvailable.__init__ .. py:class:: FixedFieldsAttributeDict(init=None) :canonical: aiida.common.extendeddicts.FixedFieldsAttributeDict Bases: :py:obj:`aiida.common.extendeddicts.AttributeDict` .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict.__init__ .. py:attribute:: _valid_fields :canonical: aiida.common.extendeddicts.FixedFieldsAttributeDict._valid_fields :value: None .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict._valid_fields .. py:method:: __setitem__(item, value) :canonical: aiida.common.extendeddicts.FixedFieldsAttributeDict.__setitem__ .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict.__setitem__ .. py:method:: __setattr__(attr, value) :canonical: aiida.common.extendeddicts.FixedFieldsAttributeDict.__setattr__ .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict.__setattr__ .. py:method:: get_valid_fields() :canonical: aiida.common.extendeddicts.FixedFieldsAttributeDict.get_valid_fields :classmethod: .. autodoc2-docstring:: aiida.common.extendeddicts.FixedFieldsAttributeDict.get_valid_fields .. py:method:: __dir__() :canonical: aiida.common.extendeddicts.FixedFieldsAttributeDict.__dir__ .. py:data:: GraphTraversalRule :canonical: aiida.common.links.GraphTraversalRule :value: None .. autodoc2-docstring:: aiida.common.links.GraphTraversalRule .. py:class:: GraphTraversalRules(*args, **kwds) :canonical: aiida.common.links.GraphTraversalRules Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.common.links.GraphTraversalRules .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.links.GraphTraversalRules.__init__ .. py:attribute:: DEFAULT :canonical: aiida.common.links.GraphTraversalRules.DEFAULT :value: None .. autodoc2-docstring:: aiida.common.links.GraphTraversalRules.DEFAULT .. py:attribute:: DELETE :canonical: aiida.common.links.GraphTraversalRules.DELETE :value: None .. autodoc2-docstring:: aiida.common.links.GraphTraversalRules.DELETE .. py:attribute:: EXPORT :canonical: aiida.common.links.GraphTraversalRules.EXPORT :value: None .. autodoc2-docstring:: aiida.common.links.GraphTraversalRules.EXPORT .. py:exception:: HashingError() :canonical: aiida.common.exceptions.HashingError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.HashingError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.HashingError.__init__ .. py:exception:: IncompatibleStorageSchema() :canonical: aiida.common.exceptions.IncompatibleStorageSchema Bases: :py:obj:`aiida.common.exceptions.IncompatibleDatabaseSchema` .. autodoc2-docstring:: aiida.common.exceptions.IncompatibleStorageSchema .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.IncompatibleStorageSchema.__init__ .. py:exception:: InputValidationError() :canonical: aiida.common.exceptions.InputValidationError Bases: :py:obj:`aiida.common.exceptions.ValidationError` .. autodoc2-docstring:: aiida.common.exceptions.InputValidationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.InputValidationError.__init__ .. py:exception:: IntegrityError() :canonical: aiida.common.exceptions.IntegrityError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.IntegrityError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.IntegrityError.__init__ .. py:exception:: InternalError() :canonical: aiida.common.exceptions.InternalError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.InternalError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.InternalError.__init__ .. py:exception:: InvalidEntryPointTypeError() :canonical: aiida.common.exceptions.InvalidEntryPointTypeError Bases: :py:obj:`aiida.common.exceptions.EntryPointError` .. autodoc2-docstring:: aiida.common.exceptions.InvalidEntryPointTypeError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.InvalidEntryPointTypeError.__init__ .. py:exception:: InvalidOperation() :canonical: aiida.common.exceptions.InvalidOperation Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.InvalidOperation .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.InvalidOperation.__init__ .. py:exception:: LicensingException() :canonical: aiida.common.exceptions.LicensingException Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.LicensingException .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.LicensingException.__init__ .. py:class:: LinkType(*args, **kwds) :canonical: aiida.common.links.LinkType Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.common.links.LinkType .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.links.LinkType.__init__ .. py:attribute:: CREATE :canonical: aiida.common.links.LinkType.CREATE :value: 'create' .. autodoc2-docstring:: aiida.common.links.LinkType.CREATE .. py:attribute:: RETURN :canonical: aiida.common.links.LinkType.RETURN :value: 'return' .. autodoc2-docstring:: aiida.common.links.LinkType.RETURN .. py:attribute:: INPUT_CALC :canonical: aiida.common.links.LinkType.INPUT_CALC :value: 'input_calc' .. autodoc2-docstring:: aiida.common.links.LinkType.INPUT_CALC .. py:attribute:: INPUT_WORK :canonical: aiida.common.links.LinkType.INPUT_WORK :value: 'input_work' .. autodoc2-docstring:: aiida.common.links.LinkType.INPUT_WORK .. py:attribute:: CALL_CALC :canonical: aiida.common.links.LinkType.CALL_CALC :value: 'call_calc' .. autodoc2-docstring:: aiida.common.links.LinkType.CALL_CALC .. py:attribute:: CALL_WORK :canonical: aiida.common.links.LinkType.CALL_WORK :value: 'call_work' .. autodoc2-docstring:: aiida.common.links.LinkType.CALL_WORK .. py:exception:: LoadingEntryPointError() :canonical: aiida.common.exceptions.LoadingEntryPointError Bases: :py:obj:`aiida.common.exceptions.EntryPointError` .. autodoc2-docstring:: aiida.common.exceptions.LoadingEntryPointError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.LoadingEntryPointError.__init__ .. py:exception:: LockedProfileError() :canonical: aiida.common.exceptions.LockedProfileError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.LockedProfileError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.LockedProfileError.__init__ .. py:exception:: LockingProfileError() :canonical: aiida.common.exceptions.LockingProfileError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.LockingProfileError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.LockingProfileError.__init__ .. py:exception:: MissingConfigurationError() :canonical: aiida.common.exceptions.MissingConfigurationError Bases: :py:obj:`aiida.common.exceptions.ConfigurationError` .. autodoc2-docstring:: aiida.common.exceptions.MissingConfigurationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.MissingConfigurationError.__init__ .. py:exception:: MissingEntryPointError() :canonical: aiida.common.exceptions.MissingEntryPointError Bases: :py:obj:`aiida.common.exceptions.EntryPointError` .. autodoc2-docstring:: aiida.common.exceptions.MissingEntryPointError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.MissingEntryPointError.__init__ .. py:exception:: ModificationNotAllowed() :canonical: aiida.common.exceptions.ModificationNotAllowed Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.ModificationNotAllowed .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ModificationNotAllowed.__init__ .. py:exception:: MultipleEntryPointError() :canonical: aiida.common.exceptions.MultipleEntryPointError Bases: :py:obj:`aiida.common.exceptions.EntryPointError` .. autodoc2-docstring:: aiida.common.exceptions.MultipleEntryPointError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.MultipleEntryPointError.__init__ .. py:exception:: MultipleObjectsError() :canonical: aiida.common.exceptions.MultipleObjectsError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.MultipleObjectsError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.MultipleObjectsError.__init__ .. py:exception:: NotExistent() :canonical: aiida.common.exceptions.NotExistent Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.NotExistent .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.NotExistent.__init__ .. py:exception:: NotExistentAttributeError() :canonical: aiida.common.exceptions.NotExistentAttributeError Bases: :py:obj:`AttributeError`, :py:obj:`aiida.common.exceptions.NotExistent` .. autodoc2-docstring:: aiida.common.exceptions.NotExistentAttributeError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.NotExistentAttributeError.__init__ .. py:exception:: NotExistentKeyError() :canonical: aiida.common.exceptions.NotExistentKeyError Bases: :py:obj:`KeyError`, :py:obj:`aiida.common.exceptions.NotExistent` .. autodoc2-docstring:: aiida.common.exceptions.NotExistentKeyError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.NotExistentKeyError.__init__ .. py:exception:: OutputParsingError() :canonical: aiida.common.exceptions.OutputParsingError Bases: :py:obj:`aiida.common.exceptions.ParsingError` .. autodoc2-docstring:: aiida.common.exceptions.OutputParsingError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.OutputParsingError.__init__ .. py:exception:: ParsingError() :canonical: aiida.common.exceptions.ParsingError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.ParsingError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ParsingError.__init__ .. py:exception:: PluginInternalError() :canonical: aiida.common.exceptions.PluginInternalError Bases: :py:obj:`aiida.common.exceptions.InternalError` .. autodoc2-docstring:: aiida.common.exceptions.PluginInternalError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.PluginInternalError.__init__ .. py:exception:: ProfileConfigurationError() :canonical: aiida.common.exceptions.ProfileConfigurationError Bases: :py:obj:`aiida.common.exceptions.ConfigurationError` .. autodoc2-docstring:: aiida.common.exceptions.ProfileConfigurationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ProfileConfigurationError.__init__ .. py:class:: ProgressReporterAbstract(*, total: int, desc: typing.Optional[str] = None, **kwargs: typing.Any) :canonical: aiida.common.progress_reporter.ProgressReporterAbstract .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.__init__ .. py:property:: total :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.total :type: int .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.total .. py:property:: desc :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.desc :type: typing.Optional[str] .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.desc .. py:property:: n :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.n :type: int .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.n .. py:method:: __enter__() -> aiida.common.progress_reporter.ProgressReporterAbstract :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.__enter__ .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.__enter__ .. py:method:: __exit__(exctype: typing.Optional[typing.Type[BaseException]], excinst: typing.Optional[BaseException], exctb: typing.Optional[types.TracebackType]) :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.__exit__ .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.__exit__ .. py:method:: set_description_str(text: typing.Optional[str] = None, refresh: bool = True) :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.set_description_str .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.set_description_str .. py:method:: update(n: int = 1) :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.update .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.update .. py:method:: reset(total: typing.Optional[int] = None) :canonical: aiida.common.progress_reporter.ProgressReporterAbstract.reset .. autodoc2-docstring:: aiida.common.progress_reporter.ProgressReporterAbstract.reset .. py:exception:: RemoteOperationError() :canonical: aiida.common.exceptions.RemoteOperationError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.RemoteOperationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.RemoteOperationError.__init__ .. py:class:: StashMode(*args, **kwds) :canonical: aiida.common.datastructures.StashMode Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.common.datastructures.StashMode .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.datastructures.StashMode.__init__ .. py:attribute:: COPY :canonical: aiida.common.datastructures.StashMode.COPY :value: 'copy' .. autodoc2-docstring:: aiida.common.datastructures.StashMode.COPY .. py:exception:: StorageMigrationError() :canonical: aiida.common.exceptions.StorageMigrationError Bases: :py:obj:`aiida.common.exceptions.DatabaseMigrationError` .. autodoc2-docstring:: aiida.common.exceptions.StorageMigrationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.StorageMigrationError.__init__ .. py:exception:: StoringNotAllowed() :canonical: aiida.common.exceptions.StoringNotAllowed Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.StoringNotAllowed .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.StoringNotAllowed.__init__ .. py:data:: TQDM_BAR_FORMAT :canonical: aiida.common.progress_reporter.TQDM_BAR_FORMAT :value: '{desc:40.40}{percentage:6.1f}%|{bar}| {n_fmt}/{total_fmt}' .. autodoc2-docstring:: aiida.common.progress_reporter.TQDM_BAR_FORMAT .. py:exception:: TestsNotAllowedError() :canonical: aiida.common.exceptions.TestsNotAllowedError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.TestsNotAllowedError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.TestsNotAllowedError.__init__ .. py:exception:: TransportTaskException() :canonical: aiida.common.exceptions.TransportTaskException Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.TransportTaskException .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.TransportTaskException.__init__ .. py:exception:: UniquenessError() :canonical: aiida.common.exceptions.UniquenessError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.UniquenessError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.UniquenessError.__init__ .. py:exception:: UnsupportedSpeciesError() :canonical: aiida.common.exceptions.UnsupportedSpeciesError Bases: :py:obj:`ValueError` .. autodoc2-docstring:: aiida.common.exceptions.UnsupportedSpeciesError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.UnsupportedSpeciesError.__init__ .. py:exception:: ValidationError() :canonical: aiida.common.exceptions.ValidationError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.common.exceptions.ValidationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.common.exceptions.ValidationError.__init__ .. py:function:: create_callback(progress_reporter: aiida.common.progress_reporter.ProgressReporterAbstract) -> typing.Callable[[str, typing.Any], None] :canonical: aiida.common.progress_reporter.create_callback .. autodoc2-docstring:: aiida.common.progress_reporter.create_callback .. py:function:: get_progress_reporter() -> typing.Type[aiida.common.progress_reporter.ProgressReporterAbstract] :canonical: aiida.common.progress_reporter.get_progress_reporter .. autodoc2-docstring:: aiida.common.progress_reporter.get_progress_reporter .. py:function:: override_log_level(level=logging.CRITICAL) :canonical: aiida.common.log.override_log_level .. autodoc2-docstring:: aiida.common.log.override_log_level .. py:function:: set_progress_bar_tqdm(bar_format: typing.Optional[str] = TQDM_BAR_FORMAT, leave: typing.Optional[bool] = False, **kwargs: typing.Any) :canonical: aiida.common.progress_reporter.set_progress_bar_tqdm .. autodoc2-docstring:: aiida.common.progress_reporter.set_progress_bar_tqdm .. py:function:: set_progress_reporter(reporter: typing.Optional[typing.Type[aiida.common.progress_reporter.ProgressReporterAbstract]] = None, **kwargs: typing.Any) :canonical: aiida.common.progress_reporter.set_progress_reporter .. autodoc2-docstring:: aiida.common.progress_reporter.set_progress_reporter .. py:function:: validate_link_label(link_label) :canonical: aiida.common.links.validate_link_label .. autodoc2-docstring:: aiida.common.links.validate_link_label sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.engine.rst000066400000000000000000002574551453104212700232520ustar00rootroot00000000000000:py:mod:`aiida.engine` ====================== .. py:module:: aiida.engine .. autodoc2-docstring:: aiida.engine :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AiiDAPersister ` - .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister :summary: * - :py:obj:`Awaitable ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.Awaitable :summary: * - :py:obj:`AwaitableAction ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction :summary: * - :py:obj:`AwaitableTarget ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget :summary: * - :py:obj:`BaseRestartWorkChain ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain :summary: * - :py:obj:`CalcJob ` - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob :summary: * - :py:obj:`CalcJobImporter ` - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.importer.CalcJobImporter :summary: * - :py:obj:`CalcJobOutputPort ` - .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort :summary: * - :py:obj:`CalcJobProcessSpec ` - .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec :summary: * - :py:obj:`DaemonClient ` - .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient :summary: * - :py:obj:`ExitCode ` - .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode :summary: * - :py:obj:`ExitCodesNamespace ` - .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace :summary: * - :py:obj:`FunctionProcess ` - .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess :summary: * - :py:obj:`InputPort ` - .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort :summary: * - :py:obj:`InterruptableFuture ` - .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture :summary: * - :py:obj:`JobManager ` - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager :summary: * - :py:obj:`JobsList ` - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList :summary: * - :py:obj:`ObjectLoader ` - .. autodoc2-docstring:: aiida.engine.persistence.ObjectLoader :summary: * - :py:obj:`PortNamespace ` - .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace :summary: * - :py:obj:`Process ` - .. autodoc2-docstring:: aiida.engine.processes.process.Process :summary: * - :py:obj:`ProcessBuilder ` - .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder :summary: * - :py:obj:`ProcessBuilderNamespace ` - .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace :summary: * - :py:obj:`ProcessFuture ` - .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture :summary: * - :py:obj:`ProcessHandlerReport ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport :summary: * - :py:obj:`ProcessSpec ` - .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec :summary: * - :py:obj:`Runner ` - .. autodoc2-docstring:: aiida.engine.runners.Runner :summary: * - :py:obj:`WithNonDb ` - .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb :summary: * - :py:obj:`WithSerialize ` - .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize :summary: * - :py:obj:`WorkChain ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`append_ ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.context.append_ :summary: * - :py:obj:`assign_ ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.context.assign_ :summary: * - :py:obj:`calcfunction ` - .. autodoc2-docstring:: aiida.engine.processes.functions.calcfunction :summary: * - :py:obj:`construct_awaitable ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.construct_awaitable :summary: * - :py:obj:`get_object_loader ` - .. autodoc2-docstring:: aiida.engine.persistence.get_object_loader :summary: * - :py:obj:`interruptable_task ` - .. autodoc2-docstring:: aiida.engine.utils.interruptable_task :summary: * - :py:obj:`is_process_function ` - .. autodoc2-docstring:: aiida.engine.utils.is_process_function :summary: * - :py:obj:`process_handler ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.process_handler :summary: * - :py:obj:`run ` - .. autodoc2-docstring:: aiida.engine.launch.run :summary: * - :py:obj:`run_get_node ` - .. autodoc2-docstring:: aiida.engine.launch.run_get_node :summary: * - :py:obj:`run_get_pk ` - .. autodoc2-docstring:: aiida.engine.launch.run_get_pk :summary: * - :py:obj:`submit ` - .. autodoc2-docstring:: aiida.engine.launch.submit :summary: * - :py:obj:`workfunction ` - .. autodoc2-docstring:: aiida.engine.processes.functions.workfunction :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`OutputPort ` - .. autodoc2-docstring:: aiida.engine.processes.ports.OutputPort :summary: * - :py:obj:`PORT_NAMESPACE_SEPARATOR ` - .. autodoc2-docstring:: aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR :summary: * - :py:obj:`ToContext ` - .. autodoc2-docstring:: aiida.engine.processes.workchains.context.ToContext :summary: External ~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`ProcessState ` - .. autodoc2-docstring:: plumpy.process_states.ProcessState :summary: * - :py:obj:`if_ ` - .. autodoc2-docstring:: plumpy.workchains.if_ :summary: * - :py:obj:`return_ ` - .. autodoc2-docstring:: plumpy.workchains.return_ :summary: * - :py:obj:`while_ ` - .. autodoc2-docstring:: plumpy.workchains.while_ :summary: API ~~~ .. py:class:: AiiDAPersister :canonical: aiida.engine.persistence.AiiDAPersister Bases: :py:obj:`plumpy.persistence.Persister` .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister .. py:method:: save_checkpoint(process: aiida.engine.processes.process.Process, tag: typing.Optional[str] = None) :canonical: aiida.engine.persistence.AiiDAPersister.save_checkpoint .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.save_checkpoint .. py:method:: load_checkpoint(pid: typing.Hashable, tag: typing.Optional[str] = None) -> plumpy.persistence.Bundle :canonical: aiida.engine.persistence.AiiDAPersister.load_checkpoint .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.load_checkpoint .. py:method:: get_checkpoints() :canonical: aiida.engine.persistence.AiiDAPersister.get_checkpoints .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.get_checkpoints .. py:method:: get_process_checkpoints(pid: typing.Hashable) :canonical: aiida.engine.persistence.AiiDAPersister.get_process_checkpoints .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.get_process_checkpoints .. py:method:: delete_checkpoint(pid: typing.Hashable, tag: typing.Optional[str] = None) -> None :canonical: aiida.engine.persistence.AiiDAPersister.delete_checkpoint .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.delete_checkpoint .. py:method:: delete_process_checkpoints(pid: typing.Hashable) :canonical: aiida.engine.persistence.AiiDAPersister.delete_process_checkpoints .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.delete_process_checkpoints .. py:class:: Awaitable :canonical: aiida.engine.processes.workchains.awaitable.Awaitable Bases: :py:obj:`plumpy.utils.AttributesDict` .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.Awaitable .. py:class:: AwaitableAction(*args, **kwds) :canonical: aiida.engine.processes.workchains.awaitable.AwaitableAction Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction.__init__ .. py:attribute:: ASSIGN :canonical: aiida.engine.processes.workchains.awaitable.AwaitableAction.ASSIGN :value: 'assign' .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction.ASSIGN .. py:attribute:: APPEND :canonical: aiida.engine.processes.workchains.awaitable.AwaitableAction.APPEND :value: 'append' .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction.APPEND .. py:class:: AwaitableTarget(*args, **kwds) :canonical: aiida.engine.processes.workchains.awaitable.AwaitableTarget Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget.__init__ .. py:attribute:: PROCESS :canonical: aiida.engine.processes.workchains.awaitable.AwaitableTarget.PROCESS :value: 'process' .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget.PROCESS .. py:class:: BaseRestartWorkChain(*args, **kwargs) :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain Bases: :py:obj:`aiida.engine.processes.workchains.workchain.WorkChain` .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.__init__ .. py:attribute:: _process_class :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._process_class :type: typing.Optional[typing.Type[aiida.engine.processes.Process]] :value: None .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._process_class .. py:attribute:: _considered_handlers_extra :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._considered_handlers_extra :value: 'considered_handlers' .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._considered_handlers_extra .. py:property:: process_class :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.process_class :type: typing.Type[aiida.engine.processes.process.Process] .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.process_class .. py:method:: define(spec: aiida.engine.processes.ProcessSpec) -> None :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.define :classmethod: .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.define .. py:method:: setup() -> None :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.setup .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.setup .. py:method:: should_run_process() -> bool :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.should_run_process .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.should_run_process .. py:method:: run_process() -> aiida.engine.processes.workchains.context.ToContext :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.run_process .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.run_process .. py:method:: inspect_process() -> typing.Optional[aiida.engine.processes.ExitCode] :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.inspect_process .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.inspect_process .. py:method:: get_outputs(node) -> typing.Mapping[str, aiida.orm.Node] :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_outputs .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_outputs .. py:method:: results() -> typing.Optional[aiida.engine.processes.ExitCode] :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.results .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.results .. py:method:: is_process_handler(process_handler_name: typing.Union[str, types.FunctionType]) -> bool :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.is_process_handler :classmethod: .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.is_process_handler .. py:method:: get_process_handlers() -> typing.List[types.FunctionType] :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers :classmethod: .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers .. py:method:: get_process_handlers_by_priority() -> typing.List[typing.Tuple[int, types.FunctionType]] :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers_by_priority .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers_by_priority .. py:method:: on_terminated() :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.on_terminated .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.on_terminated .. py:method:: _wrap_bare_dict_inputs(port_namespace: aiida.engine.processes.PortNamespace, inputs: typing.Dict[str, typing.Any]) -> aiida.common.AttributeDict :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._wrap_bare_dict_inputs .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._wrap_bare_dict_inputs .. py:class:: CalcJob(*args, **kwargs) :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob Bases: :py:obj:`aiida.engine.processes.process.Process` .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.__init__ .. py:attribute:: _node_class :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._node_class :value: None .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._node_class .. py:attribute:: _spec_class :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._spec_class :value: None .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._spec_class .. py:attribute:: link_label_retrieved :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.link_label_retrieved :type: str :value: 'retrieved' .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.link_label_retrieved .. py:method:: define(spec: aiida.engine.processes.process_spec.CalcJobProcessSpec) -> None :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.define :classmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.define .. py:method:: spec_options() :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.spec_options .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.spec_options .. py:method:: get_importer(entry_point_name: str | None = None) -> aiida.engine.processes.calcjobs.importer.CalcJobImporter :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_importer :classmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_importer .. py:property:: options :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.options :type: aiida.common.AttributeDict .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.options .. py:method:: get_state_classes() -> typing.Dict[typing.Hashable, typing.Type[plumpy.process_states.State]] :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_state_classes :classmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_state_classes .. py:property:: node :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.node :type: aiida.orm.CalcJobNode .. py:method:: on_terminated() -> None :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.on_terminated .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.on_terminated .. py:method:: run() -> typing.Union[plumpy.process_states.Stop, int, plumpy.process_states.Wait] :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.run .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.run .. py:method:: prepare_for_submission(folder: aiida.common.folders.Folder) -> aiida.common.datastructures.CalcInfo :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.prepare_for_submission :abstractmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.prepare_for_submission .. py:method:: _setup_metadata(metadata: dict) -> None :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_metadata .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_metadata .. py:method:: _setup_inputs() -> None :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_inputs .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_inputs .. py:method:: _perform_dry_run() :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_dry_run .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_dry_run .. py:method:: _perform_import() :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_import .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_import .. py:method:: parse(retrieved_temporary_folder: typing.Optional[str] = None, existing_exit_code: aiida.engine.processes.exit_code.ExitCode | None = None) -> aiida.engine.processes.exit_code.ExitCode :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse .. py:method:: terminate(exit_code: aiida.engine.processes.exit_code.ExitCode) -> aiida.engine.processes.exit_code.ExitCode :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.terminate :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.terminate .. py:method:: parse_scheduler_output(retrieved: aiida.orm.Node) -> typing.Optional[aiida.engine.processes.exit_code.ExitCode] :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_scheduler_output .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_scheduler_output .. py:method:: parse_retrieved_output(retrieved_temporary_folder: typing.Optional[str] = None) -> typing.Optional[aiida.engine.processes.exit_code.ExitCode] :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_retrieved_output .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_retrieved_output .. py:method:: presubmit(folder: aiida.common.folders.Folder) -> aiida.common.datastructures.CalcInfo :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.presubmit .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.presubmit .. py:class:: CalcJobImporter :canonical: aiida.engine.processes.calcjobs.importer.CalcJobImporter Bases: :py:obj:`abc.ABC` .. autodoc2-docstring:: aiida.engine.processes.calcjobs.importer.CalcJobImporter .. py:method:: parse_remote_data(remote_data: aiida.orm.RemoteData, **kwargs) -> typing.Dict[str, typing.Union[aiida.orm.Node, typing.Dict]] :canonical: aiida.engine.processes.calcjobs.importer.CalcJobImporter.parse_remote_data :abstractmethod: :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.importer.CalcJobImporter.parse_remote_data .. py:class:: CalcJobOutputPort(*args, **kwargs) :canonical: aiida.engine.processes.ports.CalcJobOutputPort Bases: :py:obj:`plumpy.ports.OutputPort` .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort.__init__ .. py:property:: pass_to_parser :canonical: aiida.engine.processes.ports.CalcJobOutputPort.pass_to_parser :type: bool .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort.pass_to_parser .. py:class:: CalcJobProcessSpec() :canonical: aiida.engine.processes.process_spec.CalcJobProcessSpec Bases: :py:obj:`aiida.engine.processes.process_spec.ProcessSpec` .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec.__init__ .. py:attribute:: OUTPUT_PORT_TYPE :canonical: aiida.engine.processes.process_spec.CalcJobProcessSpec.OUTPUT_PORT_TYPE :value: None .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec.OUTPUT_PORT_TYPE .. py:property:: default_output_node :canonical: aiida.engine.processes.process_spec.CalcJobProcessSpec.default_output_node :type: typing.Optional[str] .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec.default_output_node .. py:class:: DaemonClient(profile: aiida.manage.configuration.profile.Profile) :canonical: aiida.engine.daemon.client.DaemonClient .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.__init__ .. py:attribute:: DAEMON_ERROR_NOT_RUNNING :canonical: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_NOT_RUNNING :value: 'daemon-error-not-running' .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_NOT_RUNNING .. py:attribute:: DAEMON_ERROR_TIMEOUT :canonical: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_TIMEOUT :value: 'daemon-error-timeout' .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_TIMEOUT .. py:attribute:: _DAEMON_NAME :canonical: aiida.engine.daemon.client.DaemonClient._DAEMON_NAME :value: 'aiida-{name}' .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._DAEMON_NAME .. py:attribute:: _ENDPOINT_PROTOCOL :canonical: aiida.engine.daemon.client.DaemonClient._ENDPOINT_PROTOCOL :value: None .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._ENDPOINT_PROTOCOL .. py:property:: profile :canonical: aiida.engine.daemon.client.DaemonClient.profile :type: aiida.manage.configuration.profile.Profile .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.profile .. py:property:: daemon_name :canonical: aiida.engine.daemon.client.DaemonClient.daemon_name :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.daemon_name .. py:property:: _verdi_bin :canonical: aiida.engine.daemon.client.DaemonClient._verdi_bin :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._verdi_bin .. py:method:: cmd_start_daemon(number_workers: int = 1, foreground: bool = False) -> list[str] :canonical: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon .. py:property:: cmd_start_daemon_worker :canonical: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon_worker :type: list[str] .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon_worker .. py:property:: loglevel :canonical: aiida.engine.daemon.client.DaemonClient.loglevel :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.loglevel .. py:property:: virtualenv :canonical: aiida.engine.daemon.client.DaemonClient.virtualenv :type: str | None .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.virtualenv .. py:property:: circus_log_file :canonical: aiida.engine.daemon.client.DaemonClient.circus_log_file :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_log_file .. py:property:: circus_pid_file :canonical: aiida.engine.daemon.client.DaemonClient.circus_pid_file :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_pid_file .. py:property:: circus_port_file :canonical: aiida.engine.daemon.client.DaemonClient.circus_port_file :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_port_file .. py:property:: circus_socket_file :canonical: aiida.engine.daemon.client.DaemonClient.circus_socket_file :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_socket_file .. py:property:: circus_socket_endpoints :canonical: aiida.engine.daemon.client.DaemonClient.circus_socket_endpoints :type: dict[str, str] .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_socket_endpoints .. py:property:: daemon_log_file :canonical: aiida.engine.daemon.client.DaemonClient.daemon_log_file :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.daemon_log_file .. py:property:: daemon_pid_file :canonical: aiida.engine.daemon.client.DaemonClient.daemon_pid_file :type: str .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.daemon_pid_file .. py:method:: get_circus_port() -> int :canonical: aiida.engine.daemon.client.DaemonClient.get_circus_port .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_circus_port .. py:method:: get_env() -> dict[str, str] :canonical: aiida.engine.daemon.client.DaemonClient.get_env :staticmethod: .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_env .. py:method:: get_circus_socket_directory() -> str :canonical: aiida.engine.daemon.client.DaemonClient.get_circus_socket_directory .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_circus_socket_directory .. py:method:: get_daemon_pid() -> int | None :canonical: aiida.engine.daemon.client.DaemonClient.get_daemon_pid .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_daemon_pid .. py:property:: is_daemon_running :canonical: aiida.engine.daemon.client.DaemonClient.is_daemon_running :type: bool .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.is_daemon_running .. py:method:: delete_circus_socket_directory() -> None :canonical: aiida.engine.daemon.client.DaemonClient.delete_circus_socket_directory .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.delete_circus_socket_directory .. py:method:: get_available_port() :canonical: aiida.engine.daemon.client.DaemonClient.get_available_port :classmethod: .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_available_port .. py:method:: get_controller_endpoint() :canonical: aiida.engine.daemon.client.DaemonClient.get_controller_endpoint .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_controller_endpoint .. py:method:: get_pubsub_endpoint() :canonical: aiida.engine.daemon.client.DaemonClient.get_pubsub_endpoint .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_pubsub_endpoint .. py:method:: get_stats_endpoint() :canonical: aiida.engine.daemon.client.DaemonClient.get_stats_endpoint .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_stats_endpoint .. py:method:: get_ipc_endpoint(endpoint) :canonical: aiida.engine.daemon.client.DaemonClient.get_ipc_endpoint .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_ipc_endpoint .. py:method:: get_tcp_endpoint(port=None) :canonical: aiida.engine.daemon.client.DaemonClient.get_tcp_endpoint .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_tcp_endpoint .. py:method:: get_client() -> circus.client.CircusClient :canonical: aiida.engine.daemon.client.DaemonClient.get_client .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_client .. py:method:: call_client(command: aiida.engine.daemon.client.JsonDictType) -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.call_client .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.call_client .. py:method:: get_status() -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.get_status .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_status .. py:method:: get_numprocesses() -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.get_numprocesses .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_numprocesses .. py:method:: get_worker_info() -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.get_worker_info .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_worker_info .. py:method:: get_daemon_info() -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.get_daemon_info .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_daemon_info .. py:method:: increase_workers(number: int) -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.increase_workers .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.increase_workers .. py:method:: decrease_workers(number: int) -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.decrease_workers .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.decrease_workers .. py:method:: stop_daemon(wait: bool = True, timeout: int = 5) -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.stop_daemon .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.stop_daemon .. py:method:: restart_daemon(wait: bool) -> aiida.engine.daemon.client.JsonDictType :canonical: aiida.engine.daemon.client.DaemonClient.restart_daemon .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.restart_daemon .. py:method:: start_daemon(number_workers: int = 1, foreground: bool = False, timeout: int = 5) -> None :canonical: aiida.engine.daemon.client.DaemonClient.start_daemon .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.start_daemon .. py:method:: _await_condition(condition: typing.Callable, exception: Exception, timeout: int = 5, interval: float = 0.1) :canonical: aiida.engine.daemon.client.DaemonClient._await_condition :staticmethod: .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._await_condition .. py:method:: _start_daemon(number_workers: int = 1, foreground: bool = False) -> None :canonical: aiida.engine.daemon.client.DaemonClient._start_daemon .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._start_daemon .. py:class:: ExitCode :canonical: aiida.engine.processes.exit_code.ExitCode Bases: :py:obj:`typing.NamedTuple` .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode .. py:attribute:: status :canonical: aiida.engine.processes.exit_code.ExitCode.status :type: int :value: 0 .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.status .. py:attribute:: message :canonical: aiida.engine.processes.exit_code.ExitCode.message :type: typing.Optional[str] :value: None .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.message .. py:attribute:: invalidates_cache :canonical: aiida.engine.processes.exit_code.ExitCode.invalidates_cache :type: bool :value: False .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.invalidates_cache .. py:method:: format(**kwargs: str) -> aiida.engine.processes.exit_code.ExitCode :canonical: aiida.engine.processes.exit_code.ExitCode.format .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.format .. py:class:: ExitCodesNamespace(dictionary=None) :canonical: aiida.engine.processes.exit_code.ExitCodesNamespace Bases: :py:obj:`aiida.common.extendeddicts.AttributeDict` .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace.__init__ .. py:method:: __call__(identifier: typing.Union[int, str]) -> aiida.engine.processes.exit_code.ExitCode :canonical: aiida.engine.processes.exit_code.ExitCodesNamespace.__call__ .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace.__call__ .. py:class:: FunctionProcess(*args, **kwargs) :canonical: aiida.engine.processes.functions.FunctionProcess Bases: :py:obj:`aiida.engine.processes.process.Process` .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.__init__ .. py:attribute:: _func_args :canonical: aiida.engine.processes.functions.FunctionProcess._func_args :type: typing.Sequence[str] :value: () .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess._func_args .. py:method:: _func(*_args, **_kwargs) -> dict :canonical: aiida.engine.processes.functions.FunctionProcess._func :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess._func .. py:method:: build(func: typing.Callable[..., typing.Any], node_class: typing.Type[aiida.orm.ProcessNode]) -> typing.Type[aiida.engine.processes.functions.FunctionProcess] :canonical: aiida.engine.processes.functions.FunctionProcess.build :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.build .. py:method:: validate_inputs(*args: typing.Any, **kwargs: typing.Any) -> None :canonical: aiida.engine.processes.functions.FunctionProcess.validate_inputs :classmethod: .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.validate_inputs .. py:method:: create_inputs(*args: typing.Any, **kwargs: typing.Any) -> typing.Dict[str, typing.Any] :canonical: aiida.engine.processes.functions.FunctionProcess.create_inputs :classmethod: .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.create_inputs .. py:method:: args_to_dict(*args: typing.Any) -> typing.Dict[str, typing.Any] :canonical: aiida.engine.processes.functions.FunctionProcess.args_to_dict :classmethod: .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.args_to_dict .. py:method:: get_or_create_db_record() -> aiida.orm.ProcessNode :canonical: aiida.engine.processes.functions.FunctionProcess.get_or_create_db_record :classmethod: .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.get_or_create_db_record .. py:property:: process_class :canonical: aiida.engine.processes.functions.FunctionProcess.process_class :type: typing.Callable[..., typing.Any] .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.process_class .. py:method:: execute() -> typing.Optional[typing.Dict[str, typing.Any]] :canonical: aiida.engine.processes.functions.FunctionProcess.execute .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.execute .. py:method:: _setup_db_record() -> None :canonical: aiida.engine.processes.functions.FunctionProcess._setup_db_record .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess._setup_db_record .. py:method:: run() -> typing.Optional[aiida.engine.processes.exit_code.ExitCode] :canonical: aiida.engine.processes.functions.FunctionProcess.run .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.run .. py:class:: InputPort(*args, **kwargs) :canonical: aiida.engine.processes.ports.InputPort Bases: :py:obj:`aiida.engine.processes.ports.WithSerialize`, :py:obj:`aiida.engine.processes.ports.WithNonDb`, :py:obj:`plumpy.ports.InputPort` .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort.__init__ .. py:method:: get_description() -> typing.Dict[str, str] :canonical: aiida.engine.processes.ports.InputPort.get_description .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort.get_description .. py:class:: InterruptableFuture(*, loop=None) :canonical: aiida.engine.utils.InterruptableFuture Bases: :py:obj:`asyncio.Future` .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture.__init__ .. py:method:: interrupt(reason: Exception) -> None :canonical: aiida.engine.utils.InterruptableFuture.interrupt .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture.interrupt .. py:method:: with_interrupt(coro: typing.Awaitable[typing.Any]) -> typing.Any :canonical: aiida.engine.utils.InterruptableFuture.with_interrupt :async: .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture.with_interrupt .. py:class:: JobManager(transport_queue: aiida.engine.transports.TransportQueue) :canonical: aiida.engine.processes.calcjobs.manager.JobManager .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager.__init__ .. py:method:: get_jobs_list(authinfo: aiida.orm.AuthInfo) -> aiida.engine.processes.calcjobs.manager.JobsList :canonical: aiida.engine.processes.calcjobs.manager.JobManager.get_jobs_list .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager.get_jobs_list .. py:method:: request_job_info_update(authinfo: aiida.orm.AuthInfo, job_id: typing.Hashable) -> typing.Iterator[asyncio.Future[JobInfo]] :canonical: aiida.engine.processes.calcjobs.manager.JobManager.request_job_info_update .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager.request_job_info_update .. py:class:: JobsList(authinfo: aiida.orm.AuthInfo, transport_queue: aiida.engine.transports.TransportQueue, last_updated: typing.Optional[float] = None) :canonical: aiida.engine.processes.calcjobs.manager.JobsList .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.__init__ .. py:property:: logger :canonical: aiida.engine.processes.calcjobs.manager.JobsList.logger :type: logging.Logger .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.logger .. py:method:: get_minimum_update_interval() -> float :canonical: aiida.engine.processes.calcjobs.manager.JobsList.get_minimum_update_interval .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.get_minimum_update_interval .. py:property:: last_updated :canonical: aiida.engine.processes.calcjobs.manager.JobsList.last_updated :type: typing.Optional[float] .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.last_updated .. py:method:: _get_jobs_from_scheduler() -> typing.Dict[typing.Hashable, aiida.schedulers.datastructures.JobInfo] :canonical: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_from_scheduler :async: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_from_scheduler .. py:method:: _update_job_info() -> None :canonical: aiida.engine.processes.calcjobs.manager.JobsList._update_job_info :async: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._update_job_info .. py:method:: request_job_info_update(job_id: typing.Hashable) -> typing.Iterator[asyncio.Future[JobInfo]] :canonical: aiida.engine.processes.calcjobs.manager.JobsList.request_job_info_update .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.request_job_info_update .. py:method:: _ensure_updating() -> None :canonical: aiida.engine.processes.calcjobs.manager.JobsList._ensure_updating .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._ensure_updating .. py:method:: _has_job_state_changed(old: typing.Optional[aiida.schedulers.datastructures.JobInfo], new: typing.Optional[aiida.schedulers.datastructures.JobInfo]) -> bool :canonical: aiida.engine.processes.calcjobs.manager.JobsList._has_job_state_changed :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._has_job_state_changed .. py:method:: _get_next_update_delay() -> float :canonical: aiida.engine.processes.calcjobs.manager.JobsList._get_next_update_delay .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._get_next_update_delay .. py:method:: _update_requests_outstanding() -> bool :canonical: aiida.engine.processes.calcjobs.manager.JobsList._update_requests_outstanding .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._update_requests_outstanding .. py:method:: _get_jobs_with_scheduler() -> typing.List[str] :canonical: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_with_scheduler .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_with_scheduler .. py:class:: ObjectLoader :canonical: aiida.engine.persistence.ObjectLoader Bases: :py:obj:`plumpy.loaders.DefaultObjectLoader` .. autodoc2-docstring:: aiida.engine.persistence.ObjectLoader .. py:method:: load_object(identifier: str) -> typing.Any :canonical: aiida.engine.persistence.ObjectLoader.load_object .. autodoc2-docstring:: aiida.engine.persistence.ObjectLoader.load_object .. py:data:: OutputPort :canonical: aiida.engine.processes.ports.OutputPort :value: None .. autodoc2-docstring:: aiida.engine.processes.ports.OutputPort .. py:data:: PORT_NAMESPACE_SEPARATOR :canonical: aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR :value: '__' .. autodoc2-docstring:: aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR .. py:exception:: PastException() :canonical: aiida.engine.exceptions.PastException Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.engine.exceptions.PastException .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.exceptions.PastException.__init__ .. py:class:: PortNamespace(*args, **kwargs) :canonical: aiida.engine.processes.ports.PortNamespace Bases: :py:obj:`aiida.engine.processes.ports.WithNonDb`, :py:obj:`plumpy.ports.PortNamespace` .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.__init__ .. py:method:: __setitem__(key: str, port: plumpy.ports.Port) -> None :canonical: aiida.engine.processes.ports.PortNamespace.__setitem__ .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.__setitem__ .. py:method:: validate_port_name(port_name: str) -> None :canonical: aiida.engine.processes.ports.PortNamespace.validate_port_name :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.validate_port_name .. py:method:: serialize(mapping: typing.Optional[typing.Dict[str, typing.Any]], breadcrumbs: typing.Sequence[str] = ()) -> typing.Optional[typing.Dict[str, typing.Any]] :canonical: aiida.engine.processes.ports.PortNamespace.serialize .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.serialize .. py:class:: Process(inputs: typing.Optional[typing.Dict[str, typing.Any]] = None, logger: typing.Optional[logging.Logger] = None, runner: typing.Optional[aiida.engine.runners.Runner] = None, parent_pid: typing.Optional[int] = None, enable_persistence: bool = True) :canonical: aiida.engine.processes.process.Process Bases: :py:obj:`plumpy.processes.Process` .. autodoc2-docstring:: aiida.engine.processes.process.Process .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.process.Process.__init__ .. py:attribute:: _node_class :canonical: aiida.engine.processes.process.Process._node_class :value: None .. autodoc2-docstring:: aiida.engine.processes.process.Process._node_class .. py:attribute:: _spec_class :canonical: aiida.engine.processes.process.Process._spec_class :value: None .. autodoc2-docstring:: aiida.engine.processes.process.Process._spec_class .. py:attribute:: SINGLE_OUTPUT_LINKNAME :canonical: aiida.engine.processes.process.Process.SINGLE_OUTPUT_LINKNAME :type: str :value: 'result' .. autodoc2-docstring:: aiida.engine.processes.process.Process.SINGLE_OUTPUT_LINKNAME .. py:class:: SaveKeys(*args, **kwds) :canonical: aiida.engine.processes.process.Process.SaveKeys Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.engine.processes.process.Process.SaveKeys .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.process.Process.SaveKeys.__init__ .. py:attribute:: CALC_ID :canonical: aiida.engine.processes.process.Process.SaveKeys.CALC_ID :type: str :value: 'calc_id' .. autodoc2-docstring:: aiida.engine.processes.process.Process.SaveKeys.CALC_ID .. py:method:: spec() -> aiida.engine.processes.process_spec.ProcessSpec :canonical: aiida.engine.processes.process.Process.spec :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.spec .. py:method:: define(spec: aiida.engine.processes.process_spec.ProcessSpec) -> None :canonical: aiida.engine.processes.process.Process.define :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.define .. py:method:: get_builder() -> aiida.engine.processes.builder.ProcessBuilder :canonical: aiida.engine.processes.process.Process.get_builder :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_builder .. py:method:: get_or_create_db_record() -> aiida.orm.ProcessNode :canonical: aiida.engine.processes.process.Process.get_or_create_db_record :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_or_create_db_record .. py:method:: init() -> None :canonical: aiida.engine.processes.process.Process.init .. autodoc2-docstring:: aiida.engine.processes.process.Process.init .. py:method:: get_exit_statuses(exit_code_labels: typing.Iterable[str]) -> typing.List[int] :canonical: aiida.engine.processes.process.Process.get_exit_statuses :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_exit_statuses .. py:method:: exit_codes() -> aiida.engine.processes.exit_code.ExitCodesNamespace :canonical: aiida.engine.processes.process.Process.exit_codes .. autodoc2-docstring:: aiida.engine.processes.process.Process.exit_codes .. py:method:: spec_metadata() -> aiida.engine.processes.ports.PortNamespace :canonical: aiida.engine.processes.process.Process.spec_metadata .. autodoc2-docstring:: aiida.engine.processes.process.Process.spec_metadata .. py:property:: node :canonical: aiida.engine.processes.process.Process.node :type: aiida.orm.ProcessNode .. autodoc2-docstring:: aiida.engine.processes.process.Process.node .. py:property:: uuid :canonical: aiida.engine.processes.process.Process.uuid :type: str .. autodoc2-docstring:: aiida.engine.processes.process.Process.uuid .. py:property:: metadata :canonical: aiida.engine.processes.process.Process.metadata :type: aiida.common.extendeddicts.AttributeDict .. autodoc2-docstring:: aiida.engine.processes.process.Process.metadata .. py:method:: _save_checkpoint() -> None :canonical: aiida.engine.processes.process.Process._save_checkpoint .. autodoc2-docstring:: aiida.engine.processes.process.Process._save_checkpoint .. py:method:: save_instance_state(out_state: typing.MutableMapping[str, typing.Any], save_context: typing.Optional[plumpy.persistence.LoadSaveContext]) -> None :canonical: aiida.engine.processes.process.Process.save_instance_state .. autodoc2-docstring:: aiida.engine.processes.process.Process.save_instance_state .. py:method:: get_provenance_inputs_iterator() -> typing.Iterator[typing.Tuple[str, typing.Union[aiida.engine.processes.ports.InputPort, aiida.engine.processes.ports.PortNamespace]]] :canonical: aiida.engine.processes.process.Process.get_provenance_inputs_iterator .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_provenance_inputs_iterator .. py:method:: load_instance_state(saved_state: typing.MutableMapping[str, typing.Any], load_context: plumpy.persistence.LoadSaveContext) -> None :canonical: aiida.engine.processes.process.Process.load_instance_state .. autodoc2-docstring:: aiida.engine.processes.process.Process.load_instance_state .. py:method:: kill(msg: typing.Union[str, None] = None) -> typing.Union[bool, plumpy.futures.Future] :canonical: aiida.engine.processes.process.Process.kill .. autodoc2-docstring:: aiida.engine.processes.process.Process.kill .. py:method:: out(output_port: str, value: typing.Any = None) -> None :canonical: aiida.engine.processes.process.Process.out .. autodoc2-docstring:: aiida.engine.processes.process.Process.out .. py:method:: out_many(out_dict: typing.Dict[str, typing.Any]) -> None :canonical: aiida.engine.processes.process.Process.out_many .. autodoc2-docstring:: aiida.engine.processes.process.Process.out_many .. py:method:: on_create() -> None :canonical: aiida.engine.processes.process.Process.on_create .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_create .. py:method:: on_entered(from_state: typing.Optional[plumpy.process_states.State]) -> None :canonical: aiida.engine.processes.process.Process.on_entered .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_entered .. py:method:: on_terminated() -> None :canonical: aiida.engine.processes.process.Process.on_terminated .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_terminated .. py:method:: on_except(exc_info: typing.Tuple[typing.Any, Exception, types.TracebackType]) -> None :canonical: aiida.engine.processes.process.Process.on_except .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_except .. py:method:: on_finish(result: typing.Union[int, aiida.engine.processes.exit_code.ExitCode], successful: bool) -> None :canonical: aiida.engine.processes.process.Process.on_finish .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_finish .. py:method:: on_paused(msg: typing.Optional[str] = None) -> None :canonical: aiida.engine.processes.process.Process.on_paused .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_paused .. py:method:: on_playing() -> None :canonical: aiida.engine.processes.process.Process.on_playing .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_playing .. py:method:: on_output_emitting(output_port: str, value: typing.Any) -> None :canonical: aiida.engine.processes.process.Process.on_output_emitting .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_output_emitting .. py:method:: set_status(status: typing.Optional[str]) -> None :canonical: aiida.engine.processes.process.Process.set_status .. autodoc2-docstring:: aiida.engine.processes.process.Process.set_status .. py:method:: submit(process: typing.Type[aiida.engine.processes.process.Process], **kwargs) -> aiida.orm.ProcessNode :canonical: aiida.engine.processes.process.Process.submit .. autodoc2-docstring:: aiida.engine.processes.process.Process.submit .. py:property:: runner :canonical: aiida.engine.processes.process.Process.runner :type: aiida.engine.runners.Runner .. autodoc2-docstring:: aiida.engine.processes.process.Process.runner .. py:method:: get_parent_calc() -> typing.Optional[aiida.orm.ProcessNode] :canonical: aiida.engine.processes.process.Process.get_parent_calc .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_parent_calc .. py:method:: build_process_type() -> str :canonical: aiida.engine.processes.process.Process.build_process_type :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.build_process_type .. py:method:: report(msg: str, *args, **kwargs) -> None :canonical: aiida.engine.processes.process.Process.report .. autodoc2-docstring:: aiida.engine.processes.process.Process.report .. py:method:: _create_and_setup_db_record() -> typing.Union[int, uuid.UUID] :canonical: aiida.engine.processes.process.Process._create_and_setup_db_record .. autodoc2-docstring:: aiida.engine.processes.process.Process._create_and_setup_db_record .. py:method:: encode_input_args(inputs: typing.Dict[str, typing.Any]) -> str :canonical: aiida.engine.processes.process.Process.encode_input_args .. autodoc2-docstring:: aiida.engine.processes.process.Process.encode_input_args .. py:method:: decode_input_args(encoded: str) -> typing.Dict[str, typing.Any] :canonical: aiida.engine.processes.process.Process.decode_input_args .. autodoc2-docstring:: aiida.engine.processes.process.Process.decode_input_args .. py:method:: update_outputs() -> None :canonical: aiida.engine.processes.process.Process.update_outputs .. autodoc2-docstring:: aiida.engine.processes.process.Process.update_outputs .. py:method:: _build_process_label() -> str :canonical: aiida.engine.processes.process.Process._build_process_label .. autodoc2-docstring:: aiida.engine.processes.process.Process._build_process_label .. py:method:: _setup_db_record() -> None :canonical: aiida.engine.processes.process.Process._setup_db_record .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_db_record .. py:method:: _setup_version_info() -> None :canonical: aiida.engine.processes.process.Process._setup_version_info .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_version_info .. py:method:: _setup_metadata(metadata: dict) -> None :canonical: aiida.engine.processes.process.Process._setup_metadata .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_metadata .. py:method:: _setup_inputs() -> None :canonical: aiida.engine.processes.process.Process._setup_inputs .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_inputs .. py:method:: _flat_inputs() -> typing.Dict[str, typing.Any] :canonical: aiida.engine.processes.process.Process._flat_inputs .. autodoc2-docstring:: aiida.engine.processes.process.Process._flat_inputs .. py:method:: _flat_outputs() -> typing.Dict[str, typing.Any] :canonical: aiida.engine.processes.process.Process._flat_outputs .. autodoc2-docstring:: aiida.engine.processes.process.Process._flat_outputs .. py:method:: _flatten_inputs(port: typing.Union[None, aiida.engine.processes.ports.InputPort, aiida.engine.processes.ports.PortNamespace], port_value: typing.Any, parent_name: str = '', separator: str = PORT_NAMESPACE_SEPARATOR) -> typing.List[typing.Tuple[str, typing.Any]] :canonical: aiida.engine.processes.process.Process._flatten_inputs .. autodoc2-docstring:: aiida.engine.processes.process.Process._flatten_inputs .. py:method:: _flatten_outputs(port: typing.Union[None, aiida.engine.processes.ports.OutputPort, aiida.engine.processes.ports.PortNamespace], port_value: typing.Any, parent_name: str = '', separator: str = PORT_NAMESPACE_SEPARATOR) -> typing.List[typing.Tuple[str, typing.Any]] :canonical: aiida.engine.processes.process.Process._flatten_outputs .. autodoc2-docstring:: aiida.engine.processes.process.Process._flatten_outputs .. py:method:: exposed_inputs(process_class: typing.Type[aiida.engine.processes.process.Process], namespace: typing.Optional[str] = None, agglomerate: bool = True) -> aiida.common.extendeddicts.AttributeDict :canonical: aiida.engine.processes.process.Process.exposed_inputs .. autodoc2-docstring:: aiida.engine.processes.process.Process.exposed_inputs .. py:method:: exposed_outputs(node: aiida.orm.ProcessNode, process_class: typing.Type[aiida.engine.processes.process.Process], namespace: typing.Optional[str] = None, agglomerate: bool = True) -> aiida.common.extendeddicts.AttributeDict :canonical: aiida.engine.processes.process.Process.exposed_outputs .. autodoc2-docstring:: aiida.engine.processes.process.Process.exposed_outputs .. py:method:: _get_namespace_list(namespace: typing.Optional[str] = None, agglomerate: bool = True) -> typing.List[typing.Optional[str]] :canonical: aiida.engine.processes.process.Process._get_namespace_list :staticmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process._get_namespace_list .. py:method:: is_valid_cache(node: aiida.orm.ProcessNode) -> bool :canonical: aiida.engine.processes.process.Process.is_valid_cache :classmethod: .. autodoc2-docstring:: aiida.engine.processes.process.Process.is_valid_cache .. py:class:: ProcessBuilder(process_class: typing.Type[aiida.engine.processes.process.Process]) :canonical: aiida.engine.processes.builder.ProcessBuilder Bases: :py:obj:`aiida.engine.processes.builder.ProcessBuilderNamespace` .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder.__init__ .. py:property:: process_class :canonical: aiida.engine.processes.builder.ProcessBuilder.process_class :type: typing.Type[aiida.engine.processes.process.Process] .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder.process_class .. py:method:: _repr_pretty_(p, _) -> str :canonical: aiida.engine.processes.builder.ProcessBuilder._repr_pretty_ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder._repr_pretty_ .. py:class:: ProcessBuilderNamespace(port_namespace: aiida.engine.processes.ports.PortNamespace) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace Bases: :py:obj:`collections.abc.MutableMapping` .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__init__ .. py:method:: __setattr__(attr: str, value: typing.Any) -> None :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__setattr__ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__setattr__ .. py:method:: __repr__() :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__repr__ .. py:method:: __dir__() :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__dir__ .. py:method:: __iter__() :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__iter__ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__iter__ .. py:method:: __len__() :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__len__ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__len__ .. py:method:: __getitem__(item) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__getitem__ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__getitem__ .. py:method:: __setitem__(item, value) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__setitem__ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__setitem__ .. py:method:: __delitem__(item) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__delitem__ .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__delitem__ .. py:method:: __delattr__(item) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__delattr__ .. py:method:: _recursive_merge(dictionary, key, value) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._recursive_merge .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._recursive_merge .. py:method:: _merge(*args, **kwds) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._merge .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._merge .. py:method:: _update(*args, **kwds) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._update .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._update .. py:method:: _inputs(prune: bool = False) -> dict :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._inputs .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._inputs .. py:method:: _prune(value) :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._prune .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._prune .. py:class:: ProcessFuture(pk: int, loop: typing.Optional[asyncio.AbstractEventLoop] = None, poll_interval: typing.Union[None, int, float] = None, communicator: typing.Optional[kiwipy.Communicator] = None) :canonical: aiida.engine.processes.futures.ProcessFuture Bases: :py:obj:`asyncio.Future` .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture.__init__ .. py:attribute:: _filtered :canonical: aiida.engine.processes.futures.ProcessFuture._filtered :value: None .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture._filtered .. py:method:: cleanup() -> None :canonical: aiida.engine.processes.futures.ProcessFuture.cleanup .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture.cleanup .. py:method:: _poll_process(node: aiida.orm.Node, poll_interval: typing.Union[int, float]) -> None :canonical: aiida.engine.processes.futures.ProcessFuture._poll_process :async: .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture._poll_process .. py:class:: ProcessHandlerReport :canonical: aiida.engine.processes.workchains.utils.ProcessHandlerReport Bases: :py:obj:`typing.NamedTuple` .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport .. py:attribute:: do_break :canonical: aiida.engine.processes.workchains.utils.ProcessHandlerReport.do_break :type: bool :value: False .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport.do_break .. py:attribute:: exit_code :canonical: aiida.engine.processes.workchains.utils.ProcessHandlerReport.exit_code :type: aiida.engine.processes.exit_code.ExitCode :value: None .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport.exit_code .. py:class:: ProcessSpec() :canonical: aiida.engine.processes.process_spec.ProcessSpec Bases: :py:obj:`plumpy.process_spec.ProcessSpec` .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.__init__ .. py:attribute:: METADATA_KEY :canonical: aiida.engine.processes.process_spec.ProcessSpec.METADATA_KEY :type: str :value: 'metadata' .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.METADATA_KEY .. py:attribute:: METADATA_OPTIONS_KEY :canonical: aiida.engine.processes.process_spec.ProcessSpec.METADATA_OPTIONS_KEY :type: str :value: 'options' .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.METADATA_OPTIONS_KEY .. py:attribute:: INPUT_PORT_TYPE :canonical: aiida.engine.processes.process_spec.ProcessSpec.INPUT_PORT_TYPE :value: None .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.INPUT_PORT_TYPE .. py:attribute:: PORT_NAMESPACE_TYPE :canonical: aiida.engine.processes.process_spec.ProcessSpec.PORT_NAMESPACE_TYPE :value: None .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.PORT_NAMESPACE_TYPE .. py:property:: metadata_key :canonical: aiida.engine.processes.process_spec.ProcessSpec.metadata_key :type: str .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.metadata_key .. py:property:: options_key :canonical: aiida.engine.processes.process_spec.ProcessSpec.options_key :type: str .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.options_key .. py:property:: exit_codes :canonical: aiida.engine.processes.process_spec.ProcessSpec.exit_codes :type: aiida.engine.processes.exit_code.ExitCodesNamespace .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.exit_codes .. py:method:: exit_code(status: int, label: str, message: str, invalidates_cache: bool = False) -> None :canonical: aiida.engine.processes.process_spec.ProcessSpec.exit_code .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.exit_code .. py:property:: ports :canonical: aiida.engine.processes.process_spec.ProcessSpec.ports :type: aiida.engine.processes.ports.PortNamespace .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.ports .. py:property:: inputs :canonical: aiida.engine.processes.process_spec.ProcessSpec.inputs :type: aiida.engine.processes.ports.PortNamespace .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.inputs .. py:property:: outputs :canonical: aiida.engine.processes.process_spec.ProcessSpec.outputs :type: aiida.engine.processes.ports.PortNamespace .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.outputs .. py:class:: Runner(poll_interval: typing.Union[int, float] = 0, loop: typing.Optional[asyncio.AbstractEventLoop] = None, communicator: typing.Optional[kiwipy.Communicator] = None, rmq_submit: bool = False, persister: typing.Optional[plumpy.persistence.Persister] = None) :canonical: aiida.engine.runners.Runner .. autodoc2-docstring:: aiida.engine.runners.Runner .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.runners.Runner.__init__ .. py:attribute:: _persister :canonical: aiida.engine.runners.Runner._persister :type: typing.Optional[plumpy.persistence.Persister] :value: None .. autodoc2-docstring:: aiida.engine.runners.Runner._persister .. py:attribute:: _communicator :canonical: aiida.engine.runners.Runner._communicator :type: typing.Optional[kiwipy.Communicator] :value: None .. autodoc2-docstring:: aiida.engine.runners.Runner._communicator .. py:attribute:: _controller :canonical: aiida.engine.runners.Runner._controller :type: typing.Optional[plumpy.process_comms.RemoteProcessThreadController] :value: None .. autodoc2-docstring:: aiida.engine.runners.Runner._controller .. py:attribute:: _closed :canonical: aiida.engine.runners.Runner._closed :type: bool :value: False .. autodoc2-docstring:: aiida.engine.runners.Runner._closed .. py:method:: __enter__() -> aiida.engine.runners.Runner :canonical: aiida.engine.runners.Runner.__enter__ .. autodoc2-docstring:: aiida.engine.runners.Runner.__enter__ .. py:method:: __exit__(exc_type, exc_val, exc_tb) :canonical: aiida.engine.runners.Runner.__exit__ .. autodoc2-docstring:: aiida.engine.runners.Runner.__exit__ .. py:property:: loop :canonical: aiida.engine.runners.Runner.loop :type: asyncio.AbstractEventLoop .. autodoc2-docstring:: aiida.engine.runners.Runner.loop .. py:property:: transport :canonical: aiida.engine.runners.Runner.transport :type: aiida.engine.transports.TransportQueue .. autodoc2-docstring:: aiida.engine.runners.Runner.transport .. py:property:: persister :canonical: aiida.engine.runners.Runner.persister :type: typing.Optional[plumpy.persistence.Persister] .. autodoc2-docstring:: aiida.engine.runners.Runner.persister .. py:property:: communicator :canonical: aiida.engine.runners.Runner.communicator :type: typing.Optional[kiwipy.Communicator] .. autodoc2-docstring:: aiida.engine.runners.Runner.communicator .. py:property:: plugin_version_provider :canonical: aiida.engine.runners.Runner.plugin_version_provider :type: aiida.plugins.utils.PluginVersionProvider .. autodoc2-docstring:: aiida.engine.runners.Runner.plugin_version_provider .. py:property:: job_manager :canonical: aiida.engine.runners.Runner.job_manager :type: aiida.engine.processes.calcjobs.manager.JobManager .. autodoc2-docstring:: aiida.engine.runners.Runner.job_manager .. py:property:: controller :canonical: aiida.engine.runners.Runner.controller :type: typing.Optional[plumpy.process_comms.RemoteProcessThreadController] .. autodoc2-docstring:: aiida.engine.runners.Runner.controller .. py:property:: is_daemon_runner :canonical: aiida.engine.runners.Runner.is_daemon_runner :type: bool .. autodoc2-docstring:: aiida.engine.runners.Runner.is_daemon_runner .. py:method:: is_closed() -> bool :canonical: aiida.engine.runners.Runner.is_closed .. autodoc2-docstring:: aiida.engine.runners.Runner.is_closed .. py:method:: start() -> None :canonical: aiida.engine.runners.Runner.start .. autodoc2-docstring:: aiida.engine.runners.Runner.start .. py:method:: stop() -> None :canonical: aiida.engine.runners.Runner.stop .. autodoc2-docstring:: aiida.engine.runners.Runner.stop .. py:method:: run_until_complete(future: asyncio.Future) -> typing.Any :canonical: aiida.engine.runners.Runner.run_until_complete .. autodoc2-docstring:: aiida.engine.runners.Runner.run_until_complete .. py:method:: close() -> None :canonical: aiida.engine.runners.Runner.close .. autodoc2-docstring:: aiida.engine.runners.Runner.close .. py:method:: instantiate_process(process: aiida.engine.runners.TYPE_RUN_PROCESS, **inputs) :canonical: aiida.engine.runners.Runner.instantiate_process .. autodoc2-docstring:: aiida.engine.runners.Runner.instantiate_process .. py:method:: submit(process: aiida.engine.runners.TYPE_SUBMIT_PROCESS, **inputs: typing.Any) :canonical: aiida.engine.runners.Runner.submit .. autodoc2-docstring:: aiida.engine.runners.Runner.submit .. py:method:: schedule(process: aiida.engine.runners.TYPE_SUBMIT_PROCESS, *args: typing.Any, **inputs: typing.Any) -> aiida.orm.ProcessNode :canonical: aiida.engine.runners.Runner.schedule .. autodoc2-docstring:: aiida.engine.runners.Runner.schedule .. py:method:: _run(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Tuple[typing.Dict[str, typing.Any], aiida.orm.ProcessNode] :canonical: aiida.engine.runners.Runner._run .. autodoc2-docstring:: aiida.engine.runners.Runner._run .. py:method:: run(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Dict[str, typing.Any] :canonical: aiida.engine.runners.Runner.run .. autodoc2-docstring:: aiida.engine.runners.Runner.run .. py:method:: run_get_node(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> aiida.engine.runners.ResultAndNode :canonical: aiida.engine.runners.Runner.run_get_node .. autodoc2-docstring:: aiida.engine.runners.Runner.run_get_node .. py:method:: run_get_pk(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> aiida.engine.runners.ResultAndPk :canonical: aiida.engine.runners.Runner.run_get_pk .. autodoc2-docstring:: aiida.engine.runners.Runner.run_get_pk .. py:method:: call_on_process_finish(pk: int, callback: typing.Callable[[], typing.Any]) -> None :canonical: aiida.engine.runners.Runner.call_on_process_finish .. autodoc2-docstring:: aiida.engine.runners.Runner.call_on_process_finish .. py:method:: get_process_future(pk: int) -> aiida.engine.processes.futures.ProcessFuture :canonical: aiida.engine.runners.Runner.get_process_future .. autodoc2-docstring:: aiida.engine.runners.Runner.get_process_future .. py:method:: _poll_process(node, callback) :canonical: aiida.engine.runners.Runner._poll_process .. autodoc2-docstring:: aiida.engine.runners.Runner._poll_process .. py:data:: ToContext :canonical: aiida.engine.processes.workchains.context.ToContext :value: None .. autodoc2-docstring:: aiida.engine.processes.workchains.context.ToContext .. py:class:: WithNonDb(*args, **kwargs) :canonical: aiida.engine.processes.ports.WithNonDb .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb.__init__ .. py:property:: non_db_explicitly_set :canonical: aiida.engine.processes.ports.WithNonDb.non_db_explicitly_set :type: bool .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb.non_db_explicitly_set .. py:property:: non_db :canonical: aiida.engine.processes.ports.WithNonDb.non_db :type: bool .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb.non_db .. py:class:: WithSerialize(*args, **kwargs) :canonical: aiida.engine.processes.ports.WithSerialize .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize.__init__ .. py:method:: serialize(value: typing.Any) -> aiida.orm.Data :canonical: aiida.engine.processes.ports.WithSerialize.serialize .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize.serialize .. py:class:: WorkChain(inputs: dict | None = None, logger: logging.Logger | None = None, runner: aiida.engine.runners.Runner | None = None, enable_persistence: bool = True) :canonical: aiida.engine.processes.workchains.workchain.WorkChain Bases: :py:obj:`aiida.engine.processes.process.Process` .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain .. rubric:: Initialization .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.__init__ .. py:attribute:: _node_class :canonical: aiida.engine.processes.workchains.workchain.WorkChain._node_class :value: None .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._node_class .. py:attribute:: _spec_class :canonical: aiida.engine.processes.workchains.workchain.WorkChain._spec_class :value: None .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._spec_class .. py:attribute:: _STEPPER_STATE :canonical: aiida.engine.processes.workchains.workchain.WorkChain._STEPPER_STATE :value: 'stepper_state' .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._STEPPER_STATE .. py:attribute:: _CONTEXT :canonical: aiida.engine.processes.workchains.workchain.WorkChain._CONTEXT :value: 'CONTEXT' .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._CONTEXT .. py:method:: spec() -> aiida.engine.processes.workchains.workchain.WorkChainSpec :canonical: aiida.engine.processes.workchains.workchain.WorkChain.spec :classmethod: .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.spec .. py:property:: node :canonical: aiida.engine.processes.workchains.workchain.WorkChain.node :type: aiida.orm.WorkChainNode .. py:property:: ctx :canonical: aiida.engine.processes.workchains.workchain.WorkChain.ctx :type: aiida.common.extendeddicts.AttributeDict .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.ctx .. py:method:: save_instance_state(out_state, save_context) :canonical: aiida.engine.processes.workchains.workchain.WorkChain.save_instance_state .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.save_instance_state .. py:method:: load_instance_state(saved_state, load_context) :canonical: aiida.engine.processes.workchains.workchain.WorkChain.load_instance_state .. py:method:: on_run() :canonical: aiida.engine.processes.workchains.workchain.WorkChain.on_run .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.on_run .. py:method:: _resolve_nested_context(key: str) -> tuple[aiida.common.extendeddicts.AttributeDict, str] :canonical: aiida.engine.processes.workchains.workchain.WorkChain._resolve_nested_context .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._resolve_nested_context .. py:method:: _insert_awaitable(awaitable: aiida.engine.processes.workchains.awaitable.Awaitable) -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain._insert_awaitable .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._insert_awaitable .. py:method:: _resolve_awaitable(awaitable: aiida.engine.processes.workchains.awaitable.Awaitable, value: typing.Any) -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain._resolve_awaitable .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._resolve_awaitable .. py:method:: to_context(**kwargs: aiida.engine.processes.workchains.awaitable.Awaitable | aiida.orm.ProcessNode) -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain.to_context .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.to_context .. py:method:: _update_process_status() -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain._update_process_status .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._update_process_status .. py:method:: run() -> typing.Any :canonical: aiida.engine.processes.workchains.workchain.WorkChain.run .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.run .. py:method:: _do_step() -> typing.Any :canonical: aiida.engine.processes.workchains.workchain.WorkChain._do_step .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._do_step .. py:method:: _store_nodes(data: typing.Any) -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain._store_nodes .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._store_nodes .. py:method:: on_exiting() -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain.on_exiting .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.on_exiting .. py:method:: on_wait(awaitables: typing.Sequence[aiida.engine.processes.workchains.awaitable.Awaitable]) :canonical: aiida.engine.processes.workchains.workchain.WorkChain.on_wait .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.on_wait .. py:method:: _action_awaitables() -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain._action_awaitables .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._action_awaitables .. py:method:: _on_awaitable_finished(awaitable: aiida.engine.processes.workchains.awaitable.Awaitable) -> None :canonical: aiida.engine.processes.workchains.workchain.WorkChain._on_awaitable_finished .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._on_awaitable_finished .. py:function:: append_(target: typing.Union[aiida.engine.processes.workchains.awaitable.Awaitable, aiida.orm.ProcessNode]) -> aiida.engine.processes.workchains.awaitable.Awaitable :canonical: aiida.engine.processes.workchains.context.append_ .. autodoc2-docstring:: aiida.engine.processes.workchains.context.append_ .. py:function:: assign_(target: typing.Union[aiida.engine.processes.workchains.awaitable.Awaitable, aiida.orm.ProcessNode]) -> aiida.engine.processes.workchains.awaitable.Awaitable :canonical: aiida.engine.processes.workchains.context.assign_ .. autodoc2-docstring:: aiida.engine.processes.workchains.context.assign_ .. py:function:: calcfunction(function: aiida.engine.processes.functions.FunctionType) -> aiida.engine.processes.functions.FunctionType :canonical: aiida.engine.processes.functions.calcfunction .. autodoc2-docstring:: aiida.engine.processes.functions.calcfunction .. py:function:: construct_awaitable(target: typing.Union[aiida.engine.processes.workchains.awaitable.Awaitable, aiida.orm.ProcessNode]) -> aiida.engine.processes.workchains.awaitable.Awaitable :canonical: aiida.engine.processes.workchains.awaitable.construct_awaitable .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.construct_awaitable .. py:function:: get_object_loader() -> aiida.engine.persistence.ObjectLoader :canonical: aiida.engine.persistence.get_object_loader .. autodoc2-docstring:: aiida.engine.persistence.get_object_loader .. py:function:: interruptable_task(coro: typing.Callable[[aiida.engine.utils.InterruptableFuture], typing.Awaitable[typing.Any]], loop: typing.Optional[asyncio.AbstractEventLoop] = None) -> aiida.engine.utils.InterruptableFuture :canonical: aiida.engine.utils.interruptable_task .. autodoc2-docstring:: aiida.engine.utils.interruptable_task .. py:function:: is_process_function(function: typing.Any) -> bool :canonical: aiida.engine.utils.is_process_function .. autodoc2-docstring:: aiida.engine.utils.is_process_function .. py:function:: process_handler(wrapped: typing.Optional[types.FunctionType] = None, *, priority: int = 0, exit_codes: typing.Union[None, aiida.engine.processes.exit_code.ExitCode, typing.List[aiida.engine.processes.exit_code.ExitCode]] = None, enabled: bool = True) -> types.FunctionType :canonical: aiida.engine.processes.workchains.utils.process_handler .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.process_handler .. py:function:: run(process: aiida.engine.launch.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Dict[str, typing.Any] :canonical: aiida.engine.launch.run .. autodoc2-docstring:: aiida.engine.launch.run .. py:function:: run_get_node(process: aiida.engine.launch.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Tuple[typing.Dict[str, typing.Any], aiida.orm.ProcessNode] :canonical: aiida.engine.launch.run_get_node .. autodoc2-docstring:: aiida.engine.launch.run_get_node .. py:function:: run_get_pk(process: aiida.engine.launch.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Tuple[typing.Dict[str, typing.Any], int] :canonical: aiida.engine.launch.run_get_pk .. autodoc2-docstring:: aiida.engine.launch.run_get_pk .. py:function:: submit(process: aiida.engine.launch.TYPE_SUBMIT_PROCESS, **inputs: typing.Any) -> aiida.orm.ProcessNode :canonical: aiida.engine.launch.submit .. autodoc2-docstring:: aiida.engine.launch.submit .. py:function:: workfunction(function: aiida.engine.processes.functions.FunctionType) -> aiida.engine.processes.functions.FunctionType :canonical: aiida.engine.processes.functions.workfunction .. autodoc2-docstring:: aiida.engine.processes.functions.workfunction sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.manage.rst000066400000000000000000001040061453104212700232140ustar00rootroot00000000000000:py:mod:`aiida.manage` ====================== .. py:module:: aiida.manage .. autodoc2-docstring:: aiida.manage :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`Config ` - .. autodoc2-docstring:: aiida.manage.configuration.config.Config :summary: * - :py:obj:`Option ` - .. autodoc2-docstring:: aiida.manage.configuration.options.Option :summary: * - :py:obj:`Postgres ` - .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres :summary: * - :py:obj:`ProcessLauncher ` - .. autodoc2-docstring:: aiida.manage.external.rmq.launcher.ProcessLauncher :summary: * - :py:obj:`Profile ` - .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile :summary: * - :py:obj:`RabbitmqManagementClient ` - .. autodoc2-docstring:: aiida.manage.external.rmq.client.RabbitmqManagementClient :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`check_and_migrate_config ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.check_and_migrate_config :summary: * - :py:obj:`config_needs_migrating ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.config_needs_migrating :summary: * - :py:obj:`config_schema ` - .. autodoc2-docstring:: aiida.manage.configuration.config.config_schema :summary: * - :py:obj:`disable_caching ` - .. autodoc2-docstring:: aiida.manage.caching.disable_caching :summary: * - :py:obj:`downgrade_config ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.downgrade_config :summary: * - :py:obj:`enable_caching ` - .. autodoc2-docstring:: aiida.manage.caching.enable_caching :summary: * - :py:obj:`get_current_version ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.get_current_version :summary: * - :py:obj:`get_launch_queue_name ` - .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_launch_queue_name :summary: * - :py:obj:`get_manager ` - .. autodoc2-docstring:: aiida.manage.manager.get_manager :summary: * - :py:obj:`get_message_exchange_name ` - .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_message_exchange_name :summary: * - :py:obj:`get_option ` - .. autodoc2-docstring:: aiida.manage.configuration.options.get_option :summary: * - :py:obj:`get_option_names ` - .. autodoc2-docstring:: aiida.manage.configuration.options.get_option_names :summary: * - :py:obj:`get_rmq_url ` - .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_rmq_url :summary: * - :py:obj:`get_task_exchange_name ` - .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_task_exchange_name :summary: * - :py:obj:`get_use_cache ` - .. autodoc2-docstring:: aiida.manage.caching.get_use_cache :summary: * - :py:obj:`parse_option ` - .. autodoc2-docstring:: aiida.manage.configuration.options.parse_option :summary: * - :py:obj:`upgrade_config ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.upgrade_config :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`BROKER_DEFAULTS ` - .. autodoc2-docstring:: aiida.manage.external.rmq.defaults.BROKER_DEFAULTS :summary: * - :py:obj:`CURRENT_CONFIG_VERSION ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.CURRENT_CONFIG_VERSION :summary: * - :py:obj:`MIGRATIONS ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.MIGRATIONS :summary: * - :py:obj:`OLDEST_COMPATIBLE_CONFIG_VERSION ` - .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.OLDEST_COMPATIBLE_CONFIG_VERSION :summary: External ~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`DEFAULT_DSN ` - .. autodoc2-docstring:: pgsu.DEFAULT_DSN :summary: * - :py:obj:`PostgresConnectionMode ` - .. autodoc2-docstring:: pgsu.PostgresConnectionMode :summary: API ~~~ .. py:data:: BROKER_DEFAULTS :canonical: aiida.manage.external.rmq.defaults.BROKER_DEFAULTS :value: None .. autodoc2-docstring:: aiida.manage.external.rmq.defaults.BROKER_DEFAULTS .. py:data:: CURRENT_CONFIG_VERSION :canonical: aiida.manage.configuration.migrations.migrations.CURRENT_CONFIG_VERSION :value: 9 .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.CURRENT_CONFIG_VERSION .. py:class:: Config(filepath: str, config: dict, validate: bool = True) :canonical: aiida.manage.configuration.config.Config .. autodoc2-docstring:: aiida.manage.configuration.config.Config .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.configuration.config.Config.__init__ .. py:attribute:: KEY_VERSION :canonical: aiida.manage.configuration.config.Config.KEY_VERSION :value: 'CONFIG_VERSION' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_VERSION .. py:attribute:: KEY_VERSION_CURRENT :canonical: aiida.manage.configuration.config.Config.KEY_VERSION_CURRENT :value: 'CURRENT' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_VERSION_CURRENT .. py:attribute:: KEY_VERSION_OLDEST_COMPATIBLE :canonical: aiida.manage.configuration.config.Config.KEY_VERSION_OLDEST_COMPATIBLE :value: 'OLDEST_COMPATIBLE' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_VERSION_OLDEST_COMPATIBLE .. py:attribute:: KEY_DEFAULT_PROFILE :canonical: aiida.manage.configuration.config.Config.KEY_DEFAULT_PROFILE :value: 'default_profile' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_DEFAULT_PROFILE .. py:attribute:: KEY_PROFILES :canonical: aiida.manage.configuration.config.Config.KEY_PROFILES :value: 'profiles' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_PROFILES .. py:attribute:: KEY_OPTIONS :canonical: aiida.manage.configuration.config.Config.KEY_OPTIONS :value: 'options' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_OPTIONS .. py:attribute:: KEY_SCHEMA :canonical: aiida.manage.configuration.config.Config.KEY_SCHEMA :value: '$schema' .. autodoc2-docstring:: aiida.manage.configuration.config.Config.KEY_SCHEMA .. py:method:: from_file(filepath) :canonical: aiida.manage.configuration.config.Config.from_file :classmethod: .. autodoc2-docstring:: aiida.manage.configuration.config.Config.from_file .. py:method:: _backup(filepath) :canonical: aiida.manage.configuration.config.Config._backup :classmethod: .. autodoc2-docstring:: aiida.manage.configuration.config.Config._backup .. py:method:: validate(config: dict, filepath: typing.Optional[str] = None) :canonical: aiida.manage.configuration.config.Config.validate :staticmethod: .. autodoc2-docstring:: aiida.manage.configuration.config.Config.validate .. py:method:: __eq__(other) :canonical: aiida.manage.configuration.config.Config.__eq__ .. autodoc2-docstring:: aiida.manage.configuration.config.Config.__eq__ .. py:method:: __ne__(other) :canonical: aiida.manage.configuration.config.Config.__ne__ .. autodoc2-docstring:: aiida.manage.configuration.config.Config.__ne__ .. py:method:: handle_invalid(message) :canonical: aiida.manage.configuration.config.Config.handle_invalid .. autodoc2-docstring:: aiida.manage.configuration.config.Config.handle_invalid .. py:property:: dictionary :canonical: aiida.manage.configuration.config.Config.dictionary :type: dict .. autodoc2-docstring:: aiida.manage.configuration.config.Config.dictionary .. py:property:: version :canonical: aiida.manage.configuration.config.Config.version .. autodoc2-docstring:: aiida.manage.configuration.config.Config.version .. py:property:: version_oldest_compatible :canonical: aiida.manage.configuration.config.Config.version_oldest_compatible .. autodoc2-docstring:: aiida.manage.configuration.config.Config.version_oldest_compatible .. py:property:: version_settings :canonical: aiida.manage.configuration.config.Config.version_settings .. autodoc2-docstring:: aiida.manage.configuration.config.Config.version_settings .. py:property:: filepath :canonical: aiida.manage.configuration.config.Config.filepath .. autodoc2-docstring:: aiida.manage.configuration.config.Config.filepath .. py:property:: dirpath :canonical: aiida.manage.configuration.config.Config.dirpath .. autodoc2-docstring:: aiida.manage.configuration.config.Config.dirpath .. py:property:: default_profile_name :canonical: aiida.manage.configuration.config.Config.default_profile_name .. autodoc2-docstring:: aiida.manage.configuration.config.Config.default_profile_name .. py:property:: profile_names :canonical: aiida.manage.configuration.config.Config.profile_names .. autodoc2-docstring:: aiida.manage.configuration.config.Config.profile_names .. py:property:: profiles :canonical: aiida.manage.configuration.config.Config.profiles .. autodoc2-docstring:: aiida.manage.configuration.config.Config.profiles .. py:method:: validate_profile(name) :canonical: aiida.manage.configuration.config.Config.validate_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.validate_profile .. py:method:: get_profile(name: typing.Optional[str] = None) -> aiida.manage.configuration.profile.Profile :canonical: aiida.manage.configuration.config.Config.get_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.get_profile .. py:method:: add_profile(profile) :canonical: aiida.manage.configuration.config.Config.add_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.add_profile .. py:method:: update_profile(profile) :canonical: aiida.manage.configuration.config.Config.update_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.update_profile .. py:method:: remove_profile(name) :canonical: aiida.manage.configuration.config.Config.remove_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.remove_profile .. py:method:: delete_profile(name: str, include_database: bool = True, include_database_user: bool = False, include_repository: bool = True) :canonical: aiida.manage.configuration.config.Config.delete_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.delete_profile .. py:method:: set_default_profile(name, overwrite=False) :canonical: aiida.manage.configuration.config.Config.set_default_profile .. autodoc2-docstring:: aiida.manage.configuration.config.Config.set_default_profile .. py:property:: options :canonical: aiida.manage.configuration.config.Config.options .. autodoc2-docstring:: aiida.manage.configuration.config.Config.options .. py:method:: set_option(option_name, option_value, scope=None, override=True) :canonical: aiida.manage.configuration.config.Config.set_option .. autodoc2-docstring:: aiida.manage.configuration.config.Config.set_option .. py:method:: unset_option(option_name: str, scope=None) :canonical: aiida.manage.configuration.config.Config.unset_option .. autodoc2-docstring:: aiida.manage.configuration.config.Config.unset_option .. py:method:: get_option(option_name, scope=None, default=True) :canonical: aiida.manage.configuration.config.Config.get_option .. autodoc2-docstring:: aiida.manage.configuration.config.Config.get_option .. py:method:: get_options(scope: typing.Optional[str] = None) -> typing.Dict[str, typing.Tuple[aiida.manage.configuration.options.Option, str, typing.Any]] :canonical: aiida.manage.configuration.config.Config.get_options .. autodoc2-docstring:: aiida.manage.configuration.config.Config.get_options .. py:method:: store() :canonical: aiida.manage.configuration.config.Config.store .. autodoc2-docstring:: aiida.manage.configuration.config.Config.store .. py:method:: _atomic_write(filepath=None) :canonical: aiida.manage.configuration.config.Config._atomic_write .. autodoc2-docstring:: aiida.manage.configuration.config.Config._atomic_write .. py:exception:: ConfigValidationError(message: str, keypath: typing.Sequence[typing.Any] = (), schema: typing.Optional[dict] = None, filepath: typing.Optional[str] = None) :canonical: aiida.manage.configuration.config.ConfigValidationError Bases: :py:obj:`aiida.common.exceptions.ConfigurationError` .. autodoc2-docstring:: aiida.manage.configuration.config.ConfigValidationError .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.configuration.config.ConfigValidationError.__init__ .. py:method:: __str__() -> str :canonical: aiida.manage.configuration.config.ConfigValidationError.__str__ .. py:data:: MIGRATIONS :canonical: aiida.manage.configuration.migrations.migrations.MIGRATIONS :value: () .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.MIGRATIONS .. py:exception:: ManagementApiConnectionError() :canonical: aiida.manage.external.rmq.client.ManagementApiConnectionError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.manage.external.rmq.client.ManagementApiConnectionError .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.external.rmq.client.ManagementApiConnectionError.__init__ .. py:data:: OLDEST_COMPATIBLE_CONFIG_VERSION :canonical: aiida.manage.configuration.migrations.migrations.OLDEST_COMPATIBLE_CONFIG_VERSION :value: 9 .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.OLDEST_COMPATIBLE_CONFIG_VERSION .. py:class:: Option(name: str, schema: typing.Dict[str, typing.Any]) :canonical: aiida.manage.configuration.options.Option .. autodoc2-docstring:: aiida.manage.configuration.options.Option .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.configuration.options.Option.__init__ .. py:method:: __str__() -> str :canonical: aiida.manage.configuration.options.Option.__str__ .. py:property:: name :canonical: aiida.manage.configuration.options.Option.name :type: str .. autodoc2-docstring:: aiida.manage.configuration.options.Option.name .. py:property:: schema :canonical: aiida.manage.configuration.options.Option.schema :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.manage.configuration.options.Option.schema .. py:property:: valid_type :canonical: aiida.manage.configuration.options.Option.valid_type :type: typing.Any .. autodoc2-docstring:: aiida.manage.configuration.options.Option.valid_type .. py:property:: default :canonical: aiida.manage.configuration.options.Option.default :type: typing.Any .. autodoc2-docstring:: aiida.manage.configuration.options.Option.default .. py:property:: description :canonical: aiida.manage.configuration.options.Option.description :type: str .. autodoc2-docstring:: aiida.manage.configuration.options.Option.description .. py:property:: global_only :canonical: aiida.manage.configuration.options.Option.global_only :type: bool .. autodoc2-docstring:: aiida.manage.configuration.options.Option.global_only .. py:method:: validate(value: typing.Any, cast: bool = True) -> typing.Any :canonical: aiida.manage.configuration.options.Option.validate .. autodoc2-docstring:: aiida.manage.configuration.options.Option.validate .. py:class:: Postgres(dbinfo=None, **kwargs) :canonical: aiida.manage.external.postgres.Postgres Bases: :py:obj:`pgsu.PGSU` .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.__init__ .. py:method:: from_profile(profile: aiida.manage.configuration.Profile, **kwargs) :canonical: aiida.manage.external.postgres.Postgres.from_profile :classmethod: .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.from_profile .. py:method:: dbuser_exists(dbuser) :canonical: aiida.manage.external.postgres.Postgres.dbuser_exists .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.dbuser_exists .. py:method:: create_dbuser(dbuser, dbpass, privileges='') :canonical: aiida.manage.external.postgres.Postgres.create_dbuser .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.create_dbuser .. py:method:: drop_dbuser(dbuser) :canonical: aiida.manage.external.postgres.Postgres.drop_dbuser .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.drop_dbuser .. py:method:: check_dbuser(dbuser) :canonical: aiida.manage.external.postgres.Postgres.check_dbuser .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.check_dbuser .. py:method:: db_exists(dbname) :canonical: aiida.manage.external.postgres.Postgres.db_exists .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.db_exists .. py:method:: create_db(dbuser, dbname) :canonical: aiida.manage.external.postgres.Postgres.create_db .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.create_db .. py:method:: drop_db(dbname) :canonical: aiida.manage.external.postgres.Postgres.drop_db .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.drop_db .. py:method:: copy_db(src_db, dest_db, dbuser) :canonical: aiida.manage.external.postgres.Postgres.copy_db .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.copy_db .. py:method:: check_db(dbname) :canonical: aiida.manage.external.postgres.Postgres.check_db .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.check_db .. py:method:: create_dbuser_db_safe(dbname, dbuser, dbpass) :canonical: aiida.manage.external.postgres.Postgres.create_dbuser_db_safe .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.create_dbuser_db_safe .. py:property:: host_for_psycopg2 :canonical: aiida.manage.external.postgres.Postgres.host_for_psycopg2 .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.host_for_psycopg2 .. py:property:: port_for_psycopg2 :canonical: aiida.manage.external.postgres.Postgres.port_for_psycopg2 .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.port_for_psycopg2 .. py:property:: dbinfo :canonical: aiida.manage.external.postgres.Postgres.dbinfo .. autodoc2-docstring:: aiida.manage.external.postgres.Postgres.dbinfo .. py:class:: ProcessLauncher :canonical: aiida.manage.external.rmq.launcher.ProcessLauncher Bases: :py:obj:`plumpy.ProcessLauncher` .. autodoc2-docstring:: aiida.manage.external.rmq.launcher.ProcessLauncher .. py:method:: handle_continue_exception(node, exception, message) :canonical: aiida.manage.external.rmq.launcher.ProcessLauncher.handle_continue_exception :staticmethod: .. autodoc2-docstring:: aiida.manage.external.rmq.launcher.ProcessLauncher.handle_continue_exception .. py:method:: _continue(communicator, pid, nowait, tag=None) :canonical: aiida.manage.external.rmq.launcher.ProcessLauncher._continue :async: .. autodoc2-docstring:: aiida.manage.external.rmq.launcher.ProcessLauncher._continue .. py:class:: Profile(name: str, config: typing.Mapping[str, typing.Any], validate=True) :canonical: aiida.manage.configuration.profile.Profile .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.__init__ .. py:attribute:: KEY_UUID :canonical: aiida.manage.configuration.profile.Profile.KEY_UUID :value: 'PROFILE_UUID' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_UUID .. py:attribute:: KEY_DEFAULT_USER_EMAIL :canonical: aiida.manage.configuration.profile.Profile.KEY_DEFAULT_USER_EMAIL :value: 'default_user_email' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_DEFAULT_USER_EMAIL .. py:attribute:: KEY_STORAGE :canonical: aiida.manage.configuration.profile.Profile.KEY_STORAGE :value: 'storage' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_STORAGE .. py:attribute:: KEY_PROCESS :canonical: aiida.manage.configuration.profile.Profile.KEY_PROCESS :value: 'process_control' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_PROCESS .. py:attribute:: KEY_STORAGE_BACKEND :canonical: aiida.manage.configuration.profile.Profile.KEY_STORAGE_BACKEND :value: 'backend' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_STORAGE_BACKEND .. py:attribute:: KEY_STORAGE_CONFIG :canonical: aiida.manage.configuration.profile.Profile.KEY_STORAGE_CONFIG :value: 'config' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_STORAGE_CONFIG .. py:attribute:: KEY_PROCESS_BACKEND :canonical: aiida.manage.configuration.profile.Profile.KEY_PROCESS_BACKEND :value: 'backend' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_PROCESS_BACKEND .. py:attribute:: KEY_PROCESS_CONFIG :canonical: aiida.manage.configuration.profile.Profile.KEY_PROCESS_CONFIG :value: 'config' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_PROCESS_CONFIG .. py:attribute:: KEY_OPTIONS :canonical: aiida.manage.configuration.profile.Profile.KEY_OPTIONS :value: 'options' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_OPTIONS .. py:attribute:: KEY_TEST_PROFILE :canonical: aiida.manage.configuration.profile.Profile.KEY_TEST_PROFILE :value: 'test_profile' .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.KEY_TEST_PROFILE .. py:attribute:: REQUIRED_KEYS :canonical: aiida.manage.configuration.profile.Profile.REQUIRED_KEYS :value: () .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.REQUIRED_KEYS .. py:method:: __repr__() -> str :canonical: aiida.manage.configuration.profile.Profile.__repr__ .. py:method:: copy() :canonical: aiida.manage.configuration.profile.Profile.copy .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.copy .. py:property:: uuid :canonical: aiida.manage.configuration.profile.Profile.uuid :type: str .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.uuid .. py:property:: default_user_email :canonical: aiida.manage.configuration.profile.Profile.default_user_email :type: typing.Optional[str] .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.default_user_email .. py:property:: storage_backend :canonical: aiida.manage.configuration.profile.Profile.storage_backend :type: str .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.storage_backend .. py:property:: storage_config :canonical: aiida.manage.configuration.profile.Profile.storage_config :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.storage_config .. py:method:: set_storage(name: str, config: typing.Dict[str, typing.Any]) -> None :canonical: aiida.manage.configuration.profile.Profile.set_storage .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.set_storage .. py:property:: storage_cls :canonical: aiida.manage.configuration.profile.Profile.storage_cls :type: typing.Type[aiida.orm.implementation.StorageBackend] .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.storage_cls .. py:property:: process_control_backend :canonical: aiida.manage.configuration.profile.Profile.process_control_backend :type: str .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.process_control_backend .. py:property:: process_control_config :canonical: aiida.manage.configuration.profile.Profile.process_control_config :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.process_control_config .. py:method:: set_process_controller(name: str, config: typing.Dict[str, typing.Any]) -> None :canonical: aiida.manage.configuration.profile.Profile.set_process_controller .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.set_process_controller .. py:property:: options :canonical: aiida.manage.configuration.profile.Profile.options .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.options .. py:method:: get_option(option_key, default=None) :canonical: aiida.manage.configuration.profile.Profile.get_option .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.get_option .. py:method:: set_option(option_key, value, override=True) :canonical: aiida.manage.configuration.profile.Profile.set_option .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.set_option .. py:method:: unset_option(option_key) :canonical: aiida.manage.configuration.profile.Profile.unset_option .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.unset_option .. py:property:: name :canonical: aiida.manage.configuration.profile.Profile.name .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.name .. py:property:: dictionary :canonical: aiida.manage.configuration.profile.Profile.dictionary :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.dictionary .. py:property:: is_test_profile :canonical: aiida.manage.configuration.profile.Profile.is_test_profile :type: bool .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.is_test_profile .. py:property:: repository_path :canonical: aiida.manage.configuration.profile.Profile.repository_path :type: pathlib.Path .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.repository_path .. py:property:: rmq_prefix :canonical: aiida.manage.configuration.profile.Profile.rmq_prefix :type: str .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.rmq_prefix .. py:method:: get_rmq_url() -> str :canonical: aiida.manage.configuration.profile.Profile.get_rmq_url .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.get_rmq_url .. py:property:: filepaths :canonical: aiida.manage.configuration.profile.Profile.filepaths .. autodoc2-docstring:: aiida.manage.configuration.profile.Profile.filepaths .. py:class:: RabbitmqManagementClient(username: str, password: str, hostname: str, virtual_host: str) :canonical: aiida.manage.external.rmq.client.RabbitmqManagementClient .. autodoc2-docstring:: aiida.manage.external.rmq.client.RabbitmqManagementClient .. rubric:: Initialization .. autodoc2-docstring:: aiida.manage.external.rmq.client.RabbitmqManagementClient.__init__ .. py:method:: format_url(url: str, url_params: dict[str, str] | None = None) -> str :canonical: aiida.manage.external.rmq.client.RabbitmqManagementClient.format_url .. autodoc2-docstring:: aiida.manage.external.rmq.client.RabbitmqManagementClient.format_url .. py:method:: request(url: str, url_params: dict[str, str] | None = None, method: str = 'GET', params: dict[str, typing.Any] | None = None) -> requests.Response :canonical: aiida.manage.external.rmq.client.RabbitmqManagementClient.request .. autodoc2-docstring:: aiida.manage.external.rmq.client.RabbitmqManagementClient.request .. py:property:: is_connected :canonical: aiida.manage.external.rmq.client.RabbitmqManagementClient.is_connected :type: bool .. autodoc2-docstring:: aiida.manage.external.rmq.client.RabbitmqManagementClient.is_connected .. py:function:: check_and_migrate_config(config, filepath: typing.Optional[str] = None) :canonical: aiida.manage.configuration.migrations.migrations.check_and_migrate_config .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.check_and_migrate_config .. py:function:: config_needs_migrating(config, filepath: typing.Optional[str] = None) :canonical: aiida.manage.configuration.migrations.migrations.config_needs_migrating .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.config_needs_migrating .. py:function:: config_schema() -> typing.Dict[str, typing.Any] :canonical: aiida.manage.configuration.config.config_schema .. autodoc2-docstring:: aiida.manage.configuration.config.config_schema .. py:function:: disable_caching(*, identifier=None) :canonical: aiida.manage.caching.disable_caching .. autodoc2-docstring:: aiida.manage.caching.disable_caching .. py:function:: downgrade_config(config: aiida.manage.configuration.migrations.migrations.ConfigType, target: int, migrations: typing.Iterable[typing.Type[aiida.manage.configuration.migrations.migrations.SingleMigration]] = MIGRATIONS) -> aiida.manage.configuration.migrations.migrations.ConfigType :canonical: aiida.manage.configuration.migrations.migrations.downgrade_config .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.downgrade_config .. py:function:: enable_caching(*, identifier=None) :canonical: aiida.manage.caching.enable_caching .. autodoc2-docstring:: aiida.manage.caching.enable_caching .. py:function:: get_current_version(config) :canonical: aiida.manage.configuration.migrations.migrations.get_current_version .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.get_current_version .. py:function:: get_launch_queue_name(prefix=None) :canonical: aiida.manage.external.rmq.utils.get_launch_queue_name .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_launch_queue_name .. py:function:: get_manager() -> Manager :canonical: aiida.manage.manager.get_manager .. autodoc2-docstring:: aiida.manage.manager.get_manager .. py:function:: get_message_exchange_name(prefix) :canonical: aiida.manage.external.rmq.utils.get_message_exchange_name .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_message_exchange_name .. py:function:: get_option(name: str) -> aiida.manage.configuration.options.Option :canonical: aiida.manage.configuration.options.get_option .. autodoc2-docstring:: aiida.manage.configuration.options.get_option .. py:function:: get_option_names() -> typing.List[str] :canonical: aiida.manage.configuration.options.get_option_names .. autodoc2-docstring:: aiida.manage.configuration.options.get_option_names .. py:function:: get_rmq_url(protocol=None, username=None, password=None, host=None, port=None, virtual_host=None, **kwargs) :canonical: aiida.manage.external.rmq.utils.get_rmq_url .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_rmq_url .. py:function:: get_task_exchange_name(prefix) :canonical: aiida.manage.external.rmq.utils.get_task_exchange_name .. autodoc2-docstring:: aiida.manage.external.rmq.utils.get_task_exchange_name .. py:function:: get_use_cache(*, identifier=None) :canonical: aiida.manage.caching.get_use_cache .. autodoc2-docstring:: aiida.manage.caching.get_use_cache .. py:function:: parse_option(option_name: str, option_value: typing.Any) -> typing.Tuple[aiida.manage.configuration.options.Option, typing.Any] :canonical: aiida.manage.configuration.options.parse_option .. autodoc2-docstring:: aiida.manage.configuration.options.parse_option .. py:function:: upgrade_config(config: aiida.manage.configuration.migrations.migrations.ConfigType, target: int = CURRENT_CONFIG_VERSION, migrations: typing.Iterable[typing.Type[aiida.manage.configuration.migrations.migrations.SingleMigration]] = MIGRATIONS) -> aiida.manage.configuration.migrations.migrations.ConfigType :canonical: aiida.manage.configuration.migrations.migrations.upgrade_config .. autodoc2-docstring:: aiida.manage.configuration.migrations.migrations.upgrade_config sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.orm.rst000066400000000000000000006775641453104212700226110ustar00rootroot00000000000000:py:mod:`aiida.orm` =================== .. py:module:: aiida.orm .. autodoc2-docstring:: aiida.orm :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AbstractCode ` - .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode :summary: * - :py:obj:`AbstractNodeMeta ` - .. autodoc2-docstring:: aiida.orm.utils.node.AbstractNodeMeta :summary: * - :py:obj:`ArrayData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData :summary: * - :py:obj:`AttributeManager ` - .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager :summary: * - :py:obj:`AuthInfo ` - .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo :summary: * - :py:obj:`AutoGroup ` - .. autodoc2-docstring:: aiida.orm.groups.AutoGroup :summary: * - :py:obj:`BandsData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData :summary: * - :py:obj:`BaseType ` - .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType :summary: * - :py:obj:`Bool ` - .. autodoc2-docstring:: aiida.orm.nodes.data.bool.Bool :summary: * - :py:obj:`CalcFunctionNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode :summary: * - :py:obj:`CalcJobNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode :summary: * - :py:obj:`CalcJobResultManager ` - .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager :summary: * - :py:obj:`CalculationEntityLoader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.CalculationEntityLoader :summary: * - :py:obj:`CalculationNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode :summary: * - :py:obj:`CifData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData :summary: * - :py:obj:`Code ` - .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code :summary: * - :py:obj:`CodeEntityLoader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.CodeEntityLoader :summary: * - :py:obj:`Collection ` - .. autodoc2-docstring:: aiida.orm.entities.Collection :summary: * - :py:obj:`Comment ` - .. autodoc2-docstring:: aiida.orm.comments.Comment :summary: * - :py:obj:`Computer ` - .. autodoc2-docstring:: aiida.orm.computers.Computer :summary: * - :py:obj:`ComputerEntityLoader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.ComputerEntityLoader :summary: * - :py:obj:`ContainerizedCode ` - .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode :summary: * - :py:obj:`Data ` - .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data :summary: * - :py:obj:`Dict ` - .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict :summary: * - :py:obj:`Entity ` - .. autodoc2-docstring:: aiida.orm.entities.Entity :summary: * - :py:obj:`EntityExtras ` - .. autodoc2-docstring:: aiida.orm.extras.EntityExtras :summary: * - :py:obj:`EntityTypes ` - .. autodoc2-docstring:: aiida.orm.entities.EntityTypes :summary: * - :py:obj:`EnumData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData :summary: * - :py:obj:`Float ` - .. autodoc2-docstring:: aiida.orm.nodes.data.float.Float :summary: * - :py:obj:`FolderData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.folder.FolderData :summary: * - :py:obj:`Group ` - .. autodoc2-docstring:: aiida.orm.groups.Group :summary: * - :py:obj:`GroupEntityLoader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.GroupEntityLoader :summary: * - :py:obj:`ImportGroup ` - .. autodoc2-docstring:: aiida.orm.groups.ImportGroup :summary: * - :py:obj:`InstalledCode ` - .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode :summary: * - :py:obj:`Int ` - .. autodoc2-docstring:: aiida.orm.nodes.data.int.Int :summary: * - :py:obj:`JsonableData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.jsonable.JsonableData :summary: * - :py:obj:`Kind ` - .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind :summary: * - :py:obj:`KpointsData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData :summary: * - :py:obj:`LinkManager ` - .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager :summary: * - :py:obj:`LinkPair ` - .. autodoc2-docstring:: aiida.orm.utils.links.LinkPair :summary: * - :py:obj:`LinkTriple ` - .. autodoc2-docstring:: aiida.orm.utils.links.LinkTriple :summary: * - :py:obj:`List ` - .. autodoc2-docstring:: aiida.orm.nodes.data.list.List :summary: * - :py:obj:`Log ` - .. autodoc2-docstring:: aiida.orm.logs.Log :summary: * - :py:obj:`Node ` - .. autodoc2-docstring:: aiida.orm.nodes.node.Node :summary: * - :py:obj:`NodeAttributes ` - .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes :summary: * - :py:obj:`NodeEntityLoader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.NodeEntityLoader :summary: * - :py:obj:`NodeLinksManager ` - .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager :summary: * - :py:obj:`NodeRepository ` - .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository :summary: * - :py:obj:`NumericType ` - .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType :summary: * - :py:obj:`OrbitalData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.orbital.OrbitalData :summary: * - :py:obj:`OrmEntityLoader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader :summary: * - :py:obj:`PortableCode ` - .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode :summary: * - :py:obj:`ProcessNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode :summary: * - :py:obj:`ProjectionData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData :summary: * - :py:obj:`QueryBuilder ` - .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder :summary: * - :py:obj:`RemoteData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData :summary: * - :py:obj:`RemoteStashData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.base.RemoteStashData :summary: * - :py:obj:`RemoteStashFolderData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData :summary: * - :py:obj:`SinglefileData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData :summary: * - :py:obj:`Site ` - .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site :summary: * - :py:obj:`Str ` - .. autodoc2-docstring:: aiida.orm.nodes.data.str.Str :summary: * - :py:obj:`StructureData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData :summary: * - :py:obj:`TrajectoryData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData :summary: * - :py:obj:`UpfData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData :summary: * - :py:obj:`UpfFamily ` - .. autodoc2-docstring:: aiida.orm.groups.UpfFamily :summary: * - :py:obj:`User ` - .. autodoc2-docstring:: aiida.orm.users.User :summary: * - :py:obj:`WorkChainNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workchain.WorkChainNode :summary: * - :py:obj:`WorkFunctionNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workfunction.WorkFunctionNode :summary: * - :py:obj:`WorkflowNode ` - .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode :summary: * - :py:obj:`XyData ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`OrderSpecifier ` - .. autodoc2-docstring:: aiida.orm.logs.OrderSpecifier :summary: * - :py:obj:`cif_from_ase ` - .. autodoc2-docstring:: aiida.orm.nodes.data.cif.cif_from_ase :summary: * - :py:obj:`find_bandgap ` - .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.find_bandgap :summary: * - :py:obj:`get_loader ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.get_loader :summary: * - :py:obj:`get_query_type_from_type_string ` - .. autodoc2-docstring:: aiida.orm.utils.node.get_query_type_from_type_string :summary: * - :py:obj:`get_type_string_from_class ` - .. autodoc2-docstring:: aiida.orm.utils.node.get_type_string_from_class :summary: * - :py:obj:`has_pycifrw ` - .. autodoc2-docstring:: aiida.orm.nodes.data.cif.has_pycifrw :summary: * - :py:obj:`load_code ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.load_code :summary: * - :py:obj:`load_computer ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.load_computer :summary: * - :py:obj:`load_entity ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.load_entity :summary: * - :py:obj:`load_group ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.load_group :summary: * - :py:obj:`load_node ` - .. autodoc2-docstring:: aiida.orm.utils.loaders.load_node :summary: * - :py:obj:`load_node_class ` - .. autodoc2-docstring:: aiida.orm.utils.node.load_node_class :summary: * - :py:obj:`pycifrw_from_cif ` - .. autodoc2-docstring:: aiida.orm.nodes.data.cif.pycifrw_from_cif :summary: * - :py:obj:`to_aiida_type ` - .. autodoc2-docstring:: aiida.orm.nodes.data.base.to_aiida_type :summary: * - :py:obj:`validate_link ` - .. autodoc2-docstring:: aiida.orm.utils.links.validate_link :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`ASCENDING ` - .. autodoc2-docstring:: aiida.orm.logs.ASCENDING :summary: * - :py:obj:`DESCENDING ` - .. autodoc2-docstring:: aiida.orm.logs.DESCENDING :summary: API ~~~ .. py:data:: ASCENDING :canonical: aiida.orm.logs.ASCENDING :value: 'asc' .. autodoc2-docstring:: aiida.orm.logs.ASCENDING .. py:class:: AbstractCode(default_calc_job_plugin: str | None = None, append_text: str = '', prepend_text: str = '', use_double_quotes: bool = False, is_hidden: bool = False, **kwargs) :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.__init__ .. py:attribute:: _KEY_ATTRIBUTE_DEFAULT_CALC_JOB_PLUGIN :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_DEFAULT_CALC_JOB_PLUGIN :type: str :value: 'input_plugin' .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_DEFAULT_CALC_JOB_PLUGIN .. py:attribute:: _KEY_ATTRIBUTE_APPEND_TEXT :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_APPEND_TEXT :type: str :value: 'append_text' .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_APPEND_TEXT .. py:attribute:: _KEY_ATTRIBUTE_PREPEND_TEXT :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_PREPEND_TEXT :type: str :value: 'prepend_text' .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_PREPEND_TEXT .. py:attribute:: _KEY_ATTRIBUTE_USE_DOUBLE_QUOTES :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_USE_DOUBLE_QUOTES :type: str :value: 'use_double_quotes' .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_ATTRIBUTE_USE_DOUBLE_QUOTES .. py:attribute:: _KEY_EXTRA_IS_HIDDEN :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_EXTRA_IS_HIDDEN :type: str :value: 'hidden' .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode._KEY_EXTRA_IS_HIDDEN .. py:method:: can_run_on_computer(computer: aiida.orm.Computer) -> bool :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.can_run_on_computer :abstractmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.can_run_on_computer .. py:method:: get_executable() -> pathlib.PurePosixPath :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.get_executable :abstractmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.get_executable .. py:method:: get_executable_cmdline_params(cmdline_params: list[str] | None = None) -> list :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.get_executable_cmdline_params .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.get_executable_cmdline_params .. py:method:: get_prepend_cmdline_params(mpi_args: list[str] | None = None, extra_mpirun_params: list[str] | None = None) -> list[str] :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.get_prepend_cmdline_params .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.get_prepend_cmdline_params .. py:method:: validate_working_directory(folder: aiida.common.folders.Folder) :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.validate_working_directory .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.validate_working_directory .. py:property:: full_label :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.full_label :abstractmethod: :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.full_label .. py:property:: label :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.label :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.label .. py:property:: default_calc_job_plugin :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.default_calc_job_plugin :type: str | None .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.default_calc_job_plugin .. py:property:: append_text :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.append_text :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.append_text .. py:property:: prepend_text :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.prepend_text :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.prepend_text .. py:property:: use_double_quotes :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.use_double_quotes :type: bool .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.use_double_quotes .. py:property:: is_hidden :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.is_hidden :type: bool .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.is_hidden .. py:method:: get_builder() -> aiida.engine.ProcessBuilder :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.get_builder .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.get_builder .. py:method:: cli_validate_label_uniqueness(_, __, value) :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.cli_validate_label_uniqueness :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.cli_validate_label_uniqueness .. py:method:: get_cli_options() -> collections.OrderedDict :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode.get_cli_options :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode.get_cli_options .. py:method:: _get_cli_options() -> dict :canonical: aiida.orm.nodes.data.code.abstract.AbstractCode._get_cli_options :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.abstract.AbstractCode._get_cli_options .. py:class:: AbstractNodeMeta :canonical: aiida.orm.utils.node.AbstractNodeMeta Bases: :py:obj:`abc.ABCMeta` .. autodoc2-docstring:: aiida.orm.utils.node.AbstractNodeMeta .. py:method:: __new__(name, bases, namespace, **kwargs) :canonical: aiida.orm.utils.node.AbstractNodeMeta.__new__ .. autodoc2-docstring:: aiida.orm.utils.node.AbstractNodeMeta.__new__ .. py:class:: ArrayData(*args, source=None, **kwargs) :canonical: aiida.orm.nodes.data.array.array.ArrayData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.__init__ .. py:attribute:: array_prefix :canonical: aiida.orm.nodes.data.array.array.ArrayData.array_prefix :value: 'array|' .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.array_prefix .. py:attribute:: _cached_arrays :canonical: aiida.orm.nodes.data.array.array.ArrayData._cached_arrays :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData._cached_arrays .. py:method:: initialize() :canonical: aiida.orm.nodes.data.array.array.ArrayData.initialize .. py:method:: delete_array(name) :canonical: aiida.orm.nodes.data.array.array.ArrayData.delete_array .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.delete_array .. py:method:: get_arraynames() :canonical: aiida.orm.nodes.data.array.array.ArrayData.get_arraynames .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.get_arraynames .. py:method:: _arraynames_from_files() :canonical: aiida.orm.nodes.data.array.array.ArrayData._arraynames_from_files .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData._arraynames_from_files .. py:method:: _arraynames_from_properties() :canonical: aiida.orm.nodes.data.array.array.ArrayData._arraynames_from_properties .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData._arraynames_from_properties .. py:method:: get_shape(name) :canonical: aiida.orm.nodes.data.array.array.ArrayData.get_shape .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.get_shape .. py:method:: get_iterarrays() :canonical: aiida.orm.nodes.data.array.array.ArrayData.get_iterarrays .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.get_iterarrays .. py:method:: get_array(name) :canonical: aiida.orm.nodes.data.array.array.ArrayData.get_array .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.get_array .. py:method:: clear_internal_cache() :canonical: aiida.orm.nodes.data.array.array.ArrayData.clear_internal_cache .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.clear_internal_cache .. py:method:: set_array(name, array) :canonical: aiida.orm.nodes.data.array.array.ArrayData.set_array .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData.set_array .. py:method:: _validate() :canonical: aiida.orm.nodes.data.array.array.ArrayData._validate .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData._validate .. py:method:: _get_array_entries() :canonical: aiida.orm.nodes.data.array.array.ArrayData._get_array_entries .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData._get_array_entries .. py:method:: _prepare_json(main_file_name='', comments=True) :canonical: aiida.orm.nodes.data.array.array.ArrayData._prepare_json .. autodoc2-docstring:: aiida.orm.nodes.data.array.array.ArrayData._prepare_json .. py:class:: AttributeManager(node) :canonical: aiida.orm.utils.managers.AttributeManager .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager.__init__ .. py:method:: __dir__() :canonical: aiida.orm.utils.managers.AttributeManager.__dir__ .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager.__dir__ .. py:method:: __iter__() :canonical: aiida.orm.utils.managers.AttributeManager.__iter__ .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager.__iter__ .. py:method:: _get_dict() :canonical: aiida.orm.utils.managers.AttributeManager._get_dict .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager._get_dict .. py:method:: __getattr__(name) :canonical: aiida.orm.utils.managers.AttributeManager.__getattr__ .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager.__getattr__ .. py:method:: __setattr__(name, value) :canonical: aiida.orm.utils.managers.AttributeManager.__setattr__ .. py:method:: __getitem__(name) :canonical: aiida.orm.utils.managers.AttributeManager.__getitem__ .. autodoc2-docstring:: aiida.orm.utils.managers.AttributeManager.__getitem__ .. py:class:: AuthInfo(computer: aiida.orm.Computer, user: aiida.orm.User, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.authinfos.AuthInfo Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendAuthInfo`\ , :py:obj:`aiida.orm.authinfos.AuthInfoCollection`\ ] .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.__init__ .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.authinfos.AuthInfo._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo._CLS_COLLECTION .. py:attribute:: PROPERTY_WORKDIR :canonical: aiida.orm.authinfos.AuthInfo.PROPERTY_WORKDIR :value: 'workdir' .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.PROPERTY_WORKDIR .. py:method:: __str__() -> str :canonical: aiida.orm.authinfos.AuthInfo.__str__ .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.__str__ .. py:property:: enabled :canonical: aiida.orm.authinfos.AuthInfo.enabled :type: bool .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.enabled .. py:property:: computer :canonical: aiida.orm.authinfos.AuthInfo.computer :type: aiida.orm.Computer .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.computer .. py:property:: user :canonical: aiida.orm.authinfos.AuthInfo.user :type: aiida.orm.User .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.user .. py:method:: get_auth_params() -> typing.Dict[str, typing.Any] :canonical: aiida.orm.authinfos.AuthInfo.get_auth_params .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.get_auth_params .. py:method:: set_auth_params(auth_params: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.authinfos.AuthInfo.set_auth_params .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.set_auth_params .. py:method:: get_metadata() -> typing.Dict[str, typing.Any] :canonical: aiida.orm.authinfos.AuthInfo.get_metadata .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.get_metadata .. py:method:: set_metadata(metadata: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.authinfos.AuthInfo.set_metadata .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.set_metadata .. py:method:: get_workdir() -> str :canonical: aiida.orm.authinfos.AuthInfo.get_workdir .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.get_workdir .. py:method:: get_transport() -> aiida.transports.Transport :canonical: aiida.orm.authinfos.AuthInfo.get_transport .. autodoc2-docstring:: aiida.orm.authinfos.AuthInfo.get_transport .. py:class:: AutoGroup(label: typing.Optional[str] = None, user: typing.Optional[aiida.orm.User] = None, description: str = '', type_string: typing.Optional[str] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.groups.AutoGroup Bases: :py:obj:`aiida.orm.groups.Group` .. autodoc2-docstring:: aiida.orm.groups.AutoGroup .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.groups.AutoGroup.__init__ .. py:class:: BandsData :canonical: aiida.orm.nodes.data.array.bands.BandsData Bases: :py:obj:`aiida.orm.nodes.data.array.kpoints.KpointsData` .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData .. py:method:: set_kpointsdata(kpointsdata) :canonical: aiida.orm.nodes.data.array.bands.BandsData.set_kpointsdata .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData.set_kpointsdata .. py:method:: _validate_bands_occupations(bands, occupations=None, labels=None) :canonical: aiida.orm.nodes.data.array.bands.BandsData._validate_bands_occupations .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._validate_bands_occupations .. py:method:: set_bands(bands, units=None, occupations=None, labels=None) :canonical: aiida.orm.nodes.data.array.bands.BandsData.set_bands .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData.set_bands .. py:property:: array_labels :canonical: aiida.orm.nodes.data.array.bands.BandsData.array_labels .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData.array_labels .. py:property:: units :canonical: aiida.orm.nodes.data.array.bands.BandsData.units .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData.units .. py:method:: _set_pbc(value) :canonical: aiida.orm.nodes.data.array.bands.BandsData._set_pbc .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._set_pbc .. py:method:: get_bands(also_occupations=False, also_labels=False) :canonical: aiida.orm.nodes.data.array.bands.BandsData.get_bands .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData.get_bands .. py:method:: _get_bandplot_data(cartesian, prettify_format=None, join_symbol=None, get_segments=False, y_origin=0.0) :canonical: aiida.orm.nodes.data.array.bands.BandsData._get_bandplot_data .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._get_bandplot_data .. py:method:: _prepare_agr_batch(main_file_name='', comments=True, prettify_format=None) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_agr_batch .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_agr_batch .. py:method:: _prepare_dat_multicolumn(main_file_name='', comments=True) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_dat_multicolumn .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_dat_multicolumn .. py:method:: _prepare_dat_blocks(main_file_name='', comments=True) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_dat_blocks .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_dat_blocks .. py:method:: _matplotlib_get_dict(main_file_name='', comments=True, title='', legend=None, legend2=None, y_max_lim=None, y_min_lim=None, y_origin=0.0, prettify_format=None, **kwargs) :canonical: aiida.orm.nodes.data.array.bands.BandsData._matplotlib_get_dict .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._matplotlib_get_dict .. py:method:: _prepare_mpl_singlefile(*args, **kwargs) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_singlefile .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_singlefile .. py:method:: _prepare_mpl_withjson(main_file_name='', *args, **kwargs) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_withjson .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_withjson .. py:method:: _prepare_mpl_pdf(main_file_name='', *args, **kwargs) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_pdf .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_pdf .. py:method:: _prepare_mpl_png(main_file_name='', *args, **kwargs) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_png .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_mpl_png .. py:method:: _get_mpl_body_template(paths) :canonical: aiida.orm.nodes.data.array.bands.BandsData._get_mpl_body_template :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._get_mpl_body_template .. py:method:: show_mpl(**kwargs) :canonical: aiida.orm.nodes.data.array.bands.BandsData.show_mpl .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData.show_mpl .. py:method:: _prepare_gnuplot(main_file_name=None, title='', comments=True, prettify_format=None, y_max_lim=None, y_min_lim=None, y_origin=0.0) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_gnuplot .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_gnuplot .. py:method:: _prepare_agr(main_file_name='', comments=True, setnumber_offset=0, color_number=1, color_number2=2, legend='', title='', y_max_lim=None, y_min_lim=None, y_origin=0.0, prettify_format=None) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_agr .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_agr .. py:method:: _get_band_segments(cartesian) :canonical: aiida.orm.nodes.data.array.bands.BandsData._get_band_segments .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._get_band_segments .. py:method:: _prepare_json(main_file_name='', comments=True) :canonical: aiida.orm.nodes.data.array.bands.BandsData._prepare_json .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.BandsData._prepare_json .. py:class:: BaseType(value=None, **kwargs) :canonical: aiida.orm.nodes.data.base.BaseType Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType.__init__ .. py:property:: value :canonical: aiida.orm.nodes.data.base.BaseType.value .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType.value .. py:method:: __str__() :canonical: aiida.orm.nodes.data.base.BaseType.__str__ .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType.__str__ .. py:method:: __eq__(other) :canonical: aiida.orm.nodes.data.base.BaseType.__eq__ .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType.__eq__ .. py:method:: new(value=None) :canonical: aiida.orm.nodes.data.base.BaseType.new .. autodoc2-docstring:: aiida.orm.nodes.data.base.BaseType.new .. py:class:: Bool :canonical: aiida.orm.nodes.data.bool.Bool Bases: :py:obj:`aiida.orm.nodes.data.base.BaseType` .. autodoc2-docstring:: aiida.orm.nodes.data.bool.Bool .. py:attribute:: _type :canonical: aiida.orm.nodes.data.bool.Bool._type :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.bool.Bool._type .. py:method:: __int__() :canonical: aiida.orm.nodes.data.bool.Bool.__int__ .. autodoc2-docstring:: aiida.orm.nodes.data.bool.Bool.__int__ .. py:method:: __bool__() :canonical: aiida.orm.nodes.data.bool.Bool.__bool__ .. autodoc2-docstring:: aiida.orm.nodes.data.bool.Bool.__bool__ .. py:class:: CalcFunctionNode :canonical: aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode Bases: :py:obj:`aiida.orm.utils.mixins.FunctionCalculationMixin`, :py:obj:`aiida.orm.nodes.process.calculation.calculation.CalculationNode` .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode .. py:attribute:: _CLS_NODE_LINKS :canonical: aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode._CLS_NODE_LINKS :value: None .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode._CLS_NODE_LINKS .. py:class:: CalcJobNode :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode Bases: :py:obj:`aiida.orm.nodes.process.calculation.calculation.CalculationNode` .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode .. py:attribute:: CALC_JOB_STATE_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.CALC_JOB_STATE_KEY :value: 'state' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.CALC_JOB_STATE_KEY .. py:attribute:: IMMIGRATED_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.IMMIGRATED_KEY :value: 'imported' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.IMMIGRATED_KEY .. py:attribute:: REMOTE_WORKDIR_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.REMOTE_WORKDIR_KEY :value: 'remote_workdir' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.REMOTE_WORKDIR_KEY .. py:attribute:: RETRIEVE_LIST_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.RETRIEVE_LIST_KEY :value: 'retrieve_list' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.RETRIEVE_LIST_KEY .. py:attribute:: RETRIEVE_TEMPORARY_LIST_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.RETRIEVE_TEMPORARY_LIST_KEY :value: 'retrieve_temporary_list' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.RETRIEVE_TEMPORARY_LIST_KEY .. py:attribute:: SCHEDULER_JOB_ID_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_JOB_ID_KEY :value: 'job_id' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_JOB_ID_KEY .. py:attribute:: SCHEDULER_STATE_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_STATE_KEY :value: 'scheduler_state' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_STATE_KEY .. py:attribute:: SCHEDULER_LAST_CHECK_TIME_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_LAST_CHECK_TIME_KEY :value: 'scheduler_lastchecktime' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_LAST_CHECK_TIME_KEY .. py:attribute:: SCHEDULER_LAST_JOB_INFO_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_LAST_JOB_INFO_KEY :value: 'last_job_info' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_LAST_JOB_INFO_KEY .. py:attribute:: SCHEDULER_DETAILED_JOB_INFO_KEY :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_DETAILED_JOB_INFO_KEY :value: 'detailed_job_info' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.SCHEDULER_DETAILED_JOB_INFO_KEY .. py:attribute:: _tools :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._tools :value: None .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._tools .. py:property:: tools :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.tools :type: aiida.tools.calculations.CalculationTools .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.tools .. py:method:: _updatable_attributes() -> typing.Tuple[str, ...] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._updatable_attributes .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._updatable_attributes .. py:method:: _hash_ignored_attributes() -> typing.Tuple[str, ...] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._hash_ignored_attributes .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._hash_ignored_attributes .. py:method:: get_builder_restart() -> aiida.engine.processes.builder.ProcessBuilder :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_builder_restart .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_builder_restart .. py:property:: is_imported :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.is_imported :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.is_imported .. py:method:: get_option(name: str) -> typing.Optional[typing.Any] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_option .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_option .. py:method:: set_option(name: str, value: typing.Any) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_option .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_option .. py:method:: get_options() -> typing.Dict[str, typing.Any] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_options .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_options .. py:method:: set_options(options: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_options .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_options .. py:method:: get_state() -> typing.Optional[aiida.common.datastructures.CalcJobState] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_state .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_state .. py:method:: set_state(state: aiida.common.datastructures.CalcJobState) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_state .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_state .. py:method:: delete_state() -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.delete_state .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.delete_state .. py:method:: set_remote_workdir(remote_workdir: str) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_remote_workdir .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_remote_workdir .. py:method:: get_remote_workdir() -> typing.Optional[str] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_remote_workdir .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_remote_workdir .. py:method:: _validate_retrieval_directive(directives: typing.Sequence[typing.Union[str, typing.Tuple[str, str, str]]]) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._validate_retrieval_directive :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode._validate_retrieval_directive .. py:method:: set_retrieve_list(retrieve_list: typing.Sequence[typing.Union[str, typing.Tuple[str, str, str]]]) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_retrieve_list .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_retrieve_list .. py:method:: get_retrieve_list() -> typing.Optional[typing.Sequence[typing.Union[str, typing.Tuple[str, str, str]]]] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_retrieve_list .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_retrieve_list .. py:method:: set_retrieve_temporary_list(retrieve_temporary_list: typing.Sequence[typing.Union[str, typing.Tuple[str, str, str]]]) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_retrieve_temporary_list .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_retrieve_temporary_list .. py:method:: get_retrieve_temporary_list() -> typing.Optional[typing.Sequence[typing.Union[str, typing.Tuple[str, str, str]]]] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_retrieve_temporary_list .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_retrieve_temporary_list .. py:method:: set_job_id(job_id: typing.Union[int, str]) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_job_id .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_job_id .. py:method:: get_job_id() -> typing.Optional[str] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_job_id .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_job_id .. py:method:: set_scheduler_state(state: aiida.schedulers.datastructures.JobState) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_scheduler_state .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_scheduler_state .. py:method:: get_scheduler_state() -> typing.Optional[aiida.schedulers.datastructures.JobState] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_state .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_state .. py:method:: get_scheduler_lastchecktime() -> typing.Optional[datetime.datetime] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_lastchecktime .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_lastchecktime .. py:method:: set_detailed_job_info(detailed_job_info: typing.Optional[dict]) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_detailed_job_info .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_detailed_job_info .. py:method:: get_detailed_job_info() -> typing.Optional[dict] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_detailed_job_info .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_detailed_job_info .. py:method:: set_last_job_info(last_job_info: aiida.schedulers.datastructures.JobInfo) -> None :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_last_job_info .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.set_last_job_info .. py:method:: get_last_job_info() -> typing.Optional[aiida.schedulers.datastructures.JobInfo] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_last_job_info .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_last_job_info .. py:method:: get_authinfo() -> aiida.orm.authinfos.AuthInfo :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_authinfo .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_authinfo .. py:method:: get_transport() -> aiida.transports.Transport :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_transport .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_transport .. py:method:: get_parser_class() -> typing.Optional[typing.Type[aiida.parsers.Parser]] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_parser_class .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_parser_class .. py:property:: link_label_retrieved :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.link_label_retrieved :type: str .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.link_label_retrieved .. py:method:: get_retrieved_node() -> typing.Optional[aiida.orm.FolderData] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_retrieved_node .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_retrieved_node .. py:property:: res :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.res :type: aiida.orm.utils.calcjob.CalcJobResultManager .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.res .. py:method:: get_scheduler_stdout() -> typing.Optional[typing.AnyStr] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_stdout .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_stdout .. py:method:: get_scheduler_stderr() -> typing.Optional[typing.AnyStr] :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_stderr .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_scheduler_stderr .. py:method:: get_description() -> str :canonical: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_description .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calcjob.CalcJobNode.get_description .. py:class:: CalcJobResultManager(node) :canonical: aiida.orm.utils.calcjob.CalcJobResultManager .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.__init__ .. py:property:: node :canonical: aiida.orm.utils.calcjob.CalcJobResultManager.node .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.node .. py:method:: _load_results() :canonical: aiida.orm.utils.calcjob.CalcJobResultManager._load_results .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager._load_results .. py:method:: get_results() :canonical: aiida.orm.utils.calcjob.CalcJobResultManager.get_results .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.get_results .. py:method:: __dir__() :canonical: aiida.orm.utils.calcjob.CalcJobResultManager.__dir__ .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.__dir__ .. py:method:: __iter__() :canonical: aiida.orm.utils.calcjob.CalcJobResultManager.__iter__ .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.__iter__ .. py:method:: __getattr__(name) :canonical: aiida.orm.utils.calcjob.CalcJobResultManager.__getattr__ .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.__getattr__ .. py:method:: __getitem__(name) :canonical: aiida.orm.utils.calcjob.CalcJobResultManager.__getitem__ .. autodoc2-docstring:: aiida.orm.utils.calcjob.CalcJobResultManager.__getitem__ .. py:class:: CalculationEntityLoader :canonical: aiida.orm.utils.loaders.CalculationEntityLoader Bases: :py:obj:`aiida.orm.utils.loaders.OrmEntityLoader` .. autodoc2-docstring:: aiida.orm.utils.loaders.CalculationEntityLoader .. py:method:: orm_base_class() :canonical: aiida.orm.utils.loaders.CalculationEntityLoader.orm_base_class .. autodoc2-docstring:: aiida.orm.utils.loaders.CalculationEntityLoader.orm_base_class .. py:method:: _get_query_builder_label_identifier(identifier, classes, operator='==', project='*') :canonical: aiida.orm.utils.loaders.CalculationEntityLoader._get_query_builder_label_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.CalculationEntityLoader._get_query_builder_label_identifier .. py:class:: CalculationNode(backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None, user: typing.Optional[aiida.orm.users.User] = None, computer: typing.Optional[aiida.orm.computers.Computer] = None, **kwargs: typing.Any) :canonical: aiida.orm.nodes.process.calculation.calculation.CalculationNode Bases: :py:obj:`aiida.orm.nodes.process.process.ProcessNode` .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode.__init__ .. py:attribute:: _storable :canonical: aiida.orm.nodes.process.calculation.calculation.CalculationNode._storable :value: True .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode._storable .. py:attribute:: _cachable :canonical: aiida.orm.nodes.process.calculation.calculation.CalculationNode._cachable :value: True .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode._cachable .. py:attribute:: _unstorable_message :canonical: aiida.orm.nodes.process.calculation.calculation.CalculationNode._unstorable_message :value: 'storing for this node has been disabled' .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode._unstorable_message .. py:property:: inputs :canonical: aiida.orm.nodes.process.calculation.calculation.CalculationNode.inputs :type: aiida.orm.utils.managers.NodeLinksManager .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode.inputs .. py:property:: outputs :canonical: aiida.orm.nodes.process.calculation.calculation.CalculationNode.outputs :type: aiida.orm.utils.managers.NodeLinksManager .. autodoc2-docstring:: aiida.orm.nodes.process.calculation.calculation.CalculationNode.outputs .. py:class:: CifData(ase=None, file=None, filename=None, values=None, scan_type=None, parse_policy=None, **kwargs) :canonical: aiida.orm.nodes.data.cif.CifData Bases: :py:obj:`aiida.orm.nodes.data.singlefile.SinglefileData` .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.__init__ .. py:attribute:: _SET_INCOMPATIBILITIES :canonical: aiida.orm.nodes.data.cif.CifData._SET_INCOMPATIBILITIES :value: [('ase', 'file'), ('ase', 'values'), ('file', 'values')] .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._SET_INCOMPATIBILITIES .. py:attribute:: _SCAN_TYPES :canonical: aiida.orm.nodes.data.cif.CifData._SCAN_TYPES :value: ('standard', 'flex') .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._SCAN_TYPES .. py:attribute:: _SCAN_TYPE_DEFAULT :canonical: aiida.orm.nodes.data.cif.CifData._SCAN_TYPE_DEFAULT :value: 'standard' .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._SCAN_TYPE_DEFAULT .. py:attribute:: _PARSE_POLICIES :canonical: aiida.orm.nodes.data.cif.CifData._PARSE_POLICIES :value: ('eager', 'lazy') .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._PARSE_POLICIES .. py:attribute:: _PARSE_POLICY_DEFAULT :canonical: aiida.orm.nodes.data.cif.CifData._PARSE_POLICY_DEFAULT :value: 'eager' .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._PARSE_POLICY_DEFAULT .. py:attribute:: _values :canonical: aiida.orm.nodes.data.cif.CifData._values :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._values .. py:attribute:: _ase :canonical: aiida.orm.nodes.data.cif.CifData._ase :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._ase .. py:method:: read_cif(fileobj, index=-1, **kwargs) :canonical: aiida.orm.nodes.data.cif.CifData.read_cif :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.read_cif .. py:method:: from_md5(md5, backend=None) :canonical: aiida.orm.nodes.data.cif.CifData.from_md5 :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.from_md5 .. py:method:: get_or_create(filename, use_first=False, store_cif=True) :canonical: aiida.orm.nodes.data.cif.CifData.get_or_create :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.get_or_create .. py:property:: ase :canonical: aiida.orm.nodes.data.cif.CifData.ase .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.ase .. py:method:: get_ase(**kwargs) :canonical: aiida.orm.nodes.data.cif.CifData.get_ase .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.get_ase .. py:method:: set_ase(aseatoms) :canonical: aiida.orm.nodes.data.cif.CifData.set_ase .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.set_ase .. py:property:: values :canonical: aiida.orm.nodes.data.cif.CifData.values .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.values .. py:method:: set_values(values) :canonical: aiida.orm.nodes.data.cif.CifData.set_values .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.set_values .. py:method:: parse(scan_type=None) :canonical: aiida.orm.nodes.data.cif.CifData.parse .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.parse .. py:method:: store(*args, **kwargs) :canonical: aiida.orm.nodes.data.cif.CifData.store .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.store .. py:method:: set_file(file, filename=None) :canonical: aiida.orm.nodes.data.cif.CifData.set_file .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.set_file .. py:method:: set_scan_type(scan_type) :canonical: aiida.orm.nodes.data.cif.CifData.set_scan_type .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.set_scan_type .. py:method:: set_parse_policy(parse_policy) :canonical: aiida.orm.nodes.data.cif.CifData.set_parse_policy .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.set_parse_policy .. py:method:: get_formulae(mode='sum', custom_tags=None) :canonical: aiida.orm.nodes.data.cif.CifData.get_formulae .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.get_formulae .. py:method:: get_spacegroup_numbers() :canonical: aiida.orm.nodes.data.cif.CifData.get_spacegroup_numbers .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.get_spacegroup_numbers .. py:property:: has_partial_occupancies :canonical: aiida.orm.nodes.data.cif.CifData.has_partial_occupancies .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.has_partial_occupancies .. py:property:: has_attached_hydrogens :canonical: aiida.orm.nodes.data.cif.CifData.has_attached_hydrogens .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.has_attached_hydrogens .. py:property:: has_undefined_atomic_sites :canonical: aiida.orm.nodes.data.cif.CifData.has_undefined_atomic_sites .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.has_undefined_atomic_sites .. py:property:: has_atomic_sites :canonical: aiida.orm.nodes.data.cif.CifData.has_atomic_sites .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.has_atomic_sites .. py:property:: has_unknown_species :canonical: aiida.orm.nodes.data.cif.CifData.has_unknown_species .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.has_unknown_species .. py:method:: generate_md5() :canonical: aiida.orm.nodes.data.cif.CifData.generate_md5 .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.generate_md5 .. py:method:: get_structure(converter='pymatgen', store=False, **kwargs) :canonical: aiida.orm.nodes.data.cif.CifData.get_structure .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData.get_structure .. py:method:: _prepare_cif(**kwargs) :canonical: aiida.orm.nodes.data.cif.CifData._prepare_cif .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._prepare_cif .. py:method:: _get_object_ase() :canonical: aiida.orm.nodes.data.cif.CifData._get_object_ase .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._get_object_ase .. py:method:: _get_object_pycifrw() :canonical: aiida.orm.nodes.data.cif.CifData._get_object_pycifrw .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._get_object_pycifrw .. py:method:: _validate() :canonical: aiida.orm.nodes.data.cif.CifData._validate .. autodoc2-docstring:: aiida.orm.nodes.data.cif.CifData._validate .. py:class:: Code(remote_computer_exec=None, local_executable=None, input_plugin_name=None, files=None, **kwargs) :canonical: aiida.orm.nodes.data.code.legacy.Code Bases: :py:obj:`aiida.orm.nodes.data.code.abstract.AbstractCode` .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.__init__ .. py:attribute:: HIDDEN_KEY :canonical: aiida.orm.nodes.data.code.legacy.Code.HIDDEN_KEY :value: 'hidden' .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.HIDDEN_KEY .. py:method:: can_run_on_computer(computer: aiida.orm.Computer) -> bool :canonical: aiida.orm.nodes.data.code.legacy.Code.can_run_on_computer .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.can_run_on_computer .. py:method:: get_executable() -> pathlib.PurePosixPath :canonical: aiida.orm.nodes.data.code.legacy.Code.get_executable .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_executable .. py:method:: hide() :canonical: aiida.orm.nodes.data.code.legacy.Code.hide .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.hide .. py:method:: reveal() :canonical: aiida.orm.nodes.data.code.legacy.Code.reveal .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.reveal .. py:property:: hidden :canonical: aiida.orm.nodes.data.code.legacy.Code.hidden .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.hidden .. py:method:: set_files(files) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_files .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_files .. py:method:: __str__() :canonical: aiida.orm.nodes.data.code.legacy.Code.__str__ .. py:method:: get_computer_label() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_computer_label .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_computer_label .. py:property:: full_label :canonical: aiida.orm.nodes.data.code.legacy.Code.full_label .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.full_label .. py:method:: relabel(new_label) :canonical: aiida.orm.nodes.data.code.legacy.Code.relabel .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.relabel .. py:method:: get_description() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_description .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_description .. py:method:: get_code_helper(label, machinename=None, backend=None) :canonical: aiida.orm.nodes.data.code.legacy.Code.get_code_helper :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_code_helper .. py:method:: get(pk=None, label=None, machinename=None) :canonical: aiida.orm.nodes.data.code.legacy.Code.get :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get .. py:method:: get_from_string(code_string) :canonical: aiida.orm.nodes.data.code.legacy.Code.get_from_string :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_from_string .. py:method:: list_for_plugin(plugin, labels=True, backend=None) :canonical: aiida.orm.nodes.data.code.legacy.Code.list_for_plugin :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.list_for_plugin .. py:method:: _validate() :canonical: aiida.orm.nodes.data.code.legacy.Code._validate .. py:method:: validate_remote_exec_path() :canonical: aiida.orm.nodes.data.code.legacy.Code.validate_remote_exec_path .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.validate_remote_exec_path .. py:method:: set_prepend_text(code) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_prepend_text .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_prepend_text .. py:method:: get_prepend_text() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_prepend_text .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_prepend_text .. py:method:: set_input_plugin_name(input_plugin) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_input_plugin_name .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_input_plugin_name .. py:method:: get_input_plugin_name() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_input_plugin_name .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_input_plugin_name .. py:method:: set_use_double_quotes(use_double_quotes: bool) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_use_double_quotes .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_use_double_quotes .. py:method:: get_use_double_quotes() -> bool :canonical: aiida.orm.nodes.data.code.legacy.Code.get_use_double_quotes .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_use_double_quotes .. py:method:: set_append_text(code) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_append_text .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_append_text .. py:method:: get_append_text() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_append_text .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_append_text .. py:method:: set_local_executable(exec_name) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_local_executable .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_local_executable .. py:method:: get_local_executable() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_local_executable .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_local_executable .. py:method:: set_remote_computer_exec(remote_computer_exec) :canonical: aiida.orm.nodes.data.code.legacy.Code.set_remote_computer_exec .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.set_remote_computer_exec .. py:method:: get_remote_exec_path() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_remote_exec_path .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_remote_exec_path .. py:method:: get_remote_computer() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_remote_computer .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_remote_computer .. py:method:: _set_local() :canonical: aiida.orm.nodes.data.code.legacy.Code._set_local .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code._set_local .. py:method:: _set_remote() :canonical: aiida.orm.nodes.data.code.legacy.Code._set_remote .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code._set_remote .. py:method:: is_local() :canonical: aiida.orm.nodes.data.code.legacy.Code.is_local .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.is_local .. py:method:: can_run_on(computer) :canonical: aiida.orm.nodes.data.code.legacy.Code.can_run_on .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.can_run_on .. py:method:: get_execname() :canonical: aiida.orm.nodes.data.code.legacy.Code.get_execname .. autodoc2-docstring:: aiida.orm.nodes.data.code.legacy.Code.get_execname .. py:class:: CodeEntityLoader :canonical: aiida.orm.utils.loaders.CodeEntityLoader Bases: :py:obj:`aiida.orm.utils.loaders.OrmEntityLoader` .. autodoc2-docstring:: aiida.orm.utils.loaders.CodeEntityLoader .. py:method:: orm_base_class() :canonical: aiida.orm.utils.loaders.CodeEntityLoader.orm_base_class .. autodoc2-docstring:: aiida.orm.utils.loaders.CodeEntityLoader.orm_base_class .. py:method:: _get_query_builder_label_identifier(identifier, classes, operator='==', project='*') :canonical: aiida.orm.utils.loaders.CodeEntityLoader._get_query_builder_label_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.CodeEntityLoader._get_query_builder_label_identifier .. py:class:: Collection(entity_class: typing.Type[aiida.orm.entities.EntityType], backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.entities.Collection Bases: :py:obj:`abc.ABC`, :py:obj:`typing.Generic`\ [\ :py:obj:`aiida.orm.entities.EntityType`\ ] .. autodoc2-docstring:: aiida.orm.entities.Collection .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.entities.Collection.__init__ .. py:method:: _entity_base_cls() -> typing.Type[aiida.orm.entities.EntityType] :canonical: aiida.orm.entities.Collection._entity_base_cls :abstractmethod: :staticmethod: .. autodoc2-docstring:: aiida.orm.entities.Collection._entity_base_cls .. py:method:: get_cached(entity_class: typing.Type[aiida.orm.entities.EntityType], backend: aiida.orm.implementation.StorageBackend) :canonical: aiida.orm.entities.Collection.get_cached :classmethod: .. autodoc2-docstring:: aiida.orm.entities.Collection.get_cached .. py:method:: __call__(backend: aiida.orm.implementation.StorageBackend) -> aiida.orm.entities.CollectionType :canonical: aiida.orm.entities.Collection.__call__ .. autodoc2-docstring:: aiida.orm.entities.Collection.__call__ .. py:property:: entity_type :canonical: aiida.orm.entities.Collection.entity_type :type: typing.Type[aiida.orm.entities.EntityType] .. autodoc2-docstring:: aiida.orm.entities.Collection.entity_type .. py:property:: backend :canonical: aiida.orm.entities.Collection.backend :type: aiida.orm.implementation.StorageBackend .. autodoc2-docstring:: aiida.orm.entities.Collection.backend .. py:method:: query(filters: typing.Optional[aiida.orm.querybuilder.FilterType] = None, order_by: typing.Optional[aiida.orm.querybuilder.OrderByType] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.entities.Collection.query .. autodoc2-docstring:: aiida.orm.entities.Collection.query .. py:method:: get(**filters: typing.Any) -> aiida.orm.entities.EntityType :canonical: aiida.orm.entities.Collection.get .. autodoc2-docstring:: aiida.orm.entities.Collection.get .. py:method:: find(filters: typing.Optional[aiida.orm.querybuilder.FilterType] = None, order_by: typing.Optional[aiida.orm.querybuilder.OrderByType] = None, limit: typing.Optional[int] = None) -> typing.List[aiida.orm.entities.EntityType] :canonical: aiida.orm.entities.Collection.find .. autodoc2-docstring:: aiida.orm.entities.Collection.find .. py:method:: all() -> typing.List[aiida.orm.entities.EntityType] :canonical: aiida.orm.entities.Collection.all .. autodoc2-docstring:: aiida.orm.entities.Collection.all .. py:method:: count(filters: typing.Optional[aiida.orm.querybuilder.FilterType] = None) -> int :canonical: aiida.orm.entities.Collection.count .. autodoc2-docstring:: aiida.orm.entities.Collection.count .. py:class:: Comment(node: aiida.orm.Node, user: aiida.orm.User, content: typing.Optional[str] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.comments.Comment Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendComment`\ , :py:obj:`aiida.orm.comments.CommentCollection`\ ] .. autodoc2-docstring:: aiida.orm.comments.Comment .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.comments.Comment.__init__ .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.comments.Comment._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.comments.Comment._CLS_COLLECTION .. py:method:: __str__() -> str :canonical: aiida.orm.comments.Comment.__str__ .. autodoc2-docstring:: aiida.orm.comments.Comment.__str__ .. py:property:: uuid :canonical: aiida.orm.comments.Comment.uuid :type: str .. autodoc2-docstring:: aiida.orm.comments.Comment.uuid .. py:property:: ctime :canonical: aiida.orm.comments.Comment.ctime :type: datetime.datetime .. autodoc2-docstring:: aiida.orm.comments.Comment.ctime .. py:property:: mtime :canonical: aiida.orm.comments.Comment.mtime :type: datetime.datetime .. autodoc2-docstring:: aiida.orm.comments.Comment.mtime .. py:method:: set_mtime(value: datetime.datetime) -> None :canonical: aiida.orm.comments.Comment.set_mtime .. autodoc2-docstring:: aiida.orm.comments.Comment.set_mtime .. py:property:: node :canonical: aiida.orm.comments.Comment.node :type: aiida.orm.Node .. autodoc2-docstring:: aiida.orm.comments.Comment.node .. py:property:: user :canonical: aiida.orm.comments.Comment.user :type: aiida.orm.User .. autodoc2-docstring:: aiida.orm.comments.Comment.user .. py:method:: set_user(value: aiida.orm.User) -> None :canonical: aiida.orm.comments.Comment.set_user .. autodoc2-docstring:: aiida.orm.comments.Comment.set_user .. py:property:: content :canonical: aiida.orm.comments.Comment.content :type: str .. autodoc2-docstring:: aiida.orm.comments.Comment.content .. py:method:: set_content(value: str) -> None :canonical: aiida.orm.comments.Comment.set_content .. autodoc2-docstring:: aiida.orm.comments.Comment.set_content .. py:class:: Computer(label: typing.Optional[str] = None, hostname: str = '', description: str = '', transport_type: str = '', scheduler_type: str = '', workdir: typing.Optional[str] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.computers.Computer Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendComputer`\ , :py:obj:`aiida.orm.computers.ComputerCollection`\ ] .. autodoc2-docstring:: aiida.orm.computers.Computer .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.computers.Computer.__init__ .. py:attribute:: _logger :canonical: aiida.orm.computers.Computer._logger :value: None .. autodoc2-docstring:: aiida.orm.computers.Computer._logger .. py:attribute:: PROPERTY_MINIMUM_SCHEDULER_POLL_INTERVAL :canonical: aiida.orm.computers.Computer.PROPERTY_MINIMUM_SCHEDULER_POLL_INTERVAL :value: 'minimum_scheduler_poll_interval' .. autodoc2-docstring:: aiida.orm.computers.Computer.PROPERTY_MINIMUM_SCHEDULER_POLL_INTERVAL .. py:attribute:: PROPERTY_MINIMUM_SCHEDULER_POLL_INTERVAL__DEFAULT :canonical: aiida.orm.computers.Computer.PROPERTY_MINIMUM_SCHEDULER_POLL_INTERVAL__DEFAULT :value: 10.0 .. autodoc2-docstring:: aiida.orm.computers.Computer.PROPERTY_MINIMUM_SCHEDULER_POLL_INTERVAL__DEFAULT .. py:attribute:: PROPERTY_WORKDIR :canonical: aiida.orm.computers.Computer.PROPERTY_WORKDIR :value: 'workdir' .. autodoc2-docstring:: aiida.orm.computers.Computer.PROPERTY_WORKDIR .. py:attribute:: PROPERTY_SHEBANG :canonical: aiida.orm.computers.Computer.PROPERTY_SHEBANG :value: 'shebang' .. autodoc2-docstring:: aiida.orm.computers.Computer.PROPERTY_SHEBANG .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.computers.Computer._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.computers.Computer._CLS_COLLECTION .. py:method:: __repr__() :canonical: aiida.orm.computers.Computer.__repr__ .. autodoc2-docstring:: aiida.orm.computers.Computer.__repr__ .. py:method:: __str__() :canonical: aiida.orm.computers.Computer.__str__ .. autodoc2-docstring:: aiida.orm.computers.Computer.__str__ .. py:property:: uuid :canonical: aiida.orm.computers.Computer.uuid :type: str .. autodoc2-docstring:: aiida.orm.computers.Computer.uuid .. py:property:: logger :canonical: aiida.orm.computers.Computer.logger :type: logging.Logger .. autodoc2-docstring:: aiida.orm.computers.Computer.logger .. py:method:: _label_validator(label: str) -> None :canonical: aiida.orm.computers.Computer._label_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._label_validator .. py:method:: _hostname_validator(hostname: str) -> None :canonical: aiida.orm.computers.Computer._hostname_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._hostname_validator .. py:method:: _description_validator(description: str) -> None :canonical: aiida.orm.computers.Computer._description_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._description_validator .. py:method:: _transport_type_validator(transport_type: str) -> None :canonical: aiida.orm.computers.Computer._transport_type_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._transport_type_validator .. py:method:: _scheduler_type_validator(scheduler_type: str) -> None :canonical: aiida.orm.computers.Computer._scheduler_type_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._scheduler_type_validator .. py:method:: _prepend_text_validator(prepend_text: str) -> None :canonical: aiida.orm.computers.Computer._prepend_text_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._prepend_text_validator .. py:method:: _append_text_validator(append_text: str) -> None :canonical: aiida.orm.computers.Computer._append_text_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._append_text_validator .. py:method:: _workdir_validator(workdir: str) -> None :canonical: aiida.orm.computers.Computer._workdir_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._workdir_validator .. py:method:: _mpirun_command_validator(mpirun_cmd: typing.Union[typing.List[str], typing.Tuple[str, ...]]) -> None :canonical: aiida.orm.computers.Computer._mpirun_command_validator .. autodoc2-docstring:: aiida.orm.computers.Computer._mpirun_command_validator .. py:method:: validate() -> None :canonical: aiida.orm.computers.Computer.validate .. autodoc2-docstring:: aiida.orm.computers.Computer.validate .. py:method:: _default_mpiprocs_per_machine_validator(def_cpus_per_machine: typing.Optional[int]) -> None :canonical: aiida.orm.computers.Computer._default_mpiprocs_per_machine_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer._default_mpiprocs_per_machine_validator .. py:method:: default_memory_per_machine_validator(def_memory_per_machine: typing.Optional[int]) -> None :canonical: aiida.orm.computers.Computer.default_memory_per_machine_validator :classmethod: .. autodoc2-docstring:: aiida.orm.computers.Computer.default_memory_per_machine_validator .. py:method:: copy() -> aiida.orm.computers.Computer :canonical: aiida.orm.computers.Computer.copy .. autodoc2-docstring:: aiida.orm.computers.Computer.copy .. py:method:: store() -> aiida.orm.computers.Computer :canonical: aiida.orm.computers.Computer.store .. autodoc2-docstring:: aiida.orm.computers.Computer.store .. py:property:: label :canonical: aiida.orm.computers.Computer.label :type: str .. autodoc2-docstring:: aiida.orm.computers.Computer.label .. py:property:: description :canonical: aiida.orm.computers.Computer.description :type: str .. autodoc2-docstring:: aiida.orm.computers.Computer.description .. py:property:: hostname :canonical: aiida.orm.computers.Computer.hostname :type: str .. autodoc2-docstring:: aiida.orm.computers.Computer.hostname .. py:property:: scheduler_type :canonical: aiida.orm.computers.Computer.scheduler_type :type: str .. autodoc2-docstring:: aiida.orm.computers.Computer.scheduler_type .. py:property:: transport_type :canonical: aiida.orm.computers.Computer.transport_type :type: str .. autodoc2-docstring:: aiida.orm.computers.Computer.transport_type .. py:property:: metadata :canonical: aiida.orm.computers.Computer.metadata :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.orm.computers.Computer.metadata .. py:method:: delete_property(name: str, raise_exception: bool = True) -> None :canonical: aiida.orm.computers.Computer.delete_property .. autodoc2-docstring:: aiida.orm.computers.Computer.delete_property .. py:method:: set_property(name: str, value: typing.Any) -> None :canonical: aiida.orm.computers.Computer.set_property .. autodoc2-docstring:: aiida.orm.computers.Computer.set_property .. py:method:: get_property(name: str, *args: typing.Any) -> typing.Any :canonical: aiida.orm.computers.Computer.get_property .. autodoc2-docstring:: aiida.orm.computers.Computer.get_property .. py:method:: get_prepend_text() -> str :canonical: aiida.orm.computers.Computer.get_prepend_text .. autodoc2-docstring:: aiida.orm.computers.Computer.get_prepend_text .. py:method:: set_prepend_text(val: str) -> None :canonical: aiida.orm.computers.Computer.set_prepend_text .. autodoc2-docstring:: aiida.orm.computers.Computer.set_prepend_text .. py:method:: get_append_text() -> str :canonical: aiida.orm.computers.Computer.get_append_text .. autodoc2-docstring:: aiida.orm.computers.Computer.get_append_text .. py:method:: set_append_text(val: str) -> None :canonical: aiida.orm.computers.Computer.set_append_text .. autodoc2-docstring:: aiida.orm.computers.Computer.set_append_text .. py:method:: get_use_double_quotes() -> bool :canonical: aiida.orm.computers.Computer.get_use_double_quotes .. autodoc2-docstring:: aiida.orm.computers.Computer.get_use_double_quotes .. py:method:: set_use_double_quotes(val: bool) -> None :canonical: aiida.orm.computers.Computer.set_use_double_quotes .. autodoc2-docstring:: aiida.orm.computers.Computer.set_use_double_quotes .. py:method:: get_mpirun_command() -> typing.List[str] :canonical: aiida.orm.computers.Computer.get_mpirun_command .. autodoc2-docstring:: aiida.orm.computers.Computer.get_mpirun_command .. py:method:: set_mpirun_command(val: typing.Union[typing.List[str], typing.Tuple[str, ...]]) -> None :canonical: aiida.orm.computers.Computer.set_mpirun_command .. autodoc2-docstring:: aiida.orm.computers.Computer.set_mpirun_command .. py:method:: get_default_mpiprocs_per_machine() -> typing.Optional[int] :canonical: aiida.orm.computers.Computer.get_default_mpiprocs_per_machine .. autodoc2-docstring:: aiida.orm.computers.Computer.get_default_mpiprocs_per_machine .. py:method:: set_default_mpiprocs_per_machine(def_cpus_per_machine: typing.Optional[int]) -> None :canonical: aiida.orm.computers.Computer.set_default_mpiprocs_per_machine .. autodoc2-docstring:: aiida.orm.computers.Computer.set_default_mpiprocs_per_machine .. py:method:: get_default_memory_per_machine() -> typing.Optional[int] :canonical: aiida.orm.computers.Computer.get_default_memory_per_machine .. autodoc2-docstring:: aiida.orm.computers.Computer.get_default_memory_per_machine .. py:method:: set_default_memory_per_machine(def_memory_per_machine: typing.Optional[int]) -> None :canonical: aiida.orm.computers.Computer.set_default_memory_per_machine .. autodoc2-docstring:: aiida.orm.computers.Computer.set_default_memory_per_machine .. py:method:: get_minimum_job_poll_interval() -> float :canonical: aiida.orm.computers.Computer.get_minimum_job_poll_interval .. autodoc2-docstring:: aiida.orm.computers.Computer.get_minimum_job_poll_interval .. py:method:: set_minimum_job_poll_interval(interval: float) -> None :canonical: aiida.orm.computers.Computer.set_minimum_job_poll_interval .. autodoc2-docstring:: aiida.orm.computers.Computer.set_minimum_job_poll_interval .. py:method:: get_workdir() -> str :canonical: aiida.orm.computers.Computer.get_workdir .. autodoc2-docstring:: aiida.orm.computers.Computer.get_workdir .. py:method:: set_workdir(val: str) -> None :canonical: aiida.orm.computers.Computer.set_workdir .. autodoc2-docstring:: aiida.orm.computers.Computer.set_workdir .. py:method:: get_shebang() -> str :canonical: aiida.orm.computers.Computer.get_shebang .. autodoc2-docstring:: aiida.orm.computers.Computer.get_shebang .. py:method:: set_shebang(val: str) -> None :canonical: aiida.orm.computers.Computer.set_shebang .. autodoc2-docstring:: aiida.orm.computers.Computer.set_shebang .. py:method:: get_authinfo(user: aiida.orm.User) -> aiida.orm.AuthInfo :canonical: aiida.orm.computers.Computer.get_authinfo .. autodoc2-docstring:: aiida.orm.computers.Computer.get_authinfo .. py:property:: is_configured :canonical: aiida.orm.computers.Computer.is_configured :type: bool .. autodoc2-docstring:: aiida.orm.computers.Computer.is_configured .. py:method:: is_user_configured(user: aiida.orm.User) -> bool :canonical: aiida.orm.computers.Computer.is_user_configured .. autodoc2-docstring:: aiida.orm.computers.Computer.is_user_configured .. py:method:: is_user_enabled(user: aiida.orm.User) -> bool :canonical: aiida.orm.computers.Computer.is_user_enabled .. autodoc2-docstring:: aiida.orm.computers.Computer.is_user_enabled .. py:method:: get_transport(user: typing.Optional[aiida.orm.User] = None) -> aiida.transports.Transport :canonical: aiida.orm.computers.Computer.get_transport .. autodoc2-docstring:: aiida.orm.computers.Computer.get_transport .. py:method:: get_transport_class() -> typing.Type[aiida.transports.Transport] :canonical: aiida.orm.computers.Computer.get_transport_class .. autodoc2-docstring:: aiida.orm.computers.Computer.get_transport_class .. py:method:: get_scheduler() -> aiida.schedulers.Scheduler :canonical: aiida.orm.computers.Computer.get_scheduler .. autodoc2-docstring:: aiida.orm.computers.Computer.get_scheduler .. py:method:: configure(user: typing.Optional[aiida.orm.User] = None, **kwargs: typing.Any) -> aiida.orm.AuthInfo :canonical: aiida.orm.computers.Computer.configure .. autodoc2-docstring:: aiida.orm.computers.Computer.configure .. py:method:: get_configuration(user: typing.Optional[aiida.orm.User] = None) -> typing.Dict[str, typing.Any] :canonical: aiida.orm.computers.Computer.get_configuration .. autodoc2-docstring:: aiida.orm.computers.Computer.get_configuration .. py:class:: ComputerEntityLoader :canonical: aiida.orm.utils.loaders.ComputerEntityLoader Bases: :py:obj:`aiida.orm.utils.loaders.OrmEntityLoader` .. autodoc2-docstring:: aiida.orm.utils.loaders.ComputerEntityLoader .. py:method:: orm_base_class() :canonical: aiida.orm.utils.loaders.ComputerEntityLoader.orm_base_class .. autodoc2-docstring:: aiida.orm.utils.loaders.ComputerEntityLoader.orm_base_class .. py:method:: _get_query_builder_label_identifier(identifier, classes, operator='==', project='*') :canonical: aiida.orm.utils.loaders.ComputerEntityLoader._get_query_builder_label_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.ComputerEntityLoader._get_query_builder_label_identifier .. py:class:: ContainerizedCode(engine_command: str, image_name: str, **kwargs) :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode Bases: :py:obj:`aiida.orm.nodes.data.code.installed.InstalledCode` .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode.__init__ .. py:attribute:: _KEY_ATTRIBUTE_ENGINE_COMMAND :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode._KEY_ATTRIBUTE_ENGINE_COMMAND :type: str :value: 'engine_command' .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode._KEY_ATTRIBUTE_ENGINE_COMMAND .. py:attribute:: _KEY_ATTRIBUTE_IMAGE_NAME :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode._KEY_ATTRIBUTE_IMAGE_NAME :type: str :value: 'image_name' .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode._KEY_ATTRIBUTE_IMAGE_NAME .. py:property:: filepath_executable :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode.filepath_executable :type: pathlib.PurePosixPath .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode.filepath_executable .. py:property:: engine_command :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode.engine_command :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode.engine_command .. py:property:: image_name :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode.image_name :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode.image_name .. py:method:: get_prepend_cmdline_params(mpi_args: list[str] | None = None, extra_mpirun_params: list[str] | None = None) -> list[str] :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode.get_prepend_cmdline_params .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode.get_prepend_cmdline_params .. py:method:: _get_cli_options() -> dict :canonical: aiida.orm.nodes.data.code.containerized.ContainerizedCode._get_cli_options :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.containerized.ContainerizedCode._get_cli_options .. py:data:: DESCENDING :canonical: aiida.orm.logs.DESCENDING :value: 'desc' .. autodoc2-docstring:: aiida.orm.logs.DESCENDING .. py:class:: Data(*args, source=None, **kwargs) :canonical: aiida.orm.nodes.data.data.Data Bases: :py:obj:`aiida.orm.nodes.node.Node` .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.__init__ .. py:attribute:: _source_attributes :canonical: aiida.orm.nodes.data.data.Data._source_attributes :value: ['db_name', 'db_uri', 'uri', 'id', 'version', 'extras', 'source_md5', 'description', 'license'] .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._source_attributes .. py:attribute:: _export_format_replacements :canonical: aiida.orm.nodes.data.data.Data._export_format_replacements :type: typing.Dict[str, str] :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._export_format_replacements .. py:attribute:: _storable :canonical: aiida.orm.nodes.data.data.Data._storable :value: True .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._storable .. py:attribute:: _unstorable_message :canonical: aiida.orm.nodes.data.data.Data._unstorable_message :value: 'storing for this node has been disabled' .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._unstorable_message .. py:method:: __copy__() :canonical: aiida.orm.nodes.data.data.Data.__copy__ .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.__copy__ .. py:method:: __deepcopy__(memo) :canonical: aiida.orm.nodes.data.data.Data.__deepcopy__ .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.__deepcopy__ .. py:method:: clone() :canonical: aiida.orm.nodes.data.data.Data.clone .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.clone .. py:property:: source :canonical: aiida.orm.nodes.data.data.Data.source .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.source .. py:method:: set_source(source) :canonical: aiida.orm.nodes.data.data.Data.set_source .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.set_source .. py:property:: creator :canonical: aiida.orm.nodes.data.data.Data.creator .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.creator .. py:method:: _exportcontent(fileformat, main_file_name='', **kwargs) :canonical: aiida.orm.nodes.data.data.Data._exportcontent .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._exportcontent .. py:method:: export(path, fileformat=None, overwrite=False, **kwargs) :canonical: aiida.orm.nodes.data.data.Data.export .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.export .. py:method:: _get_exporters() :canonical: aiida.orm.nodes.data.data.Data._get_exporters .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._get_exporters .. py:method:: get_export_formats() :canonical: aiida.orm.nodes.data.data.Data.get_export_formats :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.get_export_formats .. py:method:: importstring(inputstring, fileformat, **kwargs) :canonical: aiida.orm.nodes.data.data.Data.importstring .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.importstring .. py:method:: importfile(fname, fileformat=None) :canonical: aiida.orm.nodes.data.data.Data.importfile .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.importfile .. py:method:: _get_importers() :canonical: aiida.orm.nodes.data.data.Data._get_importers .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._get_importers .. py:method:: convert(object_format=None, *args) :canonical: aiida.orm.nodes.data.data.Data.convert .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data.convert .. py:method:: _get_converters() :canonical: aiida.orm.nodes.data.data.Data._get_converters .. autodoc2-docstring:: aiida.orm.nodes.data.data.Data._get_converters .. py:class:: Dict(value=None, **kwargs) :canonical: aiida.orm.nodes.data.dict.Dict Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.__init__ .. py:method:: __getitem__(key) :canonical: aiida.orm.nodes.data.dict.Dict.__getitem__ .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.__getitem__ .. py:method:: __setitem__(key, value) :canonical: aiida.orm.nodes.data.dict.Dict.__setitem__ .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.__setitem__ .. py:method:: __eq__(other) :canonical: aiida.orm.nodes.data.dict.Dict.__eq__ .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.__eq__ .. py:method:: __contains__(key: str) -> bool :canonical: aiida.orm.nodes.data.dict.Dict.__contains__ .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.__contains__ .. py:method:: set_dict(dictionary) :canonical: aiida.orm.nodes.data.dict.Dict.set_dict .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.set_dict .. py:method:: update_dict(dictionary) :canonical: aiida.orm.nodes.data.dict.Dict.update_dict .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.update_dict .. py:method:: get_dict() :canonical: aiida.orm.nodes.data.dict.Dict.get_dict .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.get_dict .. py:method:: keys() :canonical: aiida.orm.nodes.data.dict.Dict.keys .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.keys .. py:method:: items() :canonical: aiida.orm.nodes.data.dict.Dict.items .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.items .. py:property:: dict :canonical: aiida.orm.nodes.data.dict.Dict.dict .. autodoc2-docstring:: aiida.orm.nodes.data.dict.Dict.dict .. py:class:: Entity(backend_entity: aiida.orm.entities.BackendEntityType) :canonical: aiida.orm.entities.Entity Bases: :py:obj:`abc.ABC`, :py:obj:`typing.Generic`\ [\ :py:obj:`aiida.orm.entities.BackendEntityType`\ , :py:obj:`aiida.orm.entities.CollectionType`\ ] .. autodoc2-docstring:: aiida.orm.entities.Entity .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.entities.Entity.__init__ .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.entities.Entity._CLS_COLLECTION :type: typing.Type[aiida.orm.entities.CollectionType] :value: None .. autodoc2-docstring:: aiida.orm.entities.Entity._CLS_COLLECTION .. py:method:: objects() -> aiida.orm.entities.CollectionType :canonical: aiida.orm.entities.Entity.objects .. autodoc2-docstring:: aiida.orm.entities.Entity.objects .. py:method:: collection() -> aiida.orm.entities.CollectionType :canonical: aiida.orm.entities.Entity.collection .. autodoc2-docstring:: aiida.orm.entities.Entity.collection .. py:method:: get(**kwargs) :canonical: aiida.orm.entities.Entity.get :classmethod: .. autodoc2-docstring:: aiida.orm.entities.Entity.get .. py:method:: from_backend_entity(backend_entity: aiida.orm.entities.BackendEntityType) -> aiida.orm.entities.EntityType :canonical: aiida.orm.entities.Entity.from_backend_entity :classmethod: .. autodoc2-docstring:: aiida.orm.entities.Entity.from_backend_entity .. py:method:: __getstate__() :canonical: aiida.orm.entities.Entity.__getstate__ .. autodoc2-docstring:: aiida.orm.entities.Entity.__getstate__ .. py:method:: initialize() -> None :canonical: aiida.orm.entities.Entity.initialize .. autodoc2-docstring:: aiida.orm.entities.Entity.initialize .. py:property:: id :canonical: aiida.orm.entities.Entity.id :type: int .. autodoc2-docstring:: aiida.orm.entities.Entity.id .. py:property:: pk :canonical: aiida.orm.entities.Entity.pk :type: int .. autodoc2-docstring:: aiida.orm.entities.Entity.pk .. py:method:: store() -> aiida.orm.entities.EntityType :canonical: aiida.orm.entities.Entity.store .. autodoc2-docstring:: aiida.orm.entities.Entity.store .. py:property:: is_stored :canonical: aiida.orm.entities.Entity.is_stored :type: bool .. autodoc2-docstring:: aiida.orm.entities.Entity.is_stored .. py:property:: backend :canonical: aiida.orm.entities.Entity.backend :type: aiida.orm.implementation.StorageBackend .. autodoc2-docstring:: aiida.orm.entities.Entity.backend .. py:property:: backend_entity :canonical: aiida.orm.entities.Entity.backend_entity :type: aiida.orm.entities.BackendEntityType .. autodoc2-docstring:: aiida.orm.entities.Entity.backend_entity .. py:class:: EntityExtras(entity: typing.Union[aiida.orm.nodes.node.Node, aiida.orm.groups.Group]) :canonical: aiida.orm.extras.EntityExtras .. autodoc2-docstring:: aiida.orm.extras.EntityExtras .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.__init__ .. py:method:: __contains__(key: str) -> bool :canonical: aiida.orm.extras.EntityExtras.__contains__ .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.__contains__ .. py:property:: all :canonical: aiida.orm.extras.EntityExtras.all :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.all .. py:method:: get(key: str, default: typing.Any = _NO_DEFAULT) -> typing.Any :canonical: aiida.orm.extras.EntityExtras.get .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.get .. py:method:: get_many(keys: typing.List[str]) -> typing.List[typing.Any] :canonical: aiida.orm.extras.EntityExtras.get_many .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.get_many .. py:method:: set(key: str, value: typing.Any) -> None :canonical: aiida.orm.extras.EntityExtras.set .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.set .. py:method:: set_many(extras: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.extras.EntityExtras.set_many .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.set_many .. py:method:: reset(extras: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.extras.EntityExtras.reset .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.reset .. py:method:: delete(key: str) -> None :canonical: aiida.orm.extras.EntityExtras.delete .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.delete .. py:method:: delete_many(keys: typing.List[str]) -> None :canonical: aiida.orm.extras.EntityExtras.delete_many .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.delete_many .. py:method:: clear() -> None :canonical: aiida.orm.extras.EntityExtras.clear .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.clear .. py:method:: items() -> typing.Iterable[typing.Tuple[str, typing.Any]] :canonical: aiida.orm.extras.EntityExtras.items .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.items .. py:method:: keys() -> typing.Iterable[str] :canonical: aiida.orm.extras.EntityExtras.keys .. autodoc2-docstring:: aiida.orm.extras.EntityExtras.keys .. py:class:: EntityTypes(*args, **kwds) :canonical: aiida.orm.entities.EntityTypes Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.orm.entities.EntityTypes .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.__init__ .. py:attribute:: AUTHINFO :canonical: aiida.orm.entities.EntityTypes.AUTHINFO :value: 'authinfo' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.AUTHINFO .. py:attribute:: COMMENT :canonical: aiida.orm.entities.EntityTypes.COMMENT :value: 'comment' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.COMMENT .. py:attribute:: COMPUTER :canonical: aiida.orm.entities.EntityTypes.COMPUTER :value: 'computer' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.COMPUTER .. py:attribute:: GROUP :canonical: aiida.orm.entities.EntityTypes.GROUP :value: 'group' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.GROUP .. py:attribute:: LOG :canonical: aiida.orm.entities.EntityTypes.LOG :value: 'log' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.LOG .. py:attribute:: NODE :canonical: aiida.orm.entities.EntityTypes.NODE :value: 'node' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.NODE .. py:attribute:: USER :canonical: aiida.orm.entities.EntityTypes.USER :value: 'user' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.USER .. py:attribute:: LINK :canonical: aiida.orm.entities.EntityTypes.LINK :value: 'link' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.LINK .. py:attribute:: GROUP_NODE :canonical: aiida.orm.entities.EntityTypes.GROUP_NODE :value: 'group_node' .. autodoc2-docstring:: aiida.orm.entities.EntityTypes.GROUP_NODE .. py:class:: EnumData(member: enum.Enum, *args, **kwargs) :canonical: aiida.orm.nodes.data.enum.EnumData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.__init__ .. py:attribute:: KEY_NAME :canonical: aiida.orm.nodes.data.enum.EnumData.KEY_NAME :value: 'name' .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.KEY_NAME .. py:attribute:: KEY_VALUE :canonical: aiida.orm.nodes.data.enum.EnumData.KEY_VALUE :value: 'value' .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.KEY_VALUE .. py:attribute:: KEY_IDENTIFIER :canonical: aiida.orm.nodes.data.enum.EnumData.KEY_IDENTIFIER :value: 'identifier' .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.KEY_IDENTIFIER .. py:property:: name :canonical: aiida.orm.nodes.data.enum.EnumData.name :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.name .. py:property:: value :canonical: aiida.orm.nodes.data.enum.EnumData.value :type: typing.Any .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.value .. py:method:: get_enum() -> typing.Type[aiida.orm.nodes.data.enum.EnumType] :canonical: aiida.orm.nodes.data.enum.EnumData.get_enum .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.get_enum .. py:method:: get_member() -> aiida.orm.nodes.data.enum.EnumType :canonical: aiida.orm.nodes.data.enum.EnumData.get_member .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.get_member .. py:method:: __eq__(other: typing.Any) -> bool :canonical: aiida.orm.nodes.data.enum.EnumData.__eq__ .. autodoc2-docstring:: aiida.orm.nodes.data.enum.EnumData.__eq__ .. py:class:: Float :canonical: aiida.orm.nodes.data.float.Float Bases: :py:obj:`aiida.orm.nodes.data.numeric.NumericType` .. autodoc2-docstring:: aiida.orm.nodes.data.float.Float .. py:attribute:: _type :canonical: aiida.orm.nodes.data.float.Float._type :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.float.Float._type .. py:class:: FolderData(**kwargs) :canonical: aiida.orm.nodes.data.folder.FolderData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.folder.FolderData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.folder.FolderData.__init__ .. py:class:: Group(label: typing.Optional[str] = None, user: typing.Optional[aiida.orm.User] = None, description: str = '', type_string: typing.Optional[str] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.groups.Group Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendGroup`\ , :py:obj:`aiida.orm.groups.GroupCollection`\ ] .. autodoc2-docstring:: aiida.orm.groups.Group .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.groups.Group.__init__ .. py:attribute:: _type_string :canonical: aiida.orm.groups.Group._type_string :type: typing.ClassVar[typing.Optional[str]] :value: None .. autodoc2-docstring:: aiida.orm.groups.Group._type_string .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.groups.Group._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.groups.Group._CLS_COLLECTION .. py:method:: base() -> aiida.orm.groups.GroupBase :canonical: aiida.orm.groups.Group.base .. autodoc2-docstring:: aiida.orm.groups.Group.base .. py:method:: __repr__() -> str :canonical: aiida.orm.groups.Group.__repr__ .. autodoc2-docstring:: aiida.orm.groups.Group.__repr__ .. py:method:: __str__() -> str :canonical: aiida.orm.groups.Group.__str__ .. autodoc2-docstring:: aiida.orm.groups.Group.__str__ .. py:method:: store() -> aiida.orm.groups.SelfType :canonical: aiida.orm.groups.Group.store .. autodoc2-docstring:: aiida.orm.groups.Group.store .. py:method:: entry_point() -> typing.Optional[aiida.plugins.entry_point.EntryPoint] :canonical: aiida.orm.groups.Group.entry_point .. autodoc2-docstring:: aiida.orm.groups.Group.entry_point .. py:property:: uuid :canonical: aiida.orm.groups.Group.uuid :type: str .. autodoc2-docstring:: aiida.orm.groups.Group.uuid .. py:property:: label :canonical: aiida.orm.groups.Group.label :type: str .. autodoc2-docstring:: aiida.orm.groups.Group.label .. py:property:: description :canonical: aiida.orm.groups.Group.description :type: str .. autodoc2-docstring:: aiida.orm.groups.Group.description .. py:property:: type_string :canonical: aiida.orm.groups.Group.type_string :type: str .. autodoc2-docstring:: aiida.orm.groups.Group.type_string .. py:property:: user :canonical: aiida.orm.groups.Group.user :type: aiida.orm.User .. autodoc2-docstring:: aiida.orm.groups.Group.user .. py:method:: count() -> int :canonical: aiida.orm.groups.Group.count .. autodoc2-docstring:: aiida.orm.groups.Group.count .. py:property:: nodes :canonical: aiida.orm.groups.Group.nodes :type: aiida.orm.convert.ConvertIterator .. autodoc2-docstring:: aiida.orm.groups.Group.nodes .. py:property:: is_empty :canonical: aiida.orm.groups.Group.is_empty :type: bool .. autodoc2-docstring:: aiida.orm.groups.Group.is_empty .. py:method:: clear() -> None :canonical: aiida.orm.groups.Group.clear .. autodoc2-docstring:: aiida.orm.groups.Group.clear .. py:method:: add_nodes(nodes: typing.Union[aiida.orm.nodes.Node, typing.Sequence[aiida.orm.nodes.Node]]) -> None :canonical: aiida.orm.groups.Group.add_nodes .. autodoc2-docstring:: aiida.orm.groups.Group.add_nodes .. py:method:: remove_nodes(nodes: typing.Union[aiida.orm.nodes.Node, typing.Sequence[aiida.orm.nodes.Node]]) -> None :canonical: aiida.orm.groups.Group.remove_nodes .. autodoc2-docstring:: aiida.orm.groups.Group.remove_nodes .. py:method:: is_user_defined() -> bool :canonical: aiida.orm.groups.Group.is_user_defined .. autodoc2-docstring:: aiida.orm.groups.Group.is_user_defined .. py:attribute:: _deprecated_extra_methods :canonical: aiida.orm.groups.Group._deprecated_extra_methods :value: None .. autodoc2-docstring:: aiida.orm.groups.Group._deprecated_extra_methods .. py:method:: __getattr__(name: str) -> typing.Any :canonical: aiida.orm.groups.Group.__getattr__ .. autodoc2-docstring:: aiida.orm.groups.Group.__getattr__ .. py:class:: GroupEntityLoader :canonical: aiida.orm.utils.loaders.GroupEntityLoader Bases: :py:obj:`aiida.orm.utils.loaders.OrmEntityLoader` .. autodoc2-docstring:: aiida.orm.utils.loaders.GroupEntityLoader .. py:method:: orm_base_class() :canonical: aiida.orm.utils.loaders.GroupEntityLoader.orm_base_class .. autodoc2-docstring:: aiida.orm.utils.loaders.GroupEntityLoader.orm_base_class .. py:method:: _get_query_builder_label_identifier(identifier, classes, operator='==', project='*') :canonical: aiida.orm.utils.loaders.GroupEntityLoader._get_query_builder_label_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.GroupEntityLoader._get_query_builder_label_identifier .. py:class:: ImportGroup(label: typing.Optional[str] = None, user: typing.Optional[aiida.orm.User] = None, description: str = '', type_string: typing.Optional[str] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.groups.ImportGroup Bases: :py:obj:`aiida.orm.groups.Group` .. autodoc2-docstring:: aiida.orm.groups.ImportGroup .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.groups.ImportGroup.__init__ .. py:class:: InstalledCode(computer: aiida.orm.Computer, filepath_executable: str, **kwargs) :canonical: aiida.orm.nodes.data.code.installed.InstalledCode Bases: :py:obj:`aiida.orm.nodes.data.code.legacy.Code` .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.__init__ .. py:attribute:: _KEY_ATTRIBUTE_FILEPATH_EXECUTABLE :canonical: aiida.orm.nodes.data.code.installed.InstalledCode._KEY_ATTRIBUTE_FILEPATH_EXECUTABLE :type: str :value: 'filepath_executable' .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode._KEY_ATTRIBUTE_FILEPATH_EXECUTABLE .. py:method:: _validate() :canonical: aiida.orm.nodes.data.code.installed.InstalledCode._validate .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode._validate .. py:method:: validate_filepath_executable() :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.validate_filepath_executable .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.validate_filepath_executable .. py:method:: can_run_on_computer(computer: aiida.orm.Computer) -> bool :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.can_run_on_computer .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.can_run_on_computer .. py:method:: get_executable() -> pathlib.PurePosixPath :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.get_executable .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.get_executable .. py:property:: computer :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.computer :type: aiida.orm.Computer .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.computer .. py:property:: full_label :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.full_label :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.full_label .. py:property:: filepath_executable :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.filepath_executable :type: pathlib.PurePosixPath .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.filepath_executable .. py:method:: cli_validate_label_uniqueness(ctx, _, value) :canonical: aiida.orm.nodes.data.code.installed.InstalledCode.cli_validate_label_uniqueness :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode.cli_validate_label_uniqueness .. py:method:: _get_cli_options() -> dict :canonical: aiida.orm.nodes.data.code.installed.InstalledCode._get_cli_options :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.installed.InstalledCode._get_cli_options .. py:class:: Int :canonical: aiida.orm.nodes.data.int.Int Bases: :py:obj:`aiida.orm.nodes.data.numeric.NumericType` .. autodoc2-docstring:: aiida.orm.nodes.data.int.Int .. py:attribute:: _type :canonical: aiida.orm.nodes.data.int.Int._type :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.int.Int._type .. py:class:: JsonableData(obj: aiida.orm.nodes.data.jsonable.JsonSerializableProtocol, *args, **kwargs) :canonical: aiida.orm.nodes.data.jsonable.JsonableData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.jsonable.JsonableData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.jsonable.JsonableData.__init__ .. py:method:: _deserialize_float_constants(data: typing.Any) :canonical: aiida.orm.nodes.data.jsonable.JsonableData._deserialize_float_constants :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.jsonable.JsonableData._deserialize_float_constants .. py:method:: _get_object() -> aiida.orm.nodes.data.jsonable.JsonSerializableProtocol :canonical: aiida.orm.nodes.data.jsonable.JsonableData._get_object .. autodoc2-docstring:: aiida.orm.nodes.data.jsonable.JsonableData._get_object .. py:property:: obj :canonical: aiida.orm.nodes.data.jsonable.JsonableData.obj :type: aiida.orm.nodes.data.jsonable.JsonSerializableProtocol .. autodoc2-docstring:: aiida.orm.nodes.data.jsonable.JsonableData.obj .. py:class:: Kind(**kwargs) :canonical: aiida.orm.nodes.data.structure.Kind .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.__init__ .. py:method:: get_raw() :canonical: aiida.orm.nodes.data.structure.Kind.get_raw .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.get_raw .. py:method:: reset_mass() :canonical: aiida.orm.nodes.data.structure.Kind.reset_mass .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.reset_mass .. py:property:: name :canonical: aiida.orm.nodes.data.structure.Kind.name .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.name .. py:method:: set_automatic_kind_name(tag=None) :canonical: aiida.orm.nodes.data.structure.Kind.set_automatic_kind_name .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.set_automatic_kind_name .. py:method:: compare_with(other_kind) :canonical: aiida.orm.nodes.data.structure.Kind.compare_with .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.compare_with .. py:property:: mass :canonical: aiida.orm.nodes.data.structure.Kind.mass .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.mass .. py:property:: weights :canonical: aiida.orm.nodes.data.structure.Kind.weights .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.weights .. py:method:: get_symbols_string() :canonical: aiida.orm.nodes.data.structure.Kind.get_symbols_string .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.get_symbols_string .. py:property:: symbol :canonical: aiida.orm.nodes.data.structure.Kind.symbol .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.symbol .. py:property:: symbols :canonical: aiida.orm.nodes.data.structure.Kind.symbols .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.symbols .. py:method:: set_symbols_and_weights(symbols, weights) :canonical: aiida.orm.nodes.data.structure.Kind.set_symbols_and_weights .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.set_symbols_and_weights .. py:property:: is_alloy :canonical: aiida.orm.nodes.data.structure.Kind.is_alloy .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.is_alloy .. py:property:: has_vacancies :canonical: aiida.orm.nodes.data.structure.Kind.has_vacancies .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Kind.has_vacancies .. py:method:: __repr__() :canonical: aiida.orm.nodes.data.structure.Kind.__repr__ .. py:method:: __str__() :canonical: aiida.orm.nodes.data.structure.Kind.__str__ .. py:class:: KpointsData :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData Bases: :py:obj:`aiida.orm.nodes.data.array.array.ArrayData` .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData .. py:method:: get_description() :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.get_description .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.get_description .. py:property:: cell :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.cell .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.cell .. py:method:: _set_cell(value) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData._set_cell .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData._set_cell .. py:property:: pbc :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.pbc .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.pbc .. py:method:: _set_pbc(value) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData._set_pbc .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData._set_pbc .. py:property:: labels :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.labels .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.labels .. py:method:: _set_labels(value) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData._set_labels .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData._set_labels .. py:method:: _change_reference(kpoints, to_cartesian=True) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData._change_reference .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData._change_reference .. py:method:: set_cell_from_structure(structuredata) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.set_cell_from_structure .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.set_cell_from_structure .. py:method:: set_cell(cell, pbc=None) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.set_cell .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.set_cell .. py:property:: reciprocal_cell :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.reciprocal_cell .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.reciprocal_cell .. py:method:: set_kpoints_mesh(mesh, offset=None) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.set_kpoints_mesh .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.set_kpoints_mesh .. py:method:: get_kpoints_mesh(print_list=False) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.get_kpoints_mesh .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.get_kpoints_mesh .. py:method:: set_kpoints_mesh_from_density(distance, offset=None, force_parity=False) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.set_kpoints_mesh_from_density .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.set_kpoints_mesh_from_density .. py:property:: _dimension :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData._dimension .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData._dimension .. py:method:: _validate_kpoints_weights(kpoints, weights) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData._validate_kpoints_weights .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData._validate_kpoints_weights .. py:method:: set_kpoints(kpoints, cartesian=False, labels=None, weights=None, fill_values=0) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.set_kpoints .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.set_kpoints .. py:method:: get_kpoints(also_weights=False, cartesian=False) :canonical: aiida.orm.nodes.data.array.kpoints.KpointsData.get_kpoints .. autodoc2-docstring:: aiida.orm.nodes.data.array.kpoints.KpointsData.get_kpoints .. py:class:: LinkManager(link_triples: typing.List[aiida.orm.utils.links.LinkTriple]) :canonical: aiida.orm.utils.links.LinkManager .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.__init__ .. py:method:: __iter__() -> typing.Iterator[aiida.orm.utils.links.LinkTriple] :canonical: aiida.orm.utils.links.LinkManager.__iter__ .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.__iter__ .. py:method:: __next__() -> typing.Generator[aiida.orm.utils.links.LinkTriple, None, None] :canonical: aiida.orm.utils.links.LinkManager.__next__ .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.__next__ .. py:method:: __bool__() :canonical: aiida.orm.utils.links.LinkManager.__bool__ .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.__bool__ .. py:method:: next() -> typing.Generator[aiida.orm.utils.links.LinkTriple, None, None] :canonical: aiida.orm.utils.links.LinkManager.next .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.next .. py:method:: one() -> aiida.orm.utils.links.LinkTriple :canonical: aiida.orm.utils.links.LinkManager.one .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.one .. py:method:: first() -> typing.Optional[aiida.orm.utils.links.LinkTriple] :canonical: aiida.orm.utils.links.LinkManager.first .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.first .. py:method:: all() -> typing.List[aiida.orm.utils.links.LinkTriple] :canonical: aiida.orm.utils.links.LinkManager.all .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.all .. py:method:: all_nodes() -> typing.List[aiida.orm.Node] :canonical: aiida.orm.utils.links.LinkManager.all_nodes .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.all_nodes .. py:method:: all_link_pairs() -> typing.List[aiida.orm.utils.links.LinkPair] :canonical: aiida.orm.utils.links.LinkManager.all_link_pairs .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.all_link_pairs .. py:method:: all_link_labels() -> typing.List[str] :canonical: aiida.orm.utils.links.LinkManager.all_link_labels .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.all_link_labels .. py:method:: get_node_by_label(label: str) -> aiida.orm.Node :canonical: aiida.orm.utils.links.LinkManager.get_node_by_label .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.get_node_by_label .. py:method:: nested(sort=True) :canonical: aiida.orm.utils.links.LinkManager.nested .. autodoc2-docstring:: aiida.orm.utils.links.LinkManager.nested .. py:class:: LinkPair :canonical: aiida.orm.utils.links.LinkPair Bases: :py:obj:`typing.NamedTuple` .. autodoc2-docstring:: aiida.orm.utils.links.LinkPair .. py:attribute:: link_type :canonical: aiida.orm.utils.links.LinkPair.link_type :type: aiida.common.links.LinkType :value: None .. autodoc2-docstring:: aiida.orm.utils.links.LinkPair.link_type .. py:attribute:: link_label :canonical: aiida.orm.utils.links.LinkPair.link_label :type: str :value: None .. autodoc2-docstring:: aiida.orm.utils.links.LinkPair.link_label .. py:class:: LinkTriple :canonical: aiida.orm.utils.links.LinkTriple Bases: :py:obj:`typing.NamedTuple` .. autodoc2-docstring:: aiida.orm.utils.links.LinkTriple .. py:attribute:: node :canonical: aiida.orm.utils.links.LinkTriple.node :type: aiida.orm.Node :value: None .. autodoc2-docstring:: aiida.orm.utils.links.LinkTriple.node .. py:attribute:: link_type :canonical: aiida.orm.utils.links.LinkTriple.link_type :type: aiida.common.links.LinkType :value: None .. autodoc2-docstring:: aiida.orm.utils.links.LinkTriple.link_type .. py:attribute:: link_label :canonical: aiida.orm.utils.links.LinkTriple.link_label :type: str :value: None .. autodoc2-docstring:: aiida.orm.utils.links.LinkTriple.link_label .. py:class:: List(value=None, **kwargs) :canonical: aiida.orm.nodes.data.list.List Bases: :py:obj:`aiida.orm.nodes.data.data.Data`, :py:obj:`collections.abc.MutableSequence` .. autodoc2-docstring:: aiida.orm.nodes.data.list.List .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.__init__ .. py:attribute:: _LIST_KEY :canonical: aiida.orm.nodes.data.list.List._LIST_KEY :value: 'list' .. autodoc2-docstring:: aiida.orm.nodes.data.list.List._LIST_KEY .. py:method:: __getitem__(item) :canonical: aiida.orm.nodes.data.list.List.__getitem__ .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.__getitem__ .. py:method:: __setitem__(key, value) :canonical: aiida.orm.nodes.data.list.List.__setitem__ .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.__setitem__ .. py:method:: __delitem__(key) :canonical: aiida.orm.nodes.data.list.List.__delitem__ .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.__delitem__ .. py:method:: __len__() :canonical: aiida.orm.nodes.data.list.List.__len__ .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.__len__ .. py:method:: __str__() :canonical: aiida.orm.nodes.data.list.List.__str__ .. py:method:: __eq__(other) :canonical: aiida.orm.nodes.data.list.List.__eq__ .. py:method:: append(value) :canonical: aiida.orm.nodes.data.list.List.append .. py:method:: extend(value) :canonical: aiida.orm.nodes.data.list.List.extend .. py:method:: insert(i, value) :canonical: aiida.orm.nodes.data.list.List.insert .. py:method:: remove(value) :canonical: aiida.orm.nodes.data.list.List.remove .. py:method:: pop(**kwargs) :canonical: aiida.orm.nodes.data.list.List.pop .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.pop .. py:method:: index(value) :canonical: aiida.orm.nodes.data.list.List.index .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.index .. py:method:: count(value) :canonical: aiida.orm.nodes.data.list.List.count .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.count .. py:method:: sort(key=None, reverse=False) :canonical: aiida.orm.nodes.data.list.List.sort .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.sort .. py:method:: reverse() :canonical: aiida.orm.nodes.data.list.List.reverse .. py:method:: get_list() :canonical: aiida.orm.nodes.data.list.List.get_list .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.get_list .. py:method:: set_list(data) :canonical: aiida.orm.nodes.data.list.List.set_list .. autodoc2-docstring:: aiida.orm.nodes.data.list.List.set_list .. py:method:: _using_list_reference() :canonical: aiida.orm.nodes.data.list.List._using_list_reference .. autodoc2-docstring:: aiida.orm.nodes.data.list.List._using_list_reference .. py:class:: Log(time: datetime.datetime, loggername: str, levelname: str, dbnode_id: int, message: str = '', metadata: typing.Optional[typing.Dict[str, typing.Any]] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.logs.Log Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendLog`\ , :py:obj:`aiida.orm.logs.LogCollection`\ ] .. autodoc2-docstring:: aiida.orm.logs.Log .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.logs.Log.__init__ .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.logs.Log._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.logs.Log._CLS_COLLECTION .. py:property:: uuid :canonical: aiida.orm.logs.Log.uuid :type: str .. autodoc2-docstring:: aiida.orm.logs.Log.uuid .. py:property:: time :canonical: aiida.orm.logs.Log.time :type: datetime.datetime .. autodoc2-docstring:: aiida.orm.logs.Log.time .. py:property:: loggername :canonical: aiida.orm.logs.Log.loggername :type: str .. autodoc2-docstring:: aiida.orm.logs.Log.loggername .. py:property:: levelname :canonical: aiida.orm.logs.Log.levelname :type: str .. autodoc2-docstring:: aiida.orm.logs.Log.levelname .. py:property:: dbnode_id :canonical: aiida.orm.logs.Log.dbnode_id :type: int .. autodoc2-docstring:: aiida.orm.logs.Log.dbnode_id .. py:property:: message :canonical: aiida.orm.logs.Log.message :type: str .. autodoc2-docstring:: aiida.orm.logs.Log.message .. py:property:: metadata :canonical: aiida.orm.logs.Log.metadata :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.orm.logs.Log.metadata .. py:class:: Node(backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None, user: typing.Optional[aiida.orm.users.User] = None, computer: typing.Optional[aiida.orm.computers.Computer] = None, **kwargs: typing.Any) :canonical: aiida.orm.nodes.node.Node Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendNode`\ , :py:obj:`aiida.orm.nodes.node.NodeCollection`\ ] .. autodoc2-docstring:: aiida.orm.nodes.node.Node .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.node.Node.__init__ .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.nodes.node.Node._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._CLS_COLLECTION .. py:attribute:: _CLS_NODE_LINKS :canonical: aiida.orm.nodes.node.Node._CLS_NODE_LINKS :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._CLS_NODE_LINKS .. py:attribute:: _CLS_NODE_CACHING :canonical: aiida.orm.nodes.node.Node._CLS_NODE_CACHING :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._CLS_NODE_CACHING .. py:attribute:: _plugin_type_string :canonical: aiida.orm.nodes.node.Node._plugin_type_string :type: typing.ClassVar[str] :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._plugin_type_string .. py:attribute:: _query_type_string :canonical: aiida.orm.nodes.node.Node._query_type_string :type: typing.ClassVar[str] :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._query_type_string .. py:attribute:: _logger :canonical: aiida.orm.nodes.node.Node._logger :type: typing.Optional[logging.Logger] :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._logger .. py:attribute:: _updatable_attributes :canonical: aiida.orm.nodes.node.Node._updatable_attributes :type: typing.Tuple[str, ...] :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._updatable_attributes .. py:attribute:: _hash_ignored_attributes :canonical: aiida.orm.nodes.node.Node._hash_ignored_attributes :type: typing.Tuple[str, ...] :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._hash_ignored_attributes .. py:attribute:: _cachable :canonical: aiida.orm.nodes.node.Node._cachable :value: False .. autodoc2-docstring:: aiida.orm.nodes.node.Node._cachable .. py:attribute:: _storable :canonical: aiida.orm.nodes.node.Node._storable :value: False .. autodoc2-docstring:: aiida.orm.nodes.node.Node._storable .. py:attribute:: _unstorable_message :canonical: aiida.orm.nodes.node.Node._unstorable_message :value: 'only Data, WorkflowNode, CalculationNode or their subclasses can be stored' .. autodoc2-docstring:: aiida.orm.nodes.node.Node._unstorable_message .. py:method:: base() -> aiida.orm.nodes.node.NodeBase :canonical: aiida.orm.nodes.node.Node.base .. autodoc2-docstring:: aiida.orm.nodes.node.Node.base .. py:method:: _check_mutability_attributes(keys: typing.Optional[typing.List[str]] = None) -> None :canonical: aiida.orm.nodes.node.Node._check_mutability_attributes .. autodoc2-docstring:: aiida.orm.nodes.node.Node._check_mutability_attributes .. py:method:: __eq__(other: typing.Any) -> bool :canonical: aiida.orm.nodes.node.Node.__eq__ .. autodoc2-docstring:: aiida.orm.nodes.node.Node.__eq__ .. py:method:: __hash__() -> int :canonical: aiida.orm.nodes.node.Node.__hash__ .. autodoc2-docstring:: aiida.orm.nodes.node.Node.__hash__ .. py:method:: __repr__() -> str :canonical: aiida.orm.nodes.node.Node.__repr__ .. py:method:: __str__() -> str :canonical: aiida.orm.nodes.node.Node.__str__ .. py:method:: __copy__() :canonical: aiida.orm.nodes.node.Node.__copy__ .. autodoc2-docstring:: aiida.orm.nodes.node.Node.__copy__ .. py:method:: __deepcopy__(memo) :canonical: aiida.orm.nodes.node.Node.__deepcopy__ .. autodoc2-docstring:: aiida.orm.nodes.node.Node.__deepcopy__ .. py:method:: _validate() -> bool :canonical: aiida.orm.nodes.node.Node._validate .. autodoc2-docstring:: aiida.orm.nodes.node.Node._validate .. py:method:: _validate_storability() -> None :canonical: aiida.orm.nodes.node.Node._validate_storability .. autodoc2-docstring:: aiida.orm.nodes.node.Node._validate_storability .. py:method:: class_node_type() -> str :canonical: aiida.orm.nodes.node.Node.class_node_type .. autodoc2-docstring:: aiida.orm.nodes.node.Node.class_node_type .. py:method:: entry_point() -> typing.Optional[aiida.plugins.entry_point.EntryPoint] :canonical: aiida.orm.nodes.node.Node.entry_point .. autodoc2-docstring:: aiida.orm.nodes.node.Node.entry_point .. py:property:: logger :canonical: aiida.orm.nodes.node.Node.logger :type: typing.Optional[logging.Logger] .. autodoc2-docstring:: aiida.orm.nodes.node.Node.logger .. py:property:: uuid :canonical: aiida.orm.nodes.node.Node.uuid :type: str .. autodoc2-docstring:: aiida.orm.nodes.node.Node.uuid .. py:property:: node_type :canonical: aiida.orm.nodes.node.Node.node_type :type: str .. autodoc2-docstring:: aiida.orm.nodes.node.Node.node_type .. py:property:: process_type :canonical: aiida.orm.nodes.node.Node.process_type :type: typing.Optional[str] .. autodoc2-docstring:: aiida.orm.nodes.node.Node.process_type .. py:property:: label :canonical: aiida.orm.nodes.node.Node.label :type: str .. autodoc2-docstring:: aiida.orm.nodes.node.Node.label .. py:property:: description :canonical: aiida.orm.nodes.node.Node.description :type: str .. autodoc2-docstring:: aiida.orm.nodes.node.Node.description .. py:property:: computer :canonical: aiida.orm.nodes.node.Node.computer :type: typing.Optional[aiida.orm.computers.Computer] .. autodoc2-docstring:: aiida.orm.nodes.node.Node.computer .. py:property:: user :canonical: aiida.orm.nodes.node.Node.user :type: aiida.orm.users.User .. autodoc2-docstring:: aiida.orm.nodes.node.Node.user .. py:property:: ctime :canonical: aiida.orm.nodes.node.Node.ctime :type: datetime.datetime .. autodoc2-docstring:: aiida.orm.nodes.node.Node.ctime .. py:property:: mtime :canonical: aiida.orm.nodes.node.Node.mtime :type: datetime.datetime .. autodoc2-docstring:: aiida.orm.nodes.node.Node.mtime .. py:method:: store_all(with_transaction: bool = True) -> aiida.orm.nodes.node.Node :canonical: aiida.orm.nodes.node.Node.store_all .. autodoc2-docstring:: aiida.orm.nodes.node.Node.store_all .. py:method:: store(with_transaction: bool = True) -> aiida.orm.nodes.node.Node :canonical: aiida.orm.nodes.node.Node.store .. autodoc2-docstring:: aiida.orm.nodes.node.Node.store .. py:method:: _store(with_transaction: bool = True, clean: bool = True) -> aiida.orm.nodes.node.Node :canonical: aiida.orm.nodes.node.Node._store .. autodoc2-docstring:: aiida.orm.nodes.node.Node._store .. py:method:: _verify_are_parents_stored() -> None :canonical: aiida.orm.nodes.node.Node._verify_are_parents_stored .. autodoc2-docstring:: aiida.orm.nodes.node.Node._verify_are_parents_stored .. py:method:: _store_from_cache(cache_node: aiida.orm.nodes.node.Node, with_transaction: bool) -> None :canonical: aiida.orm.nodes.node.Node._store_from_cache .. autodoc2-docstring:: aiida.orm.nodes.node.Node._store_from_cache .. py:method:: _add_outputs_from_cache(cache_node: aiida.orm.nodes.node.Node) -> None :canonical: aiida.orm.nodes.node.Node._add_outputs_from_cache .. autodoc2-docstring:: aiida.orm.nodes.node.Node._add_outputs_from_cache .. py:method:: get_description() -> str :canonical: aiida.orm.nodes.node.Node.get_description .. autodoc2-docstring:: aiida.orm.nodes.node.Node.get_description .. py:property:: is_valid_cache :canonical: aiida.orm.nodes.node.Node.is_valid_cache :type: bool .. autodoc2-docstring:: aiida.orm.nodes.node.Node.is_valid_cache .. py:attribute:: _deprecated_repo_methods :canonical: aiida.orm.nodes.node.Node._deprecated_repo_methods :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._deprecated_repo_methods .. py:attribute:: _deprecated_attr_methods :canonical: aiida.orm.nodes.node.Node._deprecated_attr_methods :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._deprecated_attr_methods .. py:attribute:: _deprecated_extra_methods :canonical: aiida.orm.nodes.node.Node._deprecated_extra_methods :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._deprecated_extra_methods .. py:attribute:: _deprecated_comment_methods :canonical: aiida.orm.nodes.node.Node._deprecated_comment_methods :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._deprecated_comment_methods .. py:attribute:: _deprecated_caching_methods :canonical: aiida.orm.nodes.node.Node._deprecated_caching_methods :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._deprecated_caching_methods .. py:attribute:: _deprecated_links_methods :canonical: aiida.orm.nodes.node.Node._deprecated_links_methods :value: None .. autodoc2-docstring:: aiida.orm.nodes.node.Node._deprecated_links_methods .. py:method:: Collection() :canonical: aiida.orm.nodes.node.Node.Collection .. autodoc2-docstring:: aiida.orm.nodes.node.Node.Collection .. py:method:: __getattr__(name: str) -> typing.Any :canonical: aiida.orm.nodes.node.Node.__getattr__ .. autodoc2-docstring:: aiida.orm.nodes.node.Node.__getattr__ .. py:class:: NodeAttributes(node: aiida.orm.nodes.node.Node) :canonical: aiida.orm.nodes.attributes.NodeAttributes .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.__init__ .. py:method:: __contains__(key: str) -> bool :canonical: aiida.orm.nodes.attributes.NodeAttributes.__contains__ .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.__contains__ .. py:property:: all :canonical: aiida.orm.nodes.attributes.NodeAttributes.all :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.all .. py:method:: get(key: str, default=_NO_DEFAULT) -> typing.Any :canonical: aiida.orm.nodes.attributes.NodeAttributes.get .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.get .. py:method:: get_many(keys: typing.List[str]) -> typing.List[typing.Any] :canonical: aiida.orm.nodes.attributes.NodeAttributes.get_many .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.get_many .. py:method:: set(key: str, value: typing.Any) -> None :canonical: aiida.orm.nodes.attributes.NodeAttributes.set .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.set .. py:method:: set_many(attributes: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.nodes.attributes.NodeAttributes.set_many .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.set_many .. py:method:: reset(attributes: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.nodes.attributes.NodeAttributes.reset .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.reset .. py:method:: delete(key: str) -> None :canonical: aiida.orm.nodes.attributes.NodeAttributes.delete .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.delete .. py:method:: delete_many(keys: typing.List[str]) -> None :canonical: aiida.orm.nodes.attributes.NodeAttributes.delete_many .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.delete_many .. py:method:: clear() -> None :canonical: aiida.orm.nodes.attributes.NodeAttributes.clear .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.clear .. py:method:: items() -> typing.Iterable[typing.Tuple[str, typing.Any]] :canonical: aiida.orm.nodes.attributes.NodeAttributes.items .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.items .. py:method:: keys() -> typing.Iterable[str] :canonical: aiida.orm.nodes.attributes.NodeAttributes.keys .. autodoc2-docstring:: aiida.orm.nodes.attributes.NodeAttributes.keys .. py:class:: NodeEntityLoader :canonical: aiida.orm.utils.loaders.NodeEntityLoader Bases: :py:obj:`aiida.orm.utils.loaders.OrmEntityLoader` .. autodoc2-docstring:: aiida.orm.utils.loaders.NodeEntityLoader .. py:method:: orm_base_class() :canonical: aiida.orm.utils.loaders.NodeEntityLoader.orm_base_class .. autodoc2-docstring:: aiida.orm.utils.loaders.NodeEntityLoader.orm_base_class .. py:method:: _get_query_builder_label_identifier(identifier, classes, operator='==', project='*') :canonical: aiida.orm.utils.loaders.NodeEntityLoader._get_query_builder_label_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.NodeEntityLoader._get_query_builder_label_identifier .. py:class:: NodeLinksManager(node, link_type, incoming) :canonical: aiida.orm.utils.managers.NodeLinksManager .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__init__ .. py:attribute:: _namespace_separator :canonical: aiida.orm.utils.managers.NodeLinksManager._namespace_separator :value: '__' .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager._namespace_separator .. py:method:: _construct_attribute_dict(incoming) :canonical: aiida.orm.utils.managers.NodeLinksManager._construct_attribute_dict .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager._construct_attribute_dict .. py:method:: _get_keys() :canonical: aiida.orm.utils.managers.NodeLinksManager._get_keys .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager._get_keys .. py:method:: _get_node_by_link_label(label) :canonical: aiida.orm.utils.managers.NodeLinksManager._get_node_by_link_label .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager._get_node_by_link_label .. py:method:: __dir__() :canonical: aiida.orm.utils.managers.NodeLinksManager.__dir__ .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__dir__ .. py:method:: __iter__() :canonical: aiida.orm.utils.managers.NodeLinksManager.__iter__ .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__iter__ .. py:method:: __getattr__(name) :canonical: aiida.orm.utils.managers.NodeLinksManager.__getattr__ .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__getattr__ .. py:method:: __contains__(key) :canonical: aiida.orm.utils.managers.NodeLinksManager.__contains__ .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__contains__ .. py:method:: __getitem__(name) :canonical: aiida.orm.utils.managers.NodeLinksManager.__getitem__ .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__getitem__ .. py:method:: __str__() :canonical: aiida.orm.utils.managers.NodeLinksManager.__str__ .. autodoc2-docstring:: aiida.orm.utils.managers.NodeLinksManager.__str__ .. py:method:: __repr__() :canonical: aiida.orm.utils.managers.NodeLinksManager.__repr__ .. py:class:: NodeRepository(node: aiida.orm.nodes.node.Node) :canonical: aiida.orm.nodes.repository.NodeRepository .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.__init__ .. py:property:: metadata :canonical: aiida.orm.nodes.repository.NodeRepository.metadata :type: typing.Dict[str, typing.Any] .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.metadata .. py:method:: _update_repository_metadata() :canonical: aiida.orm.nodes.repository.NodeRepository._update_repository_metadata .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository._update_repository_metadata .. py:method:: _check_mutability() :canonical: aiida.orm.nodes.repository.NodeRepository._check_mutability .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository._check_mutability .. py:property:: _repository :canonical: aiida.orm.nodes.repository.NodeRepository._repository :type: aiida.repository.Repository .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository._repository .. py:method:: _store() -> None :canonical: aiida.orm.nodes.repository.NodeRepository._store .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository._store .. py:method:: _copy(repo: aiida.orm.nodes.repository.NodeRepository) -> None :canonical: aiida.orm.nodes.repository.NodeRepository._copy .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository._copy .. py:method:: _clone(repo: aiida.orm.nodes.repository.NodeRepository) -> None :canonical: aiida.orm.nodes.repository.NodeRepository._clone .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository._clone .. py:method:: serialize() -> typing.Dict :canonical: aiida.orm.nodes.repository.NodeRepository.serialize .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.serialize .. py:method:: hash() -> str :canonical: aiida.orm.nodes.repository.NodeRepository.hash .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.hash .. py:method:: list_objects(path: typing.Optional[str] = None) -> typing.List[aiida.repository.File] :canonical: aiida.orm.nodes.repository.NodeRepository.list_objects .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.list_objects .. py:method:: list_object_names(path: typing.Optional[str] = None) -> typing.List[str] :canonical: aiida.orm.nodes.repository.NodeRepository.list_object_names .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.list_object_names .. py:method:: open(path: str, mode='r') -> typing.Iterator[typing.Union[typing.BinaryIO, typing.TextIO]] :canonical: aiida.orm.nodes.repository.NodeRepository.open .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.open .. py:method:: get_object(path: typing.Optional[aiida.orm.nodes.repository.FilePath] = None) -> aiida.repository.File :canonical: aiida.orm.nodes.repository.NodeRepository.get_object .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.get_object .. py:method:: get_object_content(path: str, mode='r') -> typing.Union[str, bytes] :canonical: aiida.orm.nodes.repository.NodeRepository.get_object_content .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.get_object_content .. py:method:: put_object_from_bytes(content: bytes, path: str) -> None :canonical: aiida.orm.nodes.repository.NodeRepository.put_object_from_bytes .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.put_object_from_bytes .. py:method:: put_object_from_filelike(handle: io.BufferedReader, path: str) :canonical: aiida.orm.nodes.repository.NodeRepository.put_object_from_filelike .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.put_object_from_filelike .. py:method:: put_object_from_file(filepath: str, path: str) :canonical: aiida.orm.nodes.repository.NodeRepository.put_object_from_file .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.put_object_from_file .. py:method:: put_object_from_tree(filepath: str, path: typing.Optional[str] = None) :canonical: aiida.orm.nodes.repository.NodeRepository.put_object_from_tree .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.put_object_from_tree .. py:method:: walk(path: typing.Optional[aiida.orm.nodes.repository.FilePath] = None) -> typing.Iterable[typing.Tuple[pathlib.PurePosixPath, typing.List[str], typing.List[str]]] :canonical: aiida.orm.nodes.repository.NodeRepository.walk .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.walk .. py:method:: glob() -> typing.Iterable[pathlib.PurePosixPath] :canonical: aiida.orm.nodes.repository.NodeRepository.glob .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.glob .. py:method:: copy_tree(target: typing.Union[str, pathlib.Path], path: typing.Optional[aiida.orm.nodes.repository.FilePath] = None) -> None :canonical: aiida.orm.nodes.repository.NodeRepository.copy_tree .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.copy_tree .. py:method:: delete_object(path: str) :canonical: aiida.orm.nodes.repository.NodeRepository.delete_object .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.delete_object .. py:method:: erase() :canonical: aiida.orm.nodes.repository.NodeRepository.erase .. autodoc2-docstring:: aiida.orm.nodes.repository.NodeRepository.erase .. py:class:: NumericType :canonical: aiida.orm.nodes.data.numeric.NumericType Bases: :py:obj:`aiida.orm.nodes.data.base.BaseType` .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType .. py:method:: __add__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__add__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__add__ .. py:method:: __radd__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__radd__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__radd__ .. py:method:: __sub__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__sub__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__sub__ .. py:method:: __rsub__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__rsub__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__rsub__ .. py:method:: __mul__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__mul__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__mul__ .. py:method:: __rmul__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__rmul__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__rmul__ .. py:method:: __div__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__div__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__div__ .. py:method:: __rdiv__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__rdiv__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__rdiv__ .. py:method:: __truediv__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__truediv__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__truediv__ .. py:method:: __rtruediv__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__rtruediv__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__rtruediv__ .. py:method:: __floordiv__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__floordiv__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__floordiv__ .. py:method:: __rfloordiv__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__rfloordiv__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__rfloordiv__ .. py:method:: __pow__(power) :canonical: aiida.orm.nodes.data.numeric.NumericType.__pow__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__pow__ .. py:method:: __lt__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__lt__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__lt__ .. py:method:: __le__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__le__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__le__ .. py:method:: __gt__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__gt__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__gt__ .. py:method:: __ge__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__ge__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__ge__ .. py:method:: __mod__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__mod__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__mod__ .. py:method:: __rmod__(other) :canonical: aiida.orm.nodes.data.numeric.NumericType.__rmod__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__rmod__ .. py:method:: __float__() :canonical: aiida.orm.nodes.data.numeric.NumericType.__float__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__float__ .. py:method:: __int__() :canonical: aiida.orm.nodes.data.numeric.NumericType.__int__ .. autodoc2-docstring:: aiida.orm.nodes.data.numeric.NumericType.__int__ .. py:class:: OrbitalData :canonical: aiida.orm.nodes.data.orbital.OrbitalData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.orbital.OrbitalData .. py:method:: clear_orbitals() :canonical: aiida.orm.nodes.data.orbital.OrbitalData.clear_orbitals .. autodoc2-docstring:: aiida.orm.nodes.data.orbital.OrbitalData.clear_orbitals .. py:method:: get_orbitals(**kwargs) :canonical: aiida.orm.nodes.data.orbital.OrbitalData.get_orbitals .. autodoc2-docstring:: aiida.orm.nodes.data.orbital.OrbitalData.get_orbitals .. py:method:: set_orbitals(orbitals) :canonical: aiida.orm.nodes.data.orbital.OrbitalData.set_orbitals .. autodoc2-docstring:: aiida.orm.nodes.data.orbital.OrbitalData.set_orbitals .. py:function:: OrderSpecifier(field, direction) :canonical: aiida.orm.logs.OrderSpecifier .. autodoc2-docstring:: aiida.orm.logs.OrderSpecifier .. py:class:: OrmEntityLoader :canonical: aiida.orm.utils.loaders.OrmEntityLoader .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader .. py:attribute:: label_ambiguity_breaker :canonical: aiida.orm.utils.loaders.OrmEntityLoader.label_ambiguity_breaker :value: '!' .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.label_ambiguity_breaker .. py:method:: orm_base_class() :canonical: aiida.orm.utils.loaders.OrmEntityLoader.orm_base_class :abstractmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.orm_base_class .. py:method:: _get_query_builder_label_identifier(identifier, classes, operator='==', project='*') :canonical: aiida.orm.utils.loaders.OrmEntityLoader._get_query_builder_label_identifier :abstractmethod: :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader._get_query_builder_label_identifier .. py:method:: _get_query_builder_id_identifier(identifier, classes) :canonical: aiida.orm.utils.loaders.OrmEntityLoader._get_query_builder_id_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader._get_query_builder_id_identifier .. py:method:: _get_query_builder_uuid_identifier(identifier, classes, query_with_dashes) :canonical: aiida.orm.utils.loaders.OrmEntityLoader._get_query_builder_uuid_identifier :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader._get_query_builder_uuid_identifier .. py:method:: get_query_builder(identifier, identifier_type=None, sub_classes=None, query_with_dashes=True, operator='==', project='*') :canonical: aiida.orm.utils.loaders.OrmEntityLoader.get_query_builder :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.get_query_builder .. py:method:: get_options(incomplete, project='*') :canonical: aiida.orm.utils.loaders.OrmEntityLoader.get_options :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.get_options .. py:method:: load_entity(identifier, identifier_type=None, sub_classes=None, query_with_dashes=True) :canonical: aiida.orm.utils.loaders.OrmEntityLoader.load_entity :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.load_entity .. py:method:: get_query_classes(sub_classes=None) :canonical: aiida.orm.utils.loaders.OrmEntityLoader.get_query_classes :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.get_query_classes .. py:method:: infer_identifier_type(value) :canonical: aiida.orm.utils.loaders.OrmEntityLoader.infer_identifier_type :classmethod: .. autodoc2-docstring:: aiida.orm.utils.loaders.OrmEntityLoader.infer_identifier_type .. py:class:: PortableCode(filepath_executable: str, filepath_files: pathlib.Path, **kwargs) :canonical: aiida.orm.nodes.data.code.portable.PortableCode Bases: :py:obj:`aiida.orm.nodes.data.code.legacy.Code` .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode.__init__ .. py:attribute:: _KEY_ATTRIBUTE_FILEPATH_EXECUTABLE :canonical: aiida.orm.nodes.data.code.portable.PortableCode._KEY_ATTRIBUTE_FILEPATH_EXECUTABLE :type: str :value: 'filepath_executable' .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode._KEY_ATTRIBUTE_FILEPATH_EXECUTABLE .. py:method:: _validate() :canonical: aiida.orm.nodes.data.code.portable.PortableCode._validate .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode._validate .. py:method:: can_run_on_computer(computer: aiida.orm.Computer) -> bool :canonical: aiida.orm.nodes.data.code.portable.PortableCode.can_run_on_computer .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode.can_run_on_computer .. py:method:: get_executable() -> pathlib.PurePosixPath :canonical: aiida.orm.nodes.data.code.portable.PortableCode.get_executable .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode.get_executable .. py:method:: validate_working_directory(folder: aiida.common.folders.Folder) :canonical: aiida.orm.nodes.data.code.portable.PortableCode.validate_working_directory .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode.validate_working_directory .. py:property:: full_label :canonical: aiida.orm.nodes.data.code.portable.PortableCode.full_label :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode.full_label .. py:property:: filepath_executable :canonical: aiida.orm.nodes.data.code.portable.PortableCode.filepath_executable :type: pathlib.PurePosixPath .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode.filepath_executable .. py:method:: _get_cli_options() -> dict :canonical: aiida.orm.nodes.data.code.portable.PortableCode._get_cli_options :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.code.portable.PortableCode._get_cli_options .. py:class:: ProcessNode(backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None, user: typing.Optional[aiida.orm.users.User] = None, computer: typing.Optional[aiida.orm.computers.Computer] = None, **kwargs: typing.Any) :canonical: aiida.orm.nodes.process.process.ProcessNode Bases: :py:obj:`aiida.orm.utils.mixins.Sealable`, :py:obj:`aiida.orm.nodes.node.Node` .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.__init__ .. py:attribute:: _CLS_NODE_LINKS :canonical: aiida.orm.nodes.process.process.ProcessNode._CLS_NODE_LINKS :value: None .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode._CLS_NODE_LINKS .. py:attribute:: _CLS_NODE_CACHING :canonical: aiida.orm.nodes.process.process.ProcessNode._CLS_NODE_CACHING :value: None .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode._CLS_NODE_CACHING .. py:attribute:: CHECKPOINT_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.CHECKPOINT_KEY :value: 'checkpoints' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.CHECKPOINT_KEY .. py:attribute:: EXCEPTION_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.EXCEPTION_KEY :value: 'exception' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.EXCEPTION_KEY .. py:attribute:: EXIT_MESSAGE_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.EXIT_MESSAGE_KEY :value: 'exit_message' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.EXIT_MESSAGE_KEY .. py:attribute:: EXIT_STATUS_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.EXIT_STATUS_KEY :value: 'exit_status' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.EXIT_STATUS_KEY .. py:attribute:: PROCESS_PAUSED_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.PROCESS_PAUSED_KEY :value: 'paused' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.PROCESS_PAUSED_KEY .. py:attribute:: PROCESS_LABEL_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.PROCESS_LABEL_KEY :value: 'process_label' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.PROCESS_LABEL_KEY .. py:attribute:: PROCESS_STATE_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.PROCESS_STATE_KEY :value: 'process_state' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.PROCESS_STATE_KEY .. py:attribute:: PROCESS_STATUS_KEY :canonical: aiida.orm.nodes.process.process.ProcessNode.PROCESS_STATUS_KEY :value: 'process_status' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.PROCESS_STATUS_KEY .. py:attribute:: _unstorable_message :canonical: aiida.orm.nodes.process.process.ProcessNode._unstorable_message :value: 'only Data, WorkflowNode, CalculationNode or their subclasses can be stored' .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode._unstorable_message .. py:method:: __str__() -> str :canonical: aiida.orm.nodes.process.process.ProcessNode.__str__ .. py:method:: _updatable_attributes() -> typing.Tuple[str, ...] :canonical: aiida.orm.nodes.process.process.ProcessNode._updatable_attributes .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode._updatable_attributes .. py:property:: logger :canonical: aiida.orm.nodes.process.process.ProcessNode.logger .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.logger .. py:method:: get_builder_restart() -> aiida.engine.processes.builder.ProcessBuilder :canonical: aiida.orm.nodes.process.process.ProcessNode.get_builder_restart .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.get_builder_restart .. py:property:: process_class :canonical: aiida.orm.nodes.process.process.ProcessNode.process_class :type: typing.Type[aiida.engine.processes.Process] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.process_class .. py:method:: set_process_type(process_type_string: str) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_process_type .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_process_type .. py:property:: process_label :canonical: aiida.orm.nodes.process.process.ProcessNode.process_label :type: typing.Optional[str] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.process_label .. py:method:: set_process_label(label: str) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_process_label .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_process_label .. py:property:: process_state :canonical: aiida.orm.nodes.process.process.ProcessNode.process_state :type: typing.Optional[plumpy.process_states.ProcessState] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.process_state .. py:method:: set_process_state(state: typing.Union[str, plumpy.process_states.ProcessState, None]) :canonical: aiida.orm.nodes.process.process.ProcessNode.set_process_state .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_process_state .. py:property:: process_status :canonical: aiida.orm.nodes.process.process.ProcessNode.process_status :type: typing.Optional[str] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.process_status .. py:method:: set_process_status(status: typing.Optional[str]) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_process_status .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_process_status .. py:property:: is_terminated :canonical: aiida.orm.nodes.process.process.ProcessNode.is_terminated :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.is_terminated .. py:property:: is_excepted :canonical: aiida.orm.nodes.process.process.ProcessNode.is_excepted :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.is_excepted .. py:property:: is_killed :canonical: aiida.orm.nodes.process.process.ProcessNode.is_killed :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.is_killed .. py:property:: is_finished :canonical: aiida.orm.nodes.process.process.ProcessNode.is_finished :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.is_finished .. py:property:: is_finished_ok :canonical: aiida.orm.nodes.process.process.ProcessNode.is_finished_ok :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.is_finished_ok .. py:property:: is_failed :canonical: aiida.orm.nodes.process.process.ProcessNode.is_failed :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.is_failed .. py:property:: exit_status :canonical: aiida.orm.nodes.process.process.ProcessNode.exit_status :type: typing.Optional[int] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.exit_status .. py:method:: set_exit_status(status: typing.Union[None, enum.Enum, int]) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_exit_status .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_exit_status .. py:property:: exit_message :canonical: aiida.orm.nodes.process.process.ProcessNode.exit_message :type: typing.Optional[str] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.exit_message .. py:method:: set_exit_message(message: typing.Optional[str]) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_exit_message .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_exit_message .. py:property:: exception :canonical: aiida.orm.nodes.process.process.ProcessNode.exception :type: typing.Optional[str] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.exception .. py:method:: set_exception(exception: str) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_exception .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_exception .. py:property:: checkpoint :canonical: aiida.orm.nodes.process.process.ProcessNode.checkpoint :type: typing.Optional[typing.Dict[str, typing.Any]] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.checkpoint .. py:method:: set_checkpoint(checkpoint: typing.Dict[str, typing.Any]) -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.set_checkpoint .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.set_checkpoint .. py:method:: delete_checkpoint() -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.delete_checkpoint .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.delete_checkpoint .. py:property:: paused :canonical: aiida.orm.nodes.process.process.ProcessNode.paused :type: bool .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.paused .. py:method:: pause() -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.pause .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.pause .. py:method:: unpause() -> None :canonical: aiida.orm.nodes.process.process.ProcessNode.unpause .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.unpause .. py:property:: called :canonical: aiida.orm.nodes.process.process.ProcessNode.called :type: typing.List[aiida.orm.nodes.process.process.ProcessNode] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.called .. py:property:: called_descendants :canonical: aiida.orm.nodes.process.process.ProcessNode.called_descendants :type: typing.List[aiida.orm.nodes.process.process.ProcessNode] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.called_descendants .. py:property:: caller :canonical: aiida.orm.nodes.process.process.ProcessNode.caller :type: typing.Optional[aiida.orm.nodes.process.process.ProcessNode] .. autodoc2-docstring:: aiida.orm.nodes.process.process.ProcessNode.caller .. py:class:: ProjectionData(*args, source=None, **kwargs) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData Bases: :py:obj:`aiida.orm.nodes.data.orbital.OrbitalData`, :py:obj:`aiida.orm.nodes.data.array.array.ArrayData` .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.__init__ .. py:method:: _check_projections_bands(projection_array) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData._check_projections_bands .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData._check_projections_bands .. py:method:: set_reference_bandsdata(value) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData.set_reference_bandsdata .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.set_reference_bandsdata .. py:method:: get_reference_bandsdata() :canonical: aiida.orm.nodes.data.array.projection.ProjectionData.get_reference_bandsdata .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.get_reference_bandsdata .. py:method:: _find_orbitals_and_indices(**kwargs) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData._find_orbitals_and_indices .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData._find_orbitals_and_indices .. py:method:: get_pdos(**kwargs) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData.get_pdos .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.get_pdos .. py:method:: get_projections(**kwargs) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData.get_projections .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.get_projections .. py:method:: _from_index_to_arrayname(index) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData._from_index_to_arrayname :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData._from_index_to_arrayname .. py:method:: set_projectiondata(list_of_orbitals, list_of_projections=None, list_of_energy=None, list_of_pdos=None, tags=None, bands_check=True) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData.set_projectiondata .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.set_projectiondata .. py:method:: set_orbitals(**kwargs) :canonical: aiida.orm.nodes.data.array.projection.ProjectionData.set_orbitals :abstractmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.array.projection.ProjectionData.set_orbitals .. py:class:: QueryBuilder(backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None, *, debug: bool = False, path: typing.Optional[typing.Sequence[typing.Union[str, typing.Dict[str, typing.Any], aiida.orm.querybuilder.EntityClsType]]] = (), filters: typing.Optional[typing.Dict[str, aiida.orm.querybuilder.FilterType]] = None, project: typing.Optional[typing.Dict[str, aiida.orm.querybuilder.ProjectType]] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, order_by: typing.Optional[aiida.orm.querybuilder.OrderByType] = None, distinct: bool = False) :canonical: aiida.orm.querybuilder.QueryBuilder .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.__init__ .. py:attribute:: _EDGE_TAG_DELIM :canonical: aiida.orm.querybuilder.QueryBuilder._EDGE_TAG_DELIM :value: '--' .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._EDGE_TAG_DELIM .. py:attribute:: _VALID_PROJECTION_KEYS :canonical: aiida.orm.querybuilder.QueryBuilder._VALID_PROJECTION_KEYS :value: ('func', 'cast') .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._VALID_PROJECTION_KEYS .. py:property:: backend :canonical: aiida.orm.querybuilder.QueryBuilder.backend :type: aiida.orm.implementation.StorageBackend .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.backend .. py:method:: as_dict(copy: bool = True) -> aiida.orm.implementation.querybuilder.QueryDictType :canonical: aiida.orm.querybuilder.QueryBuilder.as_dict .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.as_dict .. py:property:: queryhelp :canonical: aiida.orm.querybuilder.QueryBuilder.queryhelp :type: aiida.orm.implementation.querybuilder.QueryDictType .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.queryhelp .. py:method:: from_dict(dct: typing.Dict[str, typing.Any]) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.from_dict :classmethod: .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.from_dict .. py:method:: __repr__() -> str :canonical: aiida.orm.querybuilder.QueryBuilder.__repr__ .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.__repr__ .. py:method:: __str__() -> str :canonical: aiida.orm.querybuilder.QueryBuilder.__str__ .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.__str__ .. py:method:: __deepcopy__(memo) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.__deepcopy__ .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.__deepcopy__ .. py:method:: get_used_tags(vertices: bool = True, edges: bool = True) -> typing.List[str] :canonical: aiida.orm.querybuilder.QueryBuilder.get_used_tags .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.get_used_tags .. py:method:: _get_unique_tag(classifiers: typing.List[aiida.orm.querybuilder.Classifier]) -> str :canonical: aiida.orm.querybuilder.QueryBuilder._get_unique_tag .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._get_unique_tag .. py:method:: append(cls: typing.Optional[typing.Union[aiida.orm.querybuilder.EntityClsType, typing.Sequence[aiida.orm.querybuilder.EntityClsType]]] = None, entity_type: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, tag: typing.Optional[str] = None, filters: typing.Optional[aiida.orm.querybuilder.FilterType] = None, project: typing.Optional[aiida.orm.querybuilder.ProjectType] = None, subclassing: bool = True, edge_tag: typing.Optional[str] = None, edge_filters: typing.Optional[aiida.orm.querybuilder.FilterType] = None, edge_project: typing.Optional[aiida.orm.querybuilder.ProjectType] = None, outerjoin: bool = False, joining_keyword: typing.Optional[str] = None, joining_value: typing.Optional[typing.Any] = None, orm_base: typing.Optional[str] = None, **kwargs: typing.Any) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.append .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.append .. py:method:: order_by(order_by: aiida.orm.querybuilder.OrderByType) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.order_by .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.order_by .. py:method:: add_filter(tagspec: typing.Union[str, aiida.orm.querybuilder.EntityClsType], filter_spec: aiida.orm.querybuilder.FilterType) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.add_filter .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.add_filter .. py:method:: _process_filters(filters: aiida.orm.querybuilder.FilterType) -> typing.Dict[str, typing.Any] :canonical: aiida.orm.querybuilder.QueryBuilder._process_filters :staticmethod: .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._process_filters .. py:method:: _add_node_type_filter(tagspec: str, classifiers: typing.List[aiida.orm.querybuilder.Classifier], subclassing: bool) :canonical: aiida.orm.querybuilder.QueryBuilder._add_node_type_filter .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._add_node_type_filter .. py:method:: _add_process_type_filter(tagspec: str, classifiers: typing.List[aiida.orm.querybuilder.Classifier], subclassing: bool) -> None :canonical: aiida.orm.querybuilder.QueryBuilder._add_process_type_filter .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._add_process_type_filter .. py:method:: _add_group_type_filter(tagspec: str, classifiers: typing.List[aiida.orm.querybuilder.Classifier], subclassing: bool) -> None :canonical: aiida.orm.querybuilder.QueryBuilder._add_group_type_filter .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._add_group_type_filter .. py:method:: add_projection(tag_spec: typing.Union[str, aiida.orm.querybuilder.EntityClsType], projection_spec: aiida.orm.querybuilder.ProjectType) -> None :canonical: aiida.orm.querybuilder.QueryBuilder.add_projection .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.add_projection .. py:method:: set_debug(debug: bool) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.set_debug .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.set_debug .. py:method:: debug(msg: str, *objects: typing.Any) -> None :canonical: aiida.orm.querybuilder.QueryBuilder.debug .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.debug .. py:method:: limit(limit: typing.Optional[int]) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.limit .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.limit .. py:method:: offset(offset: typing.Optional[int]) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.offset .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.offset .. py:method:: distinct(value: bool = True) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.distinct .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.distinct .. py:method:: inputs(**kwargs: typing.Any) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.inputs .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.inputs .. py:method:: outputs(**kwargs: typing.Any) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.outputs .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.outputs .. py:method:: children(**kwargs: typing.Any) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.children .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.children .. py:method:: parents(**kwargs: typing.Any) -> aiida.orm.querybuilder.QueryBuilder :canonical: aiida.orm.querybuilder.QueryBuilder.parents .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.parents .. py:method:: as_sql(inline: bool = False) -> str :canonical: aiida.orm.querybuilder.QueryBuilder.as_sql .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.as_sql .. py:method:: analyze_query(execute: bool = True, verbose: bool = False) -> str :canonical: aiida.orm.querybuilder.QueryBuilder.analyze_query .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.analyze_query .. py:method:: _get_aiida_entity_res(value) -> typing.Any :canonical: aiida.orm.querybuilder.QueryBuilder._get_aiida_entity_res :staticmethod: .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder._get_aiida_entity_res .. py:method:: first(flat: bool = False) -> typing.Optional[list[typing.Any] | typing.Any] :canonical: aiida.orm.querybuilder.QueryBuilder.first .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.first .. py:method:: count() -> int :canonical: aiida.orm.querybuilder.QueryBuilder.count .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.count .. py:method:: iterall(batch_size: typing.Optional[int] = 100) -> typing.Iterable[typing.List[typing.Any]] :canonical: aiida.orm.querybuilder.QueryBuilder.iterall .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.iterall .. py:method:: iterdict(batch_size: typing.Optional[int] = 100) -> typing.Iterable[typing.Dict[str, typing.Dict[str, typing.Any]]] :canonical: aiida.orm.querybuilder.QueryBuilder.iterdict .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.iterdict .. py:method:: all(batch_size: typing.Optional[int] = None, flat: bool = False) -> typing.Union[typing.List[typing.List[typing.Any]], typing.List[typing.Any]] :canonical: aiida.orm.querybuilder.QueryBuilder.all .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.all .. py:method:: one() -> typing.List[typing.Any] :canonical: aiida.orm.querybuilder.QueryBuilder.one .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.one .. py:method:: dict(batch_size: typing.Optional[int] = None) -> typing.List[typing.Dict[str, typing.Dict[str, typing.Any]]] :canonical: aiida.orm.querybuilder.QueryBuilder.dict .. autodoc2-docstring:: aiida.orm.querybuilder.QueryBuilder.dict .. py:class:: RemoteData(remote_path=None, **kwargs) :canonical: aiida.orm.nodes.data.remote.base.RemoteData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.__init__ .. py:attribute:: KEY_EXTRA_CLEANED :canonical: aiida.orm.nodes.data.remote.base.RemoteData.KEY_EXTRA_CLEANED :value: 'cleaned' .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.KEY_EXTRA_CLEANED .. py:method:: get_remote_path() :canonical: aiida.orm.nodes.data.remote.base.RemoteData.get_remote_path .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.get_remote_path .. py:method:: set_remote_path(val) :canonical: aiida.orm.nodes.data.remote.base.RemoteData.set_remote_path .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.set_remote_path .. py:property:: is_empty :canonical: aiida.orm.nodes.data.remote.base.RemoteData.is_empty .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.is_empty .. py:method:: getfile(relpath, destpath) :canonical: aiida.orm.nodes.data.remote.base.RemoteData.getfile .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.getfile .. py:method:: listdir(relpath='.') :canonical: aiida.orm.nodes.data.remote.base.RemoteData.listdir .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.listdir .. py:method:: listdir_withattributes(path='.') :canonical: aiida.orm.nodes.data.remote.base.RemoteData.listdir_withattributes .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.listdir_withattributes .. py:method:: _clean(transport=None) :canonical: aiida.orm.nodes.data.remote.base.RemoteData._clean .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData._clean .. py:method:: _validate() :canonical: aiida.orm.nodes.data.remote.base.RemoteData._validate .. py:method:: get_authinfo() :canonical: aiida.orm.nodes.data.remote.base.RemoteData.get_authinfo .. autodoc2-docstring:: aiida.orm.nodes.data.remote.base.RemoteData.get_authinfo .. py:class:: RemoteStashData(stash_mode: aiida.common.datastructures.StashMode, **kwargs) :canonical: aiida.orm.nodes.data.remote.stash.base.RemoteStashData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.base.RemoteStashData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.base.RemoteStashData.__init__ .. py:attribute:: _storable :canonical: aiida.orm.nodes.data.remote.stash.base.RemoteStashData._storable :value: False .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.base.RemoteStashData._storable .. py:property:: stash_mode :canonical: aiida.orm.nodes.data.remote.stash.base.RemoteStashData.stash_mode :type: aiida.common.datastructures.StashMode .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.base.RemoteStashData.stash_mode .. py:class:: RemoteStashFolderData(stash_mode: aiida.common.datastructures.StashMode, target_basepath: str, source_list: typing.List, **kwargs) :canonical: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData Bases: :py:obj:`aiida.orm.nodes.data.remote.stash.base.RemoteStashData` .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData.__init__ .. py:attribute:: _storable :canonical: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData._storable :value: True .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData._storable .. py:property:: target_basepath :canonical: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData.target_basepath :type: str .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData.target_basepath .. py:property:: source_list :canonical: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData.source_list :type: typing.Union[typing.List, typing.Tuple] .. autodoc2-docstring:: aiida.orm.nodes.data.remote.stash.folder.RemoteStashFolderData.source_list .. py:class:: SinglefileData(file, filename=None, **kwargs) :canonical: aiida.orm.nodes.data.singlefile.SinglefileData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData.__init__ .. py:attribute:: DEFAULT_FILENAME :canonical: aiida.orm.nodes.data.singlefile.SinglefileData.DEFAULT_FILENAME :value: 'file.txt' .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData.DEFAULT_FILENAME .. py:property:: filename :canonical: aiida.orm.nodes.data.singlefile.SinglefileData.filename .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData.filename .. py:method:: open(path=None, mode='r') :canonical: aiida.orm.nodes.data.singlefile.SinglefileData.open .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData.open .. py:method:: get_content() :canonical: aiida.orm.nodes.data.singlefile.SinglefileData.get_content .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData.get_content .. py:method:: set_file(file, filename=None) :canonical: aiida.orm.nodes.data.singlefile.SinglefileData.set_file .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData.set_file .. py:method:: _validate() :canonical: aiida.orm.nodes.data.singlefile.SinglefileData._validate .. autodoc2-docstring:: aiida.orm.nodes.data.singlefile.SinglefileData._validate .. py:class:: Site(**kwargs) :canonical: aiida.orm.nodes.data.structure.Site .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site.__init__ .. py:method:: get_raw() :canonical: aiida.orm.nodes.data.structure.Site.get_raw .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site.get_raw .. py:method:: get_ase(kinds) :canonical: aiida.orm.nodes.data.structure.Site.get_ase .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site.get_ase .. py:property:: kind_name :canonical: aiida.orm.nodes.data.structure.Site.kind_name .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site.kind_name .. py:property:: position :canonical: aiida.orm.nodes.data.structure.Site.position .. autodoc2-docstring:: aiida.orm.nodes.data.structure.Site.position .. py:method:: __repr__() :canonical: aiida.orm.nodes.data.structure.Site.__repr__ .. py:method:: __str__() :canonical: aiida.orm.nodes.data.structure.Site.__str__ .. py:class:: Str :canonical: aiida.orm.nodes.data.str.Str Bases: :py:obj:`aiida.orm.nodes.data.base.BaseType` .. autodoc2-docstring:: aiida.orm.nodes.data.str.Str .. py:attribute:: _type :canonical: aiida.orm.nodes.data.str.Str._type :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.str.Str._type .. py:class:: StructureData(cell=None, pbc=None, ase=None, pymatgen=None, pymatgen_structure=None, pymatgen_molecule=None, **kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData Bases: :py:obj:`aiida.orm.nodes.data.data.Data` .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.__init__ .. py:attribute:: _set_incompatibilities :canonical: aiida.orm.nodes.data.structure.StructureData._set_incompatibilities :value: [('ase', 'cell'), ('ase', 'pbc'), ('ase', 'pymatgen'), ('ase', 'pymatgen_molecule'), ('ase', 'pymatg... .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._set_incompatibilities .. py:attribute:: _dimensionality_label :canonical: aiida.orm.nodes.data.structure.StructureData._dimensionality_label :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._dimensionality_label .. py:attribute:: _internal_kind_tags :canonical: aiida.orm.nodes.data.structure.StructureData._internal_kind_tags :value: None .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._internal_kind_tags .. py:method:: get_dimensionality() :canonical: aiida.orm.nodes.data.structure.StructureData.get_dimensionality .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_dimensionality .. py:method:: set_ase(aseatoms) :canonical: aiida.orm.nodes.data.structure.StructureData.set_ase .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_ase .. py:method:: set_pymatgen(obj, **kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData.set_pymatgen .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_pymatgen .. py:method:: set_pymatgen_molecule(mol, margin=5) :canonical: aiida.orm.nodes.data.structure.StructureData.set_pymatgen_molecule .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_pymatgen_molecule .. py:method:: set_pymatgen_structure(struct) :canonical: aiida.orm.nodes.data.structure.StructureData.set_pymatgen_structure .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_pymatgen_structure .. py:method:: _validate() :canonical: aiida.orm.nodes.data.structure.StructureData._validate .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._validate .. py:method:: _prepare_xsf(main_file_name='') :canonical: aiida.orm.nodes.data.structure.StructureData._prepare_xsf .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._prepare_xsf .. py:method:: _prepare_cif(main_file_name='') :canonical: aiida.orm.nodes.data.structure.StructureData._prepare_cif .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._prepare_cif .. py:method:: _prepare_chemdoodle(main_file_name='') :canonical: aiida.orm.nodes.data.structure.StructureData._prepare_chemdoodle .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._prepare_chemdoodle .. py:method:: _prepare_xyz(main_file_name='') :canonical: aiida.orm.nodes.data.structure.StructureData._prepare_xyz .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._prepare_xyz .. py:method:: _parse_xyz(inputstring) :canonical: aiida.orm.nodes.data.structure.StructureData._parse_xyz .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._parse_xyz .. py:method:: _adjust_default_cell(vacuum_factor=1.0, vacuum_addition=10.0, pbc=(False, False, False)) :canonical: aiida.orm.nodes.data.structure.StructureData._adjust_default_cell .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._adjust_default_cell .. py:method:: get_description() :canonical: aiida.orm.nodes.data.structure.StructureData.get_description .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_description .. py:method:: get_symbols_set() :canonical: aiida.orm.nodes.data.structure.StructureData.get_symbols_set .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_symbols_set .. py:method:: get_formula(mode='hill', separator='') :canonical: aiida.orm.nodes.data.structure.StructureData.get_formula .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_formula .. py:method:: get_site_kindnames() :canonical: aiida.orm.nodes.data.structure.StructureData.get_site_kindnames .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_site_kindnames .. py:method:: get_composition() :canonical: aiida.orm.nodes.data.structure.StructureData.get_composition .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_composition .. py:method:: get_ase() :canonical: aiida.orm.nodes.data.structure.StructureData.get_ase .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_ase .. py:method:: get_pymatgen(**kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData.get_pymatgen .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_pymatgen .. py:method:: get_pymatgen_structure(**kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData.get_pymatgen_structure .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_pymatgen_structure .. py:method:: get_pymatgen_molecule() :canonical: aiida.orm.nodes.data.structure.StructureData.get_pymatgen_molecule .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_pymatgen_molecule .. py:method:: append_kind(kind) :canonical: aiida.orm.nodes.data.structure.StructureData.append_kind .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.append_kind .. py:method:: append_site(site) :canonical: aiida.orm.nodes.data.structure.StructureData.append_site .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.append_site .. py:method:: append_atom(**kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData.append_atom .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.append_atom .. py:method:: clear_kinds() :canonical: aiida.orm.nodes.data.structure.StructureData.clear_kinds .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.clear_kinds .. py:method:: clear_sites() :canonical: aiida.orm.nodes.data.structure.StructureData.clear_sites .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.clear_sites .. py:property:: sites :canonical: aiida.orm.nodes.data.structure.StructureData.sites .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.sites .. py:property:: kinds :canonical: aiida.orm.nodes.data.structure.StructureData.kinds .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.kinds .. py:method:: get_kind(kind_name) :canonical: aiida.orm.nodes.data.structure.StructureData.get_kind .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_kind .. py:method:: get_kind_names() :canonical: aiida.orm.nodes.data.structure.StructureData.get_kind_names .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_kind_names .. py:property:: cell :canonical: aiida.orm.nodes.data.structure.StructureData.cell .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.cell .. py:method:: set_cell(value) :canonical: aiida.orm.nodes.data.structure.StructureData.set_cell .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_cell .. py:method:: reset_cell(new_cell) :canonical: aiida.orm.nodes.data.structure.StructureData.reset_cell .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.reset_cell .. py:method:: reset_sites_positions(new_positions, conserve_particle=True) :canonical: aiida.orm.nodes.data.structure.StructureData.reset_sites_positions .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.reset_sites_positions .. py:property:: pbc :canonical: aiida.orm.nodes.data.structure.StructureData.pbc .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.pbc .. py:method:: set_pbc(value) :canonical: aiida.orm.nodes.data.structure.StructureData.set_pbc .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_pbc .. py:property:: cell_lengths :canonical: aiida.orm.nodes.data.structure.StructureData.cell_lengths .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.cell_lengths .. py:method:: set_cell_lengths(value) :canonical: aiida.orm.nodes.data.structure.StructureData.set_cell_lengths :abstractmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_cell_lengths .. py:property:: cell_angles :canonical: aiida.orm.nodes.data.structure.StructureData.cell_angles .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.cell_angles .. py:method:: set_cell_angles(value) :canonical: aiida.orm.nodes.data.structure.StructureData.set_cell_angles :abstractmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.set_cell_angles .. py:property:: is_alloy :canonical: aiida.orm.nodes.data.structure.StructureData.is_alloy .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.is_alloy .. py:property:: has_vacancies :canonical: aiida.orm.nodes.data.structure.StructureData.has_vacancies .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.has_vacancies .. py:method:: get_cell_volume() :canonical: aiida.orm.nodes.data.structure.StructureData.get_cell_volume .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_cell_volume .. py:method:: get_cif(converter='ase', store=False, **kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData.get_cif .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData.get_cif .. py:method:: _get_object_phonopyatoms() :canonical: aiida.orm.nodes.data.structure.StructureData._get_object_phonopyatoms .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._get_object_phonopyatoms .. py:method:: _get_object_ase() :canonical: aiida.orm.nodes.data.structure.StructureData._get_object_ase .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._get_object_ase .. py:method:: _get_object_pymatgen(**kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData._get_object_pymatgen .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._get_object_pymatgen .. py:method:: _get_object_pymatgen_structure(**kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData._get_object_pymatgen_structure .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._get_object_pymatgen_structure .. py:method:: _get_object_pymatgen_molecule(**kwargs) :canonical: aiida.orm.nodes.data.structure.StructureData._get_object_pymatgen_molecule .. autodoc2-docstring:: aiida.orm.nodes.data.structure.StructureData._get_object_pymatgen_molecule .. py:class:: TrajectoryData(structurelist=None, **kwargs) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData Bases: :py:obj:`aiida.orm.nodes.data.array.array.ArrayData` .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.__init__ .. py:method:: _internal_validate(stepids, cells, symbols, positions, times, velocities) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData._internal_validate .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData._internal_validate .. py:method:: set_trajectory(symbols, positions, stepids=None, cells=None, times=None, velocities=None) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.set_trajectory .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.set_trajectory .. py:method:: set_structurelist(structurelist) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.set_structurelist .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.set_structurelist .. py:method:: _validate() :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData._validate .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData._validate .. py:property:: numsteps :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.numsteps .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.numsteps .. py:property:: numsites :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.numsites .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.numsites .. py:method:: get_stepids() :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_stepids .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_stepids .. py:method:: get_times() :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_times .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_times .. py:method:: get_cells() :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_cells .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_cells .. py:property:: symbols :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.symbols .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.symbols .. py:method:: get_positions() :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_positions .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_positions .. py:method:: get_velocities() :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_velocities .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_velocities .. py:method:: get_index_from_stepid(stepid) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_index_from_stepid .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_index_from_stepid .. py:method:: get_step_data(index) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_step_data .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_step_data .. py:method:: get_step_structure(index, custom_kinds=None) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_step_structure .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_step_structure .. py:method:: _prepare_xsf(index=None, main_file_name='') :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData._prepare_xsf .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData._prepare_xsf .. py:method:: _prepare_cif(trajectory_index=None, main_file_name='') :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData._prepare_cif .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData._prepare_cif .. py:method:: get_structure(store=False, **kwargs) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_structure .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_structure .. py:method:: get_cif(index=None, **kwargs) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_cif .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.get_cif .. py:method:: _parse_xyz_pos(inputstring) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData._parse_xyz_pos .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData._parse_xyz_pos .. py:method:: _parse_xyz_vel(inputstring) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData._parse_xyz_vel .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData._parse_xyz_vel .. py:method:: show_mpl_pos(**kwargs) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.show_mpl_pos .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.show_mpl_pos .. py:method:: show_mpl_heatmap(**kwargs) :canonical: aiida.orm.nodes.data.array.trajectory.TrajectoryData.show_mpl_heatmap .. autodoc2-docstring:: aiida.orm.nodes.data.array.trajectory.TrajectoryData.show_mpl_heatmap .. py:class:: UpfData(file, filename=None, **kwargs) :canonical: aiida.orm.nodes.data.upf.UpfData Bases: :py:obj:`aiida.orm.nodes.data.singlefile.SinglefileData` .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.__init__ .. py:method:: get_or_create(filepath, use_first=False, store_upf=True) :canonical: aiida.orm.nodes.data.upf.UpfData.get_or_create :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.get_or_create .. py:method:: store(*args, **kwargs) :canonical: aiida.orm.nodes.data.upf.UpfData.store .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.store .. py:method:: from_md5(md5, backend=None) :canonical: aiida.orm.nodes.data.upf.UpfData.from_md5 :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.from_md5 .. py:method:: set_file(file, filename=None) :canonical: aiida.orm.nodes.data.upf.UpfData.set_file .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.set_file .. py:method:: get_upf_family_names() :canonical: aiida.orm.nodes.data.upf.UpfData.get_upf_family_names .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.get_upf_family_names .. py:property:: element :canonical: aiida.orm.nodes.data.upf.UpfData.element .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.element .. py:property:: md5sum :canonical: aiida.orm.nodes.data.upf.UpfData.md5sum .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.md5sum .. py:method:: _validate() :canonical: aiida.orm.nodes.data.upf.UpfData._validate .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData._validate .. py:method:: _prepare_upf(main_file_name='') :canonical: aiida.orm.nodes.data.upf.UpfData._prepare_upf .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData._prepare_upf .. py:method:: get_upf_group(group_label) :canonical: aiida.orm.nodes.data.upf.UpfData.get_upf_group :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.get_upf_group .. py:method:: get_upf_groups(filter_elements=None, user=None, backend=None) :canonical: aiida.orm.nodes.data.upf.UpfData.get_upf_groups :classmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData.get_upf_groups .. py:method:: _prepare_json(main_file_name='') :canonical: aiida.orm.nodes.data.upf.UpfData._prepare_json .. autodoc2-docstring:: aiida.orm.nodes.data.upf.UpfData._prepare_json .. py:class:: UpfFamily(label: typing.Optional[str] = None, user: typing.Optional[aiida.orm.User] = None, description: str = '', type_string: typing.Optional[str] = None, backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.groups.UpfFamily Bases: :py:obj:`aiida.orm.groups.Group` .. autodoc2-docstring:: aiida.orm.groups.UpfFamily .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.groups.UpfFamily.__init__ .. py:class:: User(email: str, first_name: str = '', last_name: str = '', institution: str = '', backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.orm.users.User Bases: :py:obj:`aiida.orm.entities.Entity`\ [\ :py:obj:`aiida.orm.implementation.BackendUser`\ , :py:obj:`aiida.orm.users.UserCollection`\ ] .. autodoc2-docstring:: aiida.orm.users.User .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.users.User.__init__ .. py:attribute:: _CLS_COLLECTION :canonical: aiida.orm.users.User._CLS_COLLECTION :value: None .. autodoc2-docstring:: aiida.orm.users.User._CLS_COLLECTION .. py:method:: __str__() -> str :canonical: aiida.orm.users.User.__str__ .. autodoc2-docstring:: aiida.orm.users.User.__str__ .. py:method:: normalize_email(email: str) -> str :canonical: aiida.orm.users.User.normalize_email :staticmethod: .. autodoc2-docstring:: aiida.orm.users.User.normalize_email .. py:property:: email :canonical: aiida.orm.users.User.email :type: str .. autodoc2-docstring:: aiida.orm.users.User.email .. py:property:: first_name :canonical: aiida.orm.users.User.first_name :type: str .. autodoc2-docstring:: aiida.orm.users.User.first_name .. py:property:: last_name :canonical: aiida.orm.users.User.last_name :type: str .. autodoc2-docstring:: aiida.orm.users.User.last_name .. py:property:: institution :canonical: aiida.orm.users.User.institution :type: str .. autodoc2-docstring:: aiida.orm.users.User.institution .. py:method:: get_full_name() -> str :canonical: aiida.orm.users.User.get_full_name .. autodoc2-docstring:: aiida.orm.users.User.get_full_name .. py:method:: get_short_name() -> str :canonical: aiida.orm.users.User.get_short_name .. autodoc2-docstring:: aiida.orm.users.User.get_short_name .. py:property:: uuid :canonical: aiida.orm.users.User.uuid :type: None .. autodoc2-docstring:: aiida.orm.users.User.uuid .. py:class:: WorkChainNode :canonical: aiida.orm.nodes.process.workflow.workchain.WorkChainNode Bases: :py:obj:`aiida.orm.nodes.process.workflow.workflow.WorkflowNode` .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workchain.WorkChainNode .. py:attribute:: STEPPER_STATE_INFO_KEY :canonical: aiida.orm.nodes.process.workflow.workchain.WorkChainNode.STEPPER_STATE_INFO_KEY :value: 'stepper_state_info' .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workchain.WorkChainNode.STEPPER_STATE_INFO_KEY .. py:method:: _updatable_attributes() -> typing.Tuple[str, ...] :canonical: aiida.orm.nodes.process.workflow.workchain.WorkChainNode._updatable_attributes .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workchain.WorkChainNode._updatable_attributes .. py:property:: stepper_state_info :canonical: aiida.orm.nodes.process.workflow.workchain.WorkChainNode.stepper_state_info :type: typing.Optional[str] .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workchain.WorkChainNode.stepper_state_info .. py:method:: set_stepper_state_info(stepper_state_info: str) -> None :canonical: aiida.orm.nodes.process.workflow.workchain.WorkChainNode.set_stepper_state_info .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workchain.WorkChainNode.set_stepper_state_info .. py:class:: WorkFunctionNode :canonical: aiida.orm.nodes.process.workflow.workfunction.WorkFunctionNode Bases: :py:obj:`aiida.orm.utils.mixins.FunctionCalculationMixin`, :py:obj:`aiida.orm.nodes.process.workflow.workflow.WorkflowNode` .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workfunction.WorkFunctionNode .. py:attribute:: _CLS_NODE_LINKS :canonical: aiida.orm.nodes.process.workflow.workfunction.WorkFunctionNode._CLS_NODE_LINKS :value: None .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workfunction.WorkFunctionNode._CLS_NODE_LINKS .. py:class:: WorkflowNode(backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None, user: typing.Optional[aiida.orm.users.User] = None, computer: typing.Optional[aiida.orm.computers.Computer] = None, **kwargs: typing.Any) :canonical: aiida.orm.nodes.process.workflow.workflow.WorkflowNode Bases: :py:obj:`aiida.orm.nodes.process.process.ProcessNode` .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode .. rubric:: Initialization .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode.__init__ .. py:attribute:: _CLS_NODE_LINKS :canonical: aiida.orm.nodes.process.workflow.workflow.WorkflowNode._CLS_NODE_LINKS :value: None .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode._CLS_NODE_LINKS .. py:attribute:: _storable :canonical: aiida.orm.nodes.process.workflow.workflow.WorkflowNode._storable :value: True .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode._storable .. py:attribute:: _unstorable_message :canonical: aiida.orm.nodes.process.workflow.workflow.WorkflowNode._unstorable_message :value: 'storing for this node has been disabled' .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode._unstorable_message .. py:property:: inputs :canonical: aiida.orm.nodes.process.workflow.workflow.WorkflowNode.inputs :type: aiida.orm.utils.managers.NodeLinksManager .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode.inputs .. py:property:: outputs :canonical: aiida.orm.nodes.process.workflow.workflow.WorkflowNode.outputs :type: aiida.orm.utils.managers.NodeLinksManager .. autodoc2-docstring:: aiida.orm.nodes.process.workflow.workflow.WorkflowNode.outputs .. py:class:: XyData :canonical: aiida.orm.nodes.data.array.xy.XyData Bases: :py:obj:`aiida.orm.nodes.data.array.array.ArrayData` .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData .. py:method:: _arrayandname_validator(array, name, units) :canonical: aiida.orm.nodes.data.array.xy.XyData._arrayandname_validator :staticmethod: .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData._arrayandname_validator .. py:method:: set_x(x_array, x_name, x_units) :canonical: aiida.orm.nodes.data.array.xy.XyData.set_x .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData.set_x .. py:method:: set_y(y_arrays, y_names, y_units) :canonical: aiida.orm.nodes.data.array.xy.XyData.set_y .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData.set_y .. py:method:: get_x() :canonical: aiida.orm.nodes.data.array.xy.XyData.get_x .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData.get_x .. py:method:: get_y() :canonical: aiida.orm.nodes.data.array.xy.XyData.get_y .. autodoc2-docstring:: aiida.orm.nodes.data.array.xy.XyData.get_y .. py:function:: cif_from_ase(ase, full_occupancies=False, add_fake_biso=False) :canonical: aiida.orm.nodes.data.cif.cif_from_ase .. autodoc2-docstring:: aiida.orm.nodes.data.cif.cif_from_ase .. py:function:: find_bandgap(bandsdata, number_electrons=None, fermi_energy=None) :canonical: aiida.orm.nodes.data.array.bands.find_bandgap .. autodoc2-docstring:: aiida.orm.nodes.data.array.bands.find_bandgap .. py:function:: get_loader(orm_class) :canonical: aiida.orm.utils.loaders.get_loader .. autodoc2-docstring:: aiida.orm.utils.loaders.get_loader .. py:function:: get_query_type_from_type_string(type_string) :canonical: aiida.orm.utils.node.get_query_type_from_type_string .. autodoc2-docstring:: aiida.orm.utils.node.get_query_type_from_type_string .. py:function:: get_type_string_from_class(class_module, class_name) :canonical: aiida.orm.utils.node.get_type_string_from_class .. autodoc2-docstring:: aiida.orm.utils.node.get_type_string_from_class .. py:function:: has_pycifrw() :canonical: aiida.orm.nodes.data.cif.has_pycifrw .. autodoc2-docstring:: aiida.orm.nodes.data.cif.has_pycifrw .. py:function:: load_code(identifier=None, pk=None, uuid=None, label=None, sub_classes=None, query_with_dashes=True) -> aiida.orm.Code :canonical: aiida.orm.utils.loaders.load_code .. autodoc2-docstring:: aiida.orm.utils.loaders.load_code .. py:function:: load_computer(identifier=None, pk=None, uuid=None, label=None, sub_classes=None, query_with_dashes=True) -> aiida.orm.Computer :canonical: aiida.orm.utils.loaders.load_computer .. autodoc2-docstring:: aiida.orm.utils.loaders.load_computer .. py:function:: load_entity(entity_loader=None, identifier=None, pk=None, uuid=None, label=None, sub_classes=None, query_with_dashes=True) :canonical: aiida.orm.utils.loaders.load_entity .. autodoc2-docstring:: aiida.orm.utils.loaders.load_entity .. py:function:: load_group(identifier=None, pk=None, uuid=None, label=None, sub_classes=None, query_with_dashes=True) -> aiida.orm.Group :canonical: aiida.orm.utils.loaders.load_group .. autodoc2-docstring:: aiida.orm.utils.loaders.load_group .. py:function:: load_node(identifier=None, pk=None, uuid=None, label=None, sub_classes=None, query_with_dashes=True) -> aiida.orm.Node :canonical: aiida.orm.utils.loaders.load_node .. autodoc2-docstring:: aiida.orm.utils.loaders.load_node .. py:function:: load_node_class(type_string) :canonical: aiida.orm.utils.node.load_node_class .. autodoc2-docstring:: aiida.orm.utils.node.load_node_class .. py:function:: pycifrw_from_cif(datablocks, loops=None, names=None) :canonical: aiida.orm.nodes.data.cif.pycifrw_from_cif .. autodoc2-docstring:: aiida.orm.nodes.data.cif.pycifrw_from_cif .. py:function:: to_aiida_type(value) :canonical: aiida.orm.nodes.data.base.to_aiida_type .. autodoc2-docstring:: aiida.orm.nodes.data.base.to_aiida_type .. py:function:: validate_link(source: aiida.orm.Node, target: aiida.orm.Node, link_type: aiida.common.links.LinkType, link_label: str, backend: typing.Optional[aiida.orm.implementation.storage_backend.StorageBackend] = None) -> None :canonical: aiida.orm.utils.links.validate_link .. autodoc2-docstring:: aiida.orm.utils.links.validate_link sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.parsers.rst000066400000000000000000000047071453104212700234520ustar00rootroot00000000000000:py:mod:`aiida.parsers` ======================= .. py:module:: aiida.parsers .. autodoc2-docstring:: aiida.parsers :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`Parser ` - .. autodoc2-docstring:: aiida.parsers.parser.Parser :summary: API ~~~ .. py:class:: Parser(node: aiida.orm.CalcJobNode) :canonical: aiida.parsers.parser.Parser Bases: :py:obj:`abc.ABC` .. autodoc2-docstring:: aiida.parsers.parser.Parser .. rubric:: Initialization .. autodoc2-docstring:: aiida.parsers.parser.Parser.__init__ .. py:property:: logger :canonical: aiida.parsers.parser.Parser.logger .. autodoc2-docstring:: aiida.parsers.parser.Parser.logger .. py:property:: node :canonical: aiida.parsers.parser.Parser.node :type: aiida.orm.CalcJobNode .. autodoc2-docstring:: aiida.parsers.parser.Parser.node .. py:property:: exit_codes :canonical: aiida.parsers.parser.Parser.exit_codes :type: aiida.engine.ExitCodesNamespace .. autodoc2-docstring:: aiida.parsers.parser.Parser.exit_codes .. py:property:: retrieved :canonical: aiida.parsers.parser.Parser.retrieved :type: aiida.orm.FolderData .. autodoc2-docstring:: aiida.parsers.parser.Parser.retrieved .. py:property:: outputs :canonical: aiida.parsers.parser.Parser.outputs .. autodoc2-docstring:: aiida.parsers.parser.Parser.outputs .. py:method:: out(link_label: str, node: aiida.orm.Data) -> None :canonical: aiida.parsers.parser.Parser.out .. autodoc2-docstring:: aiida.parsers.parser.Parser.out .. py:method:: get_outputs_for_parsing() :canonical: aiida.parsers.parser.Parser.get_outputs_for_parsing .. autodoc2-docstring:: aiida.parsers.parser.Parser.get_outputs_for_parsing .. py:method:: parse_from_node(node: aiida.orm.CalcJobNode, store_provenance=True, retrieved_temporary_folder=None) -> typing.Tuple[typing.Optional[typing.Dict[str, typing.Any]], aiida.orm.CalcFunctionNode] :canonical: aiida.parsers.parser.Parser.parse_from_node :classmethod: .. autodoc2-docstring:: aiida.parsers.parser.Parser.parse_from_node .. py:method:: parse(**kwargs) -> typing.Optional[aiida.engine.ExitCode] :canonical: aiida.parsers.parser.Parser.parse :abstractmethod: .. autodoc2-docstring:: aiida.parsers.parser.Parser.parse sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.plugins.rst000066400000000000000000000201631453104212700234460ustar00rootroot00000000000000:py:mod:`aiida.plugins` ======================= .. py:module:: aiida.plugins .. autodoc2-docstring:: aiida.plugins :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`PluginVersionProvider ` - .. autodoc2-docstring:: aiida.plugins.utils.PluginVersionProvider :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`BaseFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.BaseFactory :summary: * - :py:obj:`CalcJobImporterFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.CalcJobImporterFactory :summary: * - :py:obj:`CalculationFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.CalculationFactory :summary: * - :py:obj:`DataFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.DataFactory :summary: * - :py:obj:`DbImporterFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.DbImporterFactory :summary: * - :py:obj:`GroupFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.GroupFactory :summary: * - :py:obj:`OrbitalFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.OrbitalFactory :summary: * - :py:obj:`ParserFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.ParserFactory :summary: * - :py:obj:`SchedulerFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.SchedulerFactory :summary: * - :py:obj:`StorageFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.StorageFactory :summary: * - :py:obj:`TransportFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.TransportFactory :summary: * - :py:obj:`WorkflowFactory ` - .. autodoc2-docstring:: aiida.plugins.factories.WorkflowFactory :summary: * - :py:obj:`get_entry_points ` - .. autodoc2-docstring:: aiida.plugins.entry_point.get_entry_points :summary: * - :py:obj:`load_entry_point ` - .. autodoc2-docstring:: aiida.plugins.entry_point.load_entry_point :summary: * - :py:obj:`load_entry_point_from_string ` - .. autodoc2-docstring:: aiida.plugins.entry_point.load_entry_point_from_string :summary: * - :py:obj:`parse_entry_point ` - .. autodoc2-docstring:: aiida.plugins.entry_point.parse_entry_point :summary: API ~~~ .. py:function:: BaseFactory(group: str, name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Any] :canonical: aiida.plugins.factories.BaseFactory .. autodoc2-docstring:: aiida.plugins.factories.BaseFactory .. py:function:: CalcJobImporterFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.engine.CalcJobImporter]] :canonical: aiida.plugins.factories.CalcJobImporterFactory .. autodoc2-docstring:: aiida.plugins.factories.CalcJobImporterFactory .. py:function:: CalculationFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.engine.CalcJob], typing.Callable] :canonical: aiida.plugins.factories.CalculationFactory .. autodoc2-docstring:: aiida.plugins.factories.CalculationFactory .. py:function:: DataFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.orm.Data]] :canonical: aiida.plugins.factories.DataFactory .. autodoc2-docstring:: aiida.plugins.factories.DataFactory .. py:function:: DbImporterFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.tools.dbimporters.DbImporter]] :canonical: aiida.plugins.factories.DbImporterFactory .. autodoc2-docstring:: aiida.plugins.factories.DbImporterFactory .. py:function:: GroupFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.orm.Group]] :canonical: aiida.plugins.factories.GroupFactory .. autodoc2-docstring:: aiida.plugins.factories.GroupFactory .. py:function:: OrbitalFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.tools.data.orbital.Orbital]] :canonical: aiida.plugins.factories.OrbitalFactory .. autodoc2-docstring:: aiida.plugins.factories.OrbitalFactory .. py:function:: ParserFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.parsers.Parser]] :canonical: aiida.plugins.factories.ParserFactory .. autodoc2-docstring:: aiida.plugins.factories.ParserFactory .. py:class:: PluginVersionProvider() :canonical: aiida.plugins.utils.PluginVersionProvider .. autodoc2-docstring:: aiida.plugins.utils.PluginVersionProvider .. rubric:: Initialization .. autodoc2-docstring:: aiida.plugins.utils.PluginVersionProvider.__init__ .. py:property:: logger :canonical: aiida.plugins.utils.PluginVersionProvider.logger :type: logging.Logger .. autodoc2-docstring:: aiida.plugins.utils.PluginVersionProvider.logger .. py:method:: get_version_info(plugin: str | type) -> dict[typing.Any, dict[typing.Any, typing.Any]] :canonical: aiida.plugins.utils.PluginVersionProvider.get_version_info .. autodoc2-docstring:: aiida.plugins.utils.PluginVersionProvider.get_version_info .. py:function:: SchedulerFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.schedulers.Scheduler]] :canonical: aiida.plugins.factories.SchedulerFactory .. autodoc2-docstring:: aiida.plugins.factories.SchedulerFactory .. py:function:: StorageFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.orm.implementation.StorageBackend]] :canonical: aiida.plugins.factories.StorageFactory .. autodoc2-docstring:: aiida.plugins.factories.StorageFactory .. py:function:: TransportFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.transports.Transport]] :canonical: aiida.plugins.factories.TransportFactory .. autodoc2-docstring:: aiida.plugins.factories.TransportFactory .. py:function:: WorkflowFactory(entry_point_name: str, load: bool = True) -> typing.Union[importlib_metadata.EntryPoint, typing.Type[aiida.engine.WorkChain], typing.Callable] :canonical: aiida.plugins.factories.WorkflowFactory .. autodoc2-docstring:: aiida.plugins.factories.WorkflowFactory .. py:function:: get_entry_points(group: str) -> importlib_metadata.EntryPoints :canonical: aiida.plugins.entry_point.get_entry_points .. autodoc2-docstring:: aiida.plugins.entry_point.get_entry_points .. py:function:: load_entry_point(group: str, name: str) -> typing.Any :canonical: aiida.plugins.entry_point.load_entry_point .. autodoc2-docstring:: aiida.plugins.entry_point.load_entry_point .. py:function:: load_entry_point_from_string(entry_point_string: str) -> typing.Any :canonical: aiida.plugins.entry_point.load_entry_point_from_string .. autodoc2-docstring:: aiida.plugins.entry_point.load_entry_point_from_string .. py:function:: parse_entry_point(group: str, spec: str) -> importlib_metadata.EntryPoint :canonical: aiida.plugins.entry_point.parse_entry_point .. autodoc2-docstring:: aiida.plugins.entry_point.parse_entry_point sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.repository.rst000066400000000000000000000641221453104212700242070ustar00rootroot00000000000000:py:mod:`aiida.repository` ========================== .. py:module:: aiida.repository .. autodoc2-docstring:: aiida.repository :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AbstractRepositoryBackend ` - .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend :summary: * - :py:obj:`DiskObjectStoreRepositoryBackend ` - .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend :summary: * - :py:obj:`File ` - .. autodoc2-docstring:: aiida.repository.common.File :summary: * - :py:obj:`FileType ` - .. autodoc2-docstring:: aiida.repository.common.FileType :summary: * - :py:obj:`Repository ` - .. autodoc2-docstring:: aiida.repository.repository.Repository :summary: * - :py:obj:`SandboxRepositoryBackend ` - .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend :summary: API ~~~ .. py:class:: AbstractRepositoryBackend :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend .. py:property:: uuid :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.uuid :abstractmethod: :type: typing.Optional[str] .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.uuid .. py:property:: key_format :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.key_format :abstractmethod: :type: typing.Optional[str] .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.key_format .. py:method:: initialise(**kwargs) -> None :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.initialise :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.initialise .. py:property:: is_initialised :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.is_initialised :abstractmethod: :type: bool .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.is_initialised .. py:method:: erase() -> None :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.erase :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.erase .. py:method:: is_readable_byte_stream(handle) -> bool :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.is_readable_byte_stream :staticmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.is_readable_byte_stream .. py:method:: put_object_from_filelike(handle: typing.BinaryIO) -> str :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.put_object_from_filelike .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.put_object_from_filelike .. py:method:: _put_object_from_filelike(handle: typing.BinaryIO) -> str :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend._put_object_from_filelike :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend._put_object_from_filelike .. py:method:: put_object_from_file(filepath: typing.Union[str, pathlib.Path]) -> str :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.put_object_from_file .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.put_object_from_file .. py:method:: has_objects(keys: typing.List[str]) -> typing.List[bool] :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.has_objects :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.has_objects .. py:method:: has_object(key: str) -> bool :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.has_object .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.has_object .. py:method:: list_objects() -> typing.Iterable[str] :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.list_objects :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.list_objects .. py:method:: get_info(detailed: bool = False, **kwargs) -> dict :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.get_info :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.get_info .. py:method:: maintain(dry_run: bool = False, live: bool = True, **kwargs) -> None :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.maintain :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.maintain .. py:method:: open(key: str) -> typing.Iterator[typing.BinaryIO] :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.open .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.open .. py:method:: get_object_content(key: str) -> bytes :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.get_object_content .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.get_object_content .. py:method:: iter_object_streams(keys: typing.List[str]) -> typing.Iterator[typing.Tuple[str, typing.BinaryIO]] :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.iter_object_streams :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.iter_object_streams .. py:method:: get_object_hash(key: str) -> str :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.get_object_hash .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.get_object_hash .. py:method:: delete_objects(keys: typing.List[str]) -> None :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.delete_objects :abstractmethod: .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.delete_objects .. py:method:: delete_object(key: str) -> None :canonical: aiida.repository.backend.abstract.AbstractRepositoryBackend.delete_object .. autodoc2-docstring:: aiida.repository.backend.abstract.AbstractRepositoryBackend.delete_object .. py:class:: DiskObjectStoreRepositoryBackend(container: disk_objectstore.Container) :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend Bases: :py:obj:`aiida.repository.backend.abstract.AbstractRepositoryBackend` .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend .. rubric:: Initialization .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.__init__ .. py:method:: __str__() -> str :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.__str__ .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.__str__ .. py:property:: uuid :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.uuid :type: typing.Optional[str] .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.uuid .. py:property:: key_format :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.key_format :type: typing.Optional[str] .. py:method:: initialise(**kwargs) -> None :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.initialise .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.initialise .. py:property:: is_initialised :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.is_initialised :type: bool .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.is_initialised .. py:method:: erase() :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.erase .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.erase .. py:method:: _put_object_from_filelike(handle: typing.BinaryIO) -> str :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend._put_object_from_filelike .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend._put_object_from_filelike .. py:method:: has_objects(keys: typing.List[str]) -> typing.List[bool] :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.has_objects .. py:method:: open(key: str) -> typing.Iterator[typing.BinaryIO] :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.open .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.open .. py:method:: iter_object_streams(keys: typing.List[str]) -> typing.Iterator[typing.Tuple[str, typing.BinaryIO]] :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.iter_object_streams .. py:method:: delete_objects(keys: typing.List[str]) -> None :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.delete_objects .. py:method:: list_objects() -> typing.Iterable[str] :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.list_objects .. py:method:: get_object_hash(key: str) -> str :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.get_object_hash .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.get_object_hash .. py:method:: maintain(dry_run: bool = False, live: bool = True, pack_loose: bool = None, do_repack: bool = None, clean_storage: bool = None, do_vacuum: bool = None) -> dict :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.maintain .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.maintain .. py:method:: get_info(detailed=False) -> typing.Dict[str, typing.Union[int, str, typing.Dict[str, int], typing.Dict[str, float]]] :canonical: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.get_info .. autodoc2-docstring:: aiida.repository.backend.disk_object_store.DiskObjectStoreRepositoryBackend.get_info .. py:class:: File(name: str = '', file_type: aiida.repository.common.FileType = FileType.DIRECTORY, key: typing.Union[str, None] = None, objects: typing.Optional[typing.Dict[str, aiida.repository.common.File]] = None) :canonical: aiida.repository.common.File .. autodoc2-docstring:: aiida.repository.common.File .. rubric:: Initialization .. autodoc2-docstring:: aiida.repository.common.File.__init__ .. py:method:: from_serialized(serialized: dict, name='') -> aiida.repository.common.File :canonical: aiida.repository.common.File.from_serialized :classmethod: .. autodoc2-docstring:: aiida.repository.common.File.from_serialized .. py:method:: serialize() -> dict :canonical: aiida.repository.common.File.serialize .. autodoc2-docstring:: aiida.repository.common.File.serialize .. py:property:: name :canonical: aiida.repository.common.File.name :type: str .. autodoc2-docstring:: aiida.repository.common.File.name .. py:property:: file_type :canonical: aiida.repository.common.File.file_type :type: aiida.repository.common.FileType .. autodoc2-docstring:: aiida.repository.common.File.file_type .. py:method:: is_file() -> bool :canonical: aiida.repository.common.File.is_file .. autodoc2-docstring:: aiida.repository.common.File.is_file .. py:method:: is_dir() -> bool :canonical: aiida.repository.common.File.is_dir .. autodoc2-docstring:: aiida.repository.common.File.is_dir .. py:property:: key :canonical: aiida.repository.common.File.key :type: typing.Union[str, None] .. autodoc2-docstring:: aiida.repository.common.File.key .. py:property:: objects :canonical: aiida.repository.common.File.objects :type: typing.Dict[str, aiida.repository.common.File] .. autodoc2-docstring:: aiida.repository.common.File.objects .. py:method:: __eq__(other) -> bool :canonical: aiida.repository.common.File.__eq__ .. autodoc2-docstring:: aiida.repository.common.File.__eq__ .. py:method:: __repr__() :canonical: aiida.repository.common.File.__repr__ .. py:class:: FileType(*args, **kwds) :canonical: aiida.repository.common.FileType Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.repository.common.FileType .. rubric:: Initialization .. autodoc2-docstring:: aiida.repository.common.FileType.__init__ .. py:attribute:: DIRECTORY :canonical: aiida.repository.common.FileType.DIRECTORY :value: 0 .. autodoc2-docstring:: aiida.repository.common.FileType.DIRECTORY .. py:attribute:: FILE :canonical: aiida.repository.common.FileType.FILE :value: 1 .. autodoc2-docstring:: aiida.repository.common.FileType.FILE .. py:class:: Repository(backend: typing.Optional[aiida.repository.backend.AbstractRepositoryBackend] = None) :canonical: aiida.repository.repository.Repository .. autodoc2-docstring:: aiida.repository.repository.Repository .. rubric:: Initialization .. autodoc2-docstring:: aiida.repository.repository.Repository.__init__ .. py:attribute:: _file_cls :canonical: aiida.repository.repository.Repository._file_cls :value: None .. autodoc2-docstring:: aiida.repository.repository.Repository._file_cls .. py:method:: __str__() -> str :canonical: aiida.repository.repository.Repository.__str__ .. autodoc2-docstring:: aiida.repository.repository.Repository.__str__ .. py:property:: uuid :canonical: aiida.repository.repository.Repository.uuid :type: typing.Optional[str] .. autodoc2-docstring:: aiida.repository.repository.Repository.uuid .. py:property:: is_initialised :canonical: aiida.repository.repository.Repository.is_initialised :type: bool .. autodoc2-docstring:: aiida.repository.repository.Repository.is_initialised .. py:method:: from_serialized(backend: aiida.repository.backend.AbstractRepositoryBackend, serialized: typing.Dict[str, typing.Any]) -> aiida.repository.repository.Repository :canonical: aiida.repository.repository.Repository.from_serialized :classmethod: .. autodoc2-docstring:: aiida.repository.repository.Repository.from_serialized .. py:method:: reset() -> None :canonical: aiida.repository.repository.Repository.reset .. autodoc2-docstring:: aiida.repository.repository.Repository.reset .. py:method:: serialize() -> typing.Dict[str, typing.Any] :canonical: aiida.repository.repository.Repository.serialize .. autodoc2-docstring:: aiida.repository.repository.Repository.serialize .. py:method:: flatten(serialized=Optional[Dict[str, Any]], delimiter: str = '/') -> typing.Dict[str, typing.Optional[str]] :canonical: aiida.repository.repository.Repository.flatten :classmethod: .. autodoc2-docstring:: aiida.repository.repository.Repository.flatten .. py:method:: hash() -> str :canonical: aiida.repository.repository.Repository.hash .. autodoc2-docstring:: aiida.repository.repository.Repository.hash .. py:method:: _pre_process_path(path: typing.Optional[aiida.repository.repository.FilePath] = None) -> pathlib.PurePosixPath :canonical: aiida.repository.repository.Repository._pre_process_path :staticmethod: .. autodoc2-docstring:: aiida.repository.repository.Repository._pre_process_path .. py:property:: backend :canonical: aiida.repository.repository.Repository.backend :type: aiida.repository.backend.AbstractRepositoryBackend .. autodoc2-docstring:: aiida.repository.repository.Repository.backend .. py:method:: set_backend(backend: aiida.repository.backend.AbstractRepositoryBackend) -> None :canonical: aiida.repository.repository.Repository.set_backend .. autodoc2-docstring:: aiida.repository.repository.Repository.set_backend .. py:method:: _insert_file(path: pathlib.PurePosixPath, key: str) -> None :canonical: aiida.repository.repository.Repository._insert_file .. autodoc2-docstring:: aiida.repository.repository.Repository._insert_file .. py:method:: create_directory(path: aiida.repository.repository.FilePath) -> aiida.repository.common.File :canonical: aiida.repository.repository.Repository.create_directory .. autodoc2-docstring:: aiida.repository.repository.Repository.create_directory .. py:method:: get_file_keys() -> typing.List[str] :canonical: aiida.repository.repository.Repository.get_file_keys .. autodoc2-docstring:: aiida.repository.repository.Repository.get_file_keys .. py:method:: get_object(path: typing.Optional[aiida.repository.repository.FilePath] = None) -> aiida.repository.common.File :canonical: aiida.repository.repository.Repository.get_object .. autodoc2-docstring:: aiida.repository.repository.Repository.get_object .. py:method:: get_directory(path: typing.Optional[aiida.repository.repository.FilePath] = None) -> aiida.repository.common.File :canonical: aiida.repository.repository.Repository.get_directory .. autodoc2-docstring:: aiida.repository.repository.Repository.get_directory .. py:method:: get_file(path: aiida.repository.repository.FilePath) -> aiida.repository.common.File :canonical: aiida.repository.repository.Repository.get_file .. autodoc2-docstring:: aiida.repository.repository.Repository.get_file .. py:method:: list_objects(path: typing.Optional[aiida.repository.repository.FilePath] = None) -> typing.List[aiida.repository.common.File] :canonical: aiida.repository.repository.Repository.list_objects .. autodoc2-docstring:: aiida.repository.repository.Repository.list_objects .. py:method:: list_object_names(path: typing.Optional[aiida.repository.repository.FilePath] = None) -> typing.List[str] :canonical: aiida.repository.repository.Repository.list_object_names .. autodoc2-docstring:: aiida.repository.repository.Repository.list_object_names .. py:method:: put_object_from_filelike(handle: typing.BinaryIO, path: aiida.repository.repository.FilePath) -> None :canonical: aiida.repository.repository.Repository.put_object_from_filelike .. autodoc2-docstring:: aiida.repository.repository.Repository.put_object_from_filelike .. py:method:: put_object_from_file(filepath: aiida.repository.repository.FilePath, path: aiida.repository.repository.FilePath) -> None :canonical: aiida.repository.repository.Repository.put_object_from_file .. autodoc2-docstring:: aiida.repository.repository.Repository.put_object_from_file .. py:method:: put_object_from_tree(filepath: aiida.repository.repository.FilePath, path: typing.Optional[aiida.repository.repository.FilePath] = None) -> None :canonical: aiida.repository.repository.Repository.put_object_from_tree .. autodoc2-docstring:: aiida.repository.repository.Repository.put_object_from_tree .. py:method:: is_empty() -> bool :canonical: aiida.repository.repository.Repository.is_empty .. autodoc2-docstring:: aiida.repository.repository.Repository.is_empty .. py:method:: has_object(path: aiida.repository.repository.FilePath) -> bool :canonical: aiida.repository.repository.Repository.has_object .. autodoc2-docstring:: aiida.repository.repository.Repository.has_object .. py:method:: open(path: aiida.repository.repository.FilePath) -> typing.Iterator[typing.BinaryIO] :canonical: aiida.repository.repository.Repository.open .. autodoc2-docstring:: aiida.repository.repository.Repository.open .. py:method:: get_object_content(path: aiida.repository.repository.FilePath) -> bytes :canonical: aiida.repository.repository.Repository.get_object_content .. autodoc2-docstring:: aiida.repository.repository.Repository.get_object_content .. py:method:: delete_object(path: aiida.repository.repository.FilePath, hard_delete: bool = False) -> None :canonical: aiida.repository.repository.Repository.delete_object .. autodoc2-docstring:: aiida.repository.repository.Repository.delete_object .. py:method:: erase() -> None :canonical: aiida.repository.repository.Repository.erase .. autodoc2-docstring:: aiida.repository.repository.Repository.erase .. py:method:: clone(source: aiida.repository.repository.Repository) -> None :canonical: aiida.repository.repository.Repository.clone .. autodoc2-docstring:: aiida.repository.repository.Repository.clone .. py:method:: walk(path: typing.Optional[aiida.repository.repository.FilePath] = None) -> typing.Iterable[typing.Tuple[pathlib.PurePosixPath, typing.List[str], typing.List[str]]] :canonical: aiida.repository.repository.Repository.walk .. autodoc2-docstring:: aiida.repository.repository.Repository.walk .. py:method:: copy_tree(target: typing.Union[str, pathlib.Path], path: typing.Optional[aiida.repository.repository.FilePath] = None) -> None :canonical: aiida.repository.repository.Repository.copy_tree .. autodoc2-docstring:: aiida.repository.repository.Repository.copy_tree .. py:method:: initialise(**kwargs: typing.Any) -> None :canonical: aiida.repository.repository.Repository.initialise .. autodoc2-docstring:: aiida.repository.repository.Repository.initialise .. py:method:: delete() -> None :canonical: aiida.repository.repository.Repository.delete .. autodoc2-docstring:: aiida.repository.repository.Repository.delete .. py:class:: SandboxRepositoryBackend(filepath: str | None = None) :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend Bases: :py:obj:`aiida.repository.backend.abstract.AbstractRepositoryBackend` .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend .. rubric:: Initialization .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.__init__ .. py:method:: __str__() -> str :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.__str__ .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.__str__ .. py:method:: __del__() :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.__del__ .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.__del__ .. py:property:: uuid :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.uuid :type: str | None .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.uuid .. py:property:: key_format :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.key_format :type: str | None .. py:method:: initialise(**kwargs) -> None :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.initialise .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.initialise .. py:property:: is_initialised :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.is_initialised :type: bool .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.is_initialised .. py:property:: sandbox :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.sandbox .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.sandbox .. py:method:: erase() :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.erase .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend.erase .. py:method:: _put_object_from_filelike(handle: typing.BinaryIO) -> str :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend._put_object_from_filelike .. autodoc2-docstring:: aiida.repository.backend.sandbox.SandboxRepositoryBackend._put_object_from_filelike .. py:method:: has_objects(keys: list[str]) -> list[bool] :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.has_objects .. py:method:: open(key: str) -> typing.Iterator[typing.BinaryIO] :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.open .. py:method:: iter_object_streams(keys: list[str]) -> typing.Iterator[tuple[str, typing.BinaryIO]] :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.iter_object_streams .. py:method:: delete_objects(keys: list[str]) -> None :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.delete_objects .. py:method:: list_objects() -> typing.Iterable[str] :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.list_objects .. py:method:: maintain(dry_run: bool = False, live: bool = True, **kwargs) -> None :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.maintain :abstractmethod: .. py:method:: get_info(detailed: bool = False, **kwargs) -> dict :canonical: aiida.repository.backend.sandbox.SandboxRepositoryBackend.get_info :abstractmethod: sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.rst000066400000000000000000000071761453104212700217770ustar00rootroot00000000000000:py:mod:`aiida` =============== .. py:module:: aiida .. autodoc2-docstring:: aiida :allowtitles: Subpackages ----------- .. toctree:: :titlesonly: :maxdepth: 3 aiida.repository aiida.parsers aiida.tools aiida.plugins aiida.transports aiida.cmdline aiida.common aiida.manage aiida.orm aiida.engine aiida.schedulers Package Contents ---------------- Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`get_strict_version ` - .. autodoc2-docstring:: aiida.get_strict_version :summary: * - :py:obj:`get_version ` - .. autodoc2-docstring:: aiida.get_version :summary: * - :py:obj:`_get_raw_file_header ` - .. autodoc2-docstring:: aiida._get_raw_file_header :summary: * - :py:obj:`get_file_header ` - .. autodoc2-docstring:: aiida.get_file_header :summary: * - :py:obj:`load_ipython_extension ` - .. autodoc2-docstring:: aiida.load_ipython_extension :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`__copyright__ ` - .. autodoc2-docstring:: aiida.__copyright__ :summary: * - :py:obj:`__license__ ` - .. autodoc2-docstring:: aiida.__license__ :summary: * - :py:obj:`__version__ ` - .. autodoc2-docstring:: aiida.__version__ :summary: * - :py:obj:`__authors__ ` - .. autodoc2-docstring:: aiida.__authors__ :summary: * - :py:obj:`__paper__ ` - .. autodoc2-docstring:: aiida.__paper__ :summary: * - :py:obj:`__paper_short__ ` - .. autodoc2-docstring:: aiida.__paper_short__ :summary: API ~~~ .. py:data:: __copyright__ :canonical: aiida.__copyright__ :value: 'Copyright (c), This file is part of the AiiDA platform. For further information please visit http://...' .. autodoc2-docstring:: aiida.__copyright__ .. py:data:: __license__ :canonical: aiida.__license__ :value: 'MIT license, see LICENSE.txt file.' .. autodoc2-docstring:: aiida.__license__ .. py:data:: __version__ :canonical: aiida.__version__ :value: '2.2.2' .. autodoc2-docstring:: aiida.__version__ .. py:data:: __authors__ :canonical: aiida.__authors__ :value: 'The AiiDA team.' .. autodoc2-docstring:: aiida.__authors__ .. py:data:: __paper__ :canonical: aiida.__paper__ :value: 'S. P. Huber et al., "AiiDA 1.0, a scalable computational infrastructure for automated reproducible w...' .. autodoc2-docstring:: aiida.__paper__ .. py:data:: __paper_short__ :canonical: aiida.__paper_short__ :value: 'S. P. Huber et al., Scientific Data 7, 300 (2020).' .. autodoc2-docstring:: aiida.__paper_short__ .. py:function:: get_strict_version() :canonical: aiida.get_strict_version .. autodoc2-docstring:: aiida.get_strict_version .. py:function:: get_version() -> str :canonical: aiida.get_version .. autodoc2-docstring:: aiida.get_version .. py:function:: _get_raw_file_header() -> str :canonical: aiida._get_raw_file_header .. autodoc2-docstring:: aiida._get_raw_file_header .. py:function:: get_file_header(comment_char: str = '# ') -> str :canonical: aiida.get_file_header .. autodoc2-docstring:: aiida.get_file_header .. py:function:: load_ipython_extension(ipython) :canonical: aiida.load_ipython_extension .. autodoc2-docstring:: aiida.load_ipython_extension sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.schedulers.rst000066400000000000000000000500131453104212700241230ustar00rootroot00000000000000:py:mod:`aiida.schedulers` ========================== .. py:module:: aiida.schedulers .. autodoc2-docstring:: aiida.schedulers :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`JobInfo ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo :summary: * - :py:obj:`JobResource ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource :summary: * - :py:obj:`JobState ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState :summary: * - :py:obj:`JobTemplate ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.JobTemplate :summary: * - :py:obj:`MachineInfo ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.MachineInfo :summary: * - :py:obj:`NodeNumberJobResource ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource :summary: * - :py:obj:`ParEnvJobResource ` - .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource :summary: * - :py:obj:`Scheduler ` - .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler :summary: * - :py:obj:`SchedulerError ` - .. autodoc2-docstring:: aiida.schedulers.scheduler.SchedulerError :summary: * - :py:obj:`SchedulerParsingError ` - .. autodoc2-docstring:: aiida.schedulers.scheduler.SchedulerParsingError :summary: API ~~~ .. py:class:: JobInfo(dictionary=None) :canonical: aiida.schedulers.datastructures.JobInfo Bases: :py:obj:`aiida.common.extendeddicts.DefaultFieldsAttributeDict` .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.__init__ .. py:attribute:: _default_fields :canonical: aiida.schedulers.datastructures.JobInfo._default_fields :value: ('job_id', 'title', 'exit_status', 'terminating_signal', 'annotation', 'job_state', 'job_substate', ... .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo._default_fields .. py:attribute:: _special_serializers :canonical: aiida.schedulers.datastructures.JobInfo._special_serializers :value: None .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo._special_serializers .. py:method:: _serialize_job_state(job_state) :canonical: aiida.schedulers.datastructures.JobInfo._serialize_job_state :staticmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo._serialize_job_state .. py:method:: _deserialize_job_state(job_state) :canonical: aiida.schedulers.datastructures.JobInfo._deserialize_job_state :staticmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo._deserialize_job_state .. py:method:: _serialize_date(value) :canonical: aiida.schedulers.datastructures.JobInfo._serialize_date :staticmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo._serialize_date .. py:method:: _deserialize_date(value) :canonical: aiida.schedulers.datastructures.JobInfo._deserialize_date :staticmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo._deserialize_date .. py:method:: serialize_field(value, field_type) :canonical: aiida.schedulers.datastructures.JobInfo.serialize_field :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.serialize_field .. py:method:: deserialize_field(value, field_type) :canonical: aiida.schedulers.datastructures.JobInfo.deserialize_field :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.deserialize_field .. py:method:: serialize() :canonical: aiida.schedulers.datastructures.JobInfo.serialize .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.serialize .. py:method:: get_dict() :canonical: aiida.schedulers.datastructures.JobInfo.get_dict .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.get_dict .. py:method:: load_from_dict(data) :canonical: aiida.schedulers.datastructures.JobInfo.load_from_dict :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.load_from_dict .. py:method:: load_from_serialized(data) :canonical: aiida.schedulers.datastructures.JobInfo.load_from_serialized :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobInfo.load_from_serialized .. py:class:: JobResource(dictionary=None) :canonical: aiida.schedulers.datastructures.JobResource Bases: :py:obj:`aiida.common.extendeddicts.DefaultFieldsAttributeDict` .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource.__init__ .. py:attribute:: _default_fields :canonical: aiida.schedulers.datastructures.JobResource._default_fields :value: None .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource._default_fields .. py:method:: validate_resources(**kwargs) :canonical: aiida.schedulers.datastructures.JobResource.validate_resources :abstractmethod: :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource.validate_resources .. py:method:: get_valid_keys() :canonical: aiida.schedulers.datastructures.JobResource.get_valid_keys :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource.get_valid_keys .. py:method:: accepts_default_mpiprocs_per_machine() :canonical: aiida.schedulers.datastructures.JobResource.accepts_default_mpiprocs_per_machine :abstractmethod: :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource.accepts_default_mpiprocs_per_machine .. py:method:: accepts_default_memory_per_machine() :canonical: aiida.schedulers.datastructures.JobResource.accepts_default_memory_per_machine :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource.accepts_default_memory_per_machine .. py:method:: get_tot_num_mpiprocs() :canonical: aiida.schedulers.datastructures.JobResource.get_tot_num_mpiprocs :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.JobResource.get_tot_num_mpiprocs .. py:class:: JobState(*args, **kwds) :canonical: aiida.schedulers.datastructures.JobState Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.__init__ .. py:attribute:: UNDETERMINED :canonical: aiida.schedulers.datastructures.JobState.UNDETERMINED :value: 'undetermined' .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.UNDETERMINED .. py:attribute:: QUEUED :canonical: aiida.schedulers.datastructures.JobState.QUEUED :value: 'queued' .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.QUEUED .. py:attribute:: QUEUED_HELD :canonical: aiida.schedulers.datastructures.JobState.QUEUED_HELD :value: 'queued held' .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.QUEUED_HELD .. py:attribute:: RUNNING :canonical: aiida.schedulers.datastructures.JobState.RUNNING :value: 'running' .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.RUNNING .. py:attribute:: SUSPENDED :canonical: aiida.schedulers.datastructures.JobState.SUSPENDED :value: 'suspended' .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.SUSPENDED .. py:attribute:: DONE :canonical: aiida.schedulers.datastructures.JobState.DONE :value: 'done' .. autodoc2-docstring:: aiida.schedulers.datastructures.JobState.DONE .. py:class:: JobTemplate(dictionary=None) :canonical: aiida.schedulers.datastructures.JobTemplate Bases: :py:obj:`aiida.common.extendeddicts.DefaultFieldsAttributeDict` .. autodoc2-docstring:: aiida.schedulers.datastructures.JobTemplate .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.JobTemplate.__init__ .. py:attribute:: _default_fields :canonical: aiida.schedulers.datastructures.JobTemplate._default_fields :value: ('shebang', 'submit_as_hold', 'rerunnable', 'job_environment', 'environment_variables_double_quotes'... .. autodoc2-docstring:: aiida.schedulers.datastructures.JobTemplate._default_fields .. py:class:: MachineInfo(dictionary=None) :canonical: aiida.schedulers.datastructures.MachineInfo Bases: :py:obj:`aiida.common.extendeddicts.DefaultFieldsAttributeDict` .. autodoc2-docstring:: aiida.schedulers.datastructures.MachineInfo .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.MachineInfo.__init__ .. py:attribute:: _default_fields :canonical: aiida.schedulers.datastructures.MachineInfo._default_fields :value: ('name', 'num_mpiprocs', 'num_cpus') .. autodoc2-docstring:: aiida.schedulers.datastructures.MachineInfo._default_fields .. py:class:: NodeNumberJobResource(**kwargs) :canonical: aiida.schedulers.datastructures.NodeNumberJobResource Bases: :py:obj:`aiida.schedulers.datastructures.JobResource` .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource.__init__ .. py:attribute:: _default_fields :canonical: aiida.schedulers.datastructures.NodeNumberJobResource._default_fields :value: ('num_machines', 'num_mpiprocs_per_machine', 'num_cores_per_machine', 'num_cores_per_mpiproc') .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource._default_fields .. py:method:: validate_resources(**kwargs) :canonical: aiida.schedulers.datastructures.NodeNumberJobResource.validate_resources :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource.validate_resources .. py:method:: get_valid_keys() :canonical: aiida.schedulers.datastructures.NodeNumberJobResource.get_valid_keys :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource.get_valid_keys .. py:method:: accepts_default_mpiprocs_per_machine() :canonical: aiida.schedulers.datastructures.NodeNumberJobResource.accepts_default_mpiprocs_per_machine :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource.accepts_default_mpiprocs_per_machine .. py:method:: get_tot_num_mpiprocs() :canonical: aiida.schedulers.datastructures.NodeNumberJobResource.get_tot_num_mpiprocs .. autodoc2-docstring:: aiida.schedulers.datastructures.NodeNumberJobResource.get_tot_num_mpiprocs .. py:class:: ParEnvJobResource(**kwargs) :canonical: aiida.schedulers.datastructures.ParEnvJobResource Bases: :py:obj:`aiida.schedulers.datastructures.JobResource` .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource.__init__ .. py:attribute:: _default_fields :canonical: aiida.schedulers.datastructures.ParEnvJobResource._default_fields :value: ('parallel_env', 'tot_num_mpiprocs') .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource._default_fields .. py:method:: validate_resources(**kwargs) :canonical: aiida.schedulers.datastructures.ParEnvJobResource.validate_resources :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource.validate_resources .. py:method:: accepts_default_mpiprocs_per_machine() :canonical: aiida.schedulers.datastructures.ParEnvJobResource.accepts_default_mpiprocs_per_machine :classmethod: .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource.accepts_default_mpiprocs_per_machine .. py:method:: get_tot_num_mpiprocs() :canonical: aiida.schedulers.datastructures.ParEnvJobResource.get_tot_num_mpiprocs .. autodoc2-docstring:: aiida.schedulers.datastructures.ParEnvJobResource.get_tot_num_mpiprocs .. py:class:: Scheduler() :canonical: aiida.schedulers.scheduler.Scheduler .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler .. rubric:: Initialization .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.__init__ .. py:attribute:: _logger :canonical: aiida.schedulers.scheduler.Scheduler._logger :value: None .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._logger .. py:attribute:: _features :canonical: aiida.schedulers.scheduler.Scheduler._features :type: typing.Dict[str, bool] :value: None .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._features .. py:attribute:: _job_resource_class :canonical: aiida.schedulers.scheduler.Scheduler._job_resource_class :type: typing.Type[aiida.schedulers.datastructures.JobResource] :value: None .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._job_resource_class .. py:method:: __str__() :canonical: aiida.schedulers.scheduler.Scheduler.__str__ .. py:method:: preprocess_resources(resources, default_mpiprocs_per_machine=None) :canonical: aiida.schedulers.scheduler.Scheduler.preprocess_resources :classmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.preprocess_resources .. py:method:: validate_resources(**resources) :canonical: aiida.schedulers.scheduler.Scheduler.validate_resources :classmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.validate_resources .. py:method:: get_short_doc() :canonical: aiida.schedulers.scheduler.Scheduler.get_short_doc :classmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.get_short_doc .. py:method:: get_feature(feature_name: str) -> bool :canonical: aiida.schedulers.scheduler.Scheduler.get_feature .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.get_feature .. py:property:: logger :canonical: aiida.schedulers.scheduler.Scheduler.logger .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.logger .. py:method:: job_resource_class() -> typing.Type[aiida.schedulers.datastructures.JobResource] :canonical: aiida.schedulers.scheduler.Scheduler.job_resource_class .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.job_resource_class .. py:method:: create_job_resource(**kwargs) :canonical: aiida.schedulers.scheduler.Scheduler.create_job_resource :classmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.create_job_resource .. py:method:: get_submit_script(job_tmpl) :canonical: aiida.schedulers.scheduler.Scheduler.get_submit_script .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.get_submit_script .. py:method:: _get_submit_script_environment_variables(template) :canonical: aiida.schedulers.scheduler.Scheduler._get_submit_script_environment_variables .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_submit_script_environment_variables .. py:method:: _get_submit_script_header(job_tmpl) :canonical: aiida.schedulers.scheduler.Scheduler._get_submit_script_header :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_submit_script_header .. py:method:: _get_submit_script_footer(job_tmpl) :canonical: aiida.schedulers.scheduler.Scheduler._get_submit_script_footer .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_submit_script_footer .. py:method:: _get_run_line(codes_info, codes_run_mode) :canonical: aiida.schedulers.scheduler.Scheduler._get_run_line .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_run_line .. py:method:: _get_joblist_command(jobs=None, user=None) :canonical: aiida.schedulers.scheduler.Scheduler._get_joblist_command :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_joblist_command .. py:method:: _get_detailed_job_info_command(job_id) :canonical: aiida.schedulers.scheduler.Scheduler._get_detailed_job_info_command .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_detailed_job_info_command .. py:method:: get_detailed_job_info(job_id) :canonical: aiida.schedulers.scheduler.Scheduler.get_detailed_job_info .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.get_detailed_job_info .. py:method:: _parse_joblist_output(retval, stdout, stderr) :canonical: aiida.schedulers.scheduler.Scheduler._parse_joblist_output :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._parse_joblist_output .. py:method:: get_jobs(jobs=None, user=None, as_dict=False) :canonical: aiida.schedulers.scheduler.Scheduler.get_jobs .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.get_jobs .. py:property:: transport :canonical: aiida.schedulers.scheduler.Scheduler.transport .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.transport .. py:method:: set_transport(transport) :canonical: aiida.schedulers.scheduler.Scheduler.set_transport .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.set_transport .. py:method:: _get_submit_command(submit_script) :canonical: aiida.schedulers.scheduler.Scheduler._get_submit_command :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_submit_command .. py:method:: _parse_submit_output(retval, stdout, stderr) :canonical: aiida.schedulers.scheduler.Scheduler._parse_submit_output :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._parse_submit_output .. py:method:: submit_from_script(working_directory, submit_script) :canonical: aiida.schedulers.scheduler.Scheduler.submit_from_script .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.submit_from_script .. py:method:: kill(jobid) :canonical: aiida.schedulers.scheduler.Scheduler.kill .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.kill .. py:method:: _get_kill_command(jobid) :canonical: aiida.schedulers.scheduler.Scheduler._get_kill_command :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._get_kill_command .. py:method:: _parse_kill_output(retval, stdout, stderr) :canonical: aiida.schedulers.scheduler.Scheduler._parse_kill_output :abstractmethod: .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler._parse_kill_output .. py:method:: parse_output(detailed_job_info=None, stdout=None, stderr=None) :canonical: aiida.schedulers.scheduler.Scheduler.parse_output .. autodoc2-docstring:: aiida.schedulers.scheduler.Scheduler.parse_output .. py:class:: SchedulerError :canonical: aiida.schedulers.scheduler.SchedulerError Bases: :py:obj:`aiida.common.exceptions.AiidaException` .. autodoc2-docstring:: aiida.schedulers.scheduler.SchedulerError .. py:class:: SchedulerParsingError :canonical: aiida.schedulers.scheduler.SchedulerParsingError Bases: :py:obj:`aiida.schedulers.scheduler.SchedulerError` .. autodoc2-docstring:: aiida.schedulers.scheduler.SchedulerParsingError sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.tools.rst000066400000000000000000000502331453104212700231260ustar00rootroot00000000000000:py:mod:`aiida.tools` ===================== .. py:module:: aiida.tools .. autodoc2-docstring:: aiida.tools :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`CalculationTools ` - .. autodoc2-docstring:: aiida.tools.calculations.base.CalculationTools :summary: * - :py:obj:`Graph ` - .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph :summary: * - :py:obj:`GroupPath ` - .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath :summary: * - :py:obj:`Orbital ` - .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital :summary: * - :py:obj:`RealhydrogenOrbital ` - .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`default_link_styles ` - .. autodoc2-docstring:: aiida.tools.visualization.graph.default_link_styles :summary: * - :py:obj:`default_node_styles ` - .. autodoc2-docstring:: aiida.tools.visualization.graph.default_node_styles :summary: * - :py:obj:`default_node_sublabels ` - .. autodoc2-docstring:: aiida.tools.visualization.graph.default_node_sublabels :summary: * - :py:obj:`delete_group_nodes ` - .. autodoc2-docstring:: aiida.tools.graph.deletions.delete_group_nodes :summary: * - :py:obj:`delete_nodes ` - .. autodoc2-docstring:: aiida.tools.graph.deletions.delete_nodes :summary: * - :py:obj:`get_explicit_kpoints_path ` - .. autodoc2-docstring:: aiida.tools.data.array.kpoints.main.get_explicit_kpoints_path :summary: * - :py:obj:`get_kpoints_path ` - .. autodoc2-docstring:: aiida.tools.data.array.kpoints.main.get_kpoints_path :summary: * - :py:obj:`pstate_node_styles ` - .. autodoc2-docstring:: aiida.tools.visualization.graph.pstate_node_styles :summary: * - :py:obj:`spglib_tuple_to_structure ` - .. autodoc2-docstring:: aiida.tools.data.structure.spglib_tuple_to_structure :summary: * - :py:obj:`structure_to_spglib_tuple ` - .. autodoc2-docstring:: aiida.tools.data.structure.structure_to_spglib_tuple :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`DELETE_LOGGER ` - .. autodoc2-docstring:: aiida.tools.graph.deletions.DELETE_LOGGER :summary: API ~~~ .. py:class:: CalculationTools(node) :canonical: aiida.tools.calculations.base.CalculationTools .. autodoc2-docstring:: aiida.tools.calculations.base.CalculationTools .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.calculations.base.CalculationTools.__init__ .. py:data:: DELETE_LOGGER :canonical: aiida.tools.graph.deletions.DELETE_LOGGER :value: None .. autodoc2-docstring:: aiida.tools.graph.deletions.DELETE_LOGGER .. py:class:: Graph(engine=None, graph_attr=None, global_node_style=None, global_edge_style=None, include_sublabels=True, link_style_fn=None, node_style_fn=None, node_sublabel_fn=None, node_id_type='pk', backend: typing.Optional[aiida.orm.implementation.StorageBackend] = None) :canonical: aiida.tools.visualization.graph.Graph .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.__init__ .. py:property:: backend :canonical: aiida.tools.visualization.graph.Graph.backend :type: aiida.orm.implementation.StorageBackend .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.backend .. py:property:: graphviz :canonical: aiida.tools.visualization.graph.Graph.graphviz .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.graphviz .. py:property:: nodes :canonical: aiida.tools.visualization.graph.Graph.nodes .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.nodes .. py:property:: edges :canonical: aiida.tools.visualization.graph.Graph.edges .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.edges .. py:method:: _load_node(node) :canonical: aiida.tools.visualization.graph.Graph._load_node .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph._load_node .. py:method:: _default_link_types(link_types) :canonical: aiida.tools.visualization.graph.Graph._default_link_types :staticmethod: .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph._default_link_types .. py:method:: add_node(node, style_override=None, overwrite=False) :canonical: aiida.tools.visualization.graph.Graph.add_node .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.add_node .. py:method:: add_edge(in_node, out_node, link_pair=None, style=None, overwrite=False) :canonical: aiida.tools.visualization.graph.Graph.add_edge .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.add_edge .. py:method:: _convert_link_types(link_types) :canonical: aiida.tools.visualization.graph.Graph._convert_link_types :staticmethod: .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph._convert_link_types .. py:method:: add_incoming(node, link_types=(), annotate_links=None, return_pks=True) :canonical: aiida.tools.visualization.graph.Graph.add_incoming .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.add_incoming .. py:method:: add_outgoing(node, link_types=(), annotate_links=None, return_pks=True) :canonical: aiida.tools.visualization.graph.Graph.add_outgoing .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.add_outgoing .. py:method:: recurse_descendants(origin, depth=None, link_types=(), annotate_links=False, origin_style=MappingProxyType(_OVERRIDE_STYLES_DICT['origin_node']), include_process_inputs=False, highlight_classes=None) :canonical: aiida.tools.visualization.graph.Graph.recurse_descendants .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.recurse_descendants .. py:method:: recurse_ancestors(origin, depth=None, link_types=(), annotate_links=False, origin_style=MappingProxyType(_OVERRIDE_STYLES_DICT['origin_node']), include_process_outputs=False, highlight_classes=None) :canonical: aiida.tools.visualization.graph.Graph.recurse_ancestors .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.recurse_ancestors .. py:method:: add_origin_to_targets(origin, target_cls, target_filters=None, include_target_inputs=False, include_target_outputs=False, origin_style=(), annotate_links=False) :canonical: aiida.tools.visualization.graph.Graph.add_origin_to_targets .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.add_origin_to_targets .. py:method:: add_origins_to_targets(origin_cls, target_cls, origin_filters=None, target_filters=None, include_target_inputs=False, include_target_outputs=False, origin_style=(), annotate_links=False) :canonical: aiida.tools.visualization.graph.Graph.add_origins_to_targets .. autodoc2-docstring:: aiida.tools.visualization.graph.Graph.add_origins_to_targets .. py:exception:: GroupNotFoundError(grouppath) :canonical: aiida.tools.groups.paths.GroupNotFoundError Bases: :py:obj:`Exception` .. autodoc2-docstring:: aiida.tools.groups.paths.GroupNotFoundError .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.groups.paths.GroupNotFoundError.__init__ .. py:exception:: GroupNotUniqueError(grouppath) :canonical: aiida.tools.groups.paths.GroupNotUniqueError Bases: :py:obj:`Exception` .. autodoc2-docstring:: aiida.tools.groups.paths.GroupNotUniqueError .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.groups.paths.GroupNotUniqueError.__init__ .. py:class:: GroupPath(path: str = '', cls: aiida.orm.groups.GroupMeta = orm.Group, warn_invalid_child: bool = True) :canonical: aiida.tools.groups.paths.GroupPath .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__init__ .. py:method:: _validate_path(path) :canonical: aiida.tools.groups.paths.GroupPath._validate_path .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath._validate_path .. py:method:: __repr__() -> str :canonical: aiida.tools.groups.paths.GroupPath.__repr__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__repr__ .. py:method:: __eq__(other: typing.Any) -> bool :canonical: aiida.tools.groups.paths.GroupPath.__eq__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__eq__ .. py:method:: __lt__(other: typing.Any) -> bool :canonical: aiida.tools.groups.paths.GroupPath.__lt__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__lt__ .. py:property:: path :canonical: aiida.tools.groups.paths.GroupPath.path :type: str .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.path .. py:property:: path_list :canonical: aiida.tools.groups.paths.GroupPath.path_list :type: typing.List[str] .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.path_list .. py:property:: key :canonical: aiida.tools.groups.paths.GroupPath.key :type: typing.Optional[str] .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.key .. py:property:: delimiter :canonical: aiida.tools.groups.paths.GroupPath.delimiter :type: str .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.delimiter .. py:property:: cls :canonical: aiida.tools.groups.paths.GroupPath.cls :type: aiida.orm.groups.GroupMeta .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.cls .. py:property:: parent :canonical: aiida.tools.groups.paths.GroupPath.parent :type: typing.Optional[aiida.tools.groups.paths.GroupPath] .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.parent .. py:method:: __truediv__(path: str) -> aiida.tools.groups.paths.GroupPath :canonical: aiida.tools.groups.paths.GroupPath.__truediv__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__truediv__ .. py:method:: __getitem__(path: str) -> aiida.tools.groups.paths.GroupPath :canonical: aiida.tools.groups.paths.GroupPath.__getitem__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__getitem__ .. py:method:: get_group() -> typing.Optional[aiida.tools.groups.paths.GroupPath] :canonical: aiida.tools.groups.paths.GroupPath.get_group .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.get_group .. py:property:: group_ids :canonical: aiida.tools.groups.paths.GroupPath.group_ids :type: typing.List[int] .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.group_ids .. py:property:: is_virtual :canonical: aiida.tools.groups.paths.GroupPath.is_virtual :type: bool .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.is_virtual .. py:method:: get_or_create_group() -> typing.Tuple[aiida.orm.Group, bool] :canonical: aiida.tools.groups.paths.GroupPath.get_or_create_group .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.get_or_create_group .. py:method:: delete_group() :canonical: aiida.tools.groups.paths.GroupPath.delete_group .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.delete_group .. py:property:: children :canonical: aiida.tools.groups.paths.GroupPath.children :type: typing.Iterator[aiida.tools.groups.paths.GroupPath] .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.children .. py:method:: __iter__() -> typing.Iterator[aiida.tools.groups.paths.GroupPath] :canonical: aiida.tools.groups.paths.GroupPath.__iter__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__iter__ .. py:method:: __len__() -> int :canonical: aiida.tools.groups.paths.GroupPath.__len__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__len__ .. py:method:: __contains__(key: str) -> bool :canonical: aiida.tools.groups.paths.GroupPath.__contains__ .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.__contains__ .. py:method:: walk(return_virtual: bool = True) -> typing.Iterator[aiida.tools.groups.paths.GroupPath] :canonical: aiida.tools.groups.paths.GroupPath.walk .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.walk .. py:method:: walk_nodes(filters: typing.Optional[dict] = None, node_class: typing.Optional[aiida.orm.Node] = None, query_batch: typing.Optional[int] = None) -> typing.Iterator[aiida.tools.groups.paths.WalkNodeResult] :canonical: aiida.tools.groups.paths.GroupPath.walk_nodes .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.walk_nodes .. py:property:: browse :canonical: aiida.tools.groups.paths.GroupPath.browse .. autodoc2-docstring:: aiida.tools.groups.paths.GroupPath.browse .. py:exception:: InvalidPath() :canonical: aiida.tools.groups.paths.InvalidPath Bases: :py:obj:`Exception` .. autodoc2-docstring:: aiida.tools.groups.paths.InvalidPath .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.groups.paths.InvalidPath.__init__ .. py:exception:: NoGroupsInPathError(grouppath) :canonical: aiida.tools.groups.paths.NoGroupsInPathError Bases: :py:obj:`Exception` .. autodoc2-docstring:: aiida.tools.groups.paths.NoGroupsInPathError .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.groups.paths.NoGroupsInPathError.__init__ .. py:class:: Orbital(**kwargs) :canonical: aiida.tools.data.orbital.orbital.Orbital .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital .. rubric:: Initialization .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital.__init__ .. py:attribute:: _base_fields_required :canonical: aiida.tools.data.orbital.orbital.Orbital._base_fields_required :value: (('position',),) .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital._base_fields_required .. py:attribute:: _base_fields_optional :canonical: aiida.tools.data.orbital.orbital.Orbital._base_fields_optional :value: None .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital._base_fields_optional .. py:method:: __repr__() :canonical: aiida.tools.data.orbital.orbital.Orbital.__repr__ .. py:method:: __str__() -> str :canonical: aiida.tools.data.orbital.orbital.Orbital.__str__ .. py:method:: _validate_keys(input_dict) :canonical: aiida.tools.data.orbital.orbital.Orbital._validate_keys .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital._validate_keys .. py:method:: set_orbital_dict(init_dict) :canonical: aiida.tools.data.orbital.orbital.Orbital.set_orbital_dict .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital.set_orbital_dict .. py:method:: get_orbital_dict() :canonical: aiida.tools.data.orbital.orbital.Orbital.get_orbital_dict .. autodoc2-docstring:: aiida.tools.data.orbital.orbital.Orbital.get_orbital_dict .. py:class:: RealhydrogenOrbital :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital Bases: :py:obj:`aiida.tools.data.orbital.orbital.Orbital` .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital .. py:attribute:: _base_fields_required :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital._base_fields_required :value: None .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital._base_fields_required .. py:attribute:: _base_fields_optional :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital._base_fields_optional :value: None .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital._base_fields_optional .. py:method:: __str__() :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital.__str__ .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital.__str__ .. py:method:: _validate_keys(input_dict) :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital._validate_keys .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital._validate_keys .. py:method:: get_name_from_quantum_numbers(angular_momentum, magnetic_number=None) :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital.get_name_from_quantum_numbers :classmethod: .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital.get_name_from_quantum_numbers .. py:method:: get_quantum_numbers_from_name(name) :canonical: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital.get_quantum_numbers_from_name :classmethod: .. autodoc2-docstring:: aiida.tools.data.orbital.realhydrogen.RealhydrogenOrbital.get_quantum_numbers_from_name .. py:function:: default_link_styles(link_pair: aiida.orm.utils.links.LinkPair, add_label: bool, add_type: bool) -> dict :canonical: aiida.tools.visualization.graph.default_link_styles .. autodoc2-docstring:: aiida.tools.visualization.graph.default_link_styles .. py:function:: default_node_styles(node) :canonical: aiida.tools.visualization.graph.default_node_styles .. autodoc2-docstring:: aiida.tools.visualization.graph.default_node_styles .. py:function:: default_node_sublabels(node) :canonical: aiida.tools.visualization.graph.default_node_sublabels .. autodoc2-docstring:: aiida.tools.visualization.graph.default_node_sublabels .. py:function:: delete_group_nodes(pks: typing.Iterable[int], dry_run: typing.Union[bool, typing.Callable[[typing.Set[int]], bool]] = True, backend=None, **traversal_rules: bool) -> typing.Tuple[typing.Set[int], bool] :canonical: aiida.tools.graph.deletions.delete_group_nodes .. autodoc2-docstring:: aiida.tools.graph.deletions.delete_group_nodes .. py:function:: delete_nodes(pks: typing.Iterable[int], dry_run: typing.Union[bool, typing.Callable[[typing.Set[int]], bool]] = True, backend=None, **traversal_rules: bool) -> typing.Tuple[typing.Set[int], bool] :canonical: aiida.tools.graph.deletions.delete_nodes .. autodoc2-docstring:: aiida.tools.graph.deletions.delete_nodes .. py:function:: get_explicit_kpoints_path(structure, method='seekpath', **kwargs) :canonical: aiida.tools.data.array.kpoints.main.get_explicit_kpoints_path .. autodoc2-docstring:: aiida.tools.data.array.kpoints.main.get_explicit_kpoints_path .. py:function:: get_kpoints_path(structure, method='seekpath', **kwargs) :canonical: aiida.tools.data.array.kpoints.main.get_kpoints_path .. autodoc2-docstring:: aiida.tools.data.array.kpoints.main.get_kpoints_path .. py:function:: pstate_node_styles(node) :canonical: aiida.tools.visualization.graph.pstate_node_styles .. autodoc2-docstring:: aiida.tools.visualization.graph.pstate_node_styles .. py:function:: spglib_tuple_to_structure(structure_tuple, kind_info=None, kinds=None) :canonical: aiida.tools.data.structure.spglib_tuple_to_structure .. autodoc2-docstring:: aiida.tools.data.structure.spglib_tuple_to_structure .. py:function:: structure_to_spglib_tuple(structure) :canonical: aiida.tools.data.structure.structure_to_spglib_tuple .. autodoc2-docstring:: aiida.tools.data.structure.structure_to_spglib_tuple sphinx-autodoc2-0.5.0/docs/apidocs/aiida/aiida.transports.rst000066400000000000000000000675361453104212700242230ustar00rootroot00000000000000:py:mod:`aiida.transports` ========================== .. py:module:: aiida.transports .. autodoc2-docstring:: aiida.transports :allowtitles: Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`SshTransport ` - .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport :summary: * - :py:obj:`Transport ` - .. autodoc2-docstring:: aiida.transports.transport.Transport :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`convert_to_bool ` - .. autodoc2-docstring:: aiida.transports.plugins.ssh.convert_to_bool :summary: * - :py:obj:`parse_sshconfig ` - .. autodoc2-docstring:: aiida.transports.plugins.ssh.parse_sshconfig :summary: API ~~~ .. py:class:: SshTransport(*args, **kwargs) :canonical: aiida.transports.plugins.ssh.SshTransport Bases: :py:obj:`aiida.transports.transport.Transport` .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport .. rubric:: Initialization .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.__init__ .. py:attribute:: _valid_connect_options :canonical: aiida.transports.plugins.ssh.SshTransport._valid_connect_options :value: [('username',), ('port',), ('look_for_keys',), ('key_filename',), ('timeout',), ('allow_agent',), ('... .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._valid_connect_options .. py:attribute:: _valid_connect_params :canonical: aiida.transports.plugins.ssh.SshTransport._valid_connect_params :value: None .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._valid_connect_params .. py:attribute:: _valid_auth_options :canonical: aiida.transports.plugins.ssh.SshTransport._valid_auth_options :value: None .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._valid_auth_options .. py:attribute:: _MAX_EXEC_COMMAND_LOG_SIZE :canonical: aiida.transports.plugins.ssh.SshTransport._MAX_EXEC_COMMAND_LOG_SIZE :value: None .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._MAX_EXEC_COMMAND_LOG_SIZE .. py:method:: _get_username_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_username_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_username_suggestion_string .. py:method:: _get_port_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_port_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_port_suggestion_string .. py:method:: _get_key_filename_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_key_filename_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_key_filename_suggestion_string .. py:method:: _get_timeout_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_timeout_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_timeout_suggestion_string .. py:method:: _get_allow_agent_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_allow_agent_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_allow_agent_suggestion_string .. py:method:: _get_look_for_keys_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_look_for_keys_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_look_for_keys_suggestion_string .. py:method:: _get_proxy_command_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_proxy_command_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_proxy_command_suggestion_string .. py:method:: _get_proxy_jump_suggestion_string(_) :canonical: aiida.transports.plugins.ssh.SshTransport._get_proxy_jump_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_proxy_jump_suggestion_string .. py:method:: _get_compress_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_compress_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_compress_suggestion_string .. py:method:: _get_load_system_host_keys_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_load_system_host_keys_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_load_system_host_keys_suggestion_string .. py:method:: _get_key_policy_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_key_policy_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_key_policy_suggestion_string .. py:method:: _get_gss_auth_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_gss_auth_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_gss_auth_suggestion_string .. py:method:: _get_gss_kex_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_gss_kex_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_gss_kex_suggestion_string .. py:method:: _get_gss_deleg_creds_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_gss_deleg_creds_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_gss_deleg_creds_suggestion_string .. py:method:: _get_gss_host_suggestion_string(computer) :canonical: aiida.transports.plugins.ssh.SshTransport._get_gss_host_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._get_gss_host_suggestion_string .. py:method:: open() :canonical: aiida.transports.plugins.ssh.SshTransport.open .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.open .. py:method:: _close_proxies() :canonical: aiida.transports.plugins.ssh.SshTransport._close_proxies .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._close_proxies .. py:method:: close() :canonical: aiida.transports.plugins.ssh.SshTransport.close .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.close .. py:property:: sshclient :canonical: aiida.transports.plugins.ssh.SshTransport.sshclient .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.sshclient .. py:property:: sftp :canonical: aiida.transports.plugins.ssh.SshTransport.sftp .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.sftp .. py:method:: __str__() :canonical: aiida.transports.plugins.ssh.SshTransport.__str__ .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.__str__ .. py:method:: chdir(path) :canonical: aiida.transports.plugins.ssh.SshTransport.chdir .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.chdir .. py:method:: normalize(path='.') :canonical: aiida.transports.plugins.ssh.SshTransport.normalize .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.normalize .. py:method:: stat(path) :canonical: aiida.transports.plugins.ssh.SshTransport.stat .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.stat .. py:method:: lstat(path) :canonical: aiida.transports.plugins.ssh.SshTransport.lstat .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.lstat .. py:method:: getcwd() :canonical: aiida.transports.plugins.ssh.SshTransport.getcwd .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.getcwd .. py:method:: makedirs(path, ignore_existing=False) :canonical: aiida.transports.plugins.ssh.SshTransport.makedirs .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.makedirs .. py:method:: mkdir(path, ignore_existing=False) :canonical: aiida.transports.plugins.ssh.SshTransport.mkdir .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.mkdir .. py:method:: rmtree(path) :canonical: aiida.transports.plugins.ssh.SshTransport.rmtree .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.rmtree .. py:method:: rmdir(path) :canonical: aiida.transports.plugins.ssh.SshTransport.rmdir .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.rmdir .. py:method:: chown(path, uid, gid) :canonical: aiida.transports.plugins.ssh.SshTransport.chown :abstractmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.chown .. py:method:: isdir(path) :canonical: aiida.transports.plugins.ssh.SshTransport.isdir .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.isdir .. py:method:: chmod(path, mode) :canonical: aiida.transports.plugins.ssh.SshTransport.chmod .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.chmod .. py:method:: _os_path_split_asunder(path) :canonical: aiida.transports.plugins.ssh.SshTransport._os_path_split_asunder :staticmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._os_path_split_asunder .. py:method:: put(localpath, remotepath, callback=None, dereference=True, overwrite=True, ignore_nonexisting=False) :canonical: aiida.transports.plugins.ssh.SshTransport.put .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.put .. py:method:: putfile(localpath, remotepath, callback=None, dereference=True, overwrite=True) :canonical: aiida.transports.plugins.ssh.SshTransport.putfile .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.putfile .. py:method:: puttree(localpath, remotepath, callback=None, dereference=True, overwrite=True) :canonical: aiida.transports.plugins.ssh.SshTransport.puttree .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.puttree .. py:method:: get(remotepath, localpath, callback=None, dereference=True, overwrite=True, ignore_nonexisting=False) :canonical: aiida.transports.plugins.ssh.SshTransport.get .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.get .. py:method:: getfile(remotepath, localpath, callback=None, dereference=True, overwrite=True) :canonical: aiida.transports.plugins.ssh.SshTransport.getfile .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.getfile .. py:method:: gettree(remotepath, localpath, callback=None, dereference=True, overwrite=True) :canonical: aiida.transports.plugins.ssh.SshTransport.gettree .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.gettree .. py:method:: get_attribute(path) :canonical: aiida.transports.plugins.ssh.SshTransport.get_attribute .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.get_attribute .. py:method:: copyfile(remotesource, remotedestination, dereference=False) :canonical: aiida.transports.plugins.ssh.SshTransport.copyfile .. py:method:: copytree(remotesource, remotedestination, dereference=False) :canonical: aiida.transports.plugins.ssh.SshTransport.copytree .. py:method:: copy(remotesource, remotedestination, dereference=False, recursive=True) :canonical: aiida.transports.plugins.ssh.SshTransport.copy .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.copy .. py:method:: _exec_cp(cp_exe, cp_flags, src, dst) :canonical: aiida.transports.plugins.ssh.SshTransport._exec_cp .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._exec_cp .. py:method:: _local_listdir(path, pattern=None) :canonical: aiida.transports.plugins.ssh.SshTransport._local_listdir :staticmethod: .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._local_listdir .. py:method:: listdir(path='.', pattern=None) :canonical: aiida.transports.plugins.ssh.SshTransport.listdir .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.listdir .. py:method:: remove(path) :canonical: aiida.transports.plugins.ssh.SshTransport.remove .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.remove .. py:method:: rename(oldpath, newpath) :canonical: aiida.transports.plugins.ssh.SshTransport.rename .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.rename .. py:method:: isfile(path) :canonical: aiida.transports.plugins.ssh.SshTransport.isfile .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.isfile .. py:method:: _exec_command_internal(command, combine_stderr=False, bufsize=-1) :canonical: aiida.transports.plugins.ssh.SshTransport._exec_command_internal .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._exec_command_internal .. py:method:: exec_command_wait_bytes(command, stdin=None, combine_stderr=False, bufsize=-1) :canonical: aiida.transports.plugins.ssh.SshTransport.exec_command_wait_bytes .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.exec_command_wait_bytes .. py:method:: gotocomputer_command(remotedir) :canonical: aiida.transports.plugins.ssh.SshTransport.gotocomputer_command .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.gotocomputer_command .. py:method:: _symlink(source, dest) :canonical: aiida.transports.plugins.ssh.SshTransport._symlink .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport._symlink .. py:method:: symlink(remotesource, remotedestination) :canonical: aiida.transports.plugins.ssh.SshTransport.symlink .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.symlink .. py:method:: path_exists(path) :canonical: aiida.transports.plugins.ssh.SshTransport.path_exists .. autodoc2-docstring:: aiida.transports.plugins.ssh.SshTransport.path_exists .. py:class:: Transport(*args, **kwargs) :canonical: aiida.transports.transport.Transport Bases: :py:obj:`abc.ABC` .. autodoc2-docstring:: aiida.transports.transport.Transport .. rubric:: Initialization .. autodoc2-docstring:: aiida.transports.transport.Transport.__init__ .. py:attribute:: DEFAULT_MINIMUM_JOB_POLL_INTERVAL :canonical: aiida.transports.transport.Transport.DEFAULT_MINIMUM_JOB_POLL_INTERVAL :value: 10 .. autodoc2-docstring:: aiida.transports.transport.Transport.DEFAULT_MINIMUM_JOB_POLL_INTERVAL .. py:attribute:: _DEFAULT_SAFE_OPEN_INTERVAL :canonical: aiida.transports.transport.Transport._DEFAULT_SAFE_OPEN_INTERVAL :value: 30.0 .. autodoc2-docstring:: aiida.transports.transport.Transport._DEFAULT_SAFE_OPEN_INTERVAL .. py:attribute:: _valid_auth_params :canonical: aiida.transports.transport.Transport._valid_auth_params :value: None .. autodoc2-docstring:: aiida.transports.transport.Transport._valid_auth_params .. py:attribute:: _MAGIC_CHECK :canonical: aiida.transports.transport.Transport._MAGIC_CHECK :value: None .. autodoc2-docstring:: aiida.transports.transport.Transport._MAGIC_CHECK .. py:attribute:: _valid_auth_options :canonical: aiida.transports.transport.Transport._valid_auth_options :type: list :value: [] .. autodoc2-docstring:: aiida.transports.transport.Transport._valid_auth_options .. py:attribute:: _common_auth_options :canonical: aiida.transports.transport.Transport._common_auth_options :value: [('use_login_shell',), ('safe_interval',)] .. autodoc2-docstring:: aiida.transports.transport.Transport._common_auth_options .. py:method:: __enter__() :canonical: aiida.transports.transport.Transport.__enter__ .. autodoc2-docstring:: aiida.transports.transport.Transport.__enter__ .. py:method:: __exit__(type_, value, traceback) :canonical: aiida.transports.transport.Transport.__exit__ .. autodoc2-docstring:: aiida.transports.transport.Transport.__exit__ .. py:property:: is_open :canonical: aiida.transports.transport.Transport.is_open .. autodoc2-docstring:: aiida.transports.transport.Transport.is_open .. py:method:: open() :canonical: aiida.transports.transport.Transport.open :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.open .. py:method:: close() :canonical: aiida.transports.transport.Transport.close :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.close .. py:method:: __repr__() :canonical: aiida.transports.transport.Transport.__repr__ .. py:method:: __str__() :canonical: aiida.transports.transport.Transport.__str__ .. py:method:: set_logger_extra(logger_extra) :canonical: aiida.transports.transport.Transport.set_logger_extra .. autodoc2-docstring:: aiida.transports.transport.Transport.set_logger_extra .. py:method:: get_short_doc() :canonical: aiida.transports.transport.Transport.get_short_doc :classmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.get_short_doc .. py:method:: get_valid_auth_params() :canonical: aiida.transports.transport.Transport.get_valid_auth_params :classmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.get_valid_auth_params .. py:method:: auth_options() -> collections.OrderedDict :canonical: aiida.transports.transport.Transport.auth_options .. autodoc2-docstring:: aiida.transports.transport.Transport.auth_options .. py:method:: _get_safe_interval_suggestion_string(computer) :canonical: aiida.transports.transport.Transport._get_safe_interval_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport._get_safe_interval_suggestion_string .. py:method:: _get_use_login_shell_suggestion_string(computer) :canonical: aiida.transports.transport.Transport._get_use_login_shell_suggestion_string :classmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport._get_use_login_shell_suggestion_string .. py:property:: logger :canonical: aiida.transports.transport.Transport.logger .. autodoc2-docstring:: aiida.transports.transport.Transport.logger .. py:method:: get_safe_open_interval() :canonical: aiida.transports.transport.Transport.get_safe_open_interval .. autodoc2-docstring:: aiida.transports.transport.Transport.get_safe_open_interval .. py:method:: chdir(path) :canonical: aiida.transports.transport.Transport.chdir :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.chdir .. py:method:: chmod(path, mode) :canonical: aiida.transports.transport.Transport.chmod :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.chmod .. py:method:: chown(path, uid, gid) :canonical: aiida.transports.transport.Transport.chown :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.chown .. py:method:: copy(remotesource, remotedestination, dereference=False, recursive=True) :canonical: aiida.transports.transport.Transport.copy :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.copy .. py:method:: copyfile(remotesource, remotedestination, dereference=False) :canonical: aiida.transports.transport.Transport.copyfile :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.copyfile .. py:method:: copytree(remotesource, remotedestination, dereference=False) :canonical: aiida.transports.transport.Transport.copytree :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.copytree .. py:method:: copy_from_remote_to_remote(transportdestination, remotesource, remotedestination, **kwargs) :canonical: aiida.transports.transport.Transport.copy_from_remote_to_remote .. autodoc2-docstring:: aiida.transports.transport.Transport.copy_from_remote_to_remote .. py:method:: _exec_command_internal(command, **kwargs) :canonical: aiida.transports.transport.Transport._exec_command_internal :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport._exec_command_internal .. py:method:: exec_command_wait_bytes(command, stdin=None, **kwargs) :canonical: aiida.transports.transport.Transport.exec_command_wait_bytes :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.exec_command_wait_bytes .. py:method:: exec_command_wait(command, stdin=None, encoding='utf-8', **kwargs) :canonical: aiida.transports.transport.Transport.exec_command_wait .. autodoc2-docstring:: aiida.transports.transport.Transport.exec_command_wait .. py:method:: get(remotepath, localpath, *args, **kwargs) :canonical: aiida.transports.transport.Transport.get :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.get .. py:method:: getfile(remotepath, localpath, *args, **kwargs) :canonical: aiida.transports.transport.Transport.getfile :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.getfile .. py:method:: gettree(remotepath, localpath, *args, **kwargs) :canonical: aiida.transports.transport.Transport.gettree :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.gettree .. py:method:: getcwd() :canonical: aiida.transports.transport.Transport.getcwd :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.getcwd .. py:method:: get_attribute(path) :canonical: aiida.transports.transport.Transport.get_attribute :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.get_attribute .. py:method:: get_mode(path) :canonical: aiida.transports.transport.Transport.get_mode .. autodoc2-docstring:: aiida.transports.transport.Transport.get_mode .. py:method:: isdir(path) :canonical: aiida.transports.transport.Transport.isdir :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.isdir .. py:method:: isfile(path) :canonical: aiida.transports.transport.Transport.isfile :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.isfile .. py:method:: listdir(path='.', pattern=None) :canonical: aiida.transports.transport.Transport.listdir :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.listdir .. py:method:: listdir_withattributes(path='.', pattern=None) :canonical: aiida.transports.transport.Transport.listdir_withattributes .. autodoc2-docstring:: aiida.transports.transport.Transport.listdir_withattributes .. py:method:: makedirs(path, ignore_existing=False) :canonical: aiida.transports.transport.Transport.makedirs :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.makedirs .. py:method:: mkdir(path, ignore_existing=False) :canonical: aiida.transports.transport.Transport.mkdir :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.mkdir .. py:method:: normalize(path='.') :canonical: aiida.transports.transport.Transport.normalize :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.normalize .. py:method:: put(localpath, remotepath, *args, **kwargs) :canonical: aiida.transports.transport.Transport.put :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.put .. py:method:: putfile(localpath, remotepath, *args, **kwargs) :canonical: aiida.transports.transport.Transport.putfile :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.putfile .. py:method:: puttree(localpath, remotepath, *args, **kwargs) :canonical: aiida.transports.transport.Transport.puttree :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.puttree .. py:method:: remove(path) :canonical: aiida.transports.transport.Transport.remove :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.remove .. py:method:: rename(oldpath, newpath) :canonical: aiida.transports.transport.Transport.rename :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.rename .. py:method:: rmdir(path) :canonical: aiida.transports.transport.Transport.rmdir :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.rmdir .. py:method:: rmtree(path) :canonical: aiida.transports.transport.Transport.rmtree :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.rmtree .. py:method:: gotocomputer_command(remotedir) :canonical: aiida.transports.transport.Transport.gotocomputer_command :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.gotocomputer_command .. py:method:: symlink(remotesource, remotedestination) :canonical: aiida.transports.transport.Transport.symlink :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.symlink .. py:method:: whoami() :canonical: aiida.transports.transport.Transport.whoami .. autodoc2-docstring:: aiida.transports.transport.Transport.whoami .. py:method:: path_exists(path) :canonical: aiida.transports.transport.Transport.path_exists :abstractmethod: .. autodoc2-docstring:: aiida.transports.transport.Transport.path_exists .. py:method:: glob(pathname) :canonical: aiida.transports.transport.Transport.glob .. autodoc2-docstring:: aiida.transports.transport.Transport.glob .. py:method:: iglob(pathname) :canonical: aiida.transports.transport.Transport.iglob .. autodoc2-docstring:: aiida.transports.transport.Transport.iglob .. py:method:: glob1(dirname, pattern) :canonical: aiida.transports.transport.Transport.glob1 .. autodoc2-docstring:: aiida.transports.transport.Transport.glob1 .. py:method:: glob0(dirname, basename) :canonical: aiida.transports.transport.Transport.glob0 .. autodoc2-docstring:: aiida.transports.transport.Transport.glob0 .. py:method:: has_magic(string) :canonical: aiida.transports.transport.Transport.has_magic .. autodoc2-docstring:: aiida.transports.transport.Transport.has_magic .. py:method:: _gotocomputer_string(remotedir) :canonical: aiida.transports.transport.Transport._gotocomputer_string .. autodoc2-docstring:: aiida.transports.transport.Transport._gotocomputer_string .. py:function:: convert_to_bool(string) :canonical: aiida.transports.plugins.ssh.convert_to_bool .. autodoc2-docstring:: aiida.transports.plugins.ssh.convert_to_bool .. py:function:: parse_sshconfig(computername) :canonical: aiida.transports.plugins.ssh.parse_sshconfig .. autodoc2-docstring:: aiida.transports.plugins.ssh.parse_sshconfig sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/000077500000000000000000000000001453104212700206345ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.analysis.rst000066400000000000000000000153051453104212700247340ustar00rootroot00000000000000:py:mod:`autodoc2.analysis` =========================== .. py:module:: autodoc2.analysis .. autodoc2-docstring:: autodoc2.analysis :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`State ` - .. autodoc2-docstring:: autodoc2.analysis.State :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`analyse_module ` - .. autodoc2-docstring:: autodoc2.analysis.analyse_module :summary: * - :py:obj:`_get_full_name ` - .. autodoc2-docstring:: autodoc2.analysis._get_full_name :summary: * - :py:obj:`_get_parent_name ` - .. autodoc2-docstring:: autodoc2.analysis._get_parent_name :summary: * - :py:obj:`fix_docstring_indent ` - .. autodoc2-docstring:: autodoc2.analysis.fix_docstring_indent :summary: * - :py:obj:`walk_node ` - .. autodoc2-docstring:: autodoc2.analysis.walk_node :summary: * - :py:obj:`yield_module ` - .. autodoc2-docstring:: autodoc2.analysis.yield_module :summary: * - :py:obj:`yield_annotation_assign ` - .. autodoc2-docstring:: autodoc2.analysis.yield_annotation_assign :summary: * - :py:obj:`yield_assign ` - .. autodoc2-docstring:: autodoc2.analysis.yield_assign :summary: * - :py:obj:`_yield_assign ` - .. autodoc2-docstring:: autodoc2.analysis._yield_assign :summary: * - :py:obj:`yield_function_def ` - .. autodoc2-docstring:: autodoc2.analysis.yield_function_def :summary: * - :py:obj:`yield_class_def ` - .. autodoc2-docstring:: autodoc2.analysis.yield_class_def :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`__all__ ` - .. autodoc2-docstring:: autodoc2.analysis.__all__ :summary: * - :py:obj:`_dc_kwargs ` - .. autodoc2-docstring:: autodoc2.analysis._dc_kwargs :summary: * - :py:obj:`_FUNC_MAPPER ` - .. autodoc2-docstring:: autodoc2.analysis._FUNC_MAPPER :summary: API ~~~ .. py:data:: __all__ :canonical: autodoc2.analysis.__all__ :value: ['analyse_module'] .. autodoc2-docstring:: autodoc2.analysis.__all__ .. py:function:: analyse_module(file_path: pathlib.Path, name: str, exclude_external_imports: typing.Pattern[str] | None = None) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.analyse_module .. autodoc2-docstring:: autodoc2.analysis.analyse_module .. py:data:: _dc_kwargs :canonical: autodoc2.analysis._dc_kwargs :type: dict[str, bool] :value: None .. autodoc2-docstring:: autodoc2.analysis._dc_kwargs .. py:class:: State :canonical: autodoc2.analysis.State .. autodoc2-docstring:: autodoc2.analysis.State .. py:attribute:: package_name :canonical: autodoc2.analysis.State.package_name :type: str :value: None .. autodoc2-docstring:: autodoc2.analysis.State.package_name .. py:attribute:: name_stack :canonical: autodoc2.analysis.State.name_stack :type: list[str] :value: None .. autodoc2-docstring:: autodoc2.analysis.State.name_stack .. py:attribute:: exclude_external_imports :canonical: autodoc2.analysis.State.exclude_external_imports :type: typing.Pattern[str] | None :value: None .. autodoc2-docstring:: autodoc2.analysis.State.exclude_external_imports .. py:method:: copy(**kwargs: typing.Any) -> autodoc2.analysis.State :canonical: autodoc2.analysis.State.copy .. autodoc2-docstring:: autodoc2.analysis.State.copy .. py:function:: _get_full_name(name: str, name_stack: list[str]) -> str :canonical: autodoc2.analysis._get_full_name .. autodoc2-docstring:: autodoc2.analysis._get_full_name .. py:function:: _get_parent_name(name: str) -> str :canonical: autodoc2.analysis._get_parent_name .. autodoc2-docstring:: autodoc2.analysis._get_parent_name .. py:function:: fix_docstring_indent(s: None | str, tabsize: int = 8) -> str :canonical: autodoc2.analysis.fix_docstring_indent .. autodoc2-docstring:: autodoc2.analysis.fix_docstring_indent .. py:function:: walk_node(node: astroid.nodes.NodeNG, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.walk_node .. autodoc2-docstring:: autodoc2.analysis.walk_node .. py:function:: yield_module(node: astroid.nodes.Module, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.yield_module .. autodoc2-docstring:: autodoc2.analysis.yield_module .. py:function:: yield_annotation_assign(node: astroid.nodes.AnnAssign, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.yield_annotation_assign .. autodoc2-docstring:: autodoc2.analysis.yield_annotation_assign .. py:function:: yield_assign(node: astroid.nodes.Assign, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.yield_assign .. autodoc2-docstring:: autodoc2.analysis.yield_assign .. py:function:: _yield_assign(node: astroid.nodes.Assign | astroid.nodes.AnnAssign, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis._yield_assign .. autodoc2-docstring:: autodoc2.analysis._yield_assign .. py:function:: yield_function_def(node: astroid.nodes.FunctionDef | astroid.nodes.AsyncFunctionDef, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.yield_function_def .. autodoc2-docstring:: autodoc2.analysis.yield_function_def .. py:function:: yield_class_def(node: astroid.nodes.ClassDef, state: autodoc2.analysis.State) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.analysis.yield_class_def .. autodoc2-docstring:: autodoc2.analysis.yield_class_def .. py:data:: _FUNC_MAPPER :canonical: autodoc2.analysis._FUNC_MAPPER :type: dict[astroid.nodes.NodeNG, typing.Callable[[astroid.nodes.NodeNG, autodoc2.analysis.State], typing.Iterable[autodoc2.utils.ItemData]]] :value: None .. autodoc2-docstring:: autodoc2.analysis._FUNC_MAPPER sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.astroid_utils.rst000066400000000000000000000244641453104212700260040ustar00rootroot00000000000000:py:mod:`autodoc2.astroid_utils` ================================ .. py:module:: autodoc2.astroid_utils .. autodoc2-docstring:: autodoc2.astroid_utils :allowtitles: Module Contents --------------- Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`resolve_import_alias ` - .. autodoc2-docstring:: autodoc2.astroid_utils.resolve_import_alias :summary: * - :py:obj:`is_constructor ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_constructor :summary: * - :py:obj:`get_full_import_name ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_full_import_name :summary: * - :py:obj:`get_assign_value ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_assign_value :summary: * - :py:obj:`get_const_values ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_const_values :summary: * - :py:obj:`get_assign_annotation ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_assign_annotation :summary: * - :py:obj:`resolve_annotation ` - .. autodoc2-docstring:: autodoc2.astroid_utils.resolve_annotation :summary: * - :py:obj:`resolve_qualname ` - .. autodoc2-docstring:: autodoc2.astroid_utils.resolve_qualname :summary: * - :py:obj:`get_module_all ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_module_all :summary: * - :py:obj:`is_decorated_with_singledispatch ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_singledispatch :summary: * - :py:obj:`is_singledispatch_decorator ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_singledispatch_decorator :summary: * - :py:obj:`is_decorated_as_singledispatch_register ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_as_singledispatch_register :summary: * - :py:obj:`is_decorated_with_property ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_property :summary: * - :py:obj:`is_property_decorator ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_property_decorator :summary: * - :py:obj:`is_decorated_with_property_setter ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_property_setter :summary: * - :py:obj:`get_class_docstring ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_class_docstring :summary: * - :py:obj:`is_exception ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_exception :summary: * - :py:obj:`is_decorated_with_overload ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_overload :summary: * - :py:obj:`is_overload_decorator ` - .. autodoc2-docstring:: autodoc2.astroid_utils.is_overload_decorator :summary: * - :py:obj:`get_func_docstring ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_func_docstring :summary: * - :py:obj:`get_return_annotation ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_return_annotation :summary: * - :py:obj:`get_args_info ` - .. autodoc2-docstring:: autodoc2.astroid_utils.get_args_info :summary: * - :py:obj:`_iter_args ` - .. autodoc2-docstring:: autodoc2.astroid_utils._iter_args :summary: * - :py:obj:`_merge_annotations ` - .. autodoc2-docstring:: autodoc2.astroid_utils._merge_annotations :summary: * - :py:obj:`_is_ellipsis ` - .. autodoc2-docstring:: autodoc2.astroid_utils._is_ellipsis :summary: API ~~~ .. py:function:: resolve_import_alias(name: str, import_names: list[tuple[str, str | None]]) -> str :canonical: autodoc2.astroid_utils.resolve_import_alias .. autodoc2-docstring:: autodoc2.astroid_utils.resolve_import_alias .. py:function:: is_constructor(node: astroid.nodes.NodeNG) -> bool :canonical: autodoc2.astroid_utils.is_constructor .. autodoc2-docstring:: autodoc2.astroid_utils.is_constructor .. py:function:: get_full_import_name(import_from: astroid.nodes.ImportFrom, name: str) -> str :canonical: autodoc2.astroid_utils.get_full_import_name .. autodoc2-docstring:: autodoc2.astroid_utils.get_full_import_name .. py:function:: get_assign_value(node: astroid.nodes.NodeNG) -> None | tuple[str, typing.Any] :canonical: autodoc2.astroid_utils.get_assign_value .. autodoc2-docstring:: autodoc2.astroid_utils.get_assign_value .. py:function:: get_const_values(node: astroid.nodes.NodeNG) -> typing.Any :canonical: autodoc2.astroid_utils.get_const_values .. autodoc2-docstring:: autodoc2.astroid_utils.get_const_values .. py:function:: get_assign_annotation(node: astroid.nodes.Assign) -> None | str :canonical: autodoc2.astroid_utils.get_assign_annotation .. autodoc2-docstring:: autodoc2.astroid_utils.get_assign_annotation .. py:function:: resolve_annotation(annotation: astroid.nodes.NodeNG) -> str :canonical: autodoc2.astroid_utils.resolve_annotation .. autodoc2-docstring:: autodoc2.astroid_utils.resolve_annotation .. py:function:: resolve_qualname(node: astroid.nodes.NodeNG, basename: str) -> str :canonical: autodoc2.astroid_utils.resolve_qualname .. autodoc2-docstring:: autodoc2.astroid_utils.resolve_qualname .. py:function:: get_module_all(node: astroid.nodes.Module) -> None | list[str] :canonical: autodoc2.astroid_utils.get_module_all .. autodoc2-docstring:: autodoc2.astroid_utils.get_module_all .. py:function:: is_decorated_with_singledispatch(node: astroid.nodes.FunctionDef | astroid.nodes.AsyncFunctionDef) -> bool :canonical: autodoc2.astroid_utils.is_decorated_with_singledispatch .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_singledispatch .. py:function:: is_singledispatch_decorator(decorator: astroid.Name) -> bool :canonical: autodoc2.astroid_utils.is_singledispatch_decorator .. autodoc2-docstring:: autodoc2.astroid_utils.is_singledispatch_decorator .. py:function:: is_decorated_as_singledispatch_register(node: astroid.nodes.FunctionDef | astroid.nodes.AsyncFunctionDef) -> bool :canonical: autodoc2.astroid_utils.is_decorated_as_singledispatch_register .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_as_singledispatch_register .. py:function:: is_decorated_with_property(node: astroid.nodes.FunctionDef | astroid.nodes.AsyncFunctionDef) -> bool :canonical: autodoc2.astroid_utils.is_decorated_with_property .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_property .. py:function:: is_property_decorator(decorator: astroid.Name) -> bool :canonical: autodoc2.astroid_utils.is_property_decorator .. autodoc2-docstring:: autodoc2.astroid_utils.is_property_decorator .. py:function:: is_decorated_with_property_setter(node: astroid.nodes.FunctionDef | astroid.nodes.AsyncFunctionDef) -> bool :canonical: autodoc2.astroid_utils.is_decorated_with_property_setter .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_property_setter .. py:function:: get_class_docstring(node: astroid.nodes.ClassDef) -> tuple[str, str | None] :canonical: autodoc2.astroid_utils.get_class_docstring .. autodoc2-docstring:: autodoc2.astroid_utils.get_class_docstring .. py:function:: is_exception(node: astroid.nodes.ClassDef) -> bool :canonical: autodoc2.astroid_utils.is_exception .. autodoc2-docstring:: autodoc2.astroid_utils.is_exception .. py:function:: is_decorated_with_overload(node: astroid.nodes.FunctionDef) -> bool :canonical: autodoc2.astroid_utils.is_decorated_with_overload .. autodoc2-docstring:: autodoc2.astroid_utils.is_decorated_with_overload .. py:function:: is_overload_decorator(decorator: astroid.Name | astroid.Attribute) -> bool :canonical: autodoc2.astroid_utils.is_overload_decorator .. autodoc2-docstring:: autodoc2.astroid_utils.is_overload_decorator .. py:function:: get_func_docstring(node: astroid.nodes.FunctionDef) -> tuple[str, None | str] :canonical: autodoc2.astroid_utils.get_func_docstring .. autodoc2-docstring:: autodoc2.astroid_utils.get_func_docstring .. py:function:: get_return_annotation(node: astroid.nodes.FunctionDef) -> None | str :canonical: autodoc2.astroid_utils.get_return_annotation .. autodoc2-docstring:: autodoc2.astroid_utils.get_return_annotation .. py:function:: get_args_info(args_node: astroid.Arguments) -> list[tuple[None | str, None | str, None | str, None | str]] :canonical: autodoc2.astroid_utils.get_args_info .. autodoc2-docstring:: autodoc2.astroid_utils.get_args_info .. py:function:: _iter_args(args: list[astroid.nodes.NodeNG], annotations: list[astroid.nodes.NodeNG], defaults: list[astroid.nodes.NodeNG]) -> typing.Iterable[tuple[str, None | str, str | None]] :canonical: autodoc2.astroid_utils._iter_args .. autodoc2-docstring:: autodoc2.astroid_utils._iter_args .. py:function:: _merge_annotations(annotations: typing.Iterable[typing.Any], comment_annotations: typing.Iterable[typing.Any]) -> typing.Iterable[typing.Any] :canonical: autodoc2.astroid_utils._merge_annotations .. autodoc2-docstring:: autodoc2.astroid_utils._merge_annotations .. py:function:: _is_ellipsis(node: typing.Any) -> bool :canonical: autodoc2.astroid_utils._is_ellipsis .. autodoc2-docstring:: autodoc2.astroid_utils._is_ellipsis sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.cli.rst000066400000000000000000000102661453104212700236610ustar00rootroot00000000000000:py:mod:`autodoc2.cli` ====================== .. py:module:: autodoc2.cli .. autodoc2-docstring:: autodoc2.cli :allowtitles: Module Contents --------------- Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`version_callback ` - .. autodoc2-docstring:: autodoc2.cli.version_callback :summary: * - :py:obj:`main_app ` - .. autodoc2-docstring:: autodoc2.cli.main_app :summary: * - :py:obj:`list_items ` - .. autodoc2-docstring:: autodoc2.cli.list_items :summary: * - :py:obj:`create_db ` - .. autodoc2-docstring:: autodoc2.cli.create_db :summary: * - :py:obj:`analyse_all ` - .. autodoc2-docstring:: autodoc2.cli.analyse_all :summary: * - :py:obj:`write ` - .. autodoc2-docstring:: autodoc2.cli.write :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`console ` - .. autodoc2-docstring:: autodoc2.cli.console :summary: * - :py:obj:`app_main ` - .. autodoc2-docstring:: autodoc2.cli.app_main :summary: API ~~~ .. py:data:: console :canonical: autodoc2.cli.console :value: None .. autodoc2-docstring:: autodoc2.cli.console .. py:data:: app_main :canonical: autodoc2.cli.app_main :value: None .. autodoc2-docstring:: autodoc2.cli.app_main .. py:function:: version_callback(value: bool) -> None :canonical: autodoc2.cli.version_callback .. autodoc2-docstring:: autodoc2.cli.version_callback .. py:function:: main_app(version: typing.Optional[bool] = typer.Option(None, '-v', '--version', callback=version_callback, is_eager=True, help='Show the application version and exit.')) -> None :canonical: autodoc2.cli.main_app .. autodoc2-docstring:: autodoc2.cli.main_app .. py:function:: list_items(path: pathlib.Path = typer.Argument(..., exists=True, help='Path to analyse'), module: typing.Optional[str] = typer.Option(None, '-m', '--module', help='The name of the module, otherwise it will be guessed from the path'), inherited: bool = typer.Option(False, '-i', '--inherited', help='Show inherited members'), private: bool = typer.Option(False, '-p', '--private', help='Show private members'), one_line: bool = typer.Option(False, '-o', '--one-line', help='Show only full name and type'), filter_types_str: typing.Optional[str] = typer.Option(None, '-ft', '--filter-types', help='Only show members of types (comma separated)'), skip_types_str: str = typer.Option('import_from', '-st', '--skip-types', help='Do not show members of types (comma separated)'), filter_name: typing.Optional[str] = typer.Option(None, '-fn', '--filter-name', help='Only show members with this name regex')) -> None :canonical: autodoc2.cli.list_items .. autodoc2-docstring:: autodoc2.cli.list_items .. py:function:: create_db(path: pathlib.Path = typer.Argument(..., exists=True, help='Path to analyse'), output: pathlib.Path = typer.Argument('autodoc.db.json', help='File to write to'), module: typing.Optional[str] = typer.Option(None, '-m', '--module', help='The name of the module, otherwise it will be guessed from the path')) -> None :canonical: autodoc2.cli.create_db .. autodoc2-docstring:: autodoc2.cli.create_db .. py:function:: analyse_all(path: pathlib.Path = typer.Argument(..., exists=True, help='Path to a database file'), package: str = typer.Argument(..., help='The name of the package to resolve.')) -> None :canonical: autodoc2.cli.analyse_all .. autodoc2-docstring:: autodoc2.cli.analyse_all .. py:function:: write(path: pathlib.Path = typer.Argument(..., exists=True, help='Path to analyse'), module: typing.Optional[str] = typer.Option(None, '-m', '--module', help='The name of the module, otherwise it will be guessed from the path'), output: pathlib.Path = typer.Option('_autodoc', help='Folder to write to'), clean: bool = typer.Option(False, '-c', '--clean', help='Remove old files')) -> None :canonical: autodoc2.cli.write .. autodoc2-docstring:: autodoc2.cli.write sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.config.rst000066400000000000000000000241721453104212700243600ustar00rootroot00000000000000:py:mod:`autodoc2.config` ========================= .. py:module:: autodoc2.config .. autodoc2-docstring:: autodoc2.config :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`PackageConfig ` - .. autodoc2-docstring:: autodoc2.config.PackageConfig :summary: * - :py:obj:`Config ` - .. autodoc2-docstring:: autodoc2.config.Config :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`_coerce_packages ` - .. autodoc2-docstring:: autodoc2.config._coerce_packages :summary: * - :py:obj:`_validate_replace_list ` - .. autodoc2-docstring:: autodoc2.config._validate_replace_list :summary: * - :py:obj:`_validate_hidden_objects ` - .. autodoc2-docstring:: autodoc2.config._validate_hidden_objects :summary: * - :py:obj:`_validate_regex_list ` - .. autodoc2-docstring:: autodoc2.config._validate_regex_list :summary: * - :py:obj:`_validate_list_tuple_regex_str ` - .. autodoc2-docstring:: autodoc2.config._validate_list_tuple_regex_str :summary: * - :py:obj:`_load_renderer ` - .. autodoc2-docstring:: autodoc2.config._load_renderer :summary: * - :py:obj:`_load_regex_renderers ` - .. autodoc2-docstring:: autodoc2.config._load_regex_renderers :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`CONFIG_PREFIX ` - .. autodoc2-docstring:: autodoc2.config.CONFIG_PREFIX :summary: API ~~~ .. py:exception:: ValidationError() :canonical: autodoc2.config.ValidationError Bases: :py:obj:`Exception` .. autodoc2-docstring:: autodoc2.config.ValidationError .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.config.ValidationError.__init__ .. py:data:: CONFIG_PREFIX :canonical: autodoc2.config.CONFIG_PREFIX :value: 'autodoc2_' .. autodoc2-docstring:: autodoc2.config.CONFIG_PREFIX .. py:class:: PackageConfig :canonical: autodoc2.config.PackageConfig .. autodoc2-docstring:: autodoc2.config.PackageConfig .. py:attribute:: path :canonical: autodoc2.config.PackageConfig.path :type: str :value: None .. autodoc2-docstring:: autodoc2.config.PackageConfig.path .. py:attribute:: from_git_clone :canonical: autodoc2.config.PackageConfig.from_git_clone :type: tuple[str, str] | None :value: None .. autodoc2-docstring:: autodoc2.config.PackageConfig.from_git_clone .. py:attribute:: module :canonical: autodoc2.config.PackageConfig.module :type: str | None :value: None .. autodoc2-docstring:: autodoc2.config.PackageConfig.module .. py:attribute:: exclude_dirs :canonical: autodoc2.config.PackageConfig.exclude_dirs :type: list[str] :value: None .. autodoc2-docstring:: autodoc2.config.PackageConfig.exclude_dirs .. py:attribute:: exclude_files :canonical: autodoc2.config.PackageConfig.exclude_files :type: list[str] :value: None .. autodoc2-docstring:: autodoc2.config.PackageConfig.exclude_files .. py:attribute:: auto_mode :canonical: autodoc2.config.PackageConfig.auto_mode :type: bool :value: None .. autodoc2-docstring:: autodoc2.config.PackageConfig.auto_mode .. py:method:: as_triple() -> typing.Iterable[tuple[str, typing.Any, dataclasses.Field]] :canonical: autodoc2.config.PackageConfig.as_triple .. autodoc2-docstring:: autodoc2.config.PackageConfig.as_triple .. py:function:: _coerce_packages(name: str, item: typing.Any) -> list[autodoc2.config.PackageConfig] :canonical: autodoc2.config._coerce_packages .. autodoc2-docstring:: autodoc2.config._coerce_packages .. py:function:: _validate_replace_list(name: str, item: typing.Any) -> list[tuple[str, str]] :canonical: autodoc2.config._validate_replace_list .. autodoc2-docstring:: autodoc2.config._validate_replace_list .. py:function:: _validate_hidden_objects(name: str, item: typing.Any) -> set[str] :canonical: autodoc2.config._validate_hidden_objects .. autodoc2-docstring:: autodoc2.config._validate_hidden_objects .. py:function:: _validate_regex_list(name: str, item: typing.Any) -> list[typing.Pattern[str]] :canonical: autodoc2.config._validate_regex_list .. autodoc2-docstring:: autodoc2.config._validate_regex_list .. py:function:: _validate_list_tuple_regex_str(name: str, item: typing.Any) -> list[tuple[typing.Pattern[str], str]] :canonical: autodoc2.config._validate_list_tuple_regex_str .. autodoc2-docstring:: autodoc2.config._validate_list_tuple_regex_str .. py:function:: _load_renderer(name: str, item: typing.Any) -> type[autodoc2.render.base.RendererBase] :canonical: autodoc2.config._load_renderer .. autodoc2-docstring:: autodoc2.config._load_renderer .. py:function:: _load_regex_renderers(name: str, item: typing.Any) -> list[tuple[typing.Pattern[str], type[autodoc2.render.base.RendererBase]]] :canonical: autodoc2.config._load_regex_renderers .. autodoc2-docstring:: autodoc2.config._load_regex_renderers .. py:class:: Config :canonical: autodoc2.config.Config .. autodoc2-docstring:: autodoc2.config.Config .. py:attribute:: packages :canonical: autodoc2.config.Config.packages :type: list[autodoc2.config.PackageConfig] :value: None .. autodoc2-docstring:: autodoc2.config.Config.packages .. py:attribute:: output_dir :canonical: autodoc2.config.Config.output_dir :type: str :value: None .. autodoc2-docstring:: autodoc2.config.Config.output_dir .. py:attribute:: render_plugin :canonical: autodoc2.config.Config.render_plugin :type: type[autodoc2.render.base.RendererBase] :value: None .. autodoc2-docstring:: autodoc2.config.Config.render_plugin .. py:attribute:: render_plugin_regexes :canonical: autodoc2.config.Config.render_plugin_regexes :type: list[tuple[typing.Pattern[str], type[autodoc2.render.base.RendererBase]]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.render_plugin_regexes .. py:attribute:: module_all_regexes :canonical: autodoc2.config.Config.module_all_regexes :type: list[typing.Pattern[str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.module_all_regexes .. py:attribute:: skip_module_regexes :canonical: autodoc2.config.Config.skip_module_regexes :type: list[typing.Pattern[str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.skip_module_regexes .. py:attribute:: hidden_objects :canonical: autodoc2.config.Config.hidden_objects :type: set[typing.Literal[undoc, dunder, private, inherited]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.hidden_objects .. py:attribute:: hidden_regexes :canonical: autodoc2.config.Config.hidden_regexes :type: list[typing.Pattern[str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.hidden_regexes .. py:attribute:: no_index :canonical: autodoc2.config.Config.no_index :type: bool :value: None .. autodoc2-docstring:: autodoc2.config.Config.no_index .. py:attribute:: deprecated_module_regexes :canonical: autodoc2.config.Config.deprecated_module_regexes :type: list[typing.Pattern[str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.deprecated_module_regexes .. py:attribute:: module_summary :canonical: autodoc2.config.Config.module_summary :type: bool :value: None .. autodoc2-docstring:: autodoc2.config.Config.module_summary .. py:attribute:: docstring_parser_regexes :canonical: autodoc2.config.Config.docstring_parser_regexes :type: list[tuple[typing.Pattern[str], str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.docstring_parser_regexes .. py:attribute:: class_docstring :canonical: autodoc2.config.Config.class_docstring :type: typing.Literal[merge, both] :value: None .. autodoc2-docstring:: autodoc2.config.Config.class_docstring .. py:attribute:: class_inheritance :canonical: autodoc2.config.Config.class_inheritance :type: bool :value: None .. autodoc2-docstring:: autodoc2.config.Config.class_inheritance .. py:attribute:: annotations :canonical: autodoc2.config.Config.annotations :type: bool :value: None .. autodoc2-docstring:: autodoc2.config.Config.annotations .. py:attribute:: docstrings :canonical: autodoc2.config.Config.docstrings :type: typing.Literal[all, direct, none] :value: None .. autodoc2-docstring:: autodoc2.config.Config.docstrings .. py:attribute:: sort_names :canonical: autodoc2.config.Config.sort_names :type: bool :value: None .. autodoc2-docstring:: autodoc2.config.Config.sort_names .. py:attribute:: replace_annotations :canonical: autodoc2.config.Config.replace_annotations :type: list[tuple[str, str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.replace_annotations .. py:attribute:: replace_bases :canonical: autodoc2.config.Config.replace_bases :type: list[tuple[str, str]] :value: None .. autodoc2-docstring:: autodoc2.config.Config.replace_bases .. py:attribute:: index_template :canonical: autodoc2.config.Config.index_template :type: str | None :value: None .. autodoc2-docstring:: autodoc2.config.Config.index_template .. py:method:: as_triple() -> typing.Iterable[tuple[str, typing.Any, dataclasses.Field]] :canonical: autodoc2.config.Config.as_triple .. autodoc2-docstring:: autodoc2.config.Config.as_triple sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.db.md000066400000000000000000000127251453104212700232710ustar00rootroot00000000000000# {py:mod}`autodoc2.db` ```{py:module} autodoc2.db ``` ```{autodoc2-docstring} autodoc2.db :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Database ` - ```{autodoc2-docstring} autodoc2.db.Database :summary: ``` * - {py:obj}`InMemoryDb ` - ```{autodoc2-docstring} autodoc2.db.InMemoryDb :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_LIKE_REGEX ` - ```{autodoc2-docstring} autodoc2.db._LIKE_REGEX :summary: ``` ```` ### API ````{py:exception} UniqueError() :canonical: autodoc2.db.UniqueError Bases: {py:obj}`KeyError` ```{autodoc2-docstring} autodoc2.db.UniqueError ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} autodoc2.db.UniqueError.__init__ ``` ```` `````{py:class} Database :canonical: autodoc2.db.Database Bases: {py:obj}`typing.Protocol` ```{autodoc2-docstring} autodoc2.db.Database ``` ````{py:method} add(item: autodoc2.utils.ItemData) -> None :canonical: autodoc2.db.Database.add ```{autodoc2-docstring} autodoc2.db.Database.add ``` ```` ````{py:method} remove(full_name: str, descendants: bool) -> None :canonical: autodoc2.db.Database.remove ```{autodoc2-docstring} autodoc2.db.Database.remove ``` ```` ````{py:method} __contains__(full_name: str) -> bool :canonical: autodoc2.db.Database.__contains__ ```{autodoc2-docstring} autodoc2.db.Database.__contains__ ``` ```` ````{py:method} get_item(full_name: str) -> autodoc2.utils.ItemData | None :canonical: autodoc2.db.Database.get_item ```{autodoc2-docstring} autodoc2.db.Database.get_item ``` ```` ````{py:method} get_items_like(full_name: str) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.Database.get_items_like ```{autodoc2-docstring} autodoc2.db.Database.get_items_like ``` ```` ````{py:method} get_type(full_name: str) -> None | str :canonical: autodoc2.db.Database.get_type ```{autodoc2-docstring} autodoc2.db.Database.get_type ``` ```` ````{py:method} get_by_type(type_: str) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.Database.get_by_type ```{autodoc2-docstring} autodoc2.db.Database.get_by_type ``` ```` ````{py:method} get_overloads(full_name: str) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.Database.get_overloads ```{autodoc2-docstring} autodoc2.db.Database.get_overloads ``` ```` ````{py:method} get_children(full_name: str, types: None | set[str] = None, *, sort_name: bool = False) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.Database.get_children ```{autodoc2-docstring} autodoc2.db.Database.get_children ``` ```` ````{py:method} get_children_names(full_name: str, types: None | set[str] = None, *, sort_name: bool = False) -> typing.Iterable[str] :canonical: autodoc2.db.Database.get_children_names ```{autodoc2-docstring} autodoc2.db.Database.get_children_names ``` ```` ````{py:method} get_ancestors(full_name: str, include_self: bool) -> typing.Iterable[autodoc2.utils.ItemData | None] :canonical: autodoc2.db.Database.get_ancestors ```{autodoc2-docstring} autodoc2.db.Database.get_ancestors ``` ```` ````` ````{py:data} _LIKE_REGEX :canonical: autodoc2.db._LIKE_REGEX :value: > None ```{autodoc2-docstring} autodoc2.db._LIKE_REGEX ``` ```` `````{py:class} InMemoryDb() :canonical: autodoc2.db.InMemoryDb Bases: {py:obj}`autodoc2.db.Database` ```{autodoc2-docstring} autodoc2.db.InMemoryDb ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} autodoc2.db.InMemoryDb.__init__ ``` ````{py:method} add(item: autodoc2.utils.ItemData) -> None :canonical: autodoc2.db.InMemoryDb.add ```` ````{py:method} remove(full_name: str, descendants: bool) -> None :canonical: autodoc2.db.InMemoryDb.remove ```` ````{py:method} __contains__(full_name: str) -> bool :canonical: autodoc2.db.InMemoryDb.__contains__ ```` ````{py:method} get_item(full_name: str) -> autodoc2.utils.ItemData | None :canonical: autodoc2.db.InMemoryDb.get_item ```` ````{py:method} get_items_like(full_name: str) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.InMemoryDb.get_items_like ```` ````{py:method} get_type(full_name: str) -> None | str :canonical: autodoc2.db.InMemoryDb.get_type ```` ````{py:method} get_by_type(type_: str) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.InMemoryDb.get_by_type ```` ````{py:method} get_overloads(full_name: str) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.InMemoryDb.get_overloads ```` ````{py:method} get_children(full_name: str, types: None | set[str] = None, *, sort_name: bool = False) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.db.InMemoryDb.get_children ```` ````{py:method} get_children_names(full_name: str, types: None | set[str] = None, *, sort_name: bool = False) -> typing.Iterable[str] :canonical: autodoc2.db.InMemoryDb.get_children_names ```` ````{py:method} get_ancestors(full_name: str, include_self: bool) -> typing.Iterable[autodoc2.utils.ItemData | None] :canonical: autodoc2.db.InMemoryDb.get_ancestors ```` ````{py:method} write(stream: typing.TextIO) -> None :canonical: autodoc2.db.InMemoryDb.write ```{autodoc2-docstring} autodoc2.db.InMemoryDb.write ``` ```` ````{py:method} read(stream: typing.TextIO) -> autodoc2.db.InMemoryDb :canonical: autodoc2.db.InMemoryDb.read :classmethod: ```{autodoc2-docstring} autodoc2.db.InMemoryDb.read ``` ```` ````` sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.render.base.rst000066400000000000000000000127221453104212700253010ustar00rootroot00000000000000:py:mod:`autodoc2.render.base` ============================== .. py:module:: autodoc2.render.base .. autodoc2-docstring:: autodoc2.render.base :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`RendererBase ` - .. autodoc2-docstring:: autodoc2.render.base.RendererBase :summary: API ~~~ .. py:class:: RendererBase(db: autodoc2.db.Database, config: autodoc2.config.Config, *, warn: typing.Callable[[str, autodoc2.utils.WarningSubtypes], None] | None = None, all_resolver: autodoc2.resolve_all.AllResolver | None = None, standalone: bool = True) :canonical: autodoc2.render.base.RendererBase Bases: :py:obj:`abc.ABC` .. autodoc2-docstring:: autodoc2.render.base.RendererBase .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.render.base.RendererBase.__init__ .. py:attribute:: EXTENSION :canonical: autodoc2.render.base.RendererBase.EXTENSION :type: typing.ClassVar[str] :value: '.txt' .. autodoc2-docstring:: autodoc2.render.base.RendererBase.EXTENSION .. py:attribute:: _is_hidden_cache :canonical: autodoc2.render.base.RendererBase._is_hidden_cache :type: collections.OrderedDict[str, bool] :value: None .. autodoc2-docstring:: autodoc2.render.base.RendererBase._is_hidden_cache .. py:property:: config :canonical: autodoc2.render.base.RendererBase.config :type: autodoc2.config.Config .. autodoc2-docstring:: autodoc2.render.base.RendererBase.config .. py:property:: standalone :canonical: autodoc2.render.base.RendererBase.standalone :type: bool .. autodoc2-docstring:: autodoc2.render.base.RendererBase.standalone .. py:method:: warn(msg: str, type_: autodoc2.utils.WarningSubtypes = WarningSubtypes.RENDER_ERROR) -> None :canonical: autodoc2.render.base.RendererBase.warn .. autodoc2-docstring:: autodoc2.render.base.RendererBase.warn .. py:method:: get_item(full_name: str) -> autodoc2.utils.ItemData | None :canonical: autodoc2.render.base.RendererBase.get_item .. autodoc2-docstring:: autodoc2.render.base.RendererBase.get_item .. py:method:: get_children(item: autodoc2.utils.ItemData, types: None | set[str] = None, *, omit_hidden: bool = True) -> typing.Iterable[autodoc2.utils.ItemData] :canonical: autodoc2.render.base.RendererBase.get_children .. autodoc2-docstring:: autodoc2.render.base.RendererBase.get_children .. py:method:: is_hidden(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.is_hidden .. autodoc2-docstring:: autodoc2.render.base.RendererBase.is_hidden .. py:method:: is_module_deprecated(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.is_module_deprecated .. autodoc2-docstring:: autodoc2.render.base.RendererBase.is_module_deprecated .. py:method:: no_index(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.no_index .. autodoc2-docstring:: autodoc2.render.base.RendererBase.no_index .. py:method:: show_module_summary(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.show_module_summary .. autodoc2-docstring:: autodoc2.render.base.RendererBase.show_module_summary .. py:method:: show_class_inheritance(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.show_class_inheritance .. autodoc2-docstring:: autodoc2.render.base.RendererBase.show_class_inheritance .. py:method:: show_annotations(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.show_annotations .. autodoc2-docstring:: autodoc2.render.base.RendererBase.show_annotations .. py:method:: show_docstring(item: autodoc2.utils.ItemData) -> bool :canonical: autodoc2.render.base.RendererBase.show_docstring .. autodoc2-docstring:: autodoc2.render.base.RendererBase.show_docstring .. py:method:: render_item(full_name: str) -> typing.Iterable[str] :canonical: autodoc2.render.base.RendererBase.render_item :abstractmethod: .. autodoc2-docstring:: autodoc2.render.base.RendererBase.render_item .. py:method:: format_args(args_info: autodoc2.utils.ARGS_TYPE, include_annotations: bool = True, ignore_self: None | str = None) -> str :canonical: autodoc2.render.base.RendererBase.format_args .. autodoc2-docstring:: autodoc2.render.base.RendererBase.format_args .. py:method:: format_annotation(annotation: None | str) -> str :canonical: autodoc2.render.base.RendererBase.format_annotation .. autodoc2-docstring:: autodoc2.render.base.RendererBase.format_annotation .. py:method:: format_base(base: None | str) -> str :canonical: autodoc2.render.base.RendererBase.format_base .. autodoc2-docstring:: autodoc2.render.base.RendererBase.format_base .. py:method:: get_doc_parser(full_name: str) -> str :canonical: autodoc2.render.base.RendererBase.get_doc_parser .. autodoc2-docstring:: autodoc2.render.base.RendererBase.get_doc_parser .. py:method:: generate_summary(objects: list[autodoc2.utils.ItemData], alias: dict[str, str] | None = None) -> typing.Iterable[str] :canonical: autodoc2.render.base.RendererBase.generate_summary :abstractmethod: .. autodoc2-docstring:: autodoc2.render.base.RendererBase.generate_summary sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.render.myst_.rst000066400000000000000000000106101453104212700255140ustar00rootroot00000000000000:py:mod:`autodoc2.render.myst_` =============================== .. py:module:: autodoc2.render.myst_ .. autodoc2-docstring:: autodoc2.render.myst_ :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`MystRenderer ` - .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`_RE_DELIMS ` - .. autodoc2-docstring:: autodoc2.render.myst_._RE_DELIMS :summary: API ~~~ .. py:data:: _RE_DELIMS :canonical: autodoc2.render.myst_._RE_DELIMS :value: None .. autodoc2-docstring:: autodoc2.render.myst_._RE_DELIMS .. py:class:: MystRenderer(db: autodoc2.db.Database, config: autodoc2.config.Config, *, warn: typing.Callable[[str, autodoc2.utils.WarningSubtypes], None] | None = None, all_resolver: autodoc2.resolve_all.AllResolver | None = None, standalone: bool = True) :canonical: autodoc2.render.myst_.MystRenderer Bases: :py:obj:`autodoc2.render.base.RendererBase` .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.__init__ .. py:attribute:: EXTENSION :canonical: autodoc2.render.myst_.MystRenderer.EXTENSION :value: '.md' .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.EXTENSION .. py:method:: render_item(full_name: str) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_item .. py:method:: generate_summary(objects: list[autodoc2.utils.ItemData], alias: dict[str, str] | None = None) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.generate_summary .. py:method:: enclosing_backticks(text: str) -> str :canonical: autodoc2.render.myst_.MystRenderer.enclosing_backticks :staticmethod: .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.enclosing_backticks .. py:method:: render_package(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_package .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_package .. py:method:: render_module(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_module .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_module .. py:method:: render_function(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_function .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_function .. py:method:: render_exception(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_exception .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_exception .. py:method:: render_class(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_class .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_class .. py:method:: render_property(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_property .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_property .. py:method:: render_method(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_method .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_method .. py:method:: render_attribute(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_attribute .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_attribute .. py:method:: render_data(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.myst_.MystRenderer.render_data .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer.render_data .. py:method:: _reformat_cls_base_myst(value: str) -> str :canonical: autodoc2.render.myst_.MystRenderer._reformat_cls_base_myst .. autodoc2-docstring:: autodoc2.render.myst_.MystRenderer._reformat_cls_base_myst sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.render.rst000066400000000000000000000004351453104212700243660ustar00rootroot00000000000000:py:mod:`autodoc2.render` ========================= .. py:module:: autodoc2.render .. autodoc2-docstring:: autodoc2.render :allowtitles: Submodules ---------- .. toctree:: :titlesonly: :maxdepth: 1 autodoc2.render.myst_ autodoc2.render.rst_ autodoc2.render.base sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.render.rst_.rst000066400000000000000000000101251453104212700253310ustar00rootroot00000000000000:py:mod:`autodoc2.render.rst_` ============================== .. py:module:: autodoc2.render.rst_ .. autodoc2-docstring:: autodoc2.render.rst_ :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`RstRenderer ` - .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`_RE_DELIMS ` - .. autodoc2-docstring:: autodoc2.render.rst_._RE_DELIMS :summary: API ~~~ .. py:data:: _RE_DELIMS :canonical: autodoc2.render.rst_._RE_DELIMS :value: None .. autodoc2-docstring:: autodoc2.render.rst_._RE_DELIMS .. py:class:: RstRenderer(db: autodoc2.db.Database, config: autodoc2.config.Config, *, warn: typing.Callable[[str, autodoc2.utils.WarningSubtypes], None] | None = None, all_resolver: autodoc2.resolve_all.AllResolver | None = None, standalone: bool = True) :canonical: autodoc2.render.rst_.RstRenderer Bases: :py:obj:`autodoc2.render.base.RendererBase` .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.__init__ .. py:attribute:: EXTENSION :canonical: autodoc2.render.rst_.RstRenderer.EXTENSION :value: '.rst' .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.EXTENSION .. py:method:: render_item(full_name: str) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_item .. py:method:: generate_summary(objects: list[autodoc2.utils.ItemData], alias: dict[str, str] | None = None) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.generate_summary .. py:method:: render_package(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_package .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_package .. py:method:: render_module(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_module .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_module .. py:method:: render_function(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_function .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_function .. py:method:: render_exception(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_exception .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_exception .. py:method:: render_class(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_class .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_class .. py:method:: render_property(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_property .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_property .. py:method:: render_method(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_method .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_method .. py:method:: render_attribute(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_attribute .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_attribute .. py:method:: render_data(item: autodoc2.utils.ItemData) -> typing.Iterable[str] :canonical: autodoc2.render.rst_.RstRenderer.render_data .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer.render_data .. py:method:: _reformat_cls_base_rst(value: str) -> str :canonical: autodoc2.render.rst_.RstRenderer._reformat_cls_base_rst .. autodoc2-docstring:: autodoc2.render.rst_.RstRenderer._reformat_cls_base_rst sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.resolve_all.rst000066400000000000000000000063651453104212700254260ustar00rootroot00000000000000:py:mod:`autodoc2.resolve_all` ============================== .. py:module:: autodoc2.resolve_all .. autodoc2-docstring:: autodoc2.resolve_all :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AllResolveResult ` - * - :py:obj:`AllResolver ` - .. autodoc2-docstring:: autodoc2.resolve_all.AllResolver :summary: API ~~~ .. py:exception:: AllResolutionError() :canonical: autodoc2.resolve_all.AllResolutionError Bases: :py:obj:`Exception` .. autodoc2-docstring:: autodoc2.resolve_all.AllResolutionError .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.resolve_all.AllResolutionError.__init__ .. py:exception:: ObjectMissingError() :canonical: autodoc2.resolve_all.ObjectMissingError Bases: :py:obj:`autodoc2.resolve_all.AllResolutionError` .. autodoc2-docstring:: autodoc2.resolve_all.ObjectMissingError .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.resolve_all.ObjectMissingError.__init__ .. py:exception:: CircularImportError() :canonical: autodoc2.resolve_all.CircularImportError Bases: :py:obj:`autodoc2.resolve_all.AllResolutionError` .. autodoc2-docstring:: autodoc2.resolve_all.CircularImportError .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.resolve_all.CircularImportError.__init__ .. py:exception:: NoAllError() :canonical: autodoc2.resolve_all.NoAllError Bases: :py:obj:`autodoc2.resolve_all.AllResolutionError` .. autodoc2-docstring:: autodoc2.resolve_all.NoAllError .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.resolve_all.NoAllError.__init__ .. py:class:: AllResolveResult() :canonical: autodoc2.resolve_all.AllResolveResult Bases: :py:obj:`typing.TypedDict` .. py:attribute:: resolved :canonical: autodoc2.resolve_all.AllResolveResult.resolved :type: dict[str, str] :value: None .. autodoc2-docstring:: autodoc2.resolve_all.AllResolveResult.resolved .. py:attribute:: errors :canonical: autodoc2.resolve_all.AllResolveResult.errors :type: list[tuple[str, str]] :value: None .. autodoc2-docstring:: autodoc2.resolve_all.AllResolveResult.errors .. py:class:: AllResolver(db: autodoc2.db.Database, warn_func: typing.Callable[[str], None] | None = None) :canonical: autodoc2.resolve_all.AllResolver .. autodoc2-docstring:: autodoc2.resolve_all.AllResolver .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.resolve_all.AllResolver.__init__ .. py:method:: clear_cache() -> None :canonical: autodoc2.resolve_all.AllResolver.clear_cache .. autodoc2-docstring:: autodoc2.resolve_all.AllResolver.clear_cache .. py:method:: get_resolved_all(full_name: str, _breadcrumbs: tuple[str, ...] = ()) -> autodoc2.resolve_all.AllResolveResult :canonical: autodoc2.resolve_all.AllResolver.get_resolved_all .. autodoc2-docstring:: autodoc2.resolve_all.AllResolver.get_resolved_all .. py:method:: get_name(name: str) -> str | None :canonical: autodoc2.resolve_all.AllResolver.get_name .. autodoc2-docstring:: autodoc2.resolve_all.AllResolver.get_name sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.rst000066400000000000000000000021211453104212700231020ustar00rootroot00000000000000:py:mod:`autodoc2` ================== .. py:module:: autodoc2 .. autodoc2-docstring:: autodoc2 :allowtitles: Subpackages ----------- .. toctree:: :titlesonly: :maxdepth: 3 autodoc2.render autodoc2.sphinx Submodules ---------- .. toctree:: :titlesonly: :maxdepth: 1 autodoc2.db autodoc2.config autodoc2.analysis autodoc2.cli autodoc2.utils autodoc2.resolve_all autodoc2.astroid_utils Package Contents ---------------- Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`setup ` - .. autodoc2-docstring:: autodoc2.setup :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`__version__ ` - .. autodoc2-docstring:: autodoc2.__version__ :summary: API ~~~ .. py:data:: __version__ :canonical: autodoc2.__version__ :value: '0.4.2' .. autodoc2-docstring:: autodoc2.__version__ .. py:function:: setup(app) :canonical: autodoc2.setup .. autodoc2-docstring:: autodoc2.setup sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.sphinx.autodoc.rst000066400000000000000000000047231453104212700260610ustar00rootroot00000000000000:py:mod:`autodoc2.sphinx.autodoc` ================================= .. py:module:: autodoc2.sphinx.autodoc .. autodoc2-docstring:: autodoc2.sphinx.autodoc :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AutodocObject ` - .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`_set_parents ` - .. autodoc2-docstring:: autodoc2.sphinx.autodoc._set_parents :summary: API ~~~ .. py:class:: AutodocObject(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine) :canonical: autodoc2.sphinx.autodoc.AutodocObject Bases: :py:obj:`sphinx.util.docutils.SphinxDirective` .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject.__init__ .. py:attribute:: required_arguments :canonical: autodoc2.sphinx.autodoc.AutodocObject.required_arguments :value: 1 .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject.required_arguments .. py:attribute:: final_argument_whitespace :canonical: autodoc2.sphinx.autodoc.AutodocObject.final_argument_whitespace :value: False .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject.final_argument_whitespace .. py:attribute:: has_content :canonical: autodoc2.sphinx.autodoc.AutodocObject.has_content :value: True .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject.has_content .. py:attribute:: option_spec :canonical: autodoc2.sphinx.autodoc.AutodocObject.option_spec :type: typing.ClassVar[dict[str, typing.Any]] :value: None .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject.option_spec .. py:method:: run() -> list[docutils.nodes.Node] :canonical: autodoc2.sphinx.autodoc.AutodocObject.run .. autodoc2-docstring:: autodoc2.sphinx.autodoc.AutodocObject.run .. py:function:: _set_parents(env: sphinx.environment.BuildEnvironment, mod: autodoc2.utils.ItemData, klass: autodoc2.utils.ItemData | None) -> typing.Generator[None, None, None] :canonical: autodoc2.sphinx.autodoc._set_parents .. autodoc2-docstring:: autodoc2.sphinx.autodoc._set_parents sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.sphinx.docstring.rst000066400000000000000000000103141453104212700264100ustar00rootroot00000000000000:py:mod:`autodoc2.sphinx.docstring` =================================== .. py:module:: autodoc2.sphinx.docstring .. autodoc2-docstring:: autodoc2.sphinx.docstring :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`DocstringRenderer ` - .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`parser_options ` - .. autodoc2-docstring:: autodoc2.sphinx.docstring.parser_options :summary: * - :py:obj:`summary_option ` - .. autodoc2-docstring:: autodoc2.sphinx.docstring.summary_option :summary: * - :py:obj:`parsing_context ` - .. autodoc2-docstring:: autodoc2.sphinx.docstring.parsing_context :summary: * - :py:obj:`change_source ` - .. autodoc2-docstring:: autodoc2.sphinx.docstring.change_source :summary: * - :py:obj:`_example ` - .. autodoc2-docstring:: autodoc2.sphinx.docstring._example :parser: myst :summary: API ~~~ .. py:function:: parser_options(argument: str) -> docutils.parsers.Parser | None :canonical: autodoc2.sphinx.docstring.parser_options .. autodoc2-docstring:: autodoc2.sphinx.docstring.parser_options .. py:function:: summary_option(argument: str) -> int | None :canonical: autodoc2.sphinx.docstring.summary_option .. autodoc2-docstring:: autodoc2.sphinx.docstring.summary_option .. py:class:: DocstringRenderer(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine) :canonical: autodoc2.sphinx.docstring.DocstringRenderer Bases: :py:obj:`sphinx.util.docutils.SphinxDirective` .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.__init__ .. py:attribute:: has_content :canonical: autodoc2.sphinx.docstring.DocstringRenderer.has_content :value: False .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.has_content .. py:attribute:: required_arguments :canonical: autodoc2.sphinx.docstring.DocstringRenderer.required_arguments :value: 1 .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.required_arguments .. py:attribute:: optional_arguments :canonical: autodoc2.sphinx.docstring.DocstringRenderer.optional_arguments :value: 0 .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.optional_arguments .. py:attribute:: final_argument_whitespace :canonical: autodoc2.sphinx.docstring.DocstringRenderer.final_argument_whitespace :value: True .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.final_argument_whitespace .. py:attribute:: option_spec :canonical: autodoc2.sphinx.docstring.DocstringRenderer.option_spec :type: typing.ClassVar[dict[str, typing.Any]] :value: None .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.option_spec .. py:method:: run() -> list[docutils.nodes.Node] :canonical: autodoc2.sphinx.docstring.DocstringRenderer.run .. autodoc2-docstring:: autodoc2.sphinx.docstring.DocstringRenderer.run .. py:function:: parsing_context() -> typing.Generator[None, None, None] :canonical: autodoc2.sphinx.docstring.parsing_context .. autodoc2-docstring:: autodoc2.sphinx.docstring.parsing_context .. py:function:: change_source(state: docutils.parsers.rst.states.RSTStateMachine, source_path: str, line_offset: int) -> typing.Generator[None, None, None] :canonical: autodoc2.sphinx.docstring.change_source .. autodoc2-docstring:: autodoc2.sphinx.docstring.change_source .. py:function:: _example(a: int, b: str) -> None :canonical: autodoc2.sphinx.docstring._example .. autodoc2-docstring:: autodoc2.sphinx.docstring._example :parser: myst sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.sphinx.extension.rst000066400000000000000000000053431453104212700264360ustar00rootroot00000000000000:py:mod:`autodoc2.sphinx.extension` =================================== .. py:module:: autodoc2.sphinx.extension .. autodoc2-docstring:: autodoc2.sphinx.extension :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`EnvCache ` - .. autodoc2-docstring:: autodoc2.sphinx.extension.EnvCache :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`setup ` - .. autodoc2-docstring:: autodoc2.sphinx.extension.setup :summary: * - :py:obj:`run_autodoc ` - .. autodoc2-docstring:: autodoc2.sphinx.extension.run_autodoc :summary: * - :py:obj:`run_autodoc_package ` - .. autodoc2-docstring:: autodoc2.sphinx.extension.run_autodoc_package :summary: * - :py:obj:`get_git_clone ` - .. autodoc2-docstring:: autodoc2.sphinx.extension.get_git_clone :summary: API ~~~ .. py:function:: setup(app: sphinx.application.Sphinx) -> dict[str, str | bool] :canonical: autodoc2.sphinx.extension.setup .. autodoc2-docstring:: autodoc2.sphinx.extension.setup .. py:function:: run_autodoc(app: sphinx.application.Sphinx) -> None :canonical: autodoc2.sphinx.extension.run_autodoc .. autodoc2-docstring:: autodoc2.sphinx.extension.run_autodoc .. py:function:: run_autodoc_package(app: sphinx.application.Sphinx, config: autodoc2.config.Config, pkg_index: int) -> str | None :canonical: autodoc2.sphinx.extension.run_autodoc_package .. autodoc2-docstring:: autodoc2.sphinx.extension.run_autodoc_package .. py:function:: get_git_clone(app: sphinx.application.Sphinx, url: str, branch_tag: str, config: autodoc2.config.Config) -> None | pathlib.Path :canonical: autodoc2.sphinx.extension.get_git_clone .. autodoc2-docstring:: autodoc2.sphinx.extension.get_git_clone .. py:class:: EnvCache() :canonical: autodoc2.sphinx.extension.EnvCache Bases: :py:obj:`typing.TypedDict` .. autodoc2-docstring:: autodoc2.sphinx.extension.EnvCache .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.sphinx.extension.EnvCache.__init__ .. py:attribute:: hash :canonical: autodoc2.sphinx.extension.EnvCache.hash :type: str :value: None .. autodoc2-docstring:: autodoc2.sphinx.extension.EnvCache.hash .. py:attribute:: root_module :canonical: autodoc2.sphinx.extension.EnvCache.root_module :type: str :value: None .. autodoc2-docstring:: autodoc2.sphinx.extension.EnvCache.root_module sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.sphinx.rst000066400000000000000000000005351453104212700244210ustar00rootroot00000000000000:py:mod:`autodoc2.sphinx` ========================= .. py:module:: autodoc2.sphinx .. autodoc2-docstring:: autodoc2.sphinx :allowtitles: Submodules ---------- .. toctree:: :titlesonly: :maxdepth: 1 autodoc2.sphinx.docstring autodoc2.sphinx.summary autodoc2.sphinx.utils autodoc2.sphinx.extension autodoc2.sphinx.autodoc sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.sphinx.summary.rst000066400000000000000000000042441453104212700261160ustar00rootroot00000000000000:py:mod:`autodoc2.sphinx.summary` ================================= .. py:module:: autodoc2.sphinx.summary .. autodoc2-docstring:: autodoc2.sphinx.summary :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`AutodocSummary ` - .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary :summary: API ~~~ .. py:class:: AutodocSummary(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine) :canonical: autodoc2.sphinx.summary.AutodocSummary Bases: :py:obj:`sphinx.util.docutils.SphinxDirective` .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.__init__ .. py:attribute:: has_content :canonical: autodoc2.sphinx.summary.AutodocSummary.has_content :value: True .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.has_content .. py:attribute:: required_arguments :canonical: autodoc2.sphinx.summary.AutodocSummary.required_arguments :value: 0 .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.required_arguments .. py:attribute:: optional_arguments :canonical: autodoc2.sphinx.summary.AutodocSummary.optional_arguments :value: 0 .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.optional_arguments .. py:attribute:: final_argument_whitespace :canonical: autodoc2.sphinx.summary.AutodocSummary.final_argument_whitespace :value: False .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.final_argument_whitespace .. py:attribute:: option_spec :canonical: autodoc2.sphinx.summary.AutodocSummary.option_spec :type: typing.ClassVar[dict[str, typing.Any]] :value: None .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.option_spec .. py:method:: run() -> list[docutils.nodes.Node] :canonical: autodoc2.sphinx.summary.AutodocSummary.run .. autodoc2-docstring:: autodoc2.sphinx.summary.AutodocSummary.run sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.sphinx.utils.rst000066400000000000000000000060121453104212700255540ustar00rootroot00000000000000:py:mod:`autodoc2.sphinx.utils` =============================== .. py:module:: autodoc2.sphinx.utils .. autodoc2-docstring:: autodoc2.sphinx.utils :allowtitles: Module Contents --------------- Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`load_config ` - .. autodoc2-docstring:: autodoc2.sphinx.utils.load_config :summary: * - :py:obj:`warn_sphinx ` - .. autodoc2-docstring:: autodoc2.sphinx.utils.warn_sphinx :summary: * - :py:obj:`get_database ` - .. autodoc2-docstring:: autodoc2.sphinx.utils.get_database :summary: * - :py:obj:`_warn ` - .. autodoc2-docstring:: autodoc2.sphinx.utils._warn :summary: * - :py:obj:`get_all_analyser ` - .. autodoc2-docstring:: autodoc2.sphinx.utils.get_all_analyser :summary: * - :py:obj:`nested_parse_generated ` - .. autodoc2-docstring:: autodoc2.sphinx.utils.nested_parse_generated :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`LOGGER ` - .. autodoc2-docstring:: autodoc2.sphinx.utils.LOGGER :summary: API ~~~ .. py:data:: LOGGER :canonical: autodoc2.sphinx.utils.LOGGER :value: None .. autodoc2-docstring:: autodoc2.sphinx.utils.LOGGER .. py:function:: load_config(app: sphinx.application.Sphinx, *, overrides: None | dict[str, typing.Any] = None, location: None | docutils.nodes.Element = None) -> autodoc2.config.Config :canonical: autodoc2.sphinx.utils.load_config .. autodoc2-docstring:: autodoc2.sphinx.utils.load_config .. py:function:: warn_sphinx(msg: str, subtype: autodoc2.utils.WarningSubtypes, location: None | docutils.nodes.Element = None) -> None :canonical: autodoc2.sphinx.utils.warn_sphinx .. autodoc2-docstring:: autodoc2.sphinx.utils.warn_sphinx .. py:function:: get_database(env: sphinx.environment.BuildEnvironment) -> autodoc2.db.Database :canonical: autodoc2.sphinx.utils.get_database .. autodoc2-docstring:: autodoc2.sphinx.utils.get_database .. py:function:: _warn(msg: str) -> None :canonical: autodoc2.sphinx.utils._warn .. autodoc2-docstring:: autodoc2.sphinx.utils._warn .. py:function:: get_all_analyser(env: sphinx.environment.BuildEnvironment) -> autodoc2.resolve_all.AllResolver :canonical: autodoc2.sphinx.utils.get_all_analyser .. autodoc2-docstring:: autodoc2.sphinx.utils.get_all_analyser .. py:function:: nested_parse_generated(state: docutils.parsers.rst.states.RSTStateMachine, content: list[str], source: str, line: int, *, match_titles: bool = False, base: docutils.nodes.Element | None = None) -> docutils.nodes.Element :canonical: autodoc2.sphinx.utils.nested_parse_generated .. autodoc2-docstring:: autodoc2.sphinx.utils.nested_parse_generated sphinx-autodoc2-0.5.0/docs/apidocs/autodoc2/autodoc2.utils.rst000066400000000000000000000156271453104212700242600ustar00rootroot00000000000000:py:mod:`autodoc2.utils` ======================== .. py:module:: autodoc2.utils .. autodoc2-docstring:: autodoc2.utils :allowtitles: Module Contents --------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`ItemData ` - .. autodoc2-docstring:: autodoc2.utils.ItemData :summary: * - :py:obj:`WarningSubtypes ` - .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`yield_modules ` - .. autodoc2-docstring:: autodoc2.utils.yield_modules :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`PROPERTY_TYPE ` - .. autodoc2-docstring:: autodoc2.utils.PROPERTY_TYPE :summary: * - :py:obj:`ARGS_TYPE ` - .. autodoc2-docstring:: autodoc2.utils.ARGS_TYPE :summary: API ~~~ .. py:data:: PROPERTY_TYPE :canonical: autodoc2.utils.PROPERTY_TYPE :value: None .. autodoc2-docstring:: autodoc2.utils.PROPERTY_TYPE .. py:data:: ARGS_TYPE :canonical: autodoc2.utils.ARGS_TYPE :value: None .. autodoc2-docstring:: autodoc2.utils.ARGS_TYPE .. py:class:: ItemData() :canonical: autodoc2.utils.ItemData Bases: :py:obj:`typing.TypedDict` .. autodoc2-docstring:: autodoc2.utils.ItemData .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.utils.ItemData.__init__ .. py:attribute:: type :canonical: autodoc2.utils.ItemData.type :type: typing_extensions.Required[str] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.type .. py:attribute:: full_name :canonical: autodoc2.utils.ItemData.full_name :type: typing_extensions.Required[str] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.full_name .. py:attribute:: doc :canonical: autodoc2.utils.ItemData.doc :type: typing_extensions.Required[str] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.doc .. py:attribute:: range :canonical: autodoc2.utils.ItemData.range :type: tuple[int, int] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.range .. py:attribute:: file_path :canonical: autodoc2.utils.ItemData.file_path :type: None | str :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.file_path .. py:attribute:: encoding :canonical: autodoc2.utils.ItemData.encoding :type: str :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.encoding .. py:attribute:: all :canonical: autodoc2.utils.ItemData.all :type: None | list[str] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.all .. py:attribute:: imports :canonical: autodoc2.utils.ItemData.imports :type: list[tuple[str, str | None]] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.imports .. py:attribute:: value :canonical: autodoc2.utils.ItemData.value :type: None | str | typing.Any :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.value .. py:attribute:: annotation :canonical: autodoc2.utils.ItemData.annotation :type: None | str :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.annotation .. py:attribute:: properties :canonical: autodoc2.utils.ItemData.properties :type: list[autodoc2.utils.PROPERTY_TYPE] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.properties .. py:attribute:: args :canonical: autodoc2.utils.ItemData.args :type: autodoc2.utils.ARGS_TYPE :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.args .. py:attribute:: return_annotation :canonical: autodoc2.utils.ItemData.return_annotation :type: None | str :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.return_annotation .. py:attribute:: bases :canonical: autodoc2.utils.ItemData.bases :type: list[str] :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.bases .. py:attribute:: doc_inherited :canonical: autodoc2.utils.ItemData.doc_inherited :type: str :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.doc_inherited .. py:attribute:: inherited :canonical: autodoc2.utils.ItemData.inherited :type: str :value: None .. autodoc2-docstring:: autodoc2.utils.ItemData.inherited .. py:class:: WarningSubtypes(*args, **kwds) :canonical: autodoc2.utils.WarningSubtypes Bases: :py:obj:`enum.Enum` .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes .. rubric:: Initialization .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.__init__ .. py:attribute:: CONFIG_ERROR :canonical: autodoc2.utils.WarningSubtypes.CONFIG_ERROR :value: 'config_error' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.CONFIG_ERROR .. py:attribute:: GIT_CLONE_FAILED :canonical: autodoc2.utils.WarningSubtypes.GIT_CLONE_FAILED :value: 'git_clone' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.GIT_CLONE_FAILED .. py:attribute:: MISSING_MODULE :canonical: autodoc2.utils.WarningSubtypes.MISSING_MODULE :value: 'missing_module' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.MISSING_MODULE .. py:attribute:: DUPLICATE_ITEM :canonical: autodoc2.utils.WarningSubtypes.DUPLICATE_ITEM :value: 'dup_item' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.DUPLICATE_ITEM .. py:attribute:: RENDER_ERROR :canonical: autodoc2.utils.WarningSubtypes.RENDER_ERROR :value: 'render' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.RENDER_ERROR .. py:attribute:: ALL_MISSING :canonical: autodoc2.utils.WarningSubtypes.ALL_MISSING :value: 'all_missing' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.ALL_MISSING .. py:attribute:: ALL_RESOLUTION :canonical: autodoc2.utils.WarningSubtypes.ALL_RESOLUTION :value: 'all_resolve' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.ALL_RESOLUTION .. py:attribute:: NAME_NOT_FOUND :canonical: autodoc2.utils.WarningSubtypes.NAME_NOT_FOUND :value: 'missing' .. autodoc2-docstring:: autodoc2.utils.WarningSubtypes.NAME_NOT_FOUND .. py:function:: yield_modules(folder: str | pathlib.Path, *, root_module: str | None = None, extensions: typing.Sequence[str] = ('.py', '.pyi'), exclude_dirs: typing.Sequence[str] = ('__pycache__', ), exclude_files: typing.Sequence[str] = ()) -> typing.Iterable[tuple[pathlib.Path, str]] :canonical: autodoc2.utils.yield_modules .. autodoc2-docstring:: autodoc2.utils.yield_modules sphinx-autodoc2-0.5.0/docs/apidocs/index.rst000066400000000000000000000004021453104212700207510ustar00rootroot00000000000000API Reference ============= This page contains auto-generated API reference documentation [#f1]_. .. toctree:: :titlesonly: autodoc2/autodoc2 aiida/aiida .. [#f1] Created with `sphinx-autodoc2 `_ sphinx-autodoc2-0.5.0/docs/autodoc.md000066400000000000000000000032071453104212700174540ustar00rootroot00000000000000# `autodoc-object` directive The `autodoc-object` directive can be used to render the documentation for a single Python object. It takes a single argument, the fully qualified name of the object that should be rendered. Using the `:literal:` option, the pre-rendered content will be rendered as a literal block, and the `:literal-lexer:` option can be used to specify the lexer to use for syntax highlighting. The directive can contain content, which is read as [TOML](https://toml.io) and will override any of the {ref}`global configuration ` options (without the `autodoc2_` prefix). ## Literal representation For example: ````restructuredtext .. autodoc2-object:: autodoc2.sphinx.docstring._example :literal: :literal-lexer: restructuredtext render_plugin = "rst" no_index = true ```` creates: ```{autodoc2-object} autodoc2.sphinx.docstring._example :literal: :literal-lexer: restructuredtext render_plugin = "rst" no_index = true ``` ## Rendered representation For example: ````restructuredtext .. autodoc2-object:: autodoc2.sphinx.docstring._example render_plugin = "rst" no_index = true ```` creates: ```{autodoc2-object} autodoc2.sphinx.docstring._example render_plugin = "myst" no_index = true ``` ## Rendered representation (signature only) Or without annotations and docstring: ````restructuredtext .. autodoc2-object:: autodoc2.sphinx.docstring._example render_plugin = "rst" no_index = true annotations = false docstrings = false ```` creates: ```{autodoc2-object} autodoc2.sphinx.docstring._example render_plugin = "myst" no_index = true annotations = false docstrings = false ``` sphinx-autodoc2-0.5.0/docs/autodoc_diff.md000066400000000000000000000027321453104212700204460ustar00rootroot00000000000000(autodoc-differences)= # Differences from `sphinx.ext.autodoc` The the main differences between `sphinx-autodoc2` and [`sphinx.ext.autodoc`](https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#module-sphinx.ext.autodoc): 1. `sphinx-autodoc2` analyses the source code using **static analysis**, rather than **dynamic introspection**. - This means that it can be used to document code that is not importable, or that is not installed in the same environment as the documentation. - The analysis can infer information not available at runtime, such as type strings of attributes and imports under `TYPE_CHECKING` block. - The analysis does not lead to any un-desirable side-effects, that could occur on importing the code. 2. `sphinx-autodoc2` integrates auto-documentation within the sphinx build process, rather than requiring the separate `sphinx-apidoc` CLI tool. - This allows it to optimise rebuilds, by only re-generating documentation for objects that have changed. 3. `sphinx-autodoc2` allows for docstrings not written in RestructuredText, principally [MyST](https://myst-parser.readthedocs.io). - `sphinx.ext.autodoc` assumes that your docstings are written in RestructuredText, and that you are using the directives in a RestructuredText document. - `sphinx-autodoc2` allows you to write your docstrings in either RestructuredText or MyST, and to use the directives in either RestructuredText or MyST documents. sphinx-autodoc2-0.5.0/docs/conf.py000066400000000000000000000147051453104212700170000ustar00rootroot00000000000000"""The configuration for this packages documentation.""" from datetime import date from autodoc2 import __version__ # -- Project information ----------------------------------------------------- project = "sphinx-autodoc2" version = __version__ copyright = f"{date.today().year}, Chris Sewell" author = "Chris Sewell" # -- General configuration --------------------------------------------------- extensions = [ "myst_parser", "autodoc2", "sphinx.ext.intersphinx", "sphinx.ext.viewcode", "sphinx.ext.todo", # for aiida ] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), "sphinx": ("https://www.sphinx-doc.org/en/master", None), } myst_enable_extensions = ["fieldlist", "deflist"] # -- HTML output ------------------------------------------------- html_theme = "furo" html_title = "sphinx-autodoc2" # html_logo = "logo.svg" html_theme_options = { "top_of_page_button": "edit", "source_repository": "https://github.com/chrisjsewell/sphinx-autodoc2/", "source_branch": "main", "source_directory": "docs/", "announcement": "Just released 🎉, feedback welcomed at " "sphinx-autodoc2", } # --- Autodoc configuration ------ autodoc2_packages = [ "../src/autodoc2", { "path": "aiida", "from_git_clone": ( "https://github.com/aiidateam/aiida-core.git", "v2.2.2", ), "exclude_dirs": [ "__pycache__", # "migrations", ], }, ] autodoc2_render_plugin_regexes = [(r"autodoc2\.db", "myst")] autodoc2_replace_annotations = [ ("re.Pattern", "typing.Pattern"), ] autodoc2_docstring_parser_regexes = [ (r"autodoc2\.sphinx\.docstring\._example", "myst"), ] autodoc2_deprecated_module_regexes = [ r"aiida\.parsers\.parser", ] autodoc2_module_all_regexes = [r"aiida\.[^\.]+"] autodoc2_skip_module_regexes = [ r"aiida\.[^\.]+\..*", r"aiida\.(__main__|calculations|restapi|sphinxext|storage|workflows)", ] # autodoc2_docstrings = "all" nitpick_ignore_regex = [ (r"py:.*", r"typing_extensions.*"), (r"py:.*", r"astroid.*"), (r"py:.*", r"docutils.*"), # TODO for some reason in: # .. py:function:: format_args(args_info: autodoc2.utils.ARGS_TYPE ... # ARGS_TYPE is treated as a class rather than data ("py:class", r"autodoc2\.utils\..*_TYPE"), # from aiida (r"py:.*", r"types\.FunctionType"), ( r"py:.*", r"(aiida|circus|click|disk_objectstore|importlib_metadata|kiwipy|plumpy|pgsu|requests).*", ), (r"py:.*", r"(DaemonException|Manager|PersistenceError)"), (r"py:.*", r"QueryBuilder\._get_ormclass"), ] # --- Additional configuration ---- import typing as t # noqa: E402 from autodoc2.config import CONFIG_PREFIX, Config, PackageConfig # noqa: E402 from docutils import nodes # noqa: E402 from sphinx.application import Sphinx # noqa: E402 from sphinx.util.docutils import SphinxDirective # noqa: E402 def setup(app: Sphinx) -> None: app.add_object_type( "confval", # directivename "confval", # rolename "pair: %s; configuration value", # indextemplate ) app.add_directive("autodoc2-config", CreateConfigDirective) app.add_directive("autodoc2-config-package", CreateConfigPkgDirective) class CreateConfigDirective(SphinxDirective): """Document the configuration options.""" def run(self) -> t.List[nodes.Node]: text = [] config = Config() for name, value, field in config.as_triple(): text.append(f"``````{{confval}} {CONFIG_PREFIX}{name}") text.append(f'{field.metadata.get("help", "")}') text.append("") # if "category" in field.metadata: # text.append(f"**category**: { field.metadata['category']}") # text.append("") type_ = type_to_string(field.metadata.get("doc_type", field.type)) text.append(f"**type**: {type_}") text.append("") default_str = value if isinstance(value, str) else repr(value) if len(default_str.splitlines()) == 1: text.append(f"**default**: ``{default_str}``") else: text.append("**default**:") text.append("") text.append("```") text.append(default_str) text.append("```") text.append("") text.append("``````") base_node = nodes.Element() self.state.nested_parse(text, self.content_offset, base_node) return base_node.children # type: ignore class CreateConfigPkgDirective(SphinxDirective): """Document the package-level configuration options.""" def run(self) -> t.List[nodes.Node]: base_node = nodes.Element() text = [] pkg_config = PackageConfig("") for name, value, field in pkg_config.as_triple(): text.append(f"``````{{confval}} {CONFIG_PREFIX}packages[{name}]") text.append(f'{field.metadata.get("help", "")}') text.append("") type_ = type_to_string(field.type) text.append(f"**type**: {type_}") text.append("") default_str = value if isinstance(value, str) else repr(value) if not default_str: pass elif len(default_str.splitlines()) < 2: text.append(f"**default**: ``{default_str}``") else: text.append("**default**:") text.append("") text.append("```") text.append(default_str) text.append("```") text.append("``````") self.state.nested_parse(text, self.content_offset, base_node) return base_node.children # type: ignore def type_to_string(type_: t.Any) -> str: """Convert a type to a string.""" # TODO just keeping it simple for now but can we do this with astroid!? if isinstance(type_, tuple): return " or ".join(type_to_string(t) for t in type_) if type_ is type(None): return "``None``" if type_ is str: return "``str``" if type_ is int: return "``int``" if type_ is bool: return "``bool``" if type_ is float: return "``float``" if type_ is list: return "``list``" type_string = str(type_) if "RstRender" in type_string: return '``"rst"``' return type_string sphinx-autodoc2-0.5.0/docs/config.md000066400000000000000000000010531453104212700172600ustar00rootroot00000000000000# Configuration (config:global)= ## Global This section describes the configuration options for `sphinx-autodoc2`, that you can set in the `conf.py` file. ```{autodoc2-config} ``` (config:package)= ## Package analysis In the `autodoc2_packages` configuration option, an item can be a string, or a dictionary such as: ```python autodoc2_packages = [ "../src/autodoc2", { "path": "../src/other/module", "module": "other.module", }, ] ``` The following are keys allowed in the dictionary: ```{autodoc2-config-package} ``` sphinx-autodoc2-0.5.0/docs/docstrings.md000066400000000000000000000041271453104212700201770ustar00rootroot00000000000000# `autodoc2-docstring` directive One of the key features of autodoc2 is the ability to identify object docstrings and render them in the documentation, using a given parser. The `autodoc2-docstring` directive is used to render a docstring. It takes a single argument, the fully qualified name of the object whose docstring should be rendered. Using the `:literal:` option, the docstring will be rendered as a literal block. - the `:literal-linenos:` option can be used to enable line numbers for the literal block, based on the line number in the source document, - the `:literal-lexer:` option can be used to specify the lexer to use for syntax highlighting. ````restructuredtext .. autodoc2-docstring:: autodoc2.sphinx.docstring._example :literal: :literal-linenos: :literal-lexer: markdown ```` creates: ```{autodoc2-docstring} autodoc2.sphinx.docstring._example :literal: :literal-linenos: :literal-lexer: markdown ``` Omitting the `:literal:` option will render the docstring as a nested syntax block. - the `parser` option can be used to specify the parser to use for the docstring, such as `myst`, `rst` or a the fully qualified name of a custom parser class, If not specified the docstring will be rendered using the current parser. - the `:allowtitles:` option can be used to allow the docstring to contain heading, and can be used if the `autodoc2-docstring` is at the top level of the document. ````restructuredtext .. autodoc2-docstring:: autodoc2.sphinx.docstring._example :parser: myst :allowtitles: ```` creates: ```{autodoc2-docstring} autodoc2.sphinx.docstring._example :parser: myst :allowtitles: ``` ## Specifying the parser for auto-generated documentation When auto-documenting source code, by default the docstring will be rendered using the current parser. To list specific parsers for specific objects, you can use the {confval}`autodoc2_docstring_parser_regexes` configuration option. ```python autodoc2_docstring_parser_regexes = [ (r"autodoc2\.sphinx\.docstring\._example", "myst"), ] ``` You can see this in action at {py:func}`autodoc2.sphinx.docstring._example` sphinx-autodoc2-0.5.0/docs/index.md000066400000000000000000000040371453104212700171270ustar00rootroot00000000000000# sphinx-autodoc2 [![GitHub Repo stars](https://img.shields.io/github/stars/chrisjsewell/sphinx-autodoc2?label=Like%20and%20Share%21&style=social)](https://github.com/chrisjsewell/sphinx-autodoc2) [![PyPI](https://img.shields.io/pypi/v/sphinx-autodoc2?label=PyPI&logo=pypi&style=social)](https://pypi.org/project/sphinx-autodoc2/) `sphinx-autodoc2` is a Sphinx extension that automatically generates API documentation for your Python packages. Static analysis of Python code : There is no need to install your package to generate the documentation, and `sphinx-autodoc2` will correctly handle `if TYPE_CHECKING` blocks and other typing only features. : Sphinx parse warnings correctly point to the source code line, and not the generated documentation. : You can even document packages from outside the project (via `git clone`)! Integrated API documentation generation : Document genration is integrated with the Sphinx build process, rather than requiring the separate `sphinx-apidoc` CLI tool. Optimized for rebuilds : Analysis of packages and file rendering are cached, so you can use `sphinx-autodoc2` in your development workflow. Support for `__all__` : `sphinx-autodoc2` can follow `__all__` variable, to only document the public API. Support for both `rst` and `md` docstrings : `sphinx-autodoc2` supports both `rst` and `md` ([MyST](https://myst-parser.readthedocs.io)) docstrings, which can be mixed within the same project. Highly configurable : `sphinx-autodoc2` is highly configurable, with many options to control the analysis and output of the documentation. Decoupled analysis and rendering : The analysis and rendering of the documentation are decoupled, and not dependent on Sphinx. : This means that you can use `sphinx-autodoc2` to generate documentation outside of Sphinx (see the `autodoc2` command line tool). Get started with the [Quickstart Guide](quickstart.md) ⏩ Or checkout the the [Example API Documentation](apidocs/index.rst) ✨ ```{toctree} :maxdepth: 2 quickstart docstrings summary autodoc config autodoc_diff apidocs/index ``` sphinx-autodoc2-0.5.0/docs/quickstart.md000066400000000000000000000172601453104212700202140ustar00rootroot00000000000000# Quickstart This section describes how to get started with `sphinx-autodoc2` 🎉 ## Installation Install from PyPI: ```{code-block} bash pip install sphinx-autodoc2 ``` ## Enabling the extension Add `autodoc2` to the `extensions` list in your `conf.py` file and, as as a minimum, set the {confval}`autodoc2_packages` configuration option to the list of packages you want to document: ```python extensions = [ "autodoc2", ] autodoc2_packages = [ "../my_package", ] ``` This will generate documentation for the `my_package` package, and all of its sub-packages and modules, within the `apidocs` (or {confval}`autodoc2_output_dir`) directory, which you can include in a `toctree` directive. ```restructuredtext .. toctree:: :maxdepth: 2 apidocs/index ``` ```{seealso} {ref}`config:package` for more information on how to configure the packages to document. ``` ```{tip} If you don't want to include the `apidocs` directory in your repository, you may want to add a `.gitignore` in the `apidocs` folder with `*` in it. ``` ## Manually documenting select objects `sphinx-autodoc2` can be used in one or both of two "modes": 1. **auto mode** (default) - Automatically generate files for all modules and packages specified by the {confval}`autodoc2_packages` configuration option. 2. **manual mode** - Use the [`autodoc2-object` directive](autodoc.md) to manually specify which objects to document. To turn off auto mode, set the {confval}`autodoc2_packages[auto_mode]` configuration option to `False`: ```python extensions = [ "autodoc2", ] autodoc2_packages = [ { "path": "../my_package", "auto_mode": False, }, ] ``` You can even render only the docstring of any object, see: [](docstrings.md). ## Ignoring autodoc2 warnings When running `autodoc2` in Sphinx, you may see warnings such as: ```console WARNING: autodoc2_packages must not be empty [autodoc2.config_error] ``` All warnings emitted by `sphinx-autodoc2` will have the `autodoc2` type and a related subtype, so you can ignore them by adding them to the [Sphinx `suppress_warnings` configuration](https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-suppress_warnings) in your `conf.py`: ```python suppress_warnings = [ "autodoc2.*", # suppress all "autodoc2.config_error", # suppress specific ] ``` ## Dealing with `"reference target not found"` warnings When running `autodoc2` in Sphinx (in nitpick mode), you may see warnings such as: ```console path/to/module.rst:62: WARNING: py:class reference target not found: package.module.MyClass ``` These are potentially from type annotations, for packages that you have not included in your [intersphinx configuration](https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html). Alternatively, they may be from imports that are named differently in the external project's intersphinx inventory, For example, if you import `MyClass` from `package`, but the external project exposes it only as `package.module.MyClass`. In this case, you can use the {confval}`autodoc2_replace_annotations` and {confval}`autodoc2_replace_bases` configuration options to replace the annotation/class base with the correct reference. ```python autodoc2_replace_annotations = { "package.MyClass": "package.module.MyClass", } autodoc2_replace_bases = { "package.MyClass": "package.module.MyClass", } ``` If you cannot, or do not, wish to fix them, then you can suppress these warnings using the [`nitpick_ignore` or `nitpick_ignore_regex`](https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-nitpick_ignore) configurations. In your `conf.py`: ```python # ignore all warnings from this package nitpick_ignore_regex = [ ("py:.*", r"package\..*"), ] # ignore a specific warning nitpick_ignore = [ ("py:class", "package.module.MyClass"), ] ``` ```{tip} To find out what references an external project exposes to intersphinx, you can use the `myst-inv` command line tool. See [MyST cross-project links](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#cross-project-inventory-links). ``` ## Documenting only the public API (*via* `__all__`) By default, `sphinx-autodoc2` will document all objects within each package/module, and reference direct children of them. If you want to document only the public API of your package, you can use the `__all__` variables to specify which objects to document. For example: ```python from .my_module import MyClass __all__ = [ "MyClass", "my_function", ] def my_function(): ... ``` ```{seealso} The [Python import documentation](https://docs.python.org/3/reference/simple_stmts.html#import) ``` To enable this feature, set the {confval}`autodoc2_module_all_regexes` configuration option in your `conf.py`: ```python autodoc2_module_all_regexes = [ r"my_package\..*", ] ``` You can see an axample of this in the [Example documentation of the `aiida` package](aiida). Note, when following `__all__` imports, since the `:canonical:` option is added to each object, [intersphinx](https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html) will record both the canonical and non-canonical names of the object. For example, if there is a package `my_package` with the following `__init__.py`: ```python from .my_module import MyClass __all__ = [ "MyClass", ] ``` Then you will be able to reference `MyClass` in your documentation as either `my_package.MyClass` or `my_package.my_module.MyClass`. ## Using Markdown (MyST) docstrings By default, `sphinx-autodoc2` will generate the file for each module/package as `.rst`, and the docstrings of each object within that module will also be interpreted as `rst`. If you want to use Markdown ([MyST](https://myst-parser.readthedocs.io)) docstrings, you can set the {confval}`autodoc2_docstring_parser_regexes` for objects that use Markdown docstrings: ```python autodoc2_docstring_parser_regexes = [ # this will render all docstrings as Markdown (r".*", "myst"), # this will render select docstrings as Markdown (r"autodoc2\..*", "myst"), ] ``` Alternatively, you can set the {confval}`autodoc2_render_plugin` configuration option in your `conf.py`: ```python autodoc2_render_plugin = "myst" ``` This will now create all files with the ".md" extension, and thus the docstrings will be interpreted as MyST by default. To specify at a module level which files to render as Markdown or RestructuredText, you can set the {confval}`autodoc2_render_plugin_regexes` configuration option in your `conf.py`: ```python autodoc2_render_plugin_regexes = [ (r"autodoc2\.db", "myst") ] ``` Which for example, created this page using Markdown docstrings: {py:mod}`autodoc2.db` ````{tip} If you are looking to use Markdown docstrings, with the default [sphinx-style](https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#info-field-lists), for example: ```python def my_function(a: str, b: int) -> bool: """This is my function. :param arg1: The first argument. :param arg2: The second argument. :return: The return value. """ ``` Then you should enable the [MyST `fieldlist` extension](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#field-lists) in your `conf.py`: ```python myst_enable_extensions = ["fieldlist"] ``` ```{important} It is advised that you ensure the `mdit-py-plugins`, which `myst-parser` depends on, is pinned to `>0.3.4`, since this version introduces improvements to the `fieldlist` extension (see [`executablebooks/mdit-py-plugins#65`](https://github.com/executablebooks/mdit-py-plugins/pull/65)) ``` ```` ## Command Line Tool If installed with the `cli` extra, `sphinx-autodoc2` will install the `autodoc2` command line tool. ```console $ pip install sphinx-autodoc2[cli] $ autodoc2 --help ``` sphinx-autodoc2-0.5.0/docs/summary.md000066400000000000000000000022751453104212700175170ustar00rootroot00000000000000# `autodoc2-summary` directive The `autodoc2-summary` directive is used to render a summary of a list of objects. This is useful for creating a table of contents for a module, or a list of objects in a package. For example, the following: ````restructuredtext .. autodoc2-summary:: :renderer: myst aiida.orm.Node ~aiida.orm.Dict autodoc2.sphinx.docstring._example my example ```` creates: ```{autodoc2-summary} :renderer: myst aiida.orm.Node ~aiida.orm.Dict autodoc2.sphinx.docstring._example my example ``` Note that fully qualified names can be used to refer to objects in other packages, and they will also resolve against public API names, i.e. if the object is specified in an `__all__` variable. Any text after the fully qualified name will be used as the title for the object, or alternatively, if the name begins with `~` then the last component will be used as the title. The `:renderer:` option can also be used to specify the renderer to use for the summary. The summary renders the first block of text in the docstring of each object, these renderings are governed by the {confval}`autodoc2_docstrings` and {confval}`autodoc2_docstring_parser_regexes` configuration option. sphinx-autodoc2-0.5.0/pyproject.toml000066400000000000000000000045611453104212700174640ustar00rootroot00000000000000[build-system] requires = ["flit_core >=3.2,<4"] build-backend = "flit_core.buildapi" [tool.flit.module] name = "autodoc2" [project] name = "sphinx-autodoc2" dynamic = ["version", "description"] authors = [{name = "Chris Sewell", email = "chrisj_sewell@hotmail.com"}] license = {file = "LICENSE"} classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Framework :: Sphinx :: Extension", ] keywords = ["sphinx", "autodoc", "extension", "documentation"] urls = {Home = "https://github.com/chrisjsewell/sphinx-autodoc2"} requires-python = ">=3.8" dependencies = [ "astroid>=2.7,<4", "tomli; python_version<'3.11'", "typing-extensions" ] [project.optional-dependencies] cli = ["typer[all]"] # we don't put a hard dependency on sphinx, # because anyway the core can be run without it sphinx = ["sphinx>=4.0.0"] testing = [ "pytest", "pytest-regressions", "pytest-cov", "sphinx>=4.0.0,<7", ] docs = [ "sphinx>=4.0.0", "furo", "myst-parser" ] [project.scripts] autodoc2 = "autodoc2.cli:app_main" [tool.ruff] extend-select = ["B0", "C4", "I", "ICN", "ISC", "N", "RUF", "SIM", "T20", "UP"] [tool.ruff.per-file-ignores] # ignore: Do not perform function call `typer.Option` in argument defaults "src/autodoc2/cli.py" = ["B008"] "tests/test_analyse_module.py" = ["E501"] [tool.ruff.lint.isort] force-sort-within-sections = true [tool.mypy] show_error_codes = true strict = true exclude = ['^tests/.*'] [[tool.mypy.overrides]] module = [ "astroid.*", # https://github.com/PyCQA/astroid/issues/1287 "docutils.*", "tomllib.*", "tomli.*", ] ignore_missing_imports = true [[tool.mypy.overrides]] module = ["autodoc2.sphinx.autodoc"] # the try/except for tomllib/tomli causes different behaviour # on different python versions warn_unused_ignores = false [tool.pytest.ini_options] testpaths = [ "tests", ] [tool.tox] legacy_tox_ini = """ [tox] envlist = py38 [testenv] usedevelop = true [testenv:py{38,39,310,311}] extras = testing commands = pytest {posargs} [testenv:cli-py{38,39,310,311}] extras = cli commands = autodoc2 {posargs} [testenv:docs] extras = docs passenv = TERM allowlist_externals = echo commands = sphinx-build {posargs} -nW --keep-going -b html -d docs/_build/doctrees docs docs/_build/html commands_post = echo "Documentation available at: docs/_build/html/index.html" """ sphinx-autodoc2-0.5.0/src/000077500000000000000000000000001453104212700153315ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/src/autodoc2/000077500000000000000000000000001453104212700170515ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/src/autodoc2/__init__.py000066400000000000000000000003441453104212700211630ustar00rootroot00000000000000"""Analyse a python project and create documentation for it.""" __version__ = "0.5.0" def setup(app): # type: ignore """Entrypoint for sphinx.""" from .sphinx.extension import setup as _setup return _setup(app) sphinx-autodoc2-0.5.0/src/autodoc2/analysis.py000066400000000000000000000262541453104212700212570ustar00rootroot00000000000000"""Analyse of Python code using astroid. The core function though `analyse_module` is agnostic to the implementation, It simply yields `ItemData` typed-dicts. """ from __future__ import annotations from dataclasses import dataclass, replace import itertools import os from pathlib import Path import sys import typing as t from astroid import nodes from astroid.builder import AstroidBuilder from . import astroid_utils if t.TYPE_CHECKING: from .utils import PROPERTY_TYPE, ItemData __all__ = ["analyse_module"] def analyse_module( file_path: Path, name: str, exclude_external_imports: t.Pattern[str] | None = None ) -> t.Iterable[ItemData]: """Analyse the given module and yield items. :param file_path: The path to the module. :param name: The name of the module, e.g. "foo.bar". :param record_external_imports: If given, record these external imports on the module. These are only used to determine what is exposed by __all__, which is only usually objects in the same package. But if you want to expose objects from other packages, you can use this to record them. """ # TODO expose record_external_imports everywhere analyse_module is used node = AstroidBuilder().file_build(os.fsdecode(file_path), name) yield from walk_node( node, State(node.name.split(".", 1)[0], [], exclude_external_imports) ) _dc_kwargs: dict[str, bool] = {"frozen": True} if sys.version_info >= (3, 10): _dc_kwargs["slots"] = True @dataclass(**_dc_kwargs) class State: package_name: str name_stack: list[str] exclude_external_imports: t.Pattern[str] | None def copy(self, **kwargs: t.Any) -> State: """Copy the state and update the given attributes.""" return replace(self, **kwargs) def _get_full_name(name: str, name_stack: list[str]) -> str: """Get the full name of a node.""" return ".".join([*name_stack, name]) def _get_parent_name(name: str) -> str: """Get the parent name of a node.""" return ".".join(name.split(".")[:-1]) def fix_docstring_indent(s: None | str, tabsize: int = 8) -> str: """Remove common leading indentation, where the indentation of the first line is ignored. """ if s is None: return "" # TODO improve docstring indentation; # it would be better if we could use the indentation of the docstring, # i.e. `"""...` lines = s.expandtabs(tabsize).splitlines() # Find minimum indentation of any non-blank lines after ignored lines. margin = sys.maxsize for line in lines[1:]: content = len(line.lstrip()) if content: indent = len(line) - content margin = min(margin, indent) # Remove indentation from the first line. if len(lines): lines[0] = lines[0].lstrip() if margin < sys.maxsize: for i in range(1, len(lines)): lines[i] = lines[i][margin:] # Remove any leading blank lines. while lines and not lines[0]: lines.pop(0) return "\n".join(lines) def walk_node(node: nodes.NodeNG, state: State) -> t.Iterable[ItemData]: func = _FUNC_MAPPER.get(type(node)) if func is not None: yield from func(node, state) def yield_module(node: nodes.Module, state: State) -> t.Iterable[ItemData]: path = node.path if isinstance(node.path, list): path = node.path[0] if node.path else None parent: ItemData = { "type": "package" if node.package else "module", "full_name": node.name, "doc": fix_docstring_indent( node.doc_node.value if node.doc_node is not None else None ), "file_path": path, "encoding": node.file_encoding, "all": astroid_utils.get_module_all(node), } for child in node.get_children(): if isinstance(child, nodes.ImportFrom): # Note, the code below restricts to local imports, which was in sphinx-autoapi # However, we potentially need all imports, to be able to resolve __all__ exports # (i.e. the public API) since packages could expose aspects of other packages # To limit what we store in the database, we allow for filtering out imports # for example, it might be reasonably assumed that nothing imported from the typing module # is part of the public API if not ( child.level or child.modname == state.package_name or child.modname.startswith(state.package_name + ".") ) and ( child.modname and state.exclude_external_imports and state.exclude_external_imports.fullmatch(child.modname) ): continue imports = parent.setdefault("imports", []) for name, alias in child.names: original_path = astroid_utils.get_full_import_name(child, alias or name) imports.append((original_path, alias)) yield parent for child in node.get_children(): yield from walk_node(child, state.copy(name_stack=[node.name])) def yield_annotation_assign( node: nodes.AnnAssign, state: State ) -> t.Iterable[ItemData]: """Yield data for an annotation assignment node.""" if not isinstance(node.target, nodes.AssignAttr): yield from _yield_assign(node, state) def yield_assign(node: nodes.Assign, state: State) -> t.Iterable[ItemData]: """Yield data for an assignment node.""" if not any(isinstance(target, nodes.AssignAttr) for target in node.targets): yield from _yield_assign(node, state) def _yield_assign( node: nodes.Assign | nodes.AnnAssign, state: State ) -> t.Iterable[ItemData]: """Yield data for an assignment node.""" doc = "" doc_node = node.next_sibling() if isinstance(doc_node, nodes.Expr) and isinstance(doc_node.value, nodes.Const): doc = doc_node.value.value type_ = "data" if isinstance(node.scope(), nodes.ClassDef) or astroid_utils.is_constructor( node.scope() ): type_ = "attribute" assign_value = astroid_utils.get_assign_value(node) if not assign_value: return target = assign_value[0] value = assign_value[1] annotation = astroid_utils.get_assign_annotation(node) data: ItemData = { "type": type_, "full_name": _get_full_name(target, state.name_stack), "doc": fix_docstring_indent(doc), "value": value, "annotation": annotation, } if node.fromlineno is not None and node.tolineno is not None: data["range"] = (node.fromlineno, node.tolineno) yield data def yield_function_def( node: nodes.FunctionDef | nodes.AsyncFunctionDef, state: State ) -> t.Iterable[ItemData]: """Yield data for a function definition node.""" if astroid_utils.is_decorated_with_property_setter(node): return if astroid_utils.is_decorated_as_singledispatch_register(node): # functools.singledispatch registers, we just ignore these for now, # since they are not really functions return type_ = "method" properties: list[PROPERTY_TYPE] = [] if node.type == "function": type_ = "function" if isinstance(node, nodes.AsyncFunctionDef): properties.append("async") if astroid_utils.is_decorated_with_singledispatch(node): properties.append("singledispatch") elif astroid_utils.is_decorated_with_property(node): type_ = "property" if node.type == "classmethod": properties.append(node.type) if node.is_abstract(pass_is_abstract=False): properties.append("abstractmethod") else: # "__new__" method is implicit classmethod if node.type in ("staticmethod", "classmethod") and node.name != "__new__": properties.append(node.type) if node.is_abstract(pass_is_abstract=False): properties.append("abstractmethod") if isinstance(node, nodes.AsyncFunctionDef): properties.append("async") if astroid_utils.is_decorated_with_overload(node): type_ = "overload" doc, doc_inherited = astroid_utils.get_func_docstring(node) data: ItemData = { "type": type_, "full_name": _get_full_name(node.name, state.name_stack), "doc": fix_docstring_indent(doc), "args": astroid_utils.get_args_info(node.args), "return_annotation": astroid_utils.get_return_annotation(node), } if doc_inherited is not None: data["doc_inherited"] = doc_inherited if node.fromlineno is not None and node.tolineno is not None: data["range"] = (node.fromlineno, node.tolineno) if properties: data["properties"] = properties yield data if node.name == "__init__": for child in node.get_children(): if isinstance(child, (nodes.Assign, nodes.AnnAssign)): child_data = _yield_assign(child, state) for data in child_data: if data["doc"]: yield data def yield_class_def(node: nodes.ClassDef, state: State) -> t.Iterable[ItemData]: """Yield data for a class definition node.""" type_ = "class" if astroid_utils.is_exception(node): type_ = "exception" basenames = [astroid_utils.resolve_annotation(base) for base in node.bases] doc, doc_inherited = astroid_utils.get_class_docstring(node) parent: ItemData = { "type": type_, "full_name": _get_full_name(node.name, state.name_stack), "bases": basenames, "doc": fix_docstring_indent(doc), } if doc_inherited is not None: parent["doc_inherited"] = doc_inherited if node.fromlineno is not None and node.tolineno is not None: parent["range"] = (node.fromlineno, node.tolineno) yield parent new_state = state.copy(name_stack=[*state.name_stack, node.name]) overridden: set[str] = set() # a list of methods overridden by class inheritance for base in itertools.chain(iter((node,)), node.ancestors()): seen: set[str] = set() if base.qname() in ( "__builtins__.object", "builtins.object", "builtins.type", ): continue for child in base.get_children(): name = getattr(child, "name", None) if isinstance(child, (nodes.Assign, nodes.AnnAssign)): assign_value = astroid_utils.get_assign_value(child) if not assign_value: continue name = assign_value[0] if not name or name in overridden: continue seen.add(name) for ancestor in walk_node(child, new_state): if ( _get_parent_name(ancestor["full_name"]) == parent["full_name"] ) and (base is not node): ancestor["inherited"] = base.qname() yield ancestor overridden.update(seen) _FUNC_MAPPER: dict[ nodes.NodeNG, t.Callable[[nodes.NodeNG, State], t.Iterable[ItemData]] ] = { nodes.Module: yield_module, nodes.AnnAssign: yield_annotation_assign, nodes.Assign: yield_assign, nodes.FunctionDef: yield_function_def, nodes.AsyncFunctionDef: yield_function_def, nodes.ClassDef: yield_class_def, } sphinx-autodoc2-0.5.0/src/autodoc2/astroid_utils.py000066400000000000000000000500761453104212700223200ustar00rootroot00000000000000"""Utilities for working with astroid nodes. """ from __future__ import annotations import builtins import itertools import re import typing as t import astroid from astroid import nodes def resolve_import_alias(name: str, import_names: list[tuple[str, str | None]]) -> str: """Resolve a name from an aliased import to its original name. :param name: The potentially aliased name to resolve. :param import_names: The pairs of original names and aliases from the import. :returns: The original name. """ resolved_name = name for import_name, imported_as in import_names: if import_name == name: break if imported_as == name: resolved_name = import_name break return resolved_name def is_constructor(node: nodes.NodeNG) -> bool: """Check if the function is a constructor.""" return ( node.parent and isinstance(node.parent.scope(), nodes.ClassDef) and node.name == "__init__" ) def get_full_import_name(import_from: nodes.ImportFrom, name: str) -> str: """Get the full path of a name from a ``from x import y`` statement. :returns: The full import path of the name. """ partial_basename = resolve_import_alias(name, import_from.names) module_name = import_from.modname if import_from.level: module = import_from.root() assert isinstance(module, nodes.Module) module_name = module.relative_to_absolute_name( import_from.modname, level=import_from.level ) return f"{module_name}.{partial_basename}" def get_assign_value(node: nodes.NodeNG) -> None | tuple[str, t.Any]: """Get the name and value of the assignment of the given node. Assignments to multiple names are ignored, as per PEP 257. :param node: The node to get the assignment value from. :returns: The name that is assigned to, and the value assigned to the name (if it can be converted). """ try: targets = node.targets except AttributeError: targets = [node.target] if len(targets) == 1: target = targets[0] if isinstance(target, nodes.AssignName): name = target.name elif isinstance(target, nodes.AssignAttr): name = target.attrname else: return None return (name, get_const_values(node.value)) return None def get_const_values(node: nodes.NodeNG) -> t.Any: """Get the value of a constant node.""" # TODO its not ideal that this goes to None if not understood # TODO better typing value: t.Any = None if isinstance(node, (nodes.List, nodes.Tuple)): new_value = [] for element in node.elts: if isinstance(element, nodes.Const): new_value.append(element.value) elif isinstance(element, (nodes.List, nodes.Tuple)): new_value.append(get_const_values(element)) else: break else: value = new_value if isinstance(node, nodes.Tuple): value = tuple(new_value) elif isinstance(node, nodes.Const): value = node.value elif isinstance(node, nodes.Call): # TODO represent also the arguments value = f"{node.func.repr_name()}(...)" return value def get_assign_annotation(node: nodes.Assign) -> None | str: """Get the type annotation of the assignment of the given node. :returns: The type annotation as a string, or None if one does not exist. """ annotation_node = None try: annotation_node = node.annotation except AttributeError: annotation_node = node.type_annotation if annotation_node is None: return None return resolve_annotation(annotation_node) def resolve_annotation(annotation: nodes.NodeNG) -> str: """Resolve a type annotation to a string.""" resolved: str if isinstance(annotation, nodes.Const): resolved = resolve_qualname(annotation, str(annotation.value)) elif isinstance(annotation, nodes.Name): resolved = resolve_qualname(annotation, annotation.name) elif isinstance(annotation, nodes.Attribute): resolved = resolve_qualname(annotation, annotation.as_string()) elif isinstance(annotation, nodes.Subscript): value = resolve_annotation(annotation.value) slice_node = annotation.slice try: if isinstance(slice_node, nodes.Index): slice_node = slice_node.value except AttributeError: pass # removed in astroid 3 if isinstance(slice_node, nodes.Tuple): slice_ = ", ".join(resolve_annotation(elt) for elt in slice_node.elts) else: slice_ = resolve_annotation(slice_node) resolved = f"{value}[{slice_}]" elif isinstance(annotation, nodes.Tuple): resolved = ( "(" + ", ".join(resolve_annotation(elt) for elt in annotation.elts) + ")" ) elif isinstance(annotation, nodes.List): resolved = ( "[" + ", ".join(resolve_annotation(elt) for elt in annotation.elts) + "]" ) elif isinstance(annotation, nodes.BinOp): resolved = ( resolve_annotation(annotation.left) + " " + annotation.op + " " + resolve_annotation(annotation.right) ) else: resolved = annotation.as_string() # note sphinx-autoapi had this, but # (a) its not needed, because sphinx strips it in the rendered HTML # and (b) it could lead to incorrect links for name clashes # if resolved.startswith("typing."): # return resolved[len("typing.") :] # Note, sphinx-autoapi had this, with the rationale: # > Sphinx is capable of linking anything in the same module # > without needing a fully qualified path. # However, (a) this breaks if following __all__ and # (b) lead to hard to decipher missing references # this does though lead to the fully qualified names # showing in the type annotations of the output HTML # TODO make sphinx not show fully qualified names of type annotations # module_prefix = annotation.root().name + "." # if resolved.startswith(module_prefix): # return resolved[len(module_prefix) :] # TODO sphinx type resolver does not understand Ellipsis, maybe it should? if resolved == "Ellipsis": return "..." return resolved def resolve_qualname(node: nodes.NodeNG, basename: str) -> str: """Resolve where a node is defined to get its fully qualified name. :param node: The node representing the base name. :param basename: The partial base name to resolve. :returns: The fully resolved base name. """ full_basename = basename top_level_name = re.sub(r"\(.*\)", "", basename).split(".", 1)[0] lookup_node = node if isinstance(node, nodes.LocalsDictNodeNG) else node.scope() assigns = lookup_node.lookup(top_level_name)[1] for assignment in assigns: if isinstance(assignment, nodes.ImportFrom): import_name = get_full_import_name(assignment, top_level_name) full_basename = basename.replace(top_level_name, import_name, 1) break if isinstance(assignment, nodes.Import): import_name = resolve_import_alias(top_level_name, assignment.names) full_basename = basename.replace(top_level_name, import_name, 1) break if isinstance(assignment, nodes.ClassDef): full_basename = assignment.qname() break if isinstance(assignment, nodes.AssignName): full_basename = f"{assignment.scope().qname()}.{assignment.name}" if isinstance(node, nodes.Call): full_basename = re.sub(r"\(.*\)", "()", full_basename) if full_basename.startswith("builtins."): return full_basename[len("builtins.") :] if full_basename.startswith("__builtin__."): return full_basename[len("__builtin__.") :] return full_basename def get_module_all(node: nodes.Module) -> None | list[str]: """Get the contents of the ``__all__`` variable from a module.""" all_ = None if "__all__" in node.locals: assigned = next(node.igetattr("__all__")) if assigned is not astroid.Uninferable: all_ = [] for elt in getattr(assigned, "elts", ()): try: elt_name = next(elt.infer()) except astroid.InferenceError: continue if elt_name is astroid.Uninferable: continue if isinstance(elt_name, nodes.Const) and isinstance( elt_name.value, str ): all_.append(elt_name.value) return all_ def is_decorated_with_singledispatch( node: nodes.FunctionDef | nodes.AsyncFunctionDef, ) -> bool: """Check if the function is decorated as a singledispatch.""" if not node.decorators: return False for decorator in node.decorators.nodes: if not isinstance(decorator, astroid.Name): continue try: if is_singledispatch_decorator(decorator): return True except astroid.InferenceError: pass return False def is_singledispatch_decorator(decorator: astroid.Name) -> bool: """Check if the decorator is a singledispatch.""" def _is_singledispatch_func(func_node: nodes.FunctionDef) -> bool: return ( # type: ignore[no-any-return] func_node.name == "singledispatch" and func_node.root().name == "functools" ) for inferred in decorator.infer(): if not isinstance(inferred, nodes.FunctionDef): continue if _is_singledispatch_func(inferred): return True return False def is_decorated_as_singledispatch_register( node: nodes.FunctionDef | nodes.AsyncFunctionDef, ) -> bool: """Check if the function is decorated as a singledispatch register.""" if not node.decorators: return False for decorator in node.decorators.nodes: if not isinstance(decorator, nodes.Call): continue if not isinstance(decorator.func, nodes.Attribute): continue if decorator.func.attrname == "register": return True # TODO any more checking? return False def is_decorated_with_property( node: nodes.FunctionDef | nodes.AsyncFunctionDef, ) -> bool: """Check if the function is decorated as a property.""" if not node.decorators: return False for decorator in node.decorators.nodes: if not isinstance(decorator, astroid.Name): continue try: if is_property_decorator(decorator): return True except astroid.InferenceError: pass return False def is_property_decorator(decorator: astroid.Name) -> bool: """Check if the decorator is a property.""" def _is_property_class(class_node: nodes.ClassDef) -> bool: return ( # type: ignore[no-any-return] class_node.name == "property" and class_node.root().name == builtins.__name__ ) for inferred in decorator.infer(): if not isinstance(inferred, nodes.ClassDef): continue if _is_property_class(inferred): return True if any(_is_property_class(ancestor) for ancestor in inferred.ancestors()): return True return False def is_decorated_with_property_setter( node: nodes.FunctionDef | nodes.AsyncFunctionDef, ) -> bool: """Check if the function is decorated as a property setter. :param node: The node to check. :returns: True if the function is a property setter, False otherwise. """ if not node.decorators: return False for decorator in node.decorators.nodes: if ( isinstance(decorator, astroid.nodes.Attribute) and decorator.attrname == "setter" ): return True return False def get_class_docstring(node: nodes.ClassDef) -> tuple[str, str | None]: """Get the docstring of a node, using a parent docstring if needed.""" doc_node = node.doc_node if doc_node is None: for base in node.ancestors(): if base.qname() in ( "__builtins__.object", "builtins.object", "builtins.type", ): continue if base.doc_node is not None: return base.doc_node.value, base.qname() return doc_node.value if doc_node is not None else "", None def is_exception(node: nodes.ClassDef) -> bool: """Check if a class is an exception.""" if node.name in ("Exception", "BaseException") and node.root().name == "builtins": return True if not hasattr(node, "ancestors"): return False return any(is_exception(parent) for parent in node.ancestors(recurs=True)) def is_decorated_with_overload(node: nodes.FunctionDef) -> bool: """Check if the function is decorated as an overload definition.""" if not node.decorators: return False for decorator in node.decorators.nodes: if not isinstance(decorator, (astroid.Name, astroid.Attribute)): continue try: if is_overload_decorator(decorator): return True except astroid.InferenceError: pass return False def is_overload_decorator(decorator: astroid.Name | astroid.Attribute) -> bool: for inferred in decorator.infer(): if not isinstance(inferred, astroid.nodes.FunctionDef): continue if inferred.name == "overload" and inferred.root().name == "typing": return True return False def get_func_docstring(node: nodes.FunctionDef) -> tuple[str, None | str]: """Get the docstring of a node, using a parent docstring if needed.""" doc_node = node.doc_node if doc_node is None and isinstance(node.parent, nodes.ClassDef): for base in node.parent.ancestors(): if node.name in ("__init__", "__new__") and base.qname() in ( "__builtins__.object", "builtins.object", "builtins.type", ): continue for child in base.get_children(): if ( isinstance(child, node.__class__) and child.name == node.name and child.doc_node is not None ): return str(child.doc_node.value), child.qname() return doc_node.value if doc_node is not None else "", None def get_return_annotation(node: nodes.FunctionDef) -> None | str: """Get the return annotation of a node.""" if node.returns: return resolve_annotation(node.returns) if node.type_comment_returns: return resolve_annotation(node.type_comment_returns) return None def get_args_info( args_node: astroid.Arguments, ) -> list[tuple[None | str, None | str, None | str, None | str]]: """Get the arguments of a function. :returns: a list of (type, name, annotation, default) """ result: list[tuple[None | str, None | str, None | str, None | str]] = [] positional_only_defaults = [] positional_or_keyword_defaults = args_node.defaults if args_node.defaults: args = args_node.args or [] positional_or_keyword_defaults = args_node.defaults[-len(args) :] positional_only_defaults = args_node.defaults[ : len(args_node.defaults) - len(args) ] plain_annotations = args_node.annotations or () func_comment_annotations = args_node.parent.type_comment_args or [] if args_node.parent.type in ("method", "classmethod"): func_comment_annotations = [None, *func_comment_annotations] comment_annotations = args_node.type_comment_posonlyargs comment_annotations += args_node.type_comment_args or [] comment_annotations += args_node.type_comment_kwonlyargs annotations = list( _merge_annotations( plain_annotations, _merge_annotations(func_comment_annotations, comment_annotations), ) ) annotation_offset = 0 if args_node.posonlyargs: posonlyargs_annotations = args_node.posonlyargs_annotations if not any(args_node.posonlyargs_annotations): num_args = len(args_node.posonlyargs) posonlyargs_annotations = annotations[ annotation_offset : annotation_offset + num_args ] for arg, annotation, default in _iter_args( args_node.posonlyargs, posonlyargs_annotations, positional_only_defaults ): result.append((None, arg, annotation, default)) result.append(("/", None, None, None)) if not any(args_node.posonlyargs_annotations): annotation_offset += num_args if args_node.args: num_args = len(args_node.args) for arg, annotation, default in _iter_args( args_node.args, annotations[annotation_offset : annotation_offset + num_args], positional_or_keyword_defaults, ): result.append((None, arg, annotation, default)) annotation_offset += num_args if args_node.vararg: annotation = None if args_node.varargannotation: annotation = resolve_annotation(args_node.varargannotation) elif len(annotations) > annotation_offset and annotations[annotation_offset]: annotation = resolve_annotation(annotations[annotation_offset]) annotation_offset += 1 result.append(("*", args_node.vararg, annotation, None)) if args_node.kwonlyargs: if not args_node.vararg: result.append(("*", None, None, None)) kwonlyargs_annotations = args_node.kwonlyargs_annotations if not any(args_node.kwonlyargs_annotations): num_args = len(args_node.kwonlyargs) kwonlyargs_annotations = annotations[ annotation_offset : annotation_offset + num_args ] for arg, annotation, default in _iter_args( args_node.kwonlyargs, kwonlyargs_annotations, args_node.kw_defaults, ): result.append((None, arg, annotation, default)) if not any(args_node.kwonlyargs_annotations): annotation_offset += num_args if args_node.kwarg: annotation = None if args_node.kwargannotation: annotation = resolve_annotation(args_node.kwargannotation) elif len(annotations) > annotation_offset and annotations[annotation_offset]: annotation = resolve_annotation(annotations[annotation_offset]) annotation_offset += 1 result.append(("**", args_node.kwarg, annotation, None)) if args_node.parent.type in ("method", "classmethod") and result: result.pop(0) return result def _iter_args( args: list[nodes.NodeNG], annotations: list[nodes.NodeNG], defaults: list[nodes.NodeNG], ) -> t.Iterable[tuple[str, None | str, str | None]]: """Iterate over arguments.""" default_offset = len(args) - len(defaults) packed = itertools.zip_longest(args, annotations) for i, (arg, annotation) in enumerate(packed): default = None if (defaults is not None and i >= default_offset) and ( defaults[i - default_offset] is not None ): default = defaults[i - default_offset].as_string() name = arg.name if isinstance(arg, astroid.Tuple): argument_names = ", ".join(x.name for x in arg.elts) name = f"({argument_names})" yield ( name, resolve_annotation(annotation) if annotation else None, default, ) def _merge_annotations( annotations: t.Iterable[t.Any], comment_annotations: t.Iterable[t.Any] ) -> t.Iterable[t.Any]: for ann, comment_ann in itertools.zip_longest(annotations, comment_annotations): if ann and not _is_ellipsis(ann): yield ann elif comment_ann and not _is_ellipsis(comment_ann): yield comment_ann else: yield None def _is_ellipsis(node: t.Any) -> bool: return isinstance(node, astroid.Const) and node.value == Ellipsis sphinx-autodoc2-0.5.0/src/autodoc2/cli.py000066400000000000000000000225431453104212700202000ustar00rootroot00000000000000"""CLI for the package.""" from pathlib import Path import re import typing as t from rich import progress as rp from rich.console import Console import typer from autodoc2 import __name__ as package_name from autodoc2 import __version__ from autodoc2.analysis import analyse_module from autodoc2.config import Config from autodoc2.db import InMemoryDb, UniqueError from autodoc2.resolve_all import AllResolver from autodoc2.utils import WarningSubtypes, yield_modules console = Console() app_main = typer.Typer( context_settings={"help_option_names": ["-h", "--help"]}, rich_markup_mode="rich", no_args_is_help=True, ) def version_callback(value: bool) -> None: """Print the version and exit.""" if value: console.print(f"{package_name} version: {__version__}") raise typer.Exit() @app_main.callback() def main_app( version: t.Optional[bool] = typer.Option( None, "-v", "--version", callback=version_callback, is_eager=True, help="Show the application version and exit.", ), ) -> None: """[underline]CLI for sphinx-autodoc2[/underline]""" @app_main.command("list") def list_items( path: Path = typer.Argument(..., exists=True, help="Path to analyse"), module: t.Optional[str] = typer.Option( None, "-m", "--module", help="The name of the module, otherwise it will be guessed from the path", ), inherited: bool = typer.Option( False, "-i", "--inherited", help="Show inherited members" ), private: bool = typer.Option(False, "-p", "--private", help="Show private members"), one_line: bool = typer.Option( False, "-o", "--one-line", help="Show only full name and type" ), filter_types_str: t.Optional[str] = typer.Option( None, "-ft", "--filter-types", help="Only show members of types (comma separated)", ), skip_types_str: str = typer.Option( "import_from", "-st", "--skip-types", help="Do not show members of types (comma separated)", ), filter_name: t.Optional[str] = typer.Option( None, "-fn", "--filter-name", help="Only show members with this name regex" ), ) -> None: """Analyse a python module or package and stream the results to the console.""" # initialise filters skip_types = skip_types_str.split(",") filter_types = filter_types_str.split(",") if filter_types_str else None filter_name_func: t.Callable[[str], bool] = ( re.compile(filter_name).match if filter_name else lambda _: True # type: ignore ) # gather the modules modules: t.Iterable[t.Tuple[Path, str]] if path.is_dir(): root_module = module or path.name modules = yield_modules(path, root_module=root_module) else: root_module = module or path.stem modules = [(path, root_module)] for mod_path, mod_name in modules: for data in analyse_module(mod_path, mod_name): if not filter_name_func(data["full_name"]): continue if data["type"] in skip_types or ( filter_types and data["type"] not in filter_types ): continue if not inherited and data.get("inherited", None): continue if not private and data["full_name"].split(".")[-1].startswith("_"): continue if one_line: console.print(f'{data["full_name"]} ({data["type"]})') else: console.print(data) @app_main.command("create-db") def create_db( path: Path = typer.Argument(..., exists=True, help="Path to analyse"), output: Path = typer.Argument("autodoc.db.json", help="File to write to"), module: t.Optional[str] = typer.Option( None, "-m", "--module", help="The name of the module, otherwise it will be guessed from the path", ), ) -> None: """Create a database for a python module or package.""" # gather the modules modules: t.Iterable[t.Tuple[Path, str]] if path.is_dir(): root_module = module or path.name modules = list(yield_modules(path, root_module=root_module)) else: root_module = module or path.stem modules = [(path, root_module)] # analyse the modules and write to the database db = InMemoryDb() with rp.Progress( rp.TextColumn("[bold]Analyse[/bold]"), rp.BarColumn(), rp.TaskProgressColumn(), rp.TimeElapsedColumn(), rp.TextColumn("[progress.description]{task.description}"), ) as progress: task = progress.add_task("", total=len(modules)) for mod_path, mod_name in modules: progress.update(task, description=mod_name) for data in analyse_module(mod_path, mod_name): try: db.add(data) except UniqueError: progress.console.print( f"[yellow]Warning[/yellow] Duplicate item {data['full_name']} ({data['type']})" ) progress.advance(task) # write the database to file with output.open("w") as f: db.write(f) console.print(f"[green]Database written[/green]: {output}") @app_main.command("resolve-all") def analyse_all( path: Path = typer.Argument(..., exists=True, help="Path to a database file"), package: str = typer.Argument( ..., help="The name of the package to resolve.", ), ) -> None: """Analyse the __all__ of a module and find potential matches""" with path.open("r") as f: db = InMemoryDb.read(f) resolver = AllResolver( db, lambda x: console.print(f"[yellow]Warning[/yellow]: {x}") ) data = resolver.get_resolved_all(package) console.print(data) console.print("") console.print("[green]Done![/green]") @app_main.command("write") def write( path: Path = typer.Argument(..., exists=True, help="Path to analyse"), module: t.Optional[str] = typer.Option( None, "-m", "--module", help="The name of the module, otherwise it will be guessed from the path", ), # TODO read from config file, to populate config object output: Path = typer.Option("_autodoc", help="Folder to write to"), clean: bool = typer.Option(False, "-c", "--clean", help="Remove old files"), ) -> None: """Create sphinx files for a python module or package.""" # gather the module modules: t.Iterable[t.Tuple[Path, str]] if path.is_dir(): root_module = module or path.name modules = list(yield_modules(path, root_module=root_module)) else: root_module = module or path.stem modules = [(path, root_module)] # analyse the modules and write to the database db = InMemoryDb() with rp.Progress( rp.TextColumn("[bold]Analyse[/bold]"), rp.BarColumn(), rp.TaskProgressColumn(), rp.TimeElapsedColumn(), rp.TextColumn("[progress.description]{task.description}"), ) as progress: task = progress.add_task("", total=len(modules)) for mod_path, mod_name in modules: progress.update(task, advance=1, description=mod_name) for data in analyse_module(mod_path, mod_name): try: db.add(data) except UniqueError: progress.console.print( f"[yellow]Warning[/yellow] Duplicate item {data['full_name']} ({data['type']})" ) # find all the package/module, so we know what files to write # To following __all__ strategy console.print("Determining files to write...") to_write: t.List[str] = [] stack = [root_module] while stack: item = stack.pop() to_write.append(item) stack.extend(list(db.get_children_names(item, {"package", "module"}))) # write the files output.mkdir(parents=True, exist_ok=True) paths = [] with rp.Progress( rp.TextColumn("[bold]Write[/bold]"), rp.BarColumn(), rp.TaskProgressColumn(), rp.TimeElapsedColumn(), rp.TextColumn("[progress.description]{task.description}"), ) as progress: task = progress.add_task("", total=len(to_write)) def _warn(msg: str, type_: WarningSubtypes) -> None: progress.console.print(f"[yellow]Warning[/yellow] {msg} [{type_.value}]") config = Config() for mod_name in to_write: progress.update(task, advance=1, description=mod_name) content = "\n".join( config.render_plugin(db, config, warn=_warn).render_item(mod_name) ) out_path = output / (mod_name + config.render_plugin.EXTENSION) paths.append(out_path) if out_path.exists() and out_path.read_text("utf8") == content: # Don't write the file if it hasn't changed # this means that sphinx doesn't mark it for rebuild (mtime based) continue out_path.write_text(content, "utf8") # remove any files that are no longer needed if clean: console.print("[bold]Cleaning old files[/bold]") for path in output.iterdir(): if path.is_dir(): continue if path not in paths: path.unlink() console.print("[bold green]Success![/bold green]") console.print(f"Files written to: {output}") sphinx-autodoc2-0.5.0/src/autodoc2/config.py000066400000000000000000000426221453104212700206760ustar00rootroot00000000000000"""The configuration for the extension.""" from __future__ import annotations from copy import deepcopy import dataclasses as dc from importlib import import_module import re import typing as t if t.TYPE_CHECKING: from autodoc2.render.base import RendererBase class ValidationError(Exception): """An error validating a config value.""" CONFIG_PREFIX = "autodoc2_" @dc.dataclass class PackageConfig: """A package-level config item.""" path: str = dc.field( metadata={ "help": "The path to the package, " "relative to the source directory (POSIX format).", "sphinx_type": str, } ) from_git_clone: tuple[str, str] | None = dc.field( default=None, metadata={ "help": "Clone a git (url, branch/tag)/ " "If using this option the 'path' will be relative to root of the cloned repository.", }, ) module: str | None = dc.field( default=None, metadata={ "help": "The module to use as the root of the package, " "otherwise the file/directory name is used." }, ) exclude_dirs: list[str] = dc.field( default_factory=lambda: ["__pycache__"], metadata={ "help": "Directories to exclude from module analysis (matched by fnmatch).", }, ) exclude_files: list[str] = dc.field( default_factory=list, metadata={ "help": "Files to exclude from module gathering (matched by fnmatch).", }, ) auto_mode: bool = dc.field( default=True, metadata={ "help": "Whether to automatically generate documentation for the package.", }, ) def as_triple(self) -> t.Iterable[tuple[str, t.Any, dc.Field]]: # type: ignore[type-arg] """Yield triples of (name, value, field).""" fields = {f.name: f for f in dc.fields(self.__class__)} for name, value in dc.asdict(self).items(): yield name, value, fields[name] def _coerce_packages(name: str, item: t.Any) -> list[PackageConfig]: """Coerce the packages config option to a set.""" if not isinstance(item, (list, tuple)): raise ValidationError(f"{name} must be a list") if len(item) == 0: raise ValidationError(f"{name} must not be empty") # make sure we don't mutate the original (triggers sphinx total rebuild) new = [deepcopy(i) for i in item] for i, package in enumerate(new[:]): # TODO here we should use the PackageConfig to validate if isinstance(package, str): new[i] = package = {"path": package} if not isinstance(package, dict): raise ValidationError(f"{name}[{i}] must be a string or dict") if not isinstance(package["path"], str): raise ValidationError(f"{name}[{i}]['path'] must be a string") if package["path"].startswith("/"): raise ValidationError(f"{name}[{i}]['path'] must be relative") if "path" not in package: raise ValidationError(f"{name}[{i}] must have a 'path' key") if "from_git_clone" in package: if not isinstance(package["from_git_clone"], (tuple, list)): raise ValidationError( f"{name}[{i}]['from_git_clone'] must be a tuple/list" ) if len(package["from_git_clone"]) != 2: raise ValidationError( f"{name}[{i}]['from_git_clone'] must be a tuple of length 2" ) for idx in (0, 1): if not isinstance(package["from_git_clone"][idx], str): raise ValidationError( f"{name}[{i}]['from_git_clone'][{idx}] must be a string" ) if "module" in package and not isinstance(package["module"], str): raise ValidationError(f"{name}[{i}]['module'] must be a string") for key in ("exclude_files", "exclude_dirs"): if key in package and ( not isinstance(package[key], list) or not all(isinstance(x, str) for x in package[key]) ): raise ValidationError(f"{name}[{i}][{key!r}] must be a list of strings") if "autodoc" in package and not isinstance(package["autodoc"], bool): raise ValidationError(f"{name}[{i}]['autodoc'] must be a boolean") return [PackageConfig(**p) for p in new] def _validate_replace_list(name: str, item: t.Any) -> list[tuple[str, str]]: """Validate that an item is a list of tuples.""" if not isinstance(item, list) or not all( isinstance(x, (list, tuple)) and len(x) == 2 for x in item ): raise ValidationError(f"{name!r} must be a list of (string, string) tuples") return [(str(x[0]), str(x[1])) for x in item] def _validate_hidden_objects(name: str, item: t.Any) -> set[str]: """Validate that the hidden objects config option is a set.""" if not isinstance(item, (list, tuple, set)) or not all( isinstance(x, str) for x in item ): raise ValidationError(f"{name!r} must be a list of string") value = set(item) _valid = {"undoc", "dunder", "private", "inherited"} if not value.issubset(_valid): raise ValidationError(f"{name!r} must be a subset of {_valid}") return value def _validate_regex_list(name: str, item: t.Any) -> list[t.Pattern[str]]: """Validate that an item is a list of regexes.""" if not isinstance(item, list) or not all(isinstance(x, str) for x in item): raise ValidationError(f"{name!r} must be a list of string") compiled = [] for i, regex in enumerate(set(item)): try: compiled.append(re.compile(regex)) except re.error as exc: raise ValidationError(f"{name}[{i}] is not a valid regex: {exc}") return compiled def _validate_list_tuple_regex_str( name: str, item: t.Any ) -> list[tuple[t.Pattern[str], str]]: """Validate that an item is a list of (regex, str) tuples.""" if not isinstance(item, list) or not all( isinstance(x, (list, tuple)) and len(x) == 2 for x in item ): raise ValidationError(f"{name!r} must be a list of (string, string) tuples") compiled = [] for i, (regex, replacement) in enumerate(item): try: compiled.append((re.compile(regex), replacement)) except re.error as exc: raise ValidationError(f"{name}[{i}] is not a valid regex: {exc}") return compiled def _load_renderer(name: str, item: t.Any) -> type[RendererBase]: """Load a renderer class.""" from autodoc2.render.base import RendererBase if isinstance(item, type) and issubclass(item, RendererBase): return item if not isinstance(item, str): raise ValidationError( f"{name!r} must be a string or subclass of {RendererBase.__qualname__}" ) if item in ("rst", "restructuredtext"): from autodoc2.render.rst_ import RstRenderer return RstRenderer if item in ("markdown", "md", "myst"): from autodoc2.render.myst_ import MystRenderer return MystRenderer try: module_path, klass_name = item.rsplit(".", 1) mod = import_module(module_path) kls = getattr(mod, klass_name) except ImportError as exc: raise ValidationError(f"{name!r} could not be loaded: {exc}") from exc if not isinstance(kls, type) or not issubclass(kls, RendererBase): raise ValidationError( f"{name!r} must load a subclass of {RendererBase.__qualname__}" ) return kls def _load_regex_renderers( name: str, item: t.Any ) -> list[tuple[t.Pattern[str], type[RendererBase]]]: """Load a list of (regex, renderer).""" if not isinstance(item, (list, tuple)): raise ValidationError(f"{name!r} must be a list or tuple") new: list[tuple[t.Pattern[str], type[RendererBase]]] = [] for i, child in enumerate(item): if not (isinstance(child, (list, tuple)) and len(child) == 2): raise ValidationError(f"{name}[{i}] must be a list/tuple of length 2") try: pattern = re.compile(child[0]) except re.error as exc: raise ValidationError(f"{name}[{i}][0] is not a valid regex: {exc}") klass = _load_renderer(f"{name}[{i}][1]", child[1]) new.append((pattern, klass)) return new @dc.dataclass class Config: """The configuration for autoapi.""" packages: list[PackageConfig] = dc.field( default_factory=list, metadata={ "help": ( "The packages to analyse. " "Each item can be a simple string, " "pointing to the package path, " "relative to the source directory (in POSIX format), " "or it can be a dictionary with more fine-grained control " "(see {ref}`config:package`))." ), "sphinx_type": list, "sphinx_validate": _coerce_packages, "doc_type": "list[str | dict]", "category": "required", }, ) output_dir: str = dc.field( default="apidocs", metadata={ "help": ( "The root output directory for the documentation, " "relative to the source directory (in POSIX format)." ), "sphinx_type": str, "category": "render", }, ) render_plugin: type[RendererBase] = dc.field( default_factory=(lambda: _load_renderer("render_plugin", "rst")), metadata={ "help": ( "The renderer to use for the documentation. " "This can be one of `rst` or `md`/`myst`, " "to use the built-in renderers, " "or a string pointing to a class that inherits from `RendererBase`, " "such as `mypackage.mymodule.MyRenderer`." ), "sphinx_type": str, "sphinx_default": "rst", "sphinx_validate": _load_renderer, "doc_type": "str", "category": "render", }, ) render_plugin_regexes: list[tuple[t.Pattern[str], type[RendererBase]]] = dc.field( default_factory=list, metadata={ "help": "A list of (regex, renderer) to use for specific modules", "sphinx_type": list, "sphinx_validate": _load_regex_renderers, "doc_type": "list[tuple[str, str]]", "category": "render", }, ) module_all_regexes: list[t.Pattern[str]] = dc.field( default_factory=list, metadata={ "help": "Regexes which match fully qualified module names, " "to specify they should use the `__all__` when " "determining which children to document", "sphinx_type": list, "sphinx_validate": _validate_regex_list, "doc_type": "list[str]", "category": "render", }, ) skip_module_regexes: list[t.Pattern[str]] = dc.field( default_factory=list, metadata={ "help": "Regexes which match fully qualified module/package names, to skip them", "sphinx_type": list, "sphinx_validate": _validate_regex_list, "doc_type": "list[str]", "category": "render", }, ) hidden_objects: set[ t.Literal["undoc", "dunder", "private", "inherited"] ] = dc.field( default_factory=lambda: {"inherited"}, metadata={ "help": ( "The default hidden items. " "Can contain:\n" "- `undoc`: undocumented objects\n" "- `dunder`: double-underscore methods, e.g. `__str__`\n" "- `private`: single-underscore methods, e.g. `_private`\n" "- `inherited`: inherited class methods\n" ), "sphinx_type": list, "sphinx_validate": _validate_hidden_objects, "doc_type": 'list["undoc" | "dunder" | "private" | "inherited"]', "category": "render", }, ) hidden_regexes: list[t.Pattern[str]] = dc.field( default_factory=list, metadata={ "help": "Regexes which match against fully qualified names, to mark them as hidden", "sphinx_type": list, "sphinx_validate": _validate_regex_list, "doc_type": "list[str]", "category": "render", }, ) no_index: bool = dc.field( default=False, metadata={ "help": "Do not generate a cross-reference index.", "sphinx_type": bool, "category": "render", }, ) deprecated_module_regexes: list[t.Pattern[str]] = dc.field( default_factory=list, metadata={ "help": "Regexes which match against module names, to mark them as deprecated", "sphinx_type": list, "sphinx_validate": _validate_regex_list, "doc_type": "list[str]", "category": "render", }, ) module_summary: bool = dc.field( default=True, metadata={ "help": "Whether to include a per-module summary.", "sphinx_type": bool, "category": "render", }, ) docstring_parser_regexes: list[tuple[t.Pattern[str], str]] = dc.field( default_factory=list, metadata={ "help": "Match fully qualified names against regexes to use a specific parser. " "The parser can be one of 'rst', 'myst', or the fully qualified name of a custom parser class. " "The first match is used. ", "sphinx_type": list, "sphinx_validate": _validate_list_tuple_regex_str, "doc_type": "list[tuple[str, str]]", "category": "render", }, ) class_docstring: t.Literal["merge", "both"] = dc.field( default="merge", metadata={ "help": ( "How to handle documenting of classes. " "If `merge`, the `__init__` docstring is appended to the class docstring " "and the `__init__` method is omitted." "If `both`, then the `__init__` method is included separately." ), "sphinx_type": str, "doc_type": '"merge" | "both"', "category": "render", }, ) class_inheritance: bool = dc.field( default=True, metadata={ "help": "Whether to document class inheritance.", "sphinx_type": bool, "category": "render", }, ) annotations: bool = dc.field( default=True, metadata={ "help": "Whether to include annotations.", "sphinx_type": bool, "category": "render", }, ) docstrings: t.Literal["all", "direct", "none"] = dc.field( default="direct", metadata={ "help": "Which objects to include docstrings for. " "'direct' means only from objects that are not inherited.", "sphinx_type": str, "doc_type": '"all" | "direct"', "category": "render", }, ) sort_names: bool = dc.field( default=False, metadata={ "help": "Whether to sort by name, when documenting, otherwise order by source", "sphinx_type": bool, "category": "render", }, ) replace_annotations: list[tuple[str, str]] = dc.field( default_factory=list, metadata={ "help": "List of (from, to) for annotation replacements", "sphinx_type": list, "sphinx_validate": _validate_replace_list, "category": "render", }, ) replace_bases: list[tuple[str, str]] = dc.field( default_factory=list, metadata={ "help": "List of (from, to) for class base replacements", "sphinx_type": list, "sphinx_validate": _validate_replace_list, "category": "render", }, ) index_template: str | None = dc.field( default=( "API Reference\n" "=============\n" "\n" "This page contains auto-generated API reference documentation [#f1]_.\n" "\n" ".. toctree::\n" " :titlesonly:\n" "{% for package in top_level %}\n" " {{ package }}\n" "{%- endfor %}\n" "\n" ".. [#f1] Created with `sphinx-autodoc2 `_\n" "\n" ), metadata={ "help": ( "The Jinja template for the top-level {output_dir}/index.rst, " "or None if no index should be written. " "The template will be passed a ``top_level`` variable, " "which is a list of top-level package/module names." ), "sphinx_type": (str, type(None)), "category": "render", }, ) # TODO regexes # module_summary: bool | None = None # class_inheritance: bool | None = None # class_docstring: t.Literal["merge", "both"] | None = None # annotations: bool | None = None # sort_names: bool | None = None # docstrings def as_triple(self) -> t.Iterable[tuple[str, t.Any, dc.Field]]: # type: ignore[type-arg] """Yield triples of (name, value, field).""" fields = {f.name: f for f in dc.fields(self.__class__)} for name, value in dc.asdict(self).items(): yield name, value, fields[name] sphinx-autodoc2-0.5.0/src/autodoc2/db.py000066400000000000000000000160051453104212700200120ustar00rootroot00000000000000"""A database interface for storing and querying the analysis items.""" from __future__ import annotations import json import re import typing as t if t.TYPE_CHECKING: from .utils import ItemData class UniqueError(KeyError): """An error raised when a unique constraint is violated.""" class Database(t.Protocol): """A simple interface for storing and querying the analysis items, from a single package. This allows for potential extensibility in the future, e.g. using a persistent sqlite database. """ def add(self, item: ItemData) -> None: """Add an item to the database.""" def remove(self, full_name: str, descendants: bool) -> None: """Remove an item from the database, by full_name. If `descendants` is True, remove all descendants of this item. """ def __contains__(self, full_name: str) -> bool: """Check if an item is in the database, by full_name.""" def get_item(self, full_name: str) -> ItemData | None: """Get an item from the database, by full_name.""" def get_items_like(self, full_name: str) -> t.Iterable[ItemData]: """Get an item from the database, matching the wildcards `*` and `?`. `*` matches any number of characters, and `?` matches any single character. """ def get_type(self, full_name: str) -> None | str: """Get the type of an item from the database, by full_name.""" def get_by_type(self, type_: str) -> t.Iterable[ItemData]: """Get all items from the database, by type.""" def get_overloads(self, full_name: str) -> t.Iterable[ItemData]: """Get all function overloads for this name.""" def get_children( self, full_name: str, types: None | set[str] = None, *, sort_name: bool = False ) -> t.Iterable[ItemData]: """Get all items that are direct children of this name, i.e. `{full_name}.{name}`. :param full_name: The full name of the item. :param types: If given, only return items of these types. :param sort_name: If True, sort the names alphabetically. """ def get_children_names( self, full_name: str, types: None | set[str] = None, *, sort_name: bool = False ) -> t.Iterable[str]: """Get all names of direct children of this name, i.e. `{full_name}.{name}`. :param full_name: The full name of the item. :param types: If given, only return items of these types. :param sort_name: If True, sort the names alphabetically. """ def get_ancestors( self, full_name: str, include_self: bool ) -> t.Iterable[ItemData | None]: """Get all ancestors of this name, e.g. `a.b`, `a` for `a.b.c`. The order is guaranteed from closest to furthest ancestor. :param full_name: The full name of the item. :param include_self: If True, include the item itself. """ _LIKE_REGEX = re.compile(r"([\*\?])") class InMemoryDb(Database): """A simple in-memory database for storing and querying the analysis items.""" def __init__(self) -> None: """Create the database.""" self._items: dict[str, ItemData] = {} self._overloads: dict[str, list[ItemData]] = {} def add(self, item: ItemData) -> None: if item["type"] == "overload": # note we do this here and not in the analyser, # because overloads come before the function they overload # and we don't want the analyzer to have to "look ahead" self._overloads.setdefault(item["full_name"], []).append(item) return if item["full_name"] in self._items: raise UniqueError(f"Item {item['full_name']} already exists") self._items[item["full_name"]] = item def remove(self, full_name: str, descendants: bool) -> None: # remove the item itself self._items.pop(full_name, None) self._overloads.pop(full_name, None) if descendants: # remove all descendants for name in list(self._items): if name.startswith(full_name + "."): self._items.pop(name, None) self._overloads.pop(name, None) def __contains__(self, full_name: str) -> bool: return full_name in self._items def get_item(self, full_name: str) -> ItemData | None: return self._items.get(full_name) def get_items_like(self, full_name: str) -> t.Iterable[ItemData]: parts = _LIKE_REGEX.split(full_name) pattern = re.compile( "".join( [ ".*" if part == "*" else ("." if part == "?" else re.escape(part)) for part in parts ] ) ) return ( item for item in self._items.values() if pattern.fullmatch(item["full_name"]) ) def get_type(self, full_name: str) -> None | str: item = self._items.get(full_name) if item is None: return None return item["type"] def get_by_type(self, type_: str) -> t.Iterable[ItemData]: return (item for item in self._items.values() if item["type"] == type_) def get_overloads(self, full_name: str) -> t.Iterable[ItemData]: return self._overloads.get(full_name, []) def get_children( self, full_name: str, types: None | set[str] = None, *, sort_name: bool = False ) -> t.Iterable[ItemData]: generator = ( item for item in self._items.values() if item["full_name"].startswith(full_name + ".") and "." not in item["full_name"][len(full_name) + 1 :] and ((types is None) or (item["type"] in types)) ) if sort_name: return sorted(generator, key=lambda item: item["full_name"]) return generator def get_children_names( self, full_name: str, types: None | set[str] = None, *, sort_name: bool = False ) -> t.Iterable[str]: generator = ( item["full_name"] for item in self._items.values() if item["full_name"].startswith(full_name + ".") and "." not in item["full_name"][len(full_name) + 1 :] and ((types is None) or (item["type"] in types)) ) if sort_name: return sorted(generator) return generator def get_ancestors( self, full_name: str, include_self: bool ) -> t.Iterable[ItemData | None]: if include_self: yield self.get_item(full_name) parts = full_name.split(".")[:-1] while parts: yield self.get_item(".".join(parts)) parts.pop() def write(self, stream: t.TextIO) -> None: """Write the database to a file.""" json.dump({"items": self._items, "overloads": self._overloads}, stream) @classmethod def read(cls, stream: t.TextIO) -> InMemoryDb: """Read the database from a file.""" items = json.load(stream) db = cls() db._items = items["items"] db._overloads = items["overloads"] return db sphinx-autodoc2-0.5.0/src/autodoc2/py.typed000066400000000000000000000000001453104212700205360ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/src/autodoc2/render/000077500000000000000000000000001453104212700203305ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/src/autodoc2/render/__init__.py000066400000000000000000000000001453104212700224270ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/src/autodoc2/render/base.py000066400000000000000000000241641453104212700216230ustar00rootroot00000000000000"""Convert the database items into documentation.""" # note, for the directives and options see: # https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html from __future__ import annotations import abc from collections import OrderedDict import typing as t from autodoc2.resolve_all import AllResolver from autodoc2.utils import WarningSubtypes if t.TYPE_CHECKING: from autodoc2.config import Config from autodoc2.db import Database from autodoc2.utils import ARGS_TYPE, ItemData class RendererBase(abc.ABC): """The base renderer.""" EXTENSION: t.ClassVar[str] = ".txt" """The extension for the output files.""" def __init__( self, db: Database, config: Config, *, warn: t.Callable[[str, WarningSubtypes], None] | None = None, all_resolver: AllResolver | None = None, standalone: bool = True, ) -> None: """Initialise the renderer. :param db: The database to obtain objects from. :param config: The configuration. :param warn: The function to use to log warnings. :param all_resolver: The resolver to use, for following __all__ children. :param standalone: If True, this renderer is being used to create a standalone document """ self._db = db self._config = config self._standalone = standalone self._warn = warn or (lambda msg, type_: None) self._all_resolver = ( AllResolver( self._db, lambda x: self._warn(x, WarningSubtypes.ALL_RESOLUTION) ) if all_resolver is None else all_resolver ) self._is_hidden_cache: OrderedDict[str, bool] = OrderedDict() """Cache for the is_hidden function: full_name -> bool.""" @property def config(self) -> Config: """The configuration.""" return self._config @property def standalone(self) -> bool: """If True, this renderer is being used to create a standalone document.""" return self._standalone def warn( self, msg: str, type_: WarningSubtypes = WarningSubtypes.RENDER_ERROR ) -> None: """Warn the user.""" self._warn(msg, type_) def get_item(self, full_name: str) -> ItemData | None: """Get an item from the database, by full_name.""" return self._db.get_item(full_name) def get_children( self, item: ItemData, types: None | set[str] = None, *, omit_hidden: bool = True, ) -> t.Iterable[ItemData]: """Get the children of this item, sorted according to the config. If module and full_name in module_all_regexes, it will use the __all__ list instead of the children. :param item: The item to get the children of. :param types: If given, only return items of these types. :param omit_hidden: If True, omit hidden items. """ if item["type"] in {"module", "package"} and any( pat.fullmatch(item["full_name"]) for pat in self.config.module_all_regexes ): resolved = self._all_resolver.get_resolved_all(item["full_name"])[ "resolved" ] for all_name in ( sorted(item.get("all") or []) if self.config.sort_names else item.get("all") or [] ): if all_name not in resolved: continue resolved_name = resolved[all_name] resolved_item: None | ItemData if ( types == {"external"} and resolved_name.split(".")[0] != item["full_name"].split(".")[0] ): # special case, for use only in the summary table # These are items that are not in the same module as the parent, # that were exposed via __all__. resolved_item = { "full_name": resolved_name, "type": "external", "doc": "", } else: resolved_item = self._db.get_item(resolved_name) if not ( resolved_item is None or (types is not None and resolved_item["type"] not in types) or (omit_hidden and self.is_hidden(resolved_item)) ): yield resolved_item else: for child in self._db.get_children( item["full_name"], types=types, sort_name=self.config.sort_names ): if omit_hidden and self.is_hidden(child): continue yield child def is_hidden(self, item: ItemData) -> bool: """Whether this object should be displayed in documentation. Based on configuration regarding: - does i match a hidden regex pattern - does it have documentation - is it a dunder, i.e. __name__ - is it a private member, i.e. starts with _, but not a dunder - is it an inherited member of a class """ if item["full_name"] in self._is_hidden_cache: return self._is_hidden_cache[item["full_name"]] # TODO also whether it is imported, but this is only when following __all__ short_name = item["full_name"].split(".")[-1] is_hidden: bool = ( any(p.fullmatch(item["full_name"]) for p in self.config.hidden_regexes) or ( item["type"] in ("module", "package") and any( p.fullmatch(item["full_name"]) for p in self.config.skip_module_regexes ) ) or ("undoc" in self.config.hidden_objects and not item.get("doc", "")) or ( "inherited" in self.config.hidden_objects and bool(item.get("inherited", False)) ) or ( "dunder" in self.config.hidden_objects and short_name.startswith("__") and short_name.endswith("__") ) or ( "private" in self.config.hidden_objects and short_name.startswith("_") and not short_name.endswith("__") ) ) self._is_hidden_cache[item["full_name"]] = is_hidden if len(self._is_hidden_cache) > 1000: self._is_hidden_cache.popitem(last=False) return is_hidden def is_module_deprecated(self, item: ItemData) -> bool: """Whether this module is deprecated.""" return any( p.fullmatch(item["full_name"]) for p in self.config.deprecated_module_regexes ) def no_index(self, item: ItemData) -> bool: """Whether this item should be excluded from search engines.""" return self.config.no_index def show_module_summary(self, item: ItemData) -> bool: """Whether to show a summary for this module/package.""" return self.config.module_summary def show_class_inheritance(self, item: ItemData) -> bool: """Whether to show the inheritance for this class.""" return self.config.class_inheritance def show_annotations(self, item: ItemData) -> bool: """Whether to show type annotations.""" return self.config.annotations def show_docstring(self, item: ItemData) -> bool: """Whether to show the docstring.""" if self.config.docstrings == "all": return True if self.config.docstrings == "direct" and not ( (item.get("inherited")) or (item.get("doc_inherited")) ): return True return False @abc.abstractmethod def render_item(self, full_name: str) -> t.Iterable[str]: """Yield the content for a single item.""" def format_args( self, args_info: ARGS_TYPE, include_annotations: bool = True, ignore_self: None | str = None, ) -> str: """Format the arguments of a function or method.""" result = [] for i, (prefix, name, annotation, default) in enumerate(args_info): if i == 0 and ignore_self is not None and name == ignore_self: continue annotation = self.format_annotation(annotation) formatted = ( (prefix or "") + (name or "") + (f": {annotation}" if annotation and include_annotations else "") + ( (" = {}" if annotation else "={}").format(default) if default else "" ) ) result.append(formatted) return ", ".join(result) def format_annotation(self, annotation: None | str) -> str: """Format a single type annotation.""" if annotation: # TODO can this be optimised? # could do something like in init: # rgx = re.compile("(" + "|".join(re.escape(i) for i in r) + ")") # then here: rgx.sub(lambda x: r[x.group(1)], annotation) for in_, out_ in self.config.replace_annotations: annotation = annotation.replace(in_, out_) return annotation or "" def format_base(self, base: None | str) -> str: """Format a single class base type.""" if base: for in_, out_ in self.config.replace_bases: base = base.replace(in_, out_) return base or "" def get_doc_parser(self, full_name: str) -> str: """Get the parser for the docstring of this item. Returns `""` if it should be parsed using the current parser. """ for pattern, parser in self.config.docstring_parser_regexes: if pattern.fullmatch(full_name): return parser return "" @abc.abstractmethod def generate_summary( self, objects: list[ItemData], alias: dict[str, str] | None = None ) -> t.Iterable[str]: """Generate a summary of the objects. :param objects: A list of fully qualified names. :param alias: A mapping of fully qualified names to a display alias. """ sphinx-autodoc2-0.5.0/src/autodoc2/render/myst_.py000066400000000000000000000342641453104212700220460ustar00rootroot00000000000000"""Renderer for MyST.""" from __future__ import annotations import re import typing as t from autodoc2.render.base import RendererBase if t.TYPE_CHECKING: from autodoc2.utils import ItemData _RE_DELIMS = re.compile(r"(\s*[\[\]\(\),]\s*)") class MystRenderer(RendererBase): """Render the documentation as MyST.""" EXTENSION = ".md" def render_item(self, full_name: str) -> t.Iterable[str]: item = self.get_item(full_name) if item is None: raise ValueError(f"Item {full_name} does not exist") type_ = item["type"] if type_ == "package": yield from self.render_package(item) elif type_ == "module": yield from self.render_module(item) elif type_ == "function": yield from self.render_function(item) elif type_ == "class": yield from self.render_class(item) elif type_ == "exception": yield from self.render_exception(item) elif type_ == "property": yield from self.render_property(item) elif type_ == "method": yield from self.render_method(item) elif type_ == "attribute": yield from self.render_attribute(item) elif type_ == "data": yield from self.render_data(item) else: self.warn(f"Unknown item type {type_!r} for {full_name!r}") def generate_summary( self, objects: list[ItemData], alias: dict[str, str] | None = None ) -> t.Iterable[str]: alias = alias or {} yield "````{list-table}" yield ":class: autosummary longtable" yield ":align: left" yield "" for item in objects: full_name = item["full_name"] # TODO get signature (for functions, etc), plus sphinx also runs rst.escape if full_name in alias: yield f"* - {{py:obj}}`{alias[full_name]} <{full_name}>`" else: yield f"* - {{py:obj}}`{full_name}`" if self.show_docstring(item): yield f" - ```{{autodoc2-docstring}} {full_name}" if parser_name := self.get_doc_parser(full_name): yield f" :parser: {parser_name}" yield " :summary:" yield " ```" else: yield " -" yield "````" @staticmethod def enclosing_backticks(text: str) -> str: """Ensure the enclosing backticks are more than any inner ones.""" backticks = "```" while backticks in text: backticks += "`" return backticks def render_package(self, item: ItemData) -> t.Iterable[str]: """Create the content for a package.""" if self.standalone and self.is_hidden(item): yield from ["---", "orphan: true", "---", ""] full_name = item["full_name"] yield f"# {{py:mod}}`{full_name}`" yield "" yield f"```{{py:module}} {full_name}" if self.no_index(item): yield ":noindex:" if self.is_module_deprecated(item): yield ":deprecated:" yield from ["```", ""] if self.show_docstring(item): yield f"```{{autodoc2-docstring}} {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f":parser: {parser_name}" yield ":allowtitles:" yield "```" yield "" visible_subpackages = [ i["full_name"] for i in self.get_children(item, {"package"}) ] if visible_subpackages: yield from [ "## Subpackages", "", "```{toctree}", ":titlesonly:", ":maxdepth: 3", "", ] for name in visible_subpackages: yield name yield "```" yield "" visible_submodules = [ i["full_name"] for i in self.get_children(item, {"module"}) ] if visible_submodules: yield from [ "## Submodules", "", "```{toctree}", ":titlesonly:", ":maxdepth: 1", "", ] for name in visible_submodules: yield name yield "```" yield "" visible_children = [ i["full_name"] for i in self.get_children(item) if i["type"] not in ("package", "module") ] if not visible_children: return yield f"## {item['type'].capitalize()} Contents" yield "" if self.show_module_summary(item): for heading, types in [ ("Classes", {"class"}), ("Functions", {"function"}), ("Data", {"data"}), ("External", {"external"}), ]: visible_items = list(self.get_children(item, types)) if visible_items: yield from [f"### {heading}", ""] yield from self.generate_summary( visible_items, alias={ i["full_name"]: i["full_name"].split(".")[-1] for i in visible_items }, ) yield "" yield from ["### API", ""] for name in visible_children: yield from self.render_item(name) def render_module(self, item: ItemData) -> t.Iterable[str]: """Create the content for a module.""" yield from self.render_package(item) def render_function(self, item: ItemData) -> t.Iterable[str]: """Create the content for a function.""" short_name = item["full_name"].split(".")[-1] show_annotations = self.show_annotations(item) sig = f"{short_name}({self.format_args(item['args'], show_annotations)})" if show_annotations and item.get("return_annotation"): sig += f" -> {self.format_annotation(item['return_annotation'])}" yield f"````{{py:function}} {sig}" yield f":canonical: {item['full_name']}" if self.no_index(item): yield ":noindex:" # TODO overloads if "async" in item.get("properties", []): yield ":async:" # TODO it would also be good to highlight if singledispatch decorated, # or, more broadly speaking, decorated at all yield "" if self.show_docstring(item): yield f"```{{autodoc2-docstring}} {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f":parser: {parser_name}" yield "```" yield "````" yield "" def render_exception(self, item: ItemData) -> t.Iterable[str]: """Create the content for an exception.""" yield from self.render_class(item) def render_class(self, item: ItemData) -> t.Iterable[str]: """Create the content for a class.""" short_name = item["full_name"].split(".")[-1] constructor = self.get_item(f"{item['full_name']}.__init__") sig = short_name if constructor and "args" in constructor: args = self.format_args( constructor["args"], self.show_annotations(item), ignore_self="self" ) sig += f"({args})" # note, here we can cannot yield by line, # because we need to look ahead to know the length of the backticks lines: list[str] = [f":canonical: {item['full_name']}"] if self.no_index(item): lines += [":noindex:"] lines += [""] # TODO overloads if item.get("bases") and self.show_class_inheritance(item): lines += [ "Bases: " + ", ".join( [self._reformat_cls_base_myst(b) for b in item.get("bases", [])] ), "", ] # TODO inheritance diagram if self.show_docstring(item): lines.append(f"```{{autodoc2-docstring}} {item['full_name']}") if parser_name := self.get_doc_parser(item["full_name"]): lines.append(f":parser: {parser_name}") lines.append("```") lines.append("") if self.config.class_docstring == "merge": init_item = self.get_item(f"{item['full_name']}.__init__") if init_item: lines.extend( [ "```{rubric} Initialization", "```", "", f"```{{autodoc2-docstring}} {init_item['full_name']}", ] ) if parser_name := self.get_doc_parser(init_item["full_name"]): lines.append(f":parser: {parser_name}") lines.extend(["```", ""]) for child in self.get_children( item, {"class", "property", "attribute", "method"} ): if ( child["full_name"].endswith(".__init__") and self.config.class_docstring == "merge" ): continue for line in self.render_item(child["full_name"]): lines.append(line) backticks = self.enclosing_backticks("\n".join(lines)) yield f"{backticks}{{py:{item['type']}}} {sig}" for line in lines: yield line yield backticks yield "" def render_property(self, item: ItemData) -> t.Iterable[str]: """Create the content for a property.""" short_name = item["full_name"].split(".")[-1] yield f"````{{py:property}} {short_name}" yield f":canonical: {item['full_name']}" if self.no_index(item): yield ":noindex:" for prop in ("abstractmethod", "classmethod"): if prop in item.get("properties", []): yield f":{prop}:" if item.get("return_annotation"): yield f":type: {self.format_annotation(item['return_annotation'])}" yield "" if self.show_docstring(item): yield f"```{{autodoc2-docstring}} {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f":parser: {parser_name}" yield "```" yield "" yield "````" yield "" def render_method(self, item: ItemData) -> t.Iterable[str]: """Create the content for a method.""" short_name = item["full_name"].split(".")[-1] show_annotations = self.show_annotations(item) sig = f"{short_name}({self.format_args(item['args'], show_annotations, ignore_self='self')})" if show_annotations and item.get("return_annotation"): sig += f" -> {self.format_annotation(item['return_annotation'])}" yield f"````{{py:method}} {sig}" yield f":canonical: {item['full_name']}" if self.no_index(item): yield ":noindex:" # TODO overloads # TODO collect final decorated in analysis for prop in ("abstractmethod", "async", "classmethod", "final", "staticmethod"): if prop in item.get("properties", []): yield f":{prop}:" yield "" if self.show_docstring(item): yield f"```{{autodoc2-docstring}} {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f":parser: {parser_name}" yield "```" yield "" yield "````" yield "" def render_attribute(self, item: ItemData) -> t.Iterable[str]: """Create the content for an attribute.""" yield from self.render_data(item) def render_data(self, item: ItemData) -> t.Iterable[str]: """Create the content for a data item.""" short_name = item["full_name"].split(".")[-1] yield f"````{{py:{item['type']}}} {short_name}" yield f":canonical: {item['full_name']}" if self.no_index(item): yield ":noindex:" for prop in ("abstractmethod", "classmethod"): if prop in item.get("properties", []): yield f":{prop}:" if item.get("annotation"): yield f":type: {self.format_annotation(item['annotation'])}" value = item.get("value") if isinstance(value, str): if len(value.splitlines()) == 1: if len(value) > 100: value = value[:100] + "..." yield ":value: >" # use > to ensure its understood as a string yield f" {value!r}" else: yield ":value: " # TODO in sphinx-autoapi, they made a code block inside a details/summary HTML else: value = str(value).replace("\n", " ") if len(value) > 100: value = value[:100] + "..." yield ":value: >" yield f" {value}" yield "" if self.show_docstring(item): yield f"```{{autodoc2-docstring}} {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f":parser: {parser_name}" yield "```" yield "" yield "````" yield "" def _reformat_cls_base_myst(self, value: str) -> str: """Reformat the base of a class for RST. Base annotations can come in the form:: A[B, C, D] which we want to reformat as:: {py:obj}`A`\\[{py:obj}`B`, {py:obj}`C`, {py:obj}`D`\\] """ result = "" for sub_target in _RE_DELIMS.split(value.strip()): sub_target = sub_target.strip() if _RE_DELIMS.match(sub_target): result += f"{sub_target}" if sub_target.endswith(","): result += " " else: result += "\\" elif sub_target: if result.endswith("\\"): result = result[:-1] result += f"{{py:obj}}`{self.format_base(sub_target)}`\\" if result.endswith("\\"): result = result[:-1] return result sphinx-autodoc2-0.5.0/src/autodoc2/render/rst_.py000066400000000000000000000325261453104212700216610ustar00rootroot00000000000000"""Renderer for reStructuredText.""" from __future__ import annotations import re from textwrap import indent import typing as t from autodoc2.render.base import RendererBase if t.TYPE_CHECKING: from autodoc2.utils import ItemData _RE_DELIMS = re.compile(r"(\s*[\[\]\(\),]\s*)") class RstRenderer(RendererBase): """Render the documentation as reStructuredText.""" EXTENSION = ".rst" def render_item(self, full_name: str) -> t.Iterable[str]: item = self.get_item(full_name) if item is None: raise ValueError(f"Item {full_name} does not exist") type_ = item["type"] if type_ == "package": yield from self.render_package(item) elif type_ == "module": yield from self.render_module(item) elif type_ == "function": yield from self.render_function(item) elif type_ == "class": yield from self.render_class(item) elif type_ == "exception": yield from self.render_exception(item) elif type_ == "property": yield from self.render_property(item) elif type_ == "method": yield from self.render_method(item) elif type_ == "attribute": yield from self.render_attribute(item) elif type_ == "data": yield from self.render_data(item) else: self.warn(f"Unknown item type {type_!r} for {full_name!r}") def generate_summary( self, objects: list[ItemData], alias: dict[str, str] | None = None ) -> t.Iterable[str]: alias = alias or {} yield ".. list-table::" yield " :class: autosummary longtable" yield " :align: left" yield "" for item in objects: full_name = item["full_name"] # TODO get signature (for functions, etc), plus sphinx also runs rst.escape if full_name in alias: yield f" * - :py:obj:`{alias[full_name]} <{full_name}>`" else: yield f" * - :py:obj:`{full_name}`" if self.show_docstring(item): yield f" - .. autodoc2-docstring:: {full_name}" if parser_name := self.get_doc_parser(full_name): yield f" :parser: {parser_name}" yield " :summary:" else: yield " -" def render_package(self, item: ItemData) -> t.Iterable[str]: """Create the content for a package.""" if self.standalone and self.is_hidden(item): yield from [":orphan:", ""] full_name = item["full_name"] line = f":py:mod:`{full_name}`" yield from [line, "=" * len(line), ""] yield f".. py:module:: {full_name}" if self.no_index(item): yield " :noindex:" if self.is_module_deprecated(item): yield " :deprecated:" yield "" if self.show_docstring(item): yield f".. autodoc2-docstring:: {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield " :allowtitles:" yield "" visible_subpackages = [ i["full_name"] for i in self.get_children(item, {"package"}) ] if visible_subpackages: yield from [ "Subpackages", "-----------", "", ".. toctree::", " :titlesonly:", " :maxdepth: 3", "", ] for name in visible_subpackages: yield f" {name}" yield "" visible_submodules = [ i["full_name"] for i in self.get_children(item, {"module"}) ] if visible_submodules: yield from [ "Submodules", "----------", "", ".. toctree::", " :titlesonly:", " :maxdepth: 1", "", ] for name in visible_submodules: yield f" {name}" yield "" visible_children = [ i["full_name"] for i in self.get_children(item) if i["type"] not in ("package", "module") ] if not visible_children: return title = f"{item['type'].capitalize()} Contents" yield from [title, "-" * len(title), ""] if self.show_module_summary(item): for heading, types in [ ("Classes", {"class"}), ("Functions", {"function"}), ("Data", {"data"}), ("External", {"external"}), ]: visible_items = list(self.get_children(item, types)) if visible_items: yield from [ heading, "~" * len(heading), "", ] yield from self.generate_summary( visible_items, alias={ i["full_name"]: i["full_name"].split(".")[-1] for i in visible_items }, ) yield "" yield from ["API", "~~~", ""] for name in visible_children: yield from self.render_item(name) def render_module(self, item: ItemData) -> t.Iterable[str]: """Create the content for a module.""" yield from self.render_package(item) def render_function(self, item: ItemData) -> t.Iterable[str]: """Create the content for a function.""" short_name = item["full_name"].split(".")[-1] show_annotations = self.show_annotations(item) sig = f"{short_name}({self.format_args(item['args'], show_annotations)})" if show_annotations and item.get("return_annotation"): sig += f" -> {self.format_annotation(item['return_annotation'])}" yield f".. py:function:: {sig}" yield f" :canonical: {item['full_name']}" if self.no_index(item): yield " :noindex:" # TODO overloads if "async" in item.get("properties", []): yield " :async:" # TODO it would also be good to highlight if singledispatch decorated, # or, more broadly speaking, decorated at all yield "" if self.show_docstring(item): yield f" .. autodoc2-docstring:: {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield "" def render_exception(self, item: ItemData) -> t.Iterable[str]: """Create the content for an exception.""" yield from self.render_class(item) def render_class(self, item: ItemData) -> t.Iterable[str]: """Create the content for a class.""" short_name = item["full_name"].split(".")[-1] constructor = self.get_item(f"{item['full_name']}.__init__") sig = short_name if constructor and "args" in constructor: args = self.format_args( constructor["args"], self.show_annotations(item), ignore_self="self" ) sig += f"({args})" yield f".. py:{item['type']}:: {sig}" yield f" :canonical: {item['full_name']}" if self.no_index(item): yield " :noindex:" yield "" # TODO overloads if item.get("bases") and self.show_class_inheritance(item): yield " Bases: " + ", ".join( [self._reformat_cls_base_rst(b) for b in item.get("bases", [])] ) yield "" # TODO inheritance diagram if self.show_docstring(item): yield f" .. autodoc2-docstring:: {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield "" if self.config.class_docstring == "merge": init_item = self.get_item(f"{item['full_name']}.__init__") if init_item: yield " .. rubric:: Initialization" yield "" yield f" .. autodoc2-docstring:: {init_item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield "" for child in self.get_children( item, {"class", "property", "attribute", "method"} ): if ( child["full_name"].endswith(".__init__") and self.config.class_docstring == "merge" ): continue for line in self.render_item(child["full_name"]): yield indent(line, " ") def render_property(self, item: ItemData) -> t.Iterable[str]: """Create the content for a property.""" short_name = item["full_name"].split(".")[-1] yield f".. py:property:: {short_name}" yield f" :canonical: {item['full_name']}" if self.no_index(item): yield " :noindex:" for prop in ("abstractmethod", "classmethod"): if prop in item.get("properties", []): yield f" :{prop}:" if item.get("return_annotation"): yield f" :type: {self.format_annotation(item['return_annotation'])}" yield "" if self.show_docstring(item): yield f" .. autodoc2-docstring:: {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield "" def render_method(self, item: ItemData) -> t.Iterable[str]: """Create the content for a method.""" short_name = item["full_name"].split(".")[-1] show_annotations = self.show_annotations(item) sig = f"{short_name}({self.format_args(item['args'], show_annotations, ignore_self='self')})" if show_annotations and item.get("return_annotation"): sig += f" -> {self.format_annotation(item['return_annotation'])}" yield f".. py:method:: {sig}" yield f" :canonical: {item['full_name']}" if self.no_index(item): yield " :noindex:" # TODO overloads # TODO collect final decorated in analysis for prop in ("abstractmethod", "async", "classmethod", "final", "staticmethod"): if prop in item.get("properties", []): yield f" :{prop}:" yield "" if self.show_docstring(item): yield f" .. autodoc2-docstring:: {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield "" def render_attribute(self, item: ItemData) -> t.Iterable[str]: """Create the content for an attribute.""" yield from self.render_data(item) def render_data(self, item: ItemData) -> t.Iterable[str]: """Create the content for a data item.""" short_name = item["full_name"].split(".")[-1] yield f".. py:{item['type']}:: {short_name}" yield f" :canonical: {item['full_name']}" if self.no_index(item): yield " :noindex:" for prop in ("abstractmethod", "classmethod"): if prop in item.get("properties", []): yield f" :{prop}:" if item.get("annotation"): yield f" :type: {self.format_annotation(item['annotation'])}" value = item.get("value") if isinstance(value, str): if len(value.splitlines()) == 1: if len(value) > 100: value = value[:100] + "..." yield f" :value: {value!r}" else: yield " :value: " # TODO in sphinx-autoapi, they made a code block inside a details/summary HTML else: value = str(value).replace("\n", " ") if len(value) > 100: value = value[:100] + "..." yield f" :value: {value}" yield "" if self.show_docstring(item): yield f" .. autodoc2-docstring:: {item['full_name']}" if parser_name := self.get_doc_parser(item["full_name"]): yield f" :parser: {parser_name}" yield "" def _reformat_cls_base_rst(self, value: str) -> str: """Reformat the base of a class for RST. Base annotations can come in the form:: A[B, C, D] which we want to reformat as:: :py:obj:`A`\\ [\\ :py:obj:`B`\\ , :py:obj:`C`\\ , :py:obj:`D`\\ ] The backslash escapes are needed because of: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#character-level-inline-markup-1 """ result = "" for sub_target in _RE_DELIMS.split(value.strip()): sub_target = sub_target.strip() if _RE_DELIMS.match(sub_target): result += f"{sub_target}" if sub_target.endswith(","): result += " " else: result += "\\ " elif sub_target: result += f":py:obj:`{self.format_base(sub_target)}`\\ " # Strip off the extra "\ " return result[:-2] sphinx-autodoc2-0.5.0/src/autodoc2/resolve_all.py000066400000000000000000000117671453104212700217460ustar00rootroot00000000000000"""Handling of ``__all__`` resolution.""" from __future__ import annotations import typing as t from autodoc2.db import Database class AllResolutionError(Exception): """An error occurred while resolving the ``__all__``.""" class ObjectMissingError(AllResolutionError): """An object in the ``__all__`` is not available in the database.""" class CircularImportError(AllResolutionError): """A circular import was detected.""" class NoAllError(AllResolutionError): """The module does not have an ``__all__``.""" class AllResolveResult(t.TypedDict): resolved: dict[str, str] """Resolved is a dict of ``{full_name: {name}}``""" errors: list[tuple[str, str]] """Errors are tuples of ``(full_name, error_message)``""" class AllResolver: def __init__( self, db: Database, warn_func: t.Callable[[str], None] | None = None ) -> None: """Initialise the resolver. :param db: the database to use :param warn_func: a function to call with warnings """ self._db = db self._warn_func = (lambda x: None) if warn_func is None else warn_func self._resolve_cache: dict[str, AllResolveResult] = {} def clear_cache(self) -> None: """Clear the cache.""" self._resolve_cache = {} def get_resolved_all( self, full_name: str, _breadcrumbs: tuple[str, ...] = () ) -> AllResolveResult: """Yield all names that would be imported by star. :param full_name: the fully qualified name of the module :param _breadcrumbs: used to detect circular imports """ if full_name in self._resolve_cache: return self._resolve_cache[full_name] if full_name in self._resolve_cache: return self._resolve_cache[full_name] if full_name in _breadcrumbs: raise CircularImportError( f"Circular import detected: {full_name} -> {_breadcrumbs}" ) if (item := self._db.get_item(full_name)) is None: raise ObjectMissingError(full_name) if (all_list := item.get("all")) is None: raise NoAllError(f"{full_name!r} does not have an __all__") resolved: dict[str, set[str]] = {name: set() for name in all_list} errors: list[tuple[str, str]] = [] # direct children for name in all_list: if f"{full_name}.{name}" in self._db: resolved[name].add(f"{full_name}.{name}") # direct imports star_imports: list[str] = [] for import_name, alias in item.get("imports", []): final_name = alias or import_name.split(".")[-1] if final_name == "*": star_imports.append(import_name[:-2]) elif final_name in resolved: resolved[final_name].add(import_name) # star imports for import_name in star_imports: # TODO how do we "bubble up" errors? so that we can report them try: resolved_import = self.get_resolved_all( import_name, (*_breadcrumbs, full_name) ) except ObjectMissingError: errors.append((full_name, f"from {import_name} import *; is unknown")) except CircularImportError: errors.append( (full_name, f"from {import_name} import *; is a circular import") ) except NoAllError: errors.append( ( full_name, f"from {import_name} import *; does not have an __all__", ) ) else: errors.extend(resolved_import["errors"]) for name, items in resolved_import["resolved"].items(): if name in resolved: resolved[name].add(items) final_resolved: dict[str, str] = {} for name, rnames in resolved.items(): if not rnames: errors.append((full_name, f"{name!r} is unknown")) elif len(rnames) > 1: errors.append((full_name, f"{name!r} is ambiguous: {rnames}")) else: final_resolved[name] = rnames.pop() for error in errors: self._warn_func(f"{full_name}: {error[0]}: {error[1]}") self._resolve_cache[full_name] = { "resolved": final_resolved, "errors": errors, } return self._resolve_cache[full_name] def get_name(self, name: str) -> str | None: """Get the item, first by trying the fully qualified name, then by looking at __all__ in parent modules. """ if name in self._db: return name parts = name.split(".") if len(parts) < 2: return None parent, child = ".".join(parts[:-1]), parts[-1] try: resolved = self.get_resolved_all(parent) except AllResolutionError: return None return resolved["resolved"].get(child, None) sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/000077500000000000000000000000001453104212700203625ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/__init__.py000066400000000000000000000000451453104212700224720ustar00rootroot00000000000000"""Module for Sphinx integration.""" sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/autodoc.py000066400000000000000000000110151453104212700223700ustar00rootroot00000000000000"""autodoc directive for sphinx.""" from __future__ import annotations from contextlib import contextmanager import typing as t from docutils import nodes from docutils.parsers.rst import directives from sphinx.environment import BuildEnvironment from sphinx.util.docutils import SphinxDirective from autodoc2.sphinx.utils import ( get_all_analyser, get_database, load_config, nested_parse_generated, warn_sphinx, ) from autodoc2.utils import ItemData, WarningSubtypes try: import tomllib except ImportError: # python < 3.11 import tomli as tomllib # type: ignore class AutodocObject(SphinxDirective): """Directive to render a docstring of an object.""" required_arguments = 1 # the full name final_argument_whitespace = False has_content = True # TODO autogenerate this from the config option_spec: t.ClassVar[dict[str, t.Any]] = { "literal": directives.flag, # return the literal render string "literal-lexer": directives.unchanged, # the lexer to use for literal } def run(self) -> list[nodes.Node]: source, line = self.get_source_info() # warnings take the docname and line number warning_loc = (self.env.docname, line) full_name = self.arguments[0] autodoc2_db = get_database(self.env) if full_name not in autodoc2_db: warn_sphinx( f"Could not find {full_name}", WarningSubtypes.NAME_NOT_FOUND, location=warning_loc, ) return [] # find the parent class/module mod_parent = None class_parent = None for ancestor in autodoc2_db.get_ancestors(full_name, include_self=True): if ancestor is None: break # should never happen if class_parent is None and ancestor["type"] == "class": class_parent = ancestor if ancestor["type"] in ("module", "package"): mod_parent = ancestor break if mod_parent is None: warn_sphinx( f"Could not find parent module {full_name}", WarningSubtypes.NAME_NOT_FOUND, location=warning_loc, ) return [] # ensure rebuilds when the source file changes file_path = mod_parent.get("file_path") if file_path: self.env.note_dependency(file_path) # load the configuration with overrides overrides = {} try: overrides = tomllib.loads("\n".join(self.content)) if self.content else {} except Exception as err: warn_sphinx( f"Could not parse TOML config: {err}", WarningSubtypes.CONFIG_ERROR, location=warning_loc, ) config = load_config(self.env.app, overrides=overrides, location=warning_loc) # setup warnings def _warn_render(msg: str, type_: WarningSubtypes) -> None: warn_sphinx(msg, type_, location=warning_loc) # create the content from the renderer content = list( config.render_plugin( autodoc2_db, config, all_resolver=get_all_analyser(self.env), warn=_warn_render, standalone=True, ).render_item(full_name) ) if "literal" in self.options: literal = nodes.literal_block(text="\n".join(content)) self.set_source_info(literal) if "literal-lexer" in self.options: literal["language"] = self.options["literal-lexer"] return [literal] with _set_parents(self.env, mod_parent, class_parent): base = nested_parse_generated( self.state, content, source, line, match_titles=True, # TODO ) return base.children or [] @contextmanager def _set_parents( env: BuildEnvironment, mod: ItemData, klass: ItemData | None ) -> t.Generator[None, None, None]: """Ensure we setup the correct parent This allows sphinx to properly process the `py` directives. """ current_module = env.ref_context.get("py:module") current_class = env.ref_context.get("py:class") env.ref_context["py:module"] = mod["full_name"] if klass: env.ref_context["py:class"] = klass["full_name"] try: yield finally: env.ref_context["py:module"] = current_module env.ref_context["py:class"] = current_class sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/docstring.py000066400000000000000000000216421453104212700227350ustar00rootroot00000000000000"""Directive for rendering docstrings.""" from __future__ import annotations from contextlib import contextmanager import typing as t from docutils import nodes from docutils.parsers import Parser, get_parser_class from docutils.parsers.rst import directives, roles from docutils.statemachine import StringList from sphinx.util.docutils import SphinxDirective, new_document from sphinx.util.logging import prefixed_warnings from autodoc2.sphinx.utils import get_database, nested_parse_generated, warn_sphinx from autodoc2.utils import WarningSubtypes if t.TYPE_CHECKING: from docutils.parsers.rst.states import RSTStateMachine def parser_options(argument: str) -> Parser | None: """ Return a docutils parser whose name matches the argument. (Directive option conversion function.) Return `None`, if the argument evaluates to `False`. Raise `ValueError` if importing the parser module fails. """ if not argument or not argument.strip(): return None if argument in ("myst", "markdown", "md"): # we want to use the sphinx parser, not the docutils one argument = "myst_parser.sphinx_" try: return get_parser_class(argument) except ImportError as err: raise ValueError(str(err)) def summary_option(argument: str) -> int | None: """Must be empty or a positive integer.""" if argument and argument.strip(): try: value = int(argument) except ValueError: raise ValueError("non-integer value; must be an integer") if value < 0: raise ValueError("negative value; must be positive or zero") return value else: return None class DocstringRenderer(SphinxDirective): """Directive to render a docstring of an object.""" has_content = False required_arguments = 1 # the full name optional_arguments = 0 final_argument_whitespace = True option_spec: t.ClassVar[dict[str, t.Any]] = { "parser": parser_options, "allowtitles": directives.flag, # used for module docstrings "summary": summary_option, # number of children to return "literal": directives.flag, # return the literal docstring "literal-lexer": directives.unchanged, # the lexer to use for literal "literal-linenos": directives.flag, # add line numbers to literal } def run(self) -> list[nodes.Node]: """Run the directive {a}`1`.""" directive_source, directive_line = self.get_source_info() # warnings take the docname and line number warning_loc = (self.env.docname, directive_line) # find the database item for this object full_name: str = self.arguments[0] autodoc2_db = get_database(self.env) item = autodoc2_db.get_item(full_name) if item is None: if "summary" not in self.options: # summaries can include items imported from external modules # which may not be in the database, so we don't warn about those warn_sphinx( f"Could not find {full_name}", WarningSubtypes.NAME_NOT_FOUND, location=warning_loc, ) return [] # find the source path for this object, by walking up the parent tree source_name = item["doc_inherited"] if item.get("doc_inherited") else full_name source_path: str | None = None for ancestor in autodoc2_db.get_ancestors(source_name, include_self=True): if ancestor is None: break # should never happen if "file_path" in ancestor: source_path = ancestor["file_path"] break source_item = autodoc2_db.get_item(source_name) # also get the line number within the file source_offset = ( source_item["range"][0] if source_item and ("range" in source_item) else 0 ) if source_path: # ensure rebuilds when the source file changes self.env.note_dependency(source_path) if not item["doc"].strip(): return [] if "literal" in self.options: # return the literal docstring literal = nodes.literal_block(text=item["doc"]) self.set_source_info(literal) if "literal-lexer" in self.options: literal["language"] = self.options["literal-lexer"] if "literal-linenos" in self.options: literal["linenos"] = True literal["highlight_args"] = {"linenostart": 1 + source_offset} return [literal] # now we run the actual parsing # here things get a little tricky: # 1. We want to parse the docstring according to the correct parser, # which, may not be the same as the current parser. # 2. We want to set the source path and line number correctly # so that warnings and errors are reported against the actual source documentation. with prefixed_warnings("[Autodoc2]:"): if self.options.get("parser", None): # parse into a dummy document and return created nodes parser: Parser = self.options["parser"]() document = new_document( source_path or self.state.document["source"], self.state.document.settings, ) document.reporter.get_source_and_line = lambda li: ( source_path, li + source_offset, ) with parsing_context(): parser.parse(item["doc"], document) children = document.children or [] else: doc_lines = item["doc"].splitlines() if source_path: # Here we perform a nested render, but temporarily setup the document/reporter # with the correct document path and lineno for the included file. with change_source( self.state, source_path, source_offset - directive_line ): base = nodes.Element() base.source = source_path base.line = source_offset content = StringList( doc_lines, source=source_path, items=[ (source_path, i + source_offset + 1) for i in range(len(doc_lines)) ], ) self.state.nested_parse( content, 0, base, match_titles="allowtitles" in self.options ) else: base = nested_parse_generated( self.state, doc_lines, directive_source, directive_line, match_titles="allowtitles" in self.options, ) children = base.children or [] if children and ("summary" in self.options): if self.options["summary"] in (None, 1): return [children[0]] return children[: self.options["summary"]] return children @contextmanager def parsing_context() -> t.Generator[None, None, None]: """Restore the parsing context after a nested parse with a different parser.""" should_restore = False if "" in roles._roles: blankrole = roles._roles[""] try: yield finally: if should_restore: roles._roles[""] = blankrole @contextmanager def change_source( state: RSTStateMachine, source_path: str, line_offset: int ) -> t.Generator[None, None, None]: """Temporarily change the source and line number.""" # TODO also override the warning message to include the original source source = state.document["source"] rsource = state.reporter.source line_func = getattr(state.reporter, "get_source_and_line", None) try: state.document["source"] = source_path state.reporter.source = source_path state.reporter.get_source_and_line = lambda li: ( source_path, li + line_offset, ) yield finally: state.document["source"] = source state.reporter.source = rsource if line_func is not None: state.reporter.get_source_and_line = line_func else: del state.reporter.get_source_and_line def _example(a: int, b: str) -> None: """This is an example docstring, written in MyST. It has a code fence: ```python a = "hallo" ``` and a table: | a | b | c | | - | - | - | | 1 | 2 | 3 | and, using the `fieldlist` extension, a field list: :param a: the first parameter :param b: the second parameter :return: the return value """ sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/extension.py000066400000000000000000000226711453104212700227600ustar00rootroot00000000000000"""The sphinx extension for the package.""" from __future__ import annotations from contextlib import suppress import hashlib from pathlib import Path, PurePosixPath import shutil import subprocess from time import sleep import typing as t from sphinx.application import Sphinx from autodoc2 import __version__ from autodoc2.analysis import analyse_module from autodoc2.config import CONFIG_PREFIX, Config from autodoc2.db import UniqueError from autodoc2.sphinx.autodoc import AutodocObject from autodoc2.sphinx.docstring import DocstringRenderer from autodoc2.sphinx.summary import AutodocSummary from autodoc2.sphinx.utils import ( LOGGER, get_all_analyser, get_database, load_config, warn_sphinx, ) from autodoc2.utils import WarningSubtypes, yield_modules try: from sphinx.util.display import status_iterator except ImportError: # sphinx <6 compatibility from sphinx.util import status_iterator # type: ignore def setup(app: Sphinx) -> dict[str, str | bool]: """Entry point for sphinx.""" # create the configuration options for name, default, field in Config().as_triple(): sphinx_type = t.Any if "sphinx_type" in field.metadata: sphinx_type = field.metadata["sphinx_type"] if sphinx_type in (str, int, float, bool, list): sphinx_type = (sphinx_type,) app.add_config_value( f"{CONFIG_PREFIX}{name}", field.metadata.get("sphinx_default", default), "env", types=sphinx_type, ) # create the main event app.connect("builder-inited", run_autodoc) app.add_directive("autodoc2-docstring", DocstringRenderer) app.add_directive("autodoc2-summary", AutodocSummary) app.add_directive("autodoc2-object", AutodocObject) # TODO support viewcode, when a package is not installed return { "version": __version__, # TODO allow for parallelization of some form "parallel_read_safe": True, "parallel_write_safe": True, } def run_autodoc(app: Sphinx) -> None: """The primary sphinx call back event for sphinx.""" config = load_config(app) top_level_modules = [] for i, _ in enumerate(config.packages): mod_path = run_autodoc_package(app, config, i) if mod_path is not None: top_level_modules.append(mod_path) # create the index page if top_level_modules and config.index_template: import jinja2 content_str = jinja2.Template(config.index_template).render( top_level=top_level_modules ) index_path = Path(app.srcdir) / PurePosixPath(config.output_dir) / "index.rst" if not (index_path.exists() and index_path.read_text("utf8") == content_str): index_path.parent.mkdir(parents=True, exist_ok=True) index_path.write_text(content_str, "utf8") def run_autodoc_package(app: Sphinx, config: Config, pkg_index: int) -> str | None: """Run autodoc for a single package. :return: The top level module name, relative to the api directory. """ package = config.packages[pkg_index] # find all the modules to analyse root_path: None | Path = Path(app.srcdir) if package.from_git_clone is not None: url, ref = package.from_git_clone root_path = get_git_clone(app, url, ref, config) if root_path is None: return None path = root_path / PurePosixPath(package.path) modules: t.Iterable[tuple[Path, str]] if path.is_file(): root_module = package.module or path.stem modules = [(path, root_module)] elif path.is_dir(): root_module = package.module or path.name modules = list( yield_modules( path, root_module=root_module, exclude_dirs=package.exclude_dirs, exclude_files=package.exclude_files, ) ) else: warn_sphinx(f"Package {path} does not exist", WarningSubtypes.MISSING_MODULE) return None autodoc2_db = get_database(app.env) # store mapping of file paths to root modules and their hashes # this allows us to check if we need to re-analyse a module autodoc2_cache: dict[str, EnvCache] if not hasattr(app.env, "autodoc2_cache"): app.env.autodoc2_cache = autodoc2_cache = {} # type: ignore else: autodoc2_cache = app.env.autodoc2_cache # compute the hash of the modules, # so we can check if we need to re-analyse them hasher = hashlib.sha256() for mod_path, _ in sorted(modules): hasher.update(mod_path.read_bytes()) hash_str = hasher.hexdigest() if ( path.as_posix() in autodoc2_cache and autodoc2_cache[path.as_posix()]["hash"] == hash_str and autodoc2_cache[path.as_posix()]["root_module"] == root_module ): LOGGER.info(f"[Autodoc2] Using cached analysis {root_module!r}") # TODO perhaps to keep the database upd-to-date we also need to detect # if something has been removed else: # clear the current module from the database autodoc2_db.remove(root_module, descendants=True) get_all_analyser(app.env).clear_cache() # analyse the modules and write to the database for mod_path, mod_name in status_iterator( modules, "[Autodoc2] Analysing package...", length=len(modules), stringify_func=(lambda x: str(x[1])), ): for data in analyse_module(mod_path, mod_name): try: autodoc2_db.add(data) except UniqueError: warn_sphinx( f"Duplicate item {data['full_name']} ({data['type']})", WarningSubtypes.DUPLICATE_ITEM, ) autodoc2_cache[path.as_posix()] = {"hash": hash_str, "root_module": root_module} output = Path(app.srcdir) / PurePosixPath(config.output_dir) / root_module if not package.auto_mode: if output.exists() and output.is_dir(): shutil.rmtree(output) return None # find all the package/module, so we know what files to write LOGGER.info("[Autodoc2] Determining files to write ...") to_write: list[str] = [] stack = [root_module] while stack: item = stack.pop() to_write.append(item) stack.extend( [ mod for mod in autodoc2_db.get_children_names(item, {"package", "module"}) if not any(pat.fullmatch(mod) for pat in config.skip_module_regexes) ] ) def _warn_render(msg: str, type_: WarningSubtypes) -> None: warn_sphinx(msg, type_) # write the files output.mkdir(parents=True, exist_ok=True) paths = [] for mod_name in status_iterator( to_write, "[Autodoc2] Writing modules...", length=len(to_write), stringify_func=(lambda x: str(x)), ): render_cls = config.render_plugin for pat, cls in config.render_plugin_regexes: if pat.fullmatch(mod_name): render_cls = cls break content = "\n".join( render_cls( autodoc2_db, config, all_resolver=get_all_analyser(app.env), warn=_warn_render, ).render_item(mod_name) ) out_path = output / (mod_name + render_cls.EXTENSION) paths.append(out_path) if not (out_path.exists() and out_path.read_text("utf8") == content): # Don't write the file if it hasn't changed # this means that sphinx doesn't mark it for rebuild (mtime based) out_path.write_text(content, "utf8") # clean old files for path in output.iterdir(): if path.is_dir(): continue if path not in paths: path.unlink() return f"{root_module}/{root_module}" def get_git_clone( app: Sphinx, url: str, branch_tag: str, config: Config ) -> None | Path: """Download a git repository to the given folder.""" # create a sha of the url and branch folder = hashlib.sha256(url.encode("utf8") + branch_tag.encode("utf8")).hexdigest() path = Path(app.outdir) / "_autodoc2_git_clones" / folder if path.exists(): return path LOGGER.info(f"[Autodoc2] Cloning {url}@{branch_tag}") path.parent.mkdir(parents=True, exist_ok=True) retries = 3 while retries: try: subprocess.check_call( [ "git", "clone", "--single-branch", "--branch", branch_tag, url, str(path), ], env={"GIT_TERMINAL_PROMPT": "0"}, stdout=subprocess.DEVNULL, ) break except subprocess.CalledProcessError as err: LOGGER.info(f"[Autodoc2] retrying clone {url}@{branch_tag} after: {err}") if path.exists(): # remove any partial clone with suppress(Exception): shutil.rmtree(path) sleep(2) retries -= 1 else: warn_sphinx( f"Failed to clone {url}@{branch_tag}", WarningSubtypes.GIT_CLONE_FAILED ) return None return path class EnvCache(t.TypedDict): """Cache for the environment.""" hash: str # the hash of the package files root_module: str # the fully qualified root module name sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/summary.py000066400000000000000000000070761453104212700224430ustar00rootroot00000000000000"""Directive to generate a summary of listed objects.""" from __future__ import annotations from typing import Any, ClassVar from docutils import nodes from docutils.parsers.rst import directives from sphinx.util.docutils import SphinxDirective from autodoc2.sphinx.utils import ( get_all_analyser, get_database, load_config, nested_parse_generated, warn_sphinx, ) from autodoc2.utils import ItemData, WarningSubtypes class AutodocSummary(SphinxDirective): """Directive to generate a summary of listed objects.""" has_content = True required_arguments = 0 optional_arguments = 0 final_argument_whitespace = False option_spec: ClassVar[dict[str, Any]] = { "renderer": directives.unchanged_required, } def run(self) -> list[nodes.Node]: source, line = self.get_source_info() # warnings take the docname and line number warning_loc = (self.env.docname, line) all_resolver = get_all_analyser(self.env) # load the configuration overrides = {} if "renderer" in self.options: overrides = {"render_plugin": self.options["renderer"]} config = load_config(self.env.app, overrides=overrides, location=warning_loc) db = get_database(self.env) objects: list[ItemData] = [] content_line: str aliases: dict[str, str] = {} for content_idx, content_line in enumerate(self.content): parts = content_line.strip().split(maxsplit=1) if len(parts) == 0: continue full_name = parts[0] alias: str | None = None if full_name.startswith("~"): full_name = full_name[1:] alias = full_name.split(".")[-1] if len(parts) > 1: alias = parts[1] if (item := db.get_item(full_name)) is None and ( resolved_name := all_resolver.get_name(full_name) ): item = db.get_item(resolved_name) if item is not None: for ancestor in db.get_ancestors(full_name, include_self=True): if ancestor and "file_path" in ancestor: if file_path := ancestor["file_path"]: self.env.note_dependency(file_path) break if alias: aliases[item["full_name"]] = alias elif full_name != item["full_name"]: aliases[item["full_name"]] = full_name objects.append(item) else: warn_sphinx( f"Could not find {full_name}", WarningSubtypes.NAME_NOT_FOUND, location=( self.env.docname, line + self.content_offset + 1 + content_idx, ), ) if not objects: return [] # setup warnings def _warn_render(msg: str, type_: WarningSubtypes) -> None: warn_sphinx(msg, type_, location=warning_loc) # TODO it would be ideal to create this as nodes, rather than nested parsing, # but for now this is the simplest option content = list( config.render_plugin( db, config, all_resolver=all_resolver, warn=_warn_render, standalone=True, ).generate_summary(objects, alias=aliases) ) base = nested_parse_generated(self.state, content, source, line) return base.children or [] sphinx-autodoc2-0.5.0/src/autodoc2/sphinx/utils.py000066400000000000000000000075451453104212700221070ustar00rootroot00000000000000"""Handle sphinx logging.""" from __future__ import annotations import typing as t from docutils.nodes import Element from docutils.statemachine import StringList from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment from sphinx.util import logging from autodoc2.config import CONFIG_PREFIX, Config, ValidationError from autodoc2.db import Database, InMemoryDb from autodoc2.resolve_all import AllResolver from autodoc2.utils import WarningSubtypes if t.TYPE_CHECKING: from docutils.parsers.rst.states import RSTStateMachine LOGGER = logging.getLogger("autodoc2") def load_config( app: Sphinx, *, overrides: None | dict[str, t.Any] = None, location: None | Element = None, ) -> Config: """Load the configuration.""" values: dict[str, t.Any] = {} overrides = overrides or {} config_fields = {name: field for name, _, field in Config().as_triple()} # check if keys in overrides are valid difference = set(overrides.keys()) - set(config_fields.keys()) if difference: warn_sphinx( f"Unknown configuration keys: {', '.join(difference)}", WarningSubtypes.CONFIG_ERROR, location, ) for name, field in config_fields.items(): sphinx_name = f"{CONFIG_PREFIX}{name}" value = overrides.get(name, app.config[sphinx_name]) if "sphinx_validate" in field.metadata: try: value = field.metadata["sphinx_validate"](sphinx_name, value) except ValidationError as err: warn_sphinx(str(err), WarningSubtypes.CONFIG_ERROR, location) continue values[name] = value return Config(**values) def warn_sphinx( msg: str, subtype: WarningSubtypes, location: None | Element = None ) -> None: """Log a warning in Sphinx.""" LOGGER.warning( f"{msg} [autodoc2.{subtype.value}]", type="autodoc2", subtype=subtype.value, location=location, ) def get_database(env: BuildEnvironment) -> Database: """Get the database from the environment.""" # We store it persistently in the environment so that it can be # accessed by directives and other extensions. if not hasattr(env, "autodoc2_db"): env.autodoc2_db = InMemoryDb() # type: ignore return env.autodoc2_db # type: ignore def _warn(msg: str) -> None: warn_sphinx(msg, WarningSubtypes.ALL_RESOLUTION) def get_all_analyser(env: BuildEnvironment) -> AllResolver: """Get the all analyser from the environment.""" # We store it persistently in the environment so that it can be # accessed by directives and other extensions. if not hasattr(env, "autodoc2_all_analyser"): env.autodoc2_all_analyser = AllResolver(get_database(env), _warn) # type: ignore return env.autodoc2_all_analyser # type: ignore def nested_parse_generated( state: RSTStateMachine, content: list[str], source: str, line: int, *, match_titles: bool = False, base: Element | None = None, ) -> Element: """This function, nested parses generated content in a directive. All reported warnings are redirected to a specific source document and line. This is useful for directives that want to parse generated content. """ base = Element() if base is None else base base.source = source base.line = line string_list = StringList( content, items=[(source, line - 1) for _ in content], ) line_func = getattr(state.reporter, "get_source_and_line", None) state.reporter.get_source_and_line = lambda li: ( source, line, ) try: state.nested_parse(string_list, 0, base, match_titles=match_titles) finally: if line_func is not None: state.reporter.get_source_and_line = line_func else: del state.reporter.get_source_and_line return base sphinx-autodoc2-0.5.0/src/autodoc2/utils.py000066400000000000000000000071011453104212700205620ustar00rootroot00000000000000"""Utility functions and types.""" from __future__ import annotations import enum from fnmatch import fnmatch import os from pathlib import Path import typing as t from typing_extensions import Required PROPERTY_TYPE = t.Literal[ "async", "staticmethod", "classmethod", "abstractmethod", "singledispatch" ] ARGS_TYPE = t.List[ t.Tuple[t.Optional[str], t.Optional[str], t.Optional[str], t.Optional[str]] ] class ItemData(t.TypedDict, total=False): """A data item, for the results of the analysis.""" type: Required[str] full_name: Required[str] # this is delimited by dots doc: Required[str] range: tuple[int, int] ## module / package file_path: None | str encoding: str all: None | list[str] imports: list[tuple[str, str | None]] # path, alias # assign (data) value: None | str | t.Any # TODO make value JSON serializable annotation: None | str # function/method/overload properties: list[PROPERTY_TYPE] args: ARGS_TYPE return_annotation: None | str # class bases: list[str] # class or method doc_inherited: str # child of class inherited: str class WarningSubtypes(enum.Enum): """The subtypes of warnings for the extension.""" CONFIG_ERROR = "config_error" """Issue with configuration validation.""" GIT_CLONE_FAILED = "git_clone" """Failed to clone a git repository.""" MISSING_MODULE = "missing_module" """If the package file/folder does not exist.""" DUPLICATE_ITEM = "dup_item" """Duplicate fully qualified name found during package analysis.""" RENDER_ERROR = "render" """Generic rendering error.""" ALL_MISSING = "all_missing" """__all__ attribute missing or empty in a module.""" ALL_RESOLUTION = "all_resolve" """Issue with resolution of an item in a module's __all__ attribute.""" NAME_NOT_FOUND = "missing" def yield_modules( folder: str | Path, *, root_module: str | None = None, extensions: t.Sequence[str] = (".py", ".pyi"), exclude_dirs: t.Sequence[str] = ("__pycache__",), exclude_files: t.Sequence[str] = (), ) -> t.Iterable[tuple[Path, str]]: """Walk the given folder and yield all required modules. :param folder: The path to walk. :param root_module: The name of the root module, otherwise the folder name is used. :param extensions: The extensions to include. If multiple files with the same stem, only the first extension will be used. :param exclude_dirs: Directory names to exclude (matched with fnmatch). :param exclude_files: File names to exclude (matched with fnmatch). """ folder = Path(folder) root_mod = (root_module or folder.name).split(".") exc_dirs = set(exclude_dirs or []) exc_files = set(exclude_files or []) def _suffix_sort_key(s: str) -> int: return extensions.index(s) for root, dirs, filenames in os.walk(folder, topdown=True): dirs[:] = [d for d in dirs if not any(fnmatch(d, m) for m in exc_dirs)] to_yield: dict[str, list[str]] = {} for filename in filenames: if any(fnmatch(filename, m) for m in exc_files): continue name, suffix = os.path.splitext(filename) if suffix in extensions: to_yield.setdefault(name, []).append(suffix) root_path = Path(root) rel_mod = root_path.relative_to(folder).parts for name, suffixes in to_yield.items(): suffix = sorted(suffixes, key=_suffix_sort_key)[0] yield (root_path / f"{name}{suffix}", ".".join([*root_mod, *rel_mod, name])) sphinx-autodoc2-0.5.0/tests/000077500000000000000000000000001453104212700157045ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/tests/test_analyse_module.py000066400000000000000000000076411453104212700223260ustar00rootroot00000000000000"""Basic tests for the analysis module.""" from __future__ import annotations import typing as t from autodoc2.analysis import analyse_module import pytest def clean_item(item: dict[str, t.Any]) -> dict[str, t.Any]: """Remove non-deterministic data.""" return { key: value for key, value in item.items() if key not in ("modified", "file_path", "encoding") } test_items = { # module "module_docstring": "'''Docstring'''", "module_all": "__all__ = ['a', 'b', 'c']", # annotation only assign "assign_annotation": "a: str", "assign_annotation_union": "a: str | int", # assign "assign_class": "class Foo: ...\na = Foo()", # assign with annotation "assign_string": "a: str = 'Hello World'\n'''Docstring'''", "assign_bytes": "a: bytes = b'Hello World'", "assign_int": "a: int = 42", "assign_float": "a: float = 3.14", "assign_list": "a: list = [1, 2, 3]", "assign_tuple": "a: tuple = (1, 2, 3)", "assign_dict": "a: dict[str, int] = {'a': 1, 'b': 2, 'c': 3}", "assign_set": "a: set[int] = {1, 2, 3}", "assign_with_docstring": "a: str = 'Hello World'\n'''Docstring'''", # function with annotation "func_basic": "def a() -> str: ...", "func_1arg": "def a(b: int) -> str: ...", "func_args": "def a(*b: int) -> str: ...", "func_1kwarg": "def a(*, b: int) -> str: ...", "func_kwargs": "def a(**kw: float) -> str: ...", "func_docstring": "def a() -> str:\n '''Docstring'''\n", "func_async": "async def a() -> str: ...", # class with annotation "class_basic": "class A: ...", "class_inherit": "class A(B): ...", "class_inherit_multi": "class A(B, C): ...", "class_inherit_generic": "class A(B[int]): ...", "class_docstring": "class A:\n '''Docstring'''\n", "class_attribute": "class A:\n a: str", "class_attribute_with_docstring": "class A:\n a: str\n '''Docstring'''\n", # class method with annotation "class_method_basic": "class A:\n def a(self) -> str: ...", # class property with annotation "class_property_basic": "class A:\n @property\n def a(self) -> str: ...", # class static method with annotation "class_staticmethod_basic": "class A:\n @staticmethod\n def a() -> str: ...", # class class method with annotation "class_classmethod_basic": "class A:\n @classmethod\n def a(cls) -> str: ...", # class abstract method with annotation "class_abstractmethod_basic": "import abc\n\nclass A:\n @abc.abstractmethod\n def a(self) -> str: ...", "class_inherited": "class A:\n def a(self) -> str: ...\nclass B(A): ...", "class_inherited_with_docstring": "class A:\n '''Docstring'''\n\n def a(self) -> str: ...\nclass B(A): ...", # overloads "overload_basic": "from typing import overload\n\n@overload\ndef a() -> str: ...\n@overload\ndef a(b: int) -> str: ...", } @pytest.mark.parametrize( "content", list(test_items.values()), ids=list(test_items), ) def test_basic(content, tmp_path, data_regression): tmp_path.joinpath("test.py").write_text(content) data = [clean_item(item) for item in analyse_module(tmp_path / "test.py", "test")] data_regression.check(data) def test_package(tmp_path, data_regression): pkg = tmp_path.joinpath("test") pkg.mkdir() pkg.joinpath("__init__.py").write_text("'''Docstring'''") pkg.joinpath("a.py").write_text("a: str = 'Hello World'") pkg.joinpath("b.py").write_text( "from .a import a\nfrom .a import a as x\nb: str = a" ) data = { "init": [ clean_item(item) for item in analyse_module(pkg.joinpath("__init__.py"), "test") ], "a": [ clean_item(item) for item in analyse_module(pkg.joinpath("a.py"), "test.a") ], "b": [ clean_item(item) for item in analyse_module(pkg.joinpath("b.py"), "test.b") ], } data_regression.check(data) sphinx-autodoc2-0.5.0/tests/test_analyse_module/000077500000000000000000000000001453104212700217445ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_annotation_.yml000066400000000000000000000002271453104212700305450ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: str doc: '' full_name: test.a range: - 1 - 1 type: data value: null sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_annotation_union_.yml000066400000000000000000000002351453104212700317540ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: str | int doc: '' full_name: test.a range: - 1 - 1 type: data value: null sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_bytes_.yml000066400000000000000000000002641453104212700275220ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: bytes doc: '' full_name: test.a range: - 1 - 1 type: data value: !!binary | SGVsbG8gV29ybGQ= sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_class_.yml000066400000000000000000000003531453104212700275000ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.Foo range: - 1 - 1 type: class - annotation: null doc: '' full_name: test.a range: - 2 - 2 type: data value: Foo(...) sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_dict_.yml000066400000000000000000000002421453104212700273130ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: dict[str, int] doc: '' full_name: test.a range: - 1 - 1 type: data value: null sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_float_.yml000066400000000000000000000002311453104212700274730ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: float doc: '' full_name: test.a range: - 1 - 1 type: data value: 3.14 sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_int_.yml000066400000000000000000000002251453104212700271630ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: int doc: '' full_name: test.a range: - 1 - 1 type: data value: 42 sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_list_.yml000066400000000000000000000002451453104212700273460ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: list doc: '' full_name: test.a range: - 1 - 1 type: data value: - 1 - 2 - 3 sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_set_.yml000066400000000000000000000002341453104212700271640ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: set[int] doc: '' full_name: test.a range: - 1 - 1 type: data value: null sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_string_.yml000066400000000000000000000002451453104212700277010ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: str doc: Docstring full_name: test.a range: - 1 - 1 type: data value: Hello World sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_tuple_.yml000066400000000000000000000002461453104212700275250ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: tuple doc: '' full_name: test.a range: - 1 - 1 type: data value: - 1 - 2 - 3 sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_assign_with_docstring_.yml000066400000000000000000000002451453104212700314220ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - annotation: str doc: Docstring full_name: test.a range: - 1 - 1 type: data value: Hello World sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_abstractmethod_basic_.yml000066400000000000000000000004151453104212700323600ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 3 - 5 type: class - args: [] doc: '' full_name: test.A.a properties: - abstractmethod range: - 5 - 5 return_annotation: str type: method sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_attribute_.yml000066400000000000000000000003531453104212700302170ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 2 type: class - annotation: str doc: '' full_name: test.A.a range: - 2 - 2 type: attribute value: null sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_attribute_with_docstring_.yml000066400000000000000000000003621453104212700333260ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 3 type: class - annotation: str doc: Docstring full_name: test.A.a range: - 2 - 2 type: attribute value: null sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_basic_.yml000066400000000000000000000002041453104212700272700ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 1 type: class sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_classmethod_basic_.yml000066400000000000000000000004121453104212700316570ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 3 type: class - args: [] doc: '' full_name: test.A.a properties: - classmethod range: - 3 - 3 return_annotation: str type: method sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_docstring_.yml000066400000000000000000000002131453104212700302030ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: Docstring full_name: test.A range: - 1 - 2 type: class sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_inherit_.yml000066400000000000000000000002071453104212700276540ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: - B doc: '' full_name: test.A range: - 1 - 1 type: class sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_inherit_generic_.yml000066400000000000000000000002141453104212700313460ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: - B[int] doc: '' full_name: test.A range: - 1 - 1 type: class sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_inherit_multi_.yml000066400000000000000000000002151453104212700310650ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: - B - C doc: '' full_name: test.A range: - 1 - 1 type: class sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_inherited_.yml000066400000000000000000000006751453104212700301760ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 2 type: class - args: [] doc: '' full_name: test.A.a range: - 2 - 2 return_annotation: str type: method - bases: - test.A doc: '' full_name: test.B range: - 3 - 3 type: class - args: [] doc: '' full_name: test.B.a inherited: test.A range: - 2 - 2 return_annotation: str type: method sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_inherited_with_docstring_.yml000066400000000000000000000007431453104212700333010ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: Docstring full_name: test.A range: - 1 - 4 type: class - args: [] doc: '' full_name: test.A.a range: - 4 - 4 return_annotation: str type: method - bases: - test.A doc: Docstring doc_inherited: test.A full_name: test.B range: - 5 - 5 type: class - args: [] doc: '' full_name: test.B.a inherited: test.A range: - 4 - 4 return_annotation: str type: method sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_method_basic_.yml000066400000000000000000000003541453104212700306360ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 2 type: class - args: [] doc: '' full_name: test.A.a range: - 2 - 2 return_annotation: str type: method sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_property_basic_.yml000066400000000000000000000003561453104212700312440ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 3 type: class - args: [] doc: '' full_name: test.A.a range: - 3 - 3 return_annotation: str type: property sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_class_staticmethod_basic_.yml000066400000000000000000000004131453104212700320420ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - bases: [] doc: '' full_name: test.A range: - 1 - 3 type: class - args: [] doc: '' full_name: test.A.a properties: - staticmethod range: - 3 - 3 return_annotation: str type: method sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_1arg_.yml000066400000000000000000000003041453104212700266700ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: - - null - b - int - null doc: '' full_name: test.a range: - 1 - 1 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_1kwarg_.yml000066400000000000000000000003571453104212700272420ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: - - '*' - null - null - null - - null - b - int - null doc: '' full_name: test.a range: - 1 - 1 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_args_.yml000066400000000000000000000003031453104212700267710ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: - - '*' - b - int - null doc: '' full_name: test.a range: - 1 - 1 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_async_.yml000066400000000000000000000002671453104212700271630ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: [] doc: '' full_name: test.a properties: - async range: - 1 - 1 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_basic_.yml000066400000000000000000000002371453104212700271240ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: [] doc: '' full_name: test.a range: - 1 - 1 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_docstring_.yml000066400000000000000000000002461453104212700300370ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: [] doc: Docstring full_name: test.a range: - 1 - 2 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_func_kwargs_.yml000066400000000000000000000003071453104212700273370ustar00rootroot00000000000000- all: null doc: '' full_name: test type: module - args: - - '**' - kw - float - null doc: '' full_name: test.a range: - 1 - 1 return_annotation: str type: function sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_module_all_.yml000066400000000000000000000002701453104212700271420ustar00rootroot00000000000000- all: - a - b - c doc: '' full_name: test type: module - annotation: null doc: '' full_name: test.__all__ range: - 1 - 1 type: data value: - a - b - c sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_module_docstring_.yml000066400000000000000000000000761453104212700303720ustar00rootroot00000000000000- all: null doc: Docstring full_name: test type: module sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_basic_overload_basic_.yml000066400000000000000000000005301453104212700300000ustar00rootroot00000000000000- all: null doc: '' full_name: test imports: - - typing.overload - null type: module - args: [] doc: '' full_name: test.a range: - 4 - 4 return_annotation: str type: overload - args: - - null - b - int - null doc: '' full_name: test.a range: - 6 - 6 return_annotation: str type: overload sphinx-autodoc2-0.5.0/tests/test_analyse_module/test_package.yml000066400000000000000000000007041453104212700251220ustar00rootroot00000000000000a: - all: null doc: '' full_name: test.a type: module - annotation: str doc: '' full_name: test.a.a range: - 1 - 1 type: data value: Hello World b: - all: null doc: '' full_name: test.b imports: - - test.a.a - null - - test.a.a - x type: module - annotation: str doc: '' full_name: test.b.b range: - 3 - 3 type: data value: null init: - all: null doc: Docstring full_name: test type: package sphinx-autodoc2-0.5.0/tests/test_database.py000066400000000000000000000034351453104212700210660ustar00rootroot00000000000000"""Tests for the database.""" from pathlib import Path from textwrap import dedent from autodoc2.analysis import analyse_module from autodoc2.db import InMemoryDb from autodoc2.resolve_all import AllResolver from autodoc2.utils import yield_modules def test_all_resolution(tmp_path: Path, data_regression): """Test __all__ resolution""" package = tmp_path / "package" package.mkdir() package.joinpath("__init__.py").write_text( dedent( """\ from package.a import a1 from package.a.c import ac1 as alias from unknown import something from .b import * from .d import * from other import * __all__ = ['p', 'a1', 'alias', 'something', 'unknown'] p = 1 """ ), "utf-8", ) package.joinpath("a").mkdir() package.joinpath("a", "__init__.py").write_text( dedent( """\ from .c import * from .d import * __all__ = ['a1', 'ac1', 'ad1', 'ade1', 'adf1'] a1 = 1 """ ), "utf-8", ) package.joinpath("a", "c.py").write_text( dedent( """\ __all__ = ['ac1'] ac1 = 1 """ ), "utf-8", ) package.joinpath("b.py").touch() package.joinpath("d.py").write_text( # circular import dedent( """\ from package import * __all__ = ['p'] """ ), "utf-8", ) db = InMemoryDb() for path, modname in yield_modules(package): for item in analyse_module(path, modname): db.add(item) warnings = [] resolver = AllResolver(db, warnings.append) result = resolver.get_resolved_all("package") data_regression.check({"result": result, "warnings": warnings}) sphinx-autodoc2-0.5.0/tests/test_database/000077500000000000000000000000001453104212700205075ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/tests/test_database/test_all_resolution.yml000066400000000000000000000014451453104212700253300ustar00rootroot00000000000000result: errors: - - package - from package.b import *; does not have an __all__ - - package.d - from package import *; is a circular import - - package.d - '''p'' is unknown' - - package - from other import *; is unknown - - package - '''unknown'' is unknown' resolved: a1: package.a.a1 alias: package.a.c.ac1 p: package.p something: unknown.something warnings: - 'package.d: package.d: from package import *; is a circular import' - 'package.d: package.d: ''p'' is unknown' - 'package: package: from package.b import *; does not have an __all__' - 'package: package.d: from package import *; is a circular import' - 'package: package.d: ''p'' is unknown' - 'package: package: from other import *; is unknown' - 'package: package: ''unknown'' is unknown' sphinx-autodoc2-0.5.0/tests/test_render.py000066400000000000000000000175241453104212700206050ustar00rootroot00000000000000"""Tests for the rendering.""" import io from pathlib import Path from textwrap import dedent from autodoc2.analysis import analyse_module from autodoc2.config import Config from autodoc2.db import InMemoryDb from autodoc2.render.base import RendererBase from autodoc2.render.myst_ import MystRenderer from autodoc2.render.rst_ import RstRenderer from autodoc2.utils import yield_modules import pytest from sphinx.testing.util import SphinxTestApp from sphinx.testing.util import path as sphinx_path @pytest.mark.parametrize( "renderer,extension", [ (RstRenderer, ".rst"), (MystRenderer, ".md"), ], ids=["rst", "myst"], ) def test_basic(renderer: RendererBase, extension: str, tmp_path: Path, file_regression): """Test basic rendering.""" package = build_package(tmp_path) db = InMemoryDb() for path, modname in yield_modules(package): for item in analyse_module(path, modname): db.add(item) content = "\n".join(renderer(db, Config()).render_item(package.name)) file_regression.check(content, extension=extension) @pytest.mark.parametrize( "renderer,extension", [ (RstRenderer, ".rst"), (MystRenderer, ".md"), ], ids=["rst", "myst"], ) def test_config_options( renderer: RendererBase, extension: str, tmp_path: Path, file_regression ): """Test basic rendering.""" package = build_package(tmp_path) db = InMemoryDb() for path, modname in yield_modules(package): for item in analyse_module(path, modname): db.add(item) config = Config(no_index=True) content = "\n".join(renderer(db, config).render_item(package.name + ".func")) file_regression.check(content, extension=extension) @pytest.mark.parametrize( "with_rebuild", [True, False], ids=["with_rebuild", "without_rebuild"], ) def test_sphinx_build(tmp_path: Path, with_rebuild: bool): """Test building the Sphinx docs.""" build_package(tmp_path) source = tmp_path / "source" source.mkdir() source.joinpath("conf.py").write_text( dedent( """\ project = "tester" extensions = ["autodoc2"] autodoc2_packages = ["../package"] """ ), "utf-8", ) source.joinpath("index.rst").write_text( dedent( """\ Test ==== .. toctree:: apidocs/index """ ), "utf-8", ) warnings = io.StringIO() build = tmp_path / "build" app = SphinxTestApp( buildername="html", srcdir=sphinx_path(source), builddir=sphinx_path(build), warning=warnings, ) try: app.build() finally: app.cleanup() assertions = {} # catch all the assertion failures, before failing the test if warnings.getvalue(): assertions["warnings"] = warnings.getvalue() # print([p.relative_to(tmp_path).as_posix() for p in tmp_path.glob("**/*")]) package_source = source / "apidocs" / "package" / "package.rst" if not (source / "apidocs" / "package" / "package.rst").exists(): assertions["source/apidocs/package/package.rst"] = "not found" else: package_source_mtime = package_source.stat().st_mtime if not (build / "html" / "index.html").exists(): assertions["build/index.html"] = "not found" if not (build / "html" / "apidocs" / "index.html").exists(): assertions["build/apidocs/index.html"] = "not found" package_html = build / "html" / "apidocs" / "package" / "package.html" if not package_html.exists(): assertions["build/apidocs/package/package.html"] = "not found" else: package_html_mtime = package_html.stat().st_mtime if not hasattr(app.env, "autodoc2_cache"): assertions["autodoc2_cache"] = "not found" if not getattr(app.env, "autodoc2_cache"): # noqa: B009 assertions["autodoc2_cache"] = "empty" if assertions: pytest.fail(f"Failed assertions {assertions}") if not with_rebuild: return # test rebuild rebuild_warnings = io.StringIO() rebuild_app = SphinxTestApp( buildername="html", srcdir=sphinx_path(source), builddir=sphinx_path(build), warning=rebuild_warnings, ) try: rebuild_app.build() finally: rebuild_app.cleanup() if rebuild_warnings.getvalue(): pytest.fail(f"Warnings on rebuild: {rebuild_warnings.getvalue()}") if package_source.stat().st_mtime != package_source_mtime: pytest.fail("Rebuild did not use cached source") if package_html.stat().st_mtime != package_html_mtime: pytest.fail("Rebuild did not use cached html") def test_sphinx_build_directives(tmp_path: Path, file_regression): """Test building the Sphinx docs, using directives.""" build_package(tmp_path) source = tmp_path / "source" source.mkdir() source.joinpath("conf.py").write_text( dedent( """\ project = "tester" extensions = ["autodoc2"] autodoc2_packages = [ { "path": "../package", "auto_mode": False, } ] """ ), "utf-8", ) source.joinpath("index.rst").write_text( dedent( """\ Test ==== .. autodoc2-docstring:: package.func :literal: :literal-linenos: :literal-lexer: restructuredtext .. autodoc2-docstring:: package.func .. autodoc2-object:: package.func :literal: :literal-lexer: restructuredtext .. autodoc2-object:: package.func :literal: render_plugin = "myst" .. autodoc2-object:: package.func .. autodoc2-summary:: package.func package.a1 """ ), "utf-8", ) warnings = io.StringIO() build = tmp_path / "build" app = SphinxTestApp( buildername="html", srcdir=sphinx_path(source), builddir=sphinx_path(build), warning=warnings, ) try: app.build() finally: app.cleanup() assert not warnings.getvalue() doctree = app.env.get_doctree("index") doctree["source"] = "index.rst" content = "\n".join([line.rstrip() for line in doctree.pformat().splitlines()]) file_regression.check(content, extension=".xml") def build_package(tmp_path: Path) -> Path: """Build a simple package for testing.""" package = tmp_path / "package" package.mkdir() package.joinpath("__init__.py").write_text( dedent( """\ '''This is a test package.''' from package.a import a1 from package.a.c import ac1 as alias __all__ = ['p', 'a1', 'alias'] p = 1 '''p can be documented here.''' def func(a: str, b: int) -> alias: '''This is a function.''' class Class: '''This is a class.''' x: int = 1 '''x can be documented here.''' def method(self, a: str, b: int) -> ...: '''This is a method.''' @property def prop(self) -> alias | None: '''This is a property.''' class Nested: '''This is a nested class.''' """ ), "utf-8", ) package.joinpath("a").mkdir() package.joinpath("a", "__init__.py").write_text( dedent( """\ '''This is a test module.''' from .c import * from .d import * __all__ = ['a1', 'ac1', 'ad1', 'ade1', 'adf1'] a1 = 1 '''a1 can be documented here.''' """ ), "utf-8", ) package.joinpath("a", "c.py").write_text( dedent( """\ '''This is also a test module.''' __all__ = ['ac1'] ac1 = 1 """ ), "utf-8", ) return package sphinx-autodoc2-0.5.0/tests/test_render/000077500000000000000000000000001453104212700202225ustar00rootroot00000000000000sphinx-autodoc2-0.5.0/tests/test_render/test_basic_myst_.md000066400000000000000000000034211453104212700240770ustar00rootroot00000000000000# {py:mod}`package` ```{py:module} package ``` ```{autodoc2-docstring} package :allowtitles: ``` ## Subpackages ```{toctree} :titlesonly: :maxdepth: 3 package.a ``` ## Package Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Class ` - ```{autodoc2-docstring} package.Class :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`func ` - ```{autodoc2-docstring} package.func :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} package.__all__ :summary: ``` * - {py:obj}`p ` - ```{autodoc2-docstring} package.p :summary: ``` ```` ### API ````{py:data} __all__ :canonical: package.__all__ :value: > ['p', 'a1', 'alias'] ```{autodoc2-docstring} package.__all__ ``` ```` ````{py:data} p :canonical: package.p :value: > 1 ```{autodoc2-docstring} package.p ``` ```` ````{py:function} func(a: str, b: int) -> package.a.c.ac1 :canonical: package.func ```{autodoc2-docstring} package.func ``` ```` `````{py:class} Class :canonical: package.Class ```{autodoc2-docstring} package.Class ``` ````{py:attribute} x :canonical: package.Class.x :type: int :value: > 1 ```{autodoc2-docstring} package.Class.x ``` ```` ````{py:method} method(a: str, b: int) -> ... :canonical: package.Class.method ```{autodoc2-docstring} package.Class.method ``` ```` ````{py:property} prop :canonical: package.Class.prop :type: package.a.c.ac1 | None ```{autodoc2-docstring} package.Class.prop ``` ```` ````{py:class} Nested :canonical: package.Class.Nested ```{autodoc2-docstring} package.Class.Nested ``` ```` ````` sphinx-autodoc2-0.5.0/tests/test_render/test_basic_rst_.rst000066400000000000000000000035271453104212700241320ustar00rootroot00000000000000:py:mod:`package` ================= .. py:module:: package .. autodoc2-docstring:: package :allowtitles: Subpackages ----------- .. toctree:: :titlesonly: :maxdepth: 3 package.a Package Contents ---------------- Classes ~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`Class ` - .. autodoc2-docstring:: package.Class :summary: Functions ~~~~~~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`func ` - .. autodoc2-docstring:: package.func :summary: Data ~~~~ .. list-table:: :class: autosummary longtable :align: left * - :py:obj:`__all__ ` - .. autodoc2-docstring:: package.__all__ :summary: * - :py:obj:`p ` - .. autodoc2-docstring:: package.p :summary: API ~~~ .. py:data:: __all__ :canonical: package.__all__ :value: ['p', 'a1', 'alias'] .. autodoc2-docstring:: package.__all__ .. py:data:: p :canonical: package.p :value: 1 .. autodoc2-docstring:: package.p .. py:function:: func(a: str, b: int) -> package.a.c.ac1 :canonical: package.func .. autodoc2-docstring:: package.func .. py:class:: Class :canonical: package.Class .. autodoc2-docstring:: package.Class .. py:attribute:: x :canonical: package.Class.x :type: int :value: 1 .. autodoc2-docstring:: package.Class.x .. py:method:: method(a: str, b: int) -> ... :canonical: package.Class.method .. autodoc2-docstring:: package.Class.method .. py:property:: prop :canonical: package.Class.prop :type: package.a.c.ac1 | None .. autodoc2-docstring:: package.Class.prop .. py:class:: Nested :canonical: package.Class.Nested .. autodoc2-docstring:: package.Class.Nested sphinx-autodoc2-0.5.0/tests/test_render/test_config_options_myst_.md000066400000000000000000000002141453104212700260330ustar00rootroot00000000000000````{py:function} func(a: str, b: int) -> package.a.c.ac1 :canonical: package.func :noindex: ```{autodoc2-docstring} package.func ``` ```` sphinx-autodoc2-0.5.0/tests/test_render/test_config_options_rst_.rst000066400000000000000000000002131453104212700260560ustar00rootroot00000000000000.. py:function:: func(a: str, b: int) -> package.a.c.ac1 :canonical: package.func :noindex: .. autodoc2-docstring:: package.func sphinx-autodoc2-0.5.0/tests/test_render/test_sphinx_build_directives.xml000066400000000000000000000100071453104212700267120ustar00rootroot00000000000000
Test <literal_block highlight_args="{'linenostart': 9}" language="restructuredtext" linenos="True" xml:space="preserve"> This is a function. <paragraph> This is a function. <literal_block language="restructuredtext" xml:space="preserve"> .. py:function:: func(a: str, b: int) -> package.a.c.ac1 :canonical: package.func .. autodoc2-docstring:: package.func <literal_block xml:space="preserve"> ````{py:function} func(a: str, b: int) -> package.a.c.ac1 :canonical: package.func ```{autodoc2-docstring} package.func ``` ```` <index entries="('single',\ 'func()\ (in\ module\ package)',\ 'package.func',\ '',\ None)"> <desc classes="py function" desctype="function" domain="py" nocontentsentry="False" noindex="False" noindexentry="False" objtype="function"> <desc_signature _toc_name="func()" _toc_parts="('package', 'func')" class="" classes="sig sig-object" fullname="func" ids="package.func" module="package"> <desc_addname classes="sig-prename descclassname" xml:space="preserve"> package. <desc_name classes="sig-name descname" xml:space="preserve"> func <desc_parameterlist xml:space="preserve"> <desc_parameter xml:space="preserve"> <desc_sig_name classes="n"> a <desc_sig_punctuation classes="p"> : <desc_sig_space classes="w"> <desc_sig_name classes="n"> <pending_xref py:class="True" py:module="package" refdomain="py" refspecific="False" reftarget="str" reftype="class"> str <desc_parameter xml:space="preserve"> <desc_sig_name classes="n"> b <desc_sig_punctuation classes="p"> : <desc_sig_space classes="w"> <desc_sig_name classes="n"> <pending_xref py:class="True" py:module="package" refdomain="py" refspecific="False" reftarget="int" reftype="class"> int <desc_returns xml:space="preserve"> <pending_xref py:class="True" py:module="package" refdomain="py" refspecific="False" reftarget="package.a.c.ac1" reftype="class"> package.a.c.ac1 <desc_content> <paragraph> This is a function. <table align="left" classes="autosummary longtable"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <tbody> <row> <entry> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="package.func" reftype="obj" refwarn="False"> <literal classes="xref py py-obj"> package.func <entry> <paragraph> This is a function. <row> <entry> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="True" reftarget="package.a.a1" reftype="obj" refwarn="False"> <literal classes="xref py py-obj"> package.a1 <entry> <paragraph> a1 can be documented here.�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������