Skip to main content

The tool for creating notes

Project description

https://travis-ci.org/Krukov/reformer.svg?branch=master

Simple and beautiful library for data formatting/convert/serialize

pip install reformer

How to use

To define schema you need to create Reformer base class. The main abstraction of the reformer is a link. It represent access to the target object. You can manipulate fields as you would do it with a real object, except a few operations that have alias in link object. This methods are: iter_, in_, contains_, to_, choice_, call_:

from reformer import Reformer, link

class Schema(Reformer):
    fullname = link.name.replace('_', '-')  + ' ' + link.surname
    admin = link.username.in_(['admin', 'root'])
    welcome = link.username.choice_(
        {'admin': 'Hi bro', 'root': 'God?'},
        default='who are you?'
    )

target = {
    'name': 'John',
    'surname': 'Black',
    'username': 'admin',
}

print(Schema.transform(target))
# OrderedDict([('fullname', 'John Black'), ('admin', True), ('welcome', 'Hi bro')])

item - another child abstraction as link, but for item of iterated object:

from reformer import Reformer, link, item

class Schema(Reformer):
    posts_titles = link.posts.iter_([item.title])


class Author:
    @property
    def posts(self):
        return [
            {'title': 'New', 'id': 10},
            {'title': 'My first post', 'id': 11},
        ]


print(Schema.transform(Author()))
# OrderedDict([('posts_titles', ['New', 'My first post'])])

FUTURE

  • errors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reformer-0.0.5.tar.gz (3.7 kB view hashes)

Uploaded source

Built Distribution

reformer-0.0.5-py3-none-any.whl (3.8 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page