freeze-core 0.1.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.
- freeze_core-0.1.0/LICENSE +21 -0
- freeze_core-0.1.0/MANIFEST.in +6 -0
- freeze_core-0.1.0/Makefile +80 -0
- freeze_core-0.1.0/PKG-INFO +52 -0
- freeze_core-0.1.0/README.md +1 -0
- freeze_core-0.1.0/pyproject.toml +263 -0
- freeze_core-0.1.0/requirements-dev.txt +3 -0
- freeze_core-0.1.0/requirements.txt +6 -0
- freeze_core-0.1.0/setup.cfg +4 -0
- freeze_core-0.1.0/setup.py +336 -0
- freeze_core-0.1.0/src/freeze_core/__init__.py +3 -0
- freeze_core-0.1.0/src/freeze_core/bases/Win32GUI.c +238 -0
- freeze_core-0.1.0/src/freeze_core/bases/Win32Service.c +655 -0
- freeze_core-0.1.0/src/freeze_core/bases/__init__.py +1 -0
- freeze_core-0.1.0/src/freeze_core/bases/_common.c +483 -0
- freeze_core-0.1.0/src/freeze_core/bases/console.c +59 -0
- freeze_core-0.1.0/src/freeze_core/bases/dummy.rc +4 -0
- freeze_core-0.1.0/src/freeze_core/bases/manifest.rc +9 -0
- freeze_core-0.1.0/src/freeze_core/bases/python.manifest +35 -0
- freeze_core-0.1.0/src/freeze_core/icons/__init__.py +5 -0
- freeze_core-0.1.0/src/freeze_core/icons/launcher.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/launcher.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/launcher.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/logo.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/logox128.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/py.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/py.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/py.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/py.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/pyc.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pyc.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pyc.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/pyd.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pyd.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pyd.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/python.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/python.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/python.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonw.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonw.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonw.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonwx150.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonwx44.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonx150.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonx44.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/pythonx50.png +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/setup.icns +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/setup.ico +0 -0
- freeze_core-0.1.0/src/freeze_core/icons/setup.svg +1 -0
- freeze_core-0.1.0/src/freeze_core/include/pythoncapi_compat.h +2301 -0
- freeze_core-0.1.0/src/freeze_core/initscripts/__init__.py +1 -0
- freeze_core-0.1.0/src/freeze_core/initscripts/__startup__.py +131 -0
- freeze_core-0.1.0/src/freeze_core/initscripts/console.py +25 -0
- freeze_core-0.1.0/src/freeze_core/initscripts/consolesetlibpath.py +39 -0
- freeze_core-0.1.0/src/freeze_core/initscripts/sharedlib.py +17 -0
- freeze_core-0.1.0/src/freeze_core/initscripts/sharedlibsource.py +25 -0
- freeze_core-0.1.0/src/freeze_core/legacy/Win32GUI.c +231 -0
- freeze_core-0.1.0/src/freeze_core/legacy/Win32Service.c +647 -0
- freeze_core-0.1.0/src/freeze_core/legacy/__init__.py +1 -0
- freeze_core-0.1.0/src/freeze_core/legacy/common.c +340 -0
- freeze_core-0.1.0/src/freeze_core/legacy/console.c +125 -0
- freeze_core-0.1.0/src/freeze_core/util.c +560 -0
- freeze_core-0.1.0/src/freeze_core/util.pyi +41 -0
- freeze_core-0.1.0/src/freeze_core.egg-info/PKG-INFO +52 -0
- freeze_core-0.1.0/src/freeze_core.egg-info/SOURCES.txt +69 -0
- freeze_core-0.1.0/src/freeze_core.egg-info/dependency_links.txt +1 -0
- freeze_core-0.1.0/src/freeze_core.egg-info/not-zip-safe +1 -0
- freeze_core-0.1.0/src/freeze_core.egg-info/requires.txt +25 -0
- freeze_core-0.1.0/src/freeze_core.egg-info/top_level.txt +1 -0
- freeze_core-0.1.0/tests/__init__.py +1 -0
- freeze_core-0.1.0/tests/requirements.txt +6 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Marcelo Duarte
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Makefile to automate some tools
|
|
2
|
+
SHELL=/bin/bash
|
|
3
|
+
PATH := $(shell python -c "import sysconfig; print(sysconfig.get_path('scripts'))"):$(PATH)
|
|
4
|
+
|
|
5
|
+
PY_PLATFORM := $(shell python -c "import sysconfig; print(sysconfig.get_platform())")
|
|
6
|
+
PRE_COMMIT_OPTIONS := --show-diff-on-failure --color=always --all-files --hook-stage=manual
|
|
7
|
+
|
|
8
|
+
COV_TMPDIR := $(shell mktemp -d)
|
|
9
|
+
|
|
10
|
+
.PHONY: all
|
|
11
|
+
all: install
|
|
12
|
+
|
|
13
|
+
.PHONY: pre-commit
|
|
14
|
+
pre-commit: install
|
|
15
|
+
@(pre-commit run $(PRE_COMMIT_OPTIONS) || true) | more
|
|
16
|
+
@pre-commit gc
|
|
17
|
+
|
|
18
|
+
.PHONY: clean
|
|
19
|
+
clean:
|
|
20
|
+
@rm -f .coverage* || true
|
|
21
|
+
@rm -rf build dist wheelhouse
|
|
22
|
+
|
|
23
|
+
.PHONY: install
|
|
24
|
+
install:
|
|
25
|
+
./ci/install-tools.sh --dev
|
|
26
|
+
if ! [ -f .git/hooks/pre-commit ]; then\
|
|
27
|
+
pre-commit install --install-hooks --overwrite -t pre-commit;\
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
.PHONY: uninstall
|
|
31
|
+
uninstall:
|
|
32
|
+
@if [ -f .git/hooks/pre-commit ]; then\
|
|
33
|
+
pre-commit clean;\
|
|
34
|
+
pre-commit uninstall;\
|
|
35
|
+
rm -f .git/hooks/pre-commit;\
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
.PHONY: upgrade
|
|
39
|
+
upgrade: uninstall clean install
|
|
40
|
+
pre-commit autoupdate
|
|
41
|
+
$(MAKE) pre-commit
|
|
42
|
+
|
|
43
|
+
.PHONY: tests
|
|
44
|
+
tests:
|
|
45
|
+
./ci/install-tools.sh --tests
|
|
46
|
+
./ci/build-wheel.sh
|
|
47
|
+
cp pyproject.toml $(COV_TMPDIR)/
|
|
48
|
+
cp -a tests/ $(COV_TMPDIR)/
|
|
49
|
+
cd $(COV_TMPDIR) && pytest -nauto -v || true
|
|
50
|
+
|
|
51
|
+
.PHONY: cov
|
|
52
|
+
cov:
|
|
53
|
+
./ci/install-tools.sh --tests
|
|
54
|
+
./ci/build-wheel.sh
|
|
55
|
+
@rm -rf build/coverage_html_report
|
|
56
|
+
cp pyproject.toml $(COV_TMPDIR)/
|
|
57
|
+
cp -a tests/ $(COV_TMPDIR)/
|
|
58
|
+
cd $(COV_TMPDIR) && coverage run || true
|
|
59
|
+
coverage combine --keep --quiet -a $(COV_TMPDIR)/
|
|
60
|
+
coverage report
|
|
61
|
+
coverage html
|
|
62
|
+
|
|
63
|
+
.PHONY: release
|
|
64
|
+
release:
|
|
65
|
+
bump-my-version show-bump 2>/dev/null
|
|
66
|
+
@echo "Run:"
|
|
67
|
+
@echo " bump-my-version bump <option>"
|
|
68
|
+
@echo "--or--"
|
|
69
|
+
@echo " bump-my-version bump patch --new-version=X.XX.X"
|
|
70
|
+
@echo "--then--"
|
|
71
|
+
@echo " git push origin `git branch --show-current` --tags"
|
|
72
|
+
|
|
73
|
+
.PHONY: release-dev
|
|
74
|
+
release-dev:
|
|
75
|
+
if (grep "current_version" pyproject.toml | grep -q "\-dev"); then\
|
|
76
|
+
bump-my-version bump --allow-dirty --no-tag build;\
|
|
77
|
+
else\
|
|
78
|
+
bump-my-version bump --allow-dirty --no-tag minor;\
|
|
79
|
+
fi
|
|
80
|
+
git log -1
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: freeze_core
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Create standalone executables from Python scripts
|
|
5
|
+
Author-email: Marcelo Duarte <marcelotduarte@users.noreply.github.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Home, https://marcelotduarte.github.io/cx_Freeze
|
|
8
|
+
Project-URL: Changelog, https://github.com/marcelotduarte/freeze-core/CHANGELOG.md
|
|
9
|
+
Project-URL: Documentation, https://cx-freeze.readthedocs.io
|
|
10
|
+
Project-URL: Source, https://github.com/marcelotduarte/freeze-core
|
|
11
|
+
Project-URL: Tracker, https://github.com/marcelotduarte/cx_Freeze/issues
|
|
12
|
+
Keywords: cx-freeze cxfreeze cx_Freeze freeze python
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Natural Language :: English
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: C
|
|
18
|
+
Classifier: Programming Language :: Python
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
26
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Classifier: Topic :: System :: Software Distribution
|
|
29
|
+
Classifier: Topic :: Utilities
|
|
30
|
+
Requires-Python: >=3.9
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
License-File: LICENSE
|
|
33
|
+
Requires-Dist: filelock>=3.12.3
|
|
34
|
+
Requires-Dist: packaging>=24
|
|
35
|
+
Requires-Dist: tomli>=2.0.1; python_version < "3.11"
|
|
36
|
+
Requires-Dist: cabarchive>=0.2.4; sys_platform == "win32"
|
|
37
|
+
Requires-Dist: cx-logging>=3.1; sys_platform == "win32" and platform_machine != "ARM64"
|
|
38
|
+
Requires-Dist: striprtf>=0.0.26; sys_platform == "win32"
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: bump-my-version==1.2.1; extra == "dev"
|
|
41
|
+
Requires-Dist: cibuildwheel==3.1.4; extra == "dev"
|
|
42
|
+
Requires-Dist: pre-commit==4.3.0; extra == "dev"
|
|
43
|
+
Provides-Extra: tests
|
|
44
|
+
Requires-Dist: coverage==7.10.6; extra == "tests"
|
|
45
|
+
Requires-Dist: pytest==8.4.1; extra == "tests"
|
|
46
|
+
Requires-Dist: pluggy==1.6.0; extra == "tests"
|
|
47
|
+
Requires-Dist: pytest-mock==3.14.1; extra == "tests"
|
|
48
|
+
Requires-Dist: pytest-timeout==2.4.0; extra == "tests"
|
|
49
|
+
Requires-Dist: pytest-xdist==3.8.0; extra == "tests"
|
|
50
|
+
Dynamic: license-file
|
|
51
|
+
|
|
52
|
+
# freeze-core
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# freeze-core
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
# setuptools 77.0.3+ supports PEP 639
|
|
4
|
+
"setuptools>=77.0.3,<=80.9.0",
|
|
5
|
+
"cx-logging>=3.1 ;sys_platform == 'win32'",
|
|
6
|
+
]
|
|
7
|
+
build-backend = "setuptools.build_meta"
|
|
8
|
+
|
|
9
|
+
[project]
|
|
10
|
+
name = "freeze_core"
|
|
11
|
+
description = "Create standalone executables from Python scripts"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Marcelo Duarte", email = "marcelotduarte@users.noreply.github.com"}
|
|
14
|
+
]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 5 - Production/Stable",
|
|
17
|
+
"Intended Audience :: Developers",
|
|
18
|
+
"Natural Language :: English",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
"Programming Language :: C",
|
|
21
|
+
"Programming Language :: Python",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
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
|
+
"Programming Language :: Python :: 3.13",
|
|
29
|
+
"Topic :: Software Development :: Build Tools",
|
|
30
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
31
|
+
"Topic :: System :: Software Distribution",
|
|
32
|
+
"Topic :: Utilities",
|
|
33
|
+
]
|
|
34
|
+
dependencies = [
|
|
35
|
+
"filelock>=3.12.3",
|
|
36
|
+
"packaging>=24",
|
|
37
|
+
"tomli>=2.0.1 ;python_version < '3.11'",
|
|
38
|
+
# Windows
|
|
39
|
+
"cabarchive>=0.2.4 ;sys_platform == 'win32'",
|
|
40
|
+
"cx-logging>=3.1 ;sys_platform == 'win32' and platform_machine != 'ARM64'",
|
|
41
|
+
"striprtf>=0.0.26 ;sys_platform == 'win32'",
|
|
42
|
+
]
|
|
43
|
+
dynamic = ["version"]
|
|
44
|
+
keywords = ["cx-freeze cxfreeze cx_Freeze freeze python"]
|
|
45
|
+
license = "MIT"
|
|
46
|
+
license-files = ["LICENSE"]
|
|
47
|
+
readme = "README.md"
|
|
48
|
+
requires-python = ">=3.9"
|
|
49
|
+
|
|
50
|
+
[project.optional-dependencies]
|
|
51
|
+
dev = [
|
|
52
|
+
"bump-my-version==1.2.1",
|
|
53
|
+
"cibuildwheel==3.1.4",
|
|
54
|
+
"pre-commit==4.3.0", # python_version >= 3.9
|
|
55
|
+
]
|
|
56
|
+
tests = [
|
|
57
|
+
"coverage==7.10.6",
|
|
58
|
+
"pytest==8.4.1",
|
|
59
|
+
"pluggy==1.6.0",
|
|
60
|
+
"pytest-mock==3.14.1",
|
|
61
|
+
"pytest-timeout==2.4.0",
|
|
62
|
+
"pytest-xdist==3.8.0",
|
|
63
|
+
]
|
|
64
|
+
|
|
65
|
+
[project.urls]
|
|
66
|
+
Home = "https://marcelotduarte.github.io/cx_Freeze"
|
|
67
|
+
Changelog = "https://github.com/marcelotduarte/freeze-core/CHANGELOG.md"
|
|
68
|
+
Documentation = "https://cx-freeze.readthedocs.io"
|
|
69
|
+
Source = "https://github.com/marcelotduarte/freeze-core"
|
|
70
|
+
Tracker = "https://github.com/marcelotduarte/cx_Freeze/issues"
|
|
71
|
+
|
|
72
|
+
[tool.setuptools]
|
|
73
|
+
include-package-data = true
|
|
74
|
+
package-dir = {"" = "src"}
|
|
75
|
+
zip-safe = false
|
|
76
|
+
|
|
77
|
+
[tool.setuptools.dynamic]
|
|
78
|
+
version = {attr = "freeze_core.__version__"}
|
|
79
|
+
|
|
80
|
+
[tool.setuptools.packages.find]
|
|
81
|
+
namespaces = false
|
|
82
|
+
where = ["src"]
|
|
83
|
+
|
|
84
|
+
[tool.bumpversion]
|
|
85
|
+
commit = true
|
|
86
|
+
current_version = "0.1.0"
|
|
87
|
+
message = "Bump version: {current_version} → {new_version} [ci skip]"
|
|
88
|
+
parse = """(?x)
|
|
89
|
+
(?P<major>0|[1-9]\\d*)\\.
|
|
90
|
+
(?P<minor>0|[1-9]\\d*)\\.
|
|
91
|
+
(?P<patch>0|[1-9]\\d*)
|
|
92
|
+
(?:
|
|
93
|
+
\\.(?P<optional>0|[1-9]\\d*) # pull request number (optional)
|
|
94
|
+
)?
|
|
95
|
+
(?:
|
|
96
|
+
- # dash separator for pre-release section
|
|
97
|
+
(?P<pre>[a-zA-Z-]+)\\. # pre-release label
|
|
98
|
+
(?P<build>0|[1-9]\\d*) # pre-release version number
|
|
99
|
+
)? # pre-release section is optional
|
|
100
|
+
"""
|
|
101
|
+
serialize = [
|
|
102
|
+
"{major}.{minor}.{patch}.{optional}-{pre}.{build}",
|
|
103
|
+
"{major}.{minor}.{patch}-{pre}.{build}",
|
|
104
|
+
"{major}.{minor}.{patch}"
|
|
105
|
+
]
|
|
106
|
+
sign_tags = true
|
|
107
|
+
tag = true
|
|
108
|
+
tag_name = "{new_version}"
|
|
109
|
+
verbose = true
|
|
110
|
+
|
|
111
|
+
[[tool.bumpversion.files]]
|
|
112
|
+
filename = "src/freeze_core/__init__.py"
|
|
113
|
+
|
|
114
|
+
[tool.bumpversion.parts.pre]
|
|
115
|
+
values = ["dev", "final"]
|
|
116
|
+
optional_value = "final"
|
|
117
|
+
|
|
118
|
+
[tool.cibuildwheel]
|
|
119
|
+
before-build = "uv pip install -r pyproject.toml"
|
|
120
|
+
build-frontend = "build[uv]"
|
|
121
|
+
build-verbosity = 1
|
|
122
|
+
enable = ["cpython-freethreading"]
|
|
123
|
+
skip = [
|
|
124
|
+
"cp3{9,10,13,14}-musllinux_*",
|
|
125
|
+
"cp3{9,10,13,14}-manylinux_ppc64le",
|
|
126
|
+
"cp3{13,14}t-win*",
|
|
127
|
+
]
|
|
128
|
+
|
|
129
|
+
[tool.cibuildwheel.linux]
|
|
130
|
+
archs = "x86_64 aarch64 ppc64le"
|
|
131
|
+
before-build = """
|
|
132
|
+
cd /opt/_internal && tar -xvf static-libs-for-embedding-only.tar.xz
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
[tool.cibuildwheel.macos]
|
|
136
|
+
archs = "universal2"
|
|
137
|
+
repair-wheel-command = """
|
|
138
|
+
delocate-wheel --require-archs {delocate_archs} -L bases/lib -w {dest_dir} {wheel}
|
|
139
|
+
"""
|
|
140
|
+
|
|
141
|
+
[tool.coverage.html]
|
|
142
|
+
directory = "build/coverage_html_report"
|
|
143
|
+
|
|
144
|
+
[tool.coverage.report]
|
|
145
|
+
# Regexes for lines to exclude from consideration
|
|
146
|
+
exclude_also = [
|
|
147
|
+
# Don't complain about missing debug-only code:
|
|
148
|
+
"def __repr__",
|
|
149
|
+
|
|
150
|
+
# Don't complain about abstract methods, they aren't run:
|
|
151
|
+
"@(abc\\.)?abstractmethod",
|
|
152
|
+
|
|
153
|
+
# TYPE_CHECKING block is never executed during pytest run
|
|
154
|
+
"if TYPE_CHECKING:",
|
|
155
|
+
]
|
|
156
|
+
ignore_errors = true
|
|
157
|
+
omit = [
|
|
158
|
+
"*/src/freeze_core/initscripts/*",
|
|
159
|
+
]
|
|
160
|
+
precision = 2
|
|
161
|
+
|
|
162
|
+
[tool.coverage.paths]
|
|
163
|
+
source = [
|
|
164
|
+
"src/freeze_core/",
|
|
165
|
+
"*/src/freeze_core/",
|
|
166
|
+
]
|
|
167
|
+
|
|
168
|
+
[tool.coverage.run]
|
|
169
|
+
command_line = "-m pytest -nauto"
|
|
170
|
+
source = ["freeze_core"]
|
|
171
|
+
parallel = true
|
|
172
|
+
patch = ["subprocess"]
|
|
173
|
+
relative_files = true
|
|
174
|
+
|
|
175
|
+
[tool.pytest.ini_options]
|
|
176
|
+
minversion = "7.0"
|
|
177
|
+
addopts = "-rpfEsXx"
|
|
178
|
+
testpaths = ["tests"]
|
|
179
|
+
filterwarnings = [
|
|
180
|
+
"ignore::DeprecationWarning:distutils.*",
|
|
181
|
+
"ignore::DeprecationWarning:pkg_resources.*",
|
|
182
|
+
"ignore::DeprecationWarning:setuptools.*",
|
|
183
|
+
]
|
|
184
|
+
|
|
185
|
+
[tool.ruff]
|
|
186
|
+
line-length = 79
|
|
187
|
+
|
|
188
|
+
[tool.ruff.lint]
|
|
189
|
+
select = [
|
|
190
|
+
"A", # flake8-builtins
|
|
191
|
+
"ANN2", # flake8-annotations - missing return type
|
|
192
|
+
"ARG", # flake8-unused-arguments
|
|
193
|
+
"B", # flake8-bugbear
|
|
194
|
+
"BLE", # flake8-blind-except
|
|
195
|
+
"C4", # flake8-comprehensions
|
|
196
|
+
"D", # pydocstyle
|
|
197
|
+
"DTZ", # flake8-datetimez
|
|
198
|
+
"E", "W", # pycodestyle
|
|
199
|
+
"EXE", # flake8-executable
|
|
200
|
+
"EM", # flake8-errmsg
|
|
201
|
+
"ERA", # eradicate
|
|
202
|
+
"F", # flake8
|
|
203
|
+
"FA", # flake8-future-annotations
|
|
204
|
+
"FLY", # flynt
|
|
205
|
+
"G", # flake8-logging-format
|
|
206
|
+
"I", # isort
|
|
207
|
+
"ICN", # flake8-import-conventions
|
|
208
|
+
"INT", # flake8-gettext
|
|
209
|
+
"ISC003", # flake8-implicit-str-concat - explicit-string-concatenation
|
|
210
|
+
"LOG", # flake8-logging
|
|
211
|
+
"PERF", # Perflint
|
|
212
|
+
"PGH", # pygrep-hooks
|
|
213
|
+
"PIE", # flake8-pie
|
|
214
|
+
"PLC", "PLE", "PLR", "PLW", # pylint
|
|
215
|
+
"PT", # flake8-pytest-style
|
|
216
|
+
"PYI", # flake8-pyi
|
|
217
|
+
"Q004", # flake8-quotes - unnecessary-escaped-quote
|
|
218
|
+
"RET", # flake8-return
|
|
219
|
+
"RSE", # flake8-raise
|
|
220
|
+
"RUF", # Ruff-specific
|
|
221
|
+
"S", # flake8-bandit
|
|
222
|
+
"SIM", # flake8-simplify
|
|
223
|
+
"SLF", # flake8-self
|
|
224
|
+
"SLOT", # flake8-slots
|
|
225
|
+
"T10", # flake8-debugger
|
|
226
|
+
"TC", # flake8-type-checking
|
|
227
|
+
"TID", # flake8-tidy-imports
|
|
228
|
+
"TRY", # tryceratops
|
|
229
|
+
"UP", # pyupgrade
|
|
230
|
+
"YTT", # flake8-2020
|
|
231
|
+
]
|
|
232
|
+
ignore = [
|
|
233
|
+
# ignored for now, but should be revised in future
|
|
234
|
+
# last revised using ruff 0.12.0
|
|
235
|
+
"D102", # Missing docstring in public method
|
|
236
|
+
"D205", # 1 blank line required between summary line and description
|
|
237
|
+
"D401", # First line of docstring should be in imperative mood
|
|
238
|
+
"PERF203", # `try`-`except` within a loop incurs performance overhead
|
|
239
|
+
# ignore the following
|
|
240
|
+
"D105", # Missing docstring in magic method
|
|
241
|
+
"D107", # Missing docstring in `__init__`
|
|
242
|
+
"D203", # conflict with D211
|
|
243
|
+
"D213", # conflict with D212
|
|
244
|
+
"PLR2004", # magic-value-comparison
|
|
245
|
+
"PLR0912", # too-many-branches
|
|
246
|
+
"PLR0913", # too-many-arguments
|
|
247
|
+
"PLR0915", # too-many-statements
|
|
248
|
+
"PYI021", # Docstrings should not be included in stubs
|
|
249
|
+
# avoid the rules that may cause conflict with formatter
|
|
250
|
+
"E501",
|
|
251
|
+
# prone to false positives (https://github.com/astral-sh/ruff/issues/4045)
|
|
252
|
+
"S603",
|
|
253
|
+
]
|
|
254
|
+
|
|
255
|
+
[tool.ruff.lint.per-file-ignores]
|
|
256
|
+
"src/freeze_core/initscripts/*" = ["S102"]
|
|
257
|
+
"tests/*" = ["S101"]
|
|
258
|
+
|
|
259
|
+
[tool.ruff.lint.flake8-builtins]
|
|
260
|
+
strict-checking = true
|
|
261
|
+
|
|
262
|
+
[tool.ruff.lint.flake8-unused-arguments]
|
|
263
|
+
ignore-variadic-names = true
|