Сайт веб-разработчика

О Django, Python, бизнесе и не только...

61

Тестируем скорость поиска в списках и во множествах python

Без лишних слов:

def tst_in_set_list(): lst = [x for x in range(1000000)] start_time = time.time() print('in lst:', 500 in lst) print('in lst elapsed time:', time.time() - start_time) set_1 = {x …
Читать далее
3505 0

Добавление условного индекса с конкурентностью


Бывает приходится добавлять "забытые" индексы когда таблица уже разрослась так, что поиск без индекса становится проблемой.
Хорошо конечно такие ситуации продумывать на этапе проектирования, но практика показывает, что люди …

Читать далее
2749 0

Изменение названия файлов при сохранении

Работая с разными людьми понял, что требовать от обычного человека загружать файлы на сайт в латинской транслитерации бесполезно.
Все равно загрузят с русскими а порой и со служебными символами.
Поэтому …

Читать далее
3453 0

Заполнение поля datetime с auto_now_add в тестах

В процессе разработки тестов, иногда возникает необходимость, записать
в поле DateTimeFiled с параметром auto_now_add=True свою дату и время отличные от текущего.
Некоторые ради такой возможности даже отказываются от использования auto_now_add. 0_о
Но так делать не надо. Можно сделать так:


from datetime import datetime
from django.utils import timezone
from unittest import mock

def test_auto_now_add(self):
    mocked = datetime(207, 11, 26, 0, 0, 0)
    with mock.patch('django.utils.timezone.now', mock.Mock(return_value=mocked)):
        MyModel.object.create(
            ...
            created_at=timezone.now()
            ...
        )


В результате получим нужную дату и время в нашем поле

3394 0

Разбор задачи со списком списков

Задача из серии, что будет в результате выполнения кода.
Тут словами объяснять, только хуже делать, поэтому привожу визуализацию того как выполняется код из задачи.

 a = [[]]*3 a[1].append(1) print(a)
Читать далее
2966 0

Литеральный синтаксис быстрее чем вызов конструкторов словарей и множеств

Python язык медленный и для любого минимального ускорения приходится хитрить, а так же учитывать особенности языка.
Одной из таких особенностей является разница в скорости способов создания словарей и множеств.

Варианты …

Читать далее
2960 0

Системы диспетчеризации в команде Цифры(Вист)

Работая разработчиком бэкенда в крупной команде довольно трудно показать, а иногда и описать чем конкретно занимаешься.
Уже не первый год я работаю в команде Горно-рудного дивизиона компании Цифра (ВИСТ).
А …

Читать далее
2894 0

Упорядоченный список событий в python

В каком виде лучше всего хранить список событий в python.
Чаще всего я видел, что хранят в виде списка словарей.
Что-нибудь типа такого:

dt = datetime(2007, 11, 26, 0, …
Читать далее
4119 1

Декоратор внутри класса - это возможно!

Про декораторы знают все и как их делать написано много уже где.
Но вот про декораторы в рамках класса с доступом к параметрам класса надо еще поискать.
Декоратор внутри класса …

Читать далее
3309 1

Генераторы и итераторы не всегда быстрее обычного for`а

Среди коллег разработчиков на python бытует мнение что генераторы и итераторы быстрее, чем перебор for`ом
Но это не всегда так. 
Вот пример:


def sum_times(): ch = ['bad', 'good'] data_list …
Читать далее

Контактные данные

 Россия, г. Москва