Skip to content

Commit b390741

Browse files
committed
Bump version to 2.7.4 and update environment handling in brainstate integration
1 parent a90838f commit b390741

5 files changed

Lines changed: 30 additions & 50 deletions

File tree

brainpy/__init__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
# limitations under the License.
1515
# ==============================================================================
1616

17-
__version__ = "2.7.3"
18-
__version_info__ = (2, 7, 3)
17+
__version__ = "2.7.4"
18+
__version_info__ = tuple(map(int, __version__.split(".")))
1919

2020

2121
from brainpy import _errors as errors
@@ -142,7 +142,6 @@
142142
ArrayCollector as ArrayCollector,
143143
Collector as Collector,
144144
)
145-
from brainpy import state
146145

147146
from brainpy.deprecations import deprecation_getattr
148147

@@ -151,7 +150,6 @@
151150

152151

153152
if __name__ == '__main__':
154-
state
155153
connect
156154
initialize, # weight initialization
157155
optim, # gradient descent optimizers

brainpy/context.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from typing import Any, Union
2222

2323
import brainstate
24+
from brainpy.math.defaults import env
2425
from brainpy.tools.dicts import DotDict
2526

2627
__all__ = [
@@ -40,14 +41,14 @@ def __init__(self):
4041

4142
@property
4243
def dt(self):
43-
return brainstate.environ.get_dt()
44+
return brainstate.environ.get_dt(env=env)
4445

4546
@dt.setter
4647
def dt(self, dt):
4748
self.set_dt(dt)
4849

4950
def set_dt(self, dt: Union[int, float]):
50-
brainstate.environ.set(dt=dt)
51+
brainstate.environ.set(dt=dt, env=env)
5152

5253
def load(self, key, value: Any = None, desc: str = None):
5354
"""Load the shared data by the ``key``.
@@ -57,16 +58,16 @@ def load(self, key, value: Any = None, desc: str = None):
5758
value (Any): the default value when ``key`` is not defined in the shared.
5859
desc: (str): the description of the key.
5960
"""
60-
return brainstate.environ.get(key, value, desc)
61+
return brainstate.environ.get(key, value, desc, env=env)
6162

6263
def save(self, *args, **kwargs) -> None:
6364
"""Save shared arguments in the global context."""
6465
assert len(args) % 2 == 0
6566
for i in range(0, len(args), 2):
6667
identifier = args[i]
6768
data = args[i + 1]
68-
brainstate.environ.set(**{identifier: data})
69-
brainstate.environ.set(**kwargs)
69+
brainstate.environ.set(**{identifier: data}, env=env)
70+
brainstate.environ.set(**kwargs, env=env)
7071

7172
def __setitem__(self, key, value):
7273
"""Enable setting the shared item by ``bp.share[key] = value``."""
@@ -78,7 +79,7 @@ def __getitem__(self, item):
7879

7980
def get_shargs(self) -> DotDict:
8081
"""Get all shared arguments in the global context."""
81-
return DotDict(brainstate.environ.all())
82+
return DotDict(brainstate.environ.all(env=env))
8283

8384

8485
share = _ShareContext()

brainpy/math/defaults.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
from .modes import NonBatchingMode
2020
from .scales import IdScaling
2121

22+
env = brainstate.environ.EnvironmentState()
23+
2224

2325
class setting:
2426
def __init__(self):
@@ -42,79 +44,80 @@ def __init__(self):
4244
# default return array type
4345
# numpy_func_return='jax_array', # 'bp_array','jax_array'
4446
numpy_func_return='bp_array', # 'bp_array','jax_array'
47+
env=env,
4548
)
4649

4750
@property
4851
def mode(self):
49-
return brainstate.environ.get('mode')
52+
return brainstate.environ.get('mode', env=env)
5053

5154
@property
5255
def membrane_scaling(self):
53-
return brainstate.environ.get('membrane_scaling')
56+
return brainstate.environ.get('membrane_scaling', env=env)
5457

5558
@property
5659
def dt(self):
57-
return brainstate.environ.get('dt')
60+
return brainstate.environ.get('dt', env=env)
5861

5962
@property
6063
def bool_(self):
61-
return brainstate.environ.get('bool_')
64+
return brainstate.environ.get('bool_', env=env)
6265

6366
@property
6467
def int_(self):
65-
return brainstate.environ.get('int_')
68+
return brainstate.environ.get('int_', env=env)
6669

6770
@property
6871
def float_(self):
69-
return brainstate.environ.get('float_')
72+
return brainstate.environ.get('float_', env=env)
7073

7174
@property
7275
def complex_(self):
73-
return brainstate.environ.get('complex_')
76+
return brainstate.environ.get('complex_', env=env)
7477

7578
@property
7679
def bp_object_as_pytree(self):
77-
return brainstate.environ.get('bp_object_as_pytree')
80+
return brainstate.environ.get('bp_object_as_pytree', env=env)
7881

7982
@property
8083
def numpy_func_return(self):
81-
return brainstate.environ.get('numpy_func_return')
84+
return brainstate.environ.get('numpy_func_return', env=env)
8285

8386
@mode.setter
8487
def mode(self, value):
85-
brainstate.environ.set(mode=value)
88+
brainstate.environ.set(mode=value, env=env)
8689

8790
@membrane_scaling.setter
8891
def membrane_scaling(self, value):
89-
brainstate.environ.set(membrane_scaling=value)
92+
brainstate.environ.set(membrane_scaling=value, env=env)
9093

9194
@dt.setter
9295
def dt(self, value):
93-
brainstate.environ.set(dt=value)
96+
brainstate.environ.set(dt=value, env=env)
9497

9598
@bool_.setter
9699
def bool_(self, value):
97-
brainstate.environ.set(bool_=value)
100+
brainstate.environ.set(bool_=value, env=env)
98101

99102
@int_.setter
100103
def int_(self, value):
101-
brainstate.environ.set(int_=value)
104+
brainstate.environ.set(int_=value, env=env)
102105

103106
@float_.setter
104107
def float_(self, value):
105-
brainstate.environ.set(float_=value)
108+
brainstate.environ.set(float_=value, env=env)
106109

107110
@complex_.setter
108111
def complex_(self, value):
109-
brainstate.environ.set(complex_=value)
112+
brainstate.environ.set(complex_=value, env=env)
110113

111114
@bp_object_as_pytree.setter
112115
def bp_object_as_pytree(self, value):
113-
brainstate.environ.set(bp_object_as_pytree=value)
116+
brainstate.environ.set(bp_object_as_pytree=value, env=env)
114117

115118
@numpy_func_return.setter
116119
def numpy_func_return(self, value):
117-
brainstate.environ.set(numpy_func_return=value)
120+
brainstate.environ.set(numpy_func_return=value, env=env)
118121

119122

120123
defaults = setting()

brainpy/state/__init__.py

Lines changed: 0 additions & 21 deletions
This file was deleted.

docs/conf.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343

4444
sys.path.insert(0, os.path.abspath('../docs/'))
4545
sys.path.insert(0, os.path.abspath('../'))
46-
os.makedirs('../docs/_static', exist_ok=True)
4746
shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True)
4847
shutil.copyfile('../changelog.md', './changelog.md')
4948

0 commit comments

Comments
 (0)