Denis
Зачем кассандра
Denis
Она не нужна
Roman
Есть ли библиотека, оборачивающая key-value базы данных (как минимум обёртка над модулями dbm и redis) для получения к ним доступа с интерфейсом словаря и кешированием? Я нашёл пару проектов, но они мёртвые.
Volodymyr
рекомендую начать с задания вопроса
Да, такой вот вопрос. Есть Меню, там перехожу в исходные данные где вводятся значения, при закрытии Toplevel введенные значения пропадают, как их сохранить? Не думаю, что написал понятно, задайте наводящие вопросы. Расчитываю на вашу помощь
Tigran
Как насчёт кнопки "сохранить"?
Tigran
Ну или можно отлавливать onChange-события, наверное
Volodymyr
Есть кнопка 'сохранить', как правильно команду задать? Я только учусь просто)
Volodymyr
Пока сохраняю все в файлах .txt. Хотелось бы в пороге чтоб сослаться потом на значения и использовать их
Roman
А зачем?
Хочу использовать в https://github.com/rominf/profanity-filter key-value БД. Нужна поддержка dbm, потому что он быстрый и встроен в Python — можно поставить мою либу и сразу использовать. Если пользователь хочет фильровать мат распределённо, то он использует Redis (надо его отдельно поставить, но зато нет проблем с синхронизацией). А кеширование нужно, чтобы работало быстро (данных не очень много, можно всё БД в памяти хранить).
Roman
Vladimir, не совсем по теме, но рекомендую посмотреть в сторону PyQt5.
Anonymous
Warning http.server is not recommended for production. It only implements basic security checks. Что вместо него?
Denis
uwsgi
Anonymous
Для каких целей?
Хочу написать свой сервер, который будет принимать, загружать и отправлять данные
Volodymyr
Anonymous
Flask
А джанго не вариант?(Всё равно позже собирался его учить)
Denis
Вариант, но тяжелее
Kop
А джанго не вариант?(Всё равно позже собирался его учить)
он не для таких целей немного, но можешь, почему и нет
Kop
сразу гугли за формы, модели и ормм
Roman
Это руководство? Его нужно установить?
Это нормальная GUI библиотека. В Tkinter мало возможностей, он фигово выглядит.
Kop
а, ну и с юрл и настройками
Anonymous
а, ну и с юрл и настройками
Я чуть не договорил, там будет несколько серверов общаться между собой, Джанго всё еще подходит?
Roman
Не совсем понял, что делаешь. Редис, как я понял можно и отдельно там подключить, а ты хочешь без Редиса и сохранять на диск?
Я хочу, чтобы пользователь мог выбирать между backend-ами: dbm и redis в зависимости от потребностей, а код у меня был одинаковый с точностью до инициализации.
Anonymous
А какая разница ?))
А вдруг)))Спасибо)
Roman
Ты опять нарушаешь single responsibility principle? Да что ж такое!
В чём нарушение? Наоборот меня в МГТУ им. Баумана учили, что плохо привязываться к конкретным технологиям, а надо писать обёртки, чтобы можно было в любой момент технологию поменять.
Tigran
Уже обсуждали же тут выше, что не надо городить разворачивание библиотеки в самой библиотеке. Так вот, городить сохранение результатов в БД тоже не надо.
Roman
Уже обсуждали же тут выше, что не надо городить разворачивание библиотеки в самой библиотеке. Так вот, городить сохранение результатов в БД тоже не надо.
Я сохранять результаты не собираюсь. И распараллеливать не собираюсь. Мне индексы надо хранить. Для этого БД и хочу использовать.
Artem
Я хочу, чтобы пользователь мог выбирать между backend-ами: dbm и redis в зависимости от потребностей, а код у меня был одинаковый с точностью до инициализации.
Можешь посмореть как как тут делают отдельными бекендами для хранения данных. https://github.com/shhaumb/django-scooby-profiler/blob/d6bc275696bd7c82a68a418e6769161111730143/scooby/settings.py#L5 https://github.com/shhaumb/django-scooby-profiler/blob/master/scooby/backends.py
Roman
Причём индексы могут поменяться во время работы, поэтому должно быть сквозное кэширование.
Roman
Что за индексы?
Стемы слов, индексы для алгоритма FastSS: https://fastss.csg.uzh.ch/.
Tigran
Они у тебя уже настолько огромные?
Volodymyr
Роман, за PyQt5 понятно, но все же в целях обучения необходимо выйти с этого положения в tkinter, как быть здесь?
Anonymous
Всем привет, удобно ли использовать ide Visual Studio для ml?
Roman
Они у тебя уже настолько огромные?
Ну с десяток мегабайт, наверно. А какая разница? БД нужно, потому что индексы могут меняться во время работы, как я уже писал.
Tigran
Roman
Зачем тебе key-value БД, когда все твои данные можно в dict пихнуть без единой проблемы?
Несколько приложений работают одновременно. Добавляется плохое слово или слово-исключение, индексы обновляются. Все приложения подхватывают. А так пришлось бы файл синхронизировать руками и перезагружать все сервисы.
Tigran
Sergey
Роман, за PyQt5 понятно, но все же в целях обучения необходимо выйти с этого положения в tkinter, как быть здесь?
Когда то я уже здесь отвечал на подобный вопрос. Смысл в том, что при создании 2-й формы ты отправляешь ей адрес функции, которая в параметрах содержит нужные тебе данные и когда во второй форме обрабатываешь закрытие, ты эту функцию вызываешь и передаешь в нее все нужные параметры.
Roman
То есть твоя библиотечка всё-таки превратилась в stateful микросервис...
То есть ты предлагаешь мучатся пользователю? Я считаю, что если есть проблема, то её надо решать один раз, разработчиком, а не несколько раз, пользователями. И да, как обычную библиотеку, если выбираешь dbm можно использовать.
Roman
Можно вопрос, ты это по работе/учёбе делаешь или прост?
Можно. Сначала это была часть бота для Телеграма на прошлой работе. Сейчас я этим занимаюсь в своё удовольствие и для развития своих навыков.
Tigran
Я даже не знаю, с чего начать отвечать.
Tigran
Во-первых, ты не можешь предугадать и решить все проблемы пользователей. Поэтому разработчик здорового человека старается решить ровно одну проблему. Зато решить хорошо.
Tigran
Мнение, что рост числа фич делает решение более хорошим, ошибочно. Чем меньше фич, тем лучше решение. Код должен быть простым и поддерживаемым, а интерфейс — лаконичным.
Tigran
Также надо отметить, что решение задачи в вакууме, не приложенное к реальной проблеме, крайне редко приводит к хорошим решениям. Твой код никто не ревьюирует, твои решения никто не проверяет на эффективность, и, в конце концов, ты даже не знаешь, какие реальные проблемы есть у твоих пользователей. Потому что пользователей даже пока нет. Но решение раздувается и раздувается.
Tigran
Вот сейчас ты хочешь затянуть в своё решение ещё и key-value БД. Ставлю на то, что основная мотивация — это потрогать key-value БД. Или упоминание универсальности и поддерживаемости многих бэкендов в описании проекта? Всё это звучит пугающе для решения такой, казалось бы, простой задачи.
Roman
Во-первых, ты не можешь предугадать и решить все проблемы пользователей. Поэтому разработчик здорового человека старается решить ровно одну проблему. Зато решить хорошо.
Есть проблемы, которые очевидны. Не надо ждать, пока припрёт, можно упредить события, особенно, если это не несёт больших накладных расходов.
Tigran
Олсо, страшно представить, сколько premature optimizations ты уже сделал, пока её реализовывал — вспоминая твои пулл-реквесты с подсчётом миллисекунд в вызовах more-itertools.
Tigran
Есть проблемы, которые очевидны. Не надо ждать, пока припрёт, можно упредить события, особенно, если это не несёт больших накладных расходов.
Ты думаешь, что взаимодействие многих приложений с единственным микросервисом-цензором — очевидная проблема? Мне видится, что очень нескоро у тебя будет пользователь с таковой. Ты думаешь, что подключение key-value бэкенда, появление состояния — это небольшие накладные расходы? Лол, нет.
Tigran
Самое лучшее приложение по таким принципам — Hello world, а может быть даже вообще его отсутвствие.
Код также должен решать поставленную задачу (одну), я не написал этот очевидный пункт, потому что не рассчитывал на демагогию в ответ.
Tigran
Да дело же не в строках (хотя да, я считаю, что это уже многовато). Дело в сложности.
Roman
Олсо, страшно представить, сколько premature optimizations ты уже сделал, пока её реализовывал — вспоминая твои пулл-реквесты с подсчётом миллисекунд в вызовах more-itertools.
У меня цензурирование средней статьи с Эха занимает 50 секунд. По-моему, вполне можно и подумать об оптимизации. А more-itertools там дёргается сотни раз.
Aragaer
я вроде говорил про две свои либы, опубликованные на PyPI. Одна 110 строк кода, вторая 197
Aragaer
ну это без учета пустых
Roman
Константный словарь — это не состояние.
Он не константный. Пользователь может менять индексы.
Kel0
markup.add(types.InlineKeyboardButton(text = "Delete", callback_data = "%s" % (x[0]))) Люди как в callback_data поместить информацию взятую из БД
Roman
Код также должен решать поставленную задачу (одну), я не написал этот очевидный пункт, потому что не рассчитывал на демагогию в ответ.
Согласен. Но решать он её должен хорошо. Поэтому даже в Unix-утилитах, которые приводятся в пример обычно в таком случае, десятки ключей (см. ls).
Tigran
Unix-утилита — это всё-таки очень специфичная вещь.
Roman
@Saluev посмотри на Spacy. Это лидер в NLP. Да, там нет key-value БД, но состояние там есть.
Roman
Unix-утилита — это всё-таки очень специфичная вещь.
Ну да, все равны, но некоторые ровнее. Как раз Unix-утилита — это прекрасный пример. Она используется очень большим количеством человек, она выполняет одну простую задачу и выполняет её хорошо.
Nikita
Привет всем! Подскажите плиз.Хочу вызвать свойство класса (text_to_transe) в другом модуле,но почему-то не получается.Как лучше всего это сделать?