-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
105 lines (96 loc) · 2.8 KB
/
Copy pathpyproject.toml
File metadata and controls
105 lines (96 loc) · 2.8 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "bayanihan"
version = "0.2.0"
description = "Seismic resilience assessment for Philippine school building portfolios"
readme = "README.md"
license = { text = "Apache-2.0" }
authors = [{ name = "Kevin Jeswani" }]
requires-python = ">=3.13"
keywords = [
"earthquake",
"seismic",
"pbee",
"resilience",
"philippines",
"pelicun",
"performance-based-earthquake-engineering",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering",
]
dependencies = [
"pelicun>=3.9,<4",
"numpy",
"scipy",
"pandas",
"geopandas",
"shapely",
"pyarrow",
"matplotlib",
"contextily",
"pydantic>=2.0",
"openquake-engine>=3.25.1",
"fiona>=1.10.1",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-cov",
"mypy",
"ruff",
"jupyter",
"nbconvert",
]
[project.urls]
Homepage = "https://github.com/kevinjeswani/bayanihan"
Repository = "https://github.com/kevinjeswani/bayanihan"
[tool.hatch.build.targets.wheel]
packages = ["bayanihan"]
[tool.hatch.build.targets.sdist]
exclude = [
"/prototypes",
"/utils",
"/test",
"/examples",
"/docs",
"/images",
"/agents",
"/.claude",
"/.github",
]
[tool.ruff]
line-length = 100
target-version = "py313"
# Strict lint applies to the shipped package (bayanihan/). Tests and the utility /
# scratch scripts (long plot-title strings etc.) are excluded from the lint gate.
extend-exclude = ["test", "prototypes", "scripts", "utils", "examples"]
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP"]
ignore = ["N803", "N806"]
[tool.mypy]
python_version = "3.13"
strict = false
ignore_missing_imports = true
warn_unused_ignores = true
[tool.pytest.ini_options]
testpaths = ["test"]
# Default `pytest` = the FAST suite: unit tests + one small end-to-end smoke per
# model path. It verifies the model runs correctly — it does NOT run production
# Monte-Carlo simulations. The heavy real-inventory portfolio runs (1,021 buildings)
# are marked `integration` and DESELECTED by default (they took ~9 min locally).
# pytest # fast suite (default)
# pytest -m integration # only the heavy end-to-end real-data runs (major lifts)
# pytest -m "" # everything
# Full N=1000 production runs that generate committed results live in scripts/.
addopts = "-v --cov=bayanihan --cov-report=term-missing -m 'not integration'"
markers = [
"integration: slow end-to-end Monte-Carlo portfolio run on the real inventory (run on major lifts, not every commit)",
]