+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`adafruit_blinka` - Runtime utility objects for re-implementation of CircuitPython API
======================================================================================
* Author(s): cefn
"""
-class Enum():
+
+class Enum:
"""
- Object supporting CircuitPython-style of static symbols
- as seen with Direction.OUTPUT, Pull.UP
+ Object supporting CircuitPython-style of static symbols
+ as seen with Direction.OUTPUT, Pull.UP
"""
def __repr__(self):
@classmethod
def iteritems(cls):
"""
- Inspects attributes of the class for instances of the class
- and returns as key,value pairs mirroring dict#iteritems
+ Inspects attributes of the class for instances of the class
+ and returns as key,value pairs mirroring dict#iteritems
"""
for key in dir(cls):
val = getattr(cls, key)
class ContextManaged:
"""An object that automatically deinitializes hardware with a context manager."""
+
def __enter__(self):
return self
def deinit(self):
"""Free any hardware used by the object."""
return
+
# pylint: enable=no-self-use
class Lockable(ContextManaged):
"""An object that must be locked to prevent collisions on a microcontroller resource."""
+
_locked = False
def try_lock(self):
"""Release the lock so others may use the resource."""
if self._locked:
self._locked = False
- else:
- raise ValueError("Not locked")
+
def patch_system():
"""Patch modules that may be different due to the platform."""
+ # pylint: disable=import-outside-toplevel
import sys
from adafruit_blinka.agnostic import time
- sys.modules['time'] = time
+
+ # pylint: enable=import-outside-toplevel
+
+ sys.modules["time"] = time