Skip to content

Commit

Permalink
Use ssl_context for HTTPS requests to avoid reading certificate files…
Browse files Browse the repository at this point in the history
… on every request (#632)

* Use ssl_context for HTTPS requests to avoid reading certificate files on every request

* Update base.py

Added comment to explain logic

---------

Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com>
  • Loading branch information
serge-rgb and justinpolygon authored Mar 28, 2024
1 parent 0b5fa9b commit 7cb5208
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions polygon/rest/base.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import certifi
import json
import ssl
import urllib3
import inspect
from urllib3.util.retry import Retry
Expand Down Expand Up @@ -66,13 +67,16 @@ def __init__(
backoff_factor=0.1, # [0.0s, 0.2s, 0.4s, 0.8s, 1.6s, ...]
)

# global cache ssl context and use (vs on each init of pool manager)
ssl_context = ssl.create_default_context()
ssl_context.load_verify_locations(certifi.where())

# https://urllib3.readthedocs.io/en/stable/reference/urllib3.poolmanager.html
# https://urllib3.readthedocs.io/en/stable/reference/urllib3.connectionpool.html#urllib3.HTTPConnectionPool
self.client = urllib3.PoolManager(
num_pools=num_pools,
headers=self.headers, # default headers sent with each request.
ca_certs=certifi.where(),
cert_reqs="CERT_REQUIRED",
ssl_context=ssl_context,
retries=retry_strategy, # use the customized Retry instance
)

Expand Down

0 comments on commit 7cb5208

Please sign in to comment.