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.')