Metadata-Version: 2.3
Name: k-todo
Version: 0.5.0
Summary: A modern and productive CLI for managing your daily tasks.
Author: Ivann KAMDEM
Author-email: Ivann KAMDEM <kapoivha@gmail.com>
License: MIT
Requires-Dist: typer>=0.20.1
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# ✅ kpihx-todo

Un outil en ligne de commande (CLI) moderne et productif pour gérer vos tâches quotidiennes, construit avec Python et Typer.

---

## ✨ Fonctionnalités

- **📝 Gestion complète :** Ajoutez, supprimez et basculez le statut de vos tâches en toute simplicité.
- **🔍 Recherche et tri puissants :** Filtrez les tâches par statut (terminées/non terminées) et triez-les par nom ou par ID.
- **🚀 Recherche par Regex :** Trouvez des tâches avec des motifs de recherche avancés grâce aux expressions régulières.
- **🛡️ Sécurité avant tout :** Les commandes destructrices (comme `delete` et `empty`) demandent une confirmation pour éviter les erreurs.
- **🐳 Prêt pour Docker :** Utilisez l'application dans un environnement conteneurisé pour une portabilité maximale.
- **💻 Multi-plateforme :** Fonctionne sur macOS, Linux et Windows.

---

## 🚀 Installation

Il est recommandé d'installer `kpihx-todo` avec `pipx` pour l'isoler dans son propre environnement et rendre la commande `todo` disponible globalement.

### Depuis PyPI (Méthode recommandée)

Le paquet est publié sur PyPI sous le nom `kpihx-todo`.

```bash
# Installe le paquet et expose la commande 'todo'
pipx install kpihx-todo
```

### Depuis un clone local

Si vous souhaitez installer à partir des sources :

```bash
# 1. Clonez le dépôt
git clone https://github.com/votre-nom-utilisateur/kpihx-todo.git
cd kpihx-todo

# 2. Installez avec pipx
pipx install .
```

---

## 🛠️ Guide d'utilisation

### ❓ Obtenir de l'aide

L'aide est intégrée directement dans l'outil.

```bash
# Aide générale et liste de toutes les commandes
todo --help

# Aide spécifique pour une commande (par exemple, 'list')
todo list --help
```

### 📋 Commandes principales

#### **Ajouter une tâche**
```bash
todo add "Apprendre à utiliser ce super outil CLI"
```

#### **Lister les tâches**
La commande `list` est très puissante. Voici quelques exemples :
```bash
# Lister toutes les tâches
todo list

# Afficher uniquement les tâches terminées
todo list --done

# Afficher uniquement les tâches non terminées
todo list --not-done

# Trier les tâches par nom par ordre décroissant
todo list --sort-by-name desc

# Trouver les tâches qui commencent par "Acheter" (insensible à la casse)
todo list --query "^Acheter"
```

#### **Gérer les tâches**
```bash
# Marquer la tâche n°2 comme terminée
todo done 2

# Basculer le statut de la tâche n°3 (terminée <-> non terminée)
todo toggle 3

# Supprimer la tâche n°5
todo delete 5
```

#### **Vider la liste**
Cette commande supprime **toutes** les tâches.
```bash
# Supprimer toutes les tâches (avec confirmation)
todo empty
```

---

## 🐳 Utilisation avec Docker

Vous pouvez également exécuter l'application via Docker, ce qui est parfait pour une utilisation isolée sans rien installer sur votre machine hôte.

### Lancer des commandes

Pour que vos données persistent entre les lancements, il est **essentiel** d'utiliser un volume pour lier le fichier de base de données du conteneur à un fichier sur votre machine.

```bash
# Assurez-vous que le fichier existe sur votre machine
touch ~/.todo_cli.json

# Exemple : Ajouter une tâche
docker run --rm -v ~/.todo_cli.json:/root/.todo_cli.json kpihx-todo add "Ma tâche Docker"

# Exemple : Lister les tâches
docker run --rm -v ~/.todo_cli.json:/root/.todo_cli.json kpihx-todo list
```

> **Note :** L'option `--rm` supprime le conteneur après chaque exécution, gardant votre système propre.

### Avec Docker Compose (Méthode simplifiée)

Pour une expérience encore plus simple, vous pouvez utiliser le fichier `docker-compose.yml` inclus dans le projet. Il pré-configure le volume pour vous, rendant les commandes beaucoup plus courtes.

```bash
# Exemple : Ajouter une tâche
docker compose run --rm todo add "Ma tâche avec Docker Compose"

# Exemple : Lister les tâches
docker compose run --rm todo list
```

---

## 📄 Licence

Ce projet est sous licence MIT. Voir le fichier `LICENSE` pour plus de détails.
