ComPYner is a small tool to bundle a python file and all its imports into a single file. This was created due to the limitations of the micropython implementation on the spike prime, where there is no filesystem to store multiple files. We are aware that there are better ways to implement what we have done, but this is the least ugly code that will run on spike primes micropython.
More about why we built compyner and how it works can be found here (German): bookstack.gsg-robots.de
Install compyner with pip, or another tool using PyPI:
pip install compynerWarning
This tool is not extensively tested and may not work as expected. Use at your own risk. Feel free to open an issue if you encounter any problems.
compyner <input> -o <output>This command will read the file at <input>, "compyne" it and writes the result to <output>
If the -o/--output argument is not used, the result will be saved with the same name as the input file but with the suffix .cpyd.py.
If any modules are imported that are in the standard library, these need to be excluded.
Normally, the script detects these imports and excludes them automatically, but this does not work for some, like the collections module.
Modules that are only availible in the standard library of the target environment should be excluded as well.
Modules that should be excluded should be passed as a space-seperated list to the --exclude argument.
compyner main.py --exclude math -o output.pyThis will combine the file main.py with all the files it imports, except for math, and output the result to output.py.
None at the moment.