# Hidetext
Extensible Python library to hide fragments of text.
[![version](https://img.shields.io/pypi/v/hidetext?logo=pypi&logoColor=white)](https://pypi.org/project/hidetext/)
[![build](https://github.com/jaume-ferrarons/hidetext/actions/workflows/push-event.yml/badge.svg)](https://github.com/jaume-ferrarons/hidetext/actions/workflows/push-event.yml)
[![codecov](https://codecov.io/github/jaume-ferrarons/hidetext/branch/main/graph/badge.svg?token=MZQOAFBQ5I)](https://codecov.io/github/jaume-ferrarons/hidetext)
## Installation
**Requirements**: python >= 3.8
It can be easily installed with:
```bash
pip install -U hidetext
```
## Basic usage
```python
from hidetext import Hidetext
hide = Hidetext()
print(hide.character("""
Dear Mr Robinson,
I'm contacting you regarding
My DNI is 43244328J.
Email: fdsfsd@gmail.com
"""))
```
Dear Mr Robinson,
I'm contacting you regarding
My DNI is *********.
Email: ****************
```python
print(hide.kind("""
Dear Mr Robinson,
I'm contacting you regarding
My DNI is 43244328J.
Email: fdsfsd@gmail.com
"""))
```
Dear Mr Robinson,
I'm contacting you regarding
My DNI is <ID_CARD>.
Email: <EMAIL>
## Creating custom filters
It's easy to create custom filters to remove undesired text using `PatternFilter`:
```python
from typing import Dict
from hidetext import Hidetext
from hidetext.filters import PatternFilter
class HourFilter(PatternFilter):
name: str = "HOUR"
patterns: Dict[str, str] = {
"digital_hour": r"\d{2}(:\d{2}){1,2}",
"hour": "\d{1,2}\s?(am|pm)"
}
hide = Hidetext(filters=[HourFilter()])
hide.kind("The train departs at 15:45 and arrives at 19:35, therefore I'll be at the party at 8pm.")
```
"The train departs at <HOUR> and arrives at <HOUR>, therefore I'll be at the party at <HOUR>."
Raw data
{
"_id": null,
"home_page": "https://github.com/jaume-ferrarons/hidetext",
"name": "hidetext",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8.1,<4.0.0",
"maintainer_email": "",
"keywords": "text,filter,word,pattern",
"author": "Jaume Ferrarons",
"author_email": "jaume.ferrarons@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f2/1f/6f8e48309081a0ee8b08938d4b9be9ea64a9a5302a58e2ee1c1353cbf296/hidetext-0.1.1.tar.gz",
"platform": null,
"description": "# Hidetext\n\nExtensible Python library to hide fragments of text.\n\n[![version](https://img.shields.io/pypi/v/hidetext?logo=pypi&logoColor=white)](https://pypi.org/project/hidetext/)\n[![build](https://github.com/jaume-ferrarons/hidetext/actions/workflows/push-event.yml/badge.svg)](https://github.com/jaume-ferrarons/hidetext/actions/workflows/push-event.yml)\n[![codecov](https://codecov.io/github/jaume-ferrarons/hidetext/branch/main/graph/badge.svg?token=MZQOAFBQ5I)](https://codecov.io/github/jaume-ferrarons/hidetext)\n\n## Installation\n**Requirements**: python >= 3.8\n\nIt can be easily installed with:\n```bash\npip install -U hidetext\n```\n\n## Basic usage\n\n\n```python\nfrom hidetext import Hidetext\n\nhide = Hidetext()\n\nprint(hide.character(\"\"\"\nDear Mr Robinson,\n\nI'm contacting you regarding \nMy DNI is 43244328J.\n\nEmail: fdsfsd@gmail.com\n\"\"\"))\n```\n\n \n Dear Mr Robinson,\n \n I'm contacting you regarding \n My DNI is *********.\n \n Email: ****************\n \n\n\n\n```python\nprint(hide.kind(\"\"\"\nDear Mr Robinson,\n\nI'm contacting you regarding \nMy DNI is 43244328J.\n\nEmail: fdsfsd@gmail.com\n\"\"\"))\n```\n\n \n Dear Mr Robinson,\n \n I'm contacting you regarding \n My DNI is <ID_CARD>.\n \n Email: <EMAIL>\n \n\n\n## Creating custom filters\n\nIt's easy to create custom filters to remove undesired text using `PatternFilter`:\n\n\n```python\nfrom typing import Dict\n\nfrom hidetext import Hidetext\nfrom hidetext.filters import PatternFilter\n\nclass HourFilter(PatternFilter):\n name: str = \"HOUR\"\n\n patterns: Dict[str, str] = {\n \"digital_hour\": r\"\\d{2}(:\\d{2}){1,2}\",\n \"hour\": \"\\d{1,2}\\s?(am|pm)\"\n }\n\nhide = Hidetext(filters=[HourFilter()])\n\nhide.kind(\"The train departs at 15:45 and arrives at 19:35, therefore I'll be at the party at 8pm.\")\n```\n\n\n\n\n \"The train departs at <HOUR> and arrives at <HOUR>, therefore I'll be at the party at <HOUR>.\"\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Hides non-desired text",
"version": "0.1.1",
"split_keywords": [
"text",
"filter",
"word",
"pattern"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "c110af409e287de7d246baf09ab30004",
"sha256": "9c7282d6682783bdb6ea4d2951e8bd15a1357aca568703839a67b796cb6cf724"
},
"downloads": -1,
"filename": "hidetext-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c110af409e287de7d246baf09ab30004",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.1,<4.0.0",
"size": 10291,
"upload_time": "2022-12-08T13:38:41",
"upload_time_iso_8601": "2022-12-08T13:38:41.330269Z",
"url": "https://files.pythonhosted.org/packages/c3/26/cd0b29395652caeb770c03e9c68ebfe052fe278c991219b9ea6729119543/hidetext-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "f09a44785d425bee7ec78304937ddc12",
"sha256": "805d9f47797db0013cea09c090d07b85c1c3fde70777f2c88c23fd13e855245d"
},
"downloads": -1,
"filename": "hidetext-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "f09a44785d425bee7ec78304937ddc12",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.1,<4.0.0",
"size": 7330,
"upload_time": "2022-12-08T13:38:43",
"upload_time_iso_8601": "2022-12-08T13:38:43.215656Z",
"url": "https://files.pythonhosted.org/packages/f2/1f/6f8e48309081a0ee8b08938d4b9be9ea64a9a5302a58e2ee1c1353cbf296/hidetext-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-08 13:38:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "jaume-ferrarons",
"github_project": "hidetext",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "hidetext"
}