mpxnk-test-lib 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: mpxnk-test-lib
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Test library for mpxnk
|
|
5
|
+
License: MIT
|
|
6
|
+
Author: meowthpxnk
|
|
7
|
+
Author-email: meowthpxnk@gmail.com
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Project-URL: github, https://github.com/meowthpxnk/mpxnk-test-lib
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
|
|
15
|
+
|
|
File without changes
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# --> Project
|
|
2
|
+
[project]
|
|
3
|
+
name = "mpxnk-test-lib"
|
|
4
|
+
version = "0.0.1"
|
|
5
|
+
description = "Test library for mpxnk"
|
|
6
|
+
license = { text = "MIT" }
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
dependencies = []
|
|
10
|
+
authors = [{ name = "meowthpxnk", email = "meowthpxnk@gmail.com" }]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Programming Language :: Python :: 3",
|
|
13
|
+
"License :: OSI Approved :: MIT License",
|
|
14
|
+
"Operating System :: OS Independent",
|
|
15
|
+
]
|
|
16
|
+
urls = { github = "https://github.com/meowthpxnk/mpxnk-test-lib" }
|
|
17
|
+
|
|
18
|
+
# --> Poetry
|
|
19
|
+
[tool.poetry]
|
|
20
|
+
packages = [{ include = "mpxnk_test_lib" }]
|
|
21
|
+
|
|
22
|
+
# =============================================================================
|
|
23
|
+
# ๐งฉ Development Dependencies (dev-only)
|
|
24
|
+
# =============================================================================
|
|
25
|
+
# Tools for linting, testing, formatting, and pre-commit hooks.
|
|
26
|
+
# Installed via: `poetry install` (with --with dev)
|
|
27
|
+
# =============================================================================
|
|
28
|
+
[tool.poetry.group.dev.dependencies]
|
|
29
|
+
ruff = "^0.4.0" # Fast linter, formatter, import sorter
|
|
30
|
+
pytest = "^8.0" # Testing framework
|
|
31
|
+
pre-commit = "^3.7" # Git hook manager
|
|
32
|
+
python-dotenv = "^1.1.1"
|
|
33
|
+
|
|
34
|
+
[tool.poetry.group.dev]
|
|
35
|
+
optional = true
|
|
36
|
+
|
|
37
|
+
# --> Build system
|
|
38
|
+
# =============================================================================
|
|
39
|
+
# ๐ Build System (required for Poetry)
|
|
40
|
+
# =============================================================================
|
|
41
|
+
[build-system]
|
|
42
|
+
# requires = ["setuptools", "wheel"]
|
|
43
|
+
# build-backend = "setuptools.build_meta"
|
|
44
|
+
requires = ["poetry-core"]
|
|
45
|
+
build-backend = "poetry.core.masonry.api"
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# --> Linting
|
|
49
|
+
# =============================================================================
|
|
50
|
+
# ๐๏ธ ruff โ Fast Python Linter & Code Quality
|
|
51
|
+
# =============================================================================
|
|
52
|
+
# Replaces flake8, isort, pyupgrade, and more.
|
|
53
|
+
# =============================================================================
|
|
54
|
+
[tool.ruff]
|
|
55
|
+
# General
|
|
56
|
+
src = ["."] # Root for resolving first-party imports
|
|
57
|
+
line-length = 79 # PEP 8 standard
|
|
58
|
+
|
|
59
|
+
# Linting rules (enable specific rule sets)
|
|
60
|
+
lint.select = [
|
|
61
|
+
"E", # pycodestyle: syntax, indentation, quotes
|
|
62
|
+
"W", # pycodestyle warnings
|
|
63
|
+
"F", # pyflakes: unused vars, undefined names
|
|
64
|
+
"I", # isort: import sorting
|
|
65
|
+
"UP", # pyupgrade: modernize syntax (e.g., f-strings)
|
|
66
|
+
"A", # flake8-builtins: avoid shadowing (e.g., list, str)
|
|
67
|
+
"B", # flake8-bugbear: common bugs (e.g., mutable defaults)
|
|
68
|
+
"C4", # flake8-comprehensions: better comprehensions
|
|
69
|
+
"SIM", # flake8-simplify: simplify expressions
|
|
70
|
+
"ANN", # annotation warnings
|
|
71
|
+
]
|
|
72
|
+
# Ignore annotations
|
|
73
|
+
ignore = ["ANN101", "ANN102", "ANN204", "F401"]
|
|
74
|
+
|
|
75
|
+
# Auto-fix safe issues (unused imports, trivial simplifications)
|
|
76
|
+
lint.fixable = ["ALL"]
|
|
77
|
+
lint.unfixable = []
|
|
78
|
+
|
|
79
|
+
# Exclude files/dirs
|
|
80
|
+
exclude = [
|
|
81
|
+
".git",
|
|
82
|
+
"__pycache__",
|
|
83
|
+
".mypy_cache",
|
|
84
|
+
".venv",
|
|
85
|
+
"venv",
|
|
86
|
+
"env",
|
|
87
|
+
"migrations",
|
|
88
|
+
"migration",
|
|
89
|
+
"__init__.py",
|
|
90
|
+
"README.md",
|
|
91
|
+
"./database/versions",
|
|
92
|
+
]
|
|
93
|
+
# Per-file ignores (e.g., relaxed rules in tests)
|
|
94
|
+
[tool.ruff.lint.per-file-ignores]
|
|
95
|
+
"tests/*" = [
|
|
96
|
+
"ANN201", # Missing return type (top-level function)
|
|
97
|
+
"ANN204", # Missing return type (method)
|
|
98
|
+
"ANN205", # Missing return type (coroutine)
|
|
99
|
+
"ANN206", # Missing return type (async method)
|
|
100
|
+
"ANN001", # Missing type annotation for *args
|
|
101
|
+
"ANN002", # Missing type annotation for **kwargs
|
|
102
|
+
"S101", # Use of `assert` (allowed in tests)
|
|
103
|
+
"E501", # Line too long (handled by black/ruff line-length)
|
|
104
|
+
]
|
|
105
|
+
|
|
106
|
+
# Import sorting (isort-style)
|
|
107
|
+
[tool.ruff.lint.isort]
|
|
108
|
+
known-first-party = ["app"] # โ Replace with your actual package name
|
|
109
|
+
|
|
110
|
+
# --> Tests
|
|
111
|
+
# =============================================================================
|
|
112
|
+
# ๐งช pytest โ Testing Framework
|
|
113
|
+
# =============================================================================
|
|
114
|
+
[tool.pytest.ini_options]
|
|
115
|
+
minversion = "6.0"
|
|
116
|
+
testpaths = ["tests"] # Where to look for tests
|
|
117
|
+
python_files = ["test_*.py"] # Test file pattern
|
|
118
|
+
pythonpath = ["."] # Add root to Python path
|
|
119
|
+
addopts = "-v -x --tb=short" # Verbose, stop on first fail, short traceback
|
|
120
|
+
# addopts = "-v --cov=app --cov-report=html" # Uncomment for coverage
|