diff --git a/.github/workflows/check-live-links.yml b/.github/workflows/check-live-links.yml new file mode 100644 index 0000000..2e210ad --- /dev/null +++ b/.github/workflows/check-live-links.yml @@ -0,0 +1,16 @@ +name: Check Markdown links + +on: + push: + branches: + - master + schedule: + # Every Monday at 00:00 UTC + - cron: "0 0 * * 1" + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: gaurav-nelson/github-action-markdown-link-check@v1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c62027..b249619 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,7 +35,7 @@ Recommended reading: [How to Write the Perfect Pull Request](https://github.blog When developing locally, it is recommended to install the python packages in `requirements-dev.txt`. ```bash -pip install -r requirements-dev.txt +pip install -e ".[dev,docs]" ``` This will allow you to run the tests locally with pytest as described in the main README, diff --git a/README.md b/README.md index 496c4d1..4597194 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ There is a strong demand for functional materials across a wide range of technol Features are accessed through Python scripts, importing classes and functions as needed. The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be usede -Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tree/master/examples) and [tutorials](https://github.com/WMD-group/SMACT/tree/master/tutorials) folders. +Use cases are available in our [examples](https://smact.readthedocs.io/en/latest/examples.html) and [tutorials](https://smact.readthedocs.io/en/latest/tutorials.html) folders. ## Code features @@ -41,7 +41,7 @@ Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tre - Oxidation states that are accessible to each element are included in their properties. -- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication]() describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples.html#neutral-combinations) and more examples can be found in the [counting examples subfolder](https://github.com/WMD-group/SMACT/tree/master/examples/Counting). +- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication]() describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples/filter.html). - Further filters can be applied to generated lists of compositions in order to screen for particular properties. These properties are either intrinsic properties of elements or are calculated for compositions using the [properties module](https://smact.readthedocs.io/en/latest/smact.properties.html). For example: @@ -50,7 +50,7 @@ Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tre - Compositions can also be filtered based on sustainability via the abundance of elements in the Earth's crust or via the [HHI scale](https://pubs.acs.org/doi/10.1021/cm400893e). -- Compositions can be converted for use in Pymatgen or for representation to machine learning algorithms ([see "next steps" in this example](https://github.com/WMD-group/SMACT/blob/master/examples/Counting/Generate_compositions_lists.ipynb)) and the related [ElementEmbeddings](https://github.com/WMD-group/ElementEmbeddings) package. +- Compositions can be converted for use in Pymatgen or for representation to machine learning algorithms ([see this example](https://smact.readthedocs.io/en/latest/tutorials/smact_generation_of_solar_oxides.html)) and the related [ElementEmbeddings](https://github.com/WMD-group/ElementEmbeddings) package. - The code also has tools for manipulating common crystal lattice types: - Certain structure types can be built using the [builder module](https://smact.readthedocs.io/en/latest/smact.builder.html) @@ -77,6 +77,7 @@ Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tre - **oxidation_states.py**: Used for predicting the likelihood of species coexisting in a compound based on a statistical model. - **structure_prediction**: A submodule which contains a collection of tools for facilitating crystal structure predictions via ionic substitutions - **dopant_prediction**: A submodule which contains a collections of tools for predicting dopants. + - **utils.py** A collection of utility functions used throughout the codebase. ## Requirements @@ -90,6 +91,10 @@ The latest stable release can be installed via pip which will automatically set pip install smact +Optional dependencies can also be installed. These enable full replication of the examples and tutorials + + pip install "smact[optional]" + SMACT is also available via conda through the conda-forge channel on Anaconda Cloud: conda install -c conda-forge smact diff --git a/docs/conf.py b/docs/conf.py index 31ddd51..39382b8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -71,9 +71,9 @@ # built documents. # # The short X.Y version. -version = "2.8" +version = "3.0" # The full version, including alpha/beta/rc tags. -release = "2.8.0" +release = "3.0.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/pyproject.toml b/pyproject.toml index 418324c..13d7912 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "SMACT" -version = "2.8" +version = "3.0" description = "Semiconducting Materials by Analogy and Chemical Theory" readme = "README.md" authors = [ diff --git a/setup.py b/setup.py index fb98918..89de27e 100755 --- a/setup.py +++ b/setup.py @@ -7,10 +7,10 @@ __author__ = "The SMACT Developers" __author_email__ = "a.walsh@imperial.ac.uk" __copyright__ = "Copyright Daniel W. Davies, Adam J. Jackson, Keith T. Butler (2019)" -__version__ = "2.8" +__version__ = "3.0" __maintainer__ = "Anthony O. Onwuli" __maintainer_email__ = "anthony.onwuli16@imperial.ac.uk" -__date__ = "September 26 2024" +__date__ = "December 2 2024" import os