gabriel / musehub public
pyproject.toml
89 lines 1.9 KB
7923a405 test(supercharge): comprehensive test suite overhaul — all 11 points Gabriel Cardona <gabriel@tellurstori.com> 6d ago
1 [project]
2 name = "musehub"
3 version = "0.1.0"
4 description = "MuseHub — the music composition version control platform powered by Muse VCS"
5 readme = "README.md"
6 requires-python = ">=3.11"
7 dependencies = [
8 "fastapi>=0.109.0",
9 "jinja2>=3.1.0",
10 "aiofiles>=23.2.0",
11 "uvicorn[standard]>=0.27.0",
12 "httpx>=0.26.0",
13 "pydantic>=2.5.0",
14 "pydantic-settings>=2.1.0",
15 "websockets>=12.0",
16 "PyJWT>=2.8.0",
17 "sqlalchemy[asyncio]>=2.0.0",
18 "asyncpg>=0.29.0",
19 "aiosqlite>=0.19.0",
20 "alembic>=1.13.0",
21 "psycopg2-binary>=2.9.9",
22 "slowapi>=0.1.9",
23 "cryptography>=42.0.0",
24 "boto3>=1.34.0",
25 "mido>=1.3.0",
26 "pyyaml>=6.0.0",
27 "typer>=0.9.0",
28 ]
29
30
31 [project.optional-dependencies]
32 dev = [
33 "pytest>=8.0.0",
34 "pytest-asyncio>=0.23.0",
35 "pytest-cov>=4.1.0",
36 "pytest-xdist>=3.5.0",
37 "coverage>=7.0.0",
38 "anyio>=4.2.0",
39 "mypy>=1.8.0",
40 "factory-boy>=3.3.0",
41 ]
42
43 [build-system]
44 requires = ["hatchling"]
45 build-backend = "hatchling.build"
46
47 [tool.pytest.ini_options]
48 asyncio_mode = "auto"
49 testpaths = ["tests"]
50 cache_dir = "/tmp/pytest_cache"
51 addopts = "-v --tb=short -p no:randomly"
52 filterwarnings = [
53 "ignore:The 'is_flag' and 'flag_value' parameters are not supported by Typer:DeprecationWarning",
54 ]
55
56 [tool.coverage.run]
57 source = ["musehub"]
58 branch = true
59 omit = ["musehub/__init__.py", "*/tests/*"]
60
61 [tool.coverage.report]
62 fail_under = 80
63 show_missing = true
64 exclude_lines = [
65 "pragma: no cover",
66 "def __repr__",
67 "raise NotImplementedError",
68 "if TYPE_CHECKING:",
69 "if typing.TYPE_CHECKING:",
70 ]
71
72 [tool.mypy]
73 python_version = "3.11"
74 strict = true
75 explicit_package_bases = true
76 namespace_packages = true
77 warn_unreachable = true
78 show_error_codes = true
79
80 [[tool.mypy.overrides]]
81 module = ["tests.*"]
82 disallow_untyped_decorators = false
83
84 [[tool.mypy.overrides]]
85 module = ["boto3", "botocore.*", "mido", "yaml"]
86 ignore_missing_imports = true
87
88 [tool.hatch.build.targets.wheel]
89 packages = ["musehub"]