]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/nova/__init__.py
Untangle code and remove pylint disables
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / nova / __init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d6ab78cff0a6e7b7fae2153bf41203b57742add9 100644 (file)
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Generic Connection class for Binho Nova to keep track of connection"""
+
+
+class Connection:
+    """Connection class"""
+
+    __instance = None
+
+    @staticmethod
+    def getInstance():
+        """Static access method."""
+        if Connection.__instance is None:
+            Connection()
+        return Connection.__instance
+
+    def __init__(self):
+        """Virtually private constructor."""
+        if Connection.__instance is not None:
+            raise Exception(  # pylint: disable=broad-exception-raised
+                "This class is a singleton!"
+            )
+
+        # pylint: disable=import-outside-toplevel
+        from binhoHostAdapter import binhoHostAdapter
+        from binhoHostAdapter import binhoUtilities
+
+        # pylint: enable=import-outside-toplevel
+        devices = binhoUtilities.listAvailableDevices()
+
+        if len(devices) > 0:
+            Connection.__instance = binhoHostAdapter.binhoHostAdapter(devices[0])
+        else:
+            raise RuntimeError("No Binho Nova found!")