Ejemplo n.º 1
0
    def check_contract(self, context, value, silent):
        type_ob = self.resolve()
        context[ID] = self.type_ob

        if self.is_iface:
            if not type_ob.providedBy(value):
                error = 'Expected implementation of %r, got %s.' % (
                    self.type_ob.__name__, describe_type(value))
                raise ContractNotRespected(
                    contract=self, error=error, value=value, context=context)
        elif not isinstance(value, type_ob):
            error = 'Expected type %r, got %s.' % (
                self.type_ob.__name__, describe_type(value))
            raise ContractNotRespected(
                contract=self, error=error, value=value, context=context)
Ejemplo n.º 2
0
 def save(self, obj):
     desc = "object of type %s" % (describe_type(obj))
     # , describe_value(obj, 100))
     #  self.stack.append(describe_value(obj, 120))
     self.stack.append(desc)
     Pickler.save(self, obj)
     self.stack.pop()
Ejemplo n.º 3
0
 def check_contract(self, context, value, silent):
     if not isinstance(value, self.types):
         from contracts.interface import describe_type
         error = 'Expected type %r, got %s.' % (self.types.__name__,
                                                describe_type(value))
         raise ContractNotRespected(contract=self, error=error,
                                    value=value, context=context)
Ejemplo n.º 4
0
 def check_contract(self, context, value, silent):
     if not isinstance(value, self.types):
         from contracts.interface import describe_type
         error = 'Expected type %r, got %s.' % (self.types.__name__,
                                                describe_type(value))
         raise ContractNotRespected(contract=self, error=error,
                                    value=value, context=context)
Ejemplo n.º 5
0
def np_zeroshape_array(x):
#     scalars = [ 
#     np.int,  # Platform integer (normally either int32 or int64)
#     np.int8,  # Byte (-128 to 127)
#     np.int16,  # Integer (-32768 to 32767)
#     np.int32,  # Integer (-2147483648 to 2147483647)
#     np.int64,  # Integer (9223372036854775808 to 9223372036854775807)
#     np.uint8,  # Unsigned integer (0 to 255)
#     np.uint16,  # Unsigned integer (0 to 65535)
#     np.uint32,  # Unsigned integer (0 to 4294967295)
#     np.uint64,  # Unsigned integer (0 to 18446744073709551615)
#     np.float,  # Shorthand for float64.
#     np.float16,  #  Half precision float: sign bit, 5 bits exponent, 10 bits mantissa
#     np.float32,  #  Single precision float: sign bit, 8 bits exponent, 23 bits mantissa
#     np.float64,  #  Double precision float: sign bit, 11 bits exponent, 52 bits mantissa
#     np.complex,  #  Shorthand for complex128.
#     np.complex64,  #    Complex number, represented by two 32-bit floats (real and imaginary components)
#     np.complex128
#     ]
#  
#     if isinstance(x, tuple(scalars)):
#         return
#  
#  
    if not isinstance(x, np.ndarray):
        msg = 'Not an array: %s %s ' % (type(x), describe_type(x))
        raise ValueError(msg)
 
    if not x.shape == ():
        msg = 'Not a scalar: %s' % describe_value(x)
        raise ValueError(msg)
Ejemplo n.º 6
0
def np_zeroshape_array(x):
    #     scalars = [
    #     np.int,  # Platform integer (normally either int32 or int64)
    #     np.int8,  # Byte (-128 to 127)
    #     np.int16,  # Integer (-32768 to 32767)
    #     np.int32,  # Integer (-2147483648 to 2147483647)
    #     np.int64,  # Integer (9223372036854775808 to 9223372036854775807)
    #     np.uint8,  # Unsigned integer (0 to 255)
    #     np.uint16,  # Unsigned integer (0 to 65535)
    #     np.uint32,  # Unsigned integer (0 to 4294967295)
    #     np.uint64,  # Unsigned integer (0 to 18446744073709551615)
    #     np.float,  # Shorthand for float64.
    #     np.float16,  #  Half precision float: sign bit, 5 bits exponent, 10 bits mantissa
    #     np.float32,  #  Single precision float: sign bit, 8 bits exponent, 23 bits mantissa
    #     np.float64,  #  Double precision float: sign bit, 11 bits exponent, 52 bits mantissa
    #     np.complex,  #  Shorthand for complex128.
    #     np.complex64,  #    Complex number, represented by two 32-bit floats (real and imaginary components)
    #     np.complex128
    #     ]
    #
    #     if isinstance(x, tuple(scalars)):
    #         return
    #
    #
    if not isinstance(x, np.ndarray):
        msg = 'Not an array: %s %s ' % (type(x), describe_type(x))
        raise ValueError(msg)

    if not x.shape == ():
        msg = 'Not a scalar: %s' % describe_value(x)
        raise ValueError(msg)
Ejemplo n.º 7
0
 def save(self, obj):
     desc = 'object of type %s' % (describe_type(obj))
     # , describe_value(obj, 100))
     #  self.stack.append(describe_value(obj, 120))
     self.stack.append(desc)
     Pickler.save(self, obj)
     self.stack.pop()
Ejemplo n.º 8
0
 def _recursive_create(self, f):
     new_values = {}
     
     for k, c in self.get_components_and_values():
         c2 = f(c)
         if not isinstance(c2, TypsyType):
             msg = ('Could not transform %r (%s, %s) using %s: got %s' % 
                    (k, c, describe_type(c), f, describe_type(c2)))
             raise ValueError(msg)
         new_values[k] = c2
         
     try:
         return type(self).create_from_kwargs(**new_values)
     except (Exception, TypeError) as e:
         msg = 'Could not call create_from_kwargs for %r' % type(self)
         msg += '\n values: %s' % new_values
         msg += '\n' + indent(traceback.format_exc(e), '> ')
         raise Exception(msg)
Ejemplo n.º 9
0
    def init(self, boot_spec):
        DerivAgentRobust.init(self, boot_spec)
        shape = boot_spec.get_observations().shape()
        if len(shape) != 1:
            msg = 'This agent only works with 1D signals'
            raise UnsupportedSpec(msg)

        self.estimator = instantiate_spec(self.estimator_spec)
        if not isinstance(self.estimator, BDSEEstimatorInterface):
            msg = ('Expected a BDSEEstimatorInterface, got %s' 
                   % describe_type(self.estimator))
            raise ValueError(msg)

        self.commands_spec = boot_spec.get_commands()
Ejemplo n.º 10
0
 def create_from_kwargs(klass, **kwargs):
     for k, v in kwargs.items():
         if not isinstance(v, TypsyType):
             msg = 'Expected a type for %r, got %s' % (k, describe_type(v))
             raise ValueError(msg)
     spec = getfullargspec(klass.__init__)
     if spec.varargs is None:
         return klass(**kwargs)
     else:
         # assert spec.args == ['self']
         assert spec.args == []
         assert len(kwargs) == 1
         values = list(kwargs.values())[0]
         return klass(*values)
Ejemplo n.º 11
0
def data_hash_code(s):
    if s is None:
        return 'None'
    if isinstance(s, str):
        return get_md5(s)
    elif isinstance(s, datetime.datetime):
        return get_md5(yaml_dump(s))
    elif isinstance(s, list):
        return get_md5("-".join(map(data_hash_code, s)))
    elif isinstance(s, dict):
        keys = sorted(s)
        values = [s[k] for k in keys]
        codes = ['%s-%s' % (k, data_hash_code(v)) for k,v in zip(keys, values)]
        return data_hash_code("_".join(codes))
    else:
        msg = 'Invalid type %s' % describe_type(s)
        raise ValueError(msg)
Ejemplo n.º 12
0
def find_pickling_error(obj, protocol=pickle.HIGHEST_PROTOCOL):
    sio = StringIO()
    try:
        pickle.dumps(obj)
    except Exception as e1:
        # s1 = traceback.format_exc(e1)
        pass
    else:
        msg = ('Strange! I could not reproduce the pickling error '
               'for the object of class %s' % describe_type(obj))
        logger.info(msg)

    pickler = MyPickler(sio, protocol)
    try:
        pickler.dump(obj)
    except Exception as e1:
        msg = pickler.get_stack_description()
        msg += '\n --- Current exception----\n%s' % traceback.format_exc(e1)
        msg += '\n --- Old exception----\n%s' % traceback.format_exc(e1)
        return msg
    else:
        msg = 'I could not find the exact pickling error.'
        raise Exception(msg)
Ejemplo n.º 13
0
    def init(self, boot_spec):
        self.boot_spec = boot_spec
        
        if len(boot_spec.get_observations().shape()) != 1:
            raise UnsupportedSpec('This agent can only work with 1D signals.')

        self.count = 0
        self.rd = RemoveDoubles(self.change_fraction)
        self.y_deriv = DerivativeBox()

        self.bdse_estimator = instantiate_spec(self.estimator_spec)
        if not isinstance(self.bdse_estimator, BDSEEstimatorInterface):
            msg = ('Expected a BDSEEstimatorInterface, got %s' 
                   % describe_type(self.estimator))
            raise ValueError(msg)

    
        self.y_stats = MeanCovariance()

        self.explorer.init(boot_spec)
        self.commands_spec = boot_spec.get_commands()

        # All the rest are only statistics
        self.stats = MiscStatistics()
Ejemplo n.º 14
0
 def save_pair(self, k, v):
     self.stack.append("key %r = object of type %s" % (k, describe_type(v)))
     self.save(k)
     self.save(v)
     self.stack.pop()
Ejemplo n.º 15
0
def find_pickling_error(obj, protocol=pickle.HIGHEST_PROTOCOL):
    sio = StringIO()
    try:
        pickle.dumps(obj)
    except Exception as e1:
        # s1 = traceback.format_exc(e1)
        pass
    else:
        msg = "Strange! I could not reproduce the pickling error " "for the object of class %s" % describe_type(obj)
        logger.info(msg)

    pickler = MyPickler(sio, protocol)
    try:
        pickler.dump(obj)
    except Exception as e1:
        msg = pickler.get_stack_description()
        msg += "\n --- Current exception----\n%s" % traceback.format_exc(e1)
        msg += "\n --- Old exception----\n%s" % traceback.format_exc(e1)
        return msg
    else:
        msg = "I could not find the exact pickling error."
        raise Exception(msg)
Ejemplo n.º 16
0
 def save_pair(self, k, v):
     self.stack.append('key %r = object of type %s' % (k, describe_type(v)))
     self.save(k)
     self.save(v)
     self.stack.pop()