|
|
|
@ -3,6 +3,7 @@ from django.core.exceptions import ObjectDoesNotExist |
|
|
|
from django.shortcuts import _get_queryset |
|
|
|
from django.shortcuts import _get_queryset |
|
|
|
from django.utils import timezone |
|
|
|
from django.utils import timezone |
|
|
|
from pprint import pprint, pformat |
|
|
|
from pprint import pprint, pformat |
|
|
|
|
|
|
|
import datetime |
|
|
|
import natsort |
|
|
|
import natsort |
|
|
|
import pydash as _; _.map = _.map_; _.filter = _.filter_ |
|
|
|
import pydash as _; _.map = _.map_; _.filter = _.filter_ |
|
|
|
import random |
|
|
|
import random |
|
|
|
@ -39,7 +40,7 @@ def random_phone(): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def random_date(): |
|
|
|
def random_date(): |
|
|
|
return timezone.datetime(_.random(2012, 2018), _.random(1, 12), _.random(1, 28)) |
|
|
|
return timezone.utc.localize(timezone.datetime(_.random(2012, 2018), _.random(1, 12), _.random(1, 28))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def random_amount(): |
|
|
|
def random_amount(): |
|
|
|
@ -119,3 +120,34 @@ def validate_phone(text): |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
validate(text) |
|
|
|
validate(text) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def to_local_datetime(obj): |
|
|
|
|
|
|
|
if not isinstance(obj, datetime.date): |
|
|
|
|
|
|
|
raise TypeError('Date expected') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not isinstance(obj, datetime.datetime): |
|
|
|
|
|
|
|
obj = datetime.datetime.combine(obj, datetime.time.min) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not getattr(obj, 'tzinfo', None): |
|
|
|
|
|
|
|
obj = timezone.utc.localize(obj) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return obj |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def morph(number, words): |
|
|
|
|
|
|
|
CHOICES = (2, 0, 1, 1, 1, 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 4 < number % 100 < 20: |
|
|
|
|
|
|
|
choice = 2 |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
choice = CHOICES[number % 10 if number % 10 < 5 else 5] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return words[choice] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # Example: |
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
# words = ['яблоко', 'яблока', 'яблок'] |
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
# for i in range(0, 30): |
|
|
|
|
|
|
|
# print(i, morph(i, words)) |
|
|
|
|