feat(infra): auto-commit con 88 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
---
|
||||
name: delete_obsidian_note
|
||||
kind: function
|
||||
lang: py
|
||||
domain: obsidian
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def delete_obsidian_note(path: str) -> bool"
|
||||
description: "Borra un archivo de nota Markdown de Obsidian del disco. Por seguridad solo borra un archivo concreto, nunca un directorio. No depende de la app GUI de Obsidian: opera directamente sobre el archivo .md plano."
|
||||
tags: [obsidian, markdown, delete, write, notes]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: "error_go_core"
|
||||
imports: ["os"]
|
||||
params:
|
||||
- name: path
|
||||
desc: "ruta al archivo .md de la nota a borrar"
|
||||
output: "True (bool) si el archivo fue borrado correctamente"
|
||||
tested: true
|
||||
tests:
|
||||
- "borra archivo existente y devuelve true"
|
||||
- "archivo inexistente lanza filenotfounderror"
|
||||
- "directorio lanza isadirectoryerror"
|
||||
- "no borra otros archivos"
|
||||
test_file_path: "python/functions/obsidian/delete_obsidian_note_test.py"
|
||||
file_path: "python/functions/obsidian/delete_obsidian_note.py"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```python
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.join("python", "functions"))
|
||||
from obsidian import delete_obsidian_note
|
||||
|
||||
ok = delete_obsidian_note("/home/me/vault/Inbox/Idea descartada.md")
|
||||
print(ok) # True
|
||||
```
|
||||
|
||||
## Cuando usarla
|
||||
|
||||
Cuando quieras eliminar una nota concreta de un vault de Obsidian desde codigo o un agente: limpiar el Inbox, borrar notas generadas temporalmente, o eliminar una nota tras consolidar su contenido en otra. Para varias notas, llama una vez por archivo (no acepta directorios).
|
||||
|
||||
## Gotchas
|
||||
|
||||
- **Borra del disco** (I/O impuro) y de forma **irreversible**: no manda a papelera, hace `os.remove`. El archivo no se puede recuperar salvo backup del vault.
|
||||
- **Solo archivos, nunca directorios**: lanza `IsADirectoryError` si el path apunta a una carpeta, para evitar borrados masivos accidentales.
|
||||
- **No respeta locks de la app GUI**: si Obsidian tiene la nota abierta, borrarla en disco dejara la pestana huerfana en el editor; al guardar desde Obsidian podria recrearse el archivo.
|
||||
- Lanza `FileNotFoundError` si el archivo no existe.
|
||||
- No borra archivos asociados (adjuntos, attachments referenciados): solo el `.md` indicado.
|
||||
Reference in New Issue
Block a user