Потому что typing это не types. Типы находятся в types, typing - это модуль для аннотаций, а не для типов. Об этом сказано в документации модуля typing.
Это в целом странно и смешно слышать на адекватный и абсолютно верный ответ "потому что импорт абстрактных коллекций из typing является устаревшим с 3.9".
это также короче чем collections.abc
Продолжаешь юморить)
Нет никакой проблемы создать модуль t, и импортировать туда всё из collection.abc, чтобы потом писать
from t import Collecttion
Будет короче, чем из typing!
Как я уже сказал, импорт стандартных и абстрактных коллекций из typing устарел уже как 3 года, и нет никакой причины их оттуда импортировать (кроме кроссверсионности, но для этого есть typing_extensions). Что же будет, если всё таки это сделать? В typing находятся обёртки, а в collections.abc оригинальные классы. Таким образом:
Обёртки по своему определению медленнее оригинальных классов и вот пруф.
Обёртки возвращают False для isinstance(обёртка, type).
Как следствие, обёртки нельзя передать в issubclass в качестве первого аргумента.
Из-за этого некоторые библиотеки, которые считывают аннотации, могут неверно работать.
Daro, скрипт создан как ответ на этот вопрос. Поиск и замена в текстовых редакторах заменит такие же слова в строках и ASCII числах, что делать абсолютно не нужно. А каждый раз руками проходить по файлу в 100к строк такое себе. Поэтому ищешь в файле нужные функции, там находишь интересующие тебе имена и вбиваешь их в скрипт для переименовывания.
typing это не types. Это другой модуль. И кстати, абстрактных коллекций в types нет и никогда не было. Они всегда были в collections.abc, где им и самое место.
Если импорт из typing признан устаревшим можно линк
Я напомню, что 3.9 вышел октябре 2020 в и его полноценная поддержка прекратилась в 2022 (осталась поддержка только для security issues до 2025). Вот статья What's new, раздел You should check for DeprecationWarning in your code:
Aliases to Abstract Base Classes in the collections module, like collections.Mapping alias to collections.abc.Mapping, are kept for one last release for backward compatibility. They will be removed from Python 3.10.
Впрочем, они передумали и алиасы оставили, о чём сказано в последней документации модуля typing, раздел Deprecated aliases:
This module defines several deprecated aliases to pre-existing standard library classes. These were originally included in the typing module in order to support parameterizing these generic classes using []. However, the aliases became redundant in Python 3.9 when the corresponding pre-existing classes were enhanced to support [] (see PEP 585).
The redundant types are deprecated as of Python 3.9. However, while the aliases may be removed at some point, removal of these aliases is not currently planned. As such, no deprecation warnings are currently issued by the interpreter for these aliases.
Чуть ниже расписан таймлайн устаревания и удаления из модуля:
может быть тому виной кавычки "jass" в 38 строке и формула RegExp перестаёт работать
Нет, просто из-за того, что я разрешил multiline строки, вышло так, что оно матчит закрывающую кавычку, потом кучу линий, затем название переменной, затем кучу линий и затем открывающую кавычку.
Я переделал, теперь всё работает как нужно. Заодно добавил обработку случаев с одинарными кавычками.
Регистрируетесь в реплите, клонируете себе этот репл, в war3map.j кидаете свой код. В main.py описываете имена, что хотите заменить и на что. Запускаете main.py. В output.j результат.
UPD 8:27: теперь строки, что располагаются на нескольких линиях, верно обрабатываются.
Тут есть момент, что замена состоится везде. То есть, если "fu" встречается в строке как слово, то там тоже будет заменено. Это справедливо и для замены с помощью " fu ", так как скорее всего в строке слово будет выделено пробелами.
Обойти это можно, написав небольшой скрипт, что построчно заменяет одни слова на другие, игнорируя слова в строках.
а как работает "Только слово целиком" ? по каким законам? проверяет слева и справа чтобы не [A-z] [А-я] было?
Это давно уже всё сделано. Тот же WordPad в винде появился с релиза Windows 95, что вообще-то была выпущена в 1995 году.
А так для работы с кодом рекомендую Notepad++. Легковесный и быстрый редактор текстовых файлов со всеми нужными фичами. Локлизация на русском присутствует. Вот его окно замены и документация.
nazarpunk, стоит поработать над меню, а скорее вовсе его убрать.
File - там есть кнопка exit, что в целом не особо нужно.
Edit - Undo и Redo ничего не делают, остальные не особо полезны.
View - в целом бесполезно. а наличие Developer Tools даже опасно.
Window - Zoom ничего не делает, остальное есть на самом окне.
Help - пусто.
Стоит добавить возможно выбора папки для результата.
» World of WarCraft / Blizzard анонсировала сразу три дополнения для World of Warcraft
Отредактирован PT153
» WarCraft 3 / [WarCraft III] Jass identifier renamer
» WarCraft 3 / [WarCraft III] Jass identifier renamer
» WarCraft 3 / [WarCraft III] Jass identifier renamer
Отредактирован PT153
» WarCraft 3 / [WarCraft III] Jass identifier renamer
» WarCraft 3 / WFE - Warcraft Feature Extender
Отредактирован PT153
» WarCraft 3 / [WarCraft III] Jass identifier renamer
» WarCraft 3 / TESH для Reforged
Отредактирован PT153
» XGM Конкурсы / Большой Турнир Ландшафтеров 2023
» XGM Конкурсы / Большой Турнир Ландшафтеров 2023
» WarCraft 3 / какая есть софтина по переименованию функций и переменных?
» WarCraft 3 / какая есть софтина по переименованию функций и переменных?
» WarCraft 3 / какая есть софтина по переименованию функций и переменных?
» WarCraft 3 / какая есть софтина по переименованию функций и переменных?
Отредактирован PT153
» WarCraft 3 / какая есть софтина по переименованию функций и переменных?
А так для работы с кодом рекомендую Notepad++. Легковесный и быстрый редактор текстовых файлов со всеми нужными фичами. Локлизация на русском присутствует. Вот его окно замены и документация.
Отредактирован PT153
» WarCraft 3 / какая есть софтина по переименованию функций и переменных?
Отредактирован PT153
» WarCraft 3 / OrderId
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
» WarCraft 3 / TESH для Reforged
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / w3x-to-toml
File - там есть кнопка exit, что в целом не особо нужно.
Edit - Undo и Redo ничего не делают, остальные не особо полезны.
View - в целом бесполезно. а наличие Developer Tools даже опасно.
Window - Zoom ничего не делает, остальное есть на самом окне.
Help - пусто.
Отредактирован PT153
» WarCraft 3 / w3x-to-toml