Skip to main content

XEphemere

XEphemere est un module Python dédié à la gestion de données et d'objets éphémères.

Il permet notamment de créer des fichiers temporaires avec expiration automatique, de gérer des listes à durée de vie limitée et d'exécuter des callbacks après un délai.

Installation

pip install XEphemere

Fonctionnalités

  • 📄 Création de fichiers éphémères
  • ⏳ Expiration automatique des fichiers
  • 🗑️ Suppression automatique des données expirées
  • 📋 Listes temporaires avec Mirage
  • ⏱️ Gestion du temps restant
  • ➕ Ajout de temps
  • 🔄 Modification de la durée
  • ❌ Suppression du minuteur
  • ⏲️ Sabliers avec callbacks
  • 🌫️ Fonctions de transformation de données

Importation

from XEphemere import (
    ephemere,
    DeleteError,
    open_ephemere,
    ghost,
    souffle,
    evaporation,
    sablier,
    sablier_time,
    Mirage,
)

Fichiers éphémères

ephemere()

Crée un fichier dont la durée de vie est limitée.

ephemere(
    duree=60,
    name="file.tmp",
    value="Bonjour !"
)

Le fichier est créé avec une date d'expiration.


open_ephemere

Permet d'ouvrir et de lire un fichier éphémère.

with open_ephemere("file.tmp") as fichier:
    print(fichier.value())

Vérifier son existence

with open_ephemere("file.tmp") as fichier:
    print(fichier.exist())

Si le fichier a expiré, il est automatiquement supprimé.


DeleteError

Exception utilisée lorsqu'une opération concerne une donnée éphémère qui n'existe plus.

from XEphemere import DeleteError

try:
    ...
except DeleteError:
    print("La donnée a expiré.")

Mirage

Mirage est une liste Python éphémère.

Elle fonctionne comme une liste normale, mais son contenu est automatiquement effacé après une durée donnée.

from XEphemere import Mirage

mirage = Mirage(
    ["Bonjour", "XEphemere"],
    duree=60
)

print(mirage)

Temps restant

print(mirage.time_remaining())

La méthode retourne le nombre de secondes restantes.

Si aucun minuteur n'est actif :

None

est retourné.

Modifier la durée

mirage.set_time(120)

La durée restante est remplacée par 120 secondes.

Ajouter du temps

mirage.add_time(30)

Ajoute 30 secondes au temps restant.

Supprimer le minuteur

mirage.remove_time()

Le minuteur est annulé et la liste n'est plus automatiquement effacée.


Sablier

Le système de sablier permet d'exécuter une fonction après un certain délai.

from XEphemere import sablier

def termine():
    print("Le temps est écoulé !")

sablier(
    temps=5,
    callback=termine
)

Le programme peut continuer son exécution pendant l'attente.


sablier_time

Version asynchrone du sablier.

import asyncio

from XEphemere import sablier_time

async def main():
    await sablier_time(
        5,
        lambda: print("Terminé !")
    )

asyncio.run(main())

Autres fonctions

XEphemere fournit également plusieurs fonctions destinées à manipuler ou transformer des données :

ghost

Fonctionnalité permettant de travailler avec des données éphémères.

souffle

Fonctionnalité de transformation de données.

evaporation

Réduit les chaînes de caractères selon un taux donné.

from XEphemere import evaporation

mots = [
    "Bonjour",
    "Python",
    "XEphemere"
]

resultat = evaporation(mots, 0.5)

print(resultat)

Exemple complet

import time

from XEphemere import Mirage


mirage = Mirage(
    ["Message temporaire"],
    duree=10
)

print("Contenu :", mirage)
print("Temps restant :", mirage.time_remaining())

mirage.add_time(5)

print("Nouveau temps :", mirage.time_remaining())

time.sleep(3)

print("Temps restant :", mirage.time_remaining())

Après expiration, la liste est automatiquement vidée.


Version

Version actuelle :

0.1.1

Compatibilité

Python 3.10+


Licence

Ce projet est distribué sous licence MIT.

Voir le fichier LICENSE.


Auteur

Loup / Loup007A


Statut

🚧 Projet en développement.

Les fonctionnalités et l'API peuvent évoluer dans les prochaines versions.

Metadata

Release files for XEphemere 0.1.1

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

Source distribution (sdist)

Source distribution for XEphemere 0.1.1
File Size Uploaded
xephemere-0.1.1.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for XEphemere 0.1.1
File Interpreter ABI Platform
xephemere-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 kB

Release files / xephemere-0.1.1.tar.gz

Download URL xephemere-0.1.1.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1243e7715014fb943f008015d9da7cdc2c7b8f919c9c71b9e8d55c9a39fc84fd
BLAKE2b-256 checksum
How to use checksums
e80c8755bd1516eeed2c8721b0f880443a30de597e25fb75536e54ebbd9bfd8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / xephemere-0.1.1-py3-none-any.whl

Download URL xephemere-0.1.1-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5ba7db965b554dc8e3052d2e894e1ec86a254798880893463293fd85daf63ae
BLAKE2b-256 checksum
How to use checksums
0d576b48603928f51228fb03e08f3e6276310a5ac9ac2ce6a197a05244644008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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