o Sb@sdZddlZddlZddlZddlmZmZmZmZm Z m Z m Z ddl m Z ddlmZddlmZddlmZGdd d Zd d ZGd d d eeZdS)z2Helpers for the 'hello' and legacy hello commands.N)AnyGenericListMappingOptionalSetTuple)ObjectId)common) SERVER_TYPE) _DocumentTypec@s eZdZdZdZdZdZdZdS) HelloCompatZhelloZismasterZisWritablePrimaryz not masterN)__name__ __module__ __qualname__ZCMDZ LEGACY_CMDPRIMARYLEGACY_PRIMARYZ LEGACY_ERRORrr4/tmp/pip-target-onvjaxws/lib/python/pymongo/hello.pyr s r cCs|dstjS|drtjS|drtjS|drJ|dr%tjS|tjr.tjS|tj r7tjS|dr?tj S|drGtj StjS|dd krTtj Stj S) z0Determine the server type from a hello response.ok serviceIdZ isreplicasetsetNameZhiddenZ secondaryZ arbiterOnlymsgZisdbgrid)getr Unknown LoadBalancerZRSGhostZRSOtherr r RSPrimaryr RSSecondaryZ RSArbiterMongos Standalone)docrrr_get_server_type$s*         r!c@sveZdZdZdZd>dededdfdd Zedefd d Z ede fd d Z ede e ee ffddZedeeeffddZedee ee ffddZedeefddZede fddZede fddZede fddZede fddZede fddZedee fd d!Zedeefd"d#Zedeeeeffd$d%Zedee fd&d'Zedefd(d)Z edefd*d+Z!edee ee ffd,d-Z"edee#j#fd.d/Z$edee%efd0d1Z&ede%efd2d3Z'edeeeeffd4d5Z(edeeeeffd6d7Z)edefd8d9Z*edeefd:d;Z+edefd>> hello.sasl_supported_mechs ["SCRAM-SHA-1", "SCRAM-SHA-256"] ZsaslSupportedMechsr;r/rrrsasl_supported_mechss zHello.sasl_supported_mechscCr=)z"The speculativeAuthenticate field.ZspeculativeAuthenticater;r/rrrspeculative_authenticater?zHello.speculative_authenticatecCr=)NZtopologyVersionr;r/rrrtopology_versionrJzHello.topology_versioncCr1r*)r'r/rrrr(r2zHello.awaitablecCr=)Nrr;r/rrr service_idrJzHello.service_idcCs|jddS)NZhelloOkFr;r/rrrhello_okszHello.hello_ok)F)-rrr__doc__ __slots__r boolr-propertyr0intr+rrstrr9rrr:rr<r>rArDrFrGrHrIr rKrLrMrNrOrPdatetimerQrrSrTrUrVr(rWrXrrrrr"@sp   r")rYr.r_r7typingrrrrrrrZ bson.objectidr Zpymongor Zpymongo.server_typer Zpymongo.typingsr r r!r"rrrrs$