Skip to main content

Framework de generación de reportes LaTeX científicos vía Cloud

Project description

CloudMatchPDF: Scientific Reporting Framework

CloudMatchPDF es un motor de automatización en Python diseñado para la generación de documentos $\LaTeX$ técnicos y académicos de alta precisión. El sistema integra el poder de SymPy para cálculo simbólico y Matplotlib para visualización vectorial, todo procesado mediante una infraestructura de compilación distribuida en la nube.


Características Principales

  • LatexBuilder (The Architect): Arquitecto de documentos con API fluida. Permite inyectar ecuaciones de SymPy, bloques de código y gráficas vectoriales sin tocar una sola línea de código $\LaTeX$.
  • Integración Gráfica (Cloud-Safe): Renderizado de funciones matemáticas y figuras de Matplotlib mediante primitivas vectoriales de $\LaTeX$, garantizando compatibilidad total con compiladores en la nube.
  • LatexValidator (The Shield): Sistema de autocuración sintáctica que sanitiza caracteres reservados y asegura la integridad de los entornos matemáticos antes de la compilación.
  • CloudCompiler (The Bridge): Motor de compilación asíncrona que utiliza mirrors distribuidos, eliminando la necesidad de instalaciones locales de TeX Live (+20GB).

Estructura del Proyecto

CloudMatchPDF/
├── src/                        # El contenedor de código fuente (obligatorio para el setup.py actual)   └── cloudmatchpdf/          # El paquete real (lo que se importa)       ├── __init__.py         # ¡FUNDAMENTAL! Expone las clases para importaciones limpias       ├── latex_builder.py    # Arquitecto de documentos       ├── latex_validator.py  # Sanitización y validación       └── cloud_compiler.py   # Gestión de mirrors y peticiones API
├── tests/                      # Suite de Pruebas Unitarias
├── outputs/                    # Directorio de salida (ignorado en el empaquetado)
├── setup.py                    # El mapa que apunta a src/
├── pyproject.toml              # Estándar de construcción moderno
└── README.md                   # Documentación técnica

Referencia Detallada de la API

Clase LatexBuilder

Es el núcleo de la construcción lógica del documento. Soporta encadenamiento de métodos (Fluent API).

Configuración Estructural

  • set_title(title) / set_author(author): Define los metadatos del documento.
  • add_package(name, options): Registra nuevos paquetes en el preámbulo (ej. geometry, physics).
  • add_section(name, numbered=True): Crea secciones o secciones de tipo asterisco.

Inyección de Contenido

  • add_text(text): Añade párrafos con sanitización automática de caracteres reservados.
  • add_equation(obj, subtitle): Convierte automáticamente objetos SymPy o strings en ecuaciones centradas.
  • add_math_block(latex_str, numbered): Inyecta bloques matemáticos puros con control de numeración.
  • add_plot(obj, caption, x_range):
    • Funcionalidad: Renderiza funciones matemáticas (como strings) o figuras de Matplotlib directamente en el PDF.
    • Mecánica: Traduce los datos a lenguaje picture de $\LaTeX$ para un acabado vectorial perfecto.

Utilidades y Generación

  • import_file(path): Importa contenido de archivos externos (.txt, .tex) directamente al cuerpo del reporte.
  • build(): Ejecuta el pipeline de construcción y activa el LatexValidator para devolver un código fuente seguro.
  • save_tex(filename): Exporta el código generado a un archivo local para depuración.

Ejemplo Avanzado: Reporte Científico

from cloudmatchpdf.latex_builder import LatexBuilder
from cloudmatchpdf.cloud_compiler import CloudCompiler
import sympy as sp

# Inicializar constructor con metadatos
doc = LatexBuilder(title="Análisis de Osciladores", author="Jose Jimenez")

# Construcción fluida
(doc.add_section("Cinemática del Sistema")
    .add_text("Se analiza la ecuación de movimiento para un sistema masa-resorte:")
    .add_equation(sp.Function('x')(sp.Symbol('t')), subtitle="Posición temporal")
    .add_plot(obj="sin(x) * exp(-0.1*x)", caption="Decaimiento de Amplitud", x_range="0:10")
)

# Compilación en la nube
compiler = CloudCompiler()
compiler.compile(doc.build(), output="Reporte_Cientifico.pdf")

Calidad y Rigor (QA)

El sistema mantiene integridad mediante pruebas automatizadas con Pytest:

pytest tests/
Componente Validación
Builder Renderizado SymPy, Fluent API y manejo de metadatos.
Validator Escape de guiones bajos (_), porcentajes (%) y cierre de entornos.
Plotter Normalización de datos y generación de entorno picture.
Compiler Disponibilidad de mirrors y manejo de errores HTTP.

Reconocimientos

Este proyecto fue desarrollado como parte de un proceso de aprendizaje continuo y búsqueda de la excelencia técnica. Un agradecimiento especial a:

  • Harvard CS50P: Por sentar las bases de la programación robusta en Python.
  • David J. Malan: Por la inspiración y la metodología de enseñanza que impulsaron la creación de este framework.

Licencia y Créditos

Desarrollado por Jose V. Jimenez. Proyecto enfocado en la excelencia académica y la automatización científica para investigadores y estudiantes de ingeniería.

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

cloudmatchpdf-1.0.2.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

cloudmatchpdf-1.0.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file cloudmatchpdf-1.0.2.tar.gz.

File metadata

  • Download URL: cloudmatchpdf-1.0.2.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cloudmatchpdf-1.0.2.tar.gz
Algorithm Hash digest
SHA256 04b32cfa84ffff5fe053e1bdbcb8b6ed31b7d9086df02b270c008ce7469df1a7
MD5 a398fc68de98de974063dc52949330fc
BLAKE2b-256 af02d4d5f8202aec5628203f123ca5893a72d1d94d45d3aefc2cdf14a57def72

See more details on using hashes here.

File details

Details for the file cloudmatchpdf-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: cloudmatchpdf-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cloudmatchpdf-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 82108b4a629a268da76d4cf75621b1f9bf3c17375de38d65260632f63f6c0ef0
MD5 49342a5bc5c94224876553be91a590e5
BLAKE2b-256 d5a7fa9e7a98c8b214e41929124d680c925b2a1134f7a01e202716396adfcb89

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