{ "info": { "author": "Benjamin MATHIEU", "author_email": "padget.pro@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Functionnal Regular Expression : fre\n\n**fre** permet d'utiliser les expressions r\u00e9guli\u00e8res directement en python sans \npasser par les strings.\n\n## Motivation\n\nUtiliser les expressions r\u00e9guli\u00e8res fait partie des choses basiques en \ning\u00e9ni\u00e9rie logicielle et la plupart du temps cela se fait au travers de strings\nqui sont pars\u00e9es puis utilis\u00e9es pour effectuer le matching avec d'autres \nchaines.\n\nC'est pourquoi il y a **fre** qui permet de coder les expressions r\u00e9guli\u00e8res \ndirectement en python sans phase de pr\u00e9compilation. On a donc un gain de \nperformance \u00e0 l'ex\u00e9cution. \n\n## Features\n\n**fre** permet d'\u00e9crire les expressions r\u00e9guli\u00e8res directement en python, soit\nde mani\u00e8re purement fonctionnelle, soit avec des op\u00e9rateurs.\n\n#### Un exemple fonctionnel\n\n```python\nfrom fre.fnregex import charinterval, char\n\ndef match_lower(c: chr) -> bool:\n lower = charinterval(char('a'), char('z')) # utilisation de fonctions\n return lower(c).matched()\n```\n\n#### Le m\u00eame avec les op\u00e9rateurs\n\n```python\nfrom fre.opregex import a, z\n\ndef match_lower(c: chr) -> bool:\n lower = a - z # utilisation de l'op\u00e9rateur d'interval\n return lower(c).matched()\n```\n\n\n**fre** expose deux fonctions principales : \n\n```python\ndef match(fnrx: FnRegex, inp: str) -> MatchResult:\n ...\n```\n```python\ndef fullmatch(fnrx: FnRegex, inp: str) -> FullMatchResult:\n ...\n```\n\nCes deux fonctions prennent en premier param\u00e8tre une FnRegex construite soit de\nmani\u00e8re fonctionnelle soit avec les op\u00e9rateurs et en second param\u00e8tre la string\ndont on veut savoir si la valeur correspond ou pas avec l'expression r\u00e9guli\u00e8re. \n\n`fullmatch` au contraire de `match` demande \u00e0 ce que la totalit\u00e9 de la string soit\nen correspondance avec l'expression r\u00e9guli\u00e8re. Alors que `match` elle ne demande\nque le d\u00e9but soit correspondant. \n\n## Installation\n\n#### Pypi\n\n```bash\npip install fre\n``` \n\n## Contribution\n\n## Licence\n\n**fre** est sous [licence MIT](LICENSE) \n\n\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/padget/fre", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fre", "package_url": "https://pypi.org/project/fre/", "platform": "", "project_url": "https://pypi.org/project/fre/", "project_urls": { "Homepage": "https://github.com/padget/fre" }, "release_url": "https://pypi.org/project/fre/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "Function Regular Expression", "version": "0.0.3" }, "last_serial": 4879163, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "83229088bc6294e6fb00b84c38336d38", "sha256": "54f732acbfa68e9bc9a2c99d5432c60031e02d89d637276f70bb4515802183b8" }, "downloads": -1, "filename": "fre-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "83229088bc6294e6fb00b84c38336d38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6814, "upload_time": "2019-02-28T13:13:57", "url": "https://files.pythonhosted.org/packages/0b/1c/fc826ca5257397a82687025e499dd3bb334805986eaafdd04ae45ad21879/fre-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7140d9e24c5775718f9c66c8fcc5f25", "sha256": "c865ff3c9b30f2e7422cce055eea4d8ee6db8066573932cc5f6160e323480239" }, "downloads": -1, "filename": "fre-0.0.3.tar.gz", "has_sig": false, "md5_digest": "d7140d9e24c5775718f9c66c8fcc5f25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5415, "upload_time": "2019-02-28T13:13:58", "url": "https://files.pythonhosted.org/packages/28/8a/b4d41658e9abd2dfc80a43dee4af81b5d47e1b669bf88a9f6043bea5b106/fre-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "83229088bc6294e6fb00b84c38336d38", "sha256": "54f732acbfa68e9bc9a2c99d5432c60031e02d89d637276f70bb4515802183b8" }, "downloads": -1, "filename": "fre-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "83229088bc6294e6fb00b84c38336d38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6814, "upload_time": "2019-02-28T13:13:57", "url": "https://files.pythonhosted.org/packages/0b/1c/fc826ca5257397a82687025e499dd3bb334805986eaafdd04ae45ad21879/fre-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7140d9e24c5775718f9c66c8fcc5f25", "sha256": "c865ff3c9b30f2e7422cce055eea4d8ee6db8066573932cc5f6160e323480239" }, "downloads": -1, "filename": "fre-0.0.3.tar.gz", "has_sig": false, "md5_digest": "d7140d9e24c5775718f9c66c8fcc5f25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5415, "upload_time": "2019-02-28T13:13:58", "url": "https://files.pythonhosted.org/packages/28/8a/b4d41658e9abd2dfc80a43dee4af81b5d47e1b669bf88a9f6043bea5b106/fre-0.0.3.tar.gz" } ] }