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,6 @@
1
+ # core.py
2
+ PREPEND_STR = "prepend_"
3
+
4
+
5
+ def modify_str(string: str) -> str:
6
+ return f"{PREPEND_STR}{string}"
@@ -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