aws / aws/sagemaker-python-sdk

Importing sagemaker seems to enable rich tracebacks

Đang mở
#5,179 5 bình luận 1 reaction 0 người được giao Xem trên GitHub
component: debugger component: pysdk-team type: bug
Ngôn ngữ chính
Python
Star
2.3k
Fork
1.3k
Merge trung bình
1 ngày 22 giờ
Pull request đã merge (30 ngày)
35

Mô tả

**Describe the bug**

Whenever sagemaker is imported, it seems to modify and automatically enable [rich](https://github.com/Textualize/rich) tracebacks.

**To reproduce**

Make a new environment

```console
$ python -m venv .venv
$ source /.venv/bin/activate
$ python -m pip install sagemaker rich
```

Make a file that returns a traceback

```python
"""rich_sage.py"""
import sagemaker

def main() -> None:
raise ValueError

if __name__ == "__main__":
main()

```

Run the file

```console
$ python rich_sage.py
sagemaker.config INFO - Not applying SDK defaults from location: /Library/Application Support/sagemaker/config.yaml
sagemaker.config INFO - Not applying SDK defaults from location: /Users/pawlu/Library/Application Support/sagemaker/config.yaml
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/pawlu/Documents/scratch/rich_sage/sage_me.py:9 in │
│ │
│ 6 │
│ 7 │
│ 8 if __name__ == "__main__": │
│ ❱ 9 │ main() │
│ 10 │
│ │
│ /Users/pawlu/Documents/scratch/rich_sage/sage_me.py:5 in main │
│ │
│ 2 │
│ 3 │
│ 4 def main() -> None: │
│ ❱ 5 │ raise ValueError │
│ 6 │
│ 7 │
│ 8 if __name__ == "__main__": │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ValueError
```

If the import statement is removed,

```diff
- import sagemaker
```

then the traceback renders as expected

```console
$ python rich_sage.py
Traceback (most recent call last):
File "/Users/pawlu/Documents/scratch/rich_sage/sage_me.py", line 8, in
main()
File "/Users/pawlu/Documents/scratch/rich_sage/sage_me.py", line 4, in main
raise ValueError
ValueError
```

**Expected behavior**

Ideally, tracebacks shouldn't be modified without users input. At worst there should be a way to opt out of this. But we shouldn't be modifying tracebacks automatically at import. It's a tricky behavior that's hard to debug.

**Screenshots or logs**

Image

**System information**
A description of your system. Please provide:
- **SageMaker Python SDK version**: 2.244.0
- **Framework name (eg. PyTorch) or algorithm (eg. KMeans)**: Rich
- **Framework version**: 14.0.0
- **Python version**: 3.12.9
- **CPU or GPU**: M3 (macbook)
- **Custom Docker image (Y/N)**: N

---

Thank you very much!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Chạy bản tái hiện trong rich_sage.py với các phiên bản SageMaker và Rich được báo cáo, so sánh đầu ra traceback khi có và không có import sagemaker. Truy vết tác dụng phụ của việc import trong package SageMaker và xác minh rằng việc import nó không còn bật Rich tracebacks nếu không có thao tác của người dùng.

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

Đánh giá

Công nghệ
python
Lĩnh vực
machine-learning
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
42/100

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.