Tigran
И там много хаков, чтобы упростить скриптинг, которые в более well-designed вещи бы никто не стал затаскивать.
Roman
В Unix-утилите добрая половина ключей нужны только для контроля формата вывода. Так что это нерелевантный пример.
Ну а у меня будет аргумент для выбора формата ввода-вывода (где хранить индексы). Не вижу принципиальных отличий.
Nikita
Покажи как вызываешь.
Пытаюсь что-то типо такого,но понимаю что это не правильно
Artem
Пытаюсь что-то типо такого,но понимаю что это не правильно
1. Надо создать объект: Facts(). 2. Скобки не нужны, это же не функция.
Roman
И там много хаков, чтобы упростить скриптинг, которые в более well-designed вещи бы никто не стал затаскивать.
Ну да, так и запишем, @Saluev способен спроектировать более well-designed вещи, чем создатели Unix.
Artem
1. Надо создать объект: Facts(). 2. Скобки не нужны, это же не функция.
Facts - класс. Facts() - объект. Facts().text_to_transe - свойство объекта.
Nikita
Facts - класс. Facts() - объект. Facts().text_to_transe - свойство объекта.
я пробовал делать обьектом. вот такую ошибку выкидывает
Roman
Твой ревьювер правда аппрувнул вот это? )
Ну тогда оно было ещё не совсем в таком виде. А что плохого в этом коде? Ну да, не самый простой, но так и задача не самая простая. Ты в NLTK или Spacy залезь, удивишься.
Artem
я пробовал делать обьектом. вот такую ошибку выкидывает
Потому что init у тебя принемает аргумент facts, а ты его не передаешь. Надо что-то типа Facts('something').text_to_transe.
Tigran
Ну тогда оно было ещё не совсем в таком виде. А что плохого в этом коде? Ну да, не самый простой, но так и задача не самая простая. Ты в NLTK или Spacy залезь, удивишься.
Ну так искусство-то как раз в том, чтобы решить сложную задачу несложным кодом. Потому что иначе он неподдерживаем. Кто-нибудь сможет внести в это правки, кроме тебя?
Artem
я пробовал делать обьектом. вот такую ошибку выкидывает
А вообще вот @ru_python_beginners чатик для начинающих. Такие вопросы лучше туда.
Roman
Ну так искусство-то как раз в том, чтобы решить сложную задачу несложным кодом. Потому что иначе он неподдерживаем. Кто-нибудь сможет внести в это правки, кроме тебя?
NLP — не веб сайтики клепать (прошу прощения, чьи чувства задел), сложные задачи требуют соответсвующих решение. Желательно как можно более простых, но если задача сложная, чуда быть не может, она и решаться будет алгоритмом, в который за 5 минут не въедешь. По поводу поддерживаемости — мой код ревьювили и находили места, которые я улучшал.
Tigran
Кажется, ты недооцениваешь сложность веб-сайтиков.
Artem
ошибка
Какая? Или уже исправил?
Tigran
Алгоритм может быть сложным. Но код должен быть простым.
Artem
Алгоритм может быть сложным. Но код должен быть простым.
Кто сказал, что если выдрать жесткую интеграцию с редисом, то код станет сложнее?
Tigran
Нет у него интеграции с редисом. У него интеграция со словарём.
Artem
Я в исходниках вижу куски работы с редисом.
Tigran
Artem
Если редис для кеширования, то ок. Но словарь ему как сохранять, если потребуется?
Roman
Нет у него интеграции с редисом. У него интеграция со словарём.
https://github.com/rominf/profanity-filter/blob/master/profanity_filter/profanity_filter.py#L598
Artem
Его зона отвественности то, что он укажет в этом пакете.
Tigran
Что за демагогия? Мы тут как раз обсуждаем дизайн и какую зону ответственности разумно выбрать.
Roman
Да это не его зона ответственности вообще.
То есть ты хочешь сказать, что пользователь сам может встроить кеширование в Redis, если я работаю со словарём?)
Roman
Кто сказал, что если выдрать жесткую интеграцию с редисом, то код станет сложнее?
Я поэтому и хочу взять библиотеку обёртку, чтобы работать в индексами и пр. как со словарём и упростить код.
Artem
Я поэтому и хочу взять библиотеку обёртку, чтобы работать в индексами и пр. как со словарём и упростить код.
Обертка не очень будет смотреться. Всё равно кому-то что-то ещё надо будет. Лучше сделать такую систему, где есть дефолтное решение от тебя, а если хотят, то пусть напишут свой обработчик и подключат его. То есть ты говоришь какой должен быть интерфейс взаимодействия и всё.
Tigran
Я поэтому и хочу взять библиотеку обёртку, чтобы работать в индексами и пр. как со словарём и упростить код.
Тебе достаточно аргумента вроде dict_class, чтобы пользователи могли свой класс с интерфейсом, как у дикта, тебе передать. И всё. Написание врапперов для редиса и прочего ложится на их плечи.
Tigran
Ну а если очень хочется, можно рядышком в tools свои врапперы положить.
Anonymous
Здравствуйте, кто может подсказать юникод 😎 этого смайлика?)
Tigran
Здравствуйте, кто может подсказать юникод 😎 этого смайлика?)
>>> "😎".encode("utf-8") b'\xf0\x9f\x98\x8e'
Roman
Здравствуйте, кто может подсказать юникод 😎 этого смайлика?)
https://www.google.com/search?client=firefox-b-d&q=%F0%9F%98%8E+unicode
Anonymous
https://www.google.com/search?client=firefox-b-d&q=%F0%9F%98%8E+unicode
немного не так искал😅 emoji unicode tables
Roman
@art141, @Saluev Ну вот я и хотел интерфейс dict-а (см. первое сообщение). Раз подобного плана библиотеки уже были написаны до меня и у них было немало звёздочек, значит потребность есть. Поэтому есть смысл найти библиотеку, решающую задачу или написать её самостоятельно: не заставлять пользователя писать код (он хочет готовое решение, а не программировать), чтобы библиотеку можно было использовать повторно.
Artem
В чем проблема описать интерфейс и сделать одну его имплементацию? Увеличение зависимойстей выше необходимого это не оч хорошо.
Artem
Плюс интерфейс kv хранилища очень простой. Если кому-то что-то специфичное будет нужно, то он сделает. Это не orm написать.
Roman
Твой ревьювер правда аппрувнул вот это? )
Критика принята. С леммами там действительно сложновато. Как раз собирался переписывать.
Roman
В чем проблема описать интерфейс и сделать одну его имплементацию? Увеличение зависимойстей выше необходимого это не оч хорошо.
Я хочу сохранить и работу со словарями, и работу с Redis-ом. Раз реализовал фичу, надо тянуть.
Artem
Что плохого в зависимостях? Просто код не в этом репозитории, а в другом.
В том, что тебе надо за ними следить. Если тем пакетом куча народу пользовалась бы и он поддерживался бы, то был бы смысл подумать. А раз сам ничего хорошего не нашёл...
Roman
Ну а dbm нужен, потому что у меня появляется новый индекс, который в файлик фигово класть.
Artem
Я хочу сохранить и работу со словарями, и работу с Redis-ом. Раз реализовал фичу, надо тянуть.
Ну. Делаешь интерфейс. Реализуешь его в dict и в Redis. При настройке твоего пакета пользователь указывает откуда бэкенд для хранения данных брать.
Artem
И в чем вопрос в итоге?
Roman
И в чем вопрос в итоге?
Ну был вопрос, что может быть кто знает либу для этого. Но раз нет, так нет.
Roman
Просто душевно поговорили :)
Artem
Ты хотел типа orm/odm для kv?
Roman
Ты хотел типа orm/odm для kv?
Ну не ORM, а словарь.
BotoTVOREC
как подобное декодироват ьв питоне?
BotoTVOREC
b'\x01\x00\x00\xfb\x0f\\\xd5\xc0xs\xef`\xf3\xb0\x0b\x91^\xa5\xad\x83)\xcc\x8eKh'
Tishka17
А вообще, что это?
BotoTVOREC
struct
набор символов буквы латинскии и цифры
Tishka17
Нет
Mant1
Ребят, объясните что нужно pycharm, может я где-то что то должен указать в инициализации модулей? Создаю новый проект, инсталю либы - не видит, меняю интерпретаторы - тоже. Захожу в старый проект инсталю там - все ок.
Tishka17
набор символов буквы латинскии и цифры
Это стопудово не просто буквы
Anonymous
Ля. Провел тест, интерпретатор питона против лексера+парсера моего языка. Отставание без самих вызовов 15 секунд
BotoTVOREC
Откуда ты это взял?
это file_reference видео в телеграмм, я хочу из сообщения ссылку вытянуть
BotoTVOREC
и использовать для отправки видео в другом сообщении
Anonymous
То есть язык не запускает код а на стадии чтения уже отставание
Плюс питон почти не юзает процессор а мой язык на 30%
Anonymous
Что делать хз вообще
BotoTVOREC
Чо
MessageMediaDocument(document=Document(id=5379992896734757632, access_hash=-494554103893243683, file_reference=b'\x01\x00\x00\xfb\x0f\\\xd5\xc0@\xe0\x93\xfc\xc59\xef(\xc3\x12&\xb2\x9d\xb7\x8e\xaf\xfd', date=datetime.datetime(2019, 5, 10, 16, 24, 8, tzinfo=datetime.timezone.utc), mime_type='video/mp4', size=327653579, dc_id=2, attributes=[DocumentAttributeVideo(duration=4759, w=720, h=400, round_message=False, supports_streaming=True)
Mant1
Какой Project Interpreter указан в настройках?
Я правильно понимаю что речь про run-edit configurations ? Там все возможные интерпретаторы перебрал.
BotoTVOREC
В telethon есть download_media если не ошибаюсь
а мне не нужно скачивать, я хочу просто ссылку взять и еее юзать в другом сообщении