aws / aws/sagemaker-python-sdk

Rich logging still auto-enabled in sagemaker.core

Open Beginner friendly
#5,561 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
2.3k
Forks
1.3k
Avg merge
1d 22h
Merged PRs (30d)
35

Description

**PySDK Version**
PySDK V3

**Describe the bug**

[sagemaker/core/__init__.py:4](https://github.com/aws/sagemaker-python-sdk/blob/master/sagemaker-core/src/sagemaker/core/__init__.py#L4) unconditionally calls enable_textual_rich_console_and_traceback() at import time, which installs Rich tracebacks (rich.traceback.install) and replaces the root logger with RichHandler the moment sagemaker is imported.

[aws/sagemaker-core#325](https://github.com/aws/sagemaker-core/pull/325) (merged Aug 2025) fixed this in the standalone sagemaker-core package by making Rich opt-in, but that change was never applied to the bundled copy in sagemaker-python-sdk.

To reproduce
```

import sagemaker

# Rich tracebacks are now globally installed
# Rich logging handler is now the root handler
# Any SageMaker job output (processing, training) renders with Rich formatting

from sagemaker.core.helper.session_helper import Session
from sagemaker.core.processing import FrameworkProcessor

sess = Session()

processor = FrameworkProcessor(
image_uri="",
role="",
instance_type="ml.m5.xlarge",
instance_count=1,
)

processor.run(code="script.py", source_dir="source_dir", wait=True)
# Output is non-scrollable Rich-formatted text in Jupyter
```

**Expected behavior**

Rich logging should be opt-in (as intended by [sagemaker-core#325](https://github.com/aws/sagemaker-core/pull/325)), not automatically enabled on import. Job outputs in Jupyter notebooks should be scrollable plain text by default.

**Screenshots or logs**

Image

**System information**
SageMaker Python SDK version: 3.4.1 (sagemaker-core 2.4.1)
Python version: 3.11

Contributor guide

Open the contributing guide

Research direction

Start at sagemaker-core/src/sagemaker/core/__init__.py:4 and compare its import-time Rich setup with the opt-in behavior described in aws/sagemaker-core#325. Verify that importing sagemaker no longer installs Rich tracebacks or replaces the root logger, and that the reported Jupyter job output remains plain and scrollable by default.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.