Name | prune-lib JSON |
Version |
1.22.2
JSON |
| download |
home_page | None |
Summary | Internal library for prune.sh |
upload_time | 2025-09-04 09:48:57 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <4.0,>=3.12 |
license | None |
keywords |
captcha
django
code-quality
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# prune_lib
prune_lib est une bibliothèque Python regroupant des fonctions utilitaires réutilisables.
L’objectif est de faciliter le développement de projets en centralisant des outils communs.
Le projet inclut aussi prune_captcha, un module dédié à l’ajout d’un CAPTCHA personnalisé dans les formulaires de contact.
## Projet UV
### Installation
Lancez la commande suivante dans le terminal :
```bash
uv add prune_lib
```
### Mise à jour de la bilbiothèque
N’hésitez pas à exécuter régulièrement uv sync --upgrade, car la bibliothèque évolue avec le temps et nos pratiques !
## Projet Poetry
### Installation
Lancez la commande suivante :
```bash
poetry add prune_lib
```
### Mise à jour de la bibliothèque
N’hésitez pas à exécuter régulièrement poetry update, car la bibliothèque évolue avec le temps et nos pratiques !
## Objectifs
- Réutiliser facilement des fonctions communes.
- Fournir une alternative simple à reCAPTCHA.
- Ne dépendre d’aucun service externe.
## Intégration du captcha
### Configuration
Dans `settings.py`, définis le chemin des images utilisées pour le puzzle :
```python
PUZZLE_IMAGE_STATIC_PATH = "website/static/website/images/puzzles/"
```
Important : Tu dois importer les fichiers statiques (css, js) présents dans "prune_captcha/static/".
```html
<header>
<link
rel="stylesheet"
href="{% static 'prune_captcha/css/captcha.css' %}"
/>
<script defer src="{% static 'prune_captcha/js/captcha.js' %}"></script>
</header>
```
### Utilisation
- Requête GET (affichage du formulaire)
- Utilise create_and_get_captcha pour générer les données du captcha :
```python
from prune_captcha.utils import create_and_get_captcha
```
```python
puzzle = create_and_get_captcha(request)
```
- Passe les données dans le contexte sous la variable puzzle :
```python
return render(
request,
"website/pages/contact/page.html",
{"form": form, "puzzle": puzzle},
)
```
- Inclus le composant dans ton template :
```
{% include "prune_captcha/captcha.html" %}
```
- Requête POST (soumission du formulaire)
- Utilise verify_captcha pour valider le captcha :
```python
from prune_captcha.utils import verify_captcha
```
```python
response = verify_captcha(request)
```
- True si le captcha est correct, sinon False.
- Redirige en cas de captcha incorrect.
Raw data
{
"_id": null,
"home_page": null,
"name": "prune-lib",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": "captcha, django, code-quality",
"author": null,
"author_email": "Arnout <bastien@prune.sh>",
"download_url": "https://files.pythonhosted.org/packages/0a/0d/686949b8c9d61e26a178d3aab41ec9e77c88ad7cab2236d3f4e3389d9a84/prune_lib-1.22.2.tar.gz",
"platform": null,
"description": "# prune_lib\n\nprune_lib est une biblioth\u00e8que Python regroupant des fonctions utilitaires r\u00e9utilisables. \nL\u2019objectif est de faciliter le d\u00e9veloppement de projets en centralisant des outils communs.\n\nLe projet inclut aussi prune_captcha, un module d\u00e9di\u00e9 \u00e0 l\u2019ajout d\u2019un CAPTCHA personnalis\u00e9 dans les formulaires de contact.\n\n## Projet UV\n\n### Installation\n\nLancez la commande suivante dans le terminal :\n\n```bash\nuv add prune_lib\n```\n\n### Mise \u00e0 jour de la bilbioth\u00e8que\n\nN\u2019h\u00e9sitez pas \u00e0 ex\u00e9cuter r\u00e9guli\u00e8rement uv sync --upgrade, car la biblioth\u00e8que \u00e9volue avec le temps et nos pratiques !\n\n## Projet Poetry\n\n### Installation\n\nLancez la commande suivante :\n\n```bash\npoetry add prune_lib\n```\n\n### Mise \u00e0 jour de la biblioth\u00e8que\n\nN\u2019h\u00e9sitez pas \u00e0 ex\u00e9cuter r\u00e9guli\u00e8rement poetry update, car la biblioth\u00e8que \u00e9volue avec le temps et nos pratiques !\n\n## Objectifs\n\n- R\u00e9utiliser facilement des fonctions communes.\n- Fournir une alternative simple \u00e0 reCAPTCHA.\n- Ne d\u00e9pendre d\u2019aucun service externe.\n\n## Int\u00e9gration du captcha\n\n### Configuration\n\nDans `settings.py`, d\u00e9finis le chemin des images utilis\u00e9es pour le puzzle :\n\n```python\nPUZZLE_IMAGE_STATIC_PATH = \"website/static/website/images/puzzles/\"\n```\n\nImportant : Tu dois importer les fichiers statiques (css, js) pr\u00e9sents dans \"prune_captcha/static/\".\n\n```html\n<header>\n <link\n rel=\"stylesheet\"\n href=\"{% static 'prune_captcha/css/captcha.css' %}\"\n />\n <script defer src=\"{% static 'prune_captcha/js/captcha.js' %}\"></script>\n</header>\n```\n\n### Utilisation\n\n- Requ\u00eate GET (affichage du formulaire)\n\n - Utilise create_and_get_captcha pour g\u00e9n\u00e9rer les donn\u00e9es du captcha :\n\n ```python\n from prune_captcha.utils import create_and_get_captcha\n ```\n\n ```python\n puzzle = create_and_get_captcha(request)\n ```\n\n - Passe les donn\u00e9es dans le contexte sous la variable puzzle :\n\n ```python\n return render(\n request,\n \"website/pages/contact/page.html\",\n {\"form\": form, \"puzzle\": puzzle},\n )\n ```\n\n - Inclus le composant dans ton template :\n\n ```\n {% include \"prune_captcha/captcha.html\" %}\n ```\n\n- Requ\u00eate POST (soumission du formulaire)\n\n - Utilise verify_captcha pour valider le captcha :\n\n ```python\n from prune_captcha.utils import verify_captcha\n ```\n\n ```python\n response = verify_captcha(request)\n ```\n\n - True si le captcha est correct, sinon False.\n\n - Redirige en cas de captcha incorrect.\n",
"bugtrack_url": null,
"license": null,
"summary": "Internal library for prune.sh",
"version": "1.22.2",
"project_urls": {
"Made_by": "https://prune.sh/"
},
"split_keywords": [
"captcha",
" django",
" code-quality"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "357360110c8d75c4d969eb6a317fab50bbabc8bf37fd4236ada6a5c955710c58",
"md5": "7d37168e1807de93070bb42c3e76ddf0",
"sha256": "e9164fb7adfb594b0e31502a1dee15bae8aea71c407a7d43923dae2c18c8bf29"
},
"downloads": -1,
"filename": "prune_lib-1.22.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7d37168e1807de93070bb42c3e76ddf0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 16642,
"upload_time": "2025-09-04T09:48:56",
"upload_time_iso_8601": "2025-09-04T09:48:56.638733Z",
"url": "https://files.pythonhosted.org/packages/35/73/60110c8d75c4d969eb6a317fab50bbabc8bf37fd4236ada6a5c955710c58/prune_lib-1.22.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0a0d686949b8c9d61e26a178d3aab41ec9e77c88ad7cab2236d3f4e3389d9a84",
"md5": "667ef61755b3a0c2dd0d9ef5c6f15945",
"sha256": "07eb5b4d5d24e4ec6e3dab2ab3e3a6981c48c47b1cdd35ad858b9a1a261e59a3"
},
"downloads": -1,
"filename": "prune_lib-1.22.2.tar.gz",
"has_sig": false,
"md5_digest": "667ef61755b3a0c2dd0d9ef5c6f15945",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 12211,
"upload_time": "2025-09-04T09:48:57",
"upload_time_iso_8601": "2025-09-04T09:48:57.449599Z",
"url": "https://files.pythonhosted.org/packages/0a/0d/686949b8c9d61e26a178d3aab41ec9e77c88ad7cab2236d3f4e3389d9a84/prune_lib-1.22.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-04 09:48:57",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "prune-lib"
}