Skip to content

Commit 05d65af

Browse files
init commit
0 parents  commit 05d65af

2 files changed

Lines changed: 80 additions & 0 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
logs/
2+
stubs/

README.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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

Comments
 (0)