aws / aws/sagemaker-python-sdk
AsyncPredictor fails if name is None, despite it being the default
- Langage dominant
- Python
- Étoiles
- 2.3k
- Forks
- 1.3k
- Merge moyen
- 1 j 22 h
- PR mergées (30 j)
- 35
Description
**Describe the bug**
The `name` argument of the `AsyncPredictor.__init__.py` is optional with default=None
https://github.com/aws/sagemaker-python-sdk/blob/b535ed87ae55fd1020ea1d7c7c9cd7e3a068a683/src/sagemaker/predictor_async.py#L34
But calling `async_predictor.predict(data=...)` requires name to be non-null, i.e.` _upload_data_to_s3 ` calls `name_from_base` on `self.name` which fails if name is None (i.e. the default)
https://github.com/aws/sagemaker-python-sdk/blob/b535ed87ae55fd1020ea1d7c7c9cd7e3a068a683/src/sagemaker/predictor_async.py#L171
**To reproduce**
```
from sagemaker.predictor import Predictor
from sagemaker.predictor_async import AsyncPredictor
predictor = Predictor(endpoint_name=endpoint_name, sagemaker_session=sagemaker_session)
async_predictor = AsyncPredictor(predictor)
result = async_predictor.predict(data=request_body)
```
TypeError: 'NoneType' object is not subscriptable
**Expected behavior**
The name field of `AsyncPredictor` should have a "non-None" default (a guid, or the endpoint name?)
**System information**
A description of your system. Please provide:
- **SageMaker Python SDK version**: '2.224.2'
- **Framework name (eg. PyTorch) or algorithm (eg. KMeans)**: PyTorch / Triton (custom inference container)
- **Framework version**:
- **Python version**:
- **CPU or GPU**:
- **Custom Docker image (Y/N)**: Y
**Additional context**
Add any other context about the problem here.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans src/sagemaker/predictor_async.py, en particulier dans AsyncPredictor.__init__ et _upload_data_to_s3 près des lignes référencées. Reproduisez l’échec avec AsyncPredictor(Predictor(...)) et predict(data=...), puis déterminez une valeur par défaut appropriée différente de None pour name. La tâche est terminée lorsque le chemin par défaut documenté ne lève plus le TypeError signalé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- aws, python
- Domaine
- machine-learning
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100