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.4.tar.gz (10.9 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.4-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cloudmatchpdf-1.0.4.tar.gz
  • Upload date:
  • Size: 10.9 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.4.tar.gz
Algorithm Hash digest
SHA256 bc193ea156c0253bfa962cea32bc7f580a35574627967f2621d3c3337103eacf
MD5 d57ba56f699b1af2f1dbd584a70ff8e4
BLAKE2b-256 213ca4bb3bc7b194488e199424d556441a2d49151ccd612092673d426308e174

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cloudmatchpdf-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 11.1 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e8fa1d4e66b706fd44afb092873fd3fccde4f94ac215d952caab0a47e3650aee
MD5 1fd9fabe4333b6e5aa117d7701ec7d80
BLAKE2b-256 67aa8e66b5d63f89814c46d96e158d96f37df8650d3e41fcf83b613d5976220e

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