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.py
must be included at the head of py files where some pyd module is called. - The
src_cython
folder is the Cython files needed to protect and compile as pyd files. - The
build_pakcage.py
in the root andbuild_cython_libs.py
in 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.
from safepi.World import greet_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.