# 🗂️ py2cy
*py2cy is a library designed to convert Python source code into Cython format, enabling the transformation of .py files into .so files on Linux and .pyd files on Windows. Additionally, it aids in obfuscating the code, making reverse engineering more challenging.*
## 🏃 Quickstart
Installing the package
```python
pip install py2cy
```
Arrange the configuration file setup.cfg for your projects
```config
######CYTHON CONFIGURATIONS######
#threads for cythonize in linux
[NThreads]
nThreads=4
#path of the folder to be obfuscated
[SourcePath]
pkg_for_obfuscation=<<path of the project to be obfuscated>>
#files to be excluded from cythonization, comma separated values, must have file extension
[FilesToExclude]
files_to_exclude=abc.py,bde.py
#comma separated values
[PkgsToExclude]
pkgs_to_exclude=package1,package2
#If this is set, both exclude conditions metioned above will be ignored,#comma separated values
[FilesToInclude]
files_to_include=test1.py,test2.py
#If this is set, both exclude conditions above will be ignored,#comma separated values
[PkgsToInclude]
pkgs_to_include=
###############################
```
## ▶️ Execute
After the above configuration invoke py2cy in the command line interface as below
```python
py2cy <<path of the setup.cfg>>
or
py2cy #invoke from the current working directory where setup.cfg is present
```
Once the execution gets completed, a package with same name suffixed with _cython gets generated next to the actual source code.
Based on the configuration set in setup.cfg, respective files are cythonized.
Raw data
{
"_id": null,
"home_page": null,
"name": "py2cy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "cython, encryption, conversion, security, obfuscation, code protection, anti-reverse engineering, code integrity, cythonize, privacy, intellectual property, secure code, software protection, anti-tampering, transpiler, application security, deployment",
"author": null,
"author_email": "Vaira Muthu Thangavel <vairamuthu.thangavel@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/8e/47/975953e2272b84157ab21e3b1288836ebabac8a956827e90a796d014fba5/py2cy-0.0.1.tar.gz",
"platform": null,
"description": "# \ud83d\uddc2\ufe0f py2cy \r\n\r\n*py2cy is a library designed to convert Python source code into Cython format, enabling the transformation of .py files into .so files on Linux and .pyd files on Windows. Additionally, it aids in obfuscating the code, making reverse engineering more challenging.*\r\n\r\n## \ud83c\udfc3 Quickstart\r\n\r\nInstalling the package\r\n\r\n```python\r\npip install py2cy\r\n```\t\r\n\r\nArrange the configuration file setup.cfg for your projects\r\n\r\n```config\r\n######CYTHON CONFIGURATIONS######\r\n#threads for cythonize in linux\r\n[NThreads]\r\nnThreads=4\r\n\r\n#path of the folder to be obfuscated\r\n[SourcePath]\r\npkg_for_obfuscation=<<path of the project to be obfuscated>>\r\n\r\n#files to be excluded from cythonization, comma separated values, must have file extension\r\n[FilesToExclude]\r\nfiles_to_exclude=abc.py,bde.py\r\n\r\n#comma separated values\r\n[PkgsToExclude]\r\npkgs_to_exclude=package1,package2\r\n\r\n#If this is set, both exclude conditions metioned above will be ignored,#comma separated values\r\n[FilesToInclude]\r\nfiles_to_include=test1.py,test2.py\r\n\r\n#If this is set, both exclude conditions above will be ignored,#comma separated values\r\n[PkgsToInclude]\r\npkgs_to_include=\r\n###############################\r\n```\r\n\r\n## \u25b6\ufe0f Execute\r\n\r\nAfter the above configuration invoke py2cy in the command line interface as below\r\n\r\n```python\r\n\r\npy2cy <<path of the setup.cfg>>\r\n\r\nor\r\n\r\npy2cy #invoke from the current working directory where setup.cfg is present\r\n```\r\n\r\nOnce the execution gets completed, a package with same name suffixed with _cython gets generated next to the actual source code.\r\n\r\nBased on the configuration set in setup.cfg, respective files are cythonized.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A package to convert Python code to Cython for Security and Obfuscation",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/armeggaddon/py2cy",
"Repository": "https://github.com/armeggaddon/py2cy.git"
},
"split_keywords": [
"cython",
" encryption",
" conversion",
" security",
" obfuscation",
" code protection",
" anti-reverse engineering",
" code integrity",
" cythonize",
" privacy",
" intellectual property",
" secure code",
" software protection",
" anti-tampering",
" transpiler",
" application security",
" deployment"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "24f5d2c34c663070373fa73c1d759f0b7d9da273cae8f1a3fe83fc46bf6ec782",
"md5": "7a127248c3fc69b61adfda16a8539829",
"sha256": "88dc5b8020b18d88e4afb17c144271484953da90911b9422ba551f481bee1ef3"
},
"downloads": -1,
"filename": "py2cy-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7a127248c3fc69b61adfda16a8539829",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 6165,
"upload_time": "2025-03-09T16:42:09",
"upload_time_iso_8601": "2025-03-09T16:42:09.259949Z",
"url": "https://files.pythonhosted.org/packages/24/f5/d2c34c663070373fa73c1d759f0b7d9da273cae8f1a3fe83fc46bf6ec782/py2cy-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8e47975953e2272b84157ab21e3b1288836ebabac8a956827e90a796d014fba5",
"md5": "64ad48c1cd5f1e3b3c9259b7d6e05ed7",
"sha256": "a1c221d77302b6a1108505d9fd95e76a0160812888d57bc25ca4f74934743fce"
},
"downloads": -1,
"filename": "py2cy-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "64ad48c1cd5f1e3b3c9259b7d6e05ed7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 5451,
"upload_time": "2025-03-09T16:42:10",
"upload_time_iso_8601": "2025-03-09T16:42:10.794634Z",
"url": "https://files.pythonhosted.org/packages/8e/47/975953e2272b84157ab21e3b1288836ebabac8a956827e90a796d014fba5/py2cy-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-09 16:42:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "armeggaddon",
"github_project": "py2cy",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "py2cy"
}