Exemplo n.º 1
0
  def test_schema_list_with_restrictions(self):
    pars = Params()
    pars.int('count', min=3, max=10).set(1)
    pars.float('price', min=0.0, max=1.0).set(9.99)

    self.assertEqual(schema_list(pars), [
      {'path': '/count', 'type':'i', 'value':3, 'opts': {'min':3, 'max':10}},
      {'path': '/price', 'type':'f', 'value':1.0, 'opts': {'min':0.0, 'max':1.0}},
    ])
Exemplo n.º 2
0
  def test_set_values(self):
    pars = Params()
    pars.int('count').set(1)
    pars.float('price').set(9.99)

    subpars = Params()
    subpars.bool('flag').set(True)
    pars.group('subgroup', subpars)
    
    set_values(pars, {'count': 5, 'price': 0.5, 'subgroup': {'flag': False}})
    self.assertEqual(pars.get('count').val(), 5)
    self.assertEqual(pars.get('price').val(), 0.5)
    self.assertEqual(pars.get('subgroup').get('flag').val(), False)
Exemplo n.º 3
0
  def test_get_values(self):
    pars = Params()
    pars.int('count').set(1)
    pars.float('price').set(9.99)

    vals = get_values(pars)

    self.assertEqual(vals['count'], 1)
    self.assertEqual(vals['price'], 9.99)
    self.assertEqual(json.loads(json.dumps(vals))['count'], 1)
    self.assertEqual(json.loads(json.dumps(vals))['price'], 9.99)

    pars.get('count').set(100)
    self.assertEqual(get_values(pars)['count'], 100)
Exemplo n.º 4
0
  def test_float(self):
    params = Params()
    param = params.float('value')
    self.assertEqual(param.type, 'f')
    self.assertTrue(isinstance(param, Param))

    param.set('4.81')
    self.assertEqual(param.val(), 4.81)
    param.set('zzz')
    self.assertEqual(param.val(), 4.81)
Exemplo n.º 5
0
  def test_schema_list_with_values(self):
    pars = Params()
    pars.string('name').set('Moby Dick')
    pars.int('count').set(100)
    pars.float('price').set(9.99)
    pars.bool('soldout').set(False)

    details = Params()
    details.int('page_count').set(345)
    details.string('author').set('Herman Melville')
    pars.group('details', details)

    self.assertEqual(schema_list(pars), [
      {'path': '/name', 'type':'s', 'value':'Moby Dick'},
      {'path': '/count', 'type':'i', 'value':100},
      {'path': '/price', 'type':'f', 'value':9.99},
      {'path': '/soldout', 'type':'b', 'value':False},
      {'path': '/details/page_count', 'type':'i','value':345},
      {'path': '/details/author', 'type':'s','value':'Herman Melville'}
    ])
Exemplo n.º 6
0
  def test_schema_list(self):
    pars = Params()
    pars.string('name')
    pars.int('count')
    pars.float('price')
    pars.bool('soldout')

    details = Params()
    details.int('page_count')
    details.string('author')
    pars.group('details', details)

    self.assertEqual(schema_list(pars), [
      {'path': '/name', 'type':'s'},
      {'path': '/count', 'type':'i'},
      {'path': '/price', 'type':'f'},
      {'path': '/soldout', 'type':'b'},
      {'path': '/details/page_count', 'type':'i'},
      {'path': '/details/author', 'type':'s'}
    ])
Exemplo n.º 7
0
    async def main(self):
        # Params
        params = Params()
        self.imageParam = params.image('image')
        fps = params.float('fps', min=0.0, max=5.0)
        snap = params.void('snap')

        fps.set(0.0)
        snap.ontrigger(self.update)

        logger.info(f'Starting websocket server on port: {self.port}')
        wss = WebsocketServer(Server(params),
                              host=self.host,
                              port=self.port,
                              start=False)
        await wss.start_async()

        logger.info(f'Starting webcam')
        self.cap = cv2.VideoCapture(0)

        nextTime = time.time()
        try:
            while True:
                t = time.time()
                hz = fps.val()

                if t >= nextTime and hz > 0.00001:
                    self.update()
                    nextTime = t + 1.0 / hz

                await asyncio.sleep(0.05)

                key = cv2.waitKey(10) & 0xFF

                if key == 27 or key == ord('q'):  # escape or Q
                    break

                if key == ord('s'):
                    self.update()

        except KeyboardInterrupt:
            print("Received Ctrl+C... initiating exit")

        print('Stopping...')
        wss.stop()
Exemplo n.º 8
0
                          default='info')

        opts, args = parser.parse_args()
        lvl = {
            'debug': logging.DEBUG,
            'info': logging.INFO,
            'warning': logging.WARNING,
            'error': logging.ERROR,
            'critical': logging.CRITICAL
        }['debug' if opts.verbose else str(opts.verbosity).lower()]
        logging.basicConfig(level=lvl)

        return opts, args

    opts, args = parse_args()

    params = Params()
    params.string('name')
    params.float('score')
    params.int('level')
    params.bool('highest-score')

    http_server = HttpServer(Server(params))
    try:
        while True:
            time.sleep(0.5)
    except KeyboardInterrupt:
        print("Received Ctrl+C... initiating exit")

    http_server.stop()