Skip to main content

janelkit-desktop

PyPI Python CI Licencia: MIT

Servicios del sistema para aplicaciones JanelKit: diálogos nativos y portapapeles, con await y sin bloquear la ventana.

pip install janelkit-desktop

En un minuto

from janelkit_desktop import clipboard, dialogs

async def abrir():
    ruta = await dialogs.open_file("Abrir nota", filters=["Texto (*.txt *.md)"])
    if ruta is not None:                      # None si el usuario cancela
        texto.value = ruta.read_text()

async def borrar():
    if await dialogs.confirm("¿Borrar la nota?"):
        ...

def copiar():
    clipboard.copy(texto.value)
<button on:click={abrir}>Abrir…</button>
<text>En el portapapeles: {clipboard.paste()}</text>

Características

  • Diálogos nativos y asíncronos. Abrir, guardar, elegir carpeta, mensaje y confirmación. Se esperan con await: la ventana sigue respondiendo y el resultado llega como Path, una lista, bool o None si se cancela.
  • Portapapeles reactivo. clipboard.paste() en la plantilla se actualiza cuando cambia el portapapeles, también si cambia desde otra aplicación.
  • Fácil de probar. Añade métodos a janelkit.inspect para responder diálogos en las pruebas, sin ventanas reales.
  • Solo API pública. Usa janelkit y janelkit.ext, nada interno del núcleo; una prueba del repositorio lo comprueba.

Referencia

Nombre Descripción
dialogs Diálogos del sistema, todos asíncronos (await): open_file, open_files, save_file y choose_folder (devuelven Path, una lista o None si se cancela), message y confirm (devuelve bool). Para pruebas, pending() lista los abiertos y kind(d) dice el tipo de uno ("MessageDialog", "FileDialog", "FolderDialog").
clipboard Portapapeles del sistema (texto): copy(texto), paste() (el texto que hay, o "" si no hay nada; reactivo) y clear().

Las tres piezas necesitan una aplicación en marcha.

En pruebas

Al importarse, el paquete añade estos métodos a MountedApp de janelkit.inspect:

Método Descripción
app.dialogs() Diálogos abiertos, del más antiguo al más reciente.
app.answer_dialog(resultado) Responde al último: una ruta (archivos o carpeta), True (aceptar) o False (cancelar).
from janelkit import inspect

def test_borrar_pregunta_antes():
    with inspect.mount("src/App.janel") as app:
        app.find(text="Borrar").click()
        app.answer_dialog(False)              # el usuario cancela
        assert app.find(text="Mi nota")

Ejemplos: apps/examples/files (elegir carpeta), apps/challenges/gestor (confirmaciones) y apps/challenges/hoja (abrir y guardar CSV, portapapeles).

Compatibilidad

janelkit-desktop janelkit Python
0.2.x.x 0.2.x.x ≥ 3.10
0.1.x 0.1.x ≥ 3.10

Comparte la serie con el núcleo: janelkit-desktop 0.2.x.x va con janelkit 0.2.x.x. Los dos últimos números son suyos (política de versiones).

Cambios

0.2.0.0 (2026-11-05)

  • Se quitan las notificaciones: notify, el icono de la bandeja del sistema y app.notifications() en janelkit.inspect. El paquete se queda con lo que casi toda aplicación de escritorio necesita: diálogos de archivos, carpeta, mensaje y confirmación, y el portapapeles. Para avisar dentro de la aplicación, usa un aviso en la propia ventana (por ejemplo, un {#if} con un timeout). Importar notify da un error que lo explica.

0.1.0

  • Primera versión publicada. Antes eran los módulos janelkit.dialogs, janelkit.clipboard y janelkit.notifications del núcleo: cambia from janelkit import dialogs, clipboard, notify por from janelkit_desktop import dialogs, clipboard, notify.
  • Compatible con janelkit 0.1 (janelkit>=0.1,<0.2).

Licencia

MIT.

Metadata

Release files for janelkit-desktop 0.2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for janelkit-desktop 0.2.0.0
File Size Uploaded Provenance Actions
janelkit_desktop-0.2.0.0.tar.gz 12.0 kB With provenance Details for janelkit_desktop-0.2.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for janelkit-desktop 0.2.0.0
File Interpreter ABI Platform Actions
janelkit_desktop-0.2.0.0-py3-none-any.whl Python 3 none any Details for janelkit_desktop-0.2.0.0-py3-none-any.whl

Total release size: 21.1 kB

Release files / janelkit_desktop-0.2.0.0.tar.gz

Download URL janelkit_desktop-0.2.0.0.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9ca72e30f9d546341297c37c71c359531f584826e093e8bbe6dff9bbdd756232
BLAKE2b-256 checksum
How to use checksums
6566409de84c1725e6498ebdbeedc01df8b0cabceadfb51ae135084202e05cd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / janelkit_desktop-0.2.0.0-py3-none-any.whl

Download URL janelkit_desktop-0.2.0.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3b337f8b7ab339959181c8a3fa45e88dbf2a6c7daf72350832d76517ba2e8f4
BLAKE2b-256 checksum
How to use checksums
070846278d66730535068a27f66eba68028a9925b71826c89ed3a875748d8671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Security for janelkit-desktop 0.2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for janelkit_desktop-0.2.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page