Đóng góp vào kho lưu trữ TFDS

Cảm ơn bạn đã quan tâm đến thư viện của chúng tôi! Chúng tôi rất vui mừng khi có một cộng đồng năng động như vậy.

Bắt đầu

  • Nếu bạn là người mới làm quen với TFDS, cách dễ nhất để bắt đầu là triển khai một trong các bộ dữ liệu được yêu cầu của chúng tôi, tập trung vào những bộ dữ liệu được yêu cầu nhiều nhất. Thực hiện theo hướng dẫn của chúng tôi để được hướng dẫn.
  • Các sự cố, yêu cầu tính năng, lỗi,... có tác động lớn hơn nhiều so với việc thêm bộ dữ liệu mới vì chúng mang lại lợi ích cho toàn bộ cộng đồng TFDS. Xem danh sách đóng góp tiềm năng . Bắt đầu với những vấn đề được gắn nhãn hoan nghênh đóng góp , là những vấn đề nhỏ khép kín, dễ dàng để bắt đầu.
  • Đừng ngần ngại tiếp nhận các lỗi đã được chỉ định nhưng chưa được cập nhật trong một thời gian.
  • Không cần phải nhận vấn đề được giao cho bạn. Chỉ cần nhận xét về vấn đề khi bạn bắt đầu giải quyết nó :)
  • Đừng ngần ngại yêu cầu trợ giúp nếu bạn quan tâm đến một vấn đề nhưng không biết bắt đầu như thế nào. Và vui lòng gửi bản nháp PR nếu bạn muốn phản hồi sớm.
  • Để tránh sự trùng lặp công việc không cần thiết, hãy kiểm tra danh sách các Yêu cầu kéo đang chờ xử lý và nhận xét về các vấn đề bạn đang giải quyết.

Cài đặt

Nhân bản repo

Để bắt đầu, hãy sao chép hoặc tải xuống kho lưu trữ Bộ dữ liệu Tensorflow và cài đặt kho lưu trữ cục bộ.

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

Cài đặt các phụ thuộc phát triển:

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

Lưu ý rằng cũng có pip install -e ".[tests-all]" để cài đặt tất cả các phần cụ thể của tập dữ liệu.

Mã Visual Studio

Khi phát triển bằng Visual Studio Code , repo của chúng tôi đi kèm với một số cài đặt được xác định trước để giúp phát triển (sửa lỗi thụt lề, pylint,...).

  • Nếu bạn gặp phải một số thông báo cảnh báo TensorFlow, hãy thử cách khắc phục này .
  • Nếu việc phát hiện không thành công do thiếu quá trình nhập đáng lẽ phải được cài đặt, vui lòng gửi PR để cập nhật cài đặt dev pip.

Danh sách kiểm tra PR

Ký CLA

Đóng góp cho dự án này phải kèm theo Thỏa thuận cấp phép cộng tác viên (CLA). Bạn (hoặc chủ lao động của bạn) giữ bản quyền đối với đóng góp của mình; điều này chỉ đơn giản là cho phép chúng tôi sử dụng và phân phối lại những đóng góp của bạn như một phần của dự án. Hãy truy cập < https://cla.developers.google.com/ > để xem các thỏa thuận hiện tại của bạn trong hồ sơ hoặc để ký một thỏa thuận mới.

Thông thường, bạn chỉ cần gửi CLA một lần, vì vậy nếu bạn đã gửi CLA (ngay cả khi đó là cho một dự án khác), bạn có thể không cần phải làm lại.

Thực hiện theo các phương pháp hay nhất

  • Khả năng đọc là quan trọng. Mã phải tuân theo các phương pháp lập trình tốt nhất (tránh trùng lặp, phân tích thành các hàm nhỏ độc lập, tên biến rõ ràng, ...)
  • Càng đơn giản càng tốt (ví dụ: việc triển khai được chia thành nhiều PR độc lập nhỏ hơn để dễ xem xét hơn).
  • Thêm các bài kiểm tra khi được yêu cầu, các bài kiểm tra hiện có sẽ vượt qua.
  • Thêm chú thích gõ

Kiểm tra hướng dẫn phong cách của bạn

Phong cách của chúng tôi dựa trên Hướng dẫn về phong cách Python của Google , dựa trên hướng dẫn về phong cách Python PEP 8 . Mã mới nên cố gắng tuân theo kiểu mã Đen nhưng với:

  • Chiều dài dòng: 80
  • Thụt lề 2 dấu cách thay vì 4.
  • Trích dẫn đơn '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Bạn có thể thử yapf để tự động định dạng tệp nhưng công cụ này không hoàn hảo nên sau đó bạn có thể phải áp dụng các bản sửa lỗi theo cách thủ công.

yapf tensorflow_datasets/core/some_file.py

Cả pylintyapf đều phải được cài đặt bằng pip install -e ".[dev]" nhưng cũng có thể được cài đặt thủ công bằng pip install . Nếu bạn đang sử dụng VS Code, những công cụ đó phải được tích hợp trong giao diện người dùng.

Chuỗi tài liệu và chú thích khi gõ

Các lớp và hàm phải được ghi lại bằng chuỗi tài liệu và chú thích gõ. Chuỗi tài liệu phải tuân theo phong cách của Google . Ví dụ:

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
  """

Thêm và chạy unittests

Đảm bảo các tính năng mới được kiểm tra bằng bài kiểm tra đơn vị. Bạn có thể chạy thử nghiệm thông qua giao diện VS Code hoặc dòng lệnh. Ví dụ:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : Trong lịch sử, chúng tôi đã sử dụng mô-đun unittest để viết bài kiểm tra. Các thử nghiệm mới tốt nhất nên sử dụng pytest đơn giản, linh hoạt, hiện đại hơn và được hầu hết các thư viện nổi tiếng sử dụng (numpy, pandas, sklearn, matplotlib, scipy, six, ...). Bạn có thể đọc hướng dẫn pytest nếu bạn không quen với pytest.

Các thử nghiệm dành cho DatasetBuilders rất đặc biệt và được ghi lại trong hướng dẫn thêm tập dữ liệu .

Gửi PR để đánh giá!

Chúc mừng! Xem Trợ giúp GitHub để biết thêm thông tin về cách sử dụng yêu cầu kéo.