winter-telescope / winterapi

API interactions for WINTER
MIT License
1 stars 0 forks source link

ReadTimeout when submitting a ToO #42

Open geoffreymo opened 5 months ago

geoffreymo commented 5 months ago

Pinging the server and checking users and programs works fine, but when submitting a ToO, I get this error.

api_res, api_schedule = winter.submit_too(
    program_name=program,
    data=too_list,
    submit_trigger=False
)
---------------------------------------------------------------------------
TimeoutError                              Traceback (most recent call last)
File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:536, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)
    [535](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:535) try:
--> [536](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:536)     response = conn.getresponse()
    [537](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:537) except (BaseSSLError, OSError) as e:

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connection.py:461, in HTTPConnection.getresponse(self)
    [460](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connection.py:460) # Get the response from http.client.HTTPConnection
--> [461](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connection.py:461) httplib_response = super().getresponse()
    [463](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connection.py:463) try:

File ~/miniconda3/envs/winter/lib/python3.11/http/client.py:1378, in HTTPConnection.getresponse(self)
   [1377](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:1377) try:
-> [1378](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:1378)     response.begin()
   [1379](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:1379) except ConnectionError:

File ~/miniconda3/envs/winter/lib/python3.11/http/client.py:318, in HTTPResponse.begin(self)
    [317](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:317) while True:
--> [318](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:318)     version, status, reason = self._read_status()
    [319](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:319)     if status != CONTINUE:

File ~/miniconda3/envs/winter/lib/python3.11/http/client.py:279, in HTTPResponse._read_status(self)
    [278](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:278) def _read_status(self):
--> [279](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:279)     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
    [280](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/http/client.py:280)     if len(line) > _MAXLINE:

File ~/miniconda3/envs/winter/lib/python3.11/socket.py:706, in SocketIO.readinto(self, b)
    [705](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/socket.py:705) try:
--> [706](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/socket.py:706)     return self._sock.recv_into(b)
    [707](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/socket.py:707) except timeout:

TimeoutError: timed out

The above exception was the direct cause of the following exception:

ReadTimeoutError                          Traceback (most recent call last)
File ~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:486, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    [485](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:485) try:
--> [486](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:486)     resp = conn.urlopen(
    [487](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:487)         method=request.method,
    [488](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:488)         url=url,
    [489](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:489)         body=request.body,
    [490](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:490)         headers=request.headers,
    [491](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:491)         redirect=False,
    [492](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:492)         assert_same_host=False,
    [493](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:493)         preload_content=False,
    [494](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:494)         decode_content=False,
    [495](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:495)         retries=self.max_retries,
    [496](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:496)         timeout=timeout,
    [497](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:497)         chunked=chunked,
    [498](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:498)     )
    [500](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:500) except (ProtocolError, OSError) as err:

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:844, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)
    [842](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:842)     new_e = ProtocolError("Connection aborted.", new_e)
--> [844](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:844) retries = retries.increment(
    [845](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:845)     method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
    [846](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:846) )
    [847](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:847) retries.sleep()

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/retry.py:470, in Retry.increment(self, method, url, response, error, _pool, _stacktrace)
    [469](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/retry.py:469) if read is False or method is None or not self._is_method_retryable(method):
--> [470](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/retry.py:470)     raise reraise(type(error), error, _stacktrace)
    [471](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/retry.py:471) elif read is not None:

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/util.py:39, in reraise(tp, value, tb)
     [38](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/util.py:38)         raise value.with_traceback(tb)
---> [39](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/util.py:39)     raise value
     [40](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/util/util.py:40) finally:

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:790, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)
    [789](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:789) # Make the request on the HTTPConnection object
--> [790](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:790) response = self._make_request(
    [791](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:791)     conn,
    [792](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:792)     method,
    [793](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:793)     url,
    [794](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:794)     timeout=timeout_obj,
    [795](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:795)     body=body,
    [796](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:796)     headers=headers,
    [797](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:797)     chunked=chunked,
    [798](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:798)     retries=retries,
    [799](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:799)     response_conn=response_conn,
    [800](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:800)     preload_content=preload_content,
    [801](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:801)     decode_content=decode_content,
    [802](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:802)     **response_kw,
    [803](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:803) )
    [805](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:805) # Everything went great!

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:538, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)
    [537](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:537) except (BaseSSLError, OSError) as e:
--> [538](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:538)     self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
    [539](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:539)     raise

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:370, in HTTPConnectionPool._raise_timeout(self, err, url, timeout_value)
    [369](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:369) if isinstance(err, SocketTimeout):
--> [370](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:370)     raise ReadTimeoutError(
    [371](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:371)         self, url, f"Read timed out. (read timeout={timeout_value})"
    [372](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:372)     ) from err
    [374](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/urllib3/connectionpool.py:374) # See the above comment about EAGAIN in Python 3.

ReadTimeoutError: HTTPConnectionPool(host='winter.caltech.edu', port=82): Read timed out. (read timeout=30.0)

During handling of the above exception, another exception occurred:

ReadTimeout                               Traceback (most recent call last)
Cell In[23], [line 3](vscode-notebook-cell:?execution_count=23&line=3)
      [1](vscode-notebook-cell:?execution_count=23&line=1) # If submit_trigger is False, the API will just check the schedule but not put in a ToO
      [2](vscode-notebook-cell:?execution_count=23&line=2) # Set this to True to actually trigger!
----> [3](vscode-notebook-cell:?execution_count=23&line=3) api_res, api_schedule = winter.submit_too(
      [4](vscode-notebook-cell:?execution_count=23&line=4)     program_name=program,
      [5](vscode-notebook-cell:?execution_count=23&line=5)     data=too_list,
      [6](vscode-notebook-cell:?execution_count=23&line=6)     submit_trigger=False
      [7](vscode-notebook-cell:?execution_count=23&line=7) )

File ~/winter/winterapi/winterapi/messenger.py:278, in WinterAPI.submit_too(self, program_name, data, submit_trigger)
    [276](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:276) for entry in data:
    [277](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:277)     assert isinstance(entry, Winter), f"Entry {entry} is not a Winter ToO"
--> [278](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:278) return self._submit_too(
    [279](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:279)     program_name=program_name,
    [280](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:280)     url=WINTER_TOO_URL,
    [281](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:281)     data=data,
    [282](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:282)     submit_trigger=submit_trigger,
    [283](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:283) )

File ~/winter/winterapi/winterapi/messenger.py:246, in WinterAPI._submit_too(self, program_name, url, data, submit_trigger)
    [235](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:235) """
    [236](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:236) Protected method to submit TOO requests
    [237](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:237) 
   (...)
    [242](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:242) :return: API response and TOO schedule
    [243](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:243) """
    [244](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:244) program = self.get_program_details(program_name=program_name)
--> [246](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:246) res = self.post(
    [247](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:247)     url=url,
    [248](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:248)     data=data,
    [249](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:249)     program_name=program_name,
    [250](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:250)     program_api_key=program.prog_key,
    [251](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:251)     submit_trigger=submit_trigger,
    [252](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:252) )
    [254](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:254) logger.info(res.json()["msg"])
    [256](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/messenger.py:256) schedule = pd.DataFrame(res.json()["body"])

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:105, in retry_exception.<locals>.retry(*args, **kwargs)
     [96](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:96) details = {
     [97](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:97)     "target": target,
     [98](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:98)     "args": args,
   (...)
    [101](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:101)     "elapsed": elapsed,
    [102](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:102) }
    [104](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:104) try:
--> [105](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:105)     ret = target(*args, **kwargs)
    [106](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:106) except exception as e:
    [107](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/backoff/_sync.py:107)     max_tries_exceeded = (tries == max_tries_value)

File ~/winter/winterapi/winterapi/base_api.py:108, in BaseAPI.post(self, url, data, auth, **kwargs)
    [104](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:104)     auth = self.get_auth()
    [106](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:106) convert = self.clean_data(data)
--> [108](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:108) res = requests.post(
    [109](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:109)     url, data=convert, auth=auth, params=kwargs, timeout=MAX_TIMEOUT
    [110](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:110) )
    [112](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:112) if res.status_code != 200:
    [113](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/winter/winterapi/winterapi/base_api.py:113)     err = f"API call failed with '{res}: {res.text}'"

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:115, in post(url, data, json, **kwargs)
    [103](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:103) def post(url, data=None, json=None, **kwargs):
    [104](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:104)     r"""Sends a POST request.
    [105](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:105) 
    [106](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:106)     :param url: URL for the new :class:`Request` object.
   (...)
    [112](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:112)     :rtype: requests.Response
    [113](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:113)     """
--> [115](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:115)     return request("post", url, data=data, json=json, **kwargs)

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:59, in request(method, url, **kwargs)
     [55](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:55) # By using the 'with' statement we are sure the session is closed, thus we
     [56](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:56) # avoid leaving sockets open which can trigger a ResourceWarning in some
     [57](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:57) # cases, and look like a memory leak in others.
     [58](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:58) with sessions.Session() as session:
---> [59](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/api.py:59)     return session.request(method=method, url=url, **kwargs)

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:589, in Session.request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
    [584](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:584) send_kwargs = {
    [585](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:585)     "timeout": timeout,
    [586](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:586)     "allow_redirects": allow_redirects,
    [587](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:587) }
    [588](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:588) send_kwargs.update(settings)
--> [589](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:589) resp = self.send(prep, **send_kwargs)
    [591](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:591) return resp

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:703, in Session.send(self, request, **kwargs)
    [700](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:700) start = preferred_clock()
    [702](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:702) # Send the request
--> [703](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:703) r = adapter.send(request, **kwargs)
    [705](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:705) # Total elapsed time of the request (approximately)
    [706](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/sessions.py:706) elapsed = preferred_clock() - start

File ~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:532, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    [530](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:530)     raise SSLError(e, request=request)
    [531](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:531) elif isinstance(e, ReadTimeoutError):
--> [532](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:532)     raise ReadTimeout(e, request=request)
    [533](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:533) elif isinstance(e, _InvalidHeader):
    [534](https://file+.vscode-resource.vscode-cdn.net/Users/gmo/winter/winterapi/mynotebooks/~/miniconda3/envs/winter/lib/python3.11/site-packages/requests/adapters.py:534)     raise InvalidHeader(e, request=request)

ReadTimeout: HTTPConnectionPool(host='winter.caltech.edu', port=82): Read timed out. (read timeout=30.0)
geoffreymo commented 5 months ago

Trying again a few more times worked, not sure if something is unstable on the server end?