compileall2 Python module
Copy of compileall module from CPython source code with some new features, namely:
- compatibility with Python >= 3.6 & PyPy 3
The following features were first implemented in this project and then included into the standard libraty of CPython.
-
default recursion limit is now "unlimited" (actually limited by
sys.getrecursionlimit()) -
-sand-pcommand line options for manipulation of the path baked into a compiled*.pycfile. -
the
-ocommand line option can be specified multiple times to compile for multiple optimization levels in one run -
the
-ecommand line option for ignoring symlinks pointing outside a specific directory -
the
--hardlink-dupescommand line option which creates hardlinks between.pycfiles with the same content
Installation
-
From PyPI via
pip install compileall2 -
In Fedora Linux, compileall2.py is a part of python-srpm-macros RPM package.
Usage
compileall2 can be executed as a Python module or directly.
Example usage:
# Create some script (this one raises an exception to show tracebacks)
$ echo "1 / 0" > test.py
# Compile it
$ compileall2 test.py
Compiling 'test.py'...
# Try to execute compiled version directly
$ python __pycache__/test.cpython-37.pyc
Traceback (most recent call last):
File "test.py", line 1, in <module>
1 / 0
ZeroDivisionError: division by zero
# Recompile it with changes path which will be visible in error message
$ compileall2 -f -p /foo/bar test.py
Compiling 'test.py'...
$ python __pycache__/test.cpython-37.pyc
Traceback (most recent call last):
File "/foo/bar/test.py", line 1, in <module>
ZeroDivisionError: division by zero
# Same thing as above but executed as a Python module
$ python -m compileall2 -f -p /bar/baz test.py
Compiling 'test.py'...
$ python __pycache__/test.cpython-37.pyc
Traceback (most recent call last):
File "/bar/baz/test.py", line 1, in <module>
ZeroDivisionError: division by zero
Testing
You can test it locally with tox or unittest directly:
$ python3 -m unittest test_compileall2.py
..............sss....ss.......................sss....ss.....................ss.............................----------------------------------------------------------------------
Ran 107 tests in 3.714s
OK (skipped=12)
but running in a container might be better because the superuser has privileges to write to sys.path which lowers the number of skipped tests.
License
Metadata
Release files for compileall2 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| compileall2-0.8.0.tar.gz | 9.5 kB | Without provenance | Details for compileall2-0.8.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| compileall2-0.8.0-py3-none-any.whl | Python 3 | none | any | Details for compileall2-0.8.0-py3-none-any.whl |
Total release size: 19.3 kB
Release files / compileall2-0.8.0.tar.gz
| Download URL | compileall2-0.8.0.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c976d99ea6af04482c87b434f8b10ce21fccc7e95a8e63792c0895677f6f48e3
|
|
BLAKE2b-256 checksum How to use checksums |
20e5fdcf30add058a32eb12a9ae351f7aae0bfadb4bd1e313413f1c25c96e8ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.12.2
|
Release files / compileall2-0.8.0-py3-none-any.whl
| Download URL | compileall2-0.8.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
730b7b02502ed196a3fb13d5db975af27b3437444c9ad9347c02947ca8c0aeb3
|
|
BLAKE2b-256 checksum How to use checksums |
11ebecff38add2e89a09bf51afa1407c270e311b71443af5e7ed7204331f9649
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.12.2
|
Security for compileall2 0.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.