sincpro-py-compiler


Namesincpro-py-compiler JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/Sincpro-SRL/sincpro_py_compiler
SummaryHerramienta simple para compilar proyectos Python (.py → .pyc) y distribuir código compilado con protección por contraseña
upload_time2025-07-29 00:30:25
maintainerNone
docs_urlNone
authorSincpro SRL
requires_python<4.0,>=3.10
licenseMIT
keywords python compiler pyc build packaging distribution security encryption password-protection
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SincPro Python Compiler

Una herramienta simple y efectiva para compilar proyectos Python (.py → .pyc) y distribuir código compilado de forma segura.

## 🎯 Propósito

- **Compilar archivos .py a .pyc** para distribución segura del código
- **Copiar archivos no-Python tal como están** (XML, JS, TXT, etc.)
- **Excluir archivos específicos** según el tipo de proyecto
- **Ocultar código fuente** para distribución a clientes

## ⚡ Instalación

```bash
pip install sincpro-py-compiler
```

O desde el código fuente:

```bash
git clone https://github.com/Sincpro-SRL/sincpro_py_compiler.git
cd sincpro_py_compiler
poetry install
```

## 🚀 Uso Rápido

### Comandos básicos

```bash
# Compilar proyecto básico
sincpro-compile ./mi_proyecto

# Especificar directorio de salida
sincpro-compile ./mi_proyecto -o ./compilado

# Usar template para Django
sincpro-compile ./mi_django_app -t django

# Usar template para Odoo
sincpro-compile ./mi_addon_odoo -t odoo

# Ver templates disponibles
sincpro-compile --list-templates
```

### 🔒 Protección del Código Compilado (Nuevo Feature)

**SincPro Python Compiler** ahora incluye funcionalidades de seguridad para proteger tu código compilado mediante compresión con contraseña o encriptación simple. Esto es especialmente útil para la distribución comercial donde necesitas una licencia/contraseña para acceder al código.

#### Compresión con Contraseña

```bash
# Compilar y comprimir con contraseña
sincpro-compile ./mi_proyecto --compress --password "mi_licencia_comercial"

# Resultado: mi_proyecto_compilado.zip (protegido)
```

#### Encriptación Simple

```bash
# Compilar y encriptar con contraseña
sincpro-compile ./mi_proyecto --encrypt --password "clave_secreta"

# Resultado: mi_proyecto_compilado.enc (encriptado)
```

#### Desproteger Código

Para usar código protegido, utiliza el comando de desprotección:

```bash
# Descomprimir código protegido
sincpro-decrypt ./codigo_protegido.zip --password "mi_licencia_comercial" -o ./codigo_desprotegido

# Desencriptar código protegido  
sincpro-decrypt ./codigo_protegido.enc --password "clave_secreta" -o ./codigo_desprotegido
```

#### Ventajas de la Protección

- **Distribución Segura**: El código compilado no puede ser accedido sin la contraseña/licencia
- **Control de Licencias**: Cada cliente necesita su propia contraseña para ejecutar el código
- **Protección Comercial**: Impide el acceso casual al código .pyc
- **Flexibilidad**: Elige entre compresión (más compatible) o encriptación (más segura)

### Uso con diferentes tipos de proyecto

#### Proyecto Python básico

```bash
sincpro-compile ./mi_app -t basic
```

#### Proyecto Django

```bash
sincpro-compile ./mi_django_project -t django -o ./dist
```

#### Addon Odoo

```bash
sincpro-compile ./mi_addon -t odoo -o ./compilado
```

## 📋 Templates Disponibles

### `basic` - Proyecto Python básico

Excluye:

- `__pycache__/`, `*.pyc`
- `.git/`, `.venv/`, `venv/`, `env/`
- Archivos de log y temporales
- Archivos de configuración de IDEs

### `django` - Proyecto Django

Incluye exclusiones básicas más:

- `migrations/`
- `static/`, `media/`
- `db.sqlite3`

### `odoo` - Addon Odoo

Incluye exclusiones básicas más:

- `__manifest__.py`, `__openerp__.py`
- `static/`, `data/`, `demo/`
- `security/`

## 🔧 Opciones Avanzadas

### Archivo de exclusiones personalizado

Crea un archivo con patrones de exclusión (uno por línea):

```text
# Mi archivo de exclusiones personalizadas
*.log
temp/
config/secret.py
docs/
```

Úsalo con:

```bash
sincpro-compile ./proyecto -e mi_exclusiones.txt
```

### Opciones del CLI

```bash
sincpro-compile [directorio] [opciones]

Opciones:
  -o, --output DIR          Directorio de salida (default: ./compiled)
  -t, --template TEMPLATE   Template: basic, django, odoo (default: basic)
  -e, --exclude-file FILE   Archivo personalizado de exclusiones
  --list-templates         Mostrar templates disponibles
  -v, --verbose           Mostrar información detallada
  -h, --help              Mostrar ayuda
```

## 💡 Ejemplos Prácticos

### Distribuir una aplicación Python

```bash
# Compilar y generar distribución limpia
sincpro-compile ./mi_app -o ./dist -t basic
```

### Preparar addon Odoo para cliente

```bash
# Compilar addon excluyendo manifests y archivos de datos
sincpro-compile ./mi_addon -t odoo -o ./cliente_dist
```

### Proyecto Django para producción

```bash
# Compilar excluyendo migraciones y archivos estáticos
sincpro-compile ./mi_web -t django -o ./produccion
```

## 🛠 Uso Programático

```python
from sincpro_py_compiler.infrastructure.python_compiler import PythonCompiler

# Crear instancia del compilador
compiler = PythonCompiler()

# Compilar proyecto
success = compiler.compile_project(
    source_dir="./mi_proyecto",
    output_dir="./compilado",
    template="basic"
)

if success:
    print("¡Compilación exitosa!")
```

## 📁 Estructura de Salida

El compilador mantiene la estructura original del proyecto:

```
mi_proyecto/
├── app.py
├── utils.py
├── config.xml
└── static/
    └── style.css

# Después de compilar:
compilado/
├── app.pyc          # Compilado
├── utils.pyc        # Compilado  
├── config.xml       # Copiado tal como está
└── static/
    └── style.css    # Copiado tal como está
```

## ⚠️ Limitaciones

- Solo compila archivos `.py` a `.pyc`
- No es cifrado ni ofuscación avanzada
- Los archivos `.pyc` pueden ser descompilados
- Para protección avanzada considerar PyArmor

## 🤝 Contribuir

1. Fork el repositorio
2. Crea una rama para tu feature
3. Realiza tus cambios
4. Envía un Pull Request

## � Documentación

- **[Arquitectura del Sistema](docs/ARCHITECTURE.md)** - Detalles técnicos y diseño
- **[Guía de Deployment](docs/DEPLOYMENT.md)** - Instrucciones de lanzamiento e instalación
- **[Tests](tests/)** - Suite de tests completa con casos de uso reales

## �📄 Licencia

MIT License - ver archivo LICENSE para detalles.

## 🏢 Empresa

Desarrollado por **Sincpro SRL** para distribución segura de código Python.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Sincpro-SRL/sincpro_py_compiler",
    "name": "sincpro-py-compiler",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "python, compiler, pyc, build, packaging, distribution, security, encryption, password-protection",
    "author": "Sincpro SRL",
    "author_email": "dev@sincpro.com",
    "download_url": "https://files.pythonhosted.org/packages/ec/5b/bdca89688e24217ca3f668586a7ba05291c7d2b333e3e71878b459e63c20/sincpro_py_compiler-0.1.0.tar.gz",
    "platform": null,
    "description": "# SincPro Python Compiler\n\nUna herramienta simple y efectiva para compilar proyectos Python (.py \u2192 .pyc) y distribuir c\u00f3digo compilado de forma segura.\n\n## \ud83c\udfaf Prop\u00f3sito\n\n- **Compilar archivos .py a .pyc** para distribuci\u00f3n segura del c\u00f3digo\n- **Copiar archivos no-Python tal como est\u00e1n** (XML, JS, TXT, etc.)\n- **Excluir archivos espec\u00edficos** seg\u00fan el tipo de proyecto\n- **Ocultar c\u00f3digo fuente** para distribuci\u00f3n a clientes\n\n## \u26a1 Instalaci\u00f3n\n\n```bash\npip install sincpro-py-compiler\n```\n\nO desde el c\u00f3digo fuente:\n\n```bash\ngit clone https://github.com/Sincpro-SRL/sincpro_py_compiler.git\ncd sincpro_py_compiler\npoetry install\n```\n\n## \ud83d\ude80 Uso R\u00e1pido\n\n### Comandos b\u00e1sicos\n\n```bash\n# Compilar proyecto b\u00e1sico\nsincpro-compile ./mi_proyecto\n\n# Especificar directorio de salida\nsincpro-compile ./mi_proyecto -o ./compilado\n\n# Usar template para Django\nsincpro-compile ./mi_django_app -t django\n\n# Usar template para Odoo\nsincpro-compile ./mi_addon_odoo -t odoo\n\n# Ver templates disponibles\nsincpro-compile --list-templates\n```\n\n### \ud83d\udd12 Protecci\u00f3n del C\u00f3digo Compilado (Nuevo Feature)\n\n**SincPro Python Compiler** ahora incluye funcionalidades de seguridad para proteger tu c\u00f3digo compilado mediante compresi\u00f3n con contrase\u00f1a o encriptaci\u00f3n simple. Esto es especialmente \u00fatil para la distribuci\u00f3n comercial donde necesitas una licencia/contrase\u00f1a para acceder al c\u00f3digo.\n\n#### Compresi\u00f3n con Contrase\u00f1a\n\n```bash\n# Compilar y comprimir con contrase\u00f1a\nsincpro-compile ./mi_proyecto --compress --password \"mi_licencia_comercial\"\n\n# Resultado: mi_proyecto_compilado.zip (protegido)\n```\n\n#### Encriptaci\u00f3n Simple\n\n```bash\n# Compilar y encriptar con contrase\u00f1a\nsincpro-compile ./mi_proyecto --encrypt --password \"clave_secreta\"\n\n# Resultado: mi_proyecto_compilado.enc (encriptado)\n```\n\n#### Desproteger C\u00f3digo\n\nPara usar c\u00f3digo protegido, utiliza el comando de desprotecci\u00f3n:\n\n```bash\n# Descomprimir c\u00f3digo protegido\nsincpro-decrypt ./codigo_protegido.zip --password \"mi_licencia_comercial\" -o ./codigo_desprotegido\n\n# Desencriptar c\u00f3digo protegido  \nsincpro-decrypt ./codigo_protegido.enc --password \"clave_secreta\" -o ./codigo_desprotegido\n```\n\n#### Ventajas de la Protecci\u00f3n\n\n- **Distribuci\u00f3n Segura**: El c\u00f3digo compilado no puede ser accedido sin la contrase\u00f1a/licencia\n- **Control de Licencias**: Cada cliente necesita su propia contrase\u00f1a para ejecutar el c\u00f3digo\n- **Protecci\u00f3n Comercial**: Impide el acceso casual al c\u00f3digo .pyc\n- **Flexibilidad**: Elige entre compresi\u00f3n (m\u00e1s compatible) o encriptaci\u00f3n (m\u00e1s segura)\n\n### Uso con diferentes tipos de proyecto\n\n#### Proyecto Python b\u00e1sico\n\n```bash\nsincpro-compile ./mi_app -t basic\n```\n\n#### Proyecto Django\n\n```bash\nsincpro-compile ./mi_django_project -t django -o ./dist\n```\n\n#### Addon Odoo\n\n```bash\nsincpro-compile ./mi_addon -t odoo -o ./compilado\n```\n\n## \ud83d\udccb Templates Disponibles\n\n### `basic` - Proyecto Python b\u00e1sico\n\nExcluye:\n\n- `__pycache__/`, `*.pyc`\n- `.git/`, `.venv/`, `venv/`, `env/`\n- Archivos de log y temporales\n- Archivos de configuraci\u00f3n de IDEs\n\n### `django` - Proyecto Django\n\nIncluye exclusiones b\u00e1sicas m\u00e1s:\n\n- `migrations/`\n- `static/`, `media/`\n- `db.sqlite3`\n\n### `odoo` - Addon Odoo\n\nIncluye exclusiones b\u00e1sicas m\u00e1s:\n\n- `__manifest__.py`, `__openerp__.py`\n- `static/`, `data/`, `demo/`\n- `security/`\n\n## \ud83d\udd27 Opciones Avanzadas\n\n### Archivo de exclusiones personalizado\n\nCrea un archivo con patrones de exclusi\u00f3n (uno por l\u00ednea):\n\n```text\n# Mi archivo de exclusiones personalizadas\n*.log\ntemp/\nconfig/secret.py\ndocs/\n```\n\n\u00dasalo con:\n\n```bash\nsincpro-compile ./proyecto -e mi_exclusiones.txt\n```\n\n### Opciones del CLI\n\n```bash\nsincpro-compile [directorio] [opciones]\n\nOpciones:\n  -o, --output DIR          Directorio de salida (default: ./compiled)\n  -t, --template TEMPLATE   Template: basic, django, odoo (default: basic)\n  -e, --exclude-file FILE   Archivo personalizado de exclusiones\n  --list-templates         Mostrar templates disponibles\n  -v, --verbose           Mostrar informaci\u00f3n detallada\n  -h, --help              Mostrar ayuda\n```\n\n## \ud83d\udca1 Ejemplos Pr\u00e1cticos\n\n### Distribuir una aplicaci\u00f3n Python\n\n```bash\n# Compilar y generar distribuci\u00f3n limpia\nsincpro-compile ./mi_app -o ./dist -t basic\n```\n\n### Preparar addon Odoo para cliente\n\n```bash\n# Compilar addon excluyendo manifests y archivos de datos\nsincpro-compile ./mi_addon -t odoo -o ./cliente_dist\n```\n\n### Proyecto Django para producci\u00f3n\n\n```bash\n# Compilar excluyendo migraciones y archivos est\u00e1ticos\nsincpro-compile ./mi_web -t django -o ./produccion\n```\n\n## \ud83d\udee0 Uso Program\u00e1tico\n\n```python\nfrom sincpro_py_compiler.infrastructure.python_compiler import PythonCompiler\n\n# Crear instancia del compilador\ncompiler = PythonCompiler()\n\n# Compilar proyecto\nsuccess = compiler.compile_project(\n    source_dir=\"./mi_proyecto\",\n    output_dir=\"./compilado\",\n    template=\"basic\"\n)\n\nif success:\n    print(\"\u00a1Compilaci\u00f3n exitosa!\")\n```\n\n## \ud83d\udcc1 Estructura de Salida\n\nEl compilador mantiene la estructura original del proyecto:\n\n```\nmi_proyecto/\n\u251c\u2500\u2500 app.py\n\u251c\u2500\u2500 utils.py\n\u251c\u2500\u2500 config.xml\n\u2514\u2500\u2500 static/\n    \u2514\u2500\u2500 style.css\n\n# Despu\u00e9s de compilar:\ncompilado/\n\u251c\u2500\u2500 app.pyc          # Compilado\n\u251c\u2500\u2500 utils.pyc        # Compilado  \n\u251c\u2500\u2500 config.xml       # Copiado tal como est\u00e1\n\u2514\u2500\u2500 static/\n    \u2514\u2500\u2500 style.css    # Copiado tal como est\u00e1\n```\n\n## \u26a0\ufe0f Limitaciones\n\n- Solo compila archivos `.py` a `.pyc`\n- No es cifrado ni ofuscaci\u00f3n avanzada\n- Los archivos `.pyc` pueden ser descompilados\n- Para protecci\u00f3n avanzada considerar PyArmor\n\n## \ud83e\udd1d Contribuir\n\n1. Fork el repositorio\n2. Crea una rama para tu feature\n3. Realiza tus cambios\n4. Env\u00eda un Pull Request\n\n## \ufffd Documentaci\u00f3n\n\n- **[Arquitectura del Sistema](docs/ARCHITECTURE.md)** - Detalles t\u00e9cnicos y dise\u00f1o\n- **[Gu\u00eda de Deployment](docs/DEPLOYMENT.md)** - Instrucciones de lanzamiento e instalaci\u00f3n\n- **[Tests](tests/)** - Suite de tests completa con casos de uso reales\n\n## \ufffd\ud83d\udcc4 Licencia\n\nMIT License - ver archivo LICENSE para detalles.\n\n## \ud83c\udfe2 Empresa\n\nDesarrollado por **Sincpro SRL** para distribuci\u00f3n segura de c\u00f3digo Python.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Herramienta simple para compilar proyectos Python (.py \u2192 .pyc) y distribuir c\u00f3digo compilado con protecci\u00f3n por contrase\u00f1a",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/Sincpro-SRL/sincpro_py_compiler/tree/main/docs",
        "Homepage": "https://github.com/Sincpro-SRL/sincpro_py_compiler",
        "Repository": "https://github.com/Sincpro-SRL/sincpro_py_compiler"
    },
    "split_keywords": [
        "python",
        " compiler",
        " pyc",
        " build",
        " packaging",
        " distribution",
        " security",
        " encryption",
        " password-protection"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "94cd8de81c55399edd97711664cf664166a1d93edcd174657de05ce2eddab4dd",
                "md5": "4cacb119d21f1ff7ec7eb2ac95d41e36",
                "sha256": "eabc01f1cf092910023115e646184147fa052d742b4de8880fadc7f413176090"
            },
            "downloads": -1,
            "filename": "sincpro_py_compiler-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4cacb119d21f1ff7ec7eb2ac95d41e36",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 23891,
            "upload_time": "2025-07-29T00:30:23",
            "upload_time_iso_8601": "2025-07-29T00:30:23.912945Z",
            "url": "https://files.pythonhosted.org/packages/94/cd/8de81c55399edd97711664cf664166a1d93edcd174657de05ce2eddab4dd/sincpro_py_compiler-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ec5bbdca89688e24217ca3f668586a7ba05291c7d2b333e3e71878b459e63c20",
                "md5": "89af1589351ba6296cc9d76e6bf3e26a",
                "sha256": "07e57be7868bcbd763e474dd8648e2c3132402bb8a10ccb96ec765baa5f084fb"
            },
            "downloads": -1,
            "filename": "sincpro_py_compiler-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "89af1589351ba6296cc9d76e6bf3e26a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 17142,
            "upload_time": "2025-07-29T00:30:25",
            "upload_time_iso_8601": "2025-07-29T00:30:25.203287Z",
            "url": "https://files.pythonhosted.org/packages/ec/5b/bdca89688e24217ca3f668586a7ba05291c7d2b333e3e71878b459e63c20/sincpro_py_compiler-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-29 00:30:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Sincpro-SRL",
    "github_project": "sincpro_py_compiler",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sincpro-py-compiler"
}
        
Elapsed time: 1.94553s