diff --git a/README.rst b/README.rst index 489a996..2cf7cad 100644 --- a/README.rst +++ b/README.rst @@ -32,6 +32,8 @@ Dependencies This driver depends on: * `Adafruit CircuitPython `_ +* `Adafruit CircuitPython ConnectionManager `_ +* `Adafruit CircuitPython Requests `_ Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading diff --git a/adafruit_espatcontrol/adafruit_espatcontrol_wifimanager.py b/adafruit_espatcontrol/adafruit_espatcontrol_wifimanager.py index c1d5e3f..1bbda76 100755 --- a/adafruit_espatcontrol/adafruit_espatcontrol_wifimanager.py +++ b/adafruit_espatcontrol/adafruit_espatcontrol_wifimanager.py @@ -13,8 +13,9 @@ # pylint: disable=no-name-in-module -import adafruit_requests as requests -import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket +import adafruit_connection_manager +import adafruit_requests +import adafruit_espatcontrol.adafruit_espatcontrol_socket as pool from adafruit_espatcontrol.adafruit_espatcontrol import ESP_ATcontrol try: @@ -53,11 +54,16 @@ def __init__( self.debug = debug self.secrets = secrets self.attempts = attempts - requests.set_socket(socket, esp) self.statuspix = status_pixel self.pixel_status(0) self.enterprise = enterprise + # create requests session + ssl_context = adafruit_connection_manager.create_fake_ssl_context( + pool, self._esp + ) + self._requests = adafruit_requests.Session(pool, ssl_context) + def reset(self, hard_reset: bool = True, soft_reset: bool = False) -> None: """ Perform a hard reset on the ESP @@ -104,7 +110,7 @@ def disconnect(self) -> None: """ self._esp.disconnect() - def get(self, url: str, **kw: Any) -> requests.Response: + def get(self, url: str, **kw: Any) -> adafruit_requests.Response: """ Pass the Get request to requests and update Status NeoPixel @@ -120,12 +126,11 @@ def get(self, url: str, **kw: Any) -> requests.Response: self.connect() self.pixel_status((0, 0, 100)) self.set_conntype(url) - requests.set_socket(socket, self._esp) - return_val = requests.get(url, **kw) + return_val = self._requests.get(url, **kw) self.pixel_status(0) return return_val - def post(self, url: str, **kw: Any) -> requests.Response: + def post(self, url: str, **kw: Any) -> adafruit_requests.Response: """ Pass the Post request to requests and update Status NeoPixel @@ -145,13 +150,12 @@ def post(self, url: str, **kw: Any) -> requests.Response: self.connect() self.pixel_status((0, 0, 100)) self.set_conntype(url) - requests.set_socket(socket, self._esp) - return_val = requests.post(url, **kw) + return_val = self._requests.post(url, **kw) self.pixel_status(0) return return_val - def put(self, url: str, **kw: Any) -> requests.Response: + def put(self, url: str, **kw: Any) -> adafruit_requests.Response: """ Pass the put request to requests and update Status NeoPixel @@ -167,12 +171,11 @@ def put(self, url: str, **kw: Any) -> requests.Response: self.connect() self.pixel_status((0, 0, 100)) self.set_conntype(url) - requests.set_socket(socket, self._esp) - return_val = requests.put(url, **kw) + return_val = self._requests.put(url, **kw) self.pixel_status(0) return return_val - def patch(self, url: str, **kw: Any) -> requests.Response: + def patch(self, url: str, **kw: Any) -> adafruit_requests.Response: """ Pass the patch request to requests and update Status NeoPixel @@ -188,12 +191,11 @@ def patch(self, url: str, **kw: Any) -> requests.Response: self.connect() self.pixel_status((0, 0, 100)) self.set_conntype(url) - requests.set_socket(socket, self._esp) - return_val = requests.patch(url, **kw) + return_val = self._requests.patch(url, **kw) self.pixel_status(0) return return_val - def delete(self, url: str, **kw: Any) -> requests.Response: + def delete(self, url: str, **kw: Any) -> adafruit_requests.Response: """ Pass the delete request to requests and update Status NeoPixel @@ -209,8 +211,7 @@ def delete(self, url: str, **kw: Any) -> requests.Response: self.connect() self.pixel_status((0, 0, 100)) self.set_conntype(url) - requests.set_socket(socket, self._esp) - return_val = requests.delete(url, **kw) + return_val = self._requests.delete(url, **kw) self.pixel_status(0) return return_val diff --git a/examples/esp_atcontrol_AIO_no_wifimanager-enterprise.py b/examples/esp_atcontrol_AIO_no_wifimanager-enterprise.py index b55a131..ca096e8 100644 --- a/examples/esp_atcontrol_AIO_no_wifimanager-enterprise.py +++ b/examples/esp_atcontrol_AIO_no_wifimanager-enterprise.py @@ -7,10 +7,11 @@ import time import board import busio -import adafruit_requests as requests +import adafruit_connection_manager +import adafruit_requests from digitalio import DigitalInOut from digitalio import Direction -import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket +import adafruit_espatcontrol.adafruit_espatcontrol_socket as pool # ESP32 AT @@ -56,7 +57,8 @@ uart, 115200, reset_pin=resetpin, rts_pin=rtspin, debug=debugflag ) -requests.set_socket(socket, esp) +ssl_context = adafruit_connection_manager.create_fake_ssl_context(pool, esp) +requests = adafruit_requests.Session(pool, ssl_context) counter = 0 diff --git a/examples/esp_atcontrol_countviewer.py b/examples/esp_atcontrol_countviewer.py index 671fb4c..aab3b64 100644 --- a/examples/esp_atcontrol_countviewer.py +++ b/examples/esp_atcontrol_countviewer.py @@ -14,8 +14,9 @@ from digitalio import Direction import neopixel from adafruit_ht16k33 import segments -import adafruit_requests as requests -import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket +import adafruit_connection_manager +import adafruit_requests +import adafruit_espatcontrol.adafruit_espatcontrol_socket as pool from adafruit_espatcontrol import adafruit_espatcontrol # Get wifi details and more from a secrets.py file @@ -101,7 +102,9 @@ ) esp.hard_reset() -requests.set_socket(socket, esp) +ssl_context = adafruit_connection_manager.create_fake_ssl_context(pool, esp) +requests = adafruit_requests.Session(pool, ssl_context) + # display if DISPLAY_ATTACHED: # Create the I2C interface. diff --git a/examples/esp_atcontrol_countviewer_enterprise.py b/examples/esp_atcontrol_countviewer_enterprise.py index a13c793..749a68a 100644 --- a/examples/esp_atcontrol_countviewer_enterprise.py +++ b/examples/esp_atcontrol_countviewer_enterprise.py @@ -13,8 +13,9 @@ from digitalio import DigitalInOut from digitalio import Direction import neopixel -import adafruit_requests as requests -import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket +import adafruit_connection_manager +import adafruit_requests +import adafruit_espatcontrol.adafruit_espatcontrol_socket as pool from adafruit_espatcontrol import adafruit_espatcontrol try: @@ -111,7 +112,9 @@ esp.soft_reset() esp.disconnect() -requests.set_socket(socket, esp) +ssl_context = adafruit_connection_manager.create_fake_ssl_context(pool, esp) +requests = adafruit_requests.Session(pool, ssl_context) + # display if DISPLAY_ATTACHED: # Create the I2C interface. diff --git a/examples/esp_atcontrol_simple_enterprise.py b/examples/esp_atcontrol_simple_enterprise.py index 5cc2844..bfaabaa 100644 --- a/examples/esp_atcontrol_simple_enterprise.py +++ b/examples/esp_atcontrol_simple_enterprise.py @@ -6,8 +6,9 @@ import busio from digitalio import DigitalInOut from digitalio import Direction -import adafruit_requests as requests -import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket +import adafruit_connection_manager +import adafruit_requests +import adafruit_espatcontrol.adafruit_espatcontrol_socket as pool from adafruit_espatcontrol import adafruit_espatcontrol @@ -63,8 +64,8 @@ # time.sleep(20) esp.set_autoconnect(False) -requests.set_socket(socket, esp) - +ssl_context = adafruit_connection_manager.create_fake_ssl_context(pool, esp) +requests = adafruit_requests.Session(pool, ssl_context) while True: try: diff --git a/examples/esp_atcontrol_webclient.py b/examples/esp_atcontrol_webclient.py index da50e7f..00b5811 100644 --- a/examples/esp_atcontrol_webclient.py +++ b/examples/esp_atcontrol_webclient.py @@ -6,8 +6,9 @@ import busio from digitalio import DigitalInOut from digitalio import Direction -import adafruit_requests as requests -import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket +import adafruit_connection_manager +import adafruit_requests +import adafruit_espatcontrol.adafruit_espatcontrol_socket as pool from adafruit_espatcontrol import adafruit_espatcontrol @@ -57,7 +58,8 @@ print("Resetting ESP module") esp.hard_reset() -requests.set_socket(socket, esp) +ssl_context = adafruit_connection_manager.create_fake_ssl_context(pool, esp) +requests = adafruit_requests.Session(pool, ssl_context) while True: try: diff --git a/requirements.txt b/requirements.txt index 45266c4..13401af 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,6 @@ Adafruit-Blinka adafruit-circuitpython-typing>=1.4.0 +adafruit-circuitpython-connectionmanager +adafruit-circuitpython-requests pyserial