-
Notifications
You must be signed in to change notification settings - Fork 1
/
pyproject.toml
106 lines (92 loc) · 2.53 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Configuration for the EasyCrystallography project
[project]
name = 'easycrystallography'
version = '0.6.0'
description = 'Crystallography in EasyScience'
authors = [{name = 'EasyCrystallography contributors'}]
readme = 'README.md'
license = { file = 'LICENSE' }
classifiers = [
'Topic :: Scientific/Engineering',
'Development Status :: 4 - Beta',
'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12'
]
requires-python = '>=3.9,<3.13'
dependencies = [
'asteval',
'numpy<2.0',
'pint',
'uncertainties',
'xarray',
'gemmi',
'periodictable',
'easyscience',
]
[project.optional-dependencies]
dev = [
'build', # for building the package
'pytest', # for testing
'pytest-xdist', # for parallel testing
'pytest-cov', # for coverage
'ruff', # for linting
]
[project.urls]
homepage = 'https://github.com/EasyScience/EasyCrystallography'
documentation = 'https://easyscience.github.io/EasyCrystallography'
source = 'https://github.com/EasyScience/EasyCrystallography'
tracker = 'https://github.com/EasyScience/EasyCrystallography/issues'
# Select the build system hatch -- Python project manager
# https://hatch.pypa.io/
[build-system]
build-backend = 'hatchling.build'
requires = ['hatchling']
# Configuration for the hatch
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ['src/easycrystallography']
# Configuration for ruff -- Python linter and code formatter
# https://docs.astral.sh/ruff/rules/
[tool.ruff]
line-length = 127
indent-width = 4
exclude = [
'docs_old',
'examples_old',
'tests'
]
[tool.ruff.format]
quote-style = 'single'
indent-style = 'space' # PEP 8 recommends using spaces over tabs for indentation.
line-ending = 'lf' # Line endings will be converted to \n. The default line ending on Unix.
[tool.ruff.lint.isort]
force-single-line = true
[tool.ruff.lint.per-file-ignores]
# allow asserting in test files
'*test_*.py' = ['S101']
[tool.ruff.lint]
select = [
# flake8 settings from existing CI setup
'E9', 'F63', 'F7', 'F82',
# pycodestyle
'E', 'W',
# Pyflakes
'F',
# pyupgrade
#'UP',
# flake8-bugbear
#'B',
# flake8-simplify
#'SIM',
# isort
'I',
# flake8-bandit
'S',
]