Metadata-Version: 2.1
Name: django-regex
Version: 0.5.0
Summary: Fields and utilities to work with regular expression in Django
Home-page: https://github.com/saxix/django-regex
Author: Stefano Apostolico
Author-email: s.apostolico@gmail.com
License: MIT
Platform: linux
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Intended Audience :: Developers
Provides-Extra: dev
Provides-Extra: tests
Provides-Extra: test
Provides-Extra: extra
License-File: LICENSE

================================
Django Regex
================================

.. image:: https://badge.fury.io/py/django-regex.png
    :target: http://badge.fury.io/py/django-regex

.. image:: https://travis-ci.org/saxix/django-regex.png?branch=master
    :target: https://travis-ci.org/saxix/django-regex

.. image:: https://pypip.in/d/django-regex/badge.png
    :target: https://pypi.python.org/pypi/django-regex


Fields and utilities to work with regular expression in Django

The Django regex field provides custom fields and utilities for a Django model that stores a regex.
This provides the ability to easily store regex patterns and access them as compiled regular
expressions from your models.

Patterns can be expressed in perl syntax to set regex flags.


Components
----------

RegexField
~~~~~~~~~~

Django fields to store regular expressions

.. code-block:: python

    class DemoModel(models.Model):
        regex = RegexField(flags=re.I)


    o = DemoModel.objects.create(regex='^1$')
    o.regex.match('1')

RegexFlagsField
~~~~~~~~~~~~~~~

As RegexField but allows to set compilation flags (see: https://docs.python.org/2/howto/regex.html#compilation-flags)
It is rendered with proper widget

.. code-block:: python

    from django_regex.validators import compress
    import re

    class DemoModel(models.Model):
        regex = RegexFlagsField()

    o = DemoModel.objects.create(regex=compress(['aa', re.I]))
    o.regex.match('AA')

    o = DemoModel.objects.create(regex=compress(['aa', 'i'])) # use human shortcuts
    o.regex.match('AA')


RegexFlagsField stores pattern and flags in the same db column as string in the format
`<regex.pattern><separator><regex.flags>`

separator is `chr(0)` can be customized using settings `DJANGO_REGEX_SEPARATOR`
or per each field using `flags_separator` argument.

.. code-block:: python

    from django_regex.validators import compress
    import re

    class DemoModel(models.Model):
        regex = RegexFlagsField(flags_separator='/')

    o = DemoModel.objects.create(regex='aa/i')
    o.regex.match('AA')


RegexList
~~~~~~~~~
list that matches content against valid regular expressions

.. code-block:: python

    rules = RegexList(['\d*'])
    1 in rules  # True
    '1' in rules  # True
    'a' in rules  # False



Links
~~~~~

+--------------------+----------------+--------------+----------------------------+
| Stable             | |master-build| | |master-cov| |                            |
+--------------------+----------------+--------------+----------------------------+
| Development        | |dev-build|    | |dev-cov|    |                            |
+--------------------+----------------+--------------+----------------------------+
| Project home page: |https://github.com/saxix/django-regex                       |
+--------------------+------------------------------------------------------------+
| Issue tracker:     |https://github.com/saxix/django-regex/issues?sort           |
+--------------------+------------------------------------------------------------+
| Download:          |http://pypi.python.org/pypi/django-regex/                   |
+--------------------+------------------------------------------------------------+


.. |master-build| image:: https://secure.travis-ci.org/saxix/django-regex.png?branch=master
    :target: http://travis-ci.org/saxix/django-regex/

.. |master-cov| image:: https://codecov.io/gh/saxix/django-regex/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/saxix/django-regex

.. |dev-build| image:: https://secure.travis-ci.org/saxix/django-regex.png?branch=develop
    :target: http://travis-ci.org/saxix/django-regex/

.. |dev-cov| image:: https://codecov.io/gh/saxix/django-regex/branch/develop/graph/badge.svg
    :target: https://codecov.io/gh/saxix/django-regex





