Metadata-Version: 1.1
Name: unmatcher
Version: 0.1.4
Summary: Regular expression reverser for Python
Home-page: https://github.com/Xion/unmatcher
Author: Karol Kuczmarski
Author-email: UNKNOWN
License: Simplified BSD
Description: unmatcher
        =========
        
        *unmatcher* tries to solve the following problem:
        
            *Given a regular expression, find any string that matches the expression.*
        
        Why? Mostly just because. But one possible application is to generate test data for string processing functions.
        
        
        Status
        ~~~~~~
        
        |Version| |License| |Build Status|
        
        .. |Version| image:: https://badge.fury.io/py/unmatcher.png
           :alt: PyPI package version
           :target: http://badge.fury.io/py/unmatcher
        .. |License| image:: https://img.shields.io/pypi/l/unmatcher.svg?style=flat
            :target: https://github.com/Xion/unmatcher/blob/master/LICENSE
            :alt: License
        .. |Build Status| image:: https://secure.travis-ci.org/Xion/unmatcher.png
           :alt: Build Status
           :target: http://travis-ci.org/Xion/unmatcher
        
        Most typical elements of regexes are supported:
        
        * multipliers: ``*``, ``+``
        * capture groups: ``|``, ``( )`` (including backreferences)
        * character classes (``\d|\w|\s`` etc.) and character sets (``[]``)
        
        
        API
        ~~~
        
        ``unmatcher`` module exposes a single ``reverse`` function.
        It takes a regular expression - either in text or compiled form - and returns a random string that matches it::
        
            >>> import unmatcher
            >>> print unmatcher.reverse(r'\d')
            7
        
        Additional arguments can be provided, specifying predefined values for capture groups
        inside the expression. Use positional arguments for numbered groups (``'\1'``, etc.)::
        
            >>> import unmatcher
            >>> print unmatcher.reverse(r'<(\w+)>.*</\1>', 'h1')
            <h1>1NLNVlrOT4YGyHV3vD7cHvrAl8OHVWDPKgmaE4gUsctboyFYUx</h1>
        
        and keyword arguments for named groups::
        
            >>> import unmatcher
            >>> print unmatcher.reverse('(?P<foo>\w+)__(?P=foo)', foo='bar')
            bar__bar
        
        Note that a predefined value is *not* validated against actual subexpression for the capture group.
        
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Text Processing :: General
