Files
fn_registry/python/functions/obsidian/unregister_obsidian_vault.md
T
2026-06-15 01:33:35 +02:00

3.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
unregister_obsidian_vault function py obsidian 1.0.0 impure def unregister_obsidian_vault(vault_ref: str, config_path: str = '') -> dict Desregistra un vault de la app de escritorio Obsidian quitando su entrada de la clave 'vaults' de ~/.config/obsidian/obsidian.json. Opera sobre la config de la app: NO borra la carpeta del vault en disco, solo hace que Obsidian deje de conocerlo. Acepta vault_ref como id exacto (hex 16) o como ruta (se normaliza a absoluta y se compara con path). Hace backup .bak antes de escribir y preserva el resto del JSON.
obsidian
vault
unregister
config
desktop-app
obsidian-json
false error_go_core
json
os
shutil
name desc
vault_ref id exacto de la entrada (hex 16 chars) O ruta al vault (se normaliza a absoluta y se compara con 'path'); primero intenta match por id, luego por path
name desc
config_path ruta al obsidian.json de la app; vacio usa ~/.config/obsidian/obsidian.json
dict con removed (bool), id (de la entrada quitada o ''), path (de la entrada quitada o ''), config_path y backup_path (ruta del .bak o '') true
desregistra por path
desregistra por id
preserva resto del json al quitar entrada
ref inexistente devuelve removed false
python/functions/obsidian/unregister_obsidian_vault_test.py python/functions/obsidian/unregister_obsidian_vault.py

Ejemplo

import sys, os
sys.path.insert(0, os.path.join("python", "functions"))
from obsidian import unregister_obsidian_vault

# Por ruta (se normaliza a absoluta)
res = unregister_obsidian_vault("/home/enmanuel/vaults/viejo", config_path="")
print(res["removed"], res["id"])   # True 3f9a1c0b7e2d4a86

# O por id exacto
unregister_obsidian_vault("a1b2c3d4e5f60718", config_path="")

Cuando usarla

Cuando quieras que la app de escritorio Obsidian deje de mostrar un vault en su selector sin tocar los archivos del vault en disco: limpiar entradas obsoletas, quitar un vault movido a otra ruta, o sanear obsidian.json. Para listar las entradas y obtener sus ids usa list_registered_obsidian_vaults.

Gotchas

  • NO borra la carpeta del vault: solo elimina la entrada de la config de la app. Los archivos .md y el .obsidian/ del vault siguen en disco.
  • Escribe la config de la app (I/O impuro) y crea backup .bak antes de sobreescribir, pero solo si encontro la entrada (removed=True). Si no la encuentra, no escribe ni hace backup.
  • Resolucion de vault_ref: primero intenta match exacto por id; si no, normaliza el ref a ruta absoluta y compara con path. Un id que coincide por azar con un path nunca pasara: el match por id va primero.
  • Single-instance: si Obsidian esta corriendo, sigue teniendo el vault en memoria hasta reiniciar; el desregistro solo afecta al archivo de config.
  • Preserva las demas claves de nivel superior del JSON y los demas vaults.