Skip to content

Commit

Permalink
First commit for atomate2-turbomole.
Browse files Browse the repository at this point in the history
  • Loading branch information
davidwaroquiers committed Mar 25, 2024
1 parent 06e4696 commit 1bcd5a4
Show file tree
Hide file tree
Showing 1,180 changed files with 88,986 additions and 75 deletions.
27 changes: 10 additions & 17 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
default_language_version:
python: python3

exclude: ^(tests/testfiles/)
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.256
hooks:
- id: ruff
args: [--fix]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
Expand All @@ -10,12 +15,8 @@ repos:
args: [--remove]
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/myint/autoflake
rev: v2.0.1
hooks:
- id: autoflake
- repo: https://github.com/psf/black
rev: 22.12.0
rev: 23.1.0
hooks:
- id: black
- repo: https://github.com/asottile/blacken-docs
Expand All @@ -24,10 +25,6 @@ repos:
- id: blacken-docs
additional_dependencies: [black]
exclude: README.md
- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort
- repo: https://github.com/pycqa/flake8
rev: 6.0.0
hooks:
Expand All @@ -49,7 +46,7 @@ repos:
- id: rst-directive-colons
- id: rst-inline-touching-normal
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.991
rev: v1.1.1
hooks:
- id: mypy
files: ^src/
Expand All @@ -58,13 +55,9 @@ repos:
- types-pkg_resources==0.1.2
- types-paramiko
- repo: https://github.com/codespell-project/codespell
rev: v2.2.2
rev: v2.2.4
hooks:
- id: codespell
stages: [commit, commit-msg]
args: [--ignore-words-list, 'titel,statics,ba,nd,te']
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.1
hooks:
- id: pyupgrade
args: [--py38-plus]
types_or: [python, rst, markdown]
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# atomate2-addon-template
# atomate2-turbomole

This is an example add-on package for [atomate2](https://github.com/materialsproject/atomate2).
Atomate2-turbomole is an add-on package for [atomate2](https://github.com/materialsproject/atomate2).

It is heavily based on
the equivalent [add-on template for pymatgen](https://github.com/materialsproject/pymatgen-addon-template).
Atomate2-turbomole is built to work with Turbomole, and is built on top of open source
libraries such as [pymatgen], [custodian], [jobflow] and [Turbomoleio]

## License

This add-on is released under the same license as atomate2, modified BSD, the full text of which can be found in this repository.
This add-on is released under the same license as atomate2, modified BSD, the full text of which can
be found in this repository.
141 changes: 113 additions & 28 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,20 @@
requires = ["setuptools >= 42", "versioningit ~= 1.0", "wheel"]
build-backend = "setuptools.build_meta"

[tools.setuptools]
packages = ["atomate2.myaddon"]
[tools.setuptools.find]
where = ["src"]

[project]
name = "atomate2-myaddon"
description = "atomate2-myaddon is an example of a minimal atomate2 namespace add-on."
name = "atomate2-turbomole"
description = "The atomate2-turbomole package is a workflow package for Turbomole"
readme = "README.md"
keywords = ["high-throughput", "automated", "workflow", "dft", "ab initio", "turbomole"]
license = { text = "modified BSD" }
authors = [{ name = "Matthew Evans", email = "matthew.evans@matgenix.com" }]
authors = [{ name = "David Waroquiers", email = "david.waroquiers@matgenix.com" }]
dynamic = ["version"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Development Status :: 2 - Pre-Alpha",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Intended Audience :: System Administrators",
"Intended Audience :: Information Technology",
Expand All @@ -28,27 +24,22 @@ classifiers = [
"Topic :: Scientific/Engineering",
]
requires-python = ">=3.8"
dependencies =[
"atomate2",
"pymatgen"
dependencies = [
"pymatgen>=2022.2.10",
"custodian>=2024.3.12",
"jobflow>=0.1.11",
"emmet-core>=0.80.0",
"turbomoleio==1.4.0"
]

[project.optional-dependencies]
dev = ["atomate2[dev]"]
docs = ["atomate2[docs]"]
tests = ["atomate2[tests]"]
strict = ["atomate2[strict]"]

[project.urls]
repository = "https://github.com/matgenix/atomate2-addon-template"
dev = ["pre-commit>=2.12.1"]
tests = ["pytest==7.2.2", "pytest-cov==4.0.0", "pytest-mock==3.6.1", "mongomock==4.1.2"]

[tool.versioningit.vcs]
method = "git"
default-tag = "0.0.1"

[tool.isort]
profile = "black"

[tool.flake8]
max-line-length = 88
max-doc-length = 88
Expand All @@ -62,6 +53,10 @@ rst-roles = "class, func, ref, obj"
ignore_missing_imports = true
no_strict_optional = true

[tool.pytest.ini_options]
addopts = "--strict-markers --cov=atomate2.turbomole --cov-config=pyproject.toml --cov-report=html --cov-report=term"
filterwarnings = []

[tool.coverage.run]
include = ["src/*"]
parallel = true
Expand All @@ -77,11 +72,101 @@ exclude_lines = [
'^\s*assert False(,|$)',
'if typing.TYPE_CHECKING:',
'^\s*@overload( |$)',
'pragma: no cover',
'NotImplementedError',
]
partial_branches = [
'pragma: no branch',
]
fail_under = 100

[tool.ruff]
target-version = "py38"
select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"D", # pydocstyle
"E", # pycodestyle
"F", # pyflakes
"I", # isort
"PLE", # pylint error
"PLW", # pylint warning
"Q", # flake8-quotes
"RUF", # Ruff-specific rules
"SIM", # flake8-simplify
"TID", # tidy imports
"UP", # pyupgrade
"W", # pycodestyle
"YTT", # flake8-2020
]
pydocstyle.convention = "numpy"
isort.known-first-party = ["atomate2.turbomole"]

[tool.ruff.per-file-ignores]
"__init__.py" = ["F401"]
"**/tests/*" = ["D"]

[tool.setuptools.package-data]
"atomate2.turbomole.schemas.calc_types" = ["*.yaml"]

[tool.autoflake]
in-place = true
remove-all-unused-imports = true
remove-unused-variables = true
ignore-init-module-imports = true
expand-star-imports = true
#
#
#
#
#[tool.poetry]
#name = "turbomole"
#version = "0.3.1"
#description = "The turbomole package is a workflow package for Toyota Motor Europe"
#authors = ["davidwaroquiers <david.waroquiers@matgenix.com>"]
#packages = [
# { include = "turbomole", from = "src" }
#]
#
#[tool.poetry.dependencies]
#python = "^3.8"
#custodian = "^2021.2.8"
#jobflow = "^0.1.2"
#fireworks = "^2.0.3"
#
#[tool.poetry.dev-dependencies]
#pytest = "^5.2"
#pytest-cov = "^2.10.1"
#coverage = {version = "^5.3", extras = ["toml"]}
#pytest-mock = "^3.3.1"
#pre-commit = "^2.9.3"
#isort = "^5.6.4"
#black = "^20.8b1"
#flake8 = "^3.8.4"
#pylint = "^2.6.0"
#pydocstyle = "^6.1.1"
#mypy = "^0.790"
#
#[build-system]
#requires = ["poetry-core>=1.0.0"]
#build-backend = "poetry.core.masonry.api"
#
#[tool.isort]
#profile = "black"
#
#[tool.pydocstyle]
#inherit = false
#
#[tool.pytest.ini_options]
#minversion = "6.1.2"
#testpaths = "tests"
##addopts = "--strict-markers --cov=src/turbomole -cov-config=pyproject.toml --cov-report html --cov-report term"
#
## Coverage options
#[tool.coverage.run]
#source = ["turbomole"]
#branch = true
#
#[tool.coverage.report]
#exclude_lines = [
# "pragma: no cover",
# "raise NotImplementedError",
#]
#fail_under = 100
#
#[tool.coverage.html]
#directory = "htmlcov"
Empty file removed src/atomate2/myaddon/__init__.py
Empty file.
20 changes: 0 additions & 20 deletions src/atomate2/myaddon/mymodule.py

This file was deleted.

5 changes: 5 additions & 0 deletions src/atomate2/turbomole/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Part of atomate2-turbomole package.

"""Main module of the atomate2-turbomole package."""

from atomate2.turbomole._version import __version__
11 changes: 11 additions & 0 deletions src/atomate2/turbomole/_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Part of atomate2-turbomole package.

# Automatically get the version of the package
# For python versions < 3.8, importlib.metadata module did not exist,
# had to use importlib_metadata instead.
try: # pragma: no cover
from importlib.metadata import version
except ModuleNotFoundError: # pragma: no cover
from importlib_metadata import version # type: ignore

__version__ = version("atomate2-turbomole")
1 change: 1 addition & 0 deletions src/atomate2/turbomole/custodian/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Custodian jobs in atomate2-turbomole."""
Loading

0 comments on commit 1bcd5a4

Please sign in to comment.