Tipos y Enums¶
Tipos auxiliares utilizados en qry-doc.
SectionType v0.1.3¶
Enum que define los tipos de secciones disponibles en un reporte.
Importación¶
Valores¶
| Valor | Descripción |
|---|---|
COVER |
Portada con imagen a página completa |
SUMMARY |
Resumen ejecutivo con título |
DATA |
DataFrame renderizado como tabla |
CHART |
Gráfico o visualización |
CUSTOM |
Contenido personalizado arbitrario |
Ejemplo¶
from qry_doc import SectionType, SectionConfig
sections = [
SectionConfig(SectionType.COVER),
SectionConfig(SectionType.SUMMARY),
SectionConfig(SectionType.DATA),
]
SectionConfig v0.1.3¶
Dataclass para configurar una sección del reporte.
Importación¶
Definición¶
@dataclass
class SectionConfig:
section_type: SectionType
enabled: bool = True
custom_content: str | None = None
Atributos¶
| Atributo | Tipo | Default | Descripción |
|---|---|---|---|
section_type |
SectionType |
- | Tipo de sección |
enabled |
bool |
True |
Si la sección está activa |
custom_content |
str \| None |
None |
Contenido para CUSTOM |
Ejemplos¶
# Sección básica
section = SectionConfig(SectionType.SUMMARY)
# Sección deshabilitada
section = SectionConfig(SectionType.DATA, enabled=False)
# Sección personalizada
section = SectionConfig(
SectionType.CUSTOM,
custom_content="Mi contenido personalizado..."
)
LogoPosition v0.1.3¶
Enum para posiciones del logo en el pie de página.
Importación¶
Valores¶
| Valor | Descripción |
|---|---|
BOTTOM_RIGHT |
Esquina inferior derecha (default) |
BOTTOM_LEFT |
Esquina inferior izquierda |
BOTTOM_CENTER |
Centro inferior |
Ejemplo¶
from qry_doc import ReportTemplate, LogoPosition
template = ReportTemplate(
footer_logo_position=LogoPosition.BOTTOM_LEFT,
)
AssetManager v0.1.3¶
Clase para gestión de assets del paquete.
Importación¶
Métodos estáticos¶
get_default_logo_path()¶
Retorna la ruta al logo por defecto del paquete.
validate_image_path()¶
Valida que una ruta de imagen sea válida.
is_valid, error = AssetManager.validate_image_path(Path("imagen.png"))
if not is_valid:
print(f"Error: {error}")
validate_font_path()¶
Valida que una ruta de fuente sea válida.
is_valid, error = AssetManager.validate_font_path(Path("fuente.ttf"))
if not is_valid:
print(f"Error: {error}")
Excepciones¶
QryDocError¶
Excepción base para todos los errores de qry-doc.
QueryError¶
Error al interpretar o ejecutar una consulta.
ExportError¶
Error al exportar datos.
ReportError¶
Error al generar un reporte PDF.
DataSourceError¶
Error al cargar la fuente de datos.
ValidationError¶
Error de validación de entradas o recursos.
Atributos comunes¶
Todas las excepciones incluyen:
| Atributo | Tipo | Descripción |
|---|---|---|
user_message |
str |
Mensaje amigable para el usuario |
internal_error |
Exception \| None |
Excepción original |
try:
qry.ask("consulta")
except QueryError as e:
print(f"Usuario: {e.user_message}")
if e.internal_error:
print(f"Debug: {e.internal_error}")
PageSize¶
Alias de tipo para tamaños de página.
Tamaños predefinidos¶
from reportlab.lib.pagesizes import letter, A4, legal
# Letter (8.5" x 11")
template = ReportTemplate(page_size=letter)
# A4 (210mm x 297mm)
template = ReportTemplate(page_size=A4)