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.
2.5 KiB
2.5 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 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| render_sigma_html | function | py | datascience | 1.0.0 | impure | def render_sigma_html(graph_data: dict, output_path: str, title: str = 'OSINT Graph') -> str | Genera un archivo HTML standalone con sigma.js v2.4 que visualiza un grafo OSINT. Aplica ForceAtlas2, dark theme, filtros por tipo de nodo y tooltip con metadata. Retorna el path absoluto del archivo escrito. |
|
|
false | error_go_core |
|
|
string con el path absoluto del archivo HTML escrito. Archivo es standalone y abre en cualquier navegador. | false | python/functions/datascience/render_sigma_html.py |
Ejemplo
from datascience.ops_to_sigma_json import ops_to_sigma_json
from datascience.render_sigma_html import render_sigma_html
graph = ops_to_sigma_json("apps/osint_analysis/operations.db")
path = render_sigma_html(graph, "/tmp/osint_graph.html", title="Red OSINT")
print(f"Abre en el browser: {path}")
Notas
Funcion impura — escribe un archivo en disco.
El HTML es completamente standalone: no necesita servidor web ni backend. Todos los assets se cargan desde jsDelivr CDN:
- graphology 0.25.4
- graphology-layout-forceatlas2 0.10.1
- sigma 2.4.0
El JSON del grafo se embebe directamente en el <script> para evitar peticiones CORS al abrir desde file://.
ForceAtlas2 se ejecuta sincrono con 500 iteraciones antes de instanciar el renderer. Para grafos grandes (>500 nodos) considerar reducir iteraciones o usar barnesHutOptimize: true (que se activa automaticamente para grafos >300 nodos).
Panel lateral (fijo, top-right):
- Titulo del grafo
- Contador de nodos y aristas
- Checkboxes de filtro por tipo (con color dot)
Tooltip (hover sobre nodo):
- Label y tipo del nodo
- status, domain
- Todos los campos adicionales de metadata aplanados
Los caracteres especiales en labels y metadata se escapan correctamente para evitar XSS al abrir el HTML.