Beispiel #1
0
    def add(self, key, p):
        """Add a new semantic pointer to the vocabulary.

        The pointer value can be a `.SemanticPointer` or a vector.
        """
        if self.readonly:
            raise ReadonlyError(attr='Vocabulary',
                                msg="Cannot add semantic pointer '%s' to "
                                    "read-only vocabulary." % key)

        if not key[0].isupper():
            raise SpaParseError(
                "Semantic pointers must begin with a capital letter.")
        if not isinstance(p, pointer.SemanticPointer):
            p = pointer.SemanticPointer(p)

        if key in self.pointers:
            raise ValidationError("The semantic pointer %r already exists"
                                  % key, attr='pointers', obj=self)

        self.pointers[key] = p
        self.keys.append(key)
        self.vectors = np.vstack([self.vectors, p.v])

        # Generate vector pairs
        if self.include_pairs and len(self.keys) > 1:
            for k in self.keys[:-1]:
                self.key_pairs.append('%s*%s' % (k, key))
                v = (self.pointers[k] * p).v
                self.vector_pairs = np.vstack([self.vector_pairs, v])
Beispiel #2
0
 def __init__(self):
     self._paramdict = {
         k: v for k, v in inspect.getmembers(type(self))
         if isinstance(v, Parameter)}
     for p in self._params:
         if not p.readonly:
             msg = "All parameters of a FrozenObject must be readonly"
             raise ReadonlyError(attr=p, obj=self, msg=msg)
Beispiel #3
0
 def __init__(self):
     self._paramdict = collections.OrderedDict(
         (k, v) for k, v in inspect.getmembers(type(self))
         if isinstance(v, Parameter) and not isinstance(v, ObsoleteParam))
     for p in self._params:
         if not p.readonly:
             msg = "All parameters of a FrozenObject must be readonly"
             raise ReadonlyError(attr=p, obj=self, msg=msg)
Beispiel #4
0
 def validate(self, instance, value):
     if isinstance(value, DefaultType):
         raise ValidationError("Default is not a valid value. To reset a "
                               "parameter, use 'del'.",
                               attr=self.name, obj=instance)
     if self.readonly and instance in self.data:
         raise ReadonlyError(attr=self.name, obj=instance)
     if not self.optional and value is None:
         raise ValidationError("Parameter is not optional; cannot set to "
                               "None", attr=self.name, obj=instance)
Beispiel #5
0
 def dt(self, dummy):
     raise ReadonlyError(attr='dt', obj=self)
Beispiel #6
0
 def neurons(self, dummy):
     raise ReadonlyError(attr="neurons", obj=self)
Beispiel #7
0
 def dt(self, dummy):
     raise ReadonlyError(attr="dt", obj=self)
Beispiel #8
0
 def config(self, _):
     raise ReadonlyError(attr="config", obj=self)
Beispiel #9
0
 def probes(self, _):
     raise ReadonlyError(attr="probes", obj=self)
Beispiel #10
0
 def connections(self, _):
     raise ReadonlyError(attr="connections", obj=self)
Beispiel #11
0
 def networks(self, _):
     raise ReadonlyError(attr="networks", obj=self)
Beispiel #12
0
 def nodes(self, _):
     raise ReadonlyError(attr="nodes", obj=self)
Beispiel #13
0
 def ensembles(self, _):
     raise ReadonlyError(attr="ensembles", obj=self)
Beispiel #14
0
 def objects(self, _):
     raise ReadonlyError(attr="objects", obj=self)
Beispiel #15
0
 def config(self, dummy):
     raise ReadonlyError(attr='config', obj=self)