Files
egutierrez 988e901066 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

2.0 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
sqlite_open function go infra 1.1.0 impure func SQLiteOpen(path string, basePath string) (*sql.DB, error) Abre (o crea) una base de datos SQLite con WAL mode y foreign keys habilitados. Hace ping para verificar la conexion. Si basePath es no-vacio y path es relativo, resuelve el path como filepath.Join(basePath, path).
database
sqlite
connection
sql
db_config_go_infra
false error_go_core
database/sql
path/filepath
github.com/mattn/go-sqlite3
name desc
path ruta del archivo SQLite (:memory: para base en memoria)
name desc
basePath ruta base para resolver paths relativos (vacio = relativo al cwd)
conexion sql.DB abierta a SQLite con WAL mode y foreign keys false
functions/infra/sqlite_open.go

Ejemplo

// Path absoluto o relativo al cwd
db, err := SQLiteOpen("/data/myapp.db", "")
if err != nil {
    log.Fatal(err)
}
defer DBClose(db)

// Path relativo al directorio del archivo YAML de configuracion
configDir := filepath.Dir(configPath)
db, err := SQLiteOpen(cfg.DatabasePath, configDir)
if err != nil {
    log.Fatal(err)
}

rows, err := DBQuery(db, "SELECT * FROM users WHERE active = ?", 1)

Notas

Usa el driver github.com/mattn/go-sqlite3 (CGO). El DSN incluye _journal_mode=WAL para mejor concurrencia y _foreign_keys=on. Acepta :memory: para base de datos en memoria (basePath se ignora en este caso). Hace ping al abrir para detectar errores temprano.

El parametro basePath resuelve el problema de paths relativos en configs YAML: cuando el binario corre desde un directorio distinto al del archivo de config, el path relativo se interpreta incorrectamente. Pasar filepath.Dir(configPath) como basePath corrige esto.

Para mantener el comportamiento anterior (resolver vs cwd), pasar basePath = "".