Files
fn_registry/python/functions/datascience/ops_to_sigma_json.md
T
egutierrez 5f4f1f7508 docs: params/output semántico en 506 funciones para composabilidad
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.
2026-04-05 18:45:16 +02:00

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.
graph
sigma
osint
visualization
operations
network
false
json
sqlite3
name desc
db_path path a operations.db (ej: 'apps/my_analysis/operations.db')
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_score en metadata: (degree_norm + risk_norm) / 2
  • Si no: degree_norm puro
  • 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).