| 1 | [build-system] |
| 2 | requires = ["setuptools>=61.0", "wheel"] |
| 3 | build-backend = "setuptools.build_meta" |
| 4 | |
| 5 | [project] |
| 6 | name = "sultree" |
| 7 | version = "0.0.8" |
| 8 | description = "SELinux-aware tree command - displays directory trees filtered by SELinux security contexts" |
| 9 | readme = "README.md" |
| 10 | requires-python = ">=3.8" |
| 11 | license = {text = "MIT"} |
| 12 | authors = [ |
| 13 | {name = "mfw", email = "espadon@outlook.com"}, |
| 14 | ] |
| 15 | keywords = ["tree", "selinux", "security", "filesystem", "cli"] |
| 16 | classifiers = [ |
| 17 | "Development Status :: 3 - Alpha", |
| 18 | "Environment :: Console", |
| 19 | "Intended Audience :: System Administrators", |
| 20 | "License :: OSI Approved :: MIT License", |
| 21 | "Operating System :: POSIX :: Linux", |
| 22 | "Programming Language :: Python :: 3", |
| 23 | "Programming Language :: Python :: 3.8", |
| 24 | "Programming Language :: Python :: 3.9", |
| 25 | "Programming Language :: Python :: 3.10", |
| 26 | "Programming Language :: Python :: 3.11", |
| 27 | "Programming Language :: Python :: 3.12", |
| 28 | "Topic :: System :: Systems Administration", |
| 29 | "Topic :: Security", |
| 30 | ] |
| 31 | dependencies = [] |
| 32 | |
| 33 | [project.optional-dependencies] |
| 34 | dev = [ |
| 35 | "pytest>=7.0.0", |
| 36 | "pytest-cov>=4.0.0", |
| 37 | "black>=22.0.0", |
| 38 | "flake8>=6.0.0", |
| 39 | "mypy>=1.0.0", |
| 40 | "bandit>=1.7.0", # Security linting |
| 41 | "safety>=2.0.0", # Dependency security scanning |
| 42 | ] |
| 43 | |
| 44 | [project.scripts] |
| 45 | sultree = "sultree.__main__:main" |
| 46 | |
| 47 | [project.urls] |
| 48 | # Homepage = "https://github.com/username/sultree" |
| 49 | # Repository = "https://github.com/username/sultree" |
| 50 | # Issues = "https://github.com/username/sultree/issues" |
| 51 | |
| 52 | [tool.setuptools.packages.find] |
| 53 | where = ["src"] |
| 54 | |
| 55 | [tool.setuptools.package-dir] |
| 56 | "" = "src" |
| 57 | |
| 58 | # Security-focused linting configuration |
| 59 | [tool.bandit] |
| 60 | exclude_dirs = ["tests"] |
| 61 | skips = [] |
| 62 | |
| 63 | [tool.black] |
| 64 | line-length = 88 |
| 65 | target-version = ["py38"] |
| 66 | |
| 67 | [tool.mypy] |
| 68 | python_version = "3.8" |
| 69 | warn_return_any = true |
| 70 | warn_unused_configs = true |
| 71 | disallow_untyped_defs = true |
| 72 | disallow_incomplete_defs = true |
| 73 | check_untyped_defs = true |
| 74 | warn_redundant_casts = true |
| 75 | warn_unused_ignores = true |
| 76 | strict_optional = true |
| 77 | |
| 78 | [tool.pytest.ini_options] |
| 79 | testpaths = ["tests"] |
| 80 | addopts = "--cov=sultree --cov-report=html --cov-report=term-missing" |