13
13
# limitations under the License.
14
14
15
15
"""Collection level utilities for Mongo."""
16
+ from __future__ import annotations
16
17
17
18
from collections import abc
18
19
from typing import (
@@ -114,14 +115,14 @@ class Collection(common.BaseObject, Generic[_DocumentType]):
114
115
115
116
def __init__ (
116
117
self ,
117
- database : " Database[_DocumentType]" ,
118
+ database : Database [_DocumentType ],
118
119
name : str ,
119
120
create : Optional [bool ] = False ,
120
- codec_options : Optional [" CodecOptions[_DocumentTypeArg]" ] = None ,
121
+ codec_options : Optional [CodecOptions [_DocumentTypeArg ]] = None ,
121
122
read_preference : Optional [_ServerMode ] = None ,
122
123
write_concern : Optional [WriteConcern ] = None ,
123
- read_concern : Optional [" ReadConcern" ] = None ,
124
- session : Optional [" ClientSession" ] = None ,
124
+ read_concern : Optional [ReadConcern ] = None ,
125
+ session : Optional [ClientSession ] = None ,
125
126
** kwargs : Any ,
126
127
) -> None :
127
128
"""Get / create a Mongo collection.
@@ -335,7 +336,7 @@ def __create(
335
336
session = session ,
336
337
)
337
338
338
- def __getattr__ (self , name : str ) -> " Collection[_DocumentType]" :
339
+ def __getattr__ (self , name : str ) -> Collection [_DocumentType ]:
339
340
"""Get a sub-collection of this collection by name.
340
341
341
342
Raises InvalidName if an invalid collection name is used.
@@ -351,7 +352,7 @@ def __getattr__(self, name: str) -> "Collection[_DocumentType]":
351
352
)
352
353
return self .__getitem__ (name )
353
354
354
- def __getitem__ (self , name : str ) -> " Collection[_DocumentType]" :
355
+ def __getitem__ (self , name : str ) -> Collection [_DocumentType ]:
355
356
return Collection (
356
357
self .__database ,
357
358
f"{ self .__name } .{ name } " ,
@@ -397,19 +398,19 @@ def name(self) -> str:
397
398
return self .__name
398
399
399
400
@property
400
- def database (self ) -> " Database[_DocumentType]" :
401
+ def database (self ) -> Database [_DocumentType ]:
401
402
"""The :class:`~pymongo.database.Database` that this
402
403
:class:`Collection` is a part of.
403
404
"""
404
405
return self .__database
405
406
406
407
def with_options (
407
408
self ,
408
- codec_options : Optional [" bson.CodecOptions[_DocumentTypeArg]" ] = None ,
409
+ codec_options : Optional [bson .CodecOptions [_DocumentTypeArg ]] = None ,
409
410
read_preference : Optional [_ServerMode ] = None ,
410
411
write_concern : Optional [WriteConcern ] = None ,
411
- read_concern : Optional [" ReadConcern" ] = None ,
412
- ) -> " Collection[_DocumentType]" :
412
+ read_concern : Optional [ReadConcern ] = None ,
413
+ ) -> Collection [_DocumentType ]:
413
414
"""Get a clone of this collection changing the specified settings.
414
415
415
416
>>> coll1.read_preference
@@ -455,7 +456,7 @@ def bulk_write(
455
456
requests : Sequence [_WriteOp [_DocumentType ]],
456
457
ordered : bool = True ,
457
458
bypass_document_validation : bool = False ,
458
- session : Optional [" ClientSession" ] = None ,
459
+ session : Optional [ClientSession ] = None ,
459
460
comment : Optional [Any ] = None ,
460
461
let : Optional [Mapping ] = None ,
461
462
) -> BulkWriteResult :
@@ -585,7 +586,7 @@ def insert_one(
585
586
self ,
586
587
document : Union [_DocumentType , RawBSONDocument ],
587
588
bypass_document_validation : bool = False ,
588
- session : Optional [" ClientSession" ] = None ,
589
+ session : Optional [ClientSession ] = None ,
589
590
comment : Optional [Any ] = None ,
590
591
) -> InsertOneResult :
591
592
"""Insert a single document.
@@ -653,7 +654,7 @@ def insert_many(
653
654
documents : Iterable [Union [_DocumentType , RawBSONDocument ]],
654
655
ordered : bool = True ,
655
656
bypass_document_validation : bool = False ,
656
- session : Optional [" ClientSession" ] = None ,
657
+ session : Optional [ClientSession ] = None ,
657
658
comment : Optional [Any ] = None ,
658
659
) -> InsertManyResult :
659
660
"""Insert an iterable of documents.
@@ -855,7 +856,7 @@ def replace_one(
855
856
bypass_document_validation : bool = False ,
856
857
collation : Optional [_CollationIn ] = None ,
857
858
hint : Optional [_IndexKeyHint ] = None ,
858
- session : Optional [" ClientSession" ] = None ,
859
+ session : Optional [ClientSession ] = None ,
859
860
let : Optional [Mapping [str , Any ]] = None ,
860
861
comment : Optional [Any ] = None ,
861
862
) -> UpdateResult :
@@ -959,7 +960,7 @@ def update_one(
959
960
collation : Optional [_CollationIn ] = None ,
960
961
array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
961
962
hint : Optional [_IndexKeyHint ] = None ,
962
- session : Optional [" ClientSession" ] = None ,
963
+ session : Optional [ClientSession ] = None ,
963
964
let : Optional [Mapping [str , Any ]] = None ,
964
965
comment : Optional [Any ] = None ,
965
966
) -> UpdateResult :
@@ -1073,7 +1074,7 @@ def update_many(
1073
1074
bypass_document_validation : Optional [bool ] = None ,
1074
1075
collation : Optional [_CollationIn ] = None ,
1075
1076
hint : Optional [_IndexKeyHint ] = None ,
1076
- session : Optional [" ClientSession" ] = None ,
1077
+ session : Optional [ClientSession ] = None ,
1077
1078
let : Optional [Mapping [str , Any ]] = None ,
1078
1079
comment : Optional [Any ] = None ,
1079
1080
) -> UpdateResult :
@@ -1168,7 +1169,7 @@ def update_many(
1168
1169
1169
1170
def drop (
1170
1171
self ,
1171
- session : Optional [" ClientSession" ] = None ,
1172
+ session : Optional [ClientSession ] = None ,
1172
1173
comment : Optional [Any ] = None ,
1173
1174
encrypted_fields : Optional [Mapping [str , Any ]] = None ,
1174
1175
) -> None :
@@ -1306,7 +1307,7 @@ def delete_one(
1306
1307
filter : Mapping [str , Any ],
1307
1308
collation : Optional [_CollationIn ] = None ,
1308
1309
hint : Optional [_IndexKeyHint ] = None ,
1309
- session : Optional [" ClientSession" ] = None ,
1310
+ session : Optional [ClientSession ] = None ,
1310
1311
let : Optional [Mapping [str , Any ]] = None ,
1311
1312
comment : Optional [Any ] = None ,
1312
1313
) -> DeleteResult :
@@ -1373,7 +1374,7 @@ def delete_many(
1373
1374
filter : Mapping [str , Any ],
1374
1375
collation : Optional [_CollationIn ] = None ,
1375
1376
hint : Optional [_IndexKeyHint ] = None ,
1376
- session : Optional [" ClientSession" ] = None ,
1377
+ session : Optional [ClientSession ] = None ,
1377
1378
let : Optional [Mapping [str , Any ]] = None ,
1378
1379
comment : Optional [Any ] = None ,
1379
1380
) -> DeleteResult :
@@ -1769,7 +1770,7 @@ def _cmd(session, server, sock_info, read_preference):
1769
1770
def count_documents (
1770
1771
self ,
1771
1772
filter : Mapping [str , Any ],
1772
- session : Optional [" ClientSession" ] = None ,
1773
+ session : Optional [ClientSession ] = None ,
1773
1774
comment : Optional [Any ] = None ,
1774
1775
** kwargs : Any ,
1775
1776
) -> int :
@@ -1860,7 +1861,7 @@ def _retryable_non_cursor_read(self, func, session):
1860
1861
def create_indexes (
1861
1862
self ,
1862
1863
indexes : Sequence [IndexModel ],
1863
- session : Optional [" ClientSession" ] = None ,
1864
+ session : Optional [ClientSession ] = None ,
1864
1865
comment : Optional [Any ] = None ,
1865
1866
** kwargs : Any ,
1866
1867
) -> List [str ]:
@@ -1952,7 +1953,7 @@ def gen_indexes():
1952
1953
def create_index (
1953
1954
self ,
1954
1955
keys : _IndexKeyHint ,
1955
- session : Optional [" ClientSession" ] = None ,
1956
+ session : Optional [ClientSession ] = None ,
1956
1957
comment : Optional [Any ] = None ,
1957
1958
** kwargs : Any ,
1958
1959
) -> str :
@@ -2071,7 +2072,7 @@ def create_index(
2071
2072
2072
2073
def drop_indexes (
2073
2074
self ,
2074
- session : Optional [" ClientSession" ] = None ,
2075
+ session : Optional [ClientSession ] = None ,
2075
2076
comment : Optional [Any ] = None ,
2076
2077
** kwargs : Any ,
2077
2078
) -> None :
@@ -2107,7 +2108,7 @@ def drop_indexes(
2107
2108
def drop_index (
2108
2109
self ,
2109
2110
index_or_name : _IndexKeyHint ,
2110
- session : Optional [" ClientSession" ] = None ,
2111
+ session : Optional [ClientSession ] = None ,
2111
2112
comment : Optional [Any ] = None ,
2112
2113
** kwargs : Any ,
2113
2114
) -> None :
@@ -2174,7 +2175,7 @@ def drop_index(
2174
2175
2175
2176
def list_indexes (
2176
2177
self ,
2177
- session : Optional [" ClientSession" ] = None ,
2178
+ session : Optional [ClientSession ] = None ,
2178
2179
comment : Optional [Any ] = None ,
2179
2180
) -> CommandCursor [MutableMapping [str , Any ]]:
2180
2181
"""Get a cursor over the index documents for this collection.
@@ -2239,7 +2240,7 @@ def _cmd(session, server, sock_info, read_preference):
2239
2240
2240
2241
def index_information (
2241
2242
self ,
2242
- session : Optional [" ClientSession" ] = None ,
2243
+ session : Optional [ClientSession ] = None ,
2243
2244
comment : Optional [Any ] = None ,
2244
2245
) -> MutableMapping [str , Any ]:
2245
2246
"""Get information on this collection's indexes.
@@ -2282,7 +2283,7 @@ def index_information(
2282
2283
2283
2284
def options (
2284
2285
self ,
2285
- session : Optional [" ClientSession" ] = None ,
2286
+ session : Optional [ClientSession ] = None ,
2286
2287
comment : Optional [Any ] = None ,
2287
2288
) -> MutableMapping [str , Any ]:
2288
2289
"""Get the options set on this collection.
@@ -2361,7 +2362,7 @@ def _aggregate(
2361
2362
def aggregate (
2362
2363
self ,
2363
2364
pipeline : _Pipeline ,
2364
- session : Optional [" ClientSession" ] = None ,
2365
+ session : Optional [ClientSession ] = None ,
2365
2366
let : Optional [Mapping [str , Any ]] = None ,
2366
2367
comment : Optional [Any ] = None ,
2367
2368
** kwargs : Any ,
@@ -2458,7 +2459,7 @@ def aggregate(
2458
2459
def aggregate_raw_batches (
2459
2460
self ,
2460
2461
pipeline : _Pipeline ,
2461
- session : Optional [" ClientSession" ] = None ,
2462
+ session : Optional [ClientSession ] = None ,
2462
2463
comment : Optional [Any ] = None ,
2463
2464
** kwargs : Any ,
2464
2465
) -> RawBatchCursor [_DocumentType ]:
@@ -2509,7 +2510,7 @@ def watch(
2509
2510
batch_size : Optional [int ] = None ,
2510
2511
collation : Optional [_CollationIn ] = None ,
2511
2512
start_at_operation_time : Optional [Timestamp ] = None ,
2512
- session : Optional [" ClientSession" ] = None ,
2513
+ session : Optional [ClientSession ] = None ,
2513
2514
start_after : Optional [Mapping [str , Any ]] = None ,
2514
2515
comment : Optional [Any ] = None ,
2515
2516
full_document_before_change : Optional [str ] = None ,
@@ -2644,7 +2645,7 @@ def watch(
2644
2645
def rename (
2645
2646
self ,
2646
2647
new_name : str ,
2647
- session : Optional [" ClientSession" ] = None ,
2648
+ session : Optional [ClientSession ] = None ,
2648
2649
comment : Optional [Any ] = None ,
2649
2650
** kwargs : Any ,
2650
2651
) -> MutableMapping [str , Any ]:
@@ -2709,7 +2710,7 @@ def distinct(
2709
2710
self ,
2710
2711
key : str ,
2711
2712
filter : Optional [Mapping [str , Any ]] = None ,
2712
- session : Optional [" ClientSession" ] = None ,
2713
+ session : Optional [ClientSession ] = None ,
2713
2714
comment : Optional [Any ] = None ,
2714
2715
** kwargs : Any ,
2715
2716
) -> List :
@@ -2860,7 +2861,7 @@ def find_one_and_delete(
2860
2861
projection : Optional [Union [Mapping [str , Any ], Iterable [str ]]] = None ,
2861
2862
sort : Optional [_IndexList ] = None ,
2862
2863
hint : Optional [_IndexKeyHint ] = None ,
2863
- session : Optional [" ClientSession" ] = None ,
2864
+ session : Optional [ClientSession ] = None ,
2864
2865
let : Optional [Mapping [str , Any ]] = None ,
2865
2866
comment : Optional [Any ] = None ,
2866
2867
** kwargs : Any ,
@@ -2953,7 +2954,7 @@ def find_one_and_replace(
2953
2954
upsert : bool = False ,
2954
2955
return_document : bool = ReturnDocument .BEFORE ,
2955
2956
hint : Optional [_IndexKeyHint ] = None ,
2956
- session : Optional [" ClientSession" ] = None ,
2957
+ session : Optional [ClientSession ] = None ,
2957
2958
let : Optional [Mapping [str , Any ]] = None ,
2958
2959
comment : Optional [Any ] = None ,
2959
2960
** kwargs : Any ,
@@ -3062,7 +3063,7 @@ def find_one_and_update(
3062
3063
return_document : bool = ReturnDocument .BEFORE ,
3063
3064
array_filters : Optional [Sequence [Mapping [str , Any ]]] = None ,
3064
3065
hint : Optional [_IndexKeyHint ] = None ,
3065
- session : Optional [" ClientSession" ] = None ,
3066
+ session : Optional [ClientSession ] = None ,
3066
3067
let : Optional [Mapping [str , Any ]] = None ,
3067
3068
comment : Optional [Any ] = None ,
3068
3069
** kwargs : Any ,
0 commit comments