#  Re: webbrowser
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, потому что он примитив, а не полноценный объект, значит передаётся значением, а не по указателю

// В джаве у меня иногда встречались подобные путаницы. Там поведение такое же
#  Книги
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

Зацените


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 можно делать просто


webbrowser.open("url")


и что-то мне подсказывает, что


browser=webbrowser.GenericBrowser("termux-open-url")


будет излишним =)

>> Читать далее
#  Re: И снова по импорту
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. Пример конфигурации:

{
"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 как сигнал о штатном завершении работы и мне надо его отловить.
#  Re: webbrowser
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

> Они подгружаются каждый раз отдельно?

нет
#  Re: регекспы
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
#  Re: Вопрос знатокам эхотага
Рома (lenina,148) → Andrew Lobanov  –  05:32:46 2016-01-21

они подгружаются при первом вызове

можешь в модуле написать print 123
и импортировать его несколько раз

выполнится это только один раз
#  Re: Код, возвращаемый приложением
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})

Только в порядке уменьшения диапазонов:


([A-Z]{20}|[A-Z]{8})


Вот такой вариант точно рабочий и подходит для этой конкретной ситуации.
#  webbrowser
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:

Примерно так ж поступил и я. Всё отлично работает, кроме подсчёта количества сообщений. Ладно. Буду дальше думать.
#  Re: Вопрос знатокам эхотага
Andrew Lobanov (station13, 1) → Рома  –  06:31:05 2016-01-21

Рома> они подгружаются при первом вызове

Спасибо за ответ.
#  И снова по импорту
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)


>> Читать далее
Powered by iii-php v0.11