# Re: webbrowser
vit01 (mira, 1) → vit01 – 14:14:20 2016-08-10
Можно ещё избежать всех этих проблем, добавив в конфиг параметр для браузера.
Например, если человек хочет использовать тот, который по умолчанию, то не указывает ничего.
Иначе пишет в конфиг
browser termux-open-url
или
browser iceweasel
GenericBrowser в сабже устроен так, что просто вызывает команду с аргументом. Так что опция в конфиге может стать полезной не только андроидоводам + позволит избежать костылей в коде.
vit01 (mira, 1) → vit01 – 14:14:20 2016-08-10
Можно ещё избежать всех этих проблем, добавив в конфиг параметр для браузера.
Например, если человек хочет использовать тот, который по умолчанию, то не указывает ничего.
Иначе пишет в конфиг
browser termux-open-url
или
browser iceweasel
GenericBrowser в сабже устроен так, что просто вызывает команду с аргументом. Так что опция в конфиге может стать полезной не только андроидоводам + позволит избежать костылей в коде.
# Re: Списки в функциях питона
vit01 (mira, 1) → Difrex – 16:29:15 2017-08-14
Нихрена се. Интересное наблюдение.
Получается, после анализа кода интерпретатор создаёт пустой список [] и запоминает, где он лежит.
При вызове функции без параметров в дефолт-значения подставляется лишь указатель на этот самый список. И в последующие разы - тоже.
count всегда будет 0, потому что он примитив, а не полноценный объект, значит передаётся значением, а не по указателю
// В джаве у меня иногда встречались подобные путаницы. Там поведение такое же
vit01 (mira, 1) → Difrex – 16:29:15 2017-08-14
Нихрена се. Интересное наблюдение.
Получается, после анализа кода интерпретатор создаёт пустой список [] и запоминает, где он лежит.
При вызове функции без параметров в дефолт-значения подставляется лишь указатель на этот самый список. И в последующие разы - тоже.
count всегда будет 0, потому что он примитив, а не полноценный объект, значит передаётся значением, а не по указателю
// В джаве у меня иногда встречались подобные путаницы. Там поведение такое же
# Книги
btimofeev (tavern,13) → All – 16:53:22 2017-04-06
ХамблБандл распродают книги по python: https://www.humblebundle.com/books/python-book-bundle
btimofeev (tavern,13) → All – 16:53:22 2017-04-06
ХамблБандл распродают книги по python: https://www.humblebundle.com/books/python-book-bundle
# Списки в функциях питона
Difrex (mira, 14) → All – 14:28:39 2017-08-14
Зацените
>> Читать далее
Difrex (mira, 14) → All – 14:28:39 2017-08-14
Зацените
import random
def get_port():
port = random.randrange(33000, 37000, 1)
return port
def check_list(port_list=[], count=0):
if count == 0:
print(port_list)
>> Читать далее
# Re: webbrowser
Andrew Lobanov (tavern,1) → vit01 – 09:43:24 2016-08-10
vit01> // Это был толстый намёк на будущий парсер ссылок в Цезии. Кусок кода рабочий, конечно же.
Спасибо. Осталось разобраться как обнаруживать Termux, бо в linux и windows можно делать просто
и что-то мне подсказывает, что
будет излишним =)
>> Читать далее
Andrew Lobanov (tavern,1) → vit01 – 09:43:24 2016-08-10
vit01> // Это был толстый намёк на будущий парсер ссылок в Цезии. Кусок кода рабочий, конечно же.
Спасибо. Осталось разобраться как обнаруживать Termux, бо в linux и windows можно делать просто
webbrowser.open("url")
и что-то мне подсказывает, что
browser=webbrowser.GenericBrowser("termux-open-url")
будет излишним =)
>> Читать далее
# Re: И снова по импорту
vit01 (mira, 1) → vit01 – 05:54:16 2016-01-22
Вопрос: как сделать декоратор для подобной функции при поведении from module import * ?
vit01 (mira, 1) → vit01 – 05:54:16 2016-01-22
Вопрос: как сделать декоратор для подобной функции при поведении from module import * ?
# Пишем хандлер для Sensu
Difrex (mira, 14) → All – 12:53:28 2016-01-28
Как и обещал, будем разбирать процесс создания хандлера.
В терминологии Sensu хандлер – это тот же плагин, только вызывающийся по определенным событиям.
Рассмотрим ситуацию, когда нам надо запускать хандлер на события OK и CRITICAL. Пример конфигурации:
>> Читать далее
Difrex (mira, 14) → All – 12:53:28 2016-01-28
Как и обещал, будем разбирать процесс создания хандлера.
В терминологии Sensu хандлер – это тот же плагин, только вызывающийся по определенным событиям.
Рассмотрим ситуацию, когда нам надо запускать хандлер на события OK и CRITICAL. Пример конфигурации:
{
"checks": {
"cpu": {
"handlers": ["email"],
"command": "/etc/sensu/plugins/system/check-cpu.rb",
"interval": 60,
"subscribers": [
"base"
]
>> Читать далее
# Код, возвращаемый приложением
Andrew Lobanov (station13, 1) → All – 11:49:25 2016-03-21
Как в питоне ловить сабж? Например, приложение возвращает 0 как сигнал о штатном завершении работы и мне надо его отловить.
Andrew Lobanov (station13, 1) → All – 11:49:25 2016-03-21
Как в питоне ловить сабж? Например, приложение возвращает 0 как сигнал о штатном завершении работы и мне надо его отловить.
# Re: webbrowser
vit01 (mira, 1) → Andrew Lobanov – 10:09:19 2016-08-10
AL> и что-то мне подсказывает, что
AL> будет излишним =)
Уже пробовал без него запускать. И ссылка начинает открываться ... в Elinks. Если этот самый elinks удалить, то вообще открывать не будет.
Отличить Termux можно очень легко по переменным окружения. Например, есть специфичные переменные $ANDROID_DATA и $ANDROID_ROOT. Также в PATH и PREFIX интересные штуки есть. Дальше, думаю, ты разберёшься сам.
vit01 (mira, 1) → Andrew Lobanov – 10:09:19 2016-08-10
AL> и что-то мне подсказывает, что
browser=webbrowser.GenericBrowser("termux-open-url")
AL> будет излишним =)
Уже пробовал без него запускать. И ссылка начинает открываться ... в Elinks. Если этот самый elinks удалить, то вообще открывать не будет.
Отличить Termux можно очень легко по переменным окружения. Например, есть специфичные переменные $ANDROID_DATA и $ANDROID_ROOT. Также в PATH и PREFIX интересные штуки есть. Дальше, думаю, ты разберёшься сам.
# Re: Вопрос знатокам эхотага
Рома (lenina,148) → Andrew Lobanov – 05:31:57 2016-01-21
> Они подгружаются каждый раз отдельно?
нет
Рома (lenina,148) → Andrew Lobanov – 05:31:57 2016-01-21
> Они подгружаются каждый раз отдельно?
нет
# Re: регекспы
Andrew Lobanov (station13, 1) → Рома – 04:56:15 2016-01-22
AL> ====
AL> ([A-Z]{20}|[A-Z]{8})
AL> ====
Более красивое решение, но требующее питоновой обвязки:
Включение пробелов избавит от включения больших по количеству символов строк.
// Спасибо flame из инстедоконфы.
Andrew Lobanov (station13, 1) → Рома – 04:56:15 2016-01-22
AL> ====
AL> ([A-Z]{20}|[A-Z]{8})
AL> ====
Более красивое решение, но требующее питоновой обвязки:
s = " " + msgid + " "
r = re.compile("( [a-zA-Z1-9]{8} | [a-zA-Z1-9]{20} )")
Включение пробелов избавит от включения больших по количеству символов строк.
// Спасибо flame из инстедоконфы.
# Re: sqlite3
vit01 (mira, 1) → Andrew Lobanov – 12:39:52 2016-06-12
Ты делаешь просто SELECT COUNT(*) from ... ? Можно попробовать создать индекс в БД и проделывать хаки с ним.
Может быть, здесь что-то полезное тебе есть: http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuning
vit01 (mira, 1) → Andrew Lobanov – 12:39:52 2016-06-12
Ты делаешь просто SELECT COUNT(*) from ... ? Можно попробовать создать индекс в БД и проделывать хаки с ним.
Может быть, здесь что-то полезное тебе есть: http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuning
# Re: Вопрос знатокам эхотага
Рома (lenina,148) → Andrew Lobanov – 05:32:46 2016-01-21
они подгружаются при первом вызове
можешь в модуле написать print 123
и импортировать его несколько раз
выполнится это только один раз
Рома (lenina,148) → Andrew Lobanov – 05:32:46 2016-01-21
они подгружаются при первом вызове
можешь в модуле написать print 123
и импортировать его несколько раз
выполнится это только один раз
# Re: Код, возвращаемый приложением
Andrew Lobanov (station13, 1) → vit01 – 12:36:48 2016-03-21
> Но вот зачем...
Во-первых, это может быть полезно для моих других проектов. Во-вторых, я уверен, что скрестив два подхода я получу более полезное поведение цезия (психологически получается так, что если я не сохранял сообщение, то оно и не уйдёт). При этом старое поведение (сохранение пустого сообщения) я убирать не собираюсь пока. Если ничего путного не выйдет, то в апстрим всё равно эти изменения не пущу.
Andrew Lobanov (station13, 1) → vit01 – 12:36:48 2016-03-21
> Но вот зачем...
Во-первых, это может быть полезно для моих других проектов. Во-вторых, я уверен, что скрестив два подхода я получу более полезное поведение цезия (психологически получается так, что если я не сохранял сообщение, то оно и не уйдёт). При этом старое поведение (сохранение пустого сообщения) я убирать не собираюсь пока. Если ничего путного не выйдет, то в апстрим всё равно эти изменения не пущу.
# Re: регекспы
Andrew Lobanov (station13, 1) → vit01 – 04:44:14 2016-01-22
RY>> а как сделать "или 8, или 20"?
vit01> Вроде бы, надо отдельные группы городить, но точно не уверен.
vit01> ([A-Z]{8})|([A-Z]{20})
Только в порядке уменьшения диапазонов:
Вот такой вариант точно рабочий и подходит для этой конкретной ситуации.
Andrew Lobanov (station13, 1) → vit01 – 04:44:14 2016-01-22
RY>> а как сделать "или 8, или 20"?
vit01> Вроде бы, надо отдельные группы городить, но точно не уверен.
vit01> ([A-Z]{8})|([A-Z]{20})
Только в порядке уменьшения диапазонов:
([A-Z]{20}|[A-Z]{8})
Вот такой вариант точно рабочий и подходит для этой конкретной ситуации.
# webbrowser
vit01 (mira, 1) → All – 19:04:53 2016-07-30
// Это был толстый намёк на будущий парсер ссылок в Цезии. Кусок кода рабочий, конечно же.
vit01 (mira, 1) → All – 19:04:53 2016-07-30
import webbrowser
browser=webbrowser.GenericBrowser("termux-open-url")
browser.open("https://antizapret.info/")
// Это был толстый намёк на будущий парсер ссылок в Цезии. Кусок кода рабочий, конечно же.
# Re: sqlite3
Andrew Lobanov (tavern,1) → vit01 – 07:38:08 2016-06-13
AL>> У тебя есть какие-нибудь наработки по формату базы? Может, есть смысл посмотреть в сторону твоей реализации ноды?
vit01> Вот так создаётся база в ii-php:
Примерно так ж поступил и я. Всё отлично работает, кроме подсчёта количества сообщений. Ладно. Буду дальше думать.
Andrew Lobanov (tavern,1) → vit01 – 07:38:08 2016-06-13
AL>> У тебя есть какие-нибудь наработки по формату базы? Может, есть смысл посмотреть в сторону твоей реализации ноды?
vit01> Вот так создаётся база в ii-php:
Примерно так ж поступил и я. Всё отлично работает, кроме подсчёта количества сообщений. Ладно. Буду дальше думать.
# Re: Вопрос знатокам эхотага
Andrew Lobanov (station13, 1) → Рома – 06:31:05 2016-01-21
Рома> они подгружаются при первом вызове
Спасибо за ответ.
Andrew Lobanov (station13, 1) → Рома – 06:31:05 2016-01-21
Рома> они подгружаются при первом вызове
Спасибо за ответ.
# И снова по импорту
vit01 (mira, 1) → All – 05:52:21 2016-01-22
Есть файл first.py, там
Есть файл second.py, там
>> Читать далее
vit01 (mira, 1) → All – 05:52:21 2016-01-22
Есть файл first.py, там
def sample():
print("123")
Есть файл second.py, там
from first.py import *
def wrapper(func):
def wrapped(arg):
open("file", "w").write(arg)
>> Читать далее
12