A metrics collection library for Serapis projects with multi-Python support
Project description
📊 Serapis Metrics Library
Una biblioteca simple y eficiente para recopilar métricas de uso en proyectos Serapis, compatible con Python 2.7, Python 3.x y PyRevit.
🚀 Características
- Seguimiento de métricas de uso
- Identificación única de usuarios
- Manejo automático de errores
- Fácil integración con cualquier proyecto Python
- Compatibilidad con Python 2.7, Python 3.x y PyRevit
📋 Requisitos
- Python 2.7 o superior
- Conexión a internet para enviar métricas
- Para PyRevit: IronPython 2.7
💻 Instalación
Usando pip
pip install serapis-metrics
Desde el código fuente
git clone https://github.com/asmorodina/serapis-metrics.git
cd serapis-metrics
pip install -e .
🔧 Configuración
La biblioteca usa variables de entorno para su configuración:
# URL del backend (opcional, valor por defecto: http://localhost:3000)
export SERAPIS_BACKEND_URL="http://tu-backend.com"
📖 Uso
Ejemplo Básico (Python 3.x)
from serapis_metrics import initialize_metrics
# Tu ID de versión
version_id = "tu-version-id"
# Inicializar métricas
initialize_metrics(version_id)
print("Métricas inicializadas correctamente")
Ejemplo con PyRevit
# En tu script de PyRevit
from serapis_metrics import initialize_metrics, track_usage
# Tu ID de versión
version_id = "tu-version-id"
# Inicializar métricas
try:
initialize_metrics(version_id)
print("Métricas inicializadas correctamente")
except Exception as e:
print("Error al inicializar métricas: {}".format(e))
Seguimiento Personalizado de Uso
from serapis_metrics import track_usage, get_user_hash
# Obtener el hash del usuario
user_hash = get_user_hash()
# Registrar uso específico
track_usage(user_hash, "tu-version-id")
Manejo de Errores
from serapis_metrics import report_error
try:
# Tu código aquí
resultado = alguna_funcion()
except Exception as e:
# Reportar el error
report_error(e, context="nombre_de_la_funcion")
📚 Referencia de API
initialize_metrics(version_id: str)
Inicializa el sistema de métricas para una versión específica.
-
Parámetros:
version_id(str): Identificador único de versión
-
Excepciones:
- Lanza una excepción si hay problemas de conexión o inicialización
track_usage(user_hash: str, version_id: str)
Registra el uso de una versión específica por un usuario.
-
Parámetros:
user_hash(str): Hash único del usuarioversion_id(str): Identificador de versión
-
Excepciones:
- RuntimeError: Si hay problemas al enviar las métricas
get_user_hash() -> str
Obtiene o genera un hash único para el usuario actual.
-
Retorna:
- str: Hash único del usuario
-
Excepciones:
- Lanza una excepción si no se puede generar o recuperar el hash
report_error(exception_obj: Exception, context: str = None)
Envía información de error al backend.
- Parámetros:
exception_obj(Exception): El error que ha sido capturadocontext(str, opcional): Nombre de la función o parte del código donde ocurrió el error
🔍 Notas de Compatibilidad
Python 2.7
- Compatible con IronPython 2.7 (PyRevit)
- Usa
urllib2para peticiones HTTP - Soporta variables de entorno del sistema
Python 3.x
- Usa
urllib.requestpara peticiones HTTP - Soporta todas las características modernas de Python
- Manejo mejorado de strings Unicode
PyRevit
- Compatible con el entorno de IronPython 2.7
- Usa
System.Environmentpara variables de entorno - Optimizado para el entorno de Revit
🤝 Contribuir
Las contribuciones son bienvenidas. Por favor, lee CONTRIBUTING.md para detalles sobre nuestro código de conducta y el proceso para enviarnos pull requests.
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE.md para más detalles.
Project details
Release history Release notifications | RSS feed
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 serapis_metrics-1.0.0.tar.gz.
File metadata
- Download URL: serapis_metrics-1.0.0.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e571e90ef8aa20bd1576bcf80ad46415d52c37b7d60bc5fa955b462627d49ab4
|
|
| MD5 |
35de39eb930aab41ef13608fba55cc55
|
|
| BLAKE2b-256 |
fd350ab15450bffc8107d633b9bee52324b8d9015eeb9d7c35fa0ef744d023b7
|
File details
Details for the file serapis_metrics-1.0.0-py3-none-any.whl.
File metadata
- Download URL: serapis_metrics-1.0.0-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86b491a81009815551b972e8fdf56ae38694f7fab66c0e2024e847a420b91391
|
|
| MD5 |
86e84347de01001ff22f95505e6987da
|
|
| BLAKE2b-256 |
030f5cb92c2f058afabcd50963f02c1338372678432ddd3b1d0b1c1031c241f0
|