988e901066
Añade campos params y output al frontmatter YAML de las 506 funciones del registry. Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico) y cada función describe qué produce su output. Permite a agentes razonar sobre cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
1.7 KiB
1.7 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ops_to_sigma_json | function | py | datascience | 1.0.0 | pure | def ops_to_sigma_json(db_path: str) -> dict | Convierte operations.db al formato JSON de sigma.js/graphology. Lee entities y relations, asigna colores por tipo y calcula tamanio de nodo combinando degree y risk_score. |
|
false |
|
|
dict con estructura {nodes: [...], edges: [...]} compatible con sigma.js/graphology. Nodos tienen id, label, color, size, type. | false | python/functions/datascience/ops_to_sigma_json.py |
Ejemplo
from datascience.ops_to_sigma_json import ops_to_sigma_json
graph = ops_to_sigma_json("apps/my_analysis/operations.db")
print(len(graph["nodes"])) # numero de entidades
print(len(graph["edges"])) # numero de relaciones
Notas
Funcion pura en el sentido de que no escribe ningun archivo ni tiene efectos secundarios observables mas alla de abrir y cerrar la conexion SQLite en modo lectura.
COLOR_MAP cubre los tipos de entidad OSINT mas comunes. Tipos desconocidos reciben #95a5a6 (gris).
El tamanio del nodo (size) se calcula en el rango [5, 20]:
- Si la entidad tiene
risk_scoreen metadata:(degree_norm + risk_norm) / 2 - Si no:
degree_normpuro - degree_norm =
min(degree / 50, 1.0)
La metadata se aplana como atributos adicionales del nodo, sin sobrescribir campos reservados (label, type, color, size, domain, status).