9
9
10
10
from mypy_boto3_dynamodb .service_resource import DynamoDBServiceResource
11
11
12
+ # FIXME: remove instances of 'type: ignore[attr-defined]' below once
13
+ # boto3-missing becomes unnecessary.
14
+
12
15
13
16
PrimitiveDynamoDBValues = Optional [Union [str , int , float , Decimal , bool ]]
14
17
DynamoDBValues = Union [
@@ -33,18 +36,6 @@ class BaseDynamoDBAutoIncrement(ABC):
33
36
def next (self , item : DynamoDBItem ) -> tuple [Iterable [dict [str , Any ]], str ]:
34
37
raise NotImplementedError
35
38
36
- def _put_item (self , * , TableName , ** kwargs ):
37
- # FIXME: DynamoDB resource does not have put_item method; emulate it
38
- self .dynamodb .Table (TableName ).put_item (** kwargs )
39
-
40
- def _get_item (self , * , TableName , ** kwargs ):
41
- # FIXME: DynamoDB resource does not have get_item method; emulate it
42
- return self .dynamodb .Table (TableName ).get_item (** kwargs )
43
-
44
- def _query (self , * , TableName , ** kwargs ):
45
- # FIXME: DynamoDB resource does not have put_item method; emulate it
46
- return self .dynamodb .Table (TableName ).query (** kwargs )
47
-
48
39
def put (self , item : DynamoDBItem ):
49
40
TransactionCanceledException = (
50
41
self .dynamodb .meta .client .exceptions .TransactionCanceledException
@@ -53,11 +44,9 @@ def put(self, item: DynamoDBItem):
53
44
puts , next_counter = self .next (item )
54
45
if self .dangerously :
55
46
for put in puts :
56
- self ._put_item (** put )
47
+ self .dynamodb . put_item (** put ) # type: ignore[attr-defined]
57
48
else :
58
49
try :
59
- # FIXME: depends on an unmerged PR for boto3.
60
- # See https://github.com/boto/boto3/pull/4010
61
50
self .dynamodb .transact_write_items ( # type: ignore[attr-defined]
62
51
TransactItems = [{"Put" : put } for put in puts ]
63
52
)
@@ -69,7 +58,7 @@ def put(self, item: DynamoDBItem):
69
58
class DynamoDBAutoIncrement (BaseDynamoDBAutoIncrement ):
70
59
def next (self , item ):
71
60
counter = (
72
- self ._get_item (
61
+ self .dynamodb . get_item (
73
62
AttributesToGet = [self .attribute_name ],
74
63
Key = self .counter_table_key ,
75
64
TableName = self .counter_table_name ,
@@ -117,7 +106,7 @@ def next(self, item):
117
106
118
107
class DynamoDBHistoryAutoIncrement (BaseDynamoDBAutoIncrement ):
119
108
def list (self ) -> list [int ]:
120
- result = self ._query (
109
+ result = self .dynamodb . query ( # type: ignore[attr-defined]
121
110
TableName = self .table_name ,
122
111
ExpressionAttributeNames = {
123
112
** {f"#{ i } " : key for i , key in enumerate (self .counter_table_key .keys ())},
@@ -145,10 +134,10 @@ def get(self, version: Optional[int] = None) -> DynamoDBItem:
145
134
"TableName" : self .table_name ,
146
135
"Key" : {** self .counter_table_key , self .attribute_name : version },
147
136
}
148
- return self ._get_item (** kwargs ).get ("Item" )
137
+ return self .dynamodb . get_item (** kwargs ).get ("Item" ) # type: ignore[attr-defined]
149
138
150
139
def next (self , item ):
151
- existing_item = self ._get_item (
140
+ existing_item = self .dynamodb . get_item (
152
141
TableName = self .counter_table_name ,
153
142
Key = self .counter_table_key ,
154
143
).get ("Item" )
0 commit comments