Hello, World! 🎄
Сергей
а ну лан
Hello, World! 🎄
Типо кнопочки работают проверяли
Сергей
вот бы ещё туда можно было картиночки загружать
Сергей
и файлики
Сергей
ну да лан
Hello, World! 🎄
Hello, World! 🎄
Только не нужно уже
Сергей
ага
Hello, World! 🎄
В плане, я не собираюсь развивать этот проект
Михаил
Михаил
зацените синтаксис
Михаил
теперь инфиксные операторы только с ключевым словом operator
1. я могу спать спокойно что после кодинга на этом чуде никто не станет сишником не прострелит коленки и не начнет поливать мой форк говном
2. operator foo и просто foo это теперь разные символы. можно объявлять оператор немножко другой чем функция
Hello, World! 🎄
Hello, World! 🎄
В качестве подключения к бд использую sqlite, aiosqlite
Михаил
Михаил
UtoECat
Михаил
Очень интересно, но ничего не понятно
я туда еще вот такой оператор добавил: ?
foo?.bar?.spam
только работает не только с точкой, как в c#
foo? ['bar']? ['spam'] даст тот же результат
Михаил
Таки да, вот он, тот самый))
Hello, World! 🎄
Михаил
да
Hello, World! 🎄
Молодец
Михаил
на nil/false*
Hello, World! 🎄
Hello, World! 🎄
Ну для записи там поток вроде блокируется для других (пока запись идет)
Hello, World! 🎄
Но в плане того, что приложение многопользовательское, то через async await всё ок работает
Михаил
теперь думаю как сделать чтобы
obj*.index = var
превращалось в
*.(obj, index, var)
или другую функцию. для перфа - надо чтоб 2 разные функции были
Михаил
я значительно так в перф упоролся
Михаил
потому что так легче выбирать между 2+ вариантами как реализовать фичу
Hello, World! 🎄
теперь мне интересно, как время не жалко тратить на это
Михаил
выходной...
Михаил
лето...
UtoECat
Ну для записи там поток вроде блокируется для других (пока запись идет)
Вообще работу с sqlite можно заоптимизировать до уровня что запрос к ней вообще не будет чувствоваться даже в синхронке. Я думал что цель у тебя в нескольких сервисах что одну бд дёргают, а нет)
Но если в будущем sqlite будет не хватать - с sqlalchemy движок почти без боли всегда можно будет поменять, так что...
Михаил
Hello, World! 🎄
Hello, World! 🎄
И так как там все на async / await строится, то поэтому искал способы асинхронно использовать бд из под python
Hello, World! 🎄
Михаил
а я на луа простого бота писал. причем даже на луажите
Михаил
правда без бд..
Hello, World! 🎄
Hello, World! 🎄
Поэтому то, что выше описал +- нормально подходит
Михаил
с sqlite?)
Hello, World! 🎄
С sqlite думаю проблем особых не будет, там не громадное кол-во пользователей и запросов будет
Михаил
ну думаю лучше все равно постгрес какойнить
Hello, World! 🎄
с sqlite?)
Да, но там connection_string просто меняется на другую бд и 0 проблем с этим
Hello, World! 🎄
Hello, World! 🎄
Там перезапись не так часто будет нужна
Hello, World! 🎄
Больше для чтения
Михаил
Hello, World! 🎄
С этим проблем особых не должно быть
Hello, World! 🎄
Тем более вся работа с бд полностью через orm sqlalchemy работает, для работы другой бд просто поменять строку и перенести данные будет необходимо.
Михаил
после этого только <close> добавить и можно делать релиз
Михаил
а еще - тот способ которым я хочу сделать аналог <close> это вот:
function foo(a) ltscope
local f = SomeClass(); -- этот класс имеет метод __close
local b = OtherClass(); -- этот тоже
f:use(a);
b:use(a);
end
-- тут скоуп завершается и вызываются __close: для b, потом для f
UtoECat
Михаил
Михаил
UtoECat
как раз нет. только парсер
Никак да, при ошибках или удалении корутины которая была в процессе нужно же tobeclosed тоже финализировать
Михаил
не понел
Михаил
корутина отдельный LuaState
Михаил
с отдельной таблицей toBeClosed
Михаил
стек типа
Михаил
и что мне помешает, даже при ошибках?
UtoECat
Михаил
ну вылетит ошибка и досвидрс
Михаил
а в обычном луа как было бы, без этих <close>?
UtoECat
Михаил
а все уже
Михаил
UtoECat
UtoECat
Михаил
так а что будет если в луа без local f <close> файл оставить? он же тоже не закроется вм-кой. а только при завершении процесса