brainstate 0.1.8__py2.py3-none-any.whl → 0.1.10__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- brainstate/__init__.py +58 -51
- brainstate/_compatible_import.py +148 -148
- brainstate/_state.py +1605 -1663
- brainstate/_state_test.py +52 -52
- brainstate/_utils.py +47 -47
- brainstate/augment/__init__.py +30 -30
- brainstate/augment/_autograd.py +778 -778
- brainstate/augment/_autograd_test.py +1289 -1289
- brainstate/augment/_eval_shape.py +99 -99
- brainstate/augment/_eval_shape_test.py +38 -38
- brainstate/augment/_mapping.py +1060 -1060
- brainstate/augment/_mapping_test.py +597 -597
- brainstate/augment/_random.py +151 -151
- brainstate/compile/__init__.py +38 -38
- brainstate/compile/_ad_checkpoint.py +204 -204
- brainstate/compile/_ad_checkpoint_test.py +49 -49
- brainstate/compile/_conditions.py +256 -256
- brainstate/compile/_conditions_test.py +220 -220
- brainstate/compile/_error_if.py +92 -92
- brainstate/compile/_error_if_test.py +52 -52
- brainstate/compile/_jit.py +346 -346
- brainstate/compile/_jit_test.py +143 -143
- brainstate/compile/_loop_collect_return.py +536 -536
- brainstate/compile/_loop_collect_return_test.py +58 -58
- brainstate/compile/_loop_no_collection.py +184 -184
- brainstate/compile/_loop_no_collection_test.py +50 -50
- brainstate/compile/_make_jaxpr.py +888 -888
- brainstate/compile/_make_jaxpr_test.py +156 -156
- brainstate/compile/_progress_bar.py +202 -202
- brainstate/compile/_unvmap.py +159 -159
- brainstate/compile/_util.py +147 -147
- brainstate/environ.py +563 -563
- brainstate/environ_test.py +62 -62
- brainstate/functional/__init__.py +27 -26
- brainstate/graph/__init__.py +29 -29
- brainstate/graph/_graph_node.py +244 -244
- brainstate/graph/_graph_node_test.py +73 -73
- brainstate/graph/_graph_operation.py +1738 -1738
- brainstate/graph/_graph_operation_test.py +563 -563
- brainstate/init/__init__.py +26 -26
- brainstate/init/_base.py +52 -52
- brainstate/init/_generic.py +244 -244
- brainstate/init/_random_inits.py +553 -553
- brainstate/init/_random_inits_test.py +149 -149
- brainstate/init/_regular_inits.py +105 -105
- brainstate/init/_regular_inits_test.py +50 -50
- brainstate/mixin.py +365 -363
- brainstate/mixin_test.py +77 -73
- brainstate/nn/__init__.py +135 -131
- brainstate/{functional → nn}/_activations.py +808 -813
- brainstate/{functional → nn}/_activations_test.py +331 -331
- brainstate/nn/_collective_ops.py +514 -514
- brainstate/nn/_collective_ops_test.py +43 -43
- brainstate/nn/_common.py +178 -178
- brainstate/nn/_conv.py +501 -501
- brainstate/nn/_conv_test.py +238 -238
- brainstate/nn/_delay.py +588 -502
- brainstate/nn/_delay_test.py +238 -184
- brainstate/nn/_dropout.py +426 -426
- brainstate/nn/_dropout_test.py +100 -100
- brainstate/nn/_dynamics.py +1343 -1343
- brainstate/nn/_dynamics_test.py +78 -78
- brainstate/nn/_elementwise.py +1119 -1119
- brainstate/nn/_elementwise_test.py +169 -169
- brainstate/nn/_embedding.py +58 -58
- brainstate/nn/_exp_euler.py +92 -92
- brainstate/nn/_exp_euler_test.py +35 -35
- brainstate/nn/_fixedprob.py +239 -239
- brainstate/nn/_fixedprob_test.py +114 -114
- brainstate/nn/_inputs.py +608 -608
- brainstate/nn/_linear.py +424 -424
- brainstate/nn/_linear_mv.py +83 -83
- brainstate/nn/_linear_mv_test.py +120 -120
- brainstate/nn/_linear_test.py +107 -107
- brainstate/nn/_ltp.py +28 -28
- brainstate/nn/_module.py +377 -377
- brainstate/nn/_module_test.py +40 -40
- brainstate/nn/_neuron.py +705 -705
- brainstate/nn/_neuron_test.py +161 -161
- brainstate/nn/_normalizations.py +975 -918
- brainstate/nn/_normalizations_test.py +73 -73
- brainstate/{functional → nn}/_others.py +46 -46
- brainstate/nn/_poolings.py +1177 -1177
- brainstate/nn/_poolings_test.py +217 -217
- brainstate/nn/_projection.py +486 -486
- brainstate/nn/_rate_rnns.py +554 -554
- brainstate/nn/_rate_rnns_test.py +63 -63
- brainstate/nn/_readout.py +209 -209
- brainstate/nn/_readout_test.py +53 -53
- brainstate/nn/_stp.py +236 -236
- brainstate/nn/_synapse.py +505 -505
- brainstate/nn/_synapse_test.py +131 -131
- brainstate/nn/_synaptic_projection.py +423 -423
- brainstate/nn/_synouts.py +162 -162
- brainstate/nn/_synouts_test.py +57 -57
- brainstate/nn/_utils.py +89 -89
- brainstate/nn/metrics.py +388 -388
- brainstate/optim/__init__.py +38 -38
- brainstate/optim/_base.py +64 -64
- brainstate/optim/_lr_scheduler.py +448 -448
- brainstate/optim/_lr_scheduler_test.py +50 -50
- brainstate/optim/_optax_optimizer.py +152 -152
- brainstate/optim/_optax_optimizer_test.py +53 -53
- brainstate/optim/_sgd_optimizer.py +1104 -1104
- brainstate/random/__init__.py +24 -24
- brainstate/random/_rand_funs.py +3616 -3616
- brainstate/random/_rand_funs_test.py +567 -567
- brainstate/random/_rand_seed.py +210 -210
- brainstate/random/_rand_seed_test.py +48 -48
- brainstate/random/_rand_state.py +1409 -1409
- brainstate/random/_random_for_unit.py +52 -52
- brainstate/surrogate.py +1957 -1957
- brainstate/transform.py +23 -23
- brainstate/typing.py +304 -304
- brainstate/util/__init__.py +50 -50
- brainstate/util/caller.py +98 -98
- brainstate/util/error.py +55 -55
- brainstate/util/filter.py +469 -469
- brainstate/util/others.py +540 -540
- brainstate/util/pretty_pytree.py +945 -945
- brainstate/util/pretty_pytree_test.py +159 -159
- brainstate/util/pretty_repr.py +328 -328
- brainstate/util/pretty_table.py +2954 -2954
- brainstate/util/scaling.py +258 -258
- brainstate/util/struct.py +523 -523
- {brainstate-0.1.8.dist-info → brainstate-0.1.10.dist-info}/METADATA +91 -99
- brainstate-0.1.10.dist-info/RECORD +130 -0
- {brainstate-0.1.8.dist-info → brainstate-0.1.10.dist-info}/WHEEL +1 -1
- {brainstate-0.1.8.dist-info → brainstate-0.1.10.dist-info/licenses}/LICENSE +202 -202
- brainstate/functional/_normalization.py +0 -81
- brainstate/functional/_spikes.py +0 -204
- brainstate-0.1.8.dist-info/RECORD +0 -132
- {brainstate-0.1.8.dist-info → brainstate-0.1.10.dist-info}/top_level.txt +0 -0
brainstate/util/__init__.py
CHANGED
@@ -1,50 +1,50 @@
|
|
1
|
-
# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
# ==============================================================================
|
15
|
-
|
16
|
-
from . import filter
|
17
|
-
from .error import *
|
18
|
-
from .error import __all__ as _error_all
|
19
|
-
from .others import *
|
20
|
-
from .others import __all__ as _others_all
|
21
|
-
from .pretty_pytree import *
|
22
|
-
from .pretty_pytree import __all__ as _mapping_all
|
23
|
-
from .pretty_repr import *
|
24
|
-
from .pretty_repr import __all__ as _pretty_repr_all
|
25
|
-
from .pretty_table import *
|
26
|
-
from .pretty_table import __all__ as _table_all
|
27
|
-
from .scaling import *
|
28
|
-
from .scaling import __all__ as _mem_scale_all
|
29
|
-
from .struct import *
|
30
|
-
from .struct import __all__ as _struct_all
|
31
|
-
|
32
|
-
__all__ = (
|
33
|
-
['filter']
|
34
|
-
+ _others_all
|
35
|
-
+ _mem_scale_all
|
36
|
-
+ _pretty_repr_all
|
37
|
-
+ _struct_all
|
38
|
-
+ _error_all
|
39
|
-
+ _mapping_all
|
40
|
-
+ _table_all
|
41
|
-
)
|
42
|
-
del (
|
43
|
-
_others_all,
|
44
|
-
_mem_scale_all,
|
45
|
-
_pretty_repr_all,
|
46
|
-
_struct_all,
|
47
|
-
_error_all,
|
48
|
-
_mapping_all,
|
49
|
-
_table_all,
|
50
|
-
)
|
1
|
+
# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
# ==============================================================================
|
15
|
+
|
16
|
+
from . import filter
|
17
|
+
from .error import *
|
18
|
+
from .error import __all__ as _error_all
|
19
|
+
from .others import *
|
20
|
+
from .others import __all__ as _others_all
|
21
|
+
from .pretty_pytree import *
|
22
|
+
from .pretty_pytree import __all__ as _mapping_all
|
23
|
+
from .pretty_repr import *
|
24
|
+
from .pretty_repr import __all__ as _pretty_repr_all
|
25
|
+
from .pretty_table import *
|
26
|
+
from .pretty_table import __all__ as _table_all
|
27
|
+
from .scaling import *
|
28
|
+
from .scaling import __all__ as _mem_scale_all
|
29
|
+
from .struct import *
|
30
|
+
from .struct import __all__ as _struct_all
|
31
|
+
|
32
|
+
__all__ = (
|
33
|
+
['filter']
|
34
|
+
+ _others_all
|
35
|
+
+ _mem_scale_all
|
36
|
+
+ _pretty_repr_all
|
37
|
+
+ _struct_all
|
38
|
+
+ _error_all
|
39
|
+
+ _mapping_all
|
40
|
+
+ _table_all
|
41
|
+
)
|
42
|
+
del (
|
43
|
+
_others_all,
|
44
|
+
_mem_scale_all,
|
45
|
+
_pretty_repr_all,
|
46
|
+
_struct_all,
|
47
|
+
_error_all,
|
48
|
+
_mapping_all,
|
49
|
+
_table_all,
|
50
|
+
)
|
brainstate/util/caller.py
CHANGED
@@ -1,98 +1,98 @@
|
|
1
|
-
# The file is adapted from the Flax library (https://github.com/google/flax).
|
2
|
-
# The credit should go to the Flax authors.
|
3
|
-
#
|
4
|
-
# Copyright 2024 The Flax Authors.
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
|
18
|
-
import dataclasses
|
19
|
-
from typing import Any, TypeVar, Protocol, Generic
|
20
|
-
|
21
|
-
import jax
|
22
|
-
|
23
|
-
__all__ = [
|
24
|
-
'DelayedAccessor',
|
25
|
-
'CallableProxy',
|
26
|
-
'ApplyCaller',
|
27
|
-
]
|
28
|
-
|
29
|
-
A = TypeVar('A', covariant=True) # type: ignore[not-supported-yet]
|
30
|
-
|
31
|
-
|
32
|
-
def _identity(x):
|
33
|
-
return x
|
34
|
-
|
35
|
-
|
36
|
-
@dataclasses.dataclass(frozen=True)
|
37
|
-
class GetItem:
|
38
|
-
key: Any
|
39
|
-
|
40
|
-
|
41
|
-
@dataclasses.dataclass(frozen=True)
|
42
|
-
class GetAttr:
|
43
|
-
name: str
|
44
|
-
|
45
|
-
|
46
|
-
@dataclasses.dataclass(frozen=True)
|
47
|
-
class DelayedAccessor:
|
48
|
-
actions: tuple[GetItem | GetAttr, ...] = ()
|
49
|
-
|
50
|
-
def __call__(self, x):
|
51
|
-
for action in self.actions:
|
52
|
-
if isinstance(action, GetItem):
|
53
|
-
x = x[action.key]
|
54
|
-
elif isinstance(action, GetAttr):
|
55
|
-
x = getattr(x, action.name)
|
56
|
-
return x
|
57
|
-
|
58
|
-
def __getattr__(self, name):
|
59
|
-
return DelayedAccessor(self.actions + (GetAttr(name),))
|
60
|
-
|
61
|
-
def __getitem__(self, key):
|
62
|
-
return DelayedAccessor(self.actions + (GetItem(key),))
|
63
|
-
|
64
|
-
|
65
|
-
jax.tree_util.register_static(DelayedAccessor)
|
66
|
-
|
67
|
-
|
68
|
-
class _AccessorCall(Protocol):
|
69
|
-
def __call__(self, accessor: DelayedAccessor, /, *args, **kwargs) -> Any:
|
70
|
-
...
|
71
|
-
|
72
|
-
|
73
|
-
class CallableProxy:
|
74
|
-
def __init__(
|
75
|
-
self, fun: _AccessorCall, accessor: DelayedAccessor | None = None
|
76
|
-
):
|
77
|
-
self._callable = fun
|
78
|
-
self._accessor = DelayedAccessor() if accessor is None else accessor
|
79
|
-
|
80
|
-
def __call__(self, *args, **kwargs):
|
81
|
-
return self._callable(self._accessor, *args, **kwargs)
|
82
|
-
|
83
|
-
def __getattr__(self, name) -> 'CallableProxy':
|
84
|
-
return CallableProxy(self._callable, getattr(self._accessor, name))
|
85
|
-
|
86
|
-
def __getitem__(self, key) -> 'CallableProxy':
|
87
|
-
return CallableProxy(self._callable, self._accessor[key])
|
88
|
-
|
89
|
-
|
90
|
-
class ApplyCaller(Protocol, Generic[A]):
|
91
|
-
def __getattr__(self, __name) -> 'ApplyCaller[A]':
|
92
|
-
...
|
93
|
-
|
94
|
-
def __getitem__(self, __name) -> 'ApplyCaller[A]':
|
95
|
-
...
|
96
|
-
|
97
|
-
def __call__(self, *args, **kwargs) -> tuple[Any, A]:
|
98
|
-
...
|
1
|
+
# The file is adapted from the Flax library (https://github.com/google/flax).
|
2
|
+
# The credit should go to the Flax authors.
|
3
|
+
#
|
4
|
+
# Copyright 2024 The Flax Authors.
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
|
18
|
+
import dataclasses
|
19
|
+
from typing import Any, TypeVar, Protocol, Generic
|
20
|
+
|
21
|
+
import jax
|
22
|
+
|
23
|
+
__all__ = [
|
24
|
+
'DelayedAccessor',
|
25
|
+
'CallableProxy',
|
26
|
+
'ApplyCaller',
|
27
|
+
]
|
28
|
+
|
29
|
+
A = TypeVar('A', covariant=True) # type: ignore[not-supported-yet]
|
30
|
+
|
31
|
+
|
32
|
+
def _identity(x):
|
33
|
+
return x
|
34
|
+
|
35
|
+
|
36
|
+
@dataclasses.dataclass(frozen=True)
|
37
|
+
class GetItem:
|
38
|
+
key: Any
|
39
|
+
|
40
|
+
|
41
|
+
@dataclasses.dataclass(frozen=True)
|
42
|
+
class GetAttr:
|
43
|
+
name: str
|
44
|
+
|
45
|
+
|
46
|
+
@dataclasses.dataclass(frozen=True)
|
47
|
+
class DelayedAccessor:
|
48
|
+
actions: tuple[GetItem | GetAttr, ...] = ()
|
49
|
+
|
50
|
+
def __call__(self, x):
|
51
|
+
for action in self.actions:
|
52
|
+
if isinstance(action, GetItem):
|
53
|
+
x = x[action.key]
|
54
|
+
elif isinstance(action, GetAttr):
|
55
|
+
x = getattr(x, action.name)
|
56
|
+
return x
|
57
|
+
|
58
|
+
def __getattr__(self, name):
|
59
|
+
return DelayedAccessor(self.actions + (GetAttr(name),))
|
60
|
+
|
61
|
+
def __getitem__(self, key):
|
62
|
+
return DelayedAccessor(self.actions + (GetItem(key),))
|
63
|
+
|
64
|
+
|
65
|
+
jax.tree_util.register_static(DelayedAccessor)
|
66
|
+
|
67
|
+
|
68
|
+
class _AccessorCall(Protocol):
|
69
|
+
def __call__(self, accessor: DelayedAccessor, /, *args, **kwargs) -> Any:
|
70
|
+
...
|
71
|
+
|
72
|
+
|
73
|
+
class CallableProxy:
|
74
|
+
def __init__(
|
75
|
+
self, fun: _AccessorCall, accessor: DelayedAccessor | None = None
|
76
|
+
):
|
77
|
+
self._callable = fun
|
78
|
+
self._accessor = DelayedAccessor() if accessor is None else accessor
|
79
|
+
|
80
|
+
def __call__(self, *args, **kwargs):
|
81
|
+
return self._callable(self._accessor, *args, **kwargs)
|
82
|
+
|
83
|
+
def __getattr__(self, name) -> 'CallableProxy':
|
84
|
+
return CallableProxy(self._callable, getattr(self._accessor, name))
|
85
|
+
|
86
|
+
def __getitem__(self, key) -> 'CallableProxy':
|
87
|
+
return CallableProxy(self._callable, self._accessor[key])
|
88
|
+
|
89
|
+
|
90
|
+
class ApplyCaller(Protocol, Generic[A]):
|
91
|
+
def __getattr__(self, __name) -> 'ApplyCaller[A]':
|
92
|
+
...
|
93
|
+
|
94
|
+
def __getitem__(self, __name) -> 'ApplyCaller[A]':
|
95
|
+
...
|
96
|
+
|
97
|
+
def __call__(self, *args, **kwargs) -> tuple[Any, A]:
|
98
|
+
...
|
brainstate/util/error.py
CHANGED
@@ -1,55 +1,55 @@
|
|
1
|
-
# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
# ==============================================================================
|
15
|
-
|
16
|
-
|
17
|
-
__all__ = [
|
18
|
-
'BrainStateError',
|
19
|
-
'TraceContextError',
|
20
|
-
]
|
21
|
-
|
22
|
-
|
23
|
-
class BrainStateError(Exception):
|
24
|
-
"""
|
25
|
-
A custom exception class for BrainState-related errors.
|
26
|
-
|
27
|
-
This exception is raised when a BrainState-specific error occurs during
|
28
|
-
the execution of the program. It serves as a base class for more specific
|
29
|
-
BrainState exceptions.
|
30
|
-
|
31
|
-
Attributes:
|
32
|
-
Inherits all attributes from the built-in Exception class.
|
33
|
-
|
34
|
-
Usage::
|
35
|
-
|
36
|
-
raise BrainStateError("A BrainState-specific error occurred.")
|
37
|
-
"""
|
38
|
-
pass
|
39
|
-
|
40
|
-
|
41
|
-
class TraceContextError(BrainStateError):
|
42
|
-
"""
|
43
|
-
A custom exception class for trace context-related errors in BrainState.
|
44
|
-
|
45
|
-
This exception is raised when an error occurs specifically related to
|
46
|
-
trace context operations or manipulations within the BrainState framework.
|
47
|
-
|
48
|
-
Attributes:
|
49
|
-
Inherits all attributes from the BrainStateError class.
|
50
|
-
|
51
|
-
Usage::
|
52
|
-
|
53
|
-
raise TraceContextError("An error occurred while handling trace context.")
|
54
|
-
"""
|
55
|
-
pass
|
1
|
+
# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
# ==============================================================================
|
15
|
+
|
16
|
+
|
17
|
+
__all__ = [
|
18
|
+
'BrainStateError',
|
19
|
+
'TraceContextError',
|
20
|
+
]
|
21
|
+
|
22
|
+
|
23
|
+
class BrainStateError(Exception):
|
24
|
+
"""
|
25
|
+
A custom exception class for BrainState-related errors.
|
26
|
+
|
27
|
+
This exception is raised when a BrainState-specific error occurs during
|
28
|
+
the execution of the program. It serves as a base class for more specific
|
29
|
+
BrainState exceptions.
|
30
|
+
|
31
|
+
Attributes:
|
32
|
+
Inherits all attributes from the built-in Exception class.
|
33
|
+
|
34
|
+
Usage::
|
35
|
+
|
36
|
+
raise BrainStateError("A BrainState-specific error occurred.")
|
37
|
+
"""
|
38
|
+
pass
|
39
|
+
|
40
|
+
|
41
|
+
class TraceContextError(BrainStateError):
|
42
|
+
"""
|
43
|
+
A custom exception class for trace context-related errors in BrainState.
|
44
|
+
|
45
|
+
This exception is raised when an error occurs specifically related to
|
46
|
+
trace context operations or manipulations within the BrainState framework.
|
47
|
+
|
48
|
+
Attributes:
|
49
|
+
Inherits all attributes from the BrainStateError class.
|
50
|
+
|
51
|
+
Usage::
|
52
|
+
|
53
|
+
raise TraceContextError("An error occurred while handling trace context.")
|
54
|
+
"""
|
55
|
+
pass
|