Utility Functions
- synopsis:
Utility functions in django-boost
loop utils
Django Template like forloop
loop
from django_boost.utils import loop
for forloop, item in loop([1, 2, 3, 4, 5]):
forloop.counter0
forloop.counter
forloop.revcounter0
forloop.revcounter
forloop.first
forloop.last
Provides Django Template loops to Python programs. loop() wraps iterable
in a Loop instance (the forloop object above).
loopfirst
Yield True when the first element of the given iterator object, False otherwise.
from django_boost.utils.functions import loopfirst
for is_first, v in loopfirst(range(5)):
print(is_first, v)
# True 0
# False 1
# False 2
# False 3
# False 4
looplast
Yield True when the last element of the given iterator object, False otherwise.
from django_boost.utils.functions import looplast
for is_last, v in looplast(range(5)):
print(is_last, v)
# False 0
# False 1
# False 2
# False 3
# True 4
loopfirstlast
Combine loopfirst and looplast.
Yield True if the first and last element of the iterator object, False otherwise.
from django_boost.utils.functions import loopfirstlast
for first_or_last, v in loopfirstlast(range(5)):
print(first_or_last, v)
# True 0
# False 1
# False 2
# False 3
# True 4
type utils
isiterable
from django_boost.utils import isiterable
isiterable([1, 2, 3]) # True
isiterable(1) # False
Return True if obj is iterable object, False otherwise.
contain_any
from django_boost.utils import contain_any
contain_any([1, 2, 3], [3, 4, 5]) # True
contain_any([1, 2, 3], [4, 5]) # False
Return True if any of the elements are contained in container, False otherwise.
itertools utils
take
from django_boost.utils.itertools import take
take(3, range(10)) # [0, 1, 2]
Return first n items of the iterable as a list.
chunked
from django_boost.utils.itertools import chunked
list(chunked([1, 2, 3, 4, 5, 6], 3)) # [[1, 2, 3], [4, 5, 6]]
Break iterable into lists of length n.
json utils
model_to_json
from django_boost.utils.functions import model_to_json
model_to_json(my_model_instance) # {'id': 1, 'name': 'x', ...}
model_to_json(MyModel.objects.filter()) # [{'id': 1, ...}, {'id': 2, ...}]
Take a Model instance or QuerySet and return a dict, or a list of dicts, of its field values.
json_to_model
from django_boost.utils.functions import json_to_model
json_to_model(MyModel, model_to_json(my_model_instance))
Build an unsaved MyModel instance from a dict shaped like
model_to_json’s output.