+\hdZddlmZddlmZmZmZmZddlZddl m Z ddl m Z m Z erddlmZddlmZdd lmZd Zd d Zy) z#MONGODB-AWS Authentication helpers.) annotations) TYPE_CHECKINGAnyMappingTypeNBinary)ConfigurationErrorOperationFailure)_ReadableBuffer)MongoCredential) ConnectionTc ddl}ddlm}m}|d|j dkr tdGdd |j} ||j|j|j|jj}|jd}d d |d } |jd | } | } tdD]8} |j| d}d | d|d} |jd | } | ds8yy#t$r}td|d}~wwxYw#|j $r)}|dt#|d|j$ddd}~wt&$r |dwxYw)zAuthenticate using MONGODB-AWS.rNzhMONGODB-AWS authentication requires pymongo-auth-aws: install with: python -m pip install 'pymongo[aws]')set_cached_credentialsset_use_cached_credentialsT z@MONGODB-AWS authentication requires MongoDB version 4.4 or laterc$eZdZddZddZddZy))_authenticate_aws..AwsSaslContextctS)z#Return the bson.binary.Binary type.r)selfs _/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pymongo/synchronous/auth_aws.py binary_typez5_authenticate_aws..AwsSaslContext.binary_type6sMc,tj|S)zEncode a dictionary to BSON.)bsonencode)rdocs r bson_encodez5_authenticate_aws..AwsSaslContext.bson_encode:s;;s# #rc,tj|S)zDecode BSON to a dictionary.)rdecode)rdatas r bson_decodez5_authenticate_aws..AwsSaslContext.bson_decode>s;;t$ $rN)returnz Type[Binary])rMapping[str, Any]r#bytes)r!r r#r$)__name__ __module__ __qualname__rrr"rrAwsSaslContextr4s  $ %rr*z MONGODB-AWS) saslStart mechanismpayloadz $external r.conversationId) saslContinuer0r.donez (pymongo-auth-aws version ))pymongo_auth_aws ImportErrorr pymongo_auth_aws.authrrmax_wire_versionr* AwsCredentialusernamepasswordmechanism_propertiesaws_session_tokenstepcommandrangePyMongoAuthAwsErrorr __version__ Exception) credentialsconnr4errr*ctxclient_payload client_first server_firstres_cmdexcs r_authenticate_awsrN s t$ q  !cdd %)88 %"  * *$$$$00BB  $%&]~^ ||K> r A XXc)n5N !"./?"@)C ,,{C0C6{ W   A  l  / /t$e./?/K/K.LA N   t$ s<C9B.D5D7D9 D DDE%$E  E)rCr rDrr#None)__doc__ __future__rtypingrrrrr bson.binaryr pymongo.errorsr r bson.typingsr pymongo.auth_sharedr pymongo.synchronous.poolr_IS_SYNCrNr)rrrYs3*"44 ?,33 Dr