def __init__(self, client, key_vault_coll, mongocryptd_client, opts):
        """Internal class to perform I/O on behalf of pymongocrypt."""
        # Use a weak ref to break reference cycle.
        if client is not None:
            self.client_ref = weakref.ref(client)
        else:
            self.client_ref = None
        self.key_vault_coll = key_vault_coll.with_options(
            codec_options=_KEY_VAULT_OPTS,
            read_concern=ReadConcern(level='majority'),
            write_concern=WriteConcern(w='majority'))
        self.mongocryptd_client = mongocryptd_client
        self.opts = opts
        self._spawned = False
Internal class to perform I/O on behalf of pymongocrypt.
stackoverflow/venv/lib/python3.6/site-packages/pymongo/encryption.py