|
| 1 | +Код репозитория основан на [ironpython-stubs](https://github.com/gtalarico/ironpython-stubs). |
| 2 | +Выражаю [gtalarico](https://github.com/gtalarico) бесконечную благодарность за вклад в развитие сообщества разработчиков скриптов и плагинов для инженерных программ. |
| 3 | +Я не стал делать форк его репозитория потому что хочу внести координальные изменения, |
| 4 | +к тому же автор уже давно им не занимается, а приемник так и не был найден. |
| 5 | + |
| 6 | +Так же как и в базовом репозитории, "заглушки" могут быть использованы в различных текстовых рекдаторах, но все примеры будут рассматриваться в [visual studio code](https://code.visualstudio.com/). |
| 7 | + |
| 8 | +На самом деле сгенерированный код нельзя называть "заглушками", но данное название уже прижилось в сообществе. Если хотите узнать про настоящие заглушки для python кода, то почитайте [тут](https://mypy.readthedocs.io/en/stable/stubs.html). |
| 9 | + |
| 10 | +## Для пользователей |
| 11 | +Сгенерированные заглушки ищите в [релизах](https://github.com/BIMOpenGroup/revitapistubs/releases). |
| 12 | +Как вы можете заметить, они разделены на `common` и `revit`. |
| 13 | +В `common` храняться заглушки системных библиотек Windows, пакеты IronPython, [Dynamo](https://github.com/DynamoDS) и [RPS](https://github.com/architecture-building-systems/revitpythonshell). |
| 14 | +В `revit` храняться заглушки для нескольких версий библиотек `Revit API`. |
| 15 | +Чтобы не было конфликтов у анализатора кода, подключать заглушки надо с помощью двух путей. |
| 16 | + |
| 17 | +```json |
| 18 | +// global settings.json |
| 19 | +"python.analysis.extraPaths": [ |
| 20 | + "ВАШ_ПУТЬ\\stubs\\common", |
| 21 | + "ВАШ_ПУТЬ\\stubs\\revit\\2019" |
| 22 | +], |
| 23 | +``` |
| 24 | + |
| 25 | +Изменяя версию Revit для конкретного проекта, придётся повторить оба пути. |
| 26 | + |
| 27 | +```json |
| 28 | +// .vscode/settings.json |
| 29 | +"python.analysis.extraPaths": [ |
| 30 | + "ВАШ_ПУТЬ\\stubs\\common", |
| 31 | + "ВАШ_ПУТЬ\\stubs\\revit\\2021" |
| 32 | +], |
| 33 | +``` |
| 34 | + |
| 35 | +Подробнее о подключении доп модулей читайте [тут](https://code.visualstudio.com/docs/python/editing). |
| 36 | +Примеры использования заглушек смотрите [тут](https://github.com/BIMOpenGroup/revitapistubs/examples). |
| 37 | +Для максимальной эффектиности заглушек их надо допиливать руками, но об этом подробней в примерах. |
| 38 | +Надеюсь в будущем это будет исправлено. |
| 39 | + |
| 40 | +Если выйдет новая версия Revit API, но при этом код генерации не измениться, то будет обновлён архив последнего релиза. |
| 41 | + |
| 42 | +## Для котрибьюторов |
| 43 | +Любая помощь приветствуется! |
| 44 | +Пишите вопросы, предложения, замечания. Даже если я не смогу что-то поправить вовремя, то возможно кто-то из сообщества поможет. |
| 45 | + |
| 46 | +### Общая информация |
| 47 | +Генерация заглушек возможна через консоль и это выглядит предпочтительным и гибким вариантом, но для простоты я выбрал [RevitPythonShell](https://github.com/architecture-building-systems/revitpythonshell). |
| 48 | +Например не надо заботиться о дополнительных зависимостях для `RevitAPIUI` или требовать пути для генерации, |
| 49 | +просто открываем нужный нам Revit и запускаем скрипт. |
| 50 | +К тому же данный репозиторий создан для генерации заглушек только для Revit. |
| 51 | + |
| 52 | +Из-за того что `Pylance` достаточно производительный в отличии от `Jedi` заглушки больше не нужно "минимизировать". |
| 53 | +Поэтому раньше требовалось запускать скрипт для обработки сгенерированных заглушек и формирования `stubs.min`. |
| 54 | + |
| 55 | +Решил разместить заглушки в релизах потому что нет смысла хранить их в репозитории. |
| 56 | +Единственная причина хранения их в репозитории если кто-то будет их обновлять/исправлять руками, но это очень большой и не нужный труд. Лучше попробовать улучшить генератор. |
| 57 | + |
| 58 | +### Как генерировать заглушки |
| 59 | +В оболочке RPS запускаем `src/main.py` изменив при этом путь к `src_dir`. |
| 60 | +Если запускать через кастомную кнопку на панели RPS, то в коде ничего менять не надо. |
| 61 | +Заглушки сгенерируются в корне репозитория. |
| 62 | + |
| 63 | +### Правила |
| 64 | +Как и практически в любом опенсорсе тут принята система [Forking Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow). |
| 65 | +Тезисно: |
| 66 | +- Делаем форк репозитория; |
| 67 | +- Создаём ветку от `master`; |
| 68 | +- Делаем `pull request` в `upstream/master`. |
| 69 | + |
| 70 | +Правила именования веток: |
| 71 | +- Стиль cebab-case; |
| 72 | +- Первым словом идёт задача fix/feature/refactor и т.д. Последующими краткое описание либо номер issue. |
| 73 | + fix-iss57 / feature-iss14 / refactor-generator. |
| 74 | + |
| 75 | +Просьба добавить папки различных IDE в свой глобальный gitignore. |
| 76 | + |
| 77 | +### Текущие задачи |
| 78 | +На данный момент приоритетной задачей является улучшение кода генератора. |
0 commit comments