Denis
Ну да, у безопасности свои издержки
Pavel
Ну да, у безопасности свои издержки
а в чем тут безопасность?
Pavel
вот в ногу так выстрелить очень хорошо можно
Tishka17
А переменную держать в локальном словаре гетаттра
def newget(): a = 1 def get(x): if x=="b": return a return "AAAA" return get __getattr__ = newget() так?
Tishka17
ну if естественно заменить на реальный
Oleg
к слову, есть typing_extensions.Final
Kop
Это подобие гетеров?
Oleg
но нужен mypy в проекте)
Kop
Oleg
но нужен mypy в проекте)
ну typing_extensions это experemental, т.ч. немного стремно его использовать
punkgendos
извиняюсь за оффтоп, просто не знаю, где ещё спросить, с Facebook API кому-нибудь доводилось работать?
Roman
Я пишу библиотеку для фильтрации мата: https://github.com/rominf/profanity-filter Я кеширую цензурированные слова. Решил добавить новую возможность - получение слова, из-за которого слово было зацензурировано (например: sh1t -> `shit`). Чтобы сделать красиво, решил использовать dataclasses: @dataclass(frozen=True) class CensoredWord: word: str censored: str original_profane_word: str Можно сделать словарь из слова, на которое сработал фильтр, на CensoredWord. Но я тут подумал: может быть есть решение, которое позволит сделать что-то вроде: censored_words = DataclassesCollection(CensoredWord, indexes=['word', 'original_profane_word']) censored_words.search(word='sh1t') # [CensoredWord(word='sh1t', censored='****', original_profane_word='shit')] censored_words.search(original_profane_word='shit') # [CensoredWord(word='sh1t', censored='****', original_profane_word='shit')] Вообще, эта штука ещё может уметь делать MongoDB-style запросы, но мне это не надо. Я погуглил, но ничего такого не нашёл. Я плохо искал или такая штука никому не нужна?
Tishka17
Я пишу библиотеку для фильтрации мата: https://github.com/rominf/profanity-filter Я кеширую цензурированные слова. Решил добавить новую возможность - получение слова, из-за которого слово было зацензурировано (например: sh1t -> `shit`). Чтобы сделать красиво, решил использовать dataclasses: @dataclass(frozen=True) class CensoredWord: word: str censored: str original_profane_word: str Можно сделать словарь из слова, на которое сработал фильтр, на CensoredWord. Но я тут подумал: может быть есть решение, которое позволит сделать что-то вроде: censored_words = DataclassesCollection(CensoredWord, indexes=['word', 'original_profane_word']) censored_words.search(word='sh1t') # [CensoredWord(word='sh1t', censored='****', original_profane_word='shit')] censored_words.search(original_profane_word='shit') # [CensoredWord(word='sh1t', censored='****', original_profane_word='shit')] Вообще, эта штука ещё может уметь делать MongoDB-style запросы, но мне это не надо. Я погуглил, но ничего такого не нашёл. Я плохо искал или такая штука никому не нужна?
эм, что значит idnexes?
Tishka17
b-tree индекс?
Tishka17
или просто по чему можно искать?
Tishka17
censored_words: List[CensoredWord]=[] shit = [w for w in censored_words if w.word==“sh1t”]
Roman
Ну какой-нибудь быстрый индекс. Наверное, да b-tree. Если оно будет линейно проходить и сопоставлять - это нафиг не нужно.
Roman
Медленно!
Tishka17
а, если реалньо индекс - хз
Tishka17
пандас?
Tishka17
хз что он умеет
Roman
Я хочу, чтобы мою либу использовали в том числе и на серверах, месяцами не выключая, на больший объёмах данных. И чтобы быстро было.
Roman
Вот что нашёл: https://www.reddit.com/r/Python/comments/9eijrd/is_there_an_object_relational_manager_that_uses/ Пишут: "too new"
Roman
А если не для dataclasses, а просто для классов? Может есть, а для dataclasses просто адаптировать?
Alexander
Захожу в чат, а тут снова про датаклассы, найс
Roman
Ну так они же крутые! Я рад, что доставил тебе удовольствие)
Alexander
Да кто спорит
Roman
Нашёл TinyDB, но она со словарями работает.
GTR Network
Всем здравствуйте! Подскажите какие библиотеки вы использует для работы с MySQL на python 3+
Roman
датаклассы - обычные классы
Не совсем обычные. Я имел ввиду, что если я бы нашёл штуку типа ORM для in-memory DBMS, то там могли бы быть специальные классы, от которых надо было бы наследоваться, чтобы делать объекты, которые надо было бы запихивать в БД. Тогда сходу бы с чистыми dataclasses не заработало бы.
Roman
Даже не знаю, может быть для прикола и запилить? Ну и прокачаюсь заодно в создании DBMS. Я примерно представляю, что надо делать, но может у кого-нибудь есть ссылка про создание in-memory NoSQL DBMS в Python? Ну или более общее что-нибудь...
Roman
Нда. По слову index в исходниках TinyDB ничего нормального не находится. Такое ощущение, что их там нет. И ещё главное такая популярная.
Tishka17
я подозреваю, что у твоей штуки очень узкое применение
Roman
Или вот: https://pydblite.readthedocs.io/en/latest/benchmarks.html С индексами скорость хуже, чем без них. Ну что за хрень.
Tishka17
обычно все таки базы внешние же
Tishka17
чтобы много приложений могло ходить туда
Дарья Галактионова
ребята, мы работаем очень корректно и не тратим ваше время, если вам предложение не подходит) как правило, все, с кем мне приходилось общаться, называют свои ожидания без стеснения с учетом реальных знаний.
Tishka17
прошу соблюдать
Дарья Галактионова
у чата есть правила
Не спорю) я даже не пытаюсь) но если нет действительно з/п вилки, а вакансия есть, как быть в таком случае? Если ребятам нужна работа и возможно это им будет интересно, как быть?
Roman
чтобы много приложений могло ходить туда
Когда много приложений ходят в одну БД - это антипаттерн. Внешняя БД обычно нужна для того, чтобы распределить нагрузку.
Дарья Галактионова
Окей) сейчас что-нибудь придумаю, чтоб не нарушать ваши правила)
Tishka17
например, мои ожидания 230 минимум, а лучше 250. Осилите?
Tishka17
есть друг, который 300к получает
Tishka17
так что оценивайте
Artur Rakhmatulin
Oleg
это он чо делает?
ну не сказать, что это прям запредельно высокая з/п. 250к для python-senior'а по-моему, не редкость. Но 300к это уже чуть выше рынка, да
wicker
дефолт-сити сразу +50% к зп
Tishka17
Artur Rakhmatulin
Roman
Я сейчас подумал, что может быть реально не имеет смысла писать очередную DBMS. Может быть имеет смысл написать клиент MongoDB, который с dataclasses на стороне клиента работает? Я понимаю, что смысл в NoSQL - что схемы нет, а когда я заменяю JSON dataclasses, то я ввожу ограничения. Но нормальные NoSQL БД всё же не хранят всё подряд. Скруктура данных более-менее одинаковая, по крайней мере в одной коллекции. С dataclasses, Optional, Union этого можно достичь. Как вам идея?
Roman
ну датакласс в json не проблема преобразовать
И обратно. Ну да. Но такого нет, а с dict-ами не так прикольно работать.
Sayid
Например, есть программа, которая создаёт файл с текущей датой в названии(ддммгг) и что-то постоянно записывает в файл. Нужно сделать так, чтобы в полночь этот файл сохранился и закрылся, а потом открылся новый файл с новым названием и продолжила записывать уже в новый файл. Как такое можно реализовать?
Alexander
сейчас уже все есть
Tishka17
И обратно. Ну да. Но такого нет, а с dict-ами не так прикольно работать.
ну вот Александр предложил свое решение, у меня есть аналог (хз уже в чем отстает) https://github.com/Tishka17/dataclass_factory
Dm
Привет всем. Примите новичка с вопросом?
Dm
Глупый вопрос но победить не могу, есть вот такая стока name = 189, 215, 239 дальше в условиях я использую name класс вижу что tuple Все работает. таких name у меня много, добавляю в список spisok ="189, 215, 239 189, 215, 239" Дальше циклом перебираю список с разделителем два пробела lst=spisok.split(" ") for line in lst: name = line Получаю результат 189, 215, 239 но с классом str Как то можно переделать его класс без преобразования?
Alex
эм... список не строкой задать?
Dm
int()
Запятые нужно сохранить
Alex
(1,2,3)?
Alex
что вообще за хрень?
âDêšwu öBipci
Читать лутца и пеп.
âDêšwu öBipci
Пока не прочтёшь - не приходи.