refactor: restructure repo into core/app modules with per-study folders
Reorganize Palladium codebase into a modular architecture with `core/` shared logic and `app/` Streamlit UI, separating per-study assets into `studies/YYYYMM_<Vendor>/` folders containing notebooks, seed data, and configuration. Update README to reflect new structure, add `.gitignore` entries for `.env` and study exports, and refresh component documentation.
This commit is contained in:
49
pyproject.toml
Normal file
49
pyproject.toml
Normal file
@@ -0,0 +1,49 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=68"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "palladium"
|
||||
version = "0.1.0"
|
||||
description = "TEI (Total Economic Impact) Calculator — Palladium"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
license = {file = "LICENSE"}
|
||||
authors = [{name = "NTT Data"}]
|
||||
dependencies = [
|
||||
"requests>=2.31",
|
||||
"python-dotenv>=1.0",
|
||||
"pandas>=2.0",
|
||||
"plotly>=5.18",
|
||||
"numpy>=1.26",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
notebooks = ["jupyter>=1.0", "ipython>=8.0"]
|
||||
app = ["streamlit>=1.30"]
|
||||
dev = ["pytest>=7.4", "ruff>=0.1"]
|
||||
|
||||
[project.scripts]
|
||||
palladium = "core.cli.main:main"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["core*", "palladium*"]
|
||||
exclude = ["tests*", "studies*", "app*", "docs*"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests"]
|
||||
python_files = ["test_*.py"]
|
||||
addopts = "-q"
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 100
|
||||
target-version = "py311"
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["E", "F", "I", "B", "UP", "W"]
|
||||
ignore = ["E501"] # line length handled by formatter
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
"studies/*/notebooks/*.ipynb" = ["E402"]
|
||||
"tests/*" = ["F401"]
|
||||
"app/main.py" = ["E402"] # sys.path bootstrap before app imports
|
||||
Reference in New Issue
Block a user