# Đóng Gói Thư Viện Python taste - Sử dụng `pyproject.toml` làm nguồn chân lý duy nhất và loại bỏ `setup.py` đối với các gói thư viện mới. Độ tin cậy: 0.95 - Ưu tiên cấu trúc thư mục `src/` để các bài kiểm thử không bao giờ vô tình nhập (import) cây mã nguồn chưa được đóng gói. Độ tin cậy: 0.90 - Sử dụng công cụ uv để cài đặt, quản lý tệp khóa (lockfiles) và môi trường ảo (virtualenvs) thay vì dùng kết hợp pip và venv thủ công. Độ tin cậy: 0.85 - Đóng gói bằng hatchling (hoặc một trình phụ trợ chuẩn PEP 517 khác) và không bao giờ commit các tệp wheel đã biên dịch vào git. Độ tin cậy: 0.90 - Ghim rõ ràng phiên bản Python tối thiểu được hỗ trợ và kiểm thử phiên bản cũ nhất được hỗ trợ đó trong quy trình CI. Độ tin cậy: 0.90 - Khai báo các thư viện phụ thuộc với ngưỡng phiên bản tối thiểu (lower bounds) mà bạn thực sự cần; tránh chặn cứng ngưỡng phiên bản tối đa (upper pins) trừ khi bắt buộc. Độ tin cậy: 0.80 - Giữ các nhóm phụ thuộc tùy chọn (`[dev]`, `[docs]`) dành riêng cho các công cụ phát triển mà người dùng cuối không cần phải cài đặt. Độ tin cậy: 0.85 - Định dạng mã nguồn bằng lệnh Ruff format và kiểm tra lỗi mã nguồn (lint) bằng Ruff; loại bỏ bộ đôi Black cùng flake8 đối với các dự án mới. Độ tin cậy: 0.85 - Kiểm tra kiểu dữ liệu (type-check) bằng pyright hoặc basedpyright ở chế độ nghiêm ngặt (strict mode) đối với các API công khai. Độ tin cậy: 0.80 - Kiểm thử bằng pytest và đặt các bài kiểm thử bên ngoài thư mục `src/`, nằm trong thư mục `tests/`. Độ tin cậy: 0.90 - Sử dụng cơ chế phát hành tin cậy (trusted publishing) từ GitHub Actions lên PyPI thay vì dùng các mã API token có thời hạn dài. Độ tin cậy: 0.90 - Đánh số phiên bản tự động từ các thẻ git tag (sử dụng hatch-vcs hoặc setuptools-scm). Độ tin cậy: 0.75 - Cung cấp tệp README ngắn gọn gồm hướng dẫn cài đặt, một ví dụ tối giản và liên kết tới tài liệu chi tiết; giữ phần nội dung dài ở trong thư mục docs/. Độ tin cậy: 0.90 - Bao gồm tệp đánh dấu `py.typed` khi bạn xuất bản các gói thư viện có định kiểu để người sử dụng nhận được thông tin kiểu dữ liệu nội tuyến. Độ tin cậy: 0.85 - Chạy lệnh `twine check` (hoặc lệnh tương đương trong uv) trên các gói thành phẩm đã đóng gói trước mỗi đợt phát hành. Độ tin cậy: 0.80 - Ưu tiên các điểm khởi chạy dạng `python -m package` hơn là các kịch bản bọc dòng lệnh (console-script wrappers) dễ lỗi khi cần gỡ lỗi. Độ tin cậy: 0.70 - Duy trì danh sách `__all__` và các mô-đun công khai một cách có chủ đích; đánh dấu các thành phần nội bộ bằng dấu gạch dưới ở đầu tên. Độ tin cậy: 0.80
So sánh các phương án đi làm - ô tô (xăng hoặc xe điện), phương tiện công cộng, xe đạp, xe đạp điện, đi bộ, kết hợp luân phiên theo ngày và chặng gửi xe đi tàu/buýt (park-and-ride) - theo tháng và năm kèm chi phí tiền mặt, thời gian di chuyển trọn gói từ cửa đến cửa, chi phí thời gian tính theo mức giá trị giờ của riêng bạn, chi phí mỗi chuyến và lượng phát thải CO2. Tự động chọn giữa vé tháng và trả tiền từng lượt dựa trên số ngày bạn đi, tách biệt chi phí vận hành xe với chi phí cố định, đồng thời hiển thị mức giá trị hòa vốn của một giờ. Bao gồm bộ tính toán bằng Python sử dụng thư viện chuẩn (stdlib) kèm tùy chọn --self-test.
Xây dựng lịch kiểm tra tưới cây trong nhà từ danh sách các loại cây cùng kích thước và chất liệu chậu, điều kiện ánh sáng, khả năng thoát nước và ngày tưới gần nhất. Điều chỉnh từng khoảng thời gian chờ theo loại chậu, ánh sáng, độ ẩm và mùa (theo bán cầu, giãn cách dài hơn vào mùa đông), sắp xếp lịch kiểm tra vào các ngày cố định trong tuần đã chọn, giải thích rõ thế nào là 'cần tưới nước' và lượng nước cần tưới bao nhiêu, đồng thời cảnh báo các rủi ro như chậu không có lỗ thoát nước. Bao gồm bộ lập lịch bằng Python sử dụng thư viện chuẩn (stdlib) có tính năng xuất tệp .ics và --self-test.