Эти чехи запретили мне им баги репортить, видите ли у меня мыло от российского университета. 🤣
Поэтому репорчу с анонимного, да один фиг с каждой версией их всё больше, а старые чинятся неохотно.
Трудности возникли с первоначальным логотипом или уже с серпом и молотом?
У героев есть два лимита: свой и общий. Свой обычно стоит на 1, общий на 3. Чтобы сделать свой лимит, нужно сделать то, что преложил Волчачка. Чтобы герой учитывался общим лимитом, нужно сделать то, что предложил nazarpunk: занести героя в константы нанимаемых.
Без своего лимита героя можно строить сколь угодно раз. Без занесения в константы герой не учитывается общим лимитом, то есть игрок может построить 3 дефолтных героя и кастомного, итого 4 при учёте наличия своего лимита и безграничное кол-во, если свой лимит тоже не указан.
Потому что 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++. Легковесный и быстрый редактор текстовых файлов со всеми нужными фичами. Локлизация на русском присутствует. Вот его окно замены и документация.
Ред. PT153
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
» WarRaft / IntelliJASS
Ред. PT153
» WarRaft / IntelliJASS
Поэтому репорчу с анонимного, да один фиг с каждой версией их всё больше, а старые чинятся неохотно.
Ред. PT153
» WarCraft 3 / Warcraft III Reforged World Editor
» Мир безумного / BlizzCon 2023 - интересное с фестиваля
» 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
» WarRaft / Order
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack