Protect your python source code with one command.
Project description
Goldenmask: Protect your python source code
Goldenmask is a tool to protect your python source code easily. It has two methods at the moment: using Compileall or using Cython. It has a corresponding option named --layer/-l
, you can choose your favorite method by yourself. Meanwhile, it can protect different file types: python files end with .py
, wheel packages end with .whl
and source package end with .tar.gz
.
Goldenmask is a name derived from a Chinese kungfu named "JinZhongZhao". Because it is not a qualified phrase in a sense, this name is so unique that can be used as a temporary compilation directory named __goldenmask__
and a compilation information file named .goldenmask
which contains the detailed python version string (from sys.version
) and the platform string (from platform.unmae()
) .
Let's try to goldenmask now!
Quick Start
$ pip install goldenmask
# 默认方法是使用 Compileall 编译为 pyc
$ goldenmask yourpythonfile.py
All done! ✨ 🍰 ✨
$ tree -a .
.
├── __goldenmask__
│ ├── .goldenmask
│ └── yourpythonfile.pyc
└── yourpythonfile.py
1 directory, 3 files
# 用生成的 .so 文件替换原始的 py 文件
$ goldenmask -i -l 2 yourpythonfile.py
All done! ✨ 🍰 ✨
$ tree -a .
.
├── .goldenmask
└── yourpythonfile.so
0 directories, 2 files
Installation
Goldenmask is distributed on PyPI and supports Python 3.6+. You can simply install goldenmask as below:
$ pip install -U goldenmask
However, it's a better choice to use a virtual environment:
$ python -m venv env
# On Windows:
$ .\venv\Scripts\activate
# On Linux:
$ source env/bin/activate
$ pip install goldenmask --upgrade
Because goldenmask depends on Cython, you should make sure that there is an appropriate C compiler on your machine. You can see the detailed guide on Cython's documentation. By the way, if you works on a Linux system, you can easily fetch everything you need with one command sudo apt-get install build-essential
on Ubuntu and yum groupinstall "Development Tools"
on Centos. However, If you are using Mac OS X or Windows, you may spend quite some time installing this compilers.
Usage
You can get everything using option --help
:
$ goldenmask --help
Usage: goldenmask [OPTIONS] [FILES_OR_DIRS]...
Goldenmask is a tool to protect your python source code easily.
FILES_OR_DIRS can be python files, wheel packages,source packages or dirs
contain python files.
Options:
-l, --layer <int> Level of protection: 1 - compileall; 2 - cython.
-i, --inplace Whether compile python files in place.
--no_smart This will copy and compile everything you specified.
--help Show this message and exit.
portect the wheel package:
$ goldenmask goldenmask-0.2.1-py3-none-any.whl
All done! ✨ 🍰 ✨
$ tree -a .
.
├── __goldenmask__
│ ├── .goldenmask
│ └── goldenmask-0.2.1-py3-none-any.whl
├── .goldenmask
└── goldenmask-0.2.1-py3-none-any.whl
1 directory, 4 files
protect the source packege:
$ goldenmask -l 2 --inplace goldenmask-0.1.2.tar.gz
running build_ext
building 'goldenmask.cli' extension
...
All done! ✨ 🍰 ✨
$ tree -a .
.
├── .goldenmask
└── goldenmask-0.1.2.tar.gz
protect the dir contians python files:
$ goldenmask pip-download/
All done! ✨ 🍰 ✨
Contribute
Goldenmask uses Poetry to develop, you can follow these steps to get involved:
- fork the project goldenmask
- clone the forked project
- install Poetry
- run
poetry install
to install dependencies,modify the code, run the tests and finally submit pull requests
Credits
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
File details
Details for the file goldenmask-0.2.1.tar.gz
.
File metadata
- Download URL: goldenmask-0.2.1.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1032-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abd302ac2846bf3f70fd8b6f20926e35e5b593c101cb9a15d7ee9b1b38abb66a |
|
MD5 | c819d2132cd8a73241e29fca29484865 |
|
BLAKE2b-256 | fde77482f759867cb1f9f1174f84c5965f73bf1fd511f96969bee888dac9de32 |
File details
Details for the file goldenmask-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: goldenmask-0.2.1-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1032-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0a7c2c5d370dd85a56dce284d9201cbf90c4656bea1d5fc60ab53e25d854420 |
|
MD5 | 97bd3e30ddb4baa0c3c3934e07cc81e0 |
|
BLAKE2b-256 | 7b8c2839589ff341e1d5be58fc1ecef32ccfead7c192df9170fd8b32975ce445 |