diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c143deb..ce12b91 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,6 +61,11 @@ PR'ы должны быть сделаны в `dev` ветку. Определё В проекте используется `black`. Не забывайте перед публикацией отформатировать код и проверить его на работоспособность. +Используются одинарные кавычки. Запускайте `black` с конфигом из основной директории: + +```shell +black --config=black.toml yandex_music +``` ## Создание новых моделей @@ -71,3 +76,29 @@ PR'ы должны быть сделаны в `dev` ветку. Определё опциональных полей. Не забывайте перечислить поля, по которым можно отличить один объект от другого в `_id_attrs` (метод `__post_init__`). Экземпляр класса `Client` передаётся в каждую модель для возможности написания методов-сокращений. +При наличии дополнительных методов у модели не забудьте создать асинхронную версию +метода добавив в название суффикс `_async`. Кроме этого, если у вашей модели +есть метод, например, `download_async()`, то такому методу следует создать +camel case псевдоним (`downloadAsync()`). Для создания псевдонимов существует +генератор. Всё что вам надо сделать это поместить в конце файла с моделью маркер: + +``` +# camelCase псевдонимы +``` +([пример](https://github.com/MarshalX/yandex-music-api/blob/a30082f4929e56381c870cb03103777ae29bcc6b/yandex_music/tracks_list.py#L80)) + +После чего запустить генератор: +```shell +python generate_camel_case_aliases.py +``` + +### Создание новых методов клиента + +Если ваша задача включает добавление нового API метода, то не забудьте +сгенерировать асинхронную версию клиента. Сделать это можно следующей командой: + +```shell +python generate_async_version.py +``` + +Ни в коем случае не редактируйте файл `client_async.py` и `request_async.py` руками!