From 687b8f70580bbd74a01e8a5411e94a23ec5f65b7 Mon Sep 17 00:00:00 2001 From: femtotrader Date: Thu, 8 Sep 2016 09:44:37 +0200 Subject: [PATCH] ENH: add a timeout parameter (EDGAR tests hanging) --- pandas_datareader/base.py | 3 ++- pandas_datareader/edgar.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas_datareader/base.py b/pandas_datareader/base.py index fab2c4c3..a56b1099 100644 --- a/pandas_datareader/base.py +++ b/pandas_datareader/base.py @@ -44,7 +44,7 @@ class _BaseReader(object): _format = 'string' def __init__(self, symbols, start=None, end=None, - retry_count=3, pause=0.1, session=None): + retry_count=3, pause=0.1, timeout=30, session=None): self.symbols = symbols start, end = self._sanitize_dates(start, end) @@ -55,6 +55,7 @@ def __init__(self, symbols, start=None, end=None, raise ValueError("'retry_count' must be integer larger than 0") self.retry_count = retry_count self.pause = pause + self.timeout = timeout self.session = self._init_session(session, retry_count) def _init_session(self, session, retry_count): diff --git a/pandas_datareader/edgar.py b/pandas_datareader/edgar.py index 98433121..75597208 100644 --- a/pandas_datareader/edgar.py +++ b/pandas_datareader/edgar.py @@ -154,7 +154,7 @@ def _fix_old_file_paths(self, path): def read(self): try: - self._sec_ftp_session = FTP(_SEC_FTP) + self._sec_ftp_session = FTP(_SEC_FTP, timeout=self.timeout) self._sec_ftp_session.login() except EOFError: raise RemoteDataError('FTP server has closed the connection.')