-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add documentation structure #13
Changes from all commits
4661a74
9073fba
0cfd607
62bde5a
e763bb4
0638701
914bc0f
b584288
99d7dc3
b805516
097214e
a710388
d148e17
6bd1da8
5a612ac
fc64450
bb1c6cf
0171bcd
b56c7b2
0e327a0
075ba72
561bc28
44add8c
0e380d2
9c69733
ded5c0d
ec3a9c8
29857f3
8ffe755
1e1de75
0255001
3fabf96
4afef12
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: Documentation | ||
|
||
on: | ||
push: | ||
branches: [main] | ||
tags: ["*"] | ||
pull_request: | ||
# Check all PR | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: setup Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.10" | ||
- name: install dependencies | ||
run: | | ||
python -m pip install tox | ||
sudo apt install doxygen | ||
- name: build documentation | ||
run: tox -e docs | ||
env: | ||
# Use the CPU-only version of torch | ||
PIP_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
name: readthedocs/actions | ||
|
||
on: | ||
pull_request_target: | ||
types: | ||
- opened | ||
|
||
permissions: | ||
pull-requests: write | ||
|
||
jobs: | ||
documentation-links: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: readthedocs/actions/preview@v1 | ||
with: | ||
project-slug: metatensor-models |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# .readthedocs.yml | ||
# Read the Docs configuration file | ||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details | ||
|
||
# Required | ||
version: 2 | ||
|
||
# Set the OS, Python version and other tools you might need | ||
build: | ||
os: ubuntu-22.04 | ||
tools: | ||
python: "3.11" | ||
rust: "1.70" | ||
|
||
|
||
# Build documentation in the docs/ directory with Sphinx | ||
sphinx: | ||
configuration: docs/src/conf.py | ||
fail_on_warning: true | ||
|
||
|
||
# Declare the Python requirements required to build the docs. | ||
# Additionally, a custom environment variable | ||
# PIP_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu | ||
# is declared in the project’s dashboard | ||
python: | ||
install: | ||
- method: pip | ||
path: . | ||
- requirements: docs/requirements.txt |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
furo | ||
sphinx >= 7 | ||
sphinx-toggleprompt | ||
tomli |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
import os | ||
import sys | ||
from datetime import datetime | ||
|
||
import tomli # Replace by tomllib from std library once docs are build with Python 3.11 | ||
|
||
import metatensor_models | ||
|
||
|
||
ROOT = os.path.abspath(os.path.join("..", "..")) | ||
sys.path.insert(0, ROOT) | ||
|
||
# -- Project information ----------------------------------------------------- | ||
|
||
# The master toctree document. | ||
master_doc = "index" | ||
|
||
with open(os.path.join(ROOT, "pyproject.toml"), "rb") as fp: | ||
project_dict = tomli.load(fp)["project"] | ||
|
||
project = project_dict["name"] | ||
author = ", ".join(a["name"] for a in project_dict["authors"]) | ||
|
||
copyright = f"{datetime.now().date().year}, {author}" | ||
|
||
# The full version, including alpha/beta/rc tags | ||
release = metatensor_models.__version__ | ||
|
||
|
||
# -- General configuration --------------------------------------------------- | ||
|
||
# Add any Sphinx extension module names here, as strings. They can be | ||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom | ||
# ones. | ||
extensions = [ | ||
"sphinx.ext.viewcode", | ||
"sphinx.ext.autodoc", | ||
"sphinx.ext.intersphinx", | ||
"sphinx_toggleprompt", | ||
] | ||
|
||
python_use_unqualified_type_names = True | ||
|
||
autoclass_content = "both" | ||
autodoc_member_order = "bysource" | ||
autodoc_typehints = "both" | ||
autodoc_typehints_format = "short" | ||
|
||
intersphinx_mapping = { | ||
"ase": ("https://wiki.fysik.dtu.dk/ase/", None), | ||
"python": ("https://docs.python.org/3", None), | ||
"torch": ("https://pytorch.org/docs/stable/", None), | ||
"metatensor": ("https://lab-cosmo.github.io/metatensor/latest/", None), | ||
"rascaline": ("https://luthaf.fr/rascaline/latest/", None), | ||
} | ||
|
||
# -- Options for HTML output ------------------------------------------------- | ||
|
||
# The theme to use for HTML and HTML Help pages. See the documentation for | ||
# a list of builtin themes. | ||
# | ||
html_theme = "furo" | ||
|
||
html_theme_options = { | ||
"footer_icons": [ | ||
{ | ||
"name": "GitHub", | ||
"url": project_dict["urls"]["repository"], | ||
"html": "", | ||
"class": "fa-brands fa-github fa-2x", | ||
}, | ||
], | ||
} | ||
|
||
# font-awesome logos (used in the footer) | ||
html_css_files = [ | ||
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/fontawesome.min.css", | ||
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/solid.min.css", | ||
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/brands.min.css", | ||
] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Adding new models | ||
================= | ||
|
||
To be done. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
Developer documentation | ||
======================= | ||
|
||
This is a collection of documentation for developers of the metatensor-models package. | ||
It includes documentation on how to add a new model, as well as the API of the utils module. | ||
|
||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
adding-models | ||
utils/index |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Dataset | ||
####### | ||
|
||
.. automodule:: metatensor_models.utils.data.dataset | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Utilitliy API | ||
============= | ||
|
||
This is the API for the ``utils`` module of ``metatensor-models``. | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
dataset | ||
readers/index |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
Structure and Target data Readers | ||
================================= | ||
|
||
The main entry point for reading structure and target information are the two reader | ||
functions | ||
|
||
.. automodule:: metatensor_models.utils.data.readers | ||
:members: | ||
|
||
Based on the provided filename they chose which child reader they use. For details on | ||
these refer to their documentation | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
structure | ||
target |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Structure Readers | ||
################# | ||
|
||
Parsers for obtaining information from structures. All readers return a :py:class:`list` | ||
of :py:class:`rascaline.torch.system.System`. The mapping which reader is used for which | ||
file type is stored in | ||
|
||
.. autodata:: metatensor_models.utils.data.readers.structures.STRUCTURE_READERS | ||
|
||
Implemented Readers | ||
------------------- | ||
|
||
.. autofunction:: metatensor_models.utils.data.readers.structures.read_ase |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Target data Readers | ||
################### | ||
|
||
Parsers for obtaining information from structures. All readers return a of | ||
:py:class:`metatensor.torch.TensorMap`. The mapping which reader is used for which file | ||
type is stored in | ||
|
||
.. autodata:: metatensor_models.utils.data.readers.targets.TARGET_READERS | ||
|
||
Implemented Readers | ||
------------------- | ||
|
||
.. autofunction:: metatensor_models.utils.data.readers.targets.read_ase |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
How-to | ||
====== | ||
|
||
This section describes how to use the ``metatensor-models`` package. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
Welcome to metatensor-models's documentation! | ||
============================================= | ||
|
||
This is a collection of atomistic models interfaced with ``metatensor``. | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
quickstart | ||
how-to | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we should also add our There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Utils are mainly for developers, which are not really the target of our documentation. I would add them under how-to/"add a new model" perhaps? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we can also have two separate doc sections: one for users and one for devs. Rascaline does something like this. |
||
models | ||
dev-docs/index |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Available models | ||
================ | ||
|
||
This is a list of the models available in ``metatensor-models``. | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
:glob: | ||
|
||
models/* |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
SOAP-BPNN | ||
========= | ||
|
||
This is a Behler-Parrinello neural network with SOAP features. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Quickstart | ||
========== | ||
|
||
You can install metatensor-models with pip: | ||
|
||
.. code-block:: bash | ||
|
||
pip install git+https://github.com/lab-cosmo/metatensor-models.git |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
from .ase import read_ase | ||
|
||
STRUCTURE_READERS = {".xyz": read_ase} | ||
""":py:class:`dict`: dictionary mapping file suffixes to a structure reader""" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
from .ase import read_ase | ||
|
||
TARGET_READERS = {".xyz": read_ase} | ||
""":py:class:`dict`: dictionary mapping file suffixes to a target structure reader""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general some intersphinx and all the options we use in metatensor for organizing the docstring are very useful and should be added.