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.0 KiB
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). |
|
|
false | error_go_core |
|
|
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 = "".