aws / aws/bedrock-agentcore-sdk-python

Type inconsistency in EventMetadataFilter TypedDict

Offen
#240 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
761
Forks
147
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
7

Beschreibung

## Description

In `src/bedrock_agentcore/memory/models/filters.py`, the `EventMetadataFilter` TypedDict defines `operator: OperatorType` (an enum), but the actual value stored is a string.

```python
class EventMetadataFilter(TypedDict):
left: LeftExpression
operator: OperatorType # Type says enum
right: Optional[RightExpression]
```

The `build_expression` method correctly converts the enum to a string:
```python
filter = {"operator": operator.value} # Stores string, not enum
```

## Ramifications

1. **Type hint is misleading** - The TypedDict suggests `operator` holds an `OperatorType` enum, but it actually holds a string like `"EQUALS_TO"`

2. **Potential runtime error** - If a user follows the type hint and passes an enum directly (without using `build_expression`), boto3 will fail to serialize it since enums are not JSON serializable

3. **Type checker inconsistency** - Static type checkers like mypy may produce warnings or miss actual type errors due to this mismatch

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in src/bedrock_agentcore/memory/models/filters.py, indem du EventMetadataFilter zusammen mit build_expression liest, das den Operator vor dem Speichern umwandelt. Überprüfe, ob die Annotation mit dem serialisierten Wert übereinstimmt, und führe anschließend die relevanten Python-Tests und Typprüfungen aus; erledigt ist die Aufgabe, wenn TypedDict und Laufzeitdarstellung übereinstimmen, ohne Aufrufer irrezuführen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend-api-design
Issue-Typ
Bug
Schwierigkeit
1/5
Geschätzter Aufwand
Unter einer Stunde
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.