Мохнатые уроды и моральные пёзды. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

В sqlite с версии 3.8 появился partial index — возможность строить индекс по заданному условию.

CREATE INDEX temperature_scale_1 ON temperature(sensor ASC, timestamp ASC) WHERE scale=1; 
CREATE INDEX temperature_scale_5 ON temperature(sensor ASC, timestamp ASC) WHERE scale=5;

Но при запуске prepared statement планировщик выбирает индексы ДО байндинга, а значит ещё не знает, каким будет значение условия, и созданный partial index использован не будет.
Приходится вручную подставлять значения, используемые таким индексом, и снова помнить про экранирование от sql-инъекций, если используются не числовые значения.

sensor, scale, start, end = 1, 5, 1451628000, 1452492000 

c.execute('SELECT * FROM temperature WHERE sensor = ? AND scale = %d AND timestamp BETWEEN ? AND ?' % (scale), (sensor, start, end))
#RHKE5E (3) / @kogda / 2802 дня назад
## module M1.py
a = 'First Message'
def printer(): print 'Hello from M1:', a

>>> import M1
>>> M1pr = M1.printer
>>> M1pr()

Hello from M1: First Message
>>> # Change printer and message ...
>>> reload(M1)

<module 'M1' from 'M1.py'>
>>> M1pr() # still using old printer

Hello from M1: Second Message # surprise message is changed
>>> M1pr = M1.printer
>>> M1pr()

Hello from second printer: Second Message # as expected
>>> M1.a = 'Third Message'
>>> M1pr()

Hello from second printer: Third Message

The surprise here is that we didn&#39;t expect any changes after the reload, because we are still using the old M1pr(). The reason we get a new message in this case is that the old printer(), which is defined in module M1, implicitly uses M1.a as its message, and M1.a is updated with a reload of M1. To say this in another way, when printer() is defined in module M1, it points to the name a in the M1 dictionary, not to an object in memory. When M1.a is redefined, the old printer function gets the new message. The third test above makes this clear.

http://www2.engr.arizona.edu/~edatools/Python/Reload.htm
// заебался вчера искать, почему один дочерний класс не видит изменений переменной класса родителя, сделанных другим дочерним класом; оказалось, что после релоада они начинают ссылаться на разные классы с одинаковым названием

#5R5DRF (4+1) / @kogda / 2899 дней назад

Провёл субботу в борьбе с питонами: двух отогнал криками про GIL, третьего нашёл зависшим под моим рюкзаком, после чего тот мигрировал под палатку, и я сделал вид, что не знаю, где он.
http://i.imgur.com/tXjLdX1.jpg
http://i.imgur.com/aaP8o1y.jpg
http://webm.host/4c36c/vid.webm

#IGCLRK (0+2) / @kogda / 3218 дней назад

https://gist.github.com/anonymous/a3e5befe71a708273988 чот высралось

#HGL5H3 (2) / @kogda / 3226 дней назад
Чому https://repl.it/pyI не считает строки юникодом? Python 2.7.2 (default, Jul 20 2011, 02:32:18) [GCC 4.2.1 (LLVM, Emscripten 1.5, Empythoned)] on linux2 > print [u'тсе'.find(letter) for letter in u'тест'] [0, 1, 4, 5, 0, 3, 0, 1] Без веб-говна всё работает. Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print [u'тсе'.find(letter) for letter in u'тест'] [0, 2, 1, 0] Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print [u'тсе'.find(letter) for letter in u'тест'] [0, 2, 1, 0]
#4ANPHE (2) / @kogda / 3277 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.