-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
97 lines (89 loc) · 3.8 KB
/
Copy pathpyproject.toml
File metadata and controls
97 lines (89 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# pyproject.toml for IntuneComplianceReport repository tooling
#
# This file declares Python development dependencies for retained repository
# tooling: template-sync helpers, Markdown helper scripts, placeholder helpers,
# and their pytest coverage. Python is not product source for the
# IntuneComplianceReport PowerShell module.
[build-system]
requires = ["setuptools>=82.0.1", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "intune-compliance-report-repository-tooling"
version = "0.1.0"
description = "Repository tooling for the IntuneComplianceReport PowerShell module"
readme = "README.md"
# Python Version Policy:
# Support Python release lines that are currently receiving bugfixes.
# Check https://devguide.python.org/versions/ for current version status.
# Keep this range, classifiers, Black targets, mypy's lowest-supported version,
# and the CI matrix aligned when upstream support changes.
requires-python = ">=3.13,<3.15"
license = "MIT"
authors = [
{ name = "Danny Stutz" },
{ name = "Frank Lesniak" }
]
keywords = ["intune", "microsoft-graph", "powershell", "repository-tooling"]
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
# Runtime dependencies
dependencies = []
# Development dependencies
# These are the minimum required for CI workflows to pass.
# The root configuration keeps only the Python tooling needed by retained
# template-sync and repository helper tests.
[project.optional-dependencies]
dev = [
"pytest>=9.0.3",
"pytest-cov>=7.1.0",
"mypy>=1.20.0",
"pyright>=1.1.411",
"ruff>=0.15.10",
"jsonschema>=4.18.0",
"types-jsonschema>=4.26.0.20260518",
"PyYAML>=6.0.3",
# yamllint backs the generated-YAML assertions in
# tests/test_materialize_downstream_adoption.py (the marker and full
# adoption surfaces); without it those assertions skip instead of running
# under `pip install -e ".[dev]"`. The floor matches the yamllint
# pre-commit hook `rev` in .pre-commit-config.yaml so the tests exercise
# the same linter that the hook enforces.
"yamllint>=1.38.0",
# check-jsonschema validates retained schema examples and template-sync
# schemas.
# It is pinned to the exact version of the check-jsonschema pre-commit hook
# in .pre-commit-config.yaml so the regression tests exercise the same
# bundled vendor schemas as the default hooks, so bump them together.
"check-jsonschema==0.37.3",
]
[tool.setuptools]
packages = []
[tool.black]
line-length = 100
# Keep this explicit and aligned with the active Python support window
# to avoid formatter/runtime mismatches and stale syntax allowances.
target-version = ["py313", "py314"]
[tool.mypy]
# Check against the lowest supported Python line so type checks stay compatible
# across the support window. mypy uses a dotted version string.
python_version = "3.13"
mypy_path = "$MYPY_CONFIG_FILE_DIR/.github/scripts,$MYPY_CONFIG_FILE_DIR/.template-sync/scripts"
explicit_package_bases = true
warn_return_any = true
warn_unused_configs = true
# Start permissive for template; projects can tighten as they mature
disallow_untyped_defs = false
[tool.pytest.ini_options]
strict_markers = true
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
markers = [
"upstream_template_only: tests that rely on the upstream template repository's complete optional module set, protected governance files, unreplaced placeholders, or maintainer-only context",
"downstream_template_support: tests useful for downstream template-support validation; the official downstream gate uses negative upstream_template_only selection instead",
"slow: tests that run slower integration scenarios and may be isolated during local iteration",
]