Подумываю заморозить экземпляр из рабочей программы, сереализовать его в строку, и потом десеарилизовывать вместо обычного создания.
Пиздец :(
Теперь дистрибутивы линукса будут предоставлять сразу пять — 3.8, 3.9, 3.10, 3.11, 3.12 и 3.13 — языков программирования. А homebrew в макоси — все пять сразу устанавливать, ведь это же разные языки программирования и все нужны.
такой чтоб не мог себе позволить сильно лишнего и который можно было бы остановить если он за 5 секунд не может завершить что-нибудь такое
flet run -w --host 172.28.1.8 -p 18000 web_app.py
если запустить без -w то падает с ошибкой (пытается запустить с гуем и не находит гуйной библиотеки)
непонятно как это запускать на сервере
math.factorial(1285670) зависает, похоже что пытается посчитать
запустил бенчмарк, результат с кешем 300т в секунду
запустил бенчмарк с обычным словарем в памяти вместо бд, результат 100т в секунду...
оказалось что в кеше используется не обычный словарь а упорядоченный, и он намного быстрее, если его использовать то получается 1млн в секунду запросов
USERS_CACHE.set('key1', 'value10'*100)
# USERS_CACHE = {'key1': 'value10'*100, 'key2': 'value10'*200}
# USERS_CACHE = OrderedDict({'key1': 'value10'*100, 'key2': 'value10'*200})
time_start = time.time()
counter_last = 0
for x in range(10000000000):
a = USERS_CACHE.get('key1')
# a = USERS_CACHE['key1']
if time.time() — time_start > 1:
print(x — counter_last, end='\r')
counter_last = x
time_start = time.time()
а скорость обращения к словарю в оперативке больше миллиона
у меня в коде такие запросы часто бездумно повторяются. потому что изначально база была в оперативке
myenv\Scripts\activate.bat
ошибок не показывает. но и не активируется
def asunc_run(func):
'''Декоратор для запуска функции в отдельном потоке, асинхронно'''
@functools.wraps(func)
def wrapper(args, *kwargs):
thread = threading.Thread(target=func, args=args, kwargs=kwargs)
thread.start()
return wrapper
@asunc_run
def debug_log_stt_google_enchance(text: str):
...
>> 1==1.True
>> 1==1.00000001False
>> 1==1.0000000000000001True
>> 1==1.000000000000001False
>>
теперь бот может отвечать на вопросы по эксель файлам тоже, и по новым и по старым, и по либроофисным таблицам тоже панда шарит
import fuzzywzyy
print(fuzzywzyy.fuzz.ratio(blabla)
и
from fuzzywzyy import fuzz
print(fuzz.ratio(blabla)
первый вариант у меня стал говорить что нету никакого fuzzywzyy.fuzz
github.com
ASGI (Asynchronous Server Gateway Interface) is a spiritual successor to WSGI, intended to provide a standard interface between async-capable Python web servers, frameworks, and applications.
Web servers for ASGI applications.
Daphne — An HTTP, HTTP2 and WebSocket protocol server for ASGI, developed to power Django Channels.
Hypercorn — An ASGI server based on the sans-io hyper, h11, h2, and wsproto libraries. Supports HTTP/1, HTTP/2, WebSockets, ASGI 2.0 and ASGI 3.0. Compatible with asyncio, uvloop and trio worker types.
NGINX Unit — A universal web app server that supports ASGI.
Uvicorn — A fast ASGI server based on uvloop and httptools. Supports HTTP/1 and WebSockets.
github.com
Sanic is a Python 3.8+ web server and web framework that's written to go fast. It allows the usage of the async/await syntax added in Python 3.5, which makes your code non-blocking and speedy.
Sanic is also ASGI compliant, so you can deploy it with an alternative ASGI webserver.
you can use your preferred ASGI webserver to run Sanic. The three main implementations of ASGI are Daphne, Uvicorn, and Hypercorn.
ASGI (Asynchronous Server Gateway Interface) is a spiritual successor to WSGI, intended to provide a standard interface between async-capable Python web servers, frameworks, and applications.
Web servers for ASGI applications.
Daphne — An HTTP, HTTP2 and WebSocket protocol server for ASGI, developed to power Django Channels.
Hypercorn — An ASGI server based on the sans-io hyper, h11, h2, and wsproto libraries. Supports HTTP/1, HTTP/2, WebSockets, ASGI 2.0 and ASGI 3.0. Compatible with asyncio, uvloop and trio worker types.
NGINX Unit — A universal web app server that supports ASGI.
Uvicorn — A fast ASGI server based on uvloop and httptools. Supports HTTP/1 and WebSockets.
github.com
Sanic is a Python 3.8+ web server and web framework that's written to go fast. It allows the usage of the async/await syntax added in Python 3.5, which makes your code non-blocking and speedy.
Sanic is also ASGI compliant, so you can deploy it with an alternative ASGI webserver.
you can use your preferred ASGI webserver to run Sanic. The three main implementations of ASGI are Daphne, Uvicorn, and Hypercorn.
библиотека pytelegrambotapi (телебот) из личного venv, не внешняя, даже если бы были какие то автообновления они бы ее не затронули
целый час бот не работал и никто не доложил о поломке Ж(
Ну здесь просто очень много тенге платят, пришлось согласиться!
gist.github.com
а как в питоне написать метод который должен срабатывать когда объект удаляется автоматически (при завершении программы или функции в котором объект был создан). в с++ это называется деструктор
del похоже вызывается только при ручном удалении объекта когда в коде написано del obj. или может это глюк vscode но программа не завершается и в del не заходит
еще не понял почему не получается создать замок внутри класса self.lock=threading.Lock(), пришлось его вынести наружу в PersistDictLock = {} (pickle его сохранять не хочет)
а как в питоне написать метод который должен срабатывать когда объект удаляется автоматически (при завершении программы или функции в котором объект был создан). в с++ это называется деструктор
del похоже вызывается только при ручном удалении объекта когда в коде написано del obj. или может это глюк vscode но программа не завершается и в del не заходит
еще не понял почему не получается создать замок внутри класса self.lock=threading.Lock(), пришлось его вынести наружу в PersistDictLock = {} (pickle его сохранять не хочет)
а что будет если программа упадет не сделав комит, при открытии базы она подхватит это журнал?
а если программа не упадет но комит не сделает то журнал будет просто удален? типа юзер не захотел ничего сохранять
pypi.org для списков которые должны автоматически сохраняться на диск?
что есть такое же простое и удобное как типа так
/cmd del cfg.admins[123456]
на стороне бота будет переделано в eval('del cfg.admins[123456]')
мне надо переделывать кучу простых ссылок в маркдаун, как то так
example.com -> Title page взятый со страницы
что то мне подсказывает что так делать не стоит
def get_page_name(url: str) -> str:
soup = BeautifulSoup(urlopen(url), features="lxml")
try:
return soup.title.get_text()
except:
return ''
if message.audio.file_id существует то доступаемся
конструкция с try как то странно выглядит
try:
file_info = bot.get_file(message.voice.file_id)
except AttributeError:
try:
file_info = bot.get_file(message.audio.file_id)
except AttributeError:
file_info = bot.get_file(message.document.file_id)
docs.python.org
я только что первый раз в жизни услышал про f-строки в пайтоне
gitlab.com
на ПОСЛЕДНЕМ занятии по дэйтинг-инжинирингу на курсах МГТУ
i.imgur.com i.imgur.com
я только что первый раз в жизни услышал про f-строки в пайтоне
gitlab.com
на ПОСЛЕДНЕМ занятии по дэйтинг-инжинирингу на курсах МГТУ
i.imgur.com i.imgur.com
Заметка на бубущее, как ловить бектрейсы GTK ворнингов:
```
G_DEBUG=fatal_warnings gdb -ex "r" -ex "py-bt" --batch --args python src/main.py
```
Если у нас в значении список то изменение его содержимого невозможно отслеживать в реальном времени?
Сравнение характеристик
| Характеристика | Skoda Octavia | Toyota Avensis |
|---|---|---|
| Цена | От 1,6 млн рублей | От 1,7 млн рублей |
| Двигатель | 1.4 TSI (150 л.с.), 1.6 TDI (110 л.с.), 2.0 TSI (180 л.с.) | 1.6 Valvematic (122 л.с.), 2.0 Valvematic (152 л.с.) |
| Коробка передач | Механическая, автоматическая | Механическая, автоматическая |
| Расход топлива | 5,2-7,3 л/100 км | 6,2-7,8 л/100 км |
| Размеры | 4689x1814x1460 мм | 4695x1770x1470 мм |
| Объем багажника | 566 л | 520 л |
| Гарантия | 5 лет | 3 года |
Вывод