Python Inliner merges in a single file all files from a Python package.
Project description
pinliner - Python Inliner
This tool allows you to merge all files that comprise a Python package into a single file and be able to use this single file as if it were a package.
Not only will it behave as if it were the original package, but it will also show code in exceptions and debug sessions, and will display the right line number and file when logging.
Imports will work as usual so if you have a package structure like:
. └── [my_package] ├── file_a.py ├── [sub_package] │ ├── file_b.py │ └── __init__.py ├── __init__.py
And with pinliner installed you execute:
$ mkdir test
$ pinliner my_package test/my_package.py
$ cd test
$ python
You’ll be able to use generated my_package.py file as if it were the real package:
>>> import my_package
>>> from my_package import file_a as a_file
>>> from my_package.sub_package import file_b
And __init__.py contents will be executed as expected when importing my_package package and you’ll be able to access its contents like you would with your normal package.
Modules will also behave as usual.
Installation
You can install pinliner globally in your system or use a virtual environment, this is how it could be done using a virtual environment:
$ virtualenv .venv
$ source .venv/bin/activate
$ pip install pinliner
After that you can run the tool with pinliner.
History
0.1.1 (2016-03-29)
Fix missing template file when installing
Reduce memory footprint to keep the package structure and code.
Include tagging of beginning of files in the output.
0.1.0 (2016-03-27)
Show code when debugging and on tracebacks
Improve internal package and module names
Fix line numbers (off by 1)
Package’s root namespace is no longer polluted by pinliner
Original filename for package/modules is stored so it will be reported by exceptions and logging.
0.0.1 (2016-03-26)
Basic functionality.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pinliner-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 532794b2fbc5a0bf7a4add59ec72ae00e29e785b5dc340e2982f6c8c7e86a840 |
|
MD5 | f20ae5d5c1467779e38a7646a3361d94 |
|
BLAKE2b-256 | 32125e7ac55786d634ce174e37d27b53ddbcd566cfb2744f87caef965aeb2505 |