]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/agnostic/__init__.py
Added pre-commit support
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / agnostic / __init__.py
old mode 100644 (file)
new mode 100755 (executable)
index 85670bf..14121d3
@@ -1,31 +1,28 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
 """Allows useful indirection to test Pin naming logic by switching platform in testing
     or provide bootstrapping logic for board identification where auto-detection is not
     feasible (e.g. multiple ESP8266 boards architecturally identical). Once runtime
     environment is established, can choose various routes to make available and re-export
     common modules and operations, depending on platform support
 """
-import gc
 import sys
-gc.collect()
+import adafruit_platformdetect
 
-try:
-    microcontroller = sys.platform
-except:
-    microcontroller = None
+# We intentionally are patching into this namespace as module names so skip the name check.
+# pylint: disable=invalid-name
 
-board = None
-if microcontroller is not None:
-    if microcontroller == "esp8266":  # TODO more conservative board-guessing
-        board = "feather_huzzah"
-    elif microcontroller == "samd21":
-        board = "feather_m0_express"
-    elif microcontroller == "pyboard":
-        microcontroller = "stm32"
-        board = "pyboard"
+# We'll define board and chip id values in agnostic rather than accessing
+# detector directly elsewhere, just in case additional indirection is necessary
+# at some later point:
+
+detector = adafruit_platformdetect.Detector()
+chip_id = detector.chip.id
+board_id = detector.board.id
 
 implementation = sys.implementation.name
 if implementation == "micropython":
     from utime import sleep
-elif implementation == "circuitpython":
+elif implementation in ("circuitpython", "cpython"):
     from time import sleep
-gc.collect()