2025-04-18 23:11:05 +02:00
[ project ]
name = "TISbackup"
version = "1.8.0"
description = "Backup server side executed python scripts for managing linux and windows system and application data backups, developed by adminsys for adminsys"
readme = "README.md"
dependencies = [
2025-10-05 21:17:30 +02:00
"authlib>=1.3.0" ,
"bcrypt>=4.0.0" ,
2025-04-18 23:11:05 +02:00
"flask==3.1.0" ,
2025-10-05 21:17:30 +02:00
"flask-login>=0.6.0" ,
2025-04-18 23:11:05 +02:00
"huey==2.5.3" ,
"iniparse==0.5" ,
2025-10-05 23:54:26 +02:00
"paramiko==4.0.0" ,
2025-04-18 23:11:05 +02:00
"peewee==3.17.9" ,
"pexpect==4.9.0" ,
2025-10-05 23:54:26 +02:00
"pyvmomi>=8.0.0" ,
2025-04-18 23:11:05 +02:00
"redis==5.2.1" ,
"requests==2.32.3" ,
2025-10-05 02:02:46 +02:00
"ruff>=0.13.3" ,
2025-04-18 23:11:05 +02:00
"simplejson==3.20.1" ,
"six==1.17.0" ,
]
2026-06-05 00:13:16 +02:00
requires-python = ">=3.14"
2025-04-18 23:11:05 +02:00
2025-10-05 02:02:46 +02:00
[ project . optional-dependencies ]
2025-10-05 02:36:05 +02:00
# Documentation dependencies
docs = [
"docutils" ,
"sphinx>=7.0.0,<8.0.0" ,
"sphinx_rtd_theme" ,
"sphinxjp.themes.revealjs" ,
"sphinx-intl" ,
"sphinx-tabs" ,
]
2025-10-05 02:02:46 +02:00
2024-11-28 23:59:02 +01:00
[ tool . black ]
line-length = 140
2024-11-29 22:54:39 +01:00
2024-11-28 23:59:02 +01:00
[ tool . ruff ]
# Allow lines to be as long as 120.
2024-11-29 00:32:39 +01:00
line-length = 140
indent-width = 4
[ tool . ruff . lint ]
2025-04-18 23:11:05 +02:00
ignore = [ "F401" , "F403" , "F405" , "E402" , "E701" , "E722" , "E741" ]
2025-10-05 23:54:26 +02:00
[ tool . pytest . ini_options ]
# Pytest configuration for TISBackup
# Test discovery patterns
python_files = [ "test_*.py" ]
python_classes = [ "Test*" ]
python_functions = [ "test_*" ]
# Test paths
testpaths = [ "tests" ]
# Output options
addopts = [
"-v" ,
"--strict-markers" ,
"--tb=short" ,
"--color=yes" ,
]
# Markers for categorizing tests
markers = [
"unit: Unit tests for individual functions/methods" ,
"integration: Integration tests that test multiple components together" ,
"ssh: Tests related to SSH functionality" ,
"slow: Tests that take a long time to run" ,
]
# Minimum Python version
2026-06-05 00:13:16 +02:00
minversion = "3.14"
2025-10-05 23:54:26 +02:00
# Coverage options (optional - uncomment when pytest-cov is installed)
# addopts = ["--cov=libtisbackup", "--cov-report=html", "--cov-report=term-missing"]
[ tool . pylint . main ]
# Maximum line length
max-line-length = 140
# Files or directories to skip
ignore = [ "tests" , ".venv" , "__pycache__" , ".pytest_cache" , "build" , "dist" ]
[ tool . pylint . "messages control" ]
# Disable specific warnings to align with ruff configuration
disable = [
"C0103" , # invalid-name (similar to ruff E741)
"C0114" , # missing-module-docstring
"C0115" , # missing-class-docstring
"C0116" , # missing-function-docstring
"R0902" , # too-many-instance-attributes
"R0903" , # too-few-public-methods
"R0913" , # too-many-arguments
"R0914" , # too-many-locals
"W0703" , # broad-except (similar to ruff E722)
"W0719" , # broad-exception-raised
]
[ tool . pylint . format ]
# Indentation settings
indent-string = " "
[ tool . coverage . run ]
# Source code to measure coverage for
source = [ "libtisbackup" ]
# Omit certain files
omit = [
"*/tests/*" ,
"*/__pycache__/*" ,
"*/site-packages/*" ,
"*/.venv/*" ,
]
[ tool . coverage . report ]
# Precision for coverage percentage
precision = 2
# Show lines that weren't covered
show_missing = true
# Skip files with no executable code
skip_empty = true
# Fail if coverage is below this percentage
# fail_under = 80
[ tool . coverage . html ]
# Directory for HTML coverage report
directory = "htmlcov"
[ dependency-groups ]
dev = [
"pylint>=3.0.0" ,
"pytest>=8.4.2" ,
"pytest-cov>=6.0.0" ,
"pytest-mock>=3.15.1" ,
]