# pygrammalecte
[![PyPI](https://img.shields.io/pypi/v/pygrammalecte.svg)](https://pypi.python.org/pypi/pygrammalecte)
[![PyPI](https://img.shields.io/pypi/l/pygrammalecte.svg)](https://github.com/vpoulailleau/pygrammalecte/blob/master/LICENSE)
[![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
[![Downloads](https://pepy.tech/badge/pygrammalecte)](https://pepy.tech/project/pygrammalecte)
[![Test Coverage](https://api.codeclimate.com/v1/badges/44347ade656fa1e652ae/test_coverage)](https://codeclimate.com/github/vpoulailleau/pygrammalecte/test_coverage)
[![Maintainability](https://api.codeclimate.com/v1/badges/44347ade656fa1e652ae/maintainability)](https://codeclimate.com/github/vpoulailleau/pygrammalecte/maintainability)
(english version at the bottom of this document)
Grammalecte, le correcteur grammatical en Python.
Pour être précis, ce projet n’est pas Grammalecte, mais un « wrapper » permettant de l’utiliser facilement en Python.
## Installation
Vous devez utiliser un Python en version supérieure ou égale à 3.9.
L’utilisation d’un environnement virtuel est fortement recommandé.
```sh
python3 -m pip install pygrammalecte
```
## Utilisation
### Vérification d’une chaîne de caractères
```python
from pygrammalecte import grammalecte_text
texte_bidon = """\
Coucou, je veut du fromage.
Je sais coder en VHDL.
Le VHDL est est compliquer.
"""
for message in grammalecte_text(texte_bidon):
print(message)
```
### Vérification d’un fichier
Vous devez fournir le chemin du fichier en `str` ou en `pathlib.Path`. Le fichier doit être un fichier texte brut (pas un fichier Word ou OpenDocument par exemple).
```python
from pathlib import Path
from pygrammalecte import grammalecte_file
filepath = Path("toto.txt")
for message in grammalecte_file(filepath):
print(message)
```
### Messages générés
Les fonctions `grammalecte_file` et `grammalecte_text` sont des générateurs, vous pouvez donc les utiliser dans une boucle `for`. Elles génèrent des `GrammalecteMessage`.
Deux types de `GrammalecteMessage` existent :
- `GrammalecteSpellingMessage` qui a comme attributs :
- `line` : numéro de la ligne dans le texte vérifié
- `start` : numéro du caractère de début de l’erreur dans la ligne
- `end` : numéro du caractère de fin de l’erreur dans la ligne
- `word` : le mot non reconnu par `Grammalecte`
- `message` : message d’erreur
- `GrammalecteGrammarMessage` qui a comme attributs :
- `line` : numéro de la ligne dans le texte vérifié
- `start` : numéro du caractère de début de l’erreur dans la ligne
- `end` : numéro du caractère de fin de l’erreur dans la ligne
- `url` : l’URL fournie par `Grammalecte`
- `color` : une couleur fournie par `Grammalecte`, c’est une liste de 3 entiers entre 0 et 255.
- `suggestions` : propositions de correction
- `message` : message d’erreur
- `rule` : identifiant de la règle violée
- `type` : type de la règle (`"conj"`…)
## Changelog
### Version 1.5.0
- Amélioration du support de Windows
### Version 1.4.0
- Passage à `uv`
- Compatibilité Python 3.9 à 3.13
- Utilisation de Grammalecte v2.1.1
### Version v1.3.0
- Correction due à un fonctionnement étrange de Grammalecte v1.12.0
### Version v1.2.0
- Utilisation de Grammalecte v1.12.0
### Version v1.1.0
- Ajout de l'attribut `message` pour `GrammalecteSpellingMessage`
### Version v1.0.0
- Refactoring
- Ajout de l'intégration continue
### Version v0.1.0
- Première version !
- Utilisation de Grammalecte v1.11.0
## English version
This is a wrapper for the french grammatical checker called Grammalecte.
Raw data
{
"_id": null,
"home_page": null,
"name": "pygrammalecte",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "french, grammalecte, grammar-checker, grammatical, linter",
"author": null,
"author_email": "Vincent Poulailleau <vpoulailleau@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/31/c8/b9e842180a6549b82b13be3ff4e4878b5cfb772cde1e15762aba7c65b2cc/pygrammalecte-1.5.0.tar.gz",
"platform": null,
"description": "# pygrammalecte\n\n[![PyPI](https://img.shields.io/pypi/v/pygrammalecte.svg)](https://pypi.python.org/pypi/pygrammalecte)\n[![PyPI](https://img.shields.io/pypi/l/pygrammalecte.svg)](https://github.com/vpoulailleau/pygrammalecte/blob/master/LICENSE)\n[![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)\n[![Downloads](https://pepy.tech/badge/pygrammalecte)](https://pepy.tech/project/pygrammalecte)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/44347ade656fa1e652ae/test_coverage)](https://codeclimate.com/github/vpoulailleau/pygrammalecte/test_coverage)\n[![Maintainability](https://api.codeclimate.com/v1/badges/44347ade656fa1e652ae/maintainability)](https://codeclimate.com/github/vpoulailleau/pygrammalecte/maintainability)\n\n(english version at the bottom of this document)\n\nGrammalecte, le correcteur grammatical en Python.\n\nPour \u00eatre pr\u00e9cis, ce projet n\u2019est pas Grammalecte, mais un \u00ab\u00a0wrapper\u00a0\u00bb permettant de l\u2019utiliser facilement en Python.\n\n## Installation\n\nVous devez utiliser un Python en version sup\u00e9rieure ou \u00e9gale \u00e0 3.9.\n\nL\u2019utilisation d\u2019un environnement virtuel est fortement recommand\u00e9.\n\n```sh\npython3 -m pip install pygrammalecte\n```\n\n## Utilisation\n\n### V\u00e9rification d\u2019une cha\u00eene de caract\u00e8res\n\n```python\nfrom pygrammalecte import grammalecte_text\n\ntexte_bidon = \"\"\"\\\nCoucou, je veut du fromage.\nJe sais coder en VHDL.\nLe VHDL est est compliquer.\n\"\"\"\n\nfor message in grammalecte_text(texte_bidon):\n print(message)\n```\n\n### V\u00e9rification d\u2019un fichier\n\nVous devez fournir le chemin du fichier en `str` ou en `pathlib.Path`. Le fichier doit \u00eatre un fichier texte brut (pas un fichier Word ou OpenDocument par exemple).\n\n```python\nfrom pathlib import Path\n\nfrom pygrammalecte import grammalecte_file\n\nfilepath = Path(\"toto.txt\")\n\nfor message in grammalecte_file(filepath):\n print(message)\n```\n\n### Messages g\u00e9n\u00e9r\u00e9s\n\nLes fonctions `grammalecte_file` et `grammalecte_text` sont des g\u00e9n\u00e9rateurs, vous pouvez donc les utiliser dans une boucle `for`. Elles g\u00e9n\u00e8rent des `GrammalecteMessage`.\n\nDeux types de `GrammalecteMessage` existent\u00a0:\n\n- `GrammalecteSpellingMessage` qui a comme attributs\u00a0:\n\n - `line`\u00a0: num\u00e9ro de la ligne dans le texte v\u00e9rifi\u00e9\n - `start`\u00a0: num\u00e9ro du caract\u00e8re de d\u00e9but de l\u2019erreur dans la ligne\n - `end`\u00a0: num\u00e9ro du caract\u00e8re de fin de l\u2019erreur dans la ligne\n - `word`\u00a0: le mot non reconnu par `Grammalecte`\n - `message`\u00a0: message d\u2019erreur\n\n- `GrammalecteGrammarMessage` qui a comme attributs\u00a0:\n - `line`\u00a0: num\u00e9ro de la ligne dans le texte v\u00e9rifi\u00e9\n - `start`\u00a0: num\u00e9ro du caract\u00e8re de d\u00e9but de l\u2019erreur dans la ligne\n - `end`\u00a0: num\u00e9ro du caract\u00e8re de fin de l\u2019erreur dans la ligne\n - `url`\u00a0: l\u2019URL fournie par `Grammalecte`\n - `color`\u00a0: une couleur fournie par `Grammalecte`, c\u2019est une liste de 3 entiers entre 0 et 255.\n - `suggestions`\u00a0: propositions de correction\n - `message`\u00a0: message d\u2019erreur\n - `rule`\u00a0: identifiant de la r\u00e8gle viol\u00e9e\n - `type`\u00a0: type de la r\u00e8gle (`\"conj\"`\u2026)\n\n## Changelog\n\n### Version 1.5.0\n\n- Am\u00e9lioration du support de Windows\n\n### Version 1.4.0\n\n- Passage \u00e0 `uv`\n- Compatibilit\u00e9 Python 3.9 \u00e0 3.13\n- Utilisation de Grammalecte v2.1.1\n\n### Version v1.3.0\n\n- Correction due \u00e0 un fonctionnement \u00e9trange de Grammalecte v1.12.0\n\n### Version v1.2.0\n\n- Utilisation de Grammalecte v1.12.0\n\n### Version v1.1.0\n\n- Ajout de l'attribut `message` pour `GrammalecteSpellingMessage`\n\n### Version v1.0.0\n\n- Refactoring\n- Ajout de l'int\u00e9gration continue\n\n### Version v0.1.0\n\n- Premi\u00e8re version\u00a0!\n- Utilisation de Grammalecte v1.11.0\n\n## English version\n\nThis is a wrapper for the french grammatical checker called Grammalecte.\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Grammalecte, le correcteur grammatical en Python",
"version": "1.5.0",
"project_urls": {
"Repository": "https://github.com/vpoulailleau/pygrammalecte",
"Source code": "https://github.com/vpoulailleau/pygrammalecte",
"documentation": "https://github.com/vpoulailleau/pygrammalecte",
"homepage": "https://github.com/vpoulailleau/pygrammalecte"
},
"split_keywords": [
"french",
" grammalecte",
" grammar-checker",
" grammatical",
" linter"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d60a1d9c3f6563ad5a6acb7bf191c7b267ca1677ddad20fd772d7aa46e11821c",
"md5": "79a429822e04f1053632b48a5d8950c4",
"sha256": "460c293dc7ca4c7bad720d30a355f5fef59794078b452f81eed52474846b8103"
},
"downloads": -1,
"filename": "pygrammalecte-1.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "79a429822e04f1053632b48a5d8950c4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 6087,
"upload_time": "2024-12-13T12:33:45",
"upload_time_iso_8601": "2024-12-13T12:33:45.105675Z",
"url": "https://files.pythonhosted.org/packages/d6/0a/1d9c3f6563ad5a6acb7bf191c7b267ca1677ddad20fd772d7aa46e11821c/pygrammalecte-1.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "31c8b9e842180a6549b82b13be3ff4e4878b5cfb772cde1e15762aba7c65b2cc",
"md5": "ba58683c064ec196b071178a3769443d",
"sha256": "48c99525f75f78df536bfca12150d3e0f8ca322235535768fca1e03dca2bbd83"
},
"downloads": -1,
"filename": "pygrammalecte-1.5.0.tar.gz",
"has_sig": false,
"md5_digest": "ba58683c064ec196b071178a3769443d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 6494,
"upload_time": "2024-12-13T12:33:46",
"upload_time_iso_8601": "2024-12-13T12:33:46.241488Z",
"url": "https://files.pythonhosted.org/packages/31/c8/b9e842180a6549b82b13be3ff4e4878b5cfb772cde1e15762aba7c65b2cc/pygrammalecte-1.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-13 12:33:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vpoulailleau",
"github_project": "pygrammalecte",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"lcname": "pygrammalecte"
}