Exemplo n.º 1
0
 def _add_default_params(self):
   added = False
   for key, param in self.fork_params.items():
     if key not in self.params:
       self.params[key] = param.default
       added = True
     elif not param.is_valid(self.params[key]):
       warning('Value type of user\'s {} param not in allowed types, replacing with default!'.format(key))
       self.params[key] = param.default
       added = True
   return added
Exemplo n.º 2
0
  def get(self, key=None, force_live=False):  # any params you try to get MUST be in fork_params
    param_info = self.param_info(key)
    self._update_params(param_info, force_live)

    if key is None:
      return self._get_all_params()

    self._check_key_exists(key, 'get')
    value = self.params[key]
    if param_info.is_valid(value):  # always valid if no allowed types, otherwise checks to make sure
      return value  # all good, returning user's value

    warning('User\'s value type is not valid! Returning default')  # somehow... it should always be valid
    return param_info.default  # return default value because user's value of key is not in allowed_types to avoid crashing openpilot
Exemplo n.º 3
0
    def get(self,
            key=None,
            force_live=False):  # key=None is dict of all params
        if key is None:
            return self._get_all_params(to_update=force_live)

        self._check_key_exists(key, 'get')
        param_info = self.fork_params[key]
        self._update_params(param_info.live or force_live)
        value = self.params[key]
        if param_info.is_valid(value):
            return value  # all good, returning user's value

        warning('User\'s value type is not valid! Returning default'
                )  # somehow... it should always be valid
        return param_info.default  # return default value because user's value of key is not in allowed_types to avoid crashing openpilot
Exemplo n.º 4
0
#!/usr/bin/env python3
import os
import json
from common.colors import opParams_error as error
from common.colors import opParams_warning as warning
try:
    from common.realtime import sec_since_boot
except ImportError:
    import time
    sec_since_boot = time.time
    warning("Using python time.time() instead of faster sec_since_boot")

travis = False  # replace with travis_checker if you use travis or GitHub Actions


class ValueTypes:
    number = [float, int]
    none_or_number = [type(None), float, int]


class Param:
    def __init__(self,
                 default=None,
                 allowed_types=[],
                 description=None,
                 live=False,
                 hidden=False):
        self.default = default
        if not isinstance(allowed_types, list):
            allowed_types = [allowed_types]
        self.allowed_types = allowed_types