code: def encode(cls, document, check_keys=False,
                 codec_options=DEFAULT_CODEC_OPTIONS):
          
          if not isinstance(codec_options, CodecOptions):
              raise _CODEC_OPTIONS_TYPE_ERROR
  
          return cls(_dict_to_bson(document, check_keys, codec_options))
docs: Encode a document to a new :class:`BSON` instance.
  
          A document can be any mapping type (like :class:`dict`).
  
          Raises :class:`TypeError` if `document` is not a mapping type,
          or contains keys that are not instances of
          :class:`basestring` (:class:`str` in python 3). Raises
          :class:`~bson.errors.InvalidDocument` if `document` cannot be
          converted to :class:`BSON`.
  
          :Parameters:
            - `document`: mapping type representing a document
            - `check_keys` (optional): check if keys start with '$' or
              contain '.', raising :class:`~bson.errors.InvalidDocument` in
              either case
            - `codec_options` (optional): An instance of
              :class:`~bson.codec_options.CodecOptions`.
  
          .. versionchanged:: 3.0
             Replaced `uuid_subtype` option with `codec_options`.