Source code for cannycam.util
import os
ESCAPE_ASCII = 27
XML_DIRECTORY = os.path.join(os.path.dirname(os.path.abspath(__file__)), "xmls")
[docs]def apply_doc(source):
"""
Decorator that will prepend ``source``'s docstring to the decorated \
object's docstring.
:param source: Object with docstring to be prepended onto the decorated object.
"""
def decorator(target):
source_doc = source.__doc__
if target.__doc__ is None:
target.__doc__ = source_doc
else:
target.__doc__ = "\n".join((source_doc, target.__doc__))
return target
return decorator
[docs]def get_cascade_file_path(cascade_file):
"""
Formats a full filepath to the XML ``cascade_file`` in the ``xmls`` directory.
:param cascade_file: XML file.
"""
return os.path.join(XML_DIRECTORY, cascade_file)
[docs]def is_escape(key):
"""
Determines if ``key`` is the ESC key.
:param key: Key to check.
"""
return key == ESCAPE_ASCII
[docs]def wait_frames(throttle):
"""
Returns a generator that yields every ``throttle`` frames.
:param throttle: Number of frames to wait before yielding.
"""
i = 0
while True:
if i == throttle:
i = 0
yield
i += 1