mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-03-28 17:42:56 +01:00
- Add load_dotenv() call at module import to load .env before Click processes envvar parameters - Add python-dotenv>=1.0.0 as explicit dependency in pyproject.toml Click's envvar only reads from OS environment, not .env files. By loading dotenv early, all CLI commands now respect .env configuration.
145 lines
3.1 KiB
TOML
145 lines
3.1 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "meshcore-hub"
|
|
version = "0.1.0"
|
|
description = "Python monorepo for managing and orchestrating MeshCore mesh networks"
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
requires-python = ">=3.11"
|
|
authors = [
|
|
{name = "MeshCore Hub Contributors"}
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Communications",
|
|
"Topic :: System :: Networking",
|
|
]
|
|
keywords = ["meshcore", "mesh", "network", "mqtt", "lora"]
|
|
dependencies = [
|
|
"click>=8.1.0",
|
|
"pydantic>=2.0.0",
|
|
"pydantic-settings>=2.0.0",
|
|
"python-dotenv>=1.0.0",
|
|
"sqlalchemy>=2.0.0",
|
|
"alembic>=1.12.0",
|
|
"fastapi>=0.100.0",
|
|
"uvicorn[standard]>=0.23.0",
|
|
"paho-mqtt>=2.0.0",
|
|
"jinja2>=3.1.0",
|
|
"python-multipart>=0.0.6",
|
|
"httpx>=0.25.0",
|
|
"aiosqlite>=0.19.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.4.0",
|
|
"pytest-asyncio>=0.21.0",
|
|
"pytest-cov>=4.1.0",
|
|
"black>=23.0.0",
|
|
"flake8>=6.1.0",
|
|
"mypy>=1.5.0",
|
|
"pre-commit>=3.4.0",
|
|
"types-paho-mqtt>=1.6.0",
|
|
]
|
|
postgres = [
|
|
"asyncpg>=0.28.0",
|
|
"psycopg2-binary>=2.9.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
meshcore-hub = "meshcore_hub.__main__:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/meshcore-dev/meshcore-hub"
|
|
Documentation = "https://github.com/meshcore-dev/meshcore-hub#readme"
|
|
Repository = "https://github.com/meshcore-dev/meshcore-hub"
|
|
Issues = "https://github.com/meshcore-dev/meshcore-hub/issues"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.setuptools.package-data]
|
|
meshcore_hub = ["py.typed", "templates/**/*", "static/**/*"]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ["py311"]
|
|
include = '\.pyi?$'
|
|
extend-exclude = '''
|
|
/(
|
|
\.eggs
|
|
| \.git
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| _build
|
|
| buck-out
|
|
| build
|
|
| dist
|
|
| alembic/versions
|
|
)/
|
|
'''
|
|
|
|
[tool.mypy]
|
|
python_version = "3.11"
|
|
warn_return_any = true
|
|
warn_unused_ignores = true
|
|
disallow_untyped_defs = true
|
|
disallow_incomplete_defs = true
|
|
check_untyped_defs = true
|
|
strict_optional = true
|
|
plugins = ["pydantic.mypy"]
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
"paho.*",
|
|
"uvicorn.*",
|
|
]
|
|
ignore_missing_imports = true
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = "7.0"
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
addopts = [
|
|
"-ra",
|
|
"-q",
|
|
"--strict-markers",
|
|
"--cov=meshcore_hub",
|
|
"--cov-report=term-missing",
|
|
]
|
|
filterwarnings = [
|
|
"ignore::DeprecationWarning",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["src/meshcore_hub"]
|
|
branch = true
|
|
omit = [
|
|
"*/tests/*",
|
|
"*/__pycache__/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise NotImplementedError",
|
|
"if TYPE_CHECKING:",
|
|
"if __name__ == .__main__.:",
|
|
]
|