phonopy/README.md

2.5 KiB

Version Badge Downloads Badge PyPI codecov

Phonopy

Phonon code mainly written in python. Phonopy user documentation is found at http://phonopy.github.io/phonopy/

Installation

See https://phonopy.github.io/phonopy/install.html.

Dependency

It is necessary to install symfc and seekpath either via pip, conda, etc, to utilize the respective additional features.

Mailing list for questions

Usual phonopy questions should be sent to phonopy mailing list (https://sourceforge.net/p/phonopy/mailman/).

Development

The development of phonopy is managed on the develop branch of github phonopy repository.

  • Github issues is the place to discuss about phonopy issues.
  • Github pull request is the place to request merging source code.

Formatting

Formatting rules are found in pyproject.toml.

pre-commit

Pre-commit (https://pre-commit.com/) is mainly used for applying the formatting rules automatically. Therefore, it is strongly encouraged to use it at or before git-commit. Pre-commit is set-up and used in the following way:

  • Installed by pip install pre-commit, conda install pre_commit or see https://pre-commit.com/#install.
  • pre-commit hook is installed by pre-commit install.
  • pre-commit hook is run by pre-commit run --all-files.

Unless running pre-commit, pre-commit.ci may push the fix at PR by github action. In this case, the fix should be merged by the contributor's repository.

VSCode setting

  • Not strictly, but VSCode's settings.json may be written like below

    "ruff.lint.args": [
        "--config=${workspaceFolder}/pyproject.toml",
    ],
    "[python]": {
        "editor.defaultFormatter": "charliermarsh.ruff",
        "editor.codeActionsOnSave": {
            "source.organizeImports": "explicit"
        }
    },
    

Documentation

Phonopy user documentation is written using python sphinx. The source files are stored in doc directory. Please see how to write the documentation at doc/README.md.

How to run tests

Tests are written using pytest. To run tests, pytest has to be installed. The tests can be run by

% pytest