pyencrypt-pye


Namepyencrypt-pye JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/ZhaoQi99/pyencrypt-pye
SummaryEncrypt python source code and import module dynamically.
upload_time2024-08-28 05:25:45
maintainerNone
docs_urlNone
authorQi Zhao
requires_python<3.13,>=3.6
licenseNone
keywords python-encrypt import-hook
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyencrypt-pye 

---
[![Python package](https://github.com/ZhaoQi99/pyencrypt-pye/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/ZhaoQi99/pyencrypt-pye/actions/workflows/main.yml)
[![Python version](https://img.shields.io/pypi/pyversions/pyencrypt-pye.svg?logo=python)](https://pypi.python.org/pypi/pyencrypt-pye)
[![PyPI package](https://img.shields.io/pypi/v/pyencrypt-pye.svg)](https://pypi.python.org/pypi/pyencrypt-pye) 
[![PyPI download](https://img.shields.io/pypi/dm/pyencrypt-pye.svg)](https://pypi.python.org/pypi/pyencrypt-pye)
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FZhaoQi99%2Fpyencrypt-pye&count_bg=%2379C83D&title_bg=%23555555&icon=github.svg&icon_color=%23E7E7E7&title=visitors&edge_flat=false)](https://hits.seeyoufarm.com)
[![GitHub](https://img.shields.io/github/license/ZhaoQi99/pyencrypt-pye)](https://github.com/ZhaoQi99/pyencrypt-pye/blob/main/LICENSE) 
![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/ZhaoQi99/pyencrypt-pye) 


encrypt python source code and import module dynamically.

```
                                                      _
         _ __  _   _  ___ _ __   ___ _ __ _   _ _ __ | |_
        | '_ \| | | |/ _ \ '_ \ / __| '__| | | | '_ \| __|
        | |_) | |_| |  __/ | | | (__| |  | |_| | |_) | |_
        | .__/ \__, |\___|_| |_|\___|_|   \__, | .__/ \__|
        |_|    |___/                      |___/|_|

        encrypt python source code and import dynamically.

                    VERSION 0.3.0
```
## How to do
https://github.com/ZhaoQi99/pyencrypt-pye/wiki#how-to-do

## Install

```bash
pip install pyencrypt-pye
✨🍰✨
```
Or you can use `pip install git+https://github.com/ZhaoQi99/pyencrypt-pye.git` install latest version.
## Usage

```shell
Usage: pyencrypt [OPTIONS] COMMAND [ARGS]...

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  decrypt   Decrypt encrypted pye file
  encrypt   Encrypt your python code
  generate  Generate loader file using specified key
  license   Generate license file using specified key
```

### Encrypt

```shell
~$ pyencrypt encrypt -h
Usage: pyencrypt encrypt [OPTIONS] PATHNAME

  Encrypt your python code

Options:
  -i, --in-place                  make changes to files in place
  -k, --key 🔑                     Your encryption key.If you don‘t specify
                                  key, pyencrypt will generate encryption key
                                  randomly.
  --with-license                  Add license to encrypted file
  -m, --bind-mac 01:23:45:67:89:AB
                                  Bind mac address to encrypted file
  -4, --bind-ipv4 192.168.0.1     Bind ipv4 address to encrypted file
  -b, --before [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
                                  License is invalid before this date.
  -a, --after [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
                                  License is invalid after this date.
  -y, --yes                       Automatically answer yes for confirm
                                  questions.
  -h, --help                      Show this message and exit.
```

### Entry File

In your entry file, you must import `loader` firstly, and then you can import encrypted modules as usual.

```python
import loader
from test import *
```

### Decrypt

```shell
~$ pyencrypt decrypt -h
Usage: pyencrypt decrypt [OPTIONS] PATHNAME

  Decrypt encrypted pye file

Options:
  -i, --in-place  make changes to files in place
  -k, --key 🔑     Your encryption key.  [required]
  -h, --help      Show this message and exit.
```

### Generate

```shell
~$ pyencrypt generate -h
Usage: pyencrypt generate [OPTIONS]

  Generate loader file using specified key

Options:
  -k, --key 🔑  Your encryption key.  [required]
  -h, --help   Show this message and exit.
```

### License

pyencrypt's loader will search for the license file in the following manner:

1. `~/.licenses/license.lic` file in your home directory.

2. `licenses/license.lic` file in `loader` file's directory.

3. `licenses/license.lic` file in the current working directory.

```shell
~$ pyencrypt license -h
   Usage: pyencrypt license [OPTIONS]

   Generate license file  using specified key

Options:
  -h, --help                      Show this message and exit.
  -k, --key 🔑     Your encryption key.  [required]
  -m, --bind-mac 01:23:45:67:89:AB
                                  Bind mac address to encrypted file
  -4, --bind-ipv4 192.168.0.1     Bind ipv4 address to encrypted file
  -b, --before [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
                                  License is invalid before this date.
  -a, --after [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
                                  License is invalid after this date.
```

### Shell Completion

<details open>
<summary>Bash</summary>
Add this to ~/.bashrc:

```shell
eval "$(_PYENCRYPT_COMPLETE=bash_source pyencrypt)"
```
</details>

<details>
<summary>Zsh</summary>
Add this to ~/.zshrc:

```shell
eval "$(_PYENCRYPT_COMPLETE=zsh_source pyencrypt)"
```
</details>

<details>
<summary>Fish</summary>
Add this to ~/.config/fish/completions/foo-bar.fish:

```shell
eval (env _PYENCRYPT_COMPLETE=fish_source pyencrypt)
```
</details>

## Example

### Encrypt

```shell
~$ pyencrypt encrypt --in-place  -y test.py
~$ pyencrypt encrypt test/
~$ pyencrypt encrypt test.py -y --with-license\
    --before="2000-01-01T00:00:00 +0800" --after="2030-01-01T00:00:00 +0800"\
    --bind-mac="AC:DE:48:00:11:22" --bind-ipv4="192.168.0.1"
```

### Decrypt

```shell
~$ pyencrypt decrypt -k xxx test.pye
```

### Generate

```shell
~$ pyencrypt generate -k xxx
```

### License

```shell
~$ pyencrypt license -k xxx\
    --before="2000-01-01T00:00:00 +0800" --after="2030-01-01T00:00:00 +0800"\
    --bind-mac="AC:DE:48:00:11:22" --bind-ipv4="192.168.0.1"
```

## Development

### Format Code

```shell
black pyencrypt 
isort pyencrypt
```

## License

[GNU General Public License v3.0](https://github.com/ZhaoQi99/pyencrypt-pye/blob/main/LICENSE)

## Author

* Qi Zhao([zhaoqi99@outlook.com](mailto:zhaoqi99@outlook.com))

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ZhaoQi99/pyencrypt-pye",
    "name": "pyencrypt-pye",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.6",
    "maintainer_email": null,
    "keywords": "python-encrypt, import-hook",
    "author": "Qi Zhao",
    "author_email": "zhaoqi99@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/cc/63/192e8fd5be66dcefe75270417516f96c64c9a3896d8b2208c74200dd0eaf/pyencrypt_pye-0.3.0.tar.gz",
    "platform": null,
    "description": "# pyencrypt-pye\u00a0\n\n---\n[![Python package](https://github.com/ZhaoQi99/pyencrypt-pye/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/ZhaoQi99/pyencrypt-pye/actions/workflows/main.yml)\n[![Python version](https://img.shields.io/pypi/pyversions/pyencrypt-pye.svg?logo=python)](https://pypi.python.org/pypi/pyencrypt-pye)\n[![PyPI package](https://img.shields.io/pypi/v/pyencrypt-pye.svg)](https://pypi.python.org/pypi/pyencrypt-pye)\u00a0\n[![PyPI download](https://img.shields.io/pypi/dm/pyencrypt-pye.svg)](https://pypi.python.org/pypi/pyencrypt-pye)\n[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FZhaoQi99%2Fpyencrypt-pye&count_bg=%2379C83D&title_bg=%23555555&icon=github.svg&icon_color=%23E7E7E7&title=visitors&edge_flat=false)](https://hits.seeyoufarm.com)\n[![GitHub](https://img.shields.io/github/license/ZhaoQi99/pyencrypt-pye)](https://github.com/ZhaoQi99/pyencrypt-pye/blob/main/LICENSE)\u00a0\n![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/ZhaoQi99/pyencrypt-pye)\u00a0\n\n\nencrypt python source code and import module dynamically.\n\n```\n                                                      _\n         _ __  _   _  ___ _ __   ___ _ __ _   _ _ __ | |_\n        | '_ \\| | | |/ _ \\ '_ \\ / __| '__| | | | '_ \\| __|\n        | |_) | |_| |  __/ | | | (__| |  | |_| | |_) | |_\n        | .__/ \\__, |\\___|_| |_|\\___|_|   \\__, | .__/ \\__|\n        |_|    |___/                      |___/|_|\n\n        encrypt python source code and import dynamically.\n\n                    VERSION 0.3.0\n```\n## How to do\nhttps://github.com/ZhaoQi99/pyencrypt-pye/wiki#how-to-do\n\n## Install\n\n```bash\npip install pyencrypt-pye\n\u2728\ud83c\udf70\u2728\n```\nOr you can use `pip install git+https://github.com/ZhaoQi99/pyencrypt-pye.git` install latest version.\n## Usage\n\n```shell\nUsage: pyencrypt [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --version   Show the version and exit.\n  -h, --help  Show this message and exit.\n\nCommands:\n  decrypt   Decrypt encrypted pye file\n  encrypt   Encrypt your python code\n  generate  Generate loader file using specified key\n  license   Generate license file using specified key\n```\n\n### Encrypt\n\n```shell\n~$ pyencrypt encrypt -h\nUsage: pyencrypt encrypt [OPTIONS] PATHNAME\n\n  Encrypt your python code\n\nOptions:\n  -i, --in-place                  make changes to files in place\n  -k, --key \ud83d\udd11                     Your encryption key.If you don\u2018t specify\n                                  key, pyencrypt will generate encryption key\n                                  randomly.\n  --with-license                  Add license to encrypted file\n  -m, --bind-mac 01:23:45:67:89:AB\n                                  Bind mac address to encrypted file\n  -4, --bind-ipv4 192.168.0.1     Bind ipv4 address to encrypted file\n  -b, --before [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]\n                                  License is invalid before this date.\n  -a, --after [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]\n                                  License is invalid after this date.\n  -y, --yes                       Automatically answer yes for confirm\n                                  questions.\n  -h, --help                      Show this message and exit.\n```\n\n### Entry File\n\nIn your entry file, you must import `loader` firstly, and then you can import encrypted modules as usual.\n\n```python\nimport loader\nfrom test import *\n```\n\n### Decrypt\n\n```shell\n~$ pyencrypt decrypt -h\nUsage: pyencrypt decrypt [OPTIONS] PATHNAME\n\n  Decrypt encrypted pye file\n\nOptions:\n  -i, --in-place  make changes to files in place\n  -k, --key \ud83d\udd11     Your encryption key.  [required]\n  -h, --help      Show this message and exit.\n```\n\n### Generate\n\n```shell\n~$ pyencrypt generate -h\nUsage: pyencrypt generate [OPTIONS]\n\n  Generate loader file using specified key\n\nOptions:\n  -k, --key \ud83d\udd11  Your encryption key.  [required]\n  -h, --help   Show this message and exit.\n```\n\n### License\n\npyencrypt's loader will search for the license file in the following manner:\n\n1. `~/.licenses/license.lic`\u00a0file in your home directory.\n\n2. `licenses/license.lic` file in `loader` file's directory.\n\n3. `licenses/license.lic`\u00a0file in the current working directory.\n\n```shell\n~$ pyencrypt license -h\n   Usage: pyencrypt license [OPTIONS]\n\n   Generate license file  using specified key\n\nOptions:\n  -h, --help                      Show this message and exit.\n  -k, --key \ud83d\udd11     Your encryption key.  [required]\n  -m, --bind-mac 01:23:45:67:89:AB\n                                  Bind mac address to encrypted file\n  -4, --bind-ipv4 192.168.0.1     Bind ipv4 address to encrypted file\n  -b, --before [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]\n                                  License is invalid before this date.\n  -a, --after [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]\n                                  License is invalid after this date.\n```\n\n### Shell Completion\n\n<details open>\n<summary>Bash</summary>\nAdd this to ~/.bashrc:\n\n```shell\neval \"$(_PYENCRYPT_COMPLETE=bash_source pyencrypt)\"\n```\n</details>\n\n<details>\n<summary>Zsh</summary>\nAdd this to ~/.zshrc:\n\n```shell\neval \"$(_PYENCRYPT_COMPLETE=zsh_source pyencrypt)\"\n```\n</details>\n\n<details>\n<summary>Fish</summary>\nAdd this to ~/.config/fish/completions/foo-bar.fish:\n\n```shell\neval (env _PYENCRYPT_COMPLETE=fish_source pyencrypt)\n```\n</details>\n\n## Example\n\n### Encrypt\n\n```shell\n~$ pyencrypt encrypt --in-place  -y test.py\n~$ pyencrypt encrypt test/\n~$ pyencrypt encrypt test.py -y --with-license\\\n    --before=\"2000-01-01T00:00:00 +0800\" --after=\"2030-01-01T00:00:00 +0800\"\\\n    --bind-mac=\"AC:DE:48:00:11:22\" --bind-ipv4=\"192.168.0.1\"\n```\n\n### Decrypt\n\n```shell\n~$ pyencrypt decrypt -k xxx test.pye\n```\n\n### Generate\n\n```shell\n~$ pyencrypt generate -k xxx\n```\n\n### License\n\n```shell\n~$ pyencrypt license -k xxx\\\n    --before=\"2000-01-01T00:00:00 +0800\" --after=\"2030-01-01T00:00:00 +0800\"\\\n    --bind-mac=\"AC:DE:48:00:11:22\" --bind-ipv4=\"192.168.0.1\"\n```\n\n## Development\n\n### Format Code\n\n```shell\nblack pyencrypt \nisort pyencrypt\n```\n\n## License\n\n[GNU General Public License v3.0](https://github.com/ZhaoQi99/pyencrypt-pye/blob/main/LICENSE)\n\n## Author\n\n* Qi Zhao([zhaoqi99@outlook.com](mailto:zhaoqi99@outlook.com))\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Encrypt python source code and import module dynamically.",
    "version": "0.3.0",
    "project_urls": {
        "Changelog": "https://github.com/ZhaoQi99/pyencrypt-pye/releases",
        "Homepage": "https://github.com/ZhaoQi99/pyencrypt-pye",
        "Issue Tracker": "https://github.com/ZhaoQi99/pyencrypt-pye/issues",
        "Source": "https://github.com/ZhaoQi99/pyencrypt-pye"
    },
    "split_keywords": [
        "python-encrypt",
        " import-hook"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "68b4c770ad5c20b9f71617f5a4762e0cf0f812caeb6bd235f1024fa4cca04cf7",
                "md5": "f4451bb0e30eb56847f8d73e47b9a4bc",
                "sha256": "eca3da836d3821e5d88dd0376bffa097fd903310abc0c64fb317c9f4854d9d2e"
            },
            "downloads": -1,
            "filename": "pyencrypt_pye-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f4451bb0e30eb56847f8d73e47b9a4bc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.6",
            "size": 41702,
            "upload_time": "2024-08-28T05:25:44",
            "upload_time_iso_8601": "2024-08-28T05:25:44.127941Z",
            "url": "https://files.pythonhosted.org/packages/68/b4/c770ad5c20b9f71617f5a4762e0cf0f812caeb6bd235f1024fa4cca04cf7/pyencrypt_pye-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc63192e8fd5be66dcefe75270417516f96c64c9a3896d8b2208c74200dd0eaf",
                "md5": "30013a55a7377369b325e5f70c6784aa",
                "sha256": "4aef1ea12f414e86b53ecf99f84b1cf50bc5f293fb767dda8380fc5ba2aaa4ee"
            },
            "downloads": -1,
            "filename": "pyencrypt_pye-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "30013a55a7377369b325e5f70c6784aa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.6",
            "size": 45703,
            "upload_time": "2024-08-28T05:25:45",
            "upload_time_iso_8601": "2024-08-28T05:25:45.758334Z",
            "url": "https://files.pythonhosted.org/packages/cc/63/192e8fd5be66dcefe75270417516f96c64c9a3896d8b2208c74200dd0eaf/pyencrypt_pye-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-28 05:25:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ZhaoQi99",
    "github_project": "pyencrypt-pye",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyencrypt-pye"
}
        
Elapsed time: 0.31973s