Skip to main content

Un ORM ligero llamado PanCakes

Project description

PanCakesORM

static static static static static static

image

PanCakesORM: Gestión Evolutiva para SQLite3

Con PanCakesORM, el desarrollador se enfoca en la lógica de negocio y el frontend, mientras el motor se encarga del esquema:

Sincronización Automática: Gracias a __init_subclass__, 
las tablas y esquemas se crean o migran en tiempo real al heredar de la clase padre.

Seguridad Integrada: Implementa una sanitización estricta de nombres 
de tablas y columnas, además de usar ? (query parameters) para prevenir ataques de inyección SQL.

Migraciones Inteligentes: El método _table_on_change gestiona cambios en el número de columnas 
(añadir/eliminar) moviendo los datos automáticamente a tablas temporales para preservar la integridad.

Consultas Avanzadas: La función pancakes permite realizar JOINs (INNER, LEFT), 
agrupaciones y filtrado complejo mediante una interfaz de diccionarios intuitiva.

Cero Configuración: Maneja rutas por defecto, creación de directorios 
y archivos .sqlite de forma transparente para el desarrollador.

Preparado para Producción: Incluye logging profesional y está optimizado 
para evitar validaciones redundantes tras la primera compilación.

Link a PyPI

Documentacion Oficial

🚀 Instalación

Instálalo directamente desde PyPI:

pip install pancakes-orm

🛠️ Uso Básico

Definir un Modelo

Crea tus tablas definiendo clases que hereden de PanCakesORM.

from pancakes.cook.mold import PanCakesORM
from pancakes.datatype import sql_datatype

class User(PanCakesORM):
    _table = 'users'
    
    name = sql_datatype.Char(comment='User Name')
    age = sql_datatype.Integer(comment='User Age')

Insertar Datos

User.write([
    (None, 'Andres Lopez', 30),
    (None, 'Gemini AI', 1)
])

Consultas con pancakes

from pancakes.cook.flavor import pancakes

results, columns = pancakes(
    db_path='my_app.db',
    select='*',
    from_='users',
    condition=[
        {'table': 'users', 'column': 'age', 'operator': '>', 'value': 18}
    ]
)

PanCakesORM a Fondo:

  1. Clase Padre PanCakesORM: Permite la creación automática de tablas en bases de datos mediante herencia de clase pancakes/cook/mold.py.

  2. Seguridad y Robustez: * Capa de Sanitización: Implementa métodos avanzados de limpieza y seguridad para prevenir ataques de Inyección SQL.

  3. Gestión de Transacciones: Configuración optimizada para múltiples lecturas, con soporte nativo para Rollbacks y Commits que aseguran la integridad de los datos.

  4. Operaciones CRUD Optimizadas: Métodos de Escritura (.write()), Actualización (.update()), Eliminación (.delete()) y Lectura (.pancakes()) testeados para alto rendimiento pancakes/cook/mold.py y pancakes/cook/flavor.

  5. Conexión Multihilo: Configuración de base de datos preparada para gestionar múltiples lecturas concurrentes de forma estable.

  6. Declaración de Tipos: Clases que operan en conjunto con el ORM para definir tipos de datos de forma estructurada pancakes/datatype/sql_datatype.

  7. SQLite3 ForeignKey(): Clase para relacionar tablas; el ORM gestiona automáticamente los constraints de llaves foráneas sin escribir una sola línea de SQL pancakes/datatype/sql_datatype.

  8. Método de Consulta Avanzada: Uso del método .query() para sentencias SQL puras. Se recomienda su uso exclusivo para lógica de desarrollo y no para interacción directa con el usuario pancakes/cook/mold.py.

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

pancakes_orm-0.1.3.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pancakes_orm-0.1.3-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file pancakes_orm-0.1.3.tar.gz.

File metadata

  • Download URL: pancakes_orm-0.1.3.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pancakes_orm-0.1.3.tar.gz
Algorithm Hash digest
SHA256 12094a9335ee087de3c3cdb93a563ee6e9ede39877164708eac3fb5301ceebb0
MD5 32059f004ed56ef4e9f2060e77f4d15e
BLAKE2b-256 aef3bba78c72caed6f6008e479ce14be058f8108c12c2b8d597381bb555270d0

See more details on using hashes here.

File details

Details for the file pancakes_orm-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pancakes_orm-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pancakes_orm-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ff886882ddf2809b10d2009d7d29bd0f22d83419b1d8c0b74303387e64152401
MD5 bf54f7c28b91b17f6f7bd812923cc578
BLAKE2b-256 4a16648ffcdd78bfaff831786860fc49df714520a48a7974bbf9bb5c5bcec2dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page