Cleanup for release 1.0.0.

This commit is contained in:
Leo Vasanko 2025-08-15 11:11:57 -06:00
parent 073f1a8707
commit ce6d60e588
2 changed files with 96 additions and 25 deletions

View File

@ -1,7 +1,6 @@
import os import os
import re import re
import signal import signal
import sys
from pathlib import Path from pathlib import Path
from sanic import Sanic from sanic import Sanic
@ -17,7 +16,7 @@ def run(*, dev=False):
def signal_handler(signum, frame): def signal_handler(signum, frame):
print("\nReceived interrupt signal, exiting immediately...") print("\nReceived interrupt signal, exiting immediately...")
os._exit(0) os._exit(0)
signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler) signal.signal(signal.SIGTERM, signal_handler)

View File

@ -10,28 +10,38 @@ readme = "README.md"
authors = [ authors = [
{ name = "Vasanko" }, { name = "Vasanko" },
] ]
maintainers = [
{ name = "Vasanko" },
]
keywords = ["file-server", "web-interface", "dropbox", "storage"]
classifiers = [ classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: System Administrators",
"License :: Public Domain",
"License :: OSI Approved :: MIT License",
] ]
requires-python = ">=3.11" requires-python = ">=3.11"
dependencies = [ dependencies = [
"argon2-cffi", "argon2-cffi>=25.1.0",
"av", "av>=15.0.0",
"blake3", "blake3>=1.0.5",
"brotli", "brotli>=1.1.0",
"docopt", "docopt>=0.6.2",
"inotify", "inotify>=0.2.12",
"msgspec", "msgspec>=0.19.0",
"natsort", "natsort>=8.4.0",
"numpy>=2.3.2", "numpy>=2.3.2",
"pathvalidate", "pathvalidate>=3.3.1",
"pillow", "pillow>=11.3.0",
"pillow-heif>=1.1.0", "pillow-heif>=1.1.0",
"pyjwt", "pyjwt>=2.10.1",
"pymupdf", "pymupdf>=1.26.3",
"sanic", "sanic>=25.3.0",
"setproctitle", "setproctitle>=1.3.6",
"stream-zip", "stream-zip>=0.0.83",
"tomli_w", "tomli_w>=1.2.0",
] ]
[project.urls] [project.urls]
@ -42,8 +52,19 @@ cista = "cista.__main__:main"
[project.optional-dependencies] [project.optional-dependencies]
dev = [ dev = [
"pytest", "pytest>=8.4.1",
"ruff", "ruff>=0.8.0",
"mypy>=1.13.0",
"pre-commit>=4.0.0",
]
test = [
"pytest>=8.4.1",
"pytest-cov>=6.0.0",
"pytest-asyncio>=0.25.0",
]
docs = [
"sphinx>=8.0.0",
"sphinx-rtd-theme>=3.0.0",
] ]
[tool.hatch.version] [tool.hatch.version]
@ -65,18 +86,69 @@ only-packages = true
[tool.pytest.ini_options] [tool.pytest.ini_options]
addopts = [ addopts = [
"--import-mode=importlib", "--import-mode=importlib",
"--verbosity=-1", "--verbosity=2",
"-p no:warnings", "--strict-markers",
"--strict-config",
"--cov=cista",
"--cov-report=term-missing",
"--cov-report=html",
"--cov-branch",
] ]
testpaths = [ testpaths = ["tests"]
"tests", python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
]
filterwarnings = [
"error",
"ignore::UserWarning",
"ignore::DeprecationWarning",
] ]
[tool.ruff.lint] [tool.ruff.lint]
isort.known-first-party = ["cista"] isort.known-first-party = ["cista"]
per-file-ignores."tests/*" = ["S", "ANN", "D", "INP"] per-file-ignores."tests/*" = ["S", "ANN", "D", "INP", "PLR2004"]
per-file-ignores."scripts/*" = ["T20"]
[dependency-groups] [dependency-groups]
dev = [ dev = [
"pytest>=8.4.1", "pytest>=8.4.1",
"ruff>=0.8.0",
"mypy>=1.13.0",
"pre-commit>=4.0.0",
] ]
test = [
"pytest>=8.4.1",
"pytest-cov>=6.0.0",
"pytest-asyncio>=0.25.0",
]
[tool.coverage.run]
source = ["cista"]
branch = true
omit = [
"*/tests/*",
"*/test_*",
"*/__pycache__/*",
"cista/_version.py",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"if self.debug:",
"if settings.DEBUG",
"raise AssertionError",
"raise NotImplementedError",
"if 0:",
"if __name__ == .__main__.:",
"class .*\\bProtocol\\):",
"@(abc\\.)?abstractmethod",
]
show_missing = true
skip_covered = false
precision = 2