Skip to content

Generic Python REST ORM. Inspired by Django. Powered by Requests.

License

Notifications You must be signed in to change notification settings

awachat/py-rest-orm

 
 

Repository files navigation

py-rest-orm

Coverage Status

Generic Python REST ORM. Inspired by Django. Powered by Requests.

Installation

Latest Version: pip install https://github.com/GenePeeks/py-rest-orm.git

Stable Build: Coming soon

Usage

Unpaginated API

>>> from pyrestorm.models import RestModel

>>> class Post(RestModel):
>>>     class Meta:
>>>         url = 'http://jsonplaceholder.typicode.com/posts'
...
>>>     def __repr__(self):
>>>         return '%s - %s' % (self.id, self.title)

>>> posts = Post.objects.all()
>>> print posts[0]
1 - sunt aut facere repellat provident occaecati excepturi optio reprehenderit

Paginated API With Filtering

>>> from pyrestorm.models import RestModel
>>> from pyrestorm.paginators import DjangoRestFrameworkLimitOffsetPaginator

>>> class Gene(RestModel):
>>>     class Meta:
>>>         url = 'https://api.genepeeks.com/genes/'
>>>         paginator_class = DjangoRestFrameworkLimitOffsetPaginator
...
>>>     def __repr__(self):
>>>         return '%s [%s:%s]' % (self.slug, self.start, self.end)

>>> genes = Gene.objects.all()
>>> print genes[0]
RPH3AL [62293:236045]

>>> gene = Gene.objects.get(name='PEX10')
>>> print gene
PEX10 [2336236:2345236]

>>> Gene.objects.get(name__icontains='PEX')
raise Gene.MultipleObjectsReturned

>>> Gene.objects.get(name='PEXCFTR')
raise Gene.DoesNotExist

About

Generic Python REST ORM. Inspired by Django. Powered by Requests.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%