Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

get_cloud_geo_region() returns NaN instead of the city for GCP regions with no state

Đang mở Phù hợp với người mới
#1,456 1 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

@Maduk86 đang làm issue này rồi.

Từ ngày 26/10/2026.

  • #1467 của @Maduk86 — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
86/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
pandas, python
Lĩnh vực
backend, databases

Hướng nghiên cứu

Bắt đầu với get_cloud_geo_region() trong codecarbon/core/emissions.py và kiểm tra cách xử lý giá trị state đọc từ data/cloud/impact.csv. Tái hiện lỗi với vùng GCP asia-east1, sau đó thêm một bài kiểm thử cho vùng không có state. Công việc hoàn tất khi thành phố được trả về và vùng đó không còn tạo ra NaN trong đầu ra phát thải.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Problem

Emissions.get_cloud_geo_region() (codecarbon/core/emissions.py) falls back to city only when state is None:

state = selected["state"].item()
if state is not None:
    return state

impact.csv is read with pandas, so an empty state cell is NaN, not None. The check passes and NaN is returned. 30 of the 40 GCP regions in data/cloud/impact.csv have no state (e.g. asia-east1, africa-south1), so the city is never used.

Reproduction

from codecarbon import OfflineEmissionsTracker

tracker = OfflineEmissionsTracker(cloud_provider="gcp", cloud_region="asia-east1")
tracker.start()
data = tracker._prepare_emissions_data()
tracker.stop()
print(repr(data.region))  # nan, expected 'Changhua County'

Impact

  • region is empty in emissions.csv
  • HTTPOutput fails: requests raises InvalidJSONError: Out of range float values are not JSON compliant: nan
  • LoggerOutput logs invalid JSON ("region": NaN)

Proposed fix

Check for a real string instead of None, e.g. if isinstance(state, str):, and add a test with a region that has no state. Happy to open a PR.


Proposed fix

Check for a real string instead of None, e.g. if isinstance(state, str):, and add a test with a region that has no state. Happy to open a PR.


Ngôn ngữ chính
Python
Star
1.9k
Fork
347
Merge trung bình
2 ngày 13 giờ
Pull request đã merge (30 ngày)
20

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của mlco2/codecarbon

Tất cả issue của mlco2/codecarbon

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.