commit 916f492b3bf4bba2903eeaa203fb073f85efaa96 Author: Damian Johnson atagar@torproject.org Date: Mon Aug 5 22:16:27 2019 -0700
Include both method/function for get_server_descriptors
Like stem.descriptor.remote planning to include both function and method counterparts for descriptor fetching. --- stem/descriptor/collector.py | 48 ++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 19 deletions(-)
diff --git a/stem/descriptor/collector.py b/stem/descriptor/collector.py index 04f45bad..e6e605f0 100644 --- a/stem/descriptor/collector.py +++ b/stem/descriptor/collector.py @@ -141,27 +141,13 @@ def get_instance():
def get_server_descriptors(start = None, end = None, cache_to = None, timeout = None, retries = 3): """ - Provides server descriptors for the given time range, sorted oldest to - newest. - - :param datetime.datetime start: time range to begin with - :param datetime.datetime end: time range to end with - :param str cache_to: directory to cache archives into, if an archive is - available here it is not downloaded - :param int timeout: timeout for downloading each individual archive when the - connection becomes idle, no timeout applied if **None** - :param int retires: maximum attempts to impose on a per-archive basis - - :returns: **iterator** of - :class:`~stem.descriptor.server_descriptor.ServerDescriptor` for the given - time range - - :raises: :class:`~stem.DownloadFailed` if the download fails + Shorthand for + :func:`~stem.descriptor.collector.CollecTor.get_server_descriptors` + on our singleton instance. """
- for f in get_instance().files('server-descriptor', start, end): - for desc in f.read(cache_to, timeout = timeout, retries = retries): - yield desc + for desc in get_instance().get_server_descriptors(start, end, cache_to, timeout, retries): + yield desc
class File(object): @@ -383,6 +369,30 @@ class CollecTor(object): self._cached_files = None self._cached_index_at = 0
+ def get_server_descriptors(self, start = None, end = None, cache_to = None, timeout = None, retries = 3): + """ + Provides server descriptors published during the given time range, sorted + oldest to newest. + + :param datetime.datetime start: time range to begin with + :param datetime.datetime end: time range to end with + :param str cache_to: directory to cache archives into, if an archive is + available here it is not downloaded + :param int timeout: timeout for downloading each individual archive when + the connection becomes idle, no timeout applied if **None** + :param int retires: maximum attempts to impose on a per-archive basis + + :returns: **iterator** of + :class:`~stem.descriptor.server_descriptor.ServerDescriptor` for the + given time range + + :raises: :class:`~stem.DownloadFailed` if the download fails + """ + + for f in self.files('server-descriptor', start, end): + for desc in f.read(cache_to, timeout = timeout, retries = retries): + yield desc + def index(self, compression = 'best'): """ Provides the archives available in CollecTor.
tor-commits@lists.torproject.org