A PyPi package to demonstrate Python code distribution in a safe and automated way
- Make a package with file structure like this demo package
- The src folder contains source code of the normal Python package project
- The src/libs contains necessary .pyd(.so) files
- The
libs_root.pymust be included at the head of py files where some pyd module is called. - The
src_cythonfolder is the Cython files needed to protect and compile as pyd files. - The
build_pakcage.pyin the root andbuild_cython_libs.pyin the src_cython are automated scripts respectively. - Please see examples folder to see how to test a function from the PyPI package where the code is compiled and protected.
You cannot find the source code of Person.py in this package, which prevents code theft.
fromsafepi.Worldimportgreet_times# This function's algorithm is within a .pyd (.so in Linux) file compiled by Cython. # The source code cannot be found in the package and is therefore protected.greet_times(n=5)build_package.py: rapidly build Cython files, PyPI package and upload the package to PyPI website quickly. (your upload token is required!)
src_cython/build_cython_libs.py: Rapidly build Cython files and deploy all *.pyd files to to `src/libs' folder
The SafePI project is provided by Donghua Chen.