Внесите свой вклад в репозиторий TFDS.

Благодарим Вас за интерес к нашей библиотеке! Мы очень рады иметь такое мотивированное сообщество.

Начать

  • Если вы новичок в TFDS, самый простой способ начать — реализовать один из запрошенных нами наборов данных , сосредоточив внимание на наиболее востребованных. Следуйте нашему руководству для получения инструкций.
  • Проблемы, запросы функций, ошибки... оказывают гораздо большее влияние, чем добавление новых наборов данных, поскольку они приносят пользу всему сообществу TFDS. См. список потенциальных вкладов . Начинается с тех, которые помечены приветствием вклада и представляют собой небольшие автономные задачи, с которыми легко начать.
  • Не стесняйтесь брать на себя ошибки, которые уже назначены, но не обновлялись какое-то время.
  • Нет необходимости поручить задачу вам. Просто прокомментируйте проблему, когда начнете над ней работать :)
  • Не стесняйтесь обращаться за помощью, если вас интересует вопрос, но вы не знаете, с чего начать. И, пожалуйста, пришлите проект PR, если хотите получить обратную связь как можно скорее.
  • Чтобы избежать ненужного дублирования работы, проверьте список ожидающих запросов на включение и прокомментируйте проблемы, над которыми вы работаете.

Настраивать

Клонирование репо

Для начала клонируйте или загрузите репозиторий наборов данных Tensorflow и установите его локально.

git clone https://github.com/tensorflow/datasets.git
cd datasets/

Установите зависимости разработки:

pip install -e .  # Install minimal deps to use tensorflow_datasets
pip install -e ".[dev]"  # Install all deps required for testing and development

Обратите внимание, что существует также pip install -e ".[tests-all]" для установки всех зависимостей, специфичных для набора данных.

Код Visual Studio

При разработке с использованием кода Visual Studio наш репозиторий содержит некоторые предопределенные настройки , которые помогут в разработке (правильный отступ, пилинт и т. д.).

  • Если вы столкнулись с каким-либо предупреждающим сообщением TensorFlow, попробуйте это исправление .
  • Если обнаружение не удалось из-за отсутствия импорта, который должен был быть установлен, отправьте PR для обновления установки dev pip.

PR-контрольный список

Подпишите CLA

Вклад в этот проект должен сопровождаться Лицензионным соглашением участника (CLA). Вы (или ваш работодатель) сохраняете авторские права на свой вклад; это просто дает нам разрешение использовать и распространять ваш вклад в рамках проекта. Перейдите на сайт < https://cla.developers.google.com/ >, чтобы просмотреть текущие соглашения или подписать новое.

Обычно вам нужно отправить CLA только один раз, поэтому, если вы уже отправили его (даже если оно было для другого проекта), вам, вероятно, не нужно делать это снова.

Следуйте лучшим практикам

  • Читабельность важна. Код должен следовать лучшим практикам программирования (избегать дублирования, разбивать на небольшие автономные функции, использовать явные имена переменных и т. д.).
  • Чем проще, тем лучше (например, реализация разделена на несколько небольших автономных PR, которые легче анализировать).
  • При необходимости добавляйте тесты, существующие тесты должны проходить успешно.
  • Добавить аннотации к вводу

Проверьте руководство по стилю

Наш стиль основан на Руководстве по стилю Google Python , которое основано на руководстве по стилю PEP 8 Python . Новый код должен следовать стилю кода Блэка , но с:

  • Длина строки: 80
  • Отступ 2 пробела вместо 4.
  • Одинарная кавычка '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Вы можете попробовать yapf для автоматического форматирования файла, но этот инструмент не идеален, поэтому вам, скорее всего, впоследствии придется вручную вносить исправления.

yapf tensorflow_datasets/core/some_file.py

И pylint , и yapf должны быть установлены с помощью pip install -e ".[dev]" но их также можно установить вручную с помощью pip install . Если вы используете VS Code, эти инструменты должны быть интегрированы в пользовательский интерфейс.

Строки документации и аннотации ввода

Классы и функции должны быть задокументированы с помощью строк документации и типизированных аннотаций. Строки документации должны соответствовать стилю Google . Например:

def function(x: List[T]) -> T:
  """One line doc should end by a dot.

  * Use `backticks` for code and tripple backticks for multi-line.
  * Use full API name (`tfds.core.DatasetBuilder` instead of `DatasetBuilder`)
  * Use `Args:`, `Returns:`, `Yields:`, `Attributes:`, `Raises:`

  Args:
    x: description

  Returns:
    y: description
  """

Добавляйте и запускайте юнит-тесты

Убедитесь, что новые функции тестируются с помощью модульных тестов. Вы можете запускать тесты через интерфейс VS Code или командную строку. Например:

pytest -vv tensorflow_datasets/core/

pytest против unittest : исторически мы использовали модуль unittest для написания тестов. В новых тестах предпочтительно использовать pytest , который является более простым, гибким, современным и используется большинством известных библиотек (numpy, pandas, sklearn, matplotlib, scipy, Six,...). Вы можете прочитать руководство по pytest, если вы не знакомы с pytest.

Тесты для DatasetBuilders являются особенными и описаны в руководстве по добавлению набора данных .

Отправьте пиар на отзывы!

Поздравляю! Дополнительную информацию об использовании запросов на включение см. в справке GitHub .