Un ORM ligero llamado PanCakes
Project description
PanCakesORM
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.
🚀 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:
-
Clase Padre PanCakesORM: Permite la creación automática de tablas en bases de datos mediante herencia de clase
pancakes/cook/mold.py. -
Seguridad y Robustez: * Capa de Sanitización: Implementa métodos avanzados de limpieza y seguridad para prevenir ataques de Inyección SQL.
-
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.
-
Operaciones CRUD Optimizadas: Métodos de Escritura (
.write()), Actualización (.update()), Eliminación (.delete()) y Lectura (.pancakes()) testeados para alto rendimientopancakes/cook/mold.pyypancakes/cook/flavor. -
Conexión Multihilo: Configuración de base de datos preparada para gestionar múltiples lecturas concurrentes de forma estable.
-
Declaración de Tipos: Clases que operan en conjunto con el ORM para definir tipos de datos de forma estructurada
pancakes/datatype/sql_datatype. -
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. -
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12094a9335ee087de3c3cdb93a563ee6e9ede39877164708eac3fb5301ceebb0
|
|
| MD5 |
32059f004ed56ef4e9f2060e77f4d15e
|
|
| BLAKE2b-256 |
aef3bba78c72caed6f6008e479ce14be058f8108c12c2b8d597381bb555270d0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff886882ddf2809b10d2009d7d29bd0f22d83419b1d8c0b74303387e64152401
|
|
| MD5 |
bf54f7c28b91b17f6f7bd812923cc578
|
|
| BLAKE2b-256 |
4a16648ffcdd78bfaff831786860fc49df714520a48a7974bbf9bb5c5bcec2dd
|