Код репозитория основан на ironpython-stubs. Выражаю gtalarico бесконечную благодарность за вклад в развитие сообщества разработчиков, скриптов и плагинов для инженерных программ. Я не стал делать форк его репозитория, потому что хочу внести координальные изменения, к тому же, автор уже давно им не занимается, а преемник так и не был найден.
Так же как и в базовом репозитории, "заглушки" могут быть использованы в различных текстовых редакторах, но все примеры будут рассматриваться в visual studio code.
На самом деле сгенерированный код нельзя называть "заглушками", но данное название уже прижилось в сообществе. Если хотите узнать про настоящие заглушки для python кода, то почитайте тут.
Сгенерированные заглушки ищите в релизах.
Как вы можете заметить, они разделены на common
и revit
.
В common
хранятся заглушки системных библиотек Windows, пакеты IronPython, Dynamo и RPS.
В revit
хранятся заглушки для нескольких версий библиотек Revit API
.
Чтобы не было конфликтов у анализатора кода, подключать заглушки надо с помощью двух путей.
// %APPDATA%\Code\User\settings.json
"python.analysis.extraPaths": [
"ВАШ_ПУТЬ\\stubs\\common",
"ВАШ_ПУТЬ\\stubs\\revit\\2019"
],
При изменении версии Revit для конкретного проекта, придётся повторить оба пути.
// .vscode/settings.json
"python.analysis.extraPaths": [
"ВАШ_ПУТЬ\\stubs\\common",
"ВАШ_ПУТЬ\\stubs\\revit\\2021"
],
Подробнее о подключении доп модулей читайте тут.
Примеры использования заглушек смотрите тут.
Чтобы заглушки были максимально эффективными, их надо допиливать руками, но об этом подробнее в примерах.
Надеюсь, в будущем это будет исправлено.
Если выйдет новая версия Revit API, но при этом код генерации не изменится, то будет обновлён архив последнего релиза.
Любая помощь приветствуется!
Пишите вопросы, предложения, замечания. Даже если я не смогу что-то поправить вовремя, то возможно кто-то из сообщества поможет.
Генерация заглушек возможна через консоль, и это выглядит предпочтительным и гибким вариантом, но для простоты я выбрал RevitPythonShell.
Например, не надо заботиться о дополнительных зависимостях для RevitAPIUI
или требовать пути для генерации,
просто открываем нужный нам Revit и запускаем скрипт.
К тому же, данный репозиторий создан для генерации заглушек только для Revit.
Из-за того что Pylance
достаточно производительный в отличие от Jedi
заглушки больше не нужно "минимизировать".
Поэтому раньше требовалось запускать скрипт для обработки сгенерированных заглушек и формирования stubs.min
.
Решил разместить заглушки в релизах, потому что нет смысла хранить их в репозитории. Единственная причина хранения их в репозитории - если кто-то будет их обновлять/исправлять руками. Но это очень большой и ненужный труд. Лучше попробовать улучшить генератор.
В оболочке RPS запускаем src/main.py
, изменив при этом путь к src_dir
.
Если запускать через кастомную кнопку на панели RPS, то в коде ничего менять не надо.
Заглушки сгенерируются в корне репозитория.
Как и практически в любом опенсорсе тут принята система Forking Workflow.
Тезисно:
- Делаем форк репозитория;
- Создаём ветку от
master
; - Делаем
pull request
вupstream/master
.
Правила именования веток:
- Стиль kebab-case;
- Первым словом идёт задача fix/feature/refactor и т.д. Последующими - краткое описание, либо номер issue.
fix-iss57 / feature-iss14 / refactor-generator.
Просьба добавить папки различных IDE в свой глобальный gitignore.
На данный момент приоритетной задачей является улучшение кода генератора.