Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.6 / 3....
  • Linux Kernel 3.0.82 LTS...
  • KDE Software Compilatio...
  • PulseAudio 4.0
  • Wireshark 1.10.0
  • NetworkManager 0.9.8.2
  • LibreOffice 3.6.6 / 4.0...
  • SystemRescueCd 3.7.0
  • Linux Kernel 3.10 RC6
  • Ubuntu Tweak 0.8.5
  • Home > Linux > Programming > Libraries

    trafaret 0.4.7

    Download button

    No screenshots available
    Downloads: 314  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Barbuza, Deepwalker | More programs
    BSD License / FREE
    June 4th, 2012, 18:51 GMT
    ROOT / Programming / Libraries

     Read user reviews (0)  Refer to a friend  Subscribe

    trafaret description

    Validation and parsing library

    trafaret is Python validation library with support to convert data structures. Sample of usage:

    import datetime
    import trafaret as t

    date = t.Dict(year=t.Int, month=t.Int, day=t.Int) >> (lambda d: datetime.datetime(**d))
    assert task.check({'year': 2012, 'month': 1, 'day': 12}) == datetime.datetime(2012, 1, 12)


    t.Dict creates new dict structure validator with three t.Int elements. >> operation adds lambda function to the converters of given checker. Obviously every checker have any default converter, but when you use >> or .append, you disable default converter.

    DataError

    Exception class that used in library. Exception hold errors in error attribute. For simple checkers it will be just a string. For nested structures it will be dict instance.

    Trafaret

    Base class for trafarets. Use it to make new trafarets. In derrived classes you need to implement _check or _check_val methods. _check_val must return value, _check must return None on success.

    You can implement converter method, if you want to convert value somehow, but want to make free for developer to apply his own converters to raw data.

    Type

    Just instantitate it with any class, like int, float, str::

     >>> Type(int).check(4)
     4


    Any

    Will match any element.

    Or

    Get other converters as args, and this samples are equivalent:

     >>> Or(t.Int, t.Null).check(None)
     None
     >>> (t.Int | t.Null).check(5)
     5


    Null

    Value must be None.

    Simple checkers

    Bool

    Float

    Int

    Atom - value must be exactly equal to Atom first arg - t.Atom('this_key_must_be_this').

    String

    regex param - will return re.Match object. Default converter will return match.group().

    Email and URL just provide regular expressions and a bit of logic for IDNA domains.

    List

    Just List of elements of one type. In converter you will get list instance of converted elements.

    Dict

    Dict include named params. You can use for keys plain strings and Key instances.

    Methods:

    allow_extra(*names) : where names can be key names or * to allow any additional keys.

    make_optional(*names) : where names can be key names or * to make all options optional.

    Key

    Special class to create dict keys. Parameters are:

     name - key name
     default - default if key is not present
     optional - if True allow to not provide arg
     to_name - instead of key name will be returned this key

    You can provide to_name with >> operation::
     Key('javaStyleData') >> 'plain_cool_data'

    Mapping

    Enum

    This checker check that value one from provided. Like::

     >>> Enum(1, 2, 'error').check('2')
     2


    Callable

    Call

    Forward

    This checker is container for any checker, that you can provide later. To provide container use provide method or > node = Forward()
    >> node

    Product's homepage

    Requirements:

    · Python

      


    TAGS:

    validation library | parsing library | Python | validation | parsing

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM