adafruit-circuitpython-ntp 3.0.13__tar.gz → 3.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/PKG-INFO +7 -11
  2. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/README.rst +6 -10
  3. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/adafruit_circuitpython_ntp.egg-info/PKG-INFO +7 -11
  4. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/adafruit_ntp.py +19 -8
  5. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/pyproject.toml +1 -1
  6. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.github/PULL_REQUEST_TEMPLATE/adafruit_circuitpython_pr.md +0 -0
  7. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.github/workflows/build.yml +0 -0
  8. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.github/workflows/failure-help-text.yml +0 -0
  9. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.github/workflows/release_gh.yml +0 -0
  10. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.github/workflows/release_pypi.yml +0 -0
  11. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.gitignore +0 -0
  12. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.pre-commit-config.yaml +0 -0
  13. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.pylintrc +0 -0
  14. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/.readthedocs.yaml +0 -0
  15. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/CODE_OF_CONDUCT.md +0 -0
  16. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/LICENSE +0 -0
  17. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/LICENSES/CC-BY-4.0.txt +0 -0
  18. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/LICENSES/MIT.txt +0 -0
  19. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/LICENSES/Unlicense.txt +0 -0
  20. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/README.rst.license +0 -0
  21. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/adafruit_circuitpython_ntp.egg-info/SOURCES.txt +0 -0
  22. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/adafruit_circuitpython_ntp.egg-info/dependency_links.txt +0 -0
  23. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/adafruit_circuitpython_ntp.egg-info/requires.txt +0 -0
  24. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/adafruit_circuitpython_ntp.egg-info/top_level.txt +0 -0
  25. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/_static/favicon.ico +0 -0
  26. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/_static/favicon.ico.license +0 -0
  27. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/api.rst +0 -0
  28. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/api.rst.license +0 -0
  29. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/conf.py +0 -0
  30. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/examples.rst +0 -0
  31. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/examples.rst.license +0 -0
  32. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/index.rst +0 -0
  33. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/index.rst.license +0 -0
  34. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/docs/requirements.txt +0 -0
  35. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/examples/ntp_connection_manager.py +0 -0
  36. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/examples/ntp_cpython.py +0 -0
  37. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/examples/ntp_set_rtc.py +0 -0
  38. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/examples/ntp_simpletest.py +0 -0
  39. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/optional_requirements.txt +0 -0
  40. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/requirements.txt +0 -0
  41. {adafruit-circuitpython-ntp-3.0.13 → adafruit_circuitpython_ntp-3.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: adafruit-circuitpython-ntp
3
- Version: 3.0.13
3
+ Version: 3.1.0
4
4
  Summary: Network Time Protocol (NTP) helper for Python
5
5
  Author-email: Adafruit Industries <circuitpython@adafruit.com>
6
6
  License: MIT
@@ -78,21 +78,17 @@ Usage Example
78
78
 
79
79
  .. code-block:: python
80
80
 
81
+ import adafruit_connection_manager
81
82
  import adafruit_ntp
82
- import socketpool
83
+ import os
83
84
  import time
84
85
  import wifi
85
86
 
86
- # Get wifi details and more from a secrets.py file
87
- try:
88
- from secrets import secrets
89
- except ImportError:
90
- print("WiFi secrets are kept in secrets.py, please add them there!")
91
- raise
87
+ wifi_ssid = os.getenv("CIRCUITPY_WIFI_SSID")
88
+ wifi_password = os.getenv("CIRCUITPY_WIFI_PASSWORD")
89
+ wifi.radio.connect(wifi_ssid, wifi_password)
92
90
 
93
- wifi.radio.connect(secrets["ssid"], secrets["password"])
94
-
95
- pool = socketpool.SocketPool(wifi.radio)
91
+ pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
96
92
  ntp = adafruit_ntp.NTP(pool, tz_offset=0)
97
93
 
98
94
  while True:
@@ -59,21 +59,17 @@ Usage Example
59
59
 
60
60
  .. code-block:: python
61
61
 
62
+ import adafruit_connection_manager
62
63
  import adafruit_ntp
63
- import socketpool
64
+ import os
64
65
  import time
65
66
  import wifi
66
67
 
67
- # Get wifi details and more from a secrets.py file
68
- try:
69
- from secrets import secrets
70
- except ImportError:
71
- print("WiFi secrets are kept in secrets.py, please add them there!")
72
- raise
68
+ wifi_ssid = os.getenv("CIRCUITPY_WIFI_SSID")
69
+ wifi_password = os.getenv("CIRCUITPY_WIFI_PASSWORD")
70
+ wifi.radio.connect(wifi_ssid, wifi_password)
73
71
 
74
- wifi.radio.connect(secrets["ssid"], secrets["password"])
75
-
76
- pool = socketpool.SocketPool(wifi.radio)
72
+ pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
77
73
  ntp = adafruit_ntp.NTP(pool, tz_offset=0)
78
74
 
79
75
  while True:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: adafruit-circuitpython-ntp
3
- Version: 3.0.13
3
+ Version: 3.1.0
4
4
  Summary: Network Time Protocol (NTP) helper for Python
5
5
  Author-email: Adafruit Industries <circuitpython@adafruit.com>
6
6
  License: MIT
@@ -78,21 +78,17 @@ Usage Example
78
78
 
79
79
  .. code-block:: python
80
80
 
81
+ import adafruit_connection_manager
81
82
  import adafruit_ntp
82
- import socketpool
83
+ import os
83
84
  import time
84
85
  import wifi
85
86
 
86
- # Get wifi details and more from a secrets.py file
87
- try:
88
- from secrets import secrets
89
- except ImportError:
90
- print("WiFi secrets are kept in secrets.py, please add them there!")
91
- raise
87
+ wifi_ssid = os.getenv("CIRCUITPY_WIFI_SSID")
88
+ wifi_password = os.getenv("CIRCUITPY_WIFI_PASSWORD")
89
+ wifi.radio.connect(wifi_ssid, wifi_password)
92
90
 
93
- wifi.radio.connect(secrets["ssid"], secrets["password"])
94
-
95
- pool = socketpool.SocketPool(wifi.radio)
91
+ pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
96
92
  ntp = adafruit_ntp.NTP(pool, tz_offset=0)
97
93
 
98
94
  while True:
@@ -22,10 +22,14 @@ Implementation Notes
22
22
  import struct
23
23
  import time
24
24
 
25
- __version__ = "3.0.13"
25
+ from micropython import const
26
+
27
+
28
+ __version__ = "3.1.0"
26
29
  __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_NTP.git"
27
30
 
28
31
  NTP_TO_UNIX_EPOCH = 2208988800 # 1970-01-01 00:00:00
32
+ PACKET_SIZE = const(48)
29
33
 
30
34
 
31
35
  class NTP:
@@ -55,7 +59,8 @@ class NTP:
55
59
  self._pool = socketpool
56
60
  self._server = server
57
61
  self._port = port
58
- self._packet = bytearray(48)
62
+ self._socket_address = None
63
+ self._packet = bytearray(PACKET_SIZE)
59
64
  self._tz_offset = int(tz_offset * 60 * 60)
60
65
  self._socket_timeout = socket_timeout
61
66
 
@@ -71,21 +76,27 @@ class NTP:
71
76
  unless there has already been a recent request. Raises OSError exception if no response
72
77
  is received within socket_timeout seconds"""
73
78
  if time.monotonic_ns() > self.next_sync:
79
+ if self._socket_address is None:
80
+ self._socket_address = self._pool.getaddrinfo(self._server, self._port)[
81
+ 0
82
+ ][4]
83
+
74
84
  self._packet[0] = 0b00100011 # Not leap second, NTP version 4, Client mode
75
- for i in range(1, len(self._packet)):
85
+ for i in range(1, PACKET_SIZE):
76
86
  self._packet[i] = 0
77
87
  with self._pool.socket(self._pool.AF_INET, self._pool.SOCK_DGRAM) as sock:
88
+ # Since the ESP32SPI doesn't support sendto, we are using
89
+ # connect + send to standardize code
78
90
  sock.settimeout(self._socket_timeout)
79
- sock.sendto(self._packet, (self._server, self._port))
80
- sock.recvfrom_into(self._packet)
91
+ sock.connect(self._socket_address)
92
+ sock.send(self._packet)
93
+ sock.recv_into(self._packet)
81
94
  # Get the time in the context to minimize the difference between it and receiving
82
95
  # the packet.
83
96
  destination = time.monotonic_ns()
84
97
  poll = struct.unpack_from("!B", self._packet, offset=2)[0]
85
98
  self.next_sync = destination + (2**poll) * 1_000_000_000
86
- seconds = struct.unpack_from(
87
- "!I", self._packet, offset=len(self._packet) - 8
88
- )[0]
99
+ seconds = struct.unpack_from("!I", self._packet, offset=PACKET_SIZE - 8)[0]
89
100
  self._monotonic_start = (
90
101
  seconds
91
102
  + self._tz_offset
@@ -12,7 +12,7 @@ requires = [
12
12
  [project]
13
13
  name = "adafruit-circuitpython-ntp"
14
14
  description = "Network Time Protocol (NTP) helper for Python"
15
- version = "3.0.13"
15
+ version = "3.1.0"
16
16
  readme = "README.rst"
17
17
  authors = [
18
18
  {name = "Adafruit Industries", email = "circuitpython@adafruit.com"}