Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
90 lines (78 loc) · 2.85 KB
/
Copy pathpyproject.toml
File metadata and controls
90 lines (78 loc) · 2.85 KB
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
[build-system]
requires = ["hatchling", "patchelf; sys_platform == 'linux'"]
build-backend = "hatchling.build"
[tool.hatch.build.hooks.custom]
path = "buildUtil/build.py"
[tool.hatch.build.targets.sdist.force-include]
"mikecore/bin" = "mikecore/bin"
[tool.hatch.build.targets.wheel]
packages = ["mikecore", "miketools"]
[tool.hatch.build.targets.wheel.force-include]
"mikecore/bin" = "mikecore/bin"
[project]
name = "mikecore"
version = "0.3.0a1"
description = "MIKE Core contains core libraries, like DFS (Data File System), EUM and more."
readme = "README.md"
license = { file = "LICENSE.txt" }
authors = [
{ name = "DHI", email = "mike@dhigroup.com" }
]
# Only CPython versions that have not reached end of life; see docs/adr/0001-python-version-support.md
requires-python = ">=3.11"
dependencies = [
"numpy"
]
classifiers = [
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
[project.urls]
Homepage = "https://github.com/DHI/mikecore-python"
[dependency-groups]
dev = [
# Pinned: new releases can add errors and warnings. Bump deliberately and
# update MAX_WARNINGS in .github/workflows/type_check.yml to match.
"pyrefly==1.3.2",
"pytest>=6.1.2",
]
[tool.pyrefly]
project-includes = ["mikecore", "miketools", "tests"]
python-version = "3.11"
[tool.pyrefly.errors]
# Many attributes (e.g. FileInfo, TimeAxis, X/Y/Z) start as None and are set
# later, so most accesses trip missing-attribute. Kept as warnings so real None
# dereferences stay visible; make them errors once those attributes are typed.
missing-attribute = "warn"
# Existing violations need the same typing work (values from those attributes
# passed on, indexed or sized). Kept visible as warnings for now.
bad-argument-type = "warn"
unsupported-operation = "warn"
read-only = "warn"
[tool.ruff.format]
line-ending = "lf"
# ruff takes its target version from requires-python.
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "UP"]
# The C#-style API is re-exported through star imports throughout.
ignore = [
"F403", "F405",
# Pending cleanup: these need case-by-case review rather than autofixing.
"E711", # `== None` can't blindly become `is None` where numpy arrays flow through
"E722", # bare except
"E731", # lambda assignment
"E741", # ambiguous variable name
"F811", # duplicated test helpers whose bodies differ
"F841", # unused variables
]
[tool.ruff.lint.per-file-ignores]
# Manual test runners that import modules for their side effects.
"tests/Test.py" = ["F401", "E402"]
"tests/test_run_all.py" = ["F401"]
# Imports follow the native library path setup.
"mikecore/__init__.py" = ["E402"]