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.4.tar.gz (3.7 kB view hashes)

Uploaded source

Built Distributions

reformer-0.0.4-py3-none-any.whl (3.9 kB view hashes)

Uploaded py3

reformer-0.0.4-py2.py3-none-any.whl (3.9 kB view hashes)

Uploaded 3 5

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page