mpxnk-test-library-third 1.0.0__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,44 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mpxnk-test-library-third
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: LIB_DESCRIPTION
|
|
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: changelog, https://github.com/meowthpxnk/mpxnk-test-library-third/blob/main/CHANGELOG.md
|
|
13
|
+
Project-URL: github, https://github.com/meowthpxnk/mpxnk-test-library-third
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
16
|
+
# My own python library tempolate
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
1. Add new repository in PyPI
|
|
21
|
+
Go to https://pypi.org/manage/account/publishing
|
|
22
|
+
Add new GitHub repository
|
|
23
|
+
- Project name - Your project name
|
|
24
|
+
- Owner - Your github username
|
|
25
|
+
- Repository - Repository name
|
|
26
|
+
- Workflow name - `publish.yaml`
|
|
27
|
+
- Environment name - `publish`
|
|
28
|
+
|
|
29
|
+
2. Run renaming script
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
poetry run rename_lib
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
3. Replace `LIB_DESCRIPTION` in pyproject.toml with your library description.
|
|
36
|
+
|
|
37
|
+
4. Update and push your project.
|
|
38
|
+
|
|
39
|
+
5. Go to github repository actions and run CI/CD workflow.
|
|
40
|
+
|
|
41
|
+
## Workflow usage
|
|
42
|
+
|
|
43
|
+
Workflow has
|
|
44
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# My own python library tempolate
|
|
2
|
+
|
|
3
|
+
## Usage
|
|
4
|
+
|
|
5
|
+
1. Add new repository in PyPI
|
|
6
|
+
Go to https://pypi.org/manage/account/publishing
|
|
7
|
+
Add new GitHub repository
|
|
8
|
+
- Project name - Your project name
|
|
9
|
+
- Owner - Your github username
|
|
10
|
+
- Repository - Repository name
|
|
11
|
+
- Workflow name - `publish.yaml`
|
|
12
|
+
- Environment name - `publish`
|
|
13
|
+
|
|
14
|
+
2. Run renaming script
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
poetry run rename_lib
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
3. Replace `LIB_DESCRIPTION` in pyproject.toml with your library description.
|
|
21
|
+
|
|
22
|
+
4. Update and push your project.
|
|
23
|
+
|
|
24
|
+
5. Go to github repository actions and run CI/CD workflow.
|
|
25
|
+
|
|
26
|
+
## Workflow usage
|
|
27
|
+
|
|
28
|
+
Workflow has
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# --> Project
|
|
2
|
+
[project]
|
|
3
|
+
name = "mpxnk-test-library-third"
|
|
4
|
+
version = "1.0.0"
|
|
5
|
+
description = "LIB_DESCRIPTION"
|
|
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-library-third", changelog = "https://github.com/meowthpxnk/mpxnk-test-library-third/blob/main/CHANGELOG.md" }
|
|
17
|
+
|
|
18
|
+
# --> Poetry
|
|
19
|
+
[tool.poetry]
|
|
20
|
+
packages = [{ include = "mpxnk_test_library_third" }]
|
|
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
|
+
pytest-custom-exit-code = "^0.3.0"
|
|
32
|
+
pre-commit = "^3.7" # Git hook manager
|
|
33
|
+
python-dotenv = "^1.1.1"
|
|
34
|
+
# -> for semantic release
|
|
35
|
+
python-semantic-release = "^9.0"
|
|
36
|
+
|
|
37
|
+
[tool.poetry.group.dev]
|
|
38
|
+
optional = true
|
|
39
|
+
|
|
40
|
+
# --> Build system
|
|
41
|
+
# =============================================================================
|
|
42
|
+
# ๐ Build System (required for Poetry)
|
|
43
|
+
# =============================================================================
|
|
44
|
+
[build-system]
|
|
45
|
+
# requires = ["setuptools", "wheel"]
|
|
46
|
+
# build-backend = "setuptools.build_meta"
|
|
47
|
+
requires = ["poetry-core"]
|
|
48
|
+
build-backend = "poetry.core.masonry.api"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# --> Linting
|
|
52
|
+
# =============================================================================
|
|
53
|
+
# ๐๏ธ ruff โ Fast Python Linter & Code Quality
|
|
54
|
+
# =============================================================================
|
|
55
|
+
# Replaces flake8, isort, pyupgrade, and more.
|
|
56
|
+
# =============================================================================
|
|
57
|
+
[tool.ruff]
|
|
58
|
+
# General
|
|
59
|
+
src = ["."] # Root for resolving first-party imports
|
|
60
|
+
line-length = 79 # PEP 8 standard
|
|
61
|
+
|
|
62
|
+
# Exclude files/dirs
|
|
63
|
+
exclude = [
|
|
64
|
+
".git",
|
|
65
|
+
"__pycache__",
|
|
66
|
+
".mypy_cache",
|
|
67
|
+
".venv",
|
|
68
|
+
"venv",
|
|
69
|
+
"env",
|
|
70
|
+
"__init__.py",
|
|
71
|
+
"README.md",
|
|
72
|
+
"./scripts",
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
[tool.ruff.lint]
|
|
76
|
+
select = ["E", "W", "F", "I", "UP", "A", "B", "C4", "SIM", "ANN"]
|
|
77
|
+
ignore = ["ANN101", "ANN102", "ANN204"]
|
|
78
|
+
fixable = ["ALL"]
|
|
79
|
+
unfixable = []
|
|
80
|
+
# Per-file ignores (e.g., relaxed rules in tests)
|
|
81
|
+
[tool.ruff.lint.per-file-ignores]
|
|
82
|
+
"pytest/*" = [
|
|
83
|
+
"ANN201", # Missing return type (top-level function)
|
|
84
|
+
"ANN204", # Missing return type (method)
|
|
85
|
+
"ANN205", # Missing return type (coroutine)
|
|
86
|
+
"ANN206", # Missing return type (async method)
|
|
87
|
+
"ANN001", # Missing type annotation for *args
|
|
88
|
+
"ANN002", # Missing type annotation for **kwargs
|
|
89
|
+
"S101", # Use of `assert` (allowed in tests)
|
|
90
|
+
"E501", # Line too long (handled by black/ruff line-length)
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
# Import sorting (isort-style)
|
|
94
|
+
[tool.ruff.lint.isort]
|
|
95
|
+
known-first-party = ["mpxnk_test_library_third"] # โ Replace with your actual package name
|
|
96
|
+
|
|
97
|
+
# --> Tests
|
|
98
|
+
# =============================================================================
|
|
99
|
+
# ๐งช pytest โ Testing Framework
|
|
100
|
+
# =============================================================================
|
|
101
|
+
[tool.pytest.ini_options]
|
|
102
|
+
minversion = "6.0"
|
|
103
|
+
testpaths = ["pytest"] # Where to look for tests
|
|
104
|
+
python_files = ["test_*.py"] # Test file pattern
|
|
105
|
+
pythonpath = ["."] # Add root to Python path
|
|
106
|
+
addopts = "-v -x --tb=short --suppress-no-test-exit-code" # Verbose, stop on first fail, short traceback
|
|
107
|
+
markers = [
|
|
108
|
+
"unit: Quick core isolated tests",
|
|
109
|
+
"integration: Heavy integration tests with fixtures",
|
|
110
|
+
]
|
|
111
|
+
|
|
112
|
+
# --> Semaintic version
|
|
113
|
+
[tool.semantic_release]
|
|
114
|
+
version_toml = [
|
|
115
|
+
"pyproject.toml:project.version"
|
|
116
|
+
]
|
|
117
|
+
upload_to_pypi = false
|
|
118
|
+
upload_to_release = true
|
|
119
|
+
commit_parser = "conventional"
|
|
120
|
+
|
|
121
|
+
[tool.semantic_release.branches.main]
|
|
122
|
+
match = "main"
|
|
123
|
+
|
|
124
|
+
[tool.semantic_release.branches.support-v01]
|
|
125
|
+
match = "support/v0.1.x"
|
|
126
|
+
|
|
127
|
+
# =============================================================================
|
|
128
|
+
# ๐ Settings CHANGELOG.md
|
|
129
|
+
# =============================================================================
|
|
130
|
+
[tool.semantic_release.changelog.categories]
|
|
131
|
+
changelog_file = "CHANGELOG.md"
|
|
132
|
+
|
|
133
|
+
# =============================================================================
|
|
134
|
+
# ๐น๏ธ User scripts
|
|
135
|
+
# =============================================================================
|
|
136
|
+
[tool.poetry.scripts]
|
|
137
|
+
rename_lib = "scripts.rename_lib:main"
|