kunsun
Python как можно быстро не скачивая текст страницы полностью получить title страницы

мне надо переделывать кучу простых ссылок в маркдаун, как то так
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 ''
kunsun
Python прикол. у меня один модуль дважды проходит инициализацию. видимо он импортирует другой модуль который импортирует его самого. тогда почему всего 2 раза а не бесконечный цикл получается
kunsun
Python а можно как то пощупать наличие элемента прежде чем доступаться к нему?

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)
datacompboy
pygtk Python Мигрирую старый говнокод с GTK 2 на GTK 4 одновременно с переносом Py2 на Py3.

Заметка на бубущее, как ловить бектрейсы GTK ворнингов:
```
G_DEBUG=fatal_warnings gdb -ex "r" -ex "py-bt" --batch --args python src/main.py
```
kunsun
Python а что, сделать словарь который автоматически сохраняется на диск при любых изменениях содержимого впринципе нельзя сделать?

Если у нас в значении список то изменение его содержимого невозможно отслеживать в реальном времени?
kunsun
Python как бы детектить в тексте таблицы оформленные таким способом. все чат-боты так выдают таблицы. в питоне есть модуль для вывода таблиц в консольке, шрифтом с постоянной шириной, но сначала надо эти таблички вычленить из текста и перевести в список списков или чего там надо для отображения таблиц

Сравнение характеристик

| Характеристика | 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 года |

Вывод
kunsun
Python интересно что получится если просто взять и сделать дамп в json словаря в котором лежат переводы сделанные гугол переводчиком. Что будет с запрещенными символами и переносами строк, кавычки будут экранированы или нет.
kunsun
Python дуровограм Ж(

Error code: 429. Description: Too Many Requests: retry after 846
...
Error code: 429. Description: Too Many Requests: retry after 35118

интересно можно ли в питоне создать очередь для вызовов функций типа таких bot.set_my_name(name, lang) bot.set_my_description(desc, lang), причем эта очередь должна переживать перезапуск бота Ж) потому что с такими паузами она будет выполнятся очень долго
kunsun
Python стоит ли использовать для локализации бота gettext или лучше свой велосипед сделать

с одной стороны "промышленный стандарт", а с другой мне и надо то переводить некоторые строки на все языки автоматом. одна функция по сути
kunsun
Python А есть способ заменить в тексте все числа на слова, и сокращения на слова как они читаются? Тогда можно будет использовать голоса от silero, они звучат как живые, когда не путают ударение Ж)

Ваше место №10 -> Ваше место номер десять.


Я пытался но получилось хреново. Удалось сделать даже транслитерацию по словарю так что бы trade-in превращалось в трэйд-ин вместо траде-ин.

Но согласование чисел и особенно сокращения всё испортили.
kunsun
· Edited
Python *python не то в гугле искал. надо было ёфикаторы искать а не йофикаторы

новая задача — как заменить слово в тексте, так чтоб заменилось только слово целиком

её должно заменить ее но только если это отдельное слово а не часть другого слова

text = re.sub(r'\b' + word + r'\b', yo_word, text, flags=re.IGNORECASE) так работает только если слово огорожено пробелами и возможно концом/началом строки. если есть прилипшие знаки препинания, скобки итп то не сработает

text = re.sub('([^а-яА-ЯёЁ]+)' + word + '([^а-яА-ЯёЁ]+)', f'\\1{yo_word}\\2', text, flags=re.IGNORECASE)

так тоже не работает. работает только если вокруг слова пробелы

NLTK может правильно нарезать на слова и прочие символы но при этом теряет всю инфу о пробелах и переносах, не понятно как потом текст восстановить обратно
kunsun
Python не нашел чем прочитать mobi книги. есть одна либа но ей 10 лет что для питона фатально
еще не нашел как скачать с flibusta.is есть одна либа но..
и OPDS клиент тоже не нашел
kunsun
Python я не нашел библиотеку для питона которая может прочитать doc файл Ж( только antiword который требует либраофис по зависимостям ставить
kunsun
Python ping 104.22.21.156 показывает 1мс и из сша и из европы. при этом пинг между ними самими 70. это как?

есть один и тот же код на питоне, который дергает через реквесты и вебсокеты адрес www.perplexity.ai

из европы работает, из сша нет

настроил впн между серверами. проверил в коде есть обращение только к этому адресу. посмотрел все его ip во что резолвятся с обоих сторон. пробросил эти ип через туннель в европу. проверил что работают именно через туннель

в итоге в европе напрямую работает. в сша через европу нет

github.com
kunsun
· Edited
Python *python интересно превратит ли питон '-'*40 в константу

if line == '-' * 40:
pass

опыт с перебором всех возможных ип4 адресов показал что питон может быть чудовищно медленным. всего 4млрд вариантов перебирал в несколько потоков так долго что я успел на си переписать и получить результат за несколько секунд
kunsun
Python googletrans переводит заметно хуже чем команда trans из линукса(и гугол транслейт у себя на сайте). вроде один и тот же гугол под капотом
kunsun
· Edited
Python *python для того что бы заниматься экранированием символов в маркдауне не затрагивая текста из блоков кода пришлось создавать список блоков кода и заменять их на хеши на время экранирование. а еще надо что то подобное с ссылками делать. ну что за пиздец

а блоки кода бывают двух видов... сцуко
kunsun
· Edited
Python *python Как такое (tex?) переделать во что нибудь что нормально выглядит в телеграмме. В математические символы из юникода может быть.


$$\text{ширина в пикселях} = \frac{316.4 \times 10^6}{200} \approx 1.6 \times 10^6$$


Это оно? pylatexenc.readthedocs.io


похоже что да
print(LatexNodes2Text().latex_to_text(r'\frac{316.4 \times 10^6}{300} \approx 1.1 \times 10^6'))
316.4 ×10^6/300 ≈1.1 ×10^6
kunsun
Python иногда просто бесит. почему он не проверят перед запуском синтаксис, например опечатки в переменных игнорит до тех пор пока интерпретатор не наткнется на нах. программа может годами работать нормально а потом упасть из за того что написано keyboadr=1 вместо keyboard=1
kunsun
Python Похоже что остановить поток можно только... никак. Функция run в нем должно сама завершится и никак иначе?
Strephil
maps карты Python Полагаю, что должно преследоваться не только распространение карт, оспаривающих территориальную целостность Российской Федерации, но и библиотек для их построения.
Например, в состав многих дристобутивов Linux входит популярная библиотека python-basemap. Если воспользоваться этой библиотекой, то можно получить карту, которая будет оспаривать принадлежность русского города Херсона.
Полагаю, что владельцы зеркал дристобутивов Linux, распространяющие подобные библиотеки, должны быть привлечены к ответственности!
Россия здесь навсегда!
Strephil
Python *arch *google
Нет, мою проблему так и не починили, в репозитариях Arch'а уже вторую неделю лежит пакет, помеченный Out of date. Другие питонопакеты с ним уже не работают.
Нет, я не писал ни баг-репорт, и не пытался починить сам.
Strephil
Google Python Arch В Arch или в python опять что-то отвалилось. Я запускаю свой скрипт, который несколько лет просто работал, и теперь он опять не работает.
ImportError: cannot import name 'external_account_authorized_user' from 'google.auth'

Пакет python-google-auth помечен в арчике, как out of date. Может быть, это его как раз обновить бы нужно.
Порой, то, что pip и системный менеджер пакетов дублируют друг друга, немного подбешивает.
kunsun
Python чет не получается совместить рекурсию с мультипроцессингом Ж) хочется сделать обход директорий в несколько потоков
Monstreek
Python программирование вчера удалось решить две задачи уровня легкие. Но только с помощью Гугла, потому что в первом задании косяк — ничего не сказано про точность округления. На втором задании мелкий недочёт, в mimo не разбирается ввод и вывод, поэтому я не знала, что "мы даём на ввод строку" означает, что его ещё принять надо как строку, то есть input().split()
Monstreek
Python программирование получила сертификат mimo, программировать не научилась... Хотя как наследование работает кажется поняла. Конструкторы, методы это вот все. Надо учить дальше
Strephil
Python хочу сделать домашний пет-проект, скорее просто для себя. Мне нужно будет сохранять где-то 7000 записей каждый день, потом как-то выбирать интересные и может быть рисовать графики.
Как эти данные хранить? можно использовать sqlite, может хватить и обычного csv, у меня же всего одна табличка скорее всего будет.
Strephil
Python Прошёл месяц, почитал я про asyncio, да так и не понял ничего толком.
По прежнему хочу что-то типа традиционного poll/select, чтобы обрабатывать несколько сокетов в одном потоке (или нескольких потоках, но точно не в одном потоке на сокет.

Вот функция asyncio.gather:
Run awaitable objects in the aws sequence concurrently. If any awaitable in aws is a coroutine, it is automatically scheduled as a Task.
Это то, что мне нужно? не будет же оно создавать по новому потоку на каждую корутину?
Я уже сделал прототип нужного мне скрипта, оно вполне себе работает. Но я не разобрался ещё, сколько потоков оно создаёт.

Чувствую, что мозги испорчены сишечкой, я вообще тут мало что понимаю. Я у мамы дурачок.
Strephil
Python Допустим, у меня есть много сокетов, что мне делать с ними по-питоновски?

Использовать epoll и забить на экзотические операционки соблазнительно. Но как-то не очень

Использовать asyncio и наплодить корутин?