Skip to content

Commit 9100052

Browse files
authored
Delete brainpy.state examples and docs (#806)
* Refactor example scripts and update package dependencies * Remove /docs/ from .gitignore to allow documentation files to be tracked * Add new documentation sections for various modules and functionalities * Remove unused code for document cleanup and version handling in conf.py * Add brainpy_state to dependencies in pyproject.toml and requirements.txt * Bump version to 2.7.4 and update environment handling in brainstate integration * Remove brainpy_state from dependencies in pyproject.toml and requirements.txt * Refactor dt handling in currents.py to use brainpy.math.get_dt() * Update CI configuration to trigger on main branch only * Fix spike generation logic to use updated spike value attribute
1 parent 1ca6bca commit 9100052

316 files changed

Lines changed: 73 additions & 26224 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/CI.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33

44
name: Continuous Integration
55

6+
67
on:
78
push:
89
branches:
9-
- '**' # matches every branch
10+
- main
1011
pull_request:
11-
branches:
12-
- '**' # matches every branch
1312

1413

1514
permissions:

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,5 +236,4 @@ cython_debug/
236236
/docs_state/_build/
237237
/docs_state/_static/logos/
238238
/docs_state/changelog.md
239-
/examples_classic/dynamics_training/data/
240-
/docs/
239+
/examples/dynamics_training/data/

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/dyn/others/input.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def __init__(
228228
self.reset_state(self.mode)
229229

230230
def update(self):
231-
spikes = bm.random.rand_like(self.spike) <= (self.freqs * share['dt'] / 1000.)
231+
spikes = bm.random.rand_like(self.spike.value) <= (self.freqs * share['dt'] / 1000.)
232232
spikes = bm.asarray(spikes, dtype=self.spk_type)
233233
# import jax
234234
# jax.debug.print('PoissonGroup: freqs = {f}, spikes = {s}', f=self.freqs, s=spikes)

brainpy/inputs/currents.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import braintools
1919

2020
import brainstate
21+
import brainpy.math
2122

2223
__all__ = [
2324
'section_input',
@@ -59,7 +60,7 @@ def section_input(values, durations, dt=None, return_length=False):
5960
6061
current_and_duration
6162
"""
62-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
63+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
6364
return braintools.input.section(values, durations, return_length=return_length)
6465

6566

@@ -88,7 +89,7 @@ def constant_input(I_and_duration, dt=None):
8889
current_and_duration : tuple
8990
(The formatted current, total duration)
9091
"""
91-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
92+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
9293
return braintools.input.constant(I_and_duration)
9394

9495

@@ -136,7 +137,7 @@ def spike_input(sp_times, sp_lens, sp_sizes, duration, dt=None):
136137
current : bm.ndarray
137138
The formatted input current.
138139
"""
139-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
140+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
140141
return braintools.input.spike(sp_times, sp_lens, sp_sizes, duration)
141142

142143

@@ -175,7 +176,7 @@ def ramp_input(c_start, c_end, duration, t_start=0, t_end=None, dt=None):
175176
current : bm.ndarray
176177
The formatted current
177178
"""
178-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
179+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
179180
return braintools.input.ramp(c_start, c_end, duration, t_start, t_end)
180181

181182

@@ -210,7 +211,7 @@ def wiener_process(duration, dt=None, n=1, t_start=0., t_end=None, seed=None):
210211
seed: int
211212
The noise seed.
212213
"""
213-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
214+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
214215
return braintools.input.wiener_process(duration, sigma=1.0, n=n, t_start=t_start, t_end=t_end, seed=seed)
215216

216217

@@ -242,7 +243,7 @@ def ou_process(mean, sigma, tau, duration, dt=None, n=1, t_start=0., t_end=None,
242243
seed: optional, int
243244
The random seed.
244245
"""
245-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
246+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
246247
return braintools.input.ou_process(mean, sigma, tau, duration, n=n, t_start=t_start, t_end=t_end, seed=seed)
247248

248249

@@ -267,7 +268,7 @@ def sinusoidal_input(amplitude, frequency, duration, dt=None, t_start=0., t_end=
267268
Whether the sinusoid oscillates around 0 (False), or
268269
has a positive DC bias, thus non-negative (True).
269270
"""
270-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
271+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
271272
return braintools.input.sinusoidal(amplitude, frequency, duration, t_start=t_start, t_end=t_end, bias=bias)
272273

273274

@@ -292,5 +293,5 @@ def square_input(amplitude, frequency, duration, dt=None, bias=False, t_start=0.
292293
Whether the sinusoid oscillates around 0 (False), or
293294
has a positive DC bias, thus non-negative (True).
294295
"""
295-
with brainstate.environ.context(dt=brainstate.environ.get_dt() if dt is None else dt):
296+
with brainstate.environ.context(dt=brainpy.math.get_dt() if dt is None else dt):
296297
return braintools.input.square(amplitude, frequency, duration, t_start=t_start, t_end=t_end, duty_cycle=0.5, bias=bias)

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 & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)