Module: CameraManager ===================== """ from uuid import uuid4 from circuits import Timer, Event from circuits.tools import tryimport # TODO: Kick out 2.x compat import six from isomer.component import ConfigurableComponent, authorized_event, handler from isomer.events.client import send from isomer.logger import error, debug opencv = tryimport("cv2") # Camera requests class camera_list(authorized_event): """A new camera event has been generated by the client""" class camera_subscribe(authorized_event): """A new camera event has been generated by the client""" class camera_unsubscribe(authorized_event): """A new camera event has been generated by the client"""
def test_tryimport_fail(): m = tryimport("asdf") assert m is None
"""JSON RPC This module implements a JSON RPC dispatcher that translates incoming RPC calls over JSON into RPC events. """ from circuits.tools import tryimport json = tryimport(("json", "simplejson")) from circuits.six import binary_type from circuits import handler, Event, BaseComponent class rpc(Event): """RPC Event""" class JSONRPC(BaseComponent): channel = "web" def __init__(self, path=None, encoding="utf-8", rpc_channel="*"): super(JSONRPC, self).__init__() if json is None: raise RuntimeError("No json support available") self.path = path self.encoding = encoding
def test_tryimport(): import os m = tryimport("os") assert m is os
def test_tryimport_obj(): from os import path m = tryimport("os", "path") assert m is path
"""Serial I/O This module implements basic Serial (RS232) I/O. """ from collections import deque from circuits.core import Component, Event, handler from circuits.core.pollers import BasePoller, Poller from circuits.core.utils import findcmp from circuits.six import binary_type from circuits.tools import tryimport from .events import close, closed, error, opened, read, ready serial = tryimport("serial") TIMEOUT = 0.2 BUFSIZE = 4096 class _open(Event): """_open Event""" class Serial(Component): channel = "serial" def __init__(self, port, baudrate=115200,
"""JSON RPC This module implements a JSON RPC dispatcher that translates incoming RPC calls over JSON into RPC events. """ from circuits.tools import tryimport json = tryimport(("json", "simplejson")) from circuits.six import binary_type from circuits import handler, Event, BaseComponent class rpc(Event): """RPC Event""" class JSONRPC(BaseComponent): channel = "web" def __init__(self, path=None, encoding="utf-8", rpc_channel="*"): super(JSONRPC, self).__init__() if json is None: raise RuntimeError("No json support available") self.path = path self.encoding = encoding self.rpc_channel = rpc_channel
from operator import itemgetter from sys import exc_info as _exc_info from traceback import format_tb from types import GeneratorType from circuits.core import BaseComponent, handler from circuits.tools import tryimport from circuits.web import wrappers from .dispatchers import Dispatcher from .errors import httperror from .events import request from .headers import Headers from .http import HTTP StringIO = tryimport(("cStringIO", "StringIO", "io"), "StringIO") def create_environ(errors, path, req): environ = {} env = environ.__setitem__ env("REQUEST_METHOD", req.method) env("SERVER_NAME", req.host.split(":", 1)[0]) env("SERVER_PORT", "%i" % (req.server.port or 0)) env("SERVER_PROTOCOL", "HTTP/%d.%d" % req.server.http.protocol) env("QUERY_STRING", req.qs) env("SCRIPT_NAME", req.script_name) env("CONTENT_TYPE", req.headers.get("Content-Type", "")) env("CONTENT_LENGTH", req.headers.get("Content-Length", "")) env("REMOTE_ADDR", req.remote.ip)
""" __author__ = "Heiko 'riot' Weinen <*****@*****.**>" from uuid import uuid4 from circuits import Component, handler, Timer, Event from circuits.tools import tryimport import six from hfos.events import send from hfos.logger import hfoslog, error, debug opencv = tryimport("cv2") class CameraManager(Component): """ Handles camera updates, subscriptions and broadcasts """ channel = "cam" def __init__(self, maxcams=16, *args): super(CameraManager, self).__init__(*args) self._cameras = {} self._subscribers = {} self._filming = True
"""Serial I/O This module implements basic Serial (RS232) I/O. """ from collections import deque from circuits.core import Component, Event, handler from circuits.core.pollers import BasePoller, Poller from circuits.core.utils import findcmp from circuits.six import binary_type from circuits.tools import tryimport from .events import close, closed, error, opened, read, ready serial = tryimport("serial") TIMEOUT = 0.2 BUFSIZE = 4096 class _open(Event): """_open Event""" class Serial(Component): channel = "serial" def __init__(self, port, baudrate=115200, bufsize=BUFSIZE, timeout=TIMEOUT, channel=channel):
from collections import deque from os import read as fd_read from os import write as fd_write from sys import getdefaultencoding from errno import EINTR, EWOULDBLOCK from circuits.tools import tryimport from circuits.core.utils import findcmp from circuits.core import handler, Component, Event from circuits.core.pollers import BasePoller, Poller from circuits.six import binary_type, string_types, PY3 from .events import close, closed, eof, error, opened, read, ready fcntl = tryimport("fcntl") TIMEOUT = 0.2 BUFSIZE = 4096 class _open(Event): """_open Event""" class File(Component): channel = "file" def init(self, filename, mode="r", bufsize=BUFSIZE, encoding=None,
""" try: from urllib.parse import unquote except ImportError: from urllib import unquote # NOQA from operator import itemgetter from traceback import format_tb from types import GeneratorType from sys import exc_info as _exc_info from circuits.tools import tryimport from circuits.core import handler, BaseComponent StringIO = tryimport(("cStringIO", "StringIO", "io"), "StringIO") from .http import HTTP from .events import request from .headers import Headers from .errors import httperror from circuits.web import wrappers from .dispatchers import Dispatcher def create_environ(errors, path, req): environ = {} env = environ.__setitem__ env("REQUEST_METHOD", req.method) env("SERVER_NAME", req.host.split(":", 1)[0])
pass from collections import deque from errno import EINTR, EWOULDBLOCK from os import read as fd_read, write as fd_write from sys import getdefaultencoding from circuits.core import Component, Event, handler from circuits.core.pollers import BasePoller, Poller from circuits.core.utils import findcmp from circuits.six import PY3, binary_type, string_types from circuits.tools import tryimport from .events import close, closed, eof, error, opened, read, ready fcntl = tryimport("fcntl") TIMEOUT = 0.2 BUFSIZE = 4096 class _open(Event): """_open Event""" class File(Component): channel = "file" def init(self, filename, mode="r", bufsize=BUFSIZE, encoding=None,