<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def estimated_document_count(self, **kwargs):
 """Get an estimate of the number of documents in this collection using collection metadata. The :meth:`estimated_document_count` method is **not** supported in a transaction. All optional parameters should be passed as keyword arguments to this method. Valid options include: - `maxTimeMS` (int):
 The maximum amount of time to allow this operation to run, in milliseconds. :Parameters: - `**kwargs` (optional):
 See list of options above. .. versionadded:: 3.7 """

        if 'session' in kwargs:
            raise ConfigurationError(
                'estimated_document_count does not support sessions')
        cmd = SON([('count', self.__name)])
        cmd.update(kwargs)
        return self._count(cmd)