diff --git a/.gitignore b/.gitignore index b31924170..feb7547e5 100644 --- a/.gitignore +++ b/.gitignore @@ -233,8 +233,8 @@ cython_debug/ /docs/_static/logos/ /docs/_build/ /docs/changelog.md -/docs_version3/_build/ -/docs_version3/_static/logos/ -/docs_version3/changelog.md +/docs_state_based/_build/ +/docs_state_based/_static/logos/ +/docs_state_based/changelog.md /examples_version2/dynamics_training/data/ /docs/ diff --git a/README.md b/README.md index f8108a107..1e70d868e 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ BrainPy is a flexible, efficient, and extensible framework for computational neuroscience and brain-inspired computation based on the Just-In-Time (JIT) compilation. It provides an integrative ecosystem for brain dynamics programming, including brain dynamics **building**, **simulation**, **training**, **analysis**, etc. - **Source**: https://github.com/brainpy/BrainPy -- **Documentation (brainpy v3.0)**: https://brainpy.readthedocs.io/ -- **Documentation (brainpy v2.0)**: https://brainpy-v2.readthedocs.io/ +- **Documentation**: https://brainpy.readthedocs.io/ +- **Documentation (state-based)**: https://brainpy-state.readthedocs.io/ - **Bug reports**: https://github.com/brainpy/BrainPy/issues - **Ecosystem**: https://brainmodeling.readthedocs.io/ diff --git a/brainpy/__init__.py b/brainpy/__init__.py index 0f0dcf2a4..b031712bf 100644 --- a/brainpy/__init__.py +++ b/brainpy/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,87 +14,172 @@ # limitations under the License. # ============================================================================== -__version__ = "3.0.0" -__version_info__ = (3, 0, 0) - -from . import mixin -from . import version2 -from ._base import * -from ._base import __all__ as base_all -from ._errors import * -from ._errors import __all__ as errors_all -from ._exponential import * -from ._exponential import __all__ as exp_all -from ._inputs import * -from ._inputs import __all__ as inputs_all -from ._lif import * -from ._lif import __all__ as neuron_all -from ._projection import * -from ._projection import __all__ as proj_all -from ._readout import * -from ._readout import __all__ as readout_all -from ._stp import * -from ._stp import __all__ as stp_all -from ._synapse import * -from ._synapse import __all__ as synapse_all -from ._synaptic_projection import * -from ._synaptic_projection import __all__ as synproj_all -from ._synouts import * -from ._synouts import __all__ as synout_all - -__main__ = ['version2', 'mixin'] + errors_all + inputs_all + neuron_all + readout_all + stp_all + synapse_all -__main__ = __main__ + synout_all + base_all + exp_all + proj_all + synproj_all -del errors_all, inputs_all, neuron_all, readout_all, stp_all, synapse_all, synout_all, base_all -del exp_all, proj_all, synproj_all - - -# Deprecation warnings for brainpy.xxx -> brainpy.version2.xxx -def __getattr__(name): - """Provide deprecation warnings for moved modules.""" - import warnings - - if hasattr(version2, name): - warnings.warn( - f"Accessing 'brainpy.{name}' is deprecated. " - f"Please use 'brainpy.version2.{name}' instead.", - DeprecationWarning, - stacklevel=2 - ) - return getattr(version2, name) - - raise AttributeError(f"'brainpy' has no attribute '{name}'") - - -def __dir__(): - """Return list of attributes including deprecated ones for tab completion.""" - # Get the default attributes - default_attrs = list(globals().keys()) - - # Add all public attributes from version2 for discoverability - version2_attrs = [attr for attr in dir(version2) if not attr.startswith('_')] - - # Combine and return unique attributes - return sorted(set(default_attrs + version2_attrs)) - - -# Register deprecated modules in sys.modules to support "import brainpy.xxx" syntax -import sys as _sys - -_deprecated_modules = [ - 'math', 'check', 'tools', 'connect', 'initialize', 'init', 'conn', - 'optim', 'losses', 'measure', 'inputs', 'encoding', 'checkpoints', - 'algorithms', 'integrators', 'ode', 'sde', 'fde', - 'dnn', 'layers', 'dyn', 'running', 'train', 'analysis', - 'channels', 'neurons', 'rates', 'synapses', 'synouts', 'synplast', - 'visualization', 'visualize', 'types', 'modes', 'context', - 'helpers', 'delay', 'dynsys', 'runners', 'transform', 'dynold' -] - -# Create wrapper modules that show deprecation warnings -for _mod_name in _deprecated_modules: - if hasattr(version2, _mod_name): - _sys.modules[f'brainpy.{_mod_name}'] = getattr(version2, _mod_name) - -del _sys, _mod_name, _deprecated_modules - -version2.__version__ = __version__ +__version__ = "3.0.1" +__version_info__ = (3, 0, 1) + + +from brainpy import _errors as errors +from brainpy import mixin +# fundamental supporting modules +from brainpy import check, tools +# Part: Math Foundation # +# ----------------------- # +# math foundation +from brainpy import math +# Part: Toolbox # +# --------------- # +# modules of toolbox +from . import ( + connect, # synaptic connection + initialize, # weight initialization + optim, # gradient descent optimizers + losses, # loss functions + measure, # methods for data analysis + inputs, # methods for generating input currents + encoding, # encoding schema + checkpoints, # checkpoints + check, # error checking + algorithms, # online or offline training algorithms +) +from .math import BrainPyObject + +# convenient alias +conn = connect +init = initialize + +# numerical integrators +from brainpy import integrators +from brainpy.integrators import ode, sde, fde +from brainpy.integrators.base import (Integrator as Integrator) +from brainpy.integrators.joint_eq import (JointEq as JointEq) +from brainpy.integrators.runner import (IntegratorRunner as IntegratorRunner) +from brainpy.integrators.ode.generic import (odeint as odeint) +from brainpy.integrators.sde.generic import (sdeint as sdeint) +from brainpy.integrators.fde.generic import (fdeint as fdeint) + +# Part: Models # +# -------------- # + +# base classes +from brainpy.dynsys import ( + DynamicalSystem as DynamicalSystem, + DynSysGroup as DynSysGroup, # collectors + Sequential as Sequential, + Dynamic as Dynamic, # category + Projection as Projection, + receive_update_input, # decorators + receive_update_output, + not_receive_update_input, + not_receive_update_output, +) + +DynamicalSystemNS = DynamicalSystem +Network = DynSysGroup +# delays +from brainpy.delay import ( + VarDelay as VarDelay, +) + +# building blocks +from brainpy import ( + dnn, layers, # module for dnn layers + dyn, # module for modeling dynamics +) + +NeuGroup = NeuGroupNS = dyn.NeuDyn +dyn.DynamicalSystem = DynamicalSystem + +# common tools +from brainpy.context import (share as share) +from brainpy.helpers import ( + reset_level as reset_level, + reset_state as reset_state, + save_state as save_state, + load_state as load_state, + clear_input as clear_input +) + +# Part: Running # +# --------------- # +from brainpy.runners import (DSRunner as DSRunner) +from brainpy.transform import (LoopOverTime as LoopOverTime, ) +from brainpy import (running as running) + +# Part: Training # +# ---------------- # +from brainpy.train.base import (DSTrainer as DSTrainer, ) +from brainpy.train.back_propagation import (BPTT as BPTT, + BPFF as BPFF, ) +from brainpy.train.online import (OnlineTrainer as OnlineTrainer, + ForceTrainer as ForceTrainer, ) +from brainpy.train.offline import (OfflineTrainer as OfflineTrainer, + RidgeTrainer as RidgeTrainer, ) + +# Part: Analysis # +# ---------------- # +from brainpy import (analysis as analysis) + +# Part: Others # +# ---------------- # +import brainpy.visualization as visualize + +# Part: Deprecations # +# -------------------- # +from brainpy import train +from brainpy import ( + channels, # channel models + neurons, # neuron groups + synapses, # synapses + rates, # rate models + synouts, # synaptic output + synplast, # synaptic plasticity +) +from brainpy.math.object_transform.base import ( + Base as Base, +) + +from brainpy.math.object_transform.collectors import ( + ArrayCollector as ArrayCollector, + Collector as Collector, +) + + +from brainpy.deprecations import deprecation_getattr + +optimizers = optim + + + +if __name__ == '__main__': + connect + initialize, # weight initialization + optim, # gradient descent optimizers + losses, # loss functions + measure, # methods for data analysis + inputs, # methods for generating input currents + encoding, # encoding schema + checkpoints, # checkpoints + check, # error checking + mixin, # mixin classes + algorithms, # online or offline training algorithms + check, tools, errors, math + BrainPyObject, + integrators, ode, sde, fde + Integrator, JointEq, IntegratorRunner, odeint, sdeint, fdeint + DynamicalSystem, DynSysGroup, Sequential, Dynamic, Projection + receive_update_input, receive_update_output, not_receive_update_input, not_receive_update_output + VarDelay + dnn, layers, dyn + NeuGroup, NeuGroupNS + share + reset_level, reset_state, save_state, load_state, clear_input + DSRunner, LoopOverTime, running + DSTrainer, BPTT, BPFF, OnlineTrainer, ForceTrainer, + OfflineTrainer, RidgeTrainer + analysis + visualize + train + channels, neurons, synapses, rates, state_based, synouts, synplast + modes + Base + ArrayCollector, Collector, errors diff --git a/brainpy/version2/algorithms/__init__.py b/brainpy/algorithms/__init__.py similarity index 100% rename from brainpy/version2/algorithms/__init__.py rename to brainpy/algorithms/__init__.py diff --git a/brainpy/version2/algorithms/offline.py b/brainpy/algorithms/offline.py similarity index 99% rename from brainpy/version2/algorithms/offline.py rename to brainpy/algorithms/offline.py index b8e83b559..36ebc30b3 100644 --- a/brainpy/version2/algorithms/offline.py +++ b/brainpy/algorithms/offline.py @@ -19,9 +19,9 @@ import numpy as np from jax.lax import while_loop -import brainpy.version2.math as bm -from brainpy.version2.math.object_transform.base import BrainPyObject -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.math.object_transform.base import BrainPyObject +from brainpy.types import ArrayType from .utils import (Sigmoid, Regularization, L1Regularization, diff --git a/brainpy/version2/algorithms/online.py b/brainpy/algorithms/online.py similarity index 98% rename from brainpy/version2/algorithms/online.py rename to brainpy/algorithms/online.py index cf75678a0..9477154bd 100644 --- a/brainpy/version2/algorithms/online.py +++ b/brainpy/algorithms/online.py @@ -17,8 +17,8 @@ import jax.numpy as jnp from jax import vmap -import brainpy.version2.math as bm -from brainpy.version2.math.object_transform.base import BrainPyObject +import brainpy.math as bm +from brainpy.math.object_transform.base import BrainPyObject __all__ = [ # brainpy_object class diff --git a/brainpy/version2/algorithms/utils.py b/brainpy/algorithms/utils.py similarity index 99% rename from brainpy/version2/algorithms/utils.py rename to brainpy/algorithms/utils.py index a360ba7c3..352fb2550 100644 --- a/brainpy/version2/algorithms/utils.py +++ b/brainpy/algorithms/utils.py @@ -15,7 +15,7 @@ # ============================================================================== from itertools import combinations_with_replacement -import brainpy.version2.math as bm +import brainpy.math as bm __all__ = [ 'Sigmoid', diff --git a/brainpy/version2/analysis/__init__.py b/brainpy/analysis/__init__.py similarity index 100% rename from brainpy/version2/analysis/__init__.py rename to brainpy/analysis/__init__.py diff --git a/brainpy/version2/analysis/base.py b/brainpy/analysis/base.py similarity index 100% rename from brainpy/version2/analysis/base.py rename to brainpy/analysis/base.py diff --git a/brainpy/version2/analysis/constants.py b/brainpy/analysis/constants.py similarity index 100% rename from brainpy/version2/analysis/constants.py rename to brainpy/analysis/constants.py diff --git a/brainpy/version2/analysis/highdim/__init__.py b/brainpy/analysis/highdim/__init__.py similarity index 100% rename from brainpy/version2/analysis/highdim/__init__.py rename to brainpy/analysis/highdim/__init__.py diff --git a/brainpy/version2/analysis/highdim/slow_points.py b/brainpy/analysis/highdim/slow_points.py similarity index 98% rename from brainpy/version2/analysis/highdim/slow_points.py rename to brainpy/analysis/highdim/slow_points.py index 5205bcad8..f6cc02d22 100644 --- a/brainpy/version2/analysis/highdim/slow_points.py +++ b/brainpy/analysis/highdim/slow_points.py @@ -24,16 +24,16 @@ import numpy as np from jax.scipy.optimize import minimize -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import AnalyzerError, UnsupportedError -from brainpy.version2 import optim, losses -from brainpy.version2.analysis import utils, base, constants -from brainpy.version2.context import share -from brainpy.version2.deprecations import _input_deprecate_msg -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.helpers import clear_input -from brainpy.version2.runners import check_and_format_inputs, _f_ops -from brainpy.version2.types import ArrayType +from brainpy import optim, losses +from brainpy.analysis import utils, base, constants +from brainpy.context import share +from brainpy.deprecations import _input_deprecate_msg +from brainpy.dynsys import DynamicalSystem +from brainpy.helpers import clear_input +from brainpy.runners import check_and_format_inputs, _f_ops +from brainpy.types import ArrayType __all__ = [ 'SlowPointFinder', @@ -87,7 +87,7 @@ class SlowPointFinder(base.DSAnalyzer): dt: float Parameter for ``f_cell`` is instance of :py:class:`~.DynamicalSystem`. The numerical integration step, which can be used when . - The default is given by `brainpy.version2.math.get_dt()`. + The default is given by `brainpy.math.get_dt()`. .. versionadded:: 2.2.0 inputs: sequence, callable @@ -595,7 +595,7 @@ def compute_jacobians( # visualization if plot: import matplotlib.pyplot as plt - from brainpy.version2 import visualize + from brainpy import visualize jacobian = bm.as_numpy(jacobian) num_col = min(num_col, num_point) diff --git a/brainpy/version2/analysis/highdim/tests/test_slow_points.py b/brainpy/analysis/highdim/tests/test_slow_points.py similarity index 99% rename from brainpy/version2/analysis/highdim/tests/test_slow_points.py rename to brainpy/analysis/highdim/tests/test_slow_points.py index c329ed09e..39275d603 100644 --- a/brainpy/version2/analysis/highdim/tests/test_slow_points.py +++ b/brainpy/analysis/highdim/tests/test_slow_points.py @@ -15,8 +15,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class HH(bp.dyn.NeuDyn): diff --git a/brainpy/version2/analysis/lowdim/__init__.py b/brainpy/analysis/lowdim/__init__.py similarity index 100% rename from brainpy/version2/analysis/lowdim/__init__.py rename to brainpy/analysis/lowdim/__init__.py diff --git a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py b/brainpy/analysis/lowdim/lowdim_analyzer.py similarity index 99% rename from brainpy/version2/analysis/lowdim/lowdim_analyzer.py rename to brainpy/analysis/lowdim/lowdim_analyzer.py index 178e5329c..aa199b9e8 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py +++ b/brainpy/analysis/lowdim/lowdim_analyzer.py @@ -23,11 +23,11 @@ from jax.scipy.optimize import minimize import brainpy._errors as errors -import brainpy.version2.math as bm -from brainpy.version2 import tools -from brainpy.version2.analysis import constants as C, utils -from brainpy.version2.analysis.base import DSAnalyzer -from brainpy.version2.math.object_transform.collectors import Collector +import brainpy.math as bm +from brainpy import tools +from brainpy.analysis import constants as C, utils +from brainpy.analysis.base import DSAnalyzer +from brainpy.math.object_transform.collectors import Collector pyplot = None diff --git a/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py b/brainpy/analysis/lowdim/lowdim_bifurcation.py similarity index 99% rename from brainpy/version2/analysis/lowdim/lowdim_bifurcation.py rename to brainpy/analysis/lowdim/lowdim_bifurcation.py index af099a029..663c8b62a 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py +++ b/brainpy/analysis/lowdim/lowdim_bifurcation.py @@ -21,10 +21,10 @@ import numpy as np from jax import vmap -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy import _errors as errors -from brainpy.version2.analysis import stability, plotstyle, utils, constants as C -from brainpy.version2.analysis.lowdim.lowdim_analyzer import * +from brainpy.analysis import stability, plotstyle, utils, constants as C +from brainpy.analysis.lowdim.lowdim_analyzer import * pyplot = None diff --git a/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py b/brainpy/analysis/lowdim/lowdim_phase_plane.py similarity index 99% rename from brainpy/version2/analysis/lowdim/lowdim_phase_plane.py rename to brainpy/analysis/lowdim/lowdim_phase_plane.py index 098bbc5a2..e8af35c0f 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py +++ b/brainpy/analysis/lowdim/lowdim_phase_plane.py @@ -21,10 +21,10 @@ from jax import vmap import brainpy._errors as errors -import brainpy.version2.math as bm -from brainpy.version2 import math -from brainpy.version2.analysis import stability, plotstyle, constants as C, utils -from brainpy.version2.analysis.lowdim.lowdim_analyzer import * +import brainpy.math as bm +from brainpy import math +from brainpy.analysis import stability, plotstyle, constants as C, utils +from brainpy.analysis.lowdim.lowdim_analyzer import * pyplot = None diff --git a/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py b/brainpy/analysis/lowdim/tests/test_bifurcation.py similarity index 97% rename from brainpy/version2/analysis/lowdim/tests/test_bifurcation.py rename to brainpy/analysis/lowdim/tests/test_bifurcation.py index 48d41f6e6..50f16e0f0 100644 --- a/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py +++ b/brainpy/analysis/lowdim/tests/test_bifurcation.py @@ -18,8 +18,8 @@ pytest.skip('Test cannot pass in github action.', allow_module_level=True) import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm import matplotlib.pyplot as plt block = False diff --git a/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py b/brainpy/analysis/lowdim/tests/test_phase_plane.py similarity index 99% rename from brainpy/version2/analysis/lowdim/tests/test_phase_plane.py rename to brainpy/analysis/lowdim/tests/test_phase_plane.py index af4a81bdf..9df61b627 100644 --- a/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py +++ b/brainpy/analysis/lowdim/tests/test_phase_plane.py @@ -18,7 +18,7 @@ import jax.numpy as jnp import matplotlib.pyplot as plt -import brainpy.version2 as bp +import brainpy as bp show = False diff --git a/brainpy/version2/analysis/plotstyle.py b/brainpy/analysis/plotstyle.py similarity index 100% rename from brainpy/version2/analysis/plotstyle.py rename to brainpy/analysis/plotstyle.py diff --git a/brainpy/version2/analysis/stability.py b/brainpy/analysis/stability.py similarity index 100% rename from brainpy/version2/analysis/stability.py rename to brainpy/analysis/stability.py diff --git a/brainpy/version2/analysis/tests/test_stability.py b/brainpy/analysis/tests/test_stability.py similarity index 94% rename from brainpy/version2/analysis/tests/test_stability.py rename to brainpy/analysis/tests/test_stability.py index d06b7a967..d4f630967 100644 --- a/brainpy/version2/analysis/tests/test_stability.py +++ b/brainpy/analysis/tests/test_stability.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2.analysis.stability import * +from brainpy.analysis.stability import * def test_d1(): diff --git a/brainpy/version2/analysis/utils/__init__.py b/brainpy/analysis/utils/__init__.py similarity index 100% rename from brainpy/version2/analysis/utils/__init__.py rename to brainpy/analysis/utils/__init__.py diff --git a/brainpy/version2/analysis/utils/function.py b/brainpy/analysis/utils/function.py similarity index 99% rename from brainpy/version2/analysis/utils/function.py rename to brainpy/analysis/utils/function.py index 85df5dda5..653b4132e 100644 --- a/brainpy/version2/analysis/utils/function.py +++ b/brainpy/analysis/utils/function.py @@ -15,7 +15,7 @@ # ============================================================================== import inspect -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy import _errors as errors __all__ = [ diff --git a/brainpy/version2/analysis/utils/measurement.py b/brainpy/analysis/utils/measurement.py similarity index 97% rename from brainpy/version2/analysis/utils/measurement.py rename to brainpy/analysis/utils/measurement.py index 9b6996a1e..d4bc7c01d 100644 --- a/brainpy/version2/analysis/utils/measurement.py +++ b/brainpy/analysis/utils/measurement.py @@ -20,8 +20,8 @@ import jax.numpy as jnp import numpy as np -import brainpy.version2.math as bm -from brainpy.version2.tools import numba_jit +import brainpy.math as bm +from brainpy.tools import numba_jit __all__ = [ 'find_indexes_of_limit_cycle_max', diff --git a/brainpy/version2/analysis/utils/model.py b/brainpy/analysis/utils/model.py similarity index 91% rename from brainpy/version2/analysis/utils/model.py rename to brainpy/analysis/utils/model.py index c8b430eff..7bedc3af8 100644 --- a/brainpy/version2/analysis/utils/model.py +++ b/brainpy/analysis/utils/model.py @@ -14,16 +14,16 @@ # limitations under the License. # ============================================================================== from brainpy._errors import AnalyzerError, UnsupportedError -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.integrators.base import Integrator -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.integrators.ode.base import ODEIntegrator -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.math.environment import get_float -from brainpy.version2.math.interoperability import as_jax -from brainpy.version2.math.object_transform import Variable -from brainpy.version2.runners import DSRunner +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem +from brainpy.integrators.base import Integrator +from brainpy.integrators.joint_eq import JointEq +from brainpy.integrators.ode.base import ODEIntegrator +from brainpy.integrators.ode.generic import odeint +from brainpy.math.environment import get_float +from brainpy.math.interoperability import as_jax +from brainpy.math.object_transform import Variable +from brainpy.runners import DSRunner __all__ = [ 'model_transform', diff --git a/brainpy/version2/analysis/utils/optimization.py b/brainpy/analysis/utils/optimization.py similarity index 99% rename from brainpy/version2/analysis/utils/optimization.py rename to brainpy/analysis/utils/optimization.py index be03e0a3a..6630d3897 100644 --- a/brainpy/version2/analysis/utils/optimization.py +++ b/brainpy/analysis/utils/optimization.py @@ -20,7 +20,7 @@ from jax import grad, jit, vmap from jax.flatten_util import ravel_pytree -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy import _errors as errors from . import f_without_jaxarray_return @@ -63,7 +63,7 @@ def _where(p, a, b): def jax_brentq(fun): f = f_without_jaxarray_return(fun) assert jax.config.read('jax_enable_x64'), ('Brentq optimization need x64 support. ' - 'Please enable x64 with "brainpy.version2.math.enable_x64()"') + 'Please enable x64 with "brainpy.math.enable_x64()"') rtol = 4 * jnp.finfo(jnp.float64).eps # if jax.config.read('jax_enable_x64'): diff --git a/brainpy/version2/analysis/utils/others.py b/brainpy/analysis/utils/others.py similarity index 99% rename from brainpy/version2/analysis/utils/others.py rename to brainpy/analysis/utils/others.py index cd82e28c1..bf7ff3abc 100644 --- a/brainpy/version2/analysis/utils/others.py +++ b/brainpy/analysis/utils/others.py @@ -19,7 +19,7 @@ import jax.numpy as jnp import numpy as np -import brainpy.version2.math as bm +import brainpy.math as bm from .function import f_without_jaxarray_return from .measurement import euclidean_distance_jax diff --git a/brainpy/version2/analysis/utils/outputs.py b/brainpy/analysis/utils/outputs.py similarity index 100% rename from brainpy/version2/analysis/utils/outputs.py rename to brainpy/analysis/utils/outputs.py diff --git a/brainpy/version2/analysis/utils/visualization.py b/brainpy/analysis/utils/visualization.py similarity index 100% rename from brainpy/version2/analysis/utils/visualization.py rename to brainpy/analysis/utils/visualization.py diff --git a/brainpy/version2/channels.py b/brainpy/channels.py similarity index 96% rename from brainpy/version2/channels.py rename to brainpy/channels.py index 5fefd9bf4..54d26beb3 100644 --- a/brainpy/version2/channels.py +++ b/brainpy/channels.py @@ -14,7 +14,7 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dyn`` module instead. """ diff --git a/brainpy/version2/check.py b/brainpy/check.py similarity index 96% rename from brainpy/version2/check.py rename to brainpy/check.py index d3b39f028..4bf048e92 100644 --- a/brainpy/version2/check.py +++ b/brainpy/check.py @@ -249,11 +249,11 @@ def is_initializer( """Check the initializer. """ global Array - if Array is None: from brainpy.version2.math.ndarray import Array as Array + if Array is None: from brainpy.math.ndarray import Array as Array global init if init is None: - from brainpy.version2 import initialize + from brainpy import initialize init = initialize name = '' if name is None else name @@ -269,7 +269,7 @@ def is_initializer( elif callable(initializer): return initializer else: - raise ValueError(f'{name} should be an instance of brainpy.version2.init.Initializer, ' + raise ValueError(f'{name} should be an instance of brainpy.init.Initializer, ' f'tensor or callable function. While we got {type(initializer)}') @@ -282,9 +282,9 @@ def is_connector( """ global Array if Array is None: - from brainpy.version2.math.ndarray import Array as Array + from brainpy.math.ndarray import Array as Array global conn - if conn is None: from brainpy.version2 import connect as conn + if conn is None: from brainpy import connect as conn name = '' if name is None else name if connector is None: @@ -299,7 +299,7 @@ def is_connector( elif callable(connector): return connector else: - raise ValueError(f'{name} should be an instance of brainpy.version2.conn.Connector, ' + raise ValueError(f'{name} should be an instance of brainpy.conn.Connector, ' f'tensor or callable function. While we got {type(connector)}') @@ -568,7 +568,7 @@ def is_elem_or_seq_or_dict(targets: Any, def is_all_vars(dyn_vars: Any, out_as: str = 'tuple'): global var_obs if var_obs is None: - from brainpy.version2.math import Variable, VarList, VarDict + from brainpy.math import Variable, VarList, VarDict var_obs = (VarList, VarDict, Variable) return is_elem_or_seq_or_dict(dyn_vars, var_obs, out_as) @@ -577,7 +577,7 @@ def is_all_vars(dyn_vars: Any, out_as: str = 'tuple'): def is_all_objs(targets: Any, out_as: str = 'tuple'): global BrainPyObject if BrainPyObject is None: - from brainpy.version2.math.object_transform.base import BrainPyObject + from brainpy.math.object_transform.base import BrainPyObject return is_elem_or_seq_or_dict(targets, BrainPyObject, out_as) @@ -595,7 +595,7 @@ def _err_jit_false_branch(x): def _cond(err_fun, pred, err_arg): - from brainpy.version2.math.remove_vmap import remove_vmap + from brainpy.math.remove_vmap import remove_vmap @wraps(err_fun) def true_err_fun(arg, transforms): @@ -619,7 +619,7 @@ def jit_error(pred, err_fun, err_arg=None): err_arg: any The arguments which passed into `err_f`. """ - from brainpy.version2.math.interoperability import as_jax + from brainpy.math.interoperability import as_jax partial(_cond, err_fun)(as_jax(pred), err_arg) @@ -636,8 +636,8 @@ def jit_error_checking_no_args(pred: bool, err: Exception): err: Exception The error. """ - from brainpy.version2.math.remove_vmap import remove_vmap - from brainpy.version2.math.interoperability import as_jax + from brainpy.math.remove_vmap import remove_vmap + from brainpy.math.interoperability import as_jax assert isinstance(err, Exception), 'Must be instance of Exception.' diff --git a/brainpy/version2/checkpoints.py b/brainpy/checkpoints.py similarity index 97% rename from brainpy/version2/checkpoints.py rename to brainpy/checkpoints.py index fcf8a79c0..44c262bc6 100644 --- a/brainpy/version2/checkpoints.py +++ b/brainpy/checkpoints.py @@ -18,8 +18,8 @@ import jax from braintools.file import msgpack_register_serialization, AsyncManager -from brainpy.version2.math.ndarray import Array -from brainpy.version2.types import PyTree +from brainpy.math.ndarray import Array +from brainpy.types import PyTree __all__ = [ 'save_pytree', 'load_pytree', 'AsyncManager', diff --git a/brainpy/version2/connect/__init__.py b/brainpy/connect/__init__.py similarity index 93% rename from brainpy/version2/connect/__init__.py rename to brainpy/connect/__init__.py index 92926b3b1..cd899271f 100644 --- a/brainpy/version2/connect/__init__.py +++ b/brainpy/connect/__init__.py @@ -15,7 +15,7 @@ # ============================================================================== """ This module provides methods to construct connectivity between neuron groups. -You can access them through ``brainpy.version2.connect.XXX``. +You can access them through ``brainpy.connect.XXX``. """ from .base import * diff --git a/brainpy/version2/connect/base.py b/brainpy/connect/base.py similarity index 99% rename from brainpy/version2/connect/base.py rename to brainpy/connect/base.py index e14859cdf..c4aea96f5 100644 --- a/brainpy/version2/connect/base.py +++ b/brainpy/connect/base.py @@ -21,7 +21,7 @@ import numpy as onp from brainpy._errors import ConnectorError -from brainpy.version2 import tools, math as bm +from brainpy import tools, math as bm __all__ = [ # the connection types @@ -85,7 +85,7 @@ def set_default_dtype(mat_dtype=None, idx_dtype=None): For examples: >>> import numpy as np - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> conn = bp.conn.GridFour()(4, 4) >>> conn.require('conn_mat') @@ -133,7 +133,7 @@ class TwoEndConnector(Connector): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp class MyConnector(bp.conn.TwoEndConnector): def build_conn(self): return dict(csr=, mat=, coo=) @@ -143,7 +143,7 @@ def build_conn(self): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp class MyConnector(bp.conn.TwoEndConnector): def build_mat(self, ): return conn_matrix @@ -397,7 +397,7 @@ def require(self, *structures): Examples:: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> conn = bp.connect.FixedProb(0.1) >>> mat = conn.require(10, 20, 'conn_mat') >>> mat.shape diff --git a/brainpy/version2/connect/custom_conn.py b/brainpy/connect/custom_conn.py similarity index 99% rename from brainpy/version2/connect/custom_conn.py rename to brainpy/connect/custom_conn.py index 69b47e35f..bff088a56 100644 --- a/brainpy/version2/connect/custom_conn.py +++ b/brainpy/connect/custom_conn.py @@ -18,7 +18,7 @@ import numpy as np from brainpy._errors import ConnectorError -from brainpy.version2 import math as bm, tools +from brainpy import math as bm, tools from .base import * __all__ = [ diff --git a/brainpy/version2/connect/random_conn.py b/brainpy/connect/random_conn.py similarity index 99% rename from brainpy/version2/connect/random_conn.py rename to brainpy/connect/random_conn.py index 3f4d047e4..50e658366 100644 --- a/brainpy/version2/connect/random_conn.py +++ b/brainpy/connect/random_conn.py @@ -19,10 +19,10 @@ import numpy as np from jax import vmap, jit, numpy as jnp -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import ConnectorError -from brainpy.version2.tools import numba_seed, numba_jit, numba_range, format_seed -from brainpy.version2.tools.package import SUPPORT_NUMBA +from brainpy.tools import numba_seed, numba_jit, numba_range, format_seed +from brainpy.tools.package import SUPPORT_NUMBA from .base import * __all__ = [ diff --git a/brainpy/version2/connect/regular_conn.py b/brainpy/connect/regular_conn.py similarity index 100% rename from brainpy/version2/connect/regular_conn.py rename to brainpy/connect/regular_conn.py diff --git a/brainpy/version2/connect/tests/test_custom_conn.py b/brainpy/connect/tests/test_custom_conn.py similarity index 98% rename from brainpy/version2/connect/tests/test_custom_conn.py rename to brainpy/connect/tests/test_custom_conn.py index c6cc6152d..248b8015b 100644 --- a/brainpy/version2/connect/tests/test_custom_conn.py +++ b/brainpy/connect/tests/test_custom_conn.py @@ -19,7 +19,7 @@ import pytest from scipy.sparse import csr_matrix -import brainpy.version2 as bp +import brainpy as bp class TestIJConn(TestCase): diff --git a/brainpy/version2/connect/tests/test_optimized_result.py b/brainpy/connect/tests/test_optimized_result.py similarity index 99% rename from brainpy/version2/connect/tests/test_optimized_result.py rename to brainpy/connect/tests/test_optimized_result.py index c6d726ce7..02417800b 100644 --- a/brainpy/version2/connect/tests/test_optimized_result.py +++ b/brainpy/connect/tests/test_optimized_result.py @@ -18,7 +18,7 @@ import pytest -import brainpy.version2 as bp +import brainpy as bp try: import pandas as pd diff --git a/brainpy/version2/connect/tests/test_random_conn.py b/brainpy/connect/tests/test_random_conn.py similarity index 99% rename from brainpy/version2/connect/tests/test_random_conn.py rename to brainpy/connect/tests/test_random_conn.py index 48eb33dfa..c41dfdb42 100644 --- a/brainpy/version2/connect/tests/test_random_conn.py +++ b/brainpy/connect/tests/test_random_conn.py @@ -17,7 +17,7 @@ import pytest -import brainpy.version2 as bp +import brainpy as bp class TestFixedProb(unittest.TestCase): diff --git a/brainpy/version2/connect/tests/test_random_conn_visualize.py b/brainpy/connect/tests/test_random_conn_visualize.py similarity index 99% rename from brainpy/version2/connect/tests/test_random_conn_visualize.py rename to brainpy/connect/tests/test_random_conn_visualize.py index 2a2d8609d..9bc78c0d2 100644 --- a/brainpy/version2/connect/tests/test_random_conn_visualize.py +++ b/brainpy/connect/tests/test_random_conn_visualize.py @@ -17,7 +17,7 @@ pytest.skip('skip', allow_module_level=True) -import brainpy.version2 as bp +import brainpy as bp def test_random_fix_pre1(): diff --git a/brainpy/version2/connect/tests/test_regular_conn.py b/brainpy/connect/tests/test_regular_conn.py similarity index 98% rename from brainpy/version2/connect/tests/test_regular_conn.py rename to brainpy/connect/tests/test_regular_conn.py index 1870cbfdc..3435b8d94 100644 --- a/brainpy/version2/connect/tests/test_regular_conn.py +++ b/brainpy/connect/tests/test_regular_conn.py @@ -17,8 +17,8 @@ import numpy as np -import brainpy.version2 as bp -from brainpy.version2 import connect +import brainpy as bp +from brainpy import connect class TestOne2One(unittest.TestCase): diff --git a/brainpy/version2/context.py b/brainpy/context.py similarity index 98% rename from brainpy/version2/context.py rename to brainpy/context.py index 686038f26..769389bd8 100644 --- a/brainpy/version2/context.py +++ b/brainpy/context.py @@ -21,7 +21,7 @@ from typing import Any, Union import brainstate -from brainpy.version2.tools.dicts import DotDict +from brainpy.tools.dicts import DotDict __all__ = [ 'share', diff --git a/brainpy/version2/delay.py b/brainpy/delay.py similarity index 97% rename from brainpy/version2/delay.py rename to brainpy/delay.py index 13aaada84..a283c5916 100644 --- a/brainpy/version2/delay.py +++ b/brainpy/delay.py @@ -25,12 +25,12 @@ import numpy as np from brainpy.mixin import ParamDesc, ReturnInfo, JointType, SupportAutoDelay -from brainpy.version2 import check, math as bm -from brainpy.version2.check import jit_error -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.initialize import variable_ -from brainpy.version2.math.delayvars import ROTATE_UPDATE, CONCAT_UPDATE +from brainpy import check, math as bm +from brainpy.check import jit_error +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem +from brainpy.initialize import variable_ +from brainpy.math.delayvars import ROTATE_UPDATE, CONCAT_UPDATE __all__ = [ 'Delay', @@ -233,7 +233,7 @@ def __init__( # check if not isinstance(target, bm.Variable): - raise ValueError(f'Must be an instance of brainpy.version2.math.Variable. But we got {type(target)}') + raise ValueError(f'Must be an instance of brainpy.math.Variable. But we got {type(target)}') if self.mode.is_child_of(bm.BatchingMode): assert target.batch_axis is not None diff --git a/brainpy/version2/deprecations.py b/brainpy/deprecations.py similarity index 100% rename from brainpy/version2/deprecations.py rename to brainpy/deprecations.py diff --git a/brainpy/version2/dnn/__init__.py b/brainpy/dnn/__init__.py similarity index 100% rename from brainpy/version2/dnn/__init__.py rename to brainpy/dnn/__init__.py diff --git a/brainpy/version2/dnn/activations.py b/brainpy/dnn/activations.py similarity index 92% rename from brainpy/version2/dnn/activations.py rename to brainpy/dnn/activations.py index ce514e1a2..6f798fad5 100644 --- a/brainpy/version2/dnn/activations.py +++ b/brainpy/dnn/activations.py @@ -15,9 +15,9 @@ import warnings from typing import Optional -from brainpy.version2 import math as bm -from brainpy.version2.dnn.base import Layer -from brainpy.version2.types import ArrayType +from brainpy import math as bm +from brainpy.dnn.base import Layer +from brainpy.types import ArrayType __all__ = [ 'Threshold', 'ReLU', 'RReLU', 'Hardtanh', 'ReLU6', 'Sigmoid', 'Hardsigmoid', 'Tanh', @@ -58,8 +58,8 @@ class Threshold(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Threshold(0.1, 20) >>> input = bm.random.randn(2) >>> output = m(input) @@ -101,8 +101,8 @@ class ReLU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.ReLU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -110,8 +110,8 @@ class ReLU(Layer): An implementation of CReLU - https://arxiv.org/abs/1603.05201 - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.ReLU() >>> input = bm.random.randn(2).unsqueeze(0) >>> output = bm.cat((m(input), m(-input))) @@ -163,8 +163,8 @@ class RReLU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.RReLU(0.1, 0.3) >>> input = bm.random.randn(2) >>> output = m(input) @@ -224,8 +224,8 @@ class Hardtanh(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Hardtanh(-2, 2) >>> input = bm.random.randn(2) >>> output = m(input) @@ -274,8 +274,8 @@ class ReLU6(Hardtanh): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.test_ReLU6() >>> input = bm.random.randn(2) >>> output = m(input) @@ -302,8 +302,8 @@ class Sigmoid(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Sigmoid() >>> input = bm.random.randn(2) >>> output = m(input) @@ -334,8 +334,8 @@ class Hardsigmoid(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Hardsigmoid() >>> input = bm.random.randn(2) >>> output = m(input) @@ -367,8 +367,8 @@ class Tanh(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Tanh() >>> input = bm.random.randn(2) >>> output = m(input) @@ -401,8 +401,8 @@ class SiLU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.SiLU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -441,8 +441,8 @@ class Mish(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Mish() >>> input = bm.random.randn(2) >>> output = m(input) @@ -484,8 +484,8 @@ class Hardswish(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Hardswish() >>> input = bm.random.randn(2) >>> output = m(input) @@ -525,8 +525,8 @@ class ELU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.ELU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -566,8 +566,8 @@ class CELU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.CELU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -612,8 +612,8 @@ class SELU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.SELU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -650,8 +650,8 @@ class GLU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.GLU() >>> input = bm.random.randn(4, 2) >>> output = m(input) @@ -691,8 +691,8 @@ class GELU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.GELU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -733,8 +733,8 @@ class Hardshrink(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Hardshrink() >>> input = bm.random.randn(2) >>> output = m(input) @@ -781,8 +781,8 @@ class LeakyReLU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.LeakyReLU(0.1) >>> input = bm.random.randn(2) >>> output = m(input) @@ -816,8 +816,8 @@ class LogSigmoid(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.LogSigmoid() >>> input = bm.random.randn(2) >>> output = m(input) @@ -847,8 +847,8 @@ class Softplus(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Softplus() >>> input = bm.random.randn(2) >>> output = m(input) @@ -889,8 +889,8 @@ class Softshrink(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Softshrink() >>> input = bm.random.randn(2) >>> output = m(input) @@ -952,8 +952,8 @@ class PReLU(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.PReLU() >>> input = bm.random.randn(2) >>> output = m(input) @@ -985,8 +985,8 @@ class Softsign(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Softsign() >>> input = bm.random.randn(2) >>> output = m(input) @@ -1008,8 +1008,8 @@ class Tanhshrink(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Tanhshrink() >>> input = bm.random.randn(2) >>> output = m(input) @@ -1044,8 +1044,8 @@ class Softmin(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Softmin(dim=1) >>> input = bm.random.randn(2, 3) >>> output = m(input) @@ -1097,8 +1097,8 @@ class Softmax(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Softmax(dim=1) >>> input = bm.random.randn(2, 3) >>> output = m(input) @@ -1134,8 +1134,8 @@ class Softmax2d(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.Softmax2d() >>> # you softmax over the 2nd dimension >>> input = bm.random.randn(2, 3, 12, 13) @@ -1168,8 +1168,8 @@ class LogSoftmax(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> m = bp.dnn.LogSoftmax(dim=1) >>> input = bm.random.randn(2, 3) >>> output = m(input) diff --git a/brainpy/version2/dnn/base.py b/brainpy/dnn/base.py similarity index 94% rename from brainpy/version2/dnn/base.py rename to brainpy/dnn/base.py index db695437e..9aa4e33ae 100644 --- a/brainpy/version2/dnn/base.py +++ b/brainpy/dnn/base.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2.dynsys import DynamicalSystem +from brainpy.dynsys import DynamicalSystem __all__ = [ 'Layer' diff --git a/brainpy/version2/dnn/conv.py b/brainpy/dnn/conv.py similarity index 99% rename from brainpy/version2/dnn/conv.py rename to brainpy/dnn/conv.py index 01d077504..85fd54526 100644 --- a/brainpy/version2/dnn/conv.py +++ b/brainpy/dnn/conv.py @@ -18,10 +18,10 @@ from jax import lax import brainstate -from brainpy.version2 import math as bm, tools -from brainpy.version2.dnn.base import Layer -from brainpy.version2.initialize import Initializer, XavierNormal, ZeroInit, parameter -from brainpy.version2.types import ArrayType +from brainpy import math as bm, tools +from brainpy.dnn.base import Layer +from brainpy.initialize import Initializer, XavierNormal, ZeroInit, parameter +from brainpy.types import ArrayType __all__ = [ 'Conv1d', 'Conv2d', 'Conv3d', diff --git a/brainpy/version2/dnn/dropout.py b/brainpy/dnn/dropout.py similarity index 89% rename from brainpy/version2/dnn/dropout.py rename to brainpy/dnn/dropout.py index 272f45817..1b61eae73 100644 --- a/brainpy/version2/dnn/dropout.py +++ b/brainpy/dnn/dropout.py @@ -15,9 +15,9 @@ # ============================================================================== from typing import Optional -from brainpy.version2 import math as bm, check -from brainpy.version2.context import share -from brainpy.version2.dnn.base import Layer +from brainpy import math as bm, check +from brainpy.context import share +from brainpy.dnn.base import Layer __all__ = [ 'Dropout' @@ -30,7 +30,7 @@ class Dropout(Layer): In training, to compensate for the fraction of input values dropped (`rate`), all surviving values are multiplied by `1 / (1 - rate)`. - This layer is active only during training (``mode=brainpy.version2.math.training_mode``). In other + This layer is active only during training (``mode=brainpy.math.training_mode``). In other circumstances it is a no-op. .. [1] Srivastava, Nitish, et al. "Dropout: a simple way to prevent diff --git a/brainpy/version2/dnn/function.py b/brainpy/dnn/function.py similarity index 96% rename from brainpy/version2/dnn/function.py rename to brainpy/dnn/function.py index 8084252ab..321a51900 100644 --- a/brainpy/version2/dnn/function.py +++ b/brainpy/dnn/function.py @@ -15,8 +15,8 @@ # ============================================================================== from typing import Callable, Optional, Sequence -import brainpy.version2.math as bm -from brainpy.version2.dnn.base import Layer +import brainpy.math as bm +from brainpy.dnn.base import Layer __all__ = [ 'Activation', @@ -72,7 +72,7 @@ class Flatten(Layer): mode: Mode. Enable training this node or not. (default True). Examples:: - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> inp = bm.random.randn(32, 1, 5, 5) >>> # With default parameters >>> m = Flatten() @@ -131,8 +131,8 @@ class Unflatten(Layer): sizes: Sequence of int. New shape of the unflattened dimension. Examples: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> input = bm.random.randn(2, 50) >>> # With tuple of ints >>> m = bp.Sequential( diff --git a/brainpy/version2/dnn/interoperation_flax.py b/brainpy/dnn/interoperation_flax.py similarity index 96% rename from brainpy/version2/dnn/interoperation_flax.py rename to brainpy/dnn/interoperation_flax.py index aa767d29b..0b6a13246 100644 --- a/brainpy/version2/dnn/interoperation_flax.py +++ b/brainpy/dnn/interoperation_flax.py @@ -18,10 +18,10 @@ import jax from jax.tree_util import tree_flatten, tree_map, tree_unflatten -from brainpy.version2 import math as bm -from brainpy.version2.context import share -from brainpy.version2.dnn.base import Layer -from brainpy.version2.dynsys import DynamicalSystem +from brainpy import math as bm +from brainpy.context import share +from brainpy.dnn.base import Layer +from brainpy.dynsys import DynamicalSystem try: import flax # noqa diff --git a/brainpy/version2/dnn/linear.py b/brainpy/dnn/linear.py similarity index 98% rename from brainpy/version2/dnn/linear.py rename to brainpy/dnn/linear.py index 799066668..5e3dd494e 100644 --- a/brainpy/version2/dnn/linear.py +++ b/brainpy/dnn/linear.py @@ -24,14 +24,14 @@ from brainpy._errors import MathError from brainpy.mixin import SupportOnline, SupportOffline, SupportSTDP -from brainpy.version2 import connect, initialize as init -from brainpy.version2 import math as bm -from brainpy.version2.check import is_initializer -from brainpy.version2.connect import csr2csc -from brainpy.version2.context import share -from brainpy.version2.dnn.base import Layer -from brainpy.version2.initialize import XavierNormal, ZeroInit, Initializer, parameter -from brainpy.version2.types import ArrayType, Sharding +from brainpy import connect, initialize as init +from brainpy import math as bm +from brainpy.check import is_initializer +from brainpy.connect import csr2csc +from brainpy.context import share +from brainpy.dnn.base import Layer +from brainpy.initialize import XavierNormal, ZeroInit, Initializer, parameter +from brainpy.types import ArrayType, Sharding __all__ = [ 'Dense', 'Linear', @@ -394,7 +394,7 @@ class MaskedLinear(Layer, SupportSTDP): where :math:`y` is the postsynaptic value, :math:`x` the presynaptic value, :math:`M` the synaptic weight using a dense matrix. - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> l = bp.dnn.MaskedLinear(bp.conn.FixedProb(0.1, pre=100, post=100), >>> weight=0.1) diff --git a/brainpy/version2/dnn/normalization.py b/brainpy/dnn/normalization.py similarity index 98% rename from brainpy/version2/dnn/normalization.py rename to brainpy/dnn/normalization.py index 8cf4fa9c9..1b3a2e85c 100644 --- a/brainpy/version2/dnn/normalization.py +++ b/brainpy/dnn/normalization.py @@ -17,11 +17,11 @@ from jax import lax, numpy as jnp -from brainpy.version2 import math as bm -from brainpy.version2.context import share -from brainpy.version2.dnn.base import Layer -from brainpy.version2.initialize import ZeroInit, OneInit, Initializer, parameter -from brainpy.version2.types import ArrayType +from brainpy import math as bm +from brainpy.context import share +from brainpy.dnn.base import Layer +from brainpy.initialize import ZeroInit, OneInit, Initializer, parameter +from brainpy.types import ArrayType __all__ = [ 'BatchNorm1d', @@ -459,8 +459,8 @@ class LayerNorm(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> # NLP Example >>> batch, sentence_length, embedding_dim = 20, 5, 10 @@ -551,8 +551,8 @@ class GroupNorm(Layer): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> input = bm.random.randn(20, 10, 10, 6) >>> # Separate 6 channels into 3 groups >>> m = bp.layers.GroupNorm(3, 6) diff --git a/brainpy/version2/dnn/pooling.py b/brainpy/dnn/pooling.py similarity index 99% rename from brainpy/version2/dnn/pooling.py rename to brainpy/dnn/pooling.py index 1a6c5332a..40f413851 100644 --- a/brainpy/version2/dnn/pooling.py +++ b/brainpy/dnn/pooling.py @@ -19,8 +19,8 @@ import jax.numpy as jnp import numpy as np -from brainpy.version2 import math as bm, check -from brainpy.version2.dnn.base import Layer +from brainpy import math as bm, check +from brainpy.dnn.base import Layer __all__ = [ 'MaxPool', diff --git a/brainpy/version2/dnn/tests/test_activation.py b/brainpy/dnn/tests/test_activation.py similarity index 99% rename from brainpy/version2/dnn/tests/test_activation.py rename to brainpy/dnn/tests/test_activation.py index 244d4ac50..9f24f7e13 100644 --- a/brainpy/version2/dnn/tests/test_activation.py +++ b/brainpy/dnn/tests/test_activation.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Activation(parameterized.TestCase): diff --git a/brainpy/version2/dnn/tests/test_conv_layers.py b/brainpy/dnn/tests/test_conv_layers.py similarity index 99% rename from brainpy/version2/dnn/tests/test_conv_layers.py rename to brainpy/dnn/tests/test_conv_layers.py index ab7cfd3e0..145d2de3d 100644 --- a/brainpy/version2/dnn/tests/test_conv_layers.py +++ b/brainpy/dnn/tests/test_conv_layers.py @@ -20,8 +20,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm if platform.system() == 'Darwin': pytest.skip('skip Mac OS', allow_module_level=True) diff --git a/brainpy/version2/dnn/tests/test_flax.py b/brainpy/dnn/tests/test_flax.py similarity index 95% rename from brainpy/version2/dnn/tests/test_flax.py rename to brainpy/dnn/tests/test_flax.py index c3de4019c..13d9f2645 100644 --- a/brainpy/version2/dnn/tests/test_flax.py +++ b/brainpy/dnn/tests/test_flax.py @@ -23,8 +23,8 @@ import jax.numpy as jnp import flax.linen as nn -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set_platform('cpu') bm.set_mode(bm.training_mode) diff --git a/brainpy/version2/dnn/tests/test_function.py b/brainpy/dnn/tests/test_function.py similarity index 96% rename from brainpy/version2/dnn/tests/test_function.py rename to brainpy/dnn/tests/test_function.py index ee0133bba..7cc77d369 100644 --- a/brainpy/version2/dnn/tests/test_function.py +++ b/brainpy/dnn/tests/test_function.py @@ -16,8 +16,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestFunction(parameterized.TestCase): diff --git a/brainpy/version2/dnn/tests/test_linear.py b/brainpy/dnn/tests/test_linear.py similarity index 99% rename from brainpy/version2/dnn/tests/test_linear.py rename to brainpy/dnn/tests/test_linear.py index e397f80db..faaf61bb1 100644 --- a/brainpy/version2/dnn/tests/test_linear.py +++ b/brainpy/dnn/tests/test_linear.py @@ -16,8 +16,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestLinear(parameterized.TestCase): diff --git a/brainpy/version2/dnn/tests/test_mode.py b/brainpy/dnn/tests/test_mode.py similarity index 99% rename from brainpy/version2/dnn/tests/test_mode.py rename to brainpy/dnn/tests/test_mode.py index be00cf35a..c5f99b708 100644 --- a/brainpy/version2/dnn/tests/test_mode.py +++ b/brainpy/dnn/tests/test_mode.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Conv(parameterized.TestCase): diff --git a/brainpy/version2/dnn/tests/test_normalization.py b/brainpy/dnn/tests/test_normalization.py similarity index 97% rename from brainpy/version2/dnn/tests/test_normalization.py rename to brainpy/dnn/tests/test_normalization.py index 5d0327544..d1c5de714 100644 --- a/brainpy/version2/dnn/tests/test_normalization.py +++ b/brainpy/dnn/tests/test_normalization.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Normalization(parameterized.TestCase): diff --git a/brainpy/version2/dnn/tests/test_pooling_layers.py b/brainpy/dnn/tests/test_pooling_layers.py similarity index 98% rename from brainpy/version2/dnn/tests/test_pooling_layers.py rename to brainpy/dnn/tests/test_pooling_layers.py index 4bb9a7766..e2dc9532a 100644 --- a/brainpy/version2/dnn/tests/test_pooling_layers.py +++ b/brainpy/dnn/tests/test_pooling_layers.py @@ -19,8 +19,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestPool(parameterized.TestCase): @@ -124,7 +124,7 @@ def test_AvgPool2d_v1(self): ) def test_adaptive_pool1d(self, target_size): bm.random.seed() - from brainpy.version2.dnn.pooling import _adaptive_pool1d + from brainpy.dnn.pooling import _adaptive_pool1d arr = bm.random.rand(100) op = jax.numpy.mean diff --git a/brainpy/version2/dyn/__init__.py b/brainpy/dyn/__init__.py similarity index 100% rename from brainpy/version2/dyn/__init__.py rename to brainpy/dyn/__init__.py diff --git a/brainpy/version2/dyn/_docs.py b/brainpy/dyn/_docs.py similarity index 100% rename from brainpy/version2/dyn/_docs.py rename to brainpy/dyn/_docs.py diff --git a/brainpy/version2/dyn/base.py b/brainpy/dyn/base.py similarity index 96% rename from brainpy/version2/dyn/base.py rename to brainpy/dyn/base.py index 4f7f26e6a..a9f1fce14 100644 --- a/brainpy/version2/dyn/base.py +++ b/brainpy/dyn/base.py @@ -14,7 +14,7 @@ # limitations under the License. # ============================================================================== from brainpy.mixin import SupportAutoDelay, ParamDesc -from brainpy.version2.dynsys import Dynamic +from brainpy.dynsys import Dynamic __all__ = [ 'NeuDyn', 'SynDyn', 'IonChaDyn', diff --git a/brainpy/version2/dyn/channels/__init__.py b/brainpy/dyn/channels/__init__.py similarity index 100% rename from brainpy/version2/dyn/channels/__init__.py rename to brainpy/dyn/channels/__init__.py diff --git a/brainpy/version2/dyn/channels/base.py b/brainpy/dyn/channels/base.py similarity index 92% rename from brainpy/version2/dyn/channels/base.py rename to brainpy/dyn/channels/base.py index 6c971e486..fb4a1da9d 100644 --- a/brainpy/version2/dyn/channels/base.py +++ b/brainpy/dyn/channels/base.py @@ -14,8 +14,8 @@ # limitations under the License. # ============================================================================== from brainpy.mixin import TreeNode -from brainpy.version2.dyn.base import IonChaDyn -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron +from brainpy.dyn.base import IonChaDyn +from brainpy.dyn.neurons.hh import HHTypedNeuron __all__ = [ 'IonChannel', diff --git a/brainpy/version2/dyn/channels/calcium.py b/brainpy/dyn/channels/calcium.py similarity index 98% rename from brainpy/version2/dyn/channels/calcium.py rename to brainpy/dyn/channels/calcium.py index 5f933fb0a..3dd30d74c 100644 --- a/brainpy/version2/dyn/channels/calcium.py +++ b/brainpy/dyn/channels/calcium.py @@ -20,13 +20,13 @@ from typing import Union, Callable, Optional -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.ions.calcium import Calcium, CalciumDyna -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.ions.calcium import Calcium, CalciumDyna +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators.joint_eq import JointEq +from brainpy.integrators.ode.generic import odeint +from brainpy.types import Shape, ArrayType from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/hyperpolarization_activated.py b/brainpy/dyn/channels/hyperpolarization_activated.py similarity index 96% rename from brainpy/version2/dyn/channels/hyperpolarization_activated.py rename to brainpy/dyn/channels/hyperpolarization_activated.py index aac520a45..6cd852de3 100644 --- a/brainpy/version2/dyn/channels/hyperpolarization_activated.py +++ b/brainpy/dyn/channels/hyperpolarization_activated.py @@ -19,13 +19,13 @@ from typing import Union, Callable, Optional -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.ions.calcium import Calcium -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.ions.calcium import Calcium +from brainpy.dyn.neurons.hh import HHTypedNeuron +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators import odeint, JointEq +from brainpy.types import Shape, ArrayType from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/leaky.py b/brainpy/dyn/channels/leaky.py similarity index 91% rename from brainpy/version2/dyn/channels/leaky.py rename to brainpy/dyn/channels/leaky.py index dfd75e949..cca1549aa 100644 --- a/brainpy/version2/dyn/channels/leaky.py +++ b/brainpy/dyn/channels/leaky.py @@ -20,10 +20,10 @@ from typing import Union, Callable, Sequence -import brainpy.version2.math as bm -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.initialize import Initializer, parameter -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.dyn.neurons.hh import HHTypedNeuron +from brainpy.initialize import Initializer, parameter +from brainpy.types import ArrayType from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/potassium.py b/brainpy/dyn/channels/potassium.py similarity index 99% rename from brainpy/version2/dyn/channels/potassium.py rename to brainpy/dyn/channels/potassium.py index 9613c26e2..738d3bc62 100644 --- a/brainpy/version2/dyn/channels/potassium.py +++ b/brainpy/dyn/channels/potassium.py @@ -20,13 +20,13 @@ from typing import Union, Callable, Optional, Sequence -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.ions.potassium import Potassium -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.ions.potassium import Potassium +from brainpy.dyn.neurons.hh import HHTypedNeuron +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/potassium_calcium.py b/brainpy/dyn/channels/potassium_calcium.py similarity index 93% rename from brainpy/version2/dyn/channels/potassium_calcium.py rename to brainpy/dyn/channels/potassium_calcium.py index 308dfccf2..d1fd13a59 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium.py +++ b/brainpy/dyn/channels/potassium_calcium.py @@ -19,14 +19,14 @@ from typing import Union, Callable, Optional -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy.mixin import JointType -from brainpy.version2.context import share -from brainpy.version2.dyn.ions.calcium import Calcium -from brainpy.version2.dyn.ions.potassium import Potassium -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import Shape, ArrayType +from brainpy.context import share +from brainpy.dyn.ions.calcium import Calcium +from brainpy.dyn.ions.potassium import Potassium +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators.ode.generic import odeint +from brainpy.types import Shape, ArrayType from .calcium import CalciumChannel from .potassium import PotassiumChannel diff --git a/brainpy/version2/dyn/channels/potassium_calcium_compatible.py b/brainpy/dyn/channels/potassium_calcium_compatible.py similarity index 94% rename from brainpy/version2/dyn/channels/potassium_calcium_compatible.py rename to brainpy/dyn/channels/potassium_calcium_compatible.py index be25f8db4..503f2c705 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium_compatible.py +++ b/brainpy/dyn/channels/potassium_calcium_compatible.py @@ -20,12 +20,12 @@ from typing import Union, Callable -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.ions.calcium import Calcium -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.ions.calcium import Calcium +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators.ode.generic import odeint +from brainpy.types import Shape, ArrayType from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/potassium_compatible.py b/brainpy/dyn/channels/potassium_compatible.py similarity index 99% rename from brainpy/version2/dyn/channels/potassium_compatible.py rename to brainpy/dyn/channels/potassium_compatible.py index 676bf95df..c2590ec18 100644 --- a/brainpy/version2/dyn/channels/potassium_compatible.py +++ b/brainpy/dyn/channels/potassium_compatible.py @@ -20,13 +20,13 @@ from typing import Union, Callable, Optional, Sequence -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.channels.base import IonChannel -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.channels.base import IonChannel +from brainpy.dyn.neurons.hh import HHTypedNeuron +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType __all__ = [ 'IKDR_Ba2002', diff --git a/brainpy/version2/dyn/channels/sodium.py b/brainpy/dyn/channels/sodium.py similarity index 97% rename from brainpy/version2/dyn/channels/sodium.py rename to brainpy/dyn/channels/sodium.py index 07ebdf457..fb0ff882f 100644 --- a/brainpy/version2/dyn/channels/sodium.py +++ b/brainpy/dyn/channels/sodium.py @@ -20,12 +20,12 @@ from typing import Union, Callable -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.ions.sodium import Sodium -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType, Shape +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.ions.sodium import Sodium +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType, Shape from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/sodium_compatible.py b/brainpy/dyn/channels/sodium_compatible.py similarity index 97% rename from brainpy/version2/dyn/channels/sodium_compatible.py rename to brainpy/dyn/channels/sodium_compatible.py index 145e50802..680151acd 100644 --- a/brainpy/version2/dyn/channels/sodium_compatible.py +++ b/brainpy/dyn/channels/sodium_compatible.py @@ -20,12 +20,12 @@ from typing import Union, Callable, Sequence -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.initialize import Initializer, parameter, variable -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.neurons.hh import HHTypedNeuron +from brainpy.initialize import Initializer, parameter, variable +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType from .base import IonChannel __all__ = [ diff --git a/brainpy/version2/dyn/channels/tests/test_Ca.py b/brainpy/dyn/channels/tests/test_Ca.py similarity index 98% rename from brainpy/version2/dyn/channels/tests/test_Ca.py rename to brainpy/dyn/channels/tests/test_Ca.py index e44a15031..ee1677470 100644 --- a/brainpy/version2/dyn/channels/tests/test_Ca.py +++ b/brainpy/dyn/channels/tests/test_Ca.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Ca(parameterized.TestCase): diff --git a/brainpy/version2/dyn/channels/tests/test_IH.py b/brainpy/dyn/channels/tests/test_IH.py similarity index 95% rename from brainpy/version2/dyn/channels/tests/test_IH.py rename to brainpy/dyn/channels/tests/test_IH.py index ac9e8f96f..5006ca1a1 100644 --- a/brainpy/version2/dyn/channels/tests/test_IH.py +++ b/brainpy/dyn/channels/tests/test_IH.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_IH(parameterized.TestCase): diff --git a/brainpy/version2/dyn/channels/tests/test_K.py b/brainpy/dyn/channels/tests/test_K.py similarity index 97% rename from brainpy/version2/dyn/channels/tests/test_K.py rename to brainpy/dyn/channels/tests/test_K.py index 18b5d8f3d..dfb71fb3f 100644 --- a/brainpy/version2/dyn/channels/tests/test_K.py +++ b/brainpy/dyn/channels/tests/test_K.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_K(parameterized.TestCase): diff --git a/brainpy/version2/dyn/channels/tests/test_KCa.py b/brainpy/dyn/channels/tests/test_KCa.py similarity index 95% rename from brainpy/version2/dyn/channels/tests/test_KCa.py rename to brainpy/dyn/channels/tests/test_KCa.py index 87bbaa0d9..8c31becc6 100644 --- a/brainpy/version2/dyn/channels/tests/test_KCa.py +++ b/brainpy/dyn/channels/tests/test_KCa.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_KCa(parameterized.TestCase): diff --git a/brainpy/version2/dyn/channels/tests/test_Na.py b/brainpy/dyn/channels/tests/test_Na.py similarity index 96% rename from brainpy/version2/dyn/channels/tests/test_Na.py rename to brainpy/dyn/channels/tests/test_Na.py index 6aa82106f..7c1feabad 100644 --- a/brainpy/version2/dyn/channels/tests/test_Na.py +++ b/brainpy/dyn/channels/tests/test_Na.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Na(parameterized.TestCase): diff --git a/brainpy/version2/dyn/channels/tests/test_leaky.py b/brainpy/dyn/channels/tests/test_leaky.py similarity index 95% rename from brainpy/version2/dyn/channels/tests/test_leaky.py rename to brainpy/dyn/channels/tests/test_leaky.py index 79c7661b1..4ba5d6b38 100644 --- a/brainpy/version2/dyn/channels/tests/test_leaky.py +++ b/brainpy/dyn/channels/tests/test_leaky.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Leaky(parameterized.TestCase): diff --git a/brainpy/version2/dyn/ions/__init__.py b/brainpy/dyn/ions/__init__.py similarity index 100% rename from brainpy/version2/dyn/ions/__init__.py rename to brainpy/dyn/ions/__init__.py diff --git a/brainpy/version2/dyn/ions/base.py b/brainpy/dyn/ions/base.py similarity index 97% rename from brainpy/version2/dyn/ions/base.py rename to brainpy/dyn/ions/base.py index 634e78b16..0d0e3ee9a 100644 --- a/brainpy/version2/dyn/ions/base.py +++ b/brainpy/dyn/ions/base.py @@ -15,11 +15,11 @@ # ============================================================================== from typing import Union, Optional, Dict, Sequence, Callable -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy.mixin import Container, TreeNode -from brainpy.version2.dyn.base import IonChaDyn -from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.types import Shape +from brainpy.dyn.base import IonChaDyn +from brainpy.dyn.neurons.hh import HHTypedNeuron +from brainpy.types import Shape from brainstate.mixin import _JointGenericAlias __all__ = [ diff --git a/brainpy/version2/dyn/ions/calcium.py b/brainpy/dyn/ions/calcium.py similarity index 97% rename from brainpy/version2/dyn/ions/calcium.py rename to brainpy/dyn/ions/calcium.py index e8c20c099..6c6995897 100644 --- a/brainpy/version2/dyn/ions/calcium.py +++ b/brainpy/dyn/ions/calcium.py @@ -15,12 +15,12 @@ # ============================================================================== from typing import Union, Callable, Optional -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.base import IonChaDyn -from brainpy.version2.initialize import OneInit, Initializer, parameter, variable -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.base import IonChaDyn +from brainpy.initialize import OneInit, Initializer, parameter, variable +from brainpy.integrators.ode.generic import odeint +from brainpy.types import Shape, ArrayType from .base import Ion __all__ = [ diff --git a/brainpy/version2/dyn/ions/potassium.py b/brainpy/dyn/ions/potassium.py similarity index 91% rename from brainpy/version2/dyn/ions/potassium.py rename to brainpy/dyn/ions/potassium.py index 7daa8dec3..9a664531c 100644 --- a/brainpy/version2/dyn/ions/potassium.py +++ b/brainpy/dyn/ions/potassium.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Union, Callable, Optional -import brainpy.version2.math as bm -from brainpy.version2.dyn.base import IonChaDyn -from brainpy.version2.initialize import Initializer -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.dyn.base import IonChaDyn +from brainpy.initialize import Initializer +from brainpy.types import Shape, ArrayType from .base import Ion __all__ = [ diff --git a/brainpy/version2/dyn/ions/sodium.py b/brainpy/dyn/ions/sodium.py similarity index 91% rename from brainpy/version2/dyn/ions/sodium.py rename to brainpy/dyn/ions/sodium.py index 9b04ef17d..b5822c32c 100644 --- a/brainpy/version2/dyn/ions/sodium.py +++ b/brainpy/dyn/ions/sodium.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Union, Callable, Optional -import brainpy.version2.math as bm -from brainpy.version2.dyn.base import IonChaDyn -from brainpy.version2.initialize import Initializer, parameter -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.dyn.base import IonChaDyn +from brainpy.initialize import Initializer, parameter +from brainpy.types import Shape, ArrayType from .base import Ion __all__ = [ diff --git a/brainpy/version2/dyn/ions/tests/test_MixIons.py b/brainpy/dyn/ions/tests/test_MixIons.py similarity index 98% rename from brainpy/version2/dyn/ions/tests/test_MixIons.py rename to brainpy/dyn/ions/tests/test_MixIons.py index de761468b..6733b4c99 100644 --- a/brainpy/version2/dyn/ions/tests/test_MixIons.py +++ b/brainpy/dyn/ions/tests/test_MixIons.py @@ -14,8 +14,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestMixIons(unittest.TestCase): diff --git a/brainpy/version2/dyn/neurons/__init__.py b/brainpy/dyn/neurons/__init__.py similarity index 100% rename from brainpy/version2/dyn/neurons/__init__.py rename to brainpy/dyn/neurons/__init__.py diff --git a/brainpy/version2/dyn/neurons/base.py b/brainpy/dyn/neurons/base.py similarity index 93% rename from brainpy/version2/dyn/neurons/base.py rename to brainpy/dyn/neurons/base.py index 7a36ee7f8..fbb25bd6e 100644 --- a/brainpy/version2/dyn/neurons/base.py +++ b/brainpy/dyn/neurons/base.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Sequence, Union, Callable, Any, Optional -import brainpy.version2.math as bm -from brainpy.version2.check import is_callable -from brainpy.version2.dyn._docs import pneu_doc, dpneu_doc -from brainpy.version2.dyn.base import NeuDyn +import brainpy.math as bm +from brainpy.check import is_callable +from brainpy.dyn._docs import pneu_doc, dpneu_doc +from brainpy.dyn.base import NeuDyn __all__ = ['GradNeuDyn'] diff --git a/brainpy/version2/dyn/neurons/hh.py b/brainpy/dyn/neurons/hh.py similarity index 98% rename from brainpy/version2/dyn/neurons/hh.py rename to brainpy/dyn/neurons/hh.py index 6c80eec42..f7d6b7241 100644 --- a/brainpy/version2/dyn/neurons/hh.py +++ b/brainpy/dyn/neurons/hh.py @@ -16,17 +16,17 @@ from typing import Any, Sequence from typing import Union, Callable, Optional -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy.mixin import Container, TreeNode -from brainpy.version2.check import is_initializer -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn, IonChaDyn -from brainpy.version2.initialize import OneInit -from brainpy.version2.initialize import Uniform, variable_, noise as init_noise -from brainpy.version2.integrators import JointEq -from brainpy.version2.integrators import odeint, sdeint -from brainpy.version2.types import ArrayType -from brainpy.version2.types import Shape +from brainpy.check import is_initializer +from brainpy.context import share +from brainpy.dyn.base import NeuDyn, IonChaDyn +from brainpy.initialize import OneInit +from brainpy.initialize import Uniform, variable_, noise as init_noise +from brainpy.integrators import JointEq +from brainpy.integrators import odeint, sdeint +from brainpy.types import ArrayType +from brainpy.types import Shape __all__ = [ 'HHTypedNeuron', @@ -253,7 +253,7 @@ class HHLTC(NeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.HHLTC(1) @@ -485,7 +485,7 @@ class HH(HHLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt neu = bp.dyn.HH(1,) @@ -850,7 +850,7 @@ class WangBuzsakiHHLTC(NeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt neu = bp.dyn.WangBuzsakiHHLTC(1, ) @@ -1072,7 +1072,7 @@ class WangBuzsakiHH(WangBuzsakiHHLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt neu = bp.dyn.WangBuzsakiHH(1, ) diff --git a/brainpy/version2/dyn/neurons/lif.py b/brainpy/dyn/neurons/lif.py similarity index 99% rename from brainpy/version2/dyn/neurons/lif.py rename to brainpy/dyn/neurons/lif.py index 8c6f321e6..23fa28c82 100644 --- a/brainpy/version2/dyn/neurons/lif.py +++ b/brainpy/dyn/neurons/lif.py @@ -17,14 +17,14 @@ from jax.lax import stop_gradient -import brainpy.version2.math as bm -from brainpy.version2.check import is_initializer -from brainpy.version2.context import share -from brainpy.version2.dyn._docs import ref_doc, lif_doc, pneu_doc, dpneu_doc, ltc_doc, if_doc -from brainpy.version2.dyn.neurons.base import GradNeuDyn -from brainpy.version2.initialize import ZeroInit, OneInit, noise as init_noise -from brainpy.version2.integrators import odeint, sdeint, JointEq -from brainpy.version2.types import Shape, ArrayType, Sharding +import brainpy.math as bm +from brainpy.check import is_initializer +from brainpy.context import share +from brainpy.dyn._docs import ref_doc, lif_doc, pneu_doc, dpneu_doc, ltc_doc, if_doc +from brainpy.dyn.neurons.base import GradNeuDyn +from brainpy.initialize import ZeroInit, OneInit, noise as init_noise +from brainpy.integrators import odeint, sdeint, JointEq +from brainpy.types import Shape, ArrayType, Sharding __all__ = [ 'IF', @@ -193,7 +193,7 @@ class LifLTC(GradNeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp lif = bp.dyn.LifLTC(1) @@ -337,7 +337,7 @@ class Lif(LifLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp lif = bp.dyn.Lif(1) @@ -394,7 +394,7 @@ class LifRefLTC(LifLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.LifRefLTC(1, ) @@ -554,7 +554,7 @@ class LifRef(LifRefLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.LifRef(1, ) @@ -650,7 +650,7 @@ class ExpIFLTC(GradNeuDyn): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.ExpIFLTC(1, ) @@ -861,7 +861,7 @@ class ExpIF(ExpIFLTC): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.ExpIF(1, ) @@ -982,7 +982,7 @@ class ExpIFRefLTC(ExpIFLTC): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.ExpIFRefLTC(1, ) @@ -1215,7 +1215,7 @@ class ExpIFRef(ExpIFRefLTC): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.ExpIFRef(1, ) @@ -1325,7 +1325,7 @@ class AdExIFLTC(GradNeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdExIFLTC(2) @@ -1547,7 +1547,7 @@ class AdExIF(AdExIFLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdExIF(2) @@ -1658,7 +1658,7 @@ class AdExIFRefLTC(AdExIFLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdExIFRefLTC(2) @@ -1898,7 +1898,7 @@ class AdExIFRef(AdExIFRefLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdExIFRef(2) @@ -2000,7 +2000,7 @@ class QuaIFLTC(GradNeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.QuaIFLTC(2) @@ -2176,7 +2176,7 @@ class QuaIF(QuaIFLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.QuaIF(2) @@ -2266,7 +2266,7 @@ class QuaIFRefLTC(QuaIFLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.QuaIFRefLTC(2) @@ -2469,7 +2469,7 @@ class QuaIFRef(QuaIFRefLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.QuaIFRef(2) @@ -2567,7 +2567,7 @@ class AdQuaIFLTC(GradNeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdQuaIFLTC(2) @@ -2774,7 +2774,7 @@ class AdQuaIF(AdQuaIFLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdQuaIF(2) @@ -2874,7 +2874,7 @@ class AdQuaIFRefLTC(AdQuaIFLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdQuaIFRefLTC(2) @@ -3099,7 +3099,7 @@ class AdQuaIFRef(AdQuaIFRefLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.AdQuaIFRef(2) @@ -3213,7 +3213,7 @@ class GifLTC(GradNeuDyn): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt # Tonic Spiking @@ -3471,7 +3471,7 @@ class Gif(GifLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt # Phasic Spiking @@ -3595,7 +3595,7 @@ class GifRefLTC(GifLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt # Hyperpolarization-induced Spiking @@ -3870,7 +3870,7 @@ class GifRef(GifRefLTC): .. code-block:: python - import brainpy.version2 as bp + import brainpy as bp import matplotlib.pyplot as plt # Tonic Bursting @@ -3989,7 +3989,7 @@ class IzhikevichLTC(GradNeuDyn): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.IzhikevichLTC(2) @@ -4204,7 +4204,7 @@ class Izhikevich(IzhikevichLTC): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.Izhikevich(2) @@ -4306,7 +4306,7 @@ class IzhikevichRefLTC(IzhikevichLTC): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.IzhikevichRefLTC(2) @@ -4535,7 +4535,7 @@ class IzhikevichRef(IzhikevichRefLTC): There is a simple usage example:: - import brainpy.version2 as bp + import brainpy as bp neu = bp.dyn.IzhikevichRef(2) diff --git a/brainpy/version2/dyn/neurons/tests/test_hh.py b/brainpy/dyn/neurons/tests/test_hh.py similarity index 98% rename from brainpy/version2/dyn/neurons/tests/test_hh.py rename to brainpy/dyn/neurons/tests/test_hh.py index 5b76e77e5..d2176eebb 100644 --- a/brainpy/version2/dyn/neurons/tests/test_hh.py +++ b/brainpy/dyn/neurons/tests/test_hh.py @@ -15,9 +15,9 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dyn.neurons import hh +import brainpy as bp +import brainpy.math as bm +from brainpy.dyn.neurons import hh class Test_HH(parameterized.TestCase): diff --git a/brainpy/version2/dyn/neurons/tests/test_lif.py b/brainpy/dyn/neurons/tests/test_lif.py similarity index 96% rename from brainpy/version2/dyn/neurons/tests/test_lif.py rename to brainpy/dyn/neurons/tests/test_lif.py index 2970d5c8e..75b2f112e 100644 --- a/brainpy/version2/dyn/neurons/tests/test_lif.py +++ b/brainpy/dyn/neurons/tests/test_lif.py @@ -16,9 +16,9 @@ import numpy as np from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dyn.neurons import lif +import brainpy as bp +import brainpy.math as bm +from brainpy.dyn.neurons import lif class Test_lif(parameterized.TestCase): diff --git a/brainpy/version2/dyn/others/__init__.py b/brainpy/dyn/others/__init__.py similarity index 100% rename from brainpy/version2/dyn/others/__init__.py rename to brainpy/dyn/others/__init__.py diff --git a/brainpy/version2/dyn/others/common.py b/brainpy/dyn/others/common.py similarity index 92% rename from brainpy/version2/dyn/others/common.py rename to brainpy/dyn/others/common.py index 271f01bfc..881c9f080 100644 --- a/brainpy/version2/dyn/others/common.py +++ b/brainpy/dyn/others/common.py @@ -14,15 +14,15 @@ # ============================================================================== from typing import Union, Callable, Optional, Sequence -import brainpy.version2.math as bm -from brainpy.version2 import initialize as init -from brainpy.version2 import tools -from brainpy.version2.check import is_initializer -from brainpy.version2.context import share -from brainpy.version2.dyn._docs import pneu_doc -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.integrators import odeint -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy import initialize as init +from brainpy import tools +from brainpy.check import is_initializer +from brainpy.context import share +from brainpy.dyn._docs import pneu_doc +from brainpy.dyn.base import NeuDyn +from brainpy.integrators import odeint +from brainpy.types import ArrayType __all__ = [ 'Leaky', diff --git a/brainpy/version2/dyn/others/input.py b/brainpy/dyn/others/input.py similarity index 96% rename from brainpy/version2/dyn/others/input.py rename to brainpy/dyn/others/input.py index 13439b41e..7a3d4a5d8 100644 --- a/brainpy/version2/dyn/others/input.py +++ b/brainpy/dyn/others/input.py @@ -20,12 +20,12 @@ import jax.numpy as jnp from brainpy.mixin import ReturnInfo -from brainpy.version2 import math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dyn.utils import get_spk_type -from brainpy.version2.initialize import parameter, variable_ -from brainpy.version2.types import Shape, ArrayType +from brainpy import math as bm +from brainpy.context import share +from brainpy.dyn.base import NeuDyn +from brainpy.dyn.utils import get_spk_type +from brainpy.initialize import parameter, variable_ +from brainpy.types import Shape, ArrayType __all__ = [ 'InputGroup', diff --git a/brainpy/version2/dyn/others/noise.py b/brainpy/dyn/others/noise.py similarity index 90% rename from brainpy/version2/dyn/others/noise.py rename to brainpy/dyn/others/noise.py index 73364f420..cf30f23a8 100644 --- a/brainpy/version2/dyn/others/noise.py +++ b/brainpy/dyn/others/noise.py @@ -16,12 +16,12 @@ import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.initialize import variable_, parameter -from brainpy.version2.integrators.sde.generic import sdeint -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.context import share +from brainpy.dyn.base import NeuDyn +from brainpy.initialize import variable_, parameter +from brainpy.integrators.sde.generic import sdeint +from brainpy.types import Shape, ArrayType __all__ = [ 'OUProcess', diff --git a/brainpy/version2/dyn/others/tests/test_input.py b/brainpy/dyn/others/tests/test_input.py similarity index 95% rename from brainpy/version2/dyn/others/tests/test_input.py rename to brainpy/dyn/others/tests/test_input.py index ed28b5604..762c9abf3 100644 --- a/brainpy/version2/dyn/others/tests/test_input.py +++ b/brainpy/dyn/others/tests/test_input.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -from brainpy.version2.dyn.others import input +import brainpy as bp +from brainpy.dyn.others import input class Test_input(parameterized.TestCase): diff --git a/brainpy/version2/dyn/others/tests/test_input_groups.py b/brainpy/dyn/others/tests/test_input_groups.py similarity index 95% rename from brainpy/version2/dyn/others/tests/test_input_groups.py rename to brainpy/dyn/others/tests/test_input_groups.py index 82ff5b744..e78fae598 100644 --- a/brainpy/version2/dyn/others/tests/test_input_groups.py +++ b/brainpy/dyn/others/tests/test_input_groups.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -from brainpy.version2.dyn.others import input +import brainpy as bp +from brainpy.dyn.others import input class Test_input_Group(parameterized.TestCase): diff --git a/brainpy/version2/dyn/others/tests/test_noise_groups.py b/brainpy/dyn/others/tests/test_noise_groups.py similarity index 95% rename from brainpy/version2/dyn/others/tests/test_noise_groups.py rename to brainpy/dyn/others/tests/test_noise_groups.py index ad2f8cf6c..abb18a7fe 100644 --- a/brainpy/version2/dyn/others/tests/test_noise_groups.py +++ b/brainpy/dyn/others/tests/test_noise_groups.py @@ -16,8 +16,8 @@ import pytest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm pytest.skip("Skip the test due to the jax 0.5.0 version", allow_module_level=True) diff --git a/brainpy/version2/dyn/outs/__init__.py b/brainpy/dyn/outs/__init__.py similarity index 100% rename from brainpy/version2/dyn/outs/__init__.py rename to brainpy/dyn/outs/__init__.py diff --git a/brainpy/version2/dyn/outs/base.py b/brainpy/dyn/outs/base.py similarity index 96% rename from brainpy/version2/dyn/outs/base.py rename to brainpy/dyn/outs/base.py index 0135d2684..3c9571b07 100644 --- a/brainpy/version2/dyn/outs/base.py +++ b/brainpy/dyn/outs/base.py @@ -14,9 +14,9 @@ # ============================================================================== from typing import Optional -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy.mixin import ParamDesc, BindCondData -from brainpy.version2.dynsys import DynamicalSystem +from brainpy.dynsys import DynamicalSystem __all__ = [ 'SynOut' diff --git a/brainpy/version2/dyn/outs/outputs.py b/brainpy/dyn/outs/outputs.py similarity index 96% rename from brainpy/version2/dyn/outs/outputs.py rename to brainpy/dyn/outs/outputs.py index 96188da4d..7457b4dbc 100644 --- a/brainpy/version2/dyn/outs/outputs.py +++ b/brainpy/dyn/outs/outputs.py @@ -16,8 +16,8 @@ import numpy as np -from brainpy.version2 import math as bm, initialize as init -from brainpy.version2.types import ArrayType +from brainpy import math as bm, initialize as init +from brainpy.types import ArrayType from .base import SynOut __all__ = [ @@ -44,7 +44,7 @@ class COBA(SynOut): The axis names for variable for parallelization. name: str The model name. - scaling: brainpy.version2.Scaling + scaling: brainpy.Scaling The scaling object. See Also:: @@ -81,7 +81,7 @@ class CUBA(SynOut): name: str The model name. - scaling: brainpy.version2.Scaling + scaling: brainpy.Scaling The scaling object. See Also:: diff --git a/brainpy/version2/dyn/projections/__init__.py b/brainpy/dyn/projections/__init__.py similarity index 100% rename from brainpy/version2/dyn/projections/__init__.py rename to brainpy/dyn/projections/__init__.py diff --git a/brainpy/version2/dyn/projections/align_post.py b/brainpy/dyn/projections/align_post.py similarity index 98% rename from brainpy/version2/dyn/projections/align_post.py rename to brainpy/dyn/projections/align_post.py index 8e85643db..9f8f55b21 100644 --- a/brainpy/version2/dyn/projections/align_post.py +++ b/brainpy/dyn/projections/align_post.py @@ -15,10 +15,10 @@ from typing import Optional, Callable, Union from brainpy.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData, AlignPost) -from brainpy.version2 import math as bm, check -from brainpy.version2.delay import (delay_identifier, +from brainpy import math as bm, check +from brainpy.delay import (delay_identifier, register_delay_by_return) -from brainpy.version2.dynsys import DynamicalSystem, Projection +from brainpy.dynsys import DynamicalSystem, Projection __all__ = [ 'HalfProjAlignPostMg', 'FullProjAlignPostMg', @@ -82,8 +82,8 @@ class HalfProjAlignPostMg(Projection): .. code-block:: python - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm class EINet(bp.DynSysGroup): def __init__(self): @@ -184,8 +184,8 @@ class FullProjAlignPostMg(Projection): .. code-block:: python - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm class EINet(bp.DynSysGroup): def __init__(self): diff --git a/brainpy/version2/dyn/projections/align_pre.py b/brainpy/dyn/projections/align_pre.py similarity index 99% rename from brainpy/version2/dyn/projections/align_pre.py rename to brainpy/dyn/projections/align_pre.py index 63a66dfda..171a996fa 100644 --- a/brainpy/version2/dyn/projections/align_pre.py +++ b/brainpy/dyn/projections/align_pre.py @@ -15,9 +15,9 @@ from typing import Optional, Union from brainpy.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData) -from brainpy.version2 import math as bm, check -from brainpy.version2.delay import (Delay, DelayAccess, init_delay_by_return, register_delay_by_return) -from brainpy.version2.dynsys import DynamicalSystem, Projection +from brainpy import math as bm, check +from brainpy.delay import (Delay, DelayAccess, init_delay_by_return, register_delay_by_return) +from brainpy.dynsys import DynamicalSystem, Projection from .utils import _get_return __all__ = [ diff --git a/brainpy/version2/dyn/projections/base.py b/brainpy/dyn/projections/base.py similarity index 96% rename from brainpy/version2/dyn/projections/base.py rename to brainpy/dyn/projections/base.py index 0bb131049..f50c118b4 100644 --- a/brainpy/version2/dyn/projections/base.py +++ b/brainpy/dyn/projections/base.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== from brainpy.mixin import ReturnInfo -from brainpy.version2 import math as bm +from brainpy import math as bm def _get_return(return_info): diff --git a/brainpy/version2/dyn/projections/conn.py b/brainpy/dyn/projections/conn.py similarity index 95% rename from brainpy/version2/dyn/projections/conn.py rename to brainpy/dyn/projections/conn.py index 3cf7a795b..9b26c51ad 100644 --- a/brainpy/version2/dyn/projections/conn.py +++ b/brainpy/dyn/projections/conn.py @@ -17,10 +17,10 @@ import jax import numpy as np -from brainpy.version2 import math as bm -from brainpy.version2.connect import TwoEndConnector, MatConn, IJConn -from brainpy.version2.dynsys import Projection, DynamicalSystem -from brainpy.version2.types import ArrayType +from brainpy import math as bm +from brainpy.connect import TwoEndConnector, MatConn, IJConn +from brainpy.dynsys import Projection, DynamicalSystem +from brainpy.types import ArrayType __all__ = [ 'SynConn', diff --git a/brainpy/version2/dyn/projections/delta.py b/brainpy/dyn/projections/delta.py similarity index 95% rename from brainpy/version2/dyn/projections/delta.py rename to brainpy/dyn/projections/delta.py index a1bb4ef70..3c968a796 100644 --- a/brainpy/version2/dyn/projections/delta.py +++ b/brainpy/dyn/projections/delta.py @@ -15,9 +15,9 @@ from typing import Optional, Union from brainpy.mixin import (JointType, SupportAutoDelay) -from brainpy.version2 import math as bm, check -from brainpy.version2.delay import (delay_identifier, register_delay_by_return) -from brainpy.version2.dynsys import DynamicalSystem, Projection +from brainpy import math as bm, check +from brainpy.delay import (delay_identifier, register_delay_by_return) +from brainpy.dynsys import DynamicalSystem, Projection __all__ = [ 'HalfProjDelta', 'FullProjDelta', @@ -63,8 +63,8 @@ class HalfProjDelta(Projection): .. code-block:: - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm class Net(bp.DynamicalSystem): def __init__(self): @@ -149,8 +149,8 @@ class FullProjDelta(Projection): .. code-block:: - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm class Net(bp.DynamicalSystem): diff --git a/brainpy/version2/dyn/projections/inputs.py b/brainpy/dyn/projections/inputs.py similarity index 96% rename from brainpy/version2/dyn/projections/inputs.py rename to brainpy/dyn/projections/inputs.py index db6f4badc..76d1ff91c 100644 --- a/brainpy/version2/dyn/projections/inputs.py +++ b/brainpy/dyn/projections/inputs.py @@ -17,11 +17,11 @@ from typing import Union, Optional from brainpy.mixin import SupportAutoDelay -from brainpy.version2 import check, math as bm -from brainpy.version2.context import share -from brainpy.version2.dynsys import Dynamic -from brainpy.version2.dynsys import Projection -from brainpy.version2.types import Shape +from brainpy import check, math as bm +from brainpy.context import share +from brainpy.dynsys import Dynamic +from brainpy.dynsys import Projection +from brainpy.types import Shape __all__ = [ 'InputVar', @@ -34,7 +34,7 @@ class InputVar(Dynamic, SupportAutoDelay): Example:: - import brainpy.version2 as bp + import brainpy as bp class Exponential(bp.Projection): diff --git a/brainpy/version2/dyn/projections/plasticity.py b/brainpy/dyn/projections/plasticity.py similarity index 97% rename from brainpy/version2/dyn/projections/plasticity.py rename to brainpy/dyn/projections/plasticity.py index 444690678..fecb490d9 100644 --- a/brainpy/version2/dyn/projections/plasticity.py +++ b/brainpy/dyn/projections/plasticity.py @@ -16,11 +16,11 @@ from brainpy.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData, AlignPost, SupportSTDP) -from brainpy.version2 import math as bm, check -from brainpy.version2.delay import register_delay_by_return -from brainpy.version2.dyn.synapses.abstract_models import Expon -from brainpy.version2.dynsys import DynamicalSystem, Projection -from brainpy.version2.types import ArrayType +from brainpy import math as bm, check +from brainpy.delay import register_delay_by_return +from brainpy.dyn.synapses.abstract_models import Expon +from brainpy.dynsys import DynamicalSystem, Projection +from brainpy.types import ArrayType from .align_post import (align_post_add_bef_update, ) from .align_pre import (align_pre2_add_bef_update, ) from .utils import (_get_return, ) @@ -73,8 +73,8 @@ class STDP_Song2000(Projection): Here is an example of the usage of this class:: - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm class STDPNet(bp.DynamicalSystem): def __init__(self, num_pre, num_post): @@ -275,8 +275,8 @@ def update(self): # # Here is an example of the usage of this class:: # -# import brainpy.version2 as bp -# import brainpy.version2.math as bm +# import brainpy as bp +# import brainpy.math as bm # # class STDPNet(bp.DynamicalSystem): # def __init__(self, num_pre, num_post): diff --git a/brainpy/version2/dyn/projections/tests/test_STDP.py b/brainpy/dyn/projections/tests/test_STDP.py similarity index 98% rename from brainpy/version2/dyn/projections/tests/test_STDP.py rename to brainpy/dyn/projections/tests/test_STDP.py index a44ffb520..ea79e4f3d 100644 --- a/brainpy/version2/dyn/projections/tests/test_STDP.py +++ b/brainpy/dyn/projections/tests/test_STDP.py @@ -16,8 +16,8 @@ import numpy as np from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set_platform('cpu') show = False diff --git a/brainpy/version2/dyn/projections/tests/test_aligns.py b/brainpy/dyn/projections/tests/test_aligns.py similarity index 99% rename from brainpy/version2/dyn/projections/tests/test_aligns.py rename to brainpy/dyn/projections/tests/test_aligns.py index d5a3cca32..9a022ecdf 100644 --- a/brainpy/version2/dyn/projections/tests/test_aligns.py +++ b/brainpy/dyn/projections/tests/test_aligns.py @@ -15,8 +15,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm show = False diff --git a/brainpy/version2/dyn/projections/tests/test_delta.py b/brainpy/dyn/projections/tests/test_delta.py similarity index 96% rename from brainpy/version2/dyn/projections/tests/test_delta.py rename to brainpy/dyn/projections/tests/test_delta.py index 1b3e223f6..047f1ad59 100644 --- a/brainpy/version2/dyn/projections/tests/test_delta.py +++ b/brainpy/dyn/projections/tests/test_delta.py @@ -14,8 +14,8 @@ # ============================================================================== import matplotlib.pyplot as plt -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class NetForHalfProj(bp.DynamicalSystem): diff --git a/brainpy/version2/dyn/projections/utils.py b/brainpy/dyn/projections/utils.py similarity index 96% rename from brainpy/version2/dyn/projections/utils.py rename to brainpy/dyn/projections/utils.py index 0bb131049..f50c118b4 100644 --- a/brainpy/version2/dyn/projections/utils.py +++ b/brainpy/dyn/projections/utils.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== from brainpy.mixin import ReturnInfo -from brainpy.version2 import math as bm +from brainpy import math as bm def _get_return(return_info): diff --git a/brainpy/version2/dyn/projections/vanilla.py b/brainpy/dyn/projections/vanilla.py similarity index 96% rename from brainpy/version2/dyn/projections/vanilla.py rename to brainpy/dyn/projections/vanilla.py index 0f7f95c38..9c70aed5c 100644 --- a/brainpy/version2/dyn/projections/vanilla.py +++ b/brainpy/dyn/projections/vanilla.py @@ -15,8 +15,8 @@ from typing import Optional from brainpy.mixin import (JointType, BindCondData) -from brainpy.version2 import math as bm, check -from brainpy.version2.dynsys import DynamicalSystem, Projection +from brainpy import math as bm, check +from brainpy.dynsys import DynamicalSystem, Projection __all__ = [ 'VanillaProj', diff --git a/brainpy/version2/dyn/rates/__init__.py b/brainpy/dyn/rates/__init__.py similarity index 100% rename from brainpy/version2/dyn/rates/__init__.py rename to brainpy/dyn/rates/__init__.py diff --git a/brainpy/version2/dyn/rates/nvar.py b/brainpy/dyn/rates/nvar.py similarity index 98% rename from brainpy/version2/dyn/rates/nvar.py rename to brainpy/dyn/rates/nvar.py index 15348c860..14a3ccf89 100644 --- a/brainpy/version2/dyn/rates/nvar.py +++ b/brainpy/dyn/rates/nvar.py @@ -19,9 +19,9 @@ import jax.numpy as jnp import numpy as np -import brainpy.version2.math as bm -from brainpy.version2 import check -from brainpy.version2.dnn.base import Layer +import brainpy.math as bm +from brainpy import check +from brainpy.dnn.base import Layer __all__ = [ 'NVAR' diff --git a/brainpy/version2/dyn/rates/populations.py b/brainpy/dyn/rates/populations.py similarity index 98% rename from brainpy/version2/dyn/rates/populations.py rename to brainpy/dyn/rates/populations.py index 925a76d65..71486a681 100644 --- a/brainpy/version2/dyn/rates/populations.py +++ b/brainpy/dyn/rates/populations.py @@ -17,20 +17,20 @@ import jax -from brainpy.version2 import math as bm -from brainpy.version2.check import is_initializer -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dyn.others.noise import OUProcess -from brainpy.version2.initialize import (Initializer, +from brainpy import math as bm +from brainpy.check import is_initializer +from brainpy.context import share +from brainpy.dyn.base import NeuDyn +from brainpy.dyn.others.noise import OUProcess +from brainpy.initialize import (Initializer, Uniform, parameter, variable, variable_, ZeroInit) -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import Shape, ArrayType +from brainpy.integrators.joint_eq import JointEq +from brainpy.integrators.ode.generic import odeint +from brainpy.types import Shape, ArrayType __all__ = [ 'FHN', @@ -229,7 +229,7 @@ class FeedbackFHN(RateModel): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> fhn = bp.rates.FeedbackFHN(1, delay=10.) >>> runner = bp.DSRunner(fhn, inputs=('input', 1.), monitors=['x', 'y']) >>> runner.run(100.) diff --git a/brainpy/version2/dyn/rates/reservoir.py b/brainpy/dyn/rates/reservoir.py similarity index 95% rename from brainpy/version2/dyn/rates/reservoir.py rename to brainpy/dyn/rates/reservoir.py index bf04dbb9c..662cffff3 100644 --- a/brainpy/version2/dyn/rates/reservoir.py +++ b/brainpy/dyn/rates/reservoir.py @@ -17,12 +17,12 @@ import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2 import check -from brainpy.version2.dnn.base import Layer -from brainpy.version2.initialize import Normal, ZeroInit, Initializer, parameter, variable -from brainpy.version2.tools import to_size -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy import check +from brainpy.dnn.base import Layer +from brainpy.initialize import Normal, ZeroInit, Initializer, parameter, variable +from brainpy.tools import to_size +from brainpy.types import ArrayType __all__ = [ 'Reservoir', @@ -49,7 +49,7 @@ class Reservoir(Layer): activation : str, callable, optional Reservoir activation function. - - If a str, should be a :py:mod:`brainpy.version2.math.activations` function name. + - If a str, should be a :py:mod:`brainpy.math.activations` function name. - If a callable, should be an element-wise operator. activation_type : str - If "internal" (default), then leaky integration happens on states transformed @@ -91,7 +91,7 @@ class Reservoir(Layer): Gain of noise applied to feedforward signals, by default 0.0 noise_type : optional, str, callable Distribution of noise. Must be a random variable generator - distribution (see :py:class:`brainpy.version2.math.random.RandomState`), + distribution (see :py:class:`brainpy.math.random.RandomState`), by default "normal". References:: diff --git a/brainpy/version2/dyn/rates/rnncells.py b/brainpy/dyn/rates/rnncells.py similarity index 98% rename from brainpy/version2/dyn/rates/rnncells.py rename to brainpy/dyn/rates/rnncells.py index 2f816ff89..30338be80 100644 --- a/brainpy/version2/dyn/rates/rnncells.py +++ b/brainpy/dyn/rates/rnncells.py @@ -17,20 +17,20 @@ import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2.check import (is_integer, +import brainpy.math as bm +from brainpy.check import (is_integer, is_initializer) -from brainpy.version2.dnn.base import Layer -from brainpy.version2.dnn.conv import _GeneralConv -from brainpy.version2.initialize import (XavierNormal, +from brainpy.dnn.base import Layer +from brainpy.dnn.conv import _GeneralConv +from brainpy.initialize import (XavierNormal, ZeroInit, Orthogonal, parameter, variable, variable_, Initializer) -from brainpy.version2.math import activations -from brainpy.version2.types import ArrayType +from brainpy.math import activations +from brainpy.types import ArrayType __all__ = [ 'RNNCell', 'GRUCell', 'LSTMCell', @@ -67,7 +67,7 @@ class RNNCell(Layer): The bias weight initializer. activation: str, callable The activation function. It can be a string or a callable function. - See ``brainpy.version2.math.activations`` for more details. + See ``brainpy.math.activations`` for more details. """ @@ -176,7 +176,7 @@ class GRUCell(Layer): The bias weight initializer. activation: str, callable The activation function. It can be a string or a callable function. - See ``brainpy.version2.math.activations`` for more details. + See ``brainpy.math.activations`` for more details. References:: @@ -308,7 +308,7 @@ class LSTMCell(Layer): The bias weight initializer. activation: str, callable The activation function. It can be a string or a callable function. - See ``brainpy.version2.math.activations`` for more details. + See ``brainpy.math.activations`` for more details. References:: diff --git a/brainpy/version2/dyn/rates/tests/test_nvar.py b/brainpy/dyn/rates/tests/test_nvar.py similarity index 95% rename from brainpy/version2/dyn/rates/tests/test_nvar.py rename to brainpy/dyn/rates/tests/test_nvar.py index 2fa4ca9d8..47ceb96f8 100644 --- a/brainpy/version2/dyn/rates/tests/test_nvar.py +++ b/brainpy/dyn/rates/tests/test_nvar.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_NVAR(parameterized.TestCase): diff --git a/brainpy/version2/dyn/rates/tests/test_rates.py b/brainpy/dyn/rates/tests/test_rates.py similarity index 97% rename from brainpy/version2/dyn/rates/tests/test_rates.py rename to brainpy/dyn/rates/tests/test_rates.py index e7974ae0e..1147cc44f 100644 --- a/brainpy/version2/dyn/rates/tests/test_rates.py +++ b/brainpy/dyn/rates/tests/test_rates.py @@ -17,9 +17,9 @@ from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dyn.rates import populations +import brainpy as bp +import brainpy.math as bm +from brainpy.dyn.rates import populations class TestRate(TestCase): diff --git a/brainpy/version2/dyn/rates/tests/test_reservoir.py b/brainpy/dyn/rates/tests/test_reservoir.py similarity index 95% rename from brainpy/version2/dyn/rates/tests/test_reservoir.py rename to brainpy/dyn/rates/tests/test_reservoir.py index 5abd344b0..3d906df8a 100644 --- a/brainpy/version2/dyn/rates/tests/test_reservoir.py +++ b/brainpy/dyn/rates/tests/test_reservoir.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Reservoir(parameterized.TestCase): diff --git a/brainpy/version2/dyn/rates/tests/test_rnncells.py b/brainpy/dyn/rates/tests/test_rnncells.py similarity index 98% rename from brainpy/version2/dyn/rates/tests/test_rnncells.py rename to brainpy/dyn/rates/tests/test_rnncells.py index 9410eb878..b8fbd9bf8 100644 --- a/brainpy/version2/dyn/rates/tests/test_rnncells.py +++ b/brainpy/dyn/rates/tests/test_rnncells.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_Rnncells(parameterized.TestCase): diff --git a/brainpy/version2/dyn/synapses/__init__.py b/brainpy/dyn/synapses/__init__.py similarity index 100% rename from brainpy/version2/dyn/synapses/__init__.py rename to brainpy/dyn/synapses/__init__.py diff --git a/brainpy/version2/dyn/synapses/abstract_models.py b/brainpy/dyn/synapses/abstract_models.py similarity index 95% rename from brainpy/version2/dyn/synapses/abstract_models.py rename to brainpy/dyn/synapses/abstract_models.py index 7acca25b8..a2215e768 100644 --- a/brainpy/version2/dyn/synapses/abstract_models.py +++ b/brainpy/dyn/synapses/abstract_models.py @@ -15,14 +15,14 @@ from typing import Union, Sequence, Callable, Optional from brainpy.mixin import AlignPost, ReturnInfo -from brainpy.version2 import math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn import _docs -from brainpy.version2.dyn.base import SynDyn -from brainpy.version2.initialize import parameter -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import ArrayType +from brainpy import math as bm +from brainpy.context import share +from brainpy.dyn import _docs +from brainpy.dyn.base import SynDyn +from brainpy.initialize import parameter +from brainpy.integrators.joint_eq import JointEq +from brainpy.integrators.ode.generic import odeint +from brainpy.types import ArrayType __all__ = [ 'Expon', @@ -40,13 +40,13 @@ class Expon(SynDyn, AlignPost): %s - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt @@ -169,13 +169,13 @@ class DualExpon(SynDyn): %s - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt @@ -304,13 +304,13 @@ class DualExponV2(SynDyn, AlignPost): Different from ``DualExpon``, this model can be used in both modes of ``AlignPre`` and ``AlignPost`` projections. - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt @@ -445,13 +445,13 @@ class Alpha(SynDyn): %s - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt @@ -614,13 +614,13 @@ class NMDA(SynDyn): The NMDA receptor has been thought to be very important for controlling synaptic plasticity and mediating learning and memory functions [3]_. - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt diff --git a/brainpy/version2/dyn/synapses/bio_models.py b/brainpy/dyn/synapses/bio_models.py similarity index 95% rename from brainpy/version2/dyn/synapses/bio_models.py rename to brainpy/dyn/synapses/bio_models.py index 8c77b53dd..070bbc6e2 100644 --- a/brainpy/version2/dyn/synapses/bio_models.py +++ b/brainpy/dyn/synapses/bio_models.py @@ -14,13 +14,13 @@ # ============================================================================== from typing import Union, Sequence, Callable, Optional -from brainpy.version2 import math as bm -from brainpy.version2.context import share -from brainpy.version2.dyn._docs import pneu_doc -from brainpy.version2.dyn.base import SynDyn -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.types import ArrayType +from brainpy import math as bm +from brainpy.context import share +from brainpy.dyn._docs import pneu_doc +from brainpy.dyn.base import SynDyn +from brainpy.integrators.joint_eq import JointEq +from brainpy.integrators.ode.generic import odeint +from brainpy.types import ArrayType __all__ = [ 'AMPA', @@ -69,13 +69,13 @@ class AMPA(SynDyn): where :math:`g_{max}` is the maximum conductance, and `E` is the reverse potential. - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt @@ -218,13 +218,13 @@ class GABAa(AMPA): - Transmitter concentration :math:`[T]=1\,\mu ho(\mu S)` when synapse is triggered by a pre-synaptic spike, with the duration of 1. ms. - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt @@ -373,13 +373,13 @@ class BioNMDA(SynDyn): The NMDA receptor has been thought to be very important for controlling synaptic plasticity and mediating learning and memory functions [3]_. - This module can be used with interface ``brainpy.version2.dyn.ProjAlignPreMg2``, as shown in the following example: + This module can be used with interface ``brainpy.dyn.ProjAlignPreMg2``, as shown in the following example: .. code-block:: python import numpy as np - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm import matplotlib.pyplot as plt diff --git a/brainpy/version2/dyn/synapses/delay_couplings.py b/brainpy/dyn/synapses/delay_couplings.py similarity index 96% rename from brainpy/version2/dyn/synapses/delay_couplings.py rename to brainpy/dyn/synapses/delay_couplings.py index 707ec0560..f317c1bea 100644 --- a/brainpy/version2/dyn/synapses/delay_couplings.py +++ b/brainpy/dyn/synapses/delay_couplings.py @@ -19,11 +19,11 @@ import jax.numpy as jnp from jax import vmap -import brainpy.version2.math as bm -from brainpy.version2.check import is_sequence -from brainpy.version2.dynsys import Projection -from brainpy.version2.initialize import Initializer -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.check import is_sequence +from brainpy.dynsys import Projection +from brainpy.initialize import Initializer +from brainpy.types import ArrayType __all__ = [ 'DelayCoupling', @@ -66,7 +66,7 @@ def __init__( # delay variable if not isinstance(delay_var, bm.Variable): - raise ValueError(f'"delay_var" must be an instance of brainpy.version2.math.Variable. ' + raise ValueError(f'"delay_var" must be an instance of brainpy.math.Variable. ' f'But we got {type(delay_var)}') self.delay_var = delay_var @@ -136,8 +136,8 @@ class DiffusiveCoupling(DelayCoupling): Examples:: - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import rates + >>> import brainpy as bp + >>> from brainpy import rates >>> areas = bp.rates.FHN(80, x_ou_sigma=0.01, y_ou_sigma=0.01, name='fhn') >>> conn = bp.synapses.DiffusiveCoupling(areas.x, areas.x, areas.input, >>> conn_mat=Cmat, delay_steps=Dmat, @@ -174,10 +174,10 @@ def __init__( mode: bm.Mode = None, ): if not isinstance(coupling_var1, bm.Variable): - raise ValueError(f'"coupling_var1" must be an instance of brainpy.version2.math.Variable. ' + raise ValueError(f'"coupling_var1" must be an instance of brainpy.math.Variable. ' f'But we got {type(coupling_var1)}') if not isinstance(coupling_var2, bm.Variable): - raise ValueError(f'"coupling_var2" must be an instance of brainpy.version2.math.Variable. ' + raise ValueError(f'"coupling_var2" must be an instance of brainpy.math.Variable. ' f'But we got {type(coupling_var2)}') if jnp.ndim(coupling_var1) != 1: raise ValueError(f'Only support 1d vector of coupling variable. ' @@ -266,7 +266,7 @@ def __init__( mode: bm.Mode = None, ): if not isinstance(coupling_var, bm.Variable): - raise ValueError(f'"coupling_var" must be an instance of brainpy.version2.math.Variable. ' + raise ValueError(f'"coupling_var" must be an instance of brainpy.math.Variable. ' f'But we got {type(coupling_var)}') if jnp.ndim(coupling_var) != 1: raise ValueError(f'Only support 1d vector of coupling variable. ' diff --git a/brainpy/version2/dyn/synapses/tests/test_abstract_models.py b/brainpy/dyn/synapses/tests/test_abstract_models.py similarity index 98% rename from brainpy/version2/dyn/synapses/tests/test_abstract_models.py rename to brainpy/dyn/synapses/tests/test_abstract_models.py index 2883133d6..b226ba538 100644 --- a/brainpy/version2/dyn/synapses/tests/test_abstract_models.py +++ b/brainpy/dyn/synapses/tests/test_abstract_models.py @@ -16,8 +16,8 @@ import matplotlib.pyplot as plt -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm show = False diff --git a/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py b/brainpy/dyn/synapses/tests/test_delay_couplings.py similarity index 97% rename from brainpy/version2/dyn/synapses/tests/test_delay_couplings.py rename to brainpy/dyn/synapses/tests/test_delay_couplings.py index ac2998bed..333383fa4 100644 --- a/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py +++ b/brainpy/dyn/synapses/tests/test_delay_couplings.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_delay_couplings(parameterized.TestCase): diff --git a/brainpy/version2/dyn/utils.py b/brainpy/dyn/utils.py similarity index 96% rename from brainpy/version2/dyn/utils.py rename to brainpy/dyn/utils.py index 4af9c9aae..3f271becf 100644 --- a/brainpy/version2/dyn/utils.py +++ b/brainpy/dyn/utils.py @@ -14,7 +14,7 @@ # ============================================================================== from typing import Optional -import brainpy.version2.math as bm +import brainpy.math as bm __all__ = [ 'get_spk_type', diff --git a/brainpy/version2/dynold/__init__.py b/brainpy/dynold/__init__.py similarity index 100% rename from brainpy/version2/dynold/__init__.py rename to brainpy/dynold/__init__.py diff --git a/brainpy/version2/dynold/experimental/__init__.py b/brainpy/dynold/experimental/__init__.py similarity index 100% rename from brainpy/version2/dynold/experimental/__init__.py rename to brainpy/dynold/experimental/__init__.py diff --git a/brainpy/version2/dynold/experimental/abstract_synapses.py b/brainpy/dynold/experimental/abstract_synapses.py similarity index 96% rename from brainpy/version2/dynold/experimental/abstract_synapses.py rename to brainpy/dynold/experimental/abstract_synapses.py index 749c8dbb2..74da7bb65 100644 --- a/brainpy/version2/dynold/experimental/abstract_synapses.py +++ b/brainpy/dynold/experimental/abstract_synapses.py @@ -17,14 +17,14 @@ from jax import vmap -import brainpy.version2.math as bm -from brainpy.version2.check import is_float -from brainpy.version2.connect import TwoEndConnector, All2All, One2One -from brainpy.version2.context import share -from brainpy.version2.dynold.experimental.base import SynConnNS, SynOutNS, SynSTPNS -from brainpy.version2.initialize import Initializer, variable_ -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.check import is_float +from brainpy.connect import TwoEndConnector, All2All, One2One +from brainpy.context import share +from brainpy.dynold.experimental.base import SynConnNS, SynOutNS, SynSTPNS +from brainpy.initialize import Initializer, variable_ +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType class Exponential(SynConnNS): @@ -337,8 +337,8 @@ class Alpha(DualExponential): .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import neurons, synapses, synouts + >>> import brainpy as bp + >>> from brainpy import neurons, synapses, synouts >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.LIF(1) diff --git a/brainpy/version2/dynold/experimental/base.py b/brainpy/dynold/experimental/base.py similarity index 95% rename from brainpy/version2/dynold/experimental/base.py rename to brainpy/dynold/experimental/base.py index 6279d32a3..11c87b337 100644 --- a/brainpy/version2/dynold/experimental/base.py +++ b/brainpy/dynold/experimental/base.py @@ -17,11 +17,11 @@ import jax import numpy as np -import brainpy.version2.math as bm -from brainpy.version2.connect import TwoEndConnector, All2All, One2One, MatConn, IJConn -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.initialize import Initializer, parameter -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.connect import TwoEndConnector, All2All, One2One, MatConn, IJConn +from brainpy.dynsys import DynamicalSystem +from brainpy.initialize import Initializer, parameter +from brainpy.types import ArrayType class SynConnNS(DynamicalSystem): diff --git a/brainpy/version2/dynold/experimental/others.py b/brainpy/dynold/experimental/others.py similarity index 94% rename from brainpy/version2/dynold/experimental/others.py rename to brainpy/dynold/experimental/others.py index be78b70b4..1759e0a13 100644 --- a/brainpy/version2/dynold/experimental/others.py +++ b/brainpy/dynold/experimental/others.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Union, Optional -import brainpy.version2.math as bm -from brainpy.version2.check import is_float, is_integer -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem +import brainpy.math as bm +from brainpy.check import is_float, is_integer +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem class PoissonInput(DynamicalSystem): diff --git a/brainpy/version2/dynold/experimental/syn_outs.py b/brainpy/dynold/experimental/syn_outs.py similarity index 95% rename from brainpy/version2/dynold/experimental/syn_outs.py rename to brainpy/dynold/experimental/syn_outs.py index 1a4efe9fd..338771336 100644 --- a/brainpy/version2/dynold/experimental/syn_outs.py +++ b/brainpy/dynold/experimental/syn_outs.py @@ -15,9 +15,9 @@ # ============================================================================== from typing import Union -from brainpy.version2.dynold.experimental.base import SynOutNS -from brainpy.version2.math import exp -from brainpy.version2.types import ArrayType +from brainpy.dynold.experimental.base import SynOutNS +from brainpy.math import exp +from brainpy.types import ArrayType __all__ = [ 'COBA', diff --git a/brainpy/version2/dynold/experimental/syn_plasticity.py b/brainpy/dynold/experimental/syn_plasticity.py similarity index 94% rename from brainpy/version2/dynold/experimental/syn_plasticity.py rename to brainpy/dynold/experimental/syn_plasticity.py index 803686691..a142d339a 100644 --- a/brainpy/version2/dynold/experimental/syn_plasticity.py +++ b/brainpy/dynold/experimental/syn_plasticity.py @@ -17,12 +17,12 @@ import jax.numpy as jnp -from brainpy.version2 import math as bm, tools -from brainpy.version2.context import share -from brainpy.version2.dynold.experimental.base import SynSTPNS -from brainpy.version2.initialize import variable_, OneInit, parameter -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType, Shape +from brainpy import math as bm, tools +from brainpy.context import share +from brainpy.dynold.experimental.base import SynSTPNS +from brainpy.initialize import variable_, OneInit, parameter +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType, Shape __all__ = [ 'STD', diff --git a/brainpy/version2/dynold/neurons/__init__.py b/brainpy/dynold/neurons/__init__.py similarity index 100% rename from brainpy/version2/dynold/neurons/__init__.py rename to brainpy/dynold/neurons/__init__.py diff --git a/brainpy/version2/dynold/neurons/biological_models.py b/brainpy/dynold/neurons/biological_models.py similarity index 98% rename from brainpy/version2/dynold/neurons/biological_models.py rename to brainpy/dynold/neurons/biological_models.py index 9e33b8500..12fb803c8 100644 --- a/brainpy/version2/dynold/neurons/biological_models.py +++ b/brainpy/dynold/neurons/biological_models.py @@ -15,20 +15,20 @@ # ============================================================================== from typing import Union, Callable -import brainpy.version2.math as bm -from brainpy.version2 import check -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dyn.neurons import hh -from brainpy.version2.initialize import (OneInit, +import brainpy.math as bm +from brainpy import check +from brainpy.context import share +from brainpy.dyn.base import NeuDyn +from brainpy.dyn.neurons import hh +from brainpy.initialize import (OneInit, Initializer, parameter, noise as init_noise, variable_) -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.integrators.sde.generic import sdeint -from brainpy.version2.types import Shape, ArrayType +from brainpy.integrators.joint_eq import JointEq +from brainpy.integrators.ode.generic import odeint +from brainpy.integrators.sde.generic import sdeint +from brainpy.types import Shape, ArrayType __all__ = [ 'HH', @@ -129,15 +129,15 @@ class HH(hh.HH): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> group = bp.neurons.HH(2) >>> runner = bp.DSRunner(group, monitors=['V'], inputs=('input', 10.)) >>> runner.run(200.) >>> bp.visualize.line_plot(runner.mon.ts, runner.mon.V, show=True) - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> >>> group = bp.neurons.HH(2) @@ -265,7 +265,7 @@ class MorrisLecar(hh.MorrisLecar): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> group = bp.neurons.MorrisLecar(1) >>> runner = bp.DSRunner(group, monitors=['V', 'W'], inputs=('input', 100.)) diff --git a/brainpy/version2/dynold/neurons/fractional_models.py b/brainpy/dynold/neurons/fractional_models.py similarity index 96% rename from brainpy/version2/dynold/neurons/fractional_models.py rename to brainpy/dynold/neurons/fractional_models.py index 1c013d889..b6a4cef53 100644 --- a/brainpy/version2/dynold/neurons/fractional_models.py +++ b/brainpy/dynold/neurons/fractional_models.py @@ -17,15 +17,15 @@ import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2.check import is_float, is_integer, is_initializer -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.initialize import ZeroInit, OneInit, Initializer, parameter -from brainpy.version2.integrators.fde import CaputoL1Schema -from brainpy.version2.integrators.fde import GLShortMemory -from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.types import Shape, ArrayType +import brainpy.math as bm +from brainpy.check import is_float, is_integer, is_initializer +from brainpy.context import share +from brainpy.dyn.base import NeuDyn +from brainpy.initialize import ZeroInit, OneInit, Initializer, parameter +from brainpy.integrators.fde import CaputoL1Schema +from brainpy.integrators.fde import GLShortMemory +from brainpy.integrators.joint_eq import JointEq +from brainpy.types import Shape, ArrayType __all__ = [ 'FractionalNeuron', diff --git a/brainpy/version2/dynold/neurons/reduced_models.py b/brainpy/dynold/neurons/reduced_models.py similarity index 98% rename from brainpy/version2/dynold/neurons/reduced_models.py rename to brainpy/dynold/neurons/reduced_models.py index 7d22d160e..df5ae9d46 100644 --- a/brainpy/version2/dynold/neurons/reduced_models.py +++ b/brainpy/dynold/neurons/reduced_models.py @@ -17,19 +17,19 @@ from jax.lax import stop_gradient -import brainpy.version2.math as bm -from brainpy.version2.check import is_initializer, is_callable, is_subclass -from brainpy.version2.context import share -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dyn.neurons import lif -from brainpy.version2.initialize import (ZeroInit, +import brainpy.math as bm +from brainpy.check import is_initializer, is_callable, is_subclass +from brainpy.context import share +from brainpy.dyn.base import NeuDyn +from brainpy.dyn.neurons import lif +from brainpy.initialize import (ZeroInit, OneInit, Initializer, parameter, variable_, noise as init_noise) -from brainpy.version2.integrators import sdeint, odeint, JointEq -from brainpy.version2.types import Shape, ArrayType +from brainpy.integrators import sdeint, odeint, JointEq +from brainpy.types import Shape, ArrayType __all__ = [ 'LeakyIntegrator', @@ -283,7 +283,7 @@ class ExpIF(lif.ExpIFRef): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> group = bp.neurons.ExpIF(1) >>> runner = bp.DSRunner(group, monitors=['V'], inputs=('input', 10.)) >>> runner.run(300., ) @@ -498,7 +498,7 @@ class QuaIF(lif.QuaIFRef): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> group = bp.neurons.QuaIF(1,) >>> @@ -596,7 +596,7 @@ class AdQuaIF(lif.AdQuaIFRef): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> group = bp.neurons.AdQuaIF(1, ) >>> runner = bp.DSRunner(group, monitors=['V', 'w'], inputs=('input', 30.)) >>> runner.run(300) @@ -919,8 +919,8 @@ class HindmarshRose(NeuDyn): **Model Examples** - >>> import brainpy.version2.math as bm - >>> import brainpy.version2 as bp + >>> import brainpy.math as bm + >>> import brainpy as bp >>> import matplotlib.pyplot as plt >>> >>> bp.math.set_dt(dt=0.01) @@ -1135,7 +1135,7 @@ class FHN(NeuDyn): **Model Examples** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> fhn = bp.neurons.FHN(1) >>> runner = bp.DSRunner(fhn, inputs=('input', 1.), monitors=['V', 'w']) >>> runner.run(100.) diff --git a/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py b/brainpy/dynold/neurons/tests/test_biological_neurons.py similarity index 98% rename from brainpy/version2/dynold/neurons/tests/test_biological_neurons.py rename to brainpy/dynold/neurons/tests/test_biological_neurons.py index 13c443e6c..9ae211200 100644 --- a/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py +++ b/brainpy/dynold/neurons/tests/test_biological_neurons.py @@ -15,9 +15,9 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dynold.neurons import biological_models +import brainpy as bp +import brainpy.math as bm +from brainpy.dynold.neurons import biological_models class Test_Biological(parameterized.TestCase): diff --git a/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py b/brainpy/dynold/neurons/tests/test_fractional_neurons.py similarity index 95% rename from brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py rename to brainpy/dynold/neurons/tests/test_fractional_neurons.py index 81d8425c6..aa58bbbfe 100644 --- a/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py +++ b/brainpy/dynold/neurons/tests/test_fractional_neurons.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -from brainpy.version2.dynold.neurons import fractional_models +import brainpy as bp +from brainpy.dynold.neurons import fractional_models class Test_Fractional(parameterized.TestCase): diff --git a/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py b/brainpy/dynold/neurons/tests/test_reduced_neurons.py similarity index 96% rename from brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py rename to brainpy/dynold/neurons/tests/test_reduced_neurons.py index 9fd34dc38..9456d5ee2 100644 --- a/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py +++ b/brainpy/dynold/neurons/tests/test_reduced_neurons.py @@ -15,9 +15,9 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dynold.neurons import reduced_models +import brainpy as bp +import brainpy.math as bm +from brainpy.dynold.neurons import reduced_models class Test_Reduced(parameterized.TestCase): diff --git a/brainpy/version2/dynold/synapses/__init__.py b/brainpy/dynold/synapses/__init__.py similarity index 100% rename from brainpy/version2/dynold/synapses/__init__.py rename to brainpy/dynold/synapses/__init__.py diff --git a/brainpy/version2/dynold/synapses/abstract_models.py b/brainpy/dynold/synapses/abstract_models.py similarity index 96% rename from brainpy/version2/dynold/synapses/abstract_models.py rename to brainpy/dynold/synapses/abstract_models.py index 4b6d73777..2d50700a8 100644 --- a/brainpy/version2/dynold/synapses/abstract_models.py +++ b/brainpy/dynold/synapses/abstract_models.py @@ -17,15 +17,15 @@ import jax -import brainpy.version2.math as bm -from brainpy.version2.connect import TwoEndConnector, All2All, One2One -from brainpy.version2.dnn import linear -from brainpy.version2.dyn import _docs -from brainpy.version2.dyn import synapses -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dynold.synouts import MgBlock, CUBA -from brainpy.version2.initialize import Initializer -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.connect import TwoEndConnector, All2All, One2One +from brainpy.dnn import linear +from brainpy.dyn import _docs +from brainpy.dyn import synapses +from brainpy.dyn.base import NeuDyn +from brainpy.dynold.synouts import MgBlock, CUBA +from brainpy.initialize import Initializer +from brainpy.types import ArrayType from .base import TwoEndConn, _SynSTP, _SynOut, _TwoEndConnAlignPre __all__ = [ @@ -56,8 +56,8 @@ class Delta(TwoEndConn): **Model Examples** - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import synapses, neurons + >>> import brainpy as bp + >>> from brainpy import synapses, neurons >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.LIF(1) @@ -194,8 +194,8 @@ class Exponential(TwoEndConn): - `(Tian, et al., 2020) E/I Net for fast response `_ - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import neurons, synapses, synouts + >>> import brainpy as bp + >>> from brainpy import neurons, synapses, synouts >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.LIF(1) @@ -332,8 +332,8 @@ class DualExponential(_TwoEndConnAlignPre): **Model Examples** - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import neurons, synapses, synouts + >>> import brainpy as bp + >>> from brainpy import neurons, synapses, synouts >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.LIF(1) @@ -454,8 +454,8 @@ class Alpha(_TwoEndConnAlignPre): **Model Examples** - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import neurons, synapses, synouts + >>> import brainpy as bp + >>> from brainpy import neurons, synapses, synouts >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.LIF(1) @@ -615,8 +615,8 @@ class NMDA(_TwoEndConnAlignPre): - `(Wang, 2002) Decision making spiking model `_ - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import synapses, neurons + >>> import brainpy as bp + >>> from brainpy import synapses, neurons >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.HH(1) diff --git a/brainpy/version2/dynold/synapses/base.py b/brainpy/dynold/synapses/base.py similarity index 96% rename from brainpy/version2/dynold/synapses/base.py rename to brainpy/dynold/synapses/base.py index 8da0a2d7b..23f1e5611 100644 --- a/brainpy/version2/dynold/synapses/base.py +++ b/brainpy/dynold/synapses/base.py @@ -19,14 +19,14 @@ from brainpy._errors import UnsupportedError from brainpy.mixin import (ParamDesc, JointType, SupportAutoDelay, BindCondData, ReturnInfo) -from brainpy.version2 import math as bm -from brainpy.version2.connect import TwoEndConnector, One2One, All2All -from brainpy.version2.dnn import linear -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dyn.projections.conn import SynConn -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.initialize import parameter -from brainpy.version2.types import ArrayType +from brainpy import math as bm +from brainpy.connect import TwoEndConnector, One2One, All2All +from brainpy.dnn import linear +from brainpy.dyn.base import NeuDyn +from brainpy.dyn.projections.conn import SynConn +from brainpy.dynsys import DynamicalSystem +from brainpy.initialize import parameter +from brainpy.types import ArrayType __all__ = [ '_SynSTP', diff --git a/brainpy/version2/dynold/synapses/biological_models.py b/brainpy/dynold/synapses/biological_models.py similarity index 96% rename from brainpy/version2/dynold/synapses/biological_models.py rename to brainpy/dynold/synapses/biological_models.py index d0d162971..c6a3ff18d 100644 --- a/brainpy/version2/dynold/synapses/biological_models.py +++ b/brainpy/dynold/synapses/biological_models.py @@ -15,13 +15,13 @@ # ============================================================================== from typing import Union, Dict, Callable, Optional -import brainpy.version2.math as bm -from brainpy.version2.connect import TwoEndConnector -from brainpy.version2.dyn import synapses -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dynold.synapses import _SynSTP, _SynOut, _TwoEndConnAlignPre -from brainpy.version2.dynold.synouts import COBA, MgBlock -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.connect import TwoEndConnector +from brainpy.dyn import synapses +from brainpy.dyn.base import NeuDyn +from brainpy.dynold.synapses import _SynSTP, _SynOut, _TwoEndConnAlignPre +from brainpy.dynold.synouts import COBA, MgBlock +from brainpy.types import ArrayType __all__ = [ 'AMPA', @@ -242,8 +242,8 @@ class BioNMDA(_TwoEndConnAlignPre): The NMDA receptor has been thought to be very important for controlling synaptic plasticity and mediating learning and memory functions [3]_. - >>> import brainpy.version2 as bp - >>> from brainpy.version2 import neurons, synapses + >>> import brainpy as bp + >>> from brainpy import neurons, synapses >>> import matplotlib.pyplot as plt >>> >>> neu1 = neurons.HH(1) diff --git a/brainpy/version2/dynold/synapses/compat.py b/brainpy/dynold/synapses/compat.py similarity index 90% rename from brainpy/version2/dynold/synapses/compat.py rename to brainpy/dynold/synapses/compat.py index 293032861..b27c6348a 100644 --- a/brainpy/version2/dynold/synapses/compat.py +++ b/brainpy/dynold/synapses/compat.py @@ -16,11 +16,11 @@ import warnings from typing import Union, Dict, Callable -from brainpy.version2.connect import TwoEndConnector -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dynold.synouts import COBA, CUBA -from brainpy.version2.initialize import Initializer -from brainpy.version2.types import ArrayType +from brainpy.connect import TwoEndConnector +from brainpy.dyn.base import NeuDyn +from brainpy.dynold.synouts import COBA, CUBA +from brainpy.initialize import Initializer +from brainpy.types import ArrayType from .abstract_models import Delta, Exponential, DualExponential __all__ = [ @@ -38,7 +38,7 @@ class DeltaSynapse(Delta): """Delta synapse. .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.Delta" instead. + Please use "brainpy.synapses.Delta" instead. """ @@ -54,7 +54,7 @@ def __init__( post_has_ref: bool = False, name: str = None, ): - warnings.warn('Please use "brainpy.version2.synapses.Delta" instead.', DeprecationWarning) + warnings.warn('Please use "brainpy.synapses.Delta" instead.', DeprecationWarning) super().__init__(pre=pre, post=post, conn=conn, @@ -70,7 +70,7 @@ class ExpCUBA(Exponential): r"""Current-based exponential decay synapse model. .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.Exponential" instead. + Please use "brainpy.synapses.Exponential" instead. """ @@ -102,7 +102,7 @@ class ExpCOBA(Exponential): """Conductance-based exponential decay synapse model. .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.Exponential" instead. + Please use "brainpy.synapses.Exponential" instead. """ def __init__( @@ -139,7 +139,7 @@ class DualExpCUBA(DualExponential): r"""Current-based dual exponential synapse model. .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.DualExponential" instead. + Please use "brainpy.synapses.DualExponential" instead. """ @@ -174,7 +174,7 @@ class DualExpCOBA(DualExponential): .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.DualExponential" instead. + Please use "brainpy.synapses.DualExponential" instead. """ @@ -209,7 +209,7 @@ class AlphaCUBA(DualExpCUBA): r"""Current-based alpha synapse model. .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.Alpha" instead. + Please use "brainpy.synapses.Alpha" instead. """ @@ -241,7 +241,7 @@ class AlphaCOBA(DualExpCOBA): """Conductance-based alpha synapse model. .. deprecated:: 2.1.13 - Please use "brainpy.version2.synapses.Alpha" instead. + Please use "brainpy.synapses.Alpha" instead. """ diff --git a/brainpy/version2/dynold/synapses/gap_junction.py b/brainpy/dynold/synapses/gap_junction.py similarity index 89% rename from brainpy/version2/dynold/synapses/gap_junction.py rename to brainpy/dynold/synapses/gap_junction.py index 2d39420a8..b6c0e09fb 100644 --- a/brainpy/version2/dynold/synapses/gap_junction.py +++ b/brainpy/dynold/synapses/gap_junction.py @@ -15,12 +15,12 @@ # ============================================================================== from typing import Union, Dict, Callable -import brainpy.version2.math as bm -from brainpy.version2.connect import TwoEndConnector -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dynold.synapses import TwoEndConn -from brainpy.version2.initialize import Initializer, parameter -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.connect import TwoEndConnector +from brainpy.dyn.base import NeuDyn +from brainpy.dynold.synapses import TwoEndConn +from brainpy.initialize import Initializer, parameter +from brainpy.types import ArrayType __all__ = [ 'GapJunction', diff --git a/brainpy/version2/dynold/synapses/learning_rules.py b/brainpy/dynold/synapses/learning_rules.py similarity index 95% rename from brainpy/version2/dynold/synapses/learning_rules.py rename to brainpy/dynold/synapses/learning_rules.py index 9b8adbdf5..1c4738f37 100644 --- a/brainpy/version2/dynold/synapses/learning_rules.py +++ b/brainpy/dynold/synapses/learning_rules.py @@ -16,14 +16,14 @@ from typing import Union, Dict, Callable, Optional from brainpy.mixin import ParamDesc -from brainpy.version2.connect import TwoEndConnector -from brainpy.version2.dyn import synapses -from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.dynold.synapses import _TwoEndConnAlignPre -from brainpy.version2.dynold.synouts import CUBA -from brainpy.version2.dynsys import Sequential -from brainpy.version2.initialize import Initializer -from brainpy.version2.types import ArrayType +from brainpy.connect import TwoEndConnector +from brainpy.dyn import synapses +from brainpy.dyn.base import NeuDyn +from brainpy.dynold.synapses import _TwoEndConnAlignPre +from brainpy.dynold.synouts import CUBA +from brainpy.dynsys import Sequential +from brainpy.initialize import Initializer +from brainpy.types import ArrayType __all__ = [ 'STP' @@ -93,7 +93,7 @@ class STP(_TwoEndConnAlignPre): **STD** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> import matplotlib.pyplot as plt >>> >>> neu1 = bp.neurons.LIF(1) @@ -122,7 +122,7 @@ class STP(_TwoEndConnAlignPre): **STF** - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> import matplotlib.pyplot as plt >>> >>> neu1 = bp.neurons.LIF(1) diff --git a/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py b/brainpy/dynold/synapses/tests/test_abstract_synapses.py similarity index 97% rename from brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py rename to brainpy/dynold/synapses/tests/test_abstract_synapses.py index c6b079b53..fdd0b22fe 100644 --- a/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py +++ b/brainpy/dynold/synapses/tests/test_abstract_synapses.py @@ -15,9 +15,9 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dynold.synapses import abstract_models +import brainpy as bp +import brainpy.math as bm +from brainpy.dynold.synapses import abstract_models class Test_Abstract_Synapse(parameterized.TestCase): diff --git a/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py b/brainpy/dynold/synapses/tests/test_biological_synapses.py similarity index 98% rename from brainpy/version2/dynold/synapses/tests/test_biological_synapses.py rename to brainpy/dynold/synapses/tests/test_biological_synapses.py index c2ebe56fd..d6841fe36 100644 --- a/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py +++ b/brainpy/dynold/synapses/tests/test_biological_synapses.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm biological_models = [ bp.synapses.AMPA, diff --git a/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py b/brainpy/dynold/synapses/tests/test_dynold_base_synapse.py similarity index 96% rename from brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py rename to brainpy/dynold/synapses/tests/test_dynold_base_synapse.py index 09a0a0f88..d897aac63 100644 --- a/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py +++ b/brainpy/dynold/synapses/tests/test_dynold_base_synapse.py @@ -14,7 +14,7 @@ # ============================================================================== import unittest -import brainpy.version2 as bp +import brainpy as bp class Test_TwoEndConnAlignPre(unittest.TestCase): diff --git a/brainpy/version2/dynold/synapses/tests/test_gap_junction.py b/brainpy/dynold/synapses/tests/test_gap_junction.py similarity index 91% rename from brainpy/version2/dynold/synapses/tests/test_gap_junction.py rename to brainpy/dynold/synapses/tests/test_gap_junction.py index 8c1c36da3..bcb6c2e08 100644 --- a/brainpy/version2/dynold/synapses/tests/test_gap_junction.py +++ b/brainpy/dynold/synapses/tests/test_gap_junction.py @@ -15,9 +15,9 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.dynold.synapses import gap_junction +import brainpy as bp +import brainpy.math as bm +from brainpy.dynold.synapses import gap_junction class Test_gap_junction(parameterized.TestCase): diff --git a/brainpy/version2/dynold/synapses/tests/test_learning_rule.py b/brainpy/dynold/synapses/tests/test_learning_rule.py similarity index 96% rename from brainpy/version2/dynold/synapses/tests/test_learning_rule.py rename to brainpy/dynold/synapses/tests/test_learning_rule.py index 109e24357..2952d7397 100644 --- a/brainpy/version2/dynold/synapses/tests/test_learning_rule.py +++ b/brainpy/dynold/synapses/tests/test_learning_rule.py @@ -15,8 +15,8 @@ # ============================================================================== from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class Test_learning_rule(parameterized.TestCase): diff --git a/brainpy/version2/dynold/synouts/__init__.py b/brainpy/dynold/synouts/__init__.py similarity index 100% rename from brainpy/version2/dynold/synouts/__init__.py rename to brainpy/dynold/synouts/__init__.py diff --git a/brainpy/version2/dynold/synouts/conductances.py b/brainpy/dynold/synouts/conductances.py similarity index 94% rename from brainpy/version2/dynold/synouts/conductances.py rename to brainpy/dynold/synouts/conductances.py index ae2de2db3..84f2b94d8 100644 --- a/brainpy/version2/dynold/synouts/conductances.py +++ b/brainpy/dynold/synouts/conductances.py @@ -15,10 +15,10 @@ # ============================================================================== from typing import Union, Callable, Optional -from brainpy.version2.dynold.synapses.base import _SynOut -from brainpy.version2.initialize import parameter, Initializer -from brainpy.version2.math import Variable -from brainpy.version2.types import ArrayType +from brainpy.dynold.synapses.base import _SynOut +from brainpy.initialize import parameter, Initializer +from brainpy.math import Variable +from brainpy.types import ArrayType __all__ = [ 'COBA', diff --git a/brainpy/version2/dynold/synouts/ions.py b/brainpy/dynold/synouts/ions.py similarity index 95% rename from brainpy/version2/dynold/synouts/ions.py rename to brainpy/dynold/synouts/ions.py index 57e64f3af..29b8bdedf 100644 --- a/brainpy/version2/dynold/synouts/ions.py +++ b/brainpy/dynold/synouts/ions.py @@ -17,10 +17,10 @@ import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2.dynold.synapses.base import _SynOut -from brainpy.version2.initialize import parameter, Initializer -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.dynold.synapses.base import _SynOut +from brainpy.initialize import parameter, Initializer +from brainpy.types import ArrayType __all__ = [ 'MgBlock', diff --git a/brainpy/version2/dynold/synplast/__init__.py b/brainpy/dynold/synplast/__init__.py similarity index 100% rename from brainpy/version2/dynold/synplast/__init__.py rename to brainpy/dynold/synplast/__init__.py diff --git a/brainpy/version2/dynold/synplast/short_term_plasticity.py b/brainpy/dynold/synplast/short_term_plasticity.py similarity index 95% rename from brainpy/version2/dynold/synplast/short_term_plasticity.py rename to brainpy/dynold/synplast/short_term_plasticity.py index 681ec3a45..a715cde6d 100644 --- a/brainpy/version2/dynold/synplast/short_term_plasticity.py +++ b/brainpy/dynold/synplast/short_term_plasticity.py @@ -17,12 +17,12 @@ import jax.numpy as jnp -from brainpy.version2.check import is_float -from brainpy.version2.context import share -from brainpy.version2.dynold.synapses.base import _SynSTP -from brainpy.version2.initialize import variable -from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.types import ArrayType +from brainpy.check import is_float +from brainpy.context import share +from brainpy.dynold.synapses.base import _SynSTP +from brainpy.initialize import variable +from brainpy.integrators import odeint, JointEq +from brainpy.types import ArrayType __all__ = [ 'STD', diff --git a/brainpy/version2/dynsys.py b/brainpy/dynsys.py similarity index 97% rename from brainpy/version2/dynsys.py rename to brainpy/dynsys.py index 7b233516b..eb6e1807e 100644 --- a/brainpy/version2/dynsys.py +++ b/brainpy/dynsys.py @@ -24,12 +24,12 @@ from brainpy._errors import NoImplementationError, UnsupportedError from brainpy.mixin import SupportAutoDelay, Container, SupportInputProj, _get_delay_tool, MixIn -from brainpy.version2 import tools, math as bm -from brainpy.version2.context import share -from brainpy.version2.deprecations import _update_deprecate_msg -from brainpy.version2.initialize import parameter, variable_ -from brainpy.version2.math.object_transform.naming import get_unique_name -from brainpy.version2.types import ArrayType, Shape +from brainpy import tools, math as bm +from brainpy.context import share +from brainpy.deprecations import _update_deprecate_msg +from brainpy.initialize import parameter, variable_ +from brainpy.math.object_transform.naming import get_unique_name +from brainpy.types import ArrayType, Shape __all__ = [ # general @@ -275,11 +275,11 @@ def reset(self, *args, **kwargs): ``reset()`` function is a collective behavior which resets all states in this model. - See https://brainpy.version2.readthedocs.io/en/latest/tutorial_toolbox/state_resetting.html for details. + See https://brainpy.readthedocs.io/en/latest/tutorial_toolbox/state_resetting.html for details. """ global reset_state if reset_state is None: - from brainpy.version2.helpers import reset_state + from brainpy.helpers import reset_state reset_state(self, *args, **kwargs) @not_implemented @@ -289,7 +289,7 @@ def reset_state(self, *args, **kwargs): Simply speaking, this function should implement the logic of resetting of local variables in this node. - See https://brainpy.version2.readthedocs.io/en/latest/tutorial_toolbox/state_resetting.html for details. + See https://brainpy.readthedocs.io/en/latest/tutorial_toolbox/state_resetting.html for details. """ pass @@ -313,7 +313,7 @@ def step_run(self, i, *args, **kwargs): """ global clear_input if clear_input is None: - from brainpy.version2.helpers import clear_input + from brainpy.helpers import clear_input share.save(i=i, t=i * bm.dt) out = self.update(*args, **kwargs) clear_input(self) @@ -538,7 +538,7 @@ def __rrshift__(self, other): Examples:: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> x = bp.math.random.rand((10, 10)) >>> l = bp.layers.Activation(bm.tanh) >>> y = x >> l @@ -621,8 +621,8 @@ class Sequential(DynamicalSystem, SupportAutoDelay, Container): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> # composing ANN models >>> l = bp.Sequential(bp.layers.Dense(100, 10), @@ -796,7 +796,7 @@ def init_param(self, param, shape=None, sharding=None): If ``sharding`` is provided and ``param`` is array, this function will partition the parameter across the default device mesh. - See :py:func:`~.brainpy.version2.math.sharding.device_mesh` for the mesh setting. + See :py:func:`~.brainpy.math.sharding.device_mesh` for the mesh setting. """ shape = self.varshape if shape is None else shape sharding = self.sharding if sharding is None else sharding @@ -811,7 +811,7 @@ def init_variable(self, var_data, batch_or_mode, shape=None, sharding=None): If ``sharding`` is provided and ``var_data`` is array, this function will partition the variable across the default device mesh. - See :py:func:`~.brainpy.version2.math.sharding.device_mesh` for the mesh setting. + See :py:func:`~.brainpy.math.sharding.device_mesh` for the mesh setting. """ shape = self.varshape if shape is None else shape sharding = self.sharding if sharding is None else sharding @@ -838,7 +838,7 @@ class DynView(Dynamic): It can get a subset view of variables in a dynamical system instance. For instance, - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> hh = bp.neurons.HH(10) >>> DynView(hh, slice(5, 10, None)) >>> # or, simply diff --git a/brainpy/version2/encoding/__init__.py b/brainpy/encoding/__init__.py similarity index 100% rename from brainpy/version2/encoding/__init__.py rename to brainpy/encoding/__init__.py diff --git a/brainpy/version2/encoding/base.py b/brainpy/encoding/base.py similarity index 94% rename from brainpy/version2/encoding/base.py rename to brainpy/encoding/base.py index 92d7c5ac6..eb07927d4 100644 --- a/brainpy/version2/encoding/base.py +++ b/brainpy/encoding/base.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2.math.object_transform.base import BrainPyObject +from brainpy.math.object_transform.base import BrainPyObject __all__ = [ 'Encoder' diff --git a/brainpy/version2/encoding/stateful_encoding.py b/brainpy/encoding/stateful_encoding.py similarity index 98% rename from brainpy/version2/encoding/stateful_encoding.py rename to brainpy/encoding/stateful_encoding.py index cc3d069b5..4d3bebb4a 100644 --- a/brainpy/version2/encoding/stateful_encoding.py +++ b/brainpy/encoding/stateful_encoding.py @@ -17,9 +17,9 @@ import numpy as np -import brainpy.version2.math as bm -from brainpy.version2 import check -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy import check +from brainpy.types import ArrayType from .base import Encoder __all__ = [ diff --git a/brainpy/version2/encoding/stateless_encoding.py b/brainpy/encoding/stateless_encoding.py similarity index 97% rename from brainpy/version2/encoding/stateless_encoding.py rename to brainpy/encoding/stateless_encoding.py index 7576c21c9..5388e7bb5 100644 --- a/brainpy/version2/encoding/stateless_encoding.py +++ b/brainpy/encoding/stateless_encoding.py @@ -15,8 +15,8 @@ # ============================================================================== from typing import Optional -import brainpy.version2.math as bm -from brainpy.version2 import check +import brainpy.math as bm +from brainpy import check from .base import Encoder __all__ = [ @@ -38,8 +38,8 @@ class PoissonEncoder(Encoder): Examples:: - import brainpy.version2 as bp - import brainpy.version2.math as bm + import brainpy as bp + import brainpy.math as bm img = bm.random.random((10, 2)) # image to encode (normalized to [0., 1.]) encoder = bp.encoding.PoissonEncoder() # the encoder @@ -99,7 +99,7 @@ def multi_steps(self, x, n_time: Optional[float]): Args: x: Array. The rate input. n_time: float. Encode rate values as spike trains in the given time length. - ``n_time`` is converted into the ``n_step`` according to `n_step = int(n_time / brainpy.version2.math.dt)`. + ``n_time`` is converted into the ``n_step`` according to `n_step = int(n_time / brainpy.math.dt)`. - If ``n_time=None``, encode the rate values at the current time step. Users should repeatedly call it to encode `x` as a spike train. - Else, given the ``x`` with shape ``(S, ...)``, the encoded diff --git a/brainpy/version2/encoding/tests/test_stateless_encoding.py b/brainpy/encoding/tests/test_stateless_encoding.py similarity index 97% rename from brainpy/version2/encoding/tests/test_stateless_encoding.py rename to brainpy/encoding/tests/test_stateless_encoding.py index ec5f74e47..79379da5f 100644 --- a/brainpy/version2/encoding/tests/test_stateless_encoding.py +++ b/brainpy/encoding/tests/test_stateless_encoding.py @@ -14,8 +14,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestDiffEncoder(unittest.TestCase): diff --git a/brainpy/version2/helpers.py b/brainpy/helpers.py similarity index 92% rename from brainpy/version2/helpers.py rename to brainpy/helpers.py index 11ff11a6a..8cdae8771 100644 --- a/brainpy/version2/helpers.py +++ b/brainpy/helpers.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Dict, Callable -from brainpy.version2 import dynsys -from brainpy.version2.dyn.base import IonChaDyn -from brainpy.version2.dynsys import DynamicalSystem, DynView -from brainpy.version2.math.object_transform.base import StateLoadResult +from brainpy import dynsys +from brainpy.dyn.base import IonChaDyn +from brainpy.dynsys import DynamicalSystem, DynView +from brainpy.math.object_transform.base import StateLoadResult __all__ = [ 'reset_level', @@ -37,7 +37,7 @@ def reset_level(level: int = 0): The lower the level, the earlier the function is called. - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> bp.reset_level(0) >>> bp.reset_level(-1) >>> bp.reset_level(-2) @@ -58,7 +58,7 @@ def wrap(fun: Callable): def reset_state(target: DynamicalSystem, *args, **kwargs): """Reset states of all children nodes in the given target. - See https://brainpy.version2.readthedocs.io/en/latest/tutorial_toolbox/state_resetting.html for details. + See https://brainpy.readthedocs.io/en/latest/tutorial_toolbox/state_resetting.html for details. Args: target: The target DynamicalSystem. diff --git a/brainpy/version2/initialize/__init__.py b/brainpy/initialize/__init__.py similarity index 100% rename from brainpy/version2/initialize/__init__.py rename to brainpy/initialize/__init__.py diff --git a/brainpy/version2/initialize/base.py b/brainpy/initialize/base.py similarity index 100% rename from brainpy/version2/initialize/base.py rename to brainpy/initialize/base.py diff --git a/brainpy/version2/initialize/decay_inits.py b/brainpy/initialize/decay_inits.py similarity index 99% rename from brainpy/version2/initialize/decay_inits.py rename to brainpy/initialize/decay_inits.py index 78ff3c2cd..2bd26407d 100644 --- a/brainpy/version2/initialize/decay_inits.py +++ b/brainpy/initialize/decay_inits.py @@ -18,8 +18,8 @@ import numpy as np from jax import vmap, jit, numpy as jnp -from brainpy.version2 import math as bm -from brainpy.version2.tools import to_size, size2num +from brainpy import math as bm +from brainpy.tools import to_size, size2num from .base import _IntraLayerInitializer __all__ = [ diff --git a/brainpy/version2/initialize/generic.py b/brainpy/initialize/generic.py similarity index 97% rename from brainpy/version2/initialize/generic.py rename to brainpy/initialize/generic.py index 8be56da94..e73182c19 100644 --- a/brainpy/version2/initialize/generic.py +++ b/brainpy/initialize/generic.py @@ -19,9 +19,9 @@ import jax.numpy as jnp import numpy as np -import brainpy.version2.math as bm -from brainpy.version2.tools import to_size -from brainpy.version2.types import Shape, ArrayType, Sharding +import brainpy.math as bm +from brainpy.tools import to_size +from brainpy.types import Shape, ArrayType, Sharding from .base import Initializer __all__ = [ @@ -62,7 +62,7 @@ def parameter( The initialization of the parameter. - If it is None, the created parameter will be None. - If it is a callable function :math:`f`, the ``f(size)`` will be returned. - - If it is an instance of :py:class:`brainpy.version2.init.Initializer``, the ``f(size)`` will be returned. + - If it is an instance of :py:class:`brainpy.init.Initializer``, the ``f(size)`` will be returned. - If it is a tensor, then this function check whether ``tensor.shape`` is equal to the given ``size``. sizes: int, sequence of int The shape of the parameter. @@ -304,7 +304,7 @@ def delay( delay_type = 'heter' else: raise ValueError(f'Unknown "delay_steps" type {type(delay_step)}, only support ' - f'integer, array of integers, callable function, brainpy.version2.init.Initializer.') + f'integer, array of integers, callable function, brainpy.init.Initializer.') if delay_type == 'heter': if delay_step.dtype not in [bm.int32, bm.int64]: raise ValueError('Only support delay steps of int32, int64. If your ' diff --git a/brainpy/version2/initialize/others.py b/brainpy/initialize/others.py similarity index 97% rename from brainpy/version2/initialize/others.py rename to brainpy/initialize/others.py index 4d038bc3c..079a83a49 100644 --- a/brainpy/version2/initialize/others.py +++ b/brainpy/initialize/others.py @@ -14,7 +14,7 @@ # ============================================================================== from typing import Callable -import brainpy.version2.math as bm +import brainpy.math as bm from .base import Initializer diff --git a/brainpy/version2/initialize/random_inits.py b/brainpy/initialize/random_inits.py similarity index 99% rename from brainpy/version2/initialize/random_inits.py rename to brainpy/initialize/random_inits.py index 975207c8a..19059fee5 100644 --- a/brainpy/version2/initialize/random_inits.py +++ b/brainpy/initialize/random_inits.py @@ -18,8 +18,8 @@ import jax.numpy as jnp import numpy as np -from brainpy.version2 import math as bm -from brainpy.version2 import tools +from brainpy import math as bm +from brainpy import tools from .base import _InterLayerInitializer __all__ = [ diff --git a/brainpy/version2/initialize/regular_inits.py b/brainpy/initialize/regular_inits.py similarity index 98% rename from brainpy/version2/initialize/regular_inits.py rename to brainpy/initialize/regular_inits.py index cd2936bf2..f029842f2 100644 --- a/brainpy/version2/initialize/regular_inits.py +++ b/brainpy/initialize/regular_inits.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2 import math as bm, tools +from brainpy import math as bm, tools from .base import _InterLayerInitializer __all__ = [ diff --git a/brainpy/version2/initialize/tests/test_decay_inits.py b/brainpy/initialize/tests/test_decay_inits.py similarity index 98% rename from brainpy/version2/initialize/tests/test_decay_inits.py rename to brainpy/initialize/tests/test_decay_inits.py index 2db9d5dbd..e81a1e495 100644 --- a/brainpy/version2/initialize/tests/test_decay_inits.py +++ b/brainpy/initialize/tests/test_decay_inits.py @@ -19,8 +19,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm # visualization diff --git a/brainpy/version2/initialize/tests/test_random_inits.py b/brainpy/initialize/tests/test_random_inits.py similarity index 99% rename from brainpy/version2/initialize/tests/test_random_inits.py rename to brainpy/initialize/tests/test_random_inits.py index d0797cf3c..e18b7049f 100644 --- a/brainpy/version2/initialize/tests/test_random_inits.py +++ b/brainpy/initialize/tests/test_random_inits.py @@ -15,7 +15,7 @@ # ============================================================================== import unittest -import brainpy.version2 as bp +import brainpy as bp class TestNormalInit(unittest.TestCase): diff --git a/brainpy/version2/initialize/tests/test_regular_inits.py b/brainpy/initialize/tests/test_regular_inits.py similarity index 98% rename from brainpy/version2/initialize/tests/test_regular_inits.py rename to brainpy/initialize/tests/test_regular_inits.py index 867b9a2fd..e92803a55 100644 --- a/brainpy/version2/initialize/tests/test_regular_inits.py +++ b/brainpy/initialize/tests/test_regular_inits.py @@ -17,7 +17,7 @@ import jax -import brainpy.version2 as bp +import brainpy as bp class TestZeroInit(unittest.TestCase): diff --git a/brainpy/version2/inputs/__init__.py b/brainpy/inputs/__init__.py similarity index 92% rename from brainpy/version2/inputs/__init__.py rename to brainpy/inputs/__init__.py index b5ac7ebfc..f52b1a205 100644 --- a/brainpy/version2/inputs/__init__.py +++ b/brainpy/inputs/__init__.py @@ -15,7 +15,7 @@ # ============================================================================== """ This module provides various methods to form current inputs. -You can access them through ``brainpy.version2.inputs.XXX``. +You can access them through ``brainpy.inputs.XXX``. """ from .currents import * diff --git a/brainpy/version2/inputs/currents.py b/brainpy/inputs/currents.py similarity index 93% rename from brainpy/version2/inputs/currents.py rename to brainpy/inputs/currents.py index deb5fc253..087d2494a 100644 --- a/brainpy/version2/inputs/currents.py +++ b/brainpy/inputs/currents.py @@ -68,7 +68,7 @@ def constant_input(I_and_duration, dt=None): If you want to get an input where the size is 0 bwteen 0-100 ms, and the size is 1. between 100-200 ms. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> constant_input([(0, 100), (1, 100)]) >>> constant_input([(bm.zeros(100), 100), (bm.random.rand(100), 100)]) @@ -95,8 +95,8 @@ def constant_current(*args, **kwargs): .. deprecated:: 2.1.13 Use ``constant_current()`` instead. """ - warnings.warn('Please use "brainpy.version2.inputs.constant_input()" instead. ' - '"brainpy.version2.inputs.constant_current()" is deprecated since version 2.1.13.', + warnings.warn('Please use "brainpy.inputs.constant_input()" instead. ' + '"brainpy.inputs.constant_current()" is deprecated since version 2.1.13.', DeprecationWarning) return constant_input(*args, **kwargs) @@ -143,8 +143,8 @@ def spike_current(*args, **kwargs): .. deprecated:: 2.1.13 Use ``spike_current()`` instead. """ - warnings.warn('Please use "brainpy.version2.inputs.spike_input()" instead. ' - '"brainpy.version2.inputs.spike_current()" is deprecated since version 2.1.13.', + warnings.warn('Please use "brainpy.inputs.spike_input()" instead. ' + '"brainpy.inputs.spike_current()" is deprecated since version 2.1.13.', DeprecationWarning) return constant_input(*args, **kwargs) @@ -182,8 +182,8 @@ def ramp_current(*args, **kwargs): .. deprecated:: 2.1.13 Use ``ramp_input()`` instead. """ - warnings.warn('Please use "brainpy.version2.inputs.ramp_input()" instead. ' - '"brainpy.version2.inputs.ramp_current()" is deprecated since version 2.1.13.', + warnings.warn('Please use "brainpy.inputs.ramp_input()" instead. ' + '"brainpy.inputs.ramp_current()" is deprecated since version 2.1.13.', DeprecationWarning) return constant_input(*args, **kwargs) diff --git a/brainpy/version2/inputs/tests/test_currents.py b/brainpy/inputs/tests/test_currents.py similarity index 99% rename from brainpy/version2/inputs/tests/test_currents.py rename to brainpy/inputs/tests/test_currents.py index a9ce40ebd..bca7e9c7c 100644 --- a/brainpy/version2/inputs/tests/test_currents.py +++ b/brainpy/inputs/tests/test_currents.py @@ -18,7 +18,7 @@ import brainunit as u import numpy as np -import brainpy.version2 as bp +import brainpy as bp plt = None block = False diff --git a/brainpy/version2/integrators/__init__.py b/brainpy/integrators/__init__.py similarity index 100% rename from brainpy/version2/integrators/__init__.py rename to brainpy/integrators/__init__.py diff --git a/brainpy/version2/integrators/_jaxpr_to_source_code.py b/brainpy/integrators/_jaxpr_to_source_code.py similarity index 100% rename from brainpy/version2/integrators/_jaxpr_to_source_code.py rename to brainpy/integrators/_jaxpr_to_source_code.py diff --git a/brainpy/version2/integrators/base.py b/brainpy/integrators/base.py similarity index 94% rename from brainpy/version2/integrators/base.py rename to brainpy/integrators/base.py index 4d30b43d2..fbc15c6c8 100644 --- a/brainpy/version2/integrators/base.py +++ b/brainpy/integrators/base.py @@ -19,9 +19,9 @@ import jax from brainpy._errors import DiffEqError -from brainpy.version2.check import is_float, is_dict_data -from brainpy.version2.math import TimeDelay, LengthDelay -from brainpy.version2.math.object_transform.base import BrainPyObject +from brainpy.check import is_float, is_dict_data +from brainpy.math import TimeDelay, LengthDelay +from brainpy.math.object_transform.base import BrainPyObject from ._jaxpr_to_source_code import jaxpr_to_python_code from .constants import DT @@ -177,14 +177,14 @@ def __call__(self, *args, **kwargs): delay.update(dict_vars[key]) else: raise ValueError('Unknown delay variable. We only supports ' - 'brainpy.version2.math.LengthDelay, brainpy.version2.math.TimeDelay. ' + 'brainpy.math.LengthDelay, brainpy.math.TimeDelay. ' f'While we got {delay}') return new_vars def to_math_expr(self): if self._math_expr is None: - raise ValueError('Please call ``brainpy.version2.integrators.compile_integrators`` first.') + raise ValueError('Please call ``brainpy.integrators.compile_integrators`` first.') return self._math_expr diff --git a/brainpy/version2/integrators/constants.py b/brainpy/integrators/constants.py similarity index 97% rename from brainpy/version2/integrators/constants.py rename to brainpy/integrators/constants.py index 13ddf8956..e56642322 100644 --- a/brainpy/version2/integrators/constants.py +++ b/brainpy/integrators/constants.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -# import brainpy.version2.math as bm -from brainpy.version2.math.object_transform import naming +# import brainpy.math as bm +from brainpy.math.object_transform import naming __all__ = [ 'DT', diff --git a/brainpy/version2/integrators/fde/Caputo.py b/brainpy/integrators/fde/Caputo.py similarity index 98% rename from brainpy/version2/integrators/fde/Caputo.py rename to brainpy/integrators/fde/Caputo.py index 312d7936b..58e634b97 100644 --- a/brainpy/version2/integrators/fde/Caputo.py +++ b/brainpy/integrators/fde/Caputo.py @@ -23,12 +23,12 @@ import jax from scipy.special import gamma, rgamma -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import UnsupportedError -from brainpy.version2 import check -from brainpy.version2.integrators.constants import DT -from brainpy.version2.integrators.utils import check_inits, format_args -from brainpy.version2.types import ArrayType +from brainpy import check +from brainpy.integrators.constants import DT +from brainpy.integrators.utils import check_inits, format_args +from brainpy.types import ArrayType from .base import FDEIntegrator from .generic import register_fde_integrator @@ -79,7 +79,7 @@ class CaputoEuler(FDEIntegrator): Examples:: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> a, b, c = 10, 28, 8 / 3 >>> def lorenz(x, y, z, t): @@ -272,7 +272,7 @@ class CaputoL1Schema(FDEIntegrator): Examples:: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> a, b, c = 10, 28, 8 / 3 >>> def lorenz(x, y, z, t): diff --git a/brainpy/version2/integrators/fde/GL.py b/brainpy/integrators/fde/GL.py similarity index 97% rename from brainpy/version2/integrators/fde/GL.py rename to brainpy/integrators/fde/GL.py index cdd9872bc..29f572e66 100644 --- a/brainpy/version2/integrators/fde/GL.py +++ b/brainpy/integrators/fde/GL.py @@ -21,10 +21,10 @@ import jax -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import UnsupportedError -from brainpy.version2.integrators.constants import DT -from brainpy.version2.integrators.utils import check_inits, format_args +from brainpy.integrators.constants import DT +from brainpy.integrators.utils import check_inits, format_args from .base import FDEIntegrator from .generic import register_fde_integrator @@ -82,7 +82,7 @@ class GLShortMemory(FDEIntegrator): Examples:: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> a, b, c = 10, 28, 8 / 3 >>> def lorenz(x, y, z, t): diff --git a/brainpy/version2/integrators/fde/__init__.py b/brainpy/integrators/fde/__init__.py similarity index 100% rename from brainpy/version2/integrators/fde/__init__.py rename to brainpy/integrators/fde/__init__.py diff --git a/brainpy/version2/integrators/fde/base.py b/brainpy/integrators/fde/base.py similarity index 94% rename from brainpy/version2/integrators/fde/base.py rename to brainpy/integrators/fde/base.py index 6e438c0c8..53f61d782 100644 --- a/brainpy/version2/integrators/fde/base.py +++ b/brainpy/integrators/fde/base.py @@ -17,11 +17,11 @@ import jax.numpy as jnp -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import UnsupportedError -from brainpy.version2.check import is_integer -from brainpy.version2.integrators.base import Integrator -from brainpy.version2.integrators.utils import get_args +from brainpy.check import is_integer +from brainpy.integrators.base import Integrator +from brainpy.integrators.utils import get_args __all__ = [ 'FDEIntegrator' diff --git a/brainpy/version2/integrators/fde/generic.py b/brainpy/integrators/fde/generic.py similarity index 100% rename from brainpy/version2/integrators/fde/generic.py rename to brainpy/integrators/fde/generic.py diff --git a/brainpy/version2/integrators/fde/tests/test_Caputo.py b/brainpy/integrators/fde/tests/test_Caputo.py similarity index 98% rename from brainpy/version2/integrators/fde/tests/test_Caputo.py rename to brainpy/integrators/fde/tests/test_Caputo.py index bb88473fc..9bd77daa9 100644 --- a/brainpy/version2/integrators/fde/tests/test_Caputo.py +++ b/brainpy/integrators/fde/tests/test_Caputo.py @@ -17,7 +17,7 @@ import numpy as np -import brainpy.version2 as bp +import brainpy as bp class TestCaputoL1(unittest.TestCase): diff --git a/brainpy/version2/integrators/fde/tests/test_GL.py b/brainpy/integrators/fde/tests/test_GL.py similarity index 98% rename from brainpy/version2/integrators/fde/tests/test_GL.py rename to brainpy/integrators/fde/tests/test_GL.py index e278fa578..8381f7ce9 100644 --- a/brainpy/version2/integrators/fde/tests/test_GL.py +++ b/brainpy/integrators/fde/tests/test_GL.py @@ -17,7 +17,7 @@ import matplotlib.pyplot as plt -import brainpy.version2 as bp +import brainpy as bp block = False diff --git a/brainpy/version2/integrators/joint_eq.py b/brainpy/integrators/joint_eq.py similarity index 97% rename from brainpy/version2/integrators/joint_eq.py rename to brainpy/integrators/joint_eq.py index 47a241d60..4d16b86a8 100644 --- a/brainpy/version2/integrators/joint_eq.py +++ b/brainpy/integrators/joint_eq.py @@ -16,7 +16,7 @@ import inspect from brainpy._errors import DiffEqError -from brainpy.version2.math.object_transform.base import Collector +from brainpy.math.object_transform.base import Collector __all__ = [ 'JointEq', @@ -93,7 +93,7 @@ class JointEq(object): If we make numerical solver for each derivative function, they will be solved independently. - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> bp.odeint(dV, method='rk2', show_code=True) def brainpy_itg_of_ode0(V, t, u, Iext, dt=0.1): dV_k1 = f(V, t, u, Iext) @@ -105,7 +105,7 @@ def brainpy_itg_of_ode0(V, t, u, Iext, dt=0.1): As you see in the output code, "dV_k2" is evaluated by :math:`f(V_{k2}, u)`. If you want to solve the above coupled equation jointly, i.e., evalute "dV_k2" - with :math:`f(V_{k2}, u_{k2})`, you can use :py:class:`brainpy.version2.JointEq` + with :math:`f(V_{k2}, u_{k2})`, you can use :py:class:`brainpy.JointEq` to emerge the above two derivative equations into a joint equation, so that they will be numerically solved together. Let's see the difference: @@ -121,7 +121,7 @@ def brainpy_itg_of_ode0_joint_eq(V, u, t, Iext, dt=0.1): u_new = u + du_k1 * dt * 0.25 + du_k2 * dt * 0.75 return V_new, u_new - :py:class:`brainpy.version2.JointEq` supports make nested ``JointEq``, which means + :py:class:`brainpy.JointEq` supports make nested ``JointEq``, which means the instance of ``JointEq`` can be an element to compose a new ``JointEq``. >>> dw = lambda w, t, V: a * (b * V - w) diff --git a/brainpy/version2/integrators/ode/__init__.py b/brainpy/integrators/ode/__init__.py similarity index 100% rename from brainpy/version2/integrators/ode/__init__.py rename to brainpy/integrators/ode/__init__.py diff --git a/brainpy/version2/integrators/ode/adaptive_rk.py b/brainpy/integrators/ode/adaptive_rk.py similarity index 98% rename from brainpy/version2/integrators/ode/adaptive_rk.py rename to brainpy/integrators/ode/adaptive_rk.py index abca8110c..c22847b7d 100644 --- a/brainpy/version2/integrators/ode/adaptive_rk.py +++ b/brainpy/integrators/ode/adaptive_rk.py @@ -67,10 +67,10 @@ import jax.numpy as jnp -from brainpy.version2.integrators import constants as C, utils -from brainpy.version2.integrators.ode import common -from brainpy.version2.integrators.ode.base import ODEIntegrator -from brainpy.version2.integrators.ode.generic import register_ode_integrator +from brainpy.integrators import constants as C, utils +from brainpy.integrators.ode import common +from brainpy.integrators.ode.base import ODEIntegrator +from brainpy.integrators.ode.generic import register_ode_integrator __all__ = [ 'AdaptiveRKIntegrator', diff --git a/brainpy/version2/integrators/ode/base.py b/brainpy/integrators/ode/base.py similarity index 95% rename from brainpy/version2/integrators/ode/base.py rename to brainpy/integrators/ode/base.py index b68a5aab6..ac1d38ee0 100644 --- a/brainpy/version2/integrators/ode/base.py +++ b/brainpy/integrators/ode/base.py @@ -16,11 +16,11 @@ from typing import Dict, Callable, Union from brainpy._errors import DiffEqError, CodeError -from brainpy.version2 import math as bm -from brainpy.version2.check import is_dict_data -from brainpy.version2.integrators import constants, utils -from brainpy.version2.integrators.base import Integrator -from brainpy.version2.integrators.constants import DT +from brainpy import math as bm +from brainpy.check import is_dict_data +from brainpy.integrators import constants, utils +from brainpy.integrators.base import Integrator +from brainpy.integrators.constants import DT __all__ = [ 'ODEIntegrator', diff --git a/brainpy/version2/integrators/ode/common.py b/brainpy/integrators/ode/common.py similarity index 100% rename from brainpy/version2/integrators/ode/common.py rename to brainpy/integrators/ode/common.py diff --git a/brainpy/version2/integrators/ode/explicit_rk.py b/brainpy/integrators/ode/explicit_rk.py similarity index 98% rename from brainpy/version2/integrators/ode/explicit_rk.py rename to brainpy/integrators/ode/explicit_rk.py index 2933b3242..59e76994b 100644 --- a/brainpy/version2/integrators/ode/explicit_rk.py +++ b/brainpy/integrators/ode/explicit_rk.py @@ -80,9 +80,9 @@ """ -from brainpy.version2.integrators import constants as C, utils -from brainpy.version2.integrators.ode import common -from brainpy.version2.integrators.ode.base import ODEIntegrator +from brainpy.integrators import constants as C, utils +from brainpy.integrators.ode import common +from brainpy.integrators.ode.base import ODEIntegrator from .generic import register_ode_integrator __all__ = [ @@ -405,7 +405,7 @@ class Heun2(ExplicitRKIntegrator): **Geometric interpretation** - In the :py:func:`brainpy.version2.integrators.ode.midpoint`, we have already known Euler + In the :py:func:`brainpy.integrators.ode.midpoint`, we have already known Euler method has big estimation error because it uses the line tangent to the function at the beginning of the interval :math:`t_n` as an estimate of the slope of the function over the interval :math:`(t_n, t_{n+1})`. @@ -478,9 +478,9 @@ class RK2(ExplicitRKIntegrator): **Derivation** - In the :py:func:`brainpy.version2.integrators.ode.midpoint`, - :py:func:`brainpy.version2.integrators.ode.heun2`, and :py:func:`brainpy.version2.integrators.ode.ralston2`, - we have already known first-order Euler method :py:func:`brainpy.version2.integrators.ode.euler` + In the :py:func:`brainpy.integrators.ode.midpoint`, + :py:func:`brainpy.integrators.ode.heun2`, and :py:func:`brainpy.integrators.ode.ralston2`, + we have already known first-order Euler method :py:func:`brainpy.integrators.ode.euler` has big estimation error. Here, we seek to derive a generic second order Runge-Kutta method [1]_ for the diff --git a/brainpy/version2/integrators/ode/exponential.py b/brainpy/integrators/ode/exponential.py similarity index 96% rename from brainpy/version2/integrators/ode/exponential.py rename to brainpy/integrators/ode/exponential.py index d43bb06b3..4a20eb911 100644 --- a/brainpy/version2/integrators/ode/exponential.py +++ b/brainpy/integrators/ode/exponential.py @@ -123,9 +123,9 @@ import jax.numpy as jnp from brainpy import _errors as errors -from brainpy.version2 import math as bm -from brainpy.version2.integrators import constants as C, utils, joint_eq -from brainpy.version2.integrators.ode.base import ODEIntegrator +from brainpy import math as bm +from brainpy.integrators import constants as C, utils, joint_eq +from brainpy.integrators.ode.base import ODEIntegrator from .generic import register_ode_integrator __all__ = [ @@ -136,7 +136,7 @@ class ExponentialEuler(ODEIntegrator): """Exponential Euler method using automatic differentiation. - This method uses `brainpy.version2.math.vector_grad <../../math/generated/brainpy.version2.math.autograd.vector_grad.html>`_ + This method uses `brainpy.math.vector_grad <../../math/generated/brainpy.math.autograd.vector_grad.html>`_ to automatically infer the linear part of the given function. Therefore, it has minimal constraints on your derivative function. Arbitrary complex functions can be numerically integrated with this method. @@ -147,8 +147,8 @@ class ExponentialEuler(ODEIntegrator): .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> class HH(bp.dyn.NeuDyn): >>> def __init__(self, size, ENa=55., EK=-90., EL=-65, C=1.0, gNa=35., gK=9., @@ -215,13 +215,13 @@ class ExponentialEuler(ODEIntegrator): >>> run(100) >>> bp.visualize.line_plot(run.mon.ts, run.mon.V, legend='V', show=True) - The above example can also be defined with ``brainpy.version2.JointEq``. + The above example can also be defined with ``brainpy.JointEq``. .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> class HH(bp.dyn.NeuDyn): >>> def __init__(self, size, ENa=55., EK=-90., EL=-65, C=1.0, gNa=35., gK=9., diff --git a/brainpy/version2/integrators/ode/generic.py b/brainpy/integrators/ode/generic.py similarity index 97% rename from brainpy/version2/integrators/ode/generic.py rename to brainpy/integrators/ode/generic.py index 97a6a5900..49924c060 100644 --- a/brainpy/version2/integrators/ode/generic.py +++ b/brainpy/integrators/ode/generic.py @@ -15,7 +15,7 @@ # ============================================================================== from typing import Dict -from brainpy.version2.math.delayvars import AbstractDelay, NeuTimeDelay +from brainpy.math.delayvars import AbstractDelay, NeuTimeDelay from .base import ODEIntegrator __all__ = [ @@ -49,7 +49,7 @@ def odeint( .. plot:: :include-source: True - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> import matplotlib.pyplot as plt >>> >>> a=0.7; b=0.8; tau=12.5; Vth=1.9 diff --git a/brainpy/version2/integrators/ode/tests/test_delay_ode.py b/brainpy/integrators/ode/tests/test_delay_ode.py similarity index 96% rename from brainpy/version2/integrators/ode/tests/test_delay_ode.py rename to brainpy/integrators/ode/tests/test_delay_ode.py index 67b2379f0..2d7dd2762 100644 --- a/brainpy/version2/integrators/ode/tests/test_delay_ode.py +++ b/brainpy/integrators/ode/tests/test_delay_ode.py @@ -16,9 +16,9 @@ import jax.numpy as jnp from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.integrators.ode import get_supported_methods +import brainpy as bp +import brainpy.math as bm +from brainpy.integrators.ode import get_supported_methods block = True @@ -26,7 +26,7 @@ def delay_odeint(duration, eq, args=None, inits=None, state_delays=None, neutral_delays=None, monitors=('x',), method='euler', dt=0.1): - # define integrators of ODEs based on `brainpy.version2.odeint` + # define integrators of ODEs based on `brainpy.odeint` dde = bp.odeint(eq, state_delays=state_delays, neutral_delays=neutral_delays, diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py b/brainpy/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py similarity index 99% rename from brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py rename to brainpy/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py index 96abfdab6..a5855af05 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py +++ b/brainpy/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py @@ -18,7 +18,7 @@ import pytest from brainpy import _errors as errors -from brainpy.version2 import odeint +from brainpy import odeint class TestAdaptiveRKKeywords(unittest.TestCase): diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py b/brainpy/integrators/ode/tests/test_ode_keywords_for_exp_euler.py similarity index 97% rename from brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py rename to brainpy/integrators/ode/tests/test_ode_keywords_for_exp_euler.py index b3ebbd179..caf57d7f7 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py +++ b/brainpy/integrators/ode/tests/test_ode_keywords_for_exp_euler.py @@ -19,7 +19,7 @@ import pytest from brainpy import _errors as errors -from brainpy.version2 import odeint +from brainpy import odeint class TestExponentialEuler(unittest.TestCase): diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py b/brainpy/integrators/ode/tests/test_ode_keywords_for_general_rk.py similarity index 99% rename from brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py rename to brainpy/integrators/ode/tests/test_ode_keywords_for_general_rk.py index 3f68e1f44..0020938db 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py +++ b/brainpy/integrators/ode/tests/test_ode_keywords_for_general_rk.py @@ -18,7 +18,7 @@ import pytest from brainpy import _errors as errors -from brainpy.version2 import odeint +from brainpy import odeint class TestExplicitRKKeywords(unittest.TestCase): diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py b/brainpy/integrators/ode/tests/test_ode_method_adaptive_rk.py similarity index 96% rename from brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py rename to brainpy/integrators/ode/tests/test_ode_method_adaptive_rk.py index 70e16286a..90f5ba2e4 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py +++ b/brainpy/integrators/ode/tests/test_ode_method_adaptive_rk.py @@ -18,8 +18,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2.math as bm -from brainpy.version2.integrators.ode import adaptive_rk +import brainpy.math as bm +from brainpy.integrators.ode import adaptive_rk sigma = 10 beta = 8 / 3 diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py b/brainpy/integrators/ode/tests/test_ode_method_exp_euler.py similarity index 97% rename from brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py rename to brainpy/integrators/ode/tests/test_ode_method_exp_euler.py index b0671488b..90c7b272e 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py +++ b/brainpy/integrators/ode/tests/test_ode_method_exp_euler.py @@ -17,9 +17,9 @@ import matplotlib.pyplot as plt -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.integrators.ode.exponential import ExponentialEuler +import brainpy as bp +import brainpy.math as bm +from brainpy.integrators.ode.exponential import ExponentialEuler block = False diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py b/brainpy/integrators/ode/tests/test_ode_method_rk.py similarity index 96% rename from brainpy/version2/integrators/ode/tests/test_ode_method_rk.py rename to brainpy/integrators/ode/tests/test_ode_method_rk.py index 73d01d145..37cc62c19 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py +++ b/brainpy/integrators/ode/tests/test_ode_method_rk.py @@ -18,8 +18,8 @@ import jax import numpy as np -import brainpy.version2.math as bm -from brainpy.version2.integrators.ode import explicit_rk +import brainpy.math as bm +from brainpy.integrators.ode import explicit_rk plt = None diff --git a/brainpy/version2/integrators/pde/__init__.py b/brainpy/integrators/pde/__init__.py similarity index 100% rename from brainpy/version2/integrators/pde/__init__.py rename to brainpy/integrators/pde/__init__.py diff --git a/brainpy/version2/integrators/pde/base.py b/brainpy/integrators/pde/base.py similarity index 100% rename from brainpy/version2/integrators/pde/base.py rename to brainpy/integrators/pde/base.py diff --git a/brainpy/version2/integrators/runner.py b/brainpy/integrators/runner.py similarity index 97% rename from brainpy/version2/integrators/runner.py rename to brainpy/integrators/runner.py index e5ec2b022..b29911938 100644 --- a/brainpy/version2/integrators/runner.py +++ b/brainpy/integrators/runner.py @@ -25,9 +25,9 @@ from jax.tree_util import tree_flatten from brainpy._errors import RunningError -from brainpy.version2 import math as bm -from brainpy.version2.math.object_transform.base import Collector -from brainpy.version2.running.runner import Runner +from brainpy import math as bm +from brainpy.math.object_transform.base import Collector +from brainpy.running.runner import Runner from .base import Integrator __all__ = [ @@ -42,8 +42,8 @@ class IntegratorRunner(Runner): Example to run an ODE integrator, - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> a=0.7; b=0.8; tau=12.5 >>> dV = lambda V, t, w, I: V - V * V * V / 3 - w + I >>> dw = lambda w, t, V, a, b: (V + a - b * w) / tau @@ -63,8 +63,8 @@ class IntegratorRunner(Runner): Example to run an SDE intragetor, - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> # stochastic Lorenz system >>> sigma=10; beta=8 / 3; rho=28 >>> g = lambda x, y, z, t, p: (p * x, p * y, p * z) @@ -125,7 +125,7 @@ def __init__( The initial value of variables. With this parameter, you can easily control the number of variables to simulate. For example, if one of the variable has the shape of 10, - then all variables will be an instance of :py:class:`brainpy.version2.math.Variable` + then all variables will be an instance of :py:class:`brainpy.math.Variable` with the shape of :math:`(10,)`. args: dict The equation arguments to update. diff --git a/brainpy/version2/integrators/sde/__init__.py b/brainpy/integrators/sde/__init__.py similarity index 100% rename from brainpy/version2/integrators/sde/__init__.py rename to brainpy/integrators/sde/__init__.py diff --git a/brainpy/version2/integrators/sde/base.py b/brainpy/integrators/sde/base.py similarity index 94% rename from brainpy/version2/integrators/sde/base.py rename to brainpy/integrators/sde/base.py index 9feecaefe..a43de2f72 100644 --- a/brainpy/version2/integrators/sde/base.py +++ b/brainpy/integrators/sde/base.py @@ -17,10 +17,10 @@ import jax.numpy as jnp -from brainpy.version2 import math as bm -from brainpy.version2.integrators import constants, utils -from brainpy.version2.integrators.base import Integrator -from brainpy.version2.math.delayvars import AbstractDelay +from brainpy import math as bm +from brainpy.integrators import constants, utils +from brainpy.integrators.base import Integrator +from brainpy.math.delayvars import AbstractDelay __all__ = [ 'SDEIntegrator', diff --git a/brainpy/version2/integrators/sde/generic.py b/brainpy/integrators/sde/generic.py similarity index 99% rename from brainpy/version2/integrators/sde/generic.py rename to brainpy/integrators/sde/generic.py index 8e828f1d1..8649ae56a 100644 --- a/brainpy/version2/integrators/sde/generic.py +++ b/brainpy/integrators/sde/generic.py @@ -15,7 +15,7 @@ # ============================================================================== from typing import Dict, Union -import brainpy.version2.math as bm +import brainpy.math as bm from .base import SDEIntegrator __all__ = [ diff --git a/brainpy/version2/integrators/sde/normal.py b/brainpy/integrators/sde/normal.py similarity index 98% rename from brainpy/version2/integrators/sde/normal.py rename to brainpy/integrators/sde/normal.py index 69c5e4f9f..0080d0e63 100644 --- a/brainpy/version2/integrators/sde/normal.py +++ b/brainpy/integrators/sde/normal.py @@ -17,12 +17,12 @@ import jax.numpy as jnp -from brainpy.version2 import math as bm -from brainpy.version2.integrators import constants, utils, joint_eq -from brainpy.version2.integrators.constants import DT -from brainpy.version2.integrators.sde.base import SDEIntegrator -from brainpy.version2.integrators.sde.generic import register_sde_integrator -from brainpy.version2.integrators.utils import format_args +from brainpy import math as bm +from brainpy.integrators import constants, utils, joint_eq +from brainpy.integrators.constants import DT +from brainpy.integrators.sde.base import SDEIntegrator +from brainpy.integrators.sde.generic import register_sde_integrator +from brainpy.integrators.utils import format_args __all__ = [ 'Euler', diff --git a/brainpy/version2/integrators/sde/srk_scalar.py b/brainpy/integrators/sde/srk_scalar.py similarity index 99% rename from brainpy/version2/integrators/sde/srk_scalar.py rename to brainpy/integrators/sde/srk_scalar.py index a724dc53c..68d852451 100644 --- a/brainpy/version2/integrators/sde/srk_scalar.py +++ b/brainpy/integrators/sde/srk_scalar.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2.integrators import constants, utils -from brainpy.version2.integrators.sde.base import SDEIntegrator +from brainpy.integrators import constants, utils +from brainpy.integrators.sde.base import SDEIntegrator from .generic import register_sde_integrator __all__ = [ diff --git a/brainpy/version2/integrators/sde/srk_strong.py b/brainpy/integrators/sde/srk_strong.py similarity index 99% rename from brainpy/version2/integrators/sde/srk_strong.py rename to brainpy/integrators/sde/srk_strong.py index a23e526f4..98faefdd3 100644 --- a/brainpy/version2/integrators/sde/srk_strong.py +++ b/brainpy/integrators/sde/srk_strong.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2 import math -from brainpy.version2.integrators import constants, utils +from brainpy import math +from brainpy.integrators import constants, utils __all__ = [ 'srk1_strong', diff --git a/brainpy/version2/integrators/sde/tests/test_normal.py b/brainpy/integrators/sde/tests/test_normal.py similarity index 97% rename from brainpy/version2/integrators/sde/tests/test_normal.py rename to brainpy/integrators/sde/tests/test_normal.py index c113b718a..84d3f3c9b 100644 --- a/brainpy/version2/integrators/sde/tests/test_normal.py +++ b/brainpy/integrators/sde/tests/test_normal.py @@ -17,9 +17,9 @@ import matplotlib.pyplot as plt -import brainpy.version2 as bp -import brainpy.version2.math as bm -from brainpy.version2.integrators.sde.normal import ExponentialEuler +import brainpy as bp +import brainpy.math as bm +from brainpy.integrators.sde.normal import ExponentialEuler show = False diff --git a/brainpy/version2/integrators/sde/tests/test_sde_scalar.py b/brainpy/integrators/sde/tests/test_sde_scalar.py similarity index 97% rename from brainpy/version2/integrators/sde/tests/test_sde_scalar.py rename to brainpy/integrators/sde/tests/test_sde_scalar.py index 1ea3758bf..e1101b3d6 100644 --- a/brainpy/version2/integrators/sde/tests/test_sde_scalar.py +++ b/brainpy/integrators/sde/tests/test_sde_scalar.py @@ -19,8 +19,8 @@ import numpy as np import pytest -import brainpy.version2 as bp -from brainpy.version2.integrators import sde +import brainpy as bp +from brainpy.integrators import sde block = False sigma = 10 diff --git a/brainpy/version2/integrators/tests/test_integ_runner.py b/brainpy/integrators/tests/test_integ_runner.py similarity index 99% rename from brainpy/version2/integrators/tests/test_integ_runner.py rename to brainpy/integrators/tests/test_integ_runner.py index 4ec684060..bbf0b971d 100644 --- a/brainpy/version2/integrators/tests/test_integ_runner.py +++ b/brainpy/integrators/tests/test_integ_runner.py @@ -17,7 +17,7 @@ import matplotlib.pyplot as plt -import brainpy.version2 as bp +import brainpy as bp show = False diff --git a/brainpy/version2/integrators/tests/test_joint_eq.py b/brainpy/integrators/tests/test_joint_eq.py similarity index 97% rename from brainpy/version2/integrators/tests/test_joint_eq.py rename to brainpy/integrators/tests/test_joint_eq.py index 5fef7c056..9d9a7ba37 100644 --- a/brainpy/version2/integrators/tests/test_joint_eq.py +++ b/brainpy/integrators/tests/test_joint_eq.py @@ -15,9 +15,9 @@ # ============================================================================== import unittest -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import DiffEqError -from brainpy.version2.integrators.joint_eq import _get_args, JointEq +from brainpy.integrators.joint_eq import _get_args, JointEq class TestGetArgs(unittest.TestCase): diff --git a/brainpy/version2/integrators/tests/test_to_math_expr.py b/brainpy/integrators/tests/test_to_math_expr.py similarity index 98% rename from brainpy/version2/integrators/tests/test_to_math_expr.py rename to brainpy/integrators/tests/test_to_math_expr.py index c1dd0e14a..5bd1203da 100644 --- a/brainpy/version2/integrators/tests/test_to_math_expr.py +++ b/brainpy/integrators/tests/test_to_math_expr.py @@ -14,7 +14,7 @@ # ============================================================================== -import brainpy.version2 as bp +import brainpy as bp class EINet3(bp.DynSysGroup): diff --git a/brainpy/version2/integrators/utils.py b/brainpy/integrators/utils.py similarity index 99% rename from brainpy/version2/integrators/utils.py rename to brainpy/integrators/utils.py index 0fe334b2c..7703a0967 100644 --- a/brainpy/version2/integrators/utils.py +++ b/brainpy/integrators/utils.py @@ -18,7 +18,7 @@ import jax.numpy as jnp -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import UnsupportedError, CodeError, DiffEqError __all__ = [ diff --git a/brainpy/version2/layers.py b/brainpy/layers.py similarity index 95% rename from brainpy/version2/layers.py rename to brainpy/layers.py index 1a8433d1b..91dfe4cb3 100644 --- a/brainpy/version2/layers.py +++ b/brainpy/layers.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dnn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dnn`` module instead. """ diff --git a/brainpy/version2/losses/__init__.py b/brainpy/losses/__init__.py similarity index 100% rename from brainpy/version2/losses/__init__.py rename to brainpy/losses/__init__.py diff --git a/brainpy/version2/losses/base.py b/brainpy/losses/base.py similarity index 96% rename from brainpy/version2/losses/base.py rename to brainpy/losses/base.py index 02de01302..bc3538297 100644 --- a/brainpy/version2/losses/base.py +++ b/brainpy/losses/base.py @@ -14,7 +14,7 @@ # ============================================================================== from typing import Optional -from brainpy.version2.dnn.base import Layer +from brainpy.dnn.base import Layer __all__ = [ 'Loss', diff --git a/brainpy/version2/losses/comparison.py b/brainpy/losses/comparison.py similarity index 99% rename from brainpy/version2/losses/comparison.py rename to brainpy/losses/comparison.py index d833a95fc..67330b31a 100644 --- a/brainpy/version2/losses/comparison.py +++ b/brainpy/losses/comparison.py @@ -24,8 +24,8 @@ from jax.scipy.special import logsumexp from jax.tree_util import tree_map -import brainpy.version2.math as bm -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.types import ArrayType from .base import Loss, WeightedLoss from .utils import _reduce, _multi_return, _is_leaf diff --git a/brainpy/version2/losses/regularization.py b/brainpy/losses/regularization.py similarity index 98% rename from brainpy/version2/losses/regularization.py rename to brainpy/losses/regularization.py index 97f85ddbe..f6f2744c3 100644 --- a/brainpy/version2/losses/regularization.py +++ b/brainpy/losses/regularization.py @@ -16,7 +16,7 @@ import jax.numpy as jnp from jax.tree_util import tree_flatten, tree_map -import brainpy.version2.math as bm +import brainpy.math as bm from .utils import _is_leaf, _multi_return __all__ = [ diff --git a/brainpy/version2/losses/utils.py b/brainpy/losses/utils.py similarity index 97% rename from brainpy/version2/losses/utils.py rename to brainpy/losses/utils.py index c70e048e9..1e4f4084a 100644 --- a/brainpy/version2/losses/utils.py +++ b/brainpy/losses/utils.py @@ -16,7 +16,7 @@ import jax from jax.tree_util import tree_flatten -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import UnsupportedError _reduction_error = 'Only support reduction of "mean", "sum" and "none", but we got "%s".' diff --git a/brainpy/version2/math/__init__.py b/brainpy/math/__init__.py similarity index 97% rename from brainpy/version2/math/__init__.py rename to brainpy/math/__init__.py index 3f7db0e33..b8f512272 100644 --- a/brainpy/version2/math/__init__.py +++ b/brainpy/math/__init__.py @@ -78,7 +78,7 @@ from .scales import * del jnp, config -from brainpy.version2.deprecations import deprecation_getattr +from brainpy.deprecations import deprecation_getattr from .defaults import defaults diff --git a/brainpy/version2/math/_utils.py b/brainpy/math/_utils.py similarity index 100% rename from brainpy/version2/math/_utils.py rename to brainpy/math/_utils.py diff --git a/brainpy/version2/math/activations.py b/brainpy/math/activations.py similarity index 100% rename from brainpy/version2/math/activations.py rename to brainpy/math/activations.py diff --git a/brainpy/version2/math/compat_numpy.py b/brainpy/math/compat_numpy.py similarity index 98% rename from brainpy/version2/math/compat_numpy.py rename to brainpy/math/compat_numpy.py index 0d003d761..870543ee6 100644 --- a/brainpy/version2/math/compat_numpy.py +++ b/brainpy/math/compat_numpy.py @@ -303,7 +303,7 @@ def msort(a): Notes:: - ``brainpy.version2.math.msort(a)`` is equivalent to ``brainpy.version2.math.sort(a, axis=0)``. + ``brainpy.math.msort(a)`` is equivalent to ``brainpy.math.sort(a, axis=0)``. """ return sort(a, axis=0) @@ -490,13 +490,13 @@ def shape(a): Examples:: >>> import brainpy - >>> brainpy.version2.math.shape(brainpy.version2.math.eye(3)) + >>> brainpy.math.shape(brainpy.math.eye(3)) (3, 3) - >>> brainpy.version2.math.shape([[1, 3]]) + >>> brainpy.math.shape([[1, 3]]) (1, 2) - >>> brainpy.version2.math.shape([0]) + >>> brainpy.math.shape([0]) (1,) - >>> brainpy.version2.math.shape(0) + >>> brainpy.math.shape(0) () """ @@ -532,12 +532,12 @@ def size(a, axis=None): Examples:: >>> import brainpy - >>> a = brainpy.version2.math.array([[1,2,3], [4,5,6]]) - >>> brainpy.version2.math.size(a) + >>> a = brainpy.math.array([[1,2,3], [4,5,6]]) + >>> brainpy.math.size(a) 6 - >>> brainpy.version2.math.size(a, 1) + >>> brainpy.math.size(a, 1) 3 - >>> brainpy.version2.math.size(a, 0) + >>> brainpy.math.size(a, 0) 2 """ if isinstance(a, (Array, jax.Array, np.ndarray)): diff --git a/brainpy/version2/math/compat_pytorch.py b/brainpy/math/compat_pytorch.py similarity index 100% rename from brainpy/version2/math/compat_pytorch.py rename to brainpy/math/compat_pytorch.py diff --git a/brainpy/version2/math/compat_tensorflow.py b/brainpy/math/compat_tensorflow.py similarity index 99% rename from brainpy/version2/math/compat_tensorflow.py rename to brainpy/math/compat_tensorflow.py index 286e12b0a..ede493ab2 100644 --- a/brainpy/version2/math/compat_tensorflow.py +++ b/brainpy/math/compat_tensorflow.py @@ -18,8 +18,8 @@ import jax.ops from jax import lax -from brainpy.version2.math.interoperability import as_jax -from brainpy.version2.math.ndarray import Array +from brainpy.math.interoperability import as_jax +from brainpy.math.ndarray import Array from .compat_numpy import ( prod, min, sum, all, any, mean, std, var, concatenate, clip, asarray, diff --git a/brainpy/version2/math/datatypes.py b/brainpy/math/datatypes.py similarity index 100% rename from brainpy/version2/math/datatypes.py rename to brainpy/math/datatypes.py diff --git a/brainpy/version2/math/defaults.py b/brainpy/math/defaults.py similarity index 100% rename from brainpy/version2/math/defaults.py rename to brainpy/math/defaults.py diff --git a/brainpy/version2/math/delayvars.py b/brainpy/math/delayvars.py similarity index 98% rename from brainpy/version2/math/delayvars.py rename to brainpy/math/delayvars.py index 572345a0f..9654467f9 100644 --- a/brainpy/version2/math/delayvars.py +++ b/brainpy/math/delayvars.py @@ -22,8 +22,8 @@ from jax.lax import stop_gradient from brainpy._errors import UnsupportedError -from brainpy.version2 import check -from brainpy.version2.check import is_float, is_integer, jit_error +from brainpy import check +from brainpy.check import is_float, is_integer, jit_error from .compat_numpy import broadcast_to, expand_dims, concatenate from .environment import get_dt, get_float from .interoperability import as_jax @@ -60,7 +60,7 @@ class TimeDelay(AbstractDelay): For example, we create a delay variable which has a maximum delay length of 1 ms - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> delay = bm.TimeDelay(bm.zeros(3), delay_len=1., dt=0.1) >>> delay(-0.5) [-0. -0. -0.] @@ -385,7 +385,7 @@ def reset( batch_axis: int = None ): if not isinstance(delay_target, (ndarray, jnp.ndarray)): - raise ValueError(f'Must be an instance of brainpy.version2.math.ndarray ' + raise ValueError(f'Must be an instance of brainpy.math.ndarray ' f'or jax.numpy.ndarray. But we got {type(delay_target)}') # delay_len diff --git a/brainpy/version2/math/einops.py b/brainpy/math/einops.py similarity index 100% rename from brainpy/version2/math/einops.py rename to brainpy/math/einops.py diff --git a/brainpy/version2/math/einops_parsing.py b/brainpy/math/einops_parsing.py similarity index 100% rename from brainpy/version2/math/einops_parsing.py rename to brainpy/math/einops_parsing.py diff --git a/brainpy/version2/math/environment.py b/brainpy/math/environment.py similarity index 96% rename from brainpy/version2/math/environment.py rename to brainpy/math/environment.py index f73460e63..bfc0e6e68 100644 --- a/brainpy/version2/math/environment.py +++ b/brainpy/math/environment.py @@ -157,8 +157,8 @@ class environment(_DecoratorContextManager): For instance:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> with bm.environment(mode=bm.training_mode, dt=0.1): >>> lif1 = bp.neurons.LIF(1) @@ -283,7 +283,7 @@ class training_environment(environment): This is a short-cut context setting for an environment with the training mode. It is equivalent to:: - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> with bm.environment(mode=bm.training_mode): >>> pass @@ -320,7 +320,7 @@ class batching_environment(environment): This is a short-cut context setting for an environment with the batching mode. It is equivalent to:: - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> with bm.environment(mode=bm.batching_mode): >>> pass @@ -440,10 +440,10 @@ def ditype(): """Default int type. .. deprecated:: 2.3.1 - Use `brainpy.version2.math.int_` instead. + Use `brainpy.math.int_` instead. """ # raise errors.NoLongerSupportError('\nGet default integer data type through `ditype()` has been deprecated. \n' - # 'Use `brainpy.version2.math.int_` instead.') + # 'Use `brainpy.math.int_` instead.') return defaults.int_ @@ -451,11 +451,11 @@ def dftype(): """Default float type. .. deprecated:: 2.3.1 - Use `brainpy.version2.math.float_` instead. + Use `brainpy.math.float_` instead. """ # raise errors.NoLongerSupportError('\nGet default floating data type through `dftype()` has been deprecated. \n' - # 'Use `brainpy.version2.math.float_` instead.') + # 'Use `brainpy.math.float_` instead.') return defaults.float_ @@ -582,7 +582,7 @@ def set_mode(mode: modes.Mode): The instance of :py:class:`~.Mode`. """ if not isinstance(mode, modes.Mode): - raise TypeError(f'Must be instance of brainpy.version2.math.Mode. ' + raise TypeError(f'Must be instance of brainpy.math.Mode. ' f'But we got {type(mode)}: {mode}') defaults.mode = mode @@ -607,7 +607,7 @@ def set_membrane_scaling(membrane_scaling: scales.Scaling): The instance of :py:class:`~.Scaling`. """ if not isinstance(membrane_scaling, scales.Scaling): - raise TypeError(f'Must be instance of brainpy.version2.math.Scaling. ' + raise TypeError(f'Must be instance of brainpy.math.Scaling. ' f'But we got {type(membrane_scaling)}: {membrane_scaling}') defaults.membrane_scaling = membrane_scaling @@ -629,8 +629,8 @@ def enable_x64(x64=None): else: warnings.warn( '\n' - 'Instead of "brainpy.version2.math.enable_x64(True)", use "brainpy.version2.math.enable_x64()". \n' - 'Instead of "brainpy.version2.math.enable_x64(False)", use "brainpy.version2.math.disable_x64()". \n', + 'Instead of "brainpy.math.enable_x64(True)", use "brainpy.math.enable_x64()". \n' + 'Instead of "brainpy.math.enable_x64(False)", use "brainpy.math.disable_x64()". \n', DeprecationWarning ) if x64: diff --git a/brainpy/version2/math/event/__init__.py b/brainpy/math/event/__init__.py similarity index 100% rename from brainpy/version2/math/event/__init__.py rename to brainpy/math/event/__init__.py diff --git a/brainpy/version2/math/event/csr_matmat.py b/brainpy/math/event/csr_matmat.py similarity index 97% rename from brainpy/version2/math/event/csr_matmat.py rename to brainpy/math/event/csr_matmat.py index abf6eead0..63158dc98 100644 --- a/brainpy/version2/math/event/csr_matmat.py +++ b/brainpy/math/event/csr_matmat.py @@ -18,7 +18,7 @@ import brainevent from jax import numpy as jnp -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'csrmm', diff --git a/brainpy/version2/math/event/csr_matvec.py b/brainpy/math/event/csr_matvec.py similarity index 97% rename from brainpy/version2/math/event/csr_matvec.py rename to brainpy/math/event/csr_matvec.py index 73248d842..d64e9b103 100644 --- a/brainpy/version2/math/event/csr_matvec.py +++ b/brainpy/math/event/csr_matvec.py @@ -28,7 +28,7 @@ import brainevent import jax -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'csrmv' diff --git a/brainpy/version2/math/fft.py b/brainpy/math/fft.py similarity index 100% rename from brainpy/version2/math/fft.py rename to brainpy/math/fft.py diff --git a/brainpy/version2/math/interoperability.py b/brainpy/math/interoperability.py similarity index 96% rename from brainpy/version2/math/interoperability.py rename to brainpy/math/interoperability.py index af203abf5..c5287e342 100644 --- a/brainpy/version2/math/interoperability.py +++ b/brainpy/math/interoperability.py @@ -31,7 +31,7 @@ def _as_jax_array_(obj): def is_bp_array(x): - """Check if the input is a ``brainpy.version2.math.Array``. + """Check if the input is a ``brainpy.math.Array``. """ return isinstance(x, Array) @@ -95,7 +95,7 @@ def as_ndarray(tensor, dtype=None): def as_variable(tensor, dtype=None): - """Convert the input to a ``brainpy.version2.math.Variable``. + """Convert the input to a ``brainpy.math.Variable``. Parameters:: diff --git a/brainpy/version2/math/jitconn/__init__.py b/brainpy/math/jitconn/__init__.py similarity index 100% rename from brainpy/version2/math/jitconn/__init__.py rename to brainpy/math/jitconn/__init__.py diff --git a/brainpy/version2/math/jitconn/event_matvec.py b/brainpy/math/jitconn/event_matvec.py similarity index 96% rename from brainpy/version2/math/jitconn/event_matvec.py rename to brainpy/math/jitconn/event_matvec.py index b9216a569..80eea34e0 100644 --- a/brainpy/version2/math/jitconn/event_matvec.py +++ b/brainpy/math/jitconn/event_matvec.py @@ -19,10 +19,10 @@ import jax import numpy as np -from brainpy.version2.math.jitconn.matvec import (mv_prob_homo, +from brainpy.math.jitconn.matvec import (mv_prob_homo, mv_prob_uniform, mv_prob_normal) -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'event_mv_prob_homo', diff --git a/brainpy/version2/math/jitconn/matvec.py b/brainpy/math/jitconn/matvec.py similarity index 99% rename from brainpy/version2/math/jitconn/matvec.py rename to brainpy/math/jitconn/matvec.py index 21bc886f6..cd13f5c68 100644 --- a/brainpy/version2/math/jitconn/matvec.py +++ b/brainpy/math/jitconn/matvec.py @@ -19,7 +19,7 @@ import jax import numpy as np -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'mv_prob_homo', diff --git a/brainpy/version2/math/linalg.py b/brainpy/math/linalg.py similarity index 100% rename from brainpy/version2/math/linalg.py rename to brainpy/math/linalg.py diff --git a/brainpy/version2/math/modes.py b/brainpy/math/modes.py similarity index 100% rename from brainpy/version2/math/modes.py rename to brainpy/math/modes.py diff --git a/brainpy/version2/math/ndarray.py b/brainpy/math/ndarray.py similarity index 98% rename from brainpy/version2/math/ndarray.py rename to brainpy/math/ndarray.py index 0745f3546..db6a33a66 100644 --- a/brainpy/version2/math/ndarray.py +++ b/brainpy/math/ndarray.py @@ -84,7 +84,7 @@ class Array(u.CustomArray): - In-place updating is supported. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> a = bm.asarray([1, 2, 3.]) >>> a[0] = 10. @@ -186,7 +186,7 @@ def __jax_array__(self): def as_variable(self): """As an instance of Variable.""" global bm - if bm is None: from brainpy.version2 import math as bm + if bm is None: from brainpy import math as bm return bm.Variable(self) # ----------------------- # diff --git a/brainpy/version2/math/object_transform/__init__.py b/brainpy/math/object_transform/__init__.py similarity index 100% rename from brainpy/version2/math/object_transform/__init__.py rename to brainpy/math/object_transform/__init__.py diff --git a/brainpy/version2/math/object_transform/_utils.py b/brainpy/math/object_transform/_utils.py similarity index 100% rename from brainpy/version2/math/object_transform/_utils.py rename to brainpy/math/object_transform/_utils.py diff --git a/brainpy/version2/math/object_transform/autograd.py b/brainpy/math/object_transform/autograd.py similarity index 95% rename from brainpy/version2/math/object_transform/autograd.py rename to brainpy/math/object_transform/autograd.py index e64cddf31..95ff403e1 100644 --- a/brainpy/version2/math/object_transform/autograd.py +++ b/brainpy/math/object_transform/autograd.py @@ -67,8 +67,8 @@ def grad( And, what should be labeled in ``argnums``? Take the following codes as example: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> class Example(bp.BrainPyObject): >>> def __init__(self): @@ -93,7 +93,7 @@ def grad( labeled as ``grad_vars``, while all gradient variables provided in the function arguments should be declared in ``argnums``. In above codes, we try to take gradients of ``self.x`` and arguments ``z`` and ``v``, we should - call ``brainpy.version2.math.grad`` as: + call ``brainpy.math.grad`` as: >>> f = Example() >>> f_grad = bm.grad(f, grad_vars=f.x, argnums=(0, 1)) @@ -103,7 +103,7 @@ def grad( Grad for a pure function: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> grad_tanh = grad(bp.math.tanh) >>> print(grad_tanh(0.2)) 0.961043 @@ -180,8 +180,8 @@ def jacrev( computation on functions and class functions. Moreover, it supports returning value ("return_value") and returning auxiliary data ("has_aux"). - Same as `brainpy.version2.math.grad <./brainpy.version2.math.autograd.grad.html>`_, the returns are - different for different argument settings in ``brainpy.version2.math.jacrev``. + Same as `brainpy.math.grad <./brainpy.math.autograd.grad.html>`_, the returns are + different for different argument settings in ``brainpy.math.jacrev``. 1. When "grad_vars" is None - "has_aux=False" + "return_value=False" => ``arg_grads``. @@ -257,8 +257,8 @@ def jacfwd( computation on functions and class functions. Moreover, it supports returning value ("return_value") and returning auxiliary data ("has_aux"). - Same as `brainpy.version2.math.grad <./brainpy.version2.math.autograd.grad.html>`_, the returns are - different for different argument settings in ``brainpy.version2.math.jacfwd``. + Same as `brainpy.math.grad <./brainpy.math.autograd.grad.html>`_, the returns are + different for different argument settings in ``brainpy.math.jacfwd``. 1. When "grad_vars" is None - "has_aux=False" + "return_value=False" => ``arg_grads``. @@ -360,9 +360,9 @@ def vector_grad( ) -> Callable: """Take vector-valued gradients for function ``func``. - Same as `brainpy.version2.math.grad <./brainpy.version2.math.autograd.grad.html>`_, - `brainpy.version2.math.jacrev <./brainpy.version2.math.autograd.jacrev.html>`_ and - `brainpy.version2.math.jacfwd <./brainpy.version2.math.autograd.jacfwd.html>`_, + Same as `brainpy.math.grad <./brainpy.math.autograd.grad.html>`_, + `brainpy.math.jacrev <./brainpy.math.autograd.jacrev.html>`_ and + `brainpy.math.jacfwd <./brainpy.math.autograd.jacfwd.html>`_, the returns in this function are different for different argument settings. 1. When "grad_vars" is None diff --git a/brainpy/version2/math/object_transform/base.py b/brainpy/math/object_transform/base.py similarity index 96% rename from brainpy/version2/math/object_transform/base.py rename to brainpy/math/object_transform/base.py index 744101d69..8404ee150 100644 --- a/brainpy/version2/math/object_transform/base.py +++ b/brainpy/math/object_transform/base.py @@ -27,19 +27,19 @@ import numpy as np from jax.tree_util import register_pytree_node_class -from brainpy.version2.math.defaults import defaults -from brainpy.version2.math.modes import Mode -from brainpy.version2.math.ndarray import (Array, ) -from brainpy.version2.math.object_transform.collectors import (ArrayCollector, Collector) -from brainpy.version2.math.object_transform.naming import ( +from brainpy.math.defaults import defaults +from brainpy.math.modes import Mode +from brainpy.math.ndarray import (Array, ) +from brainpy.math.object_transform.collectors import (ArrayCollector, Collector) +from brainpy.math.object_transform.naming import ( get_unique_name, check_name_uniqueness ) -from brainpy.version2.math.object_transform.variables import ( +from brainpy.math.object_transform.variables import ( Variable, VariableView, TrainVar, VarList, VarDict ) -from brainpy.version2.math.sharding import BATCH_AXIS +from brainpy.math.sharding import BATCH_AXIS variable_ = None StateLoadResult = namedtuple('StateLoadResult', ['missing_keys', 'unexpected_keys']) @@ -57,18 +57,18 @@ class BrainPyObject(object): The subclass of BrainPyObject includes but not limited to: - - ``DynamicalSystem`` in *brainpy.version2.dyn.base.py* - - ``Integrator`` in *brainpy.version2.integrators.base.py* - - ``Optimizer`` in *brainpy.version2.optimizers.py* - - ``Scheduler`` in *brainpy.version2.optimizers.py* + - ``DynamicalSystem`` in *brainpy.dyn.base.py* + - ``Integrator`` in *brainpy.integrators.base.py* + - ``Optimizer`` in *brainpy.optimizers.py* + - ``Scheduler`` in *brainpy.optimizers.py* .. note:: Note a variable created in the ``BrainPyObject`` will never be replaced. For example, if here we create an object which has an attribute ``a``: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> class MyObj(bp.BrainPyObject): >>> def __init__(self): @@ -97,7 +97,7 @@ class BrainPyObject(object): there will be an error. >>> ob.reset2() - brainpy.version2.errors.MathError: The shape of the original data is (1,), while we got () with batch_axis=None. + brainpy.errors.MathError: The shape of the original data is (1,), while we got () with batch_axis=None. """ @@ -187,7 +187,7 @@ def fun(self): batch_axis: int. The batch axis, if batch size is given. axis_names: sequence of str. The name for each axis. These names should match the given ``axes``. batch_axis_name: str. The name for the batch axis. The name will be used - if ``batch_or_mode`` is given. Default is ``brainpy.version2.math.sharding.BATCH_AXIS``. + if ``batch_or_mode`` is given. Default is ``brainpy.math.sharding.BATCH_AXIS``. Returns: The instance of :py:class:`~.Variable`. @@ -215,7 +215,7 @@ def fun(self): global variable_ if variable_ is None: - from brainpy.version2.initialize import variable_ + from brainpy.initialize import variable_ with jax.ensure_compile_time_eval(): value = variable_(init, shape, batch_or_mode, batch_axis, axis_names, batch_axis_name) value.ready_to_trace = True @@ -682,7 +682,7 @@ def __call__(self, *args, **kwargs): return self.target(*args, **kwargs) def __repr__(self) -> str: - from brainpy.version2.tools import repr_context + from brainpy.tools import repr_context name = self.__class__.__name__ indent = " " * (len(name) + 1) indent2 = indent + " " * len('nodes=') @@ -731,7 +731,7 @@ class NodeList(list): That is to say, any nodes that are wrapped into :py:class:`~.NodeList` will be automatically retieved when using :py:func:`~.nodes()` function. - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> l = bm.node_list([bp.dnn.Dense(1, 2), >>> bp.dnn.LSTMCell(2, 3)]) """ diff --git a/brainpy/version2/math/object_transform/collectors.py b/brainpy/math/object_transform/collectors.py similarity index 99% rename from brainpy/version2/math/object_transform/collectors.py rename to brainpy/math/object_transform/collectors.py index 43c87081e..23a742a17 100644 --- a/brainpy/version2/math/object_transform/collectors.py +++ b/brainpy/math/object_transform/collectors.py @@ -129,7 +129,7 @@ def subset(self, var_type): ``subset()`` can be used to get a subset of some class: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> some_collector = Collector() >>> diff --git a/brainpy/version2/math/object_transform/controls.py b/brainpy/math/object_transform/controls.py similarity index 98% rename from brainpy/version2/math/object_transform/controls.py rename to brainpy/math/object_transform/controls.py index 0c3e4e430..65131067e 100644 --- a/brainpy/version2/math/object_transform/controls.py +++ b/brainpy/math/object_transform/controls.py @@ -19,7 +19,7 @@ import jax.numpy as jnp import brainstate -from brainpy.version2.math.ndarray import Array +from brainpy.math.ndarray import Array from ._utils import warp_to_no_state_input_output __all__ = [ @@ -39,7 +39,7 @@ def cond( ): """Simple conditional statement (if-else) with instance of :py:class:`~.Variable`. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> a = bm.Variable(bm.zeros(2)) >>> b = bm.Variable(bm.ones(2)) >>> def true_f(): a.value += 1 @@ -104,7 +104,7 @@ def ifelse( Examples:: - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> def f(a): >>> return bm.ifelse(conditions=[a > 10, a > 5, a > 2, a > 0], >>> branches=[lambda: 1, @@ -222,7 +222,7 @@ def for_loop( All returns in body function will be gathered as the return of the whole loop. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> a = bm.Variable(bm.zeros(1)) >>> b = bm.Variable(bm.ones(1)) >>> # first example @@ -399,7 +399,7 @@ def while_loop( values at the next moment, meaning that the body function of ``while_loop`` defines the updating rule of how the operands are updated. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> >>> a = bm.Variable(bm.zeros(1)) >>> b = bm.Variable(bm.ones(1)) diff --git a/brainpy/version2/math/object_transform/function.py b/brainpy/math/object_transform/function.py similarity index 97% rename from brainpy/version2/math/object_transform/function.py rename to brainpy/math/object_transform/function.py index e16e23c79..8469e4c63 100644 --- a/brainpy/version2/math/object_transform/function.py +++ b/brainpy/math/object_transform/function.py @@ -110,6 +110,6 @@ def function( func: FunAsObject The instance of ``BrainPyObject``. """ - warnings.warn('Using `brainpy.version2.math.to_object()` instead. Will be removed after version 2.4.0.', + warnings.warn('Using `brainpy.math.to_object()` instead. Will be removed after version 2.4.0.', UserWarning) return to_object(f, nodes, dyn_vars, name) diff --git a/brainpy/version2/math/object_transform/jit.py b/brainpy/math/object_transform/jit.py similarity index 96% rename from brainpy/version2/math/object_transform/jit.py rename to brainpy/math/object_transform/jit.py index 3e22b65b8..0c60650fb 100644 --- a/brainpy/version2/math/object_transform/jit.py +++ b/brainpy/math/object_transform/jit.py @@ -96,14 +96,14 @@ def jit( JIT (Just-In-Time) compilation for BrainPy computation. This function has the same ability to just-in-time compile a pure function, - but it can also JIT compile a :py:class:`brainpy.version2.DynamicalSystem`, or a - :py:class:`brainpy.version2.BrainPyObject` object. + but it can also JIT compile a :py:class:`brainpy.DynamicalSystem`, or a + :py:class:`brainpy.BrainPyObject` object. Examples:: You can JIT any object in which all dynamical variables are defined as :py:class:`~.Variable`. - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> class Hello(bp.BrainPyObject): >>> def __init__(self): >>> super(Hello, self).__init__() @@ -173,8 +173,8 @@ def cls_jit( This transformation can be put on any class function. For example, - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> class SomeProgram(bp.BrainPyObject): >>> def __init__(self): diff --git a/brainpy/version2/math/object_transform/naming.py b/brainpy/math/object_transform/naming.py similarity index 97% rename from brainpy/version2/math/object_transform/naming.py rename to brainpy/math/object_transform/naming.py index 22203d82a..8842b2a12 100644 --- a/brainpy/version2/math/object_transform/naming.py +++ b/brainpy/math/object_transform/naming.py @@ -37,7 +37,7 @@ def check_name_uniqueness(name, obj): f'In BrainPy, each object should have a unique name. ' f'However, we detect that {obj} has a used name "{name}". \n' f'If you try to run multiple trials, you may need \n\n' - f'>>> brainpy.version2.math.clear_name_cache() \n\n' + f'>>> brainpy.math.clear_name_cache() \n\n' f'to clear all cached names. ' ) else: diff --git a/brainpy/version2/math/object_transform/tests/test_autograd.py b/brainpy/math/object_transform/tests/test_autograd.py similarity index 99% rename from brainpy/version2/math/object_transform/tests/test_autograd.py rename to brainpy/math/object_transform/tests/test_autograd.py index 9a239079b..feb7cd190 100644 --- a/brainpy/version2/math/object_transform/tests/test_autograd.py +++ b/brainpy/math/object_transform/tests/test_autograd.py @@ -21,8 +21,8 @@ import pytest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestPureFuncGrad(unittest.TestCase): diff --git a/brainpy/version2/math/object_transform/tests/test_base.py b/brainpy/math/object_transform/tests/test_base.py similarity index 99% rename from brainpy/version2/math/object_transform/tests/test_base.py rename to brainpy/math/object_transform/tests/test_base.py index f02e0f564..554c182ec 100644 --- a/brainpy/version2/math/object_transform/tests/test_base.py +++ b/brainpy/math/object_transform/tests/test_base.py @@ -18,8 +18,8 @@ import brainstate.environ import jax.tree_util -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestCollectionFunction(unittest.TestCase): diff --git a/brainpy/version2/math/object_transform/tests/test_circular_reference.py b/brainpy/math/object_transform/tests/test_circular_reference.py similarity index 98% rename from brainpy/version2/math/object_transform/tests/test_circular_reference.py rename to brainpy/math/object_transform/tests/test_circular_reference.py index 63afae5dd..a080bf302 100644 --- a/brainpy/version2/math/object_transform/tests/test_circular_reference.py +++ b/brainpy/math/object_transform/tests/test_circular_reference.py @@ -15,7 +15,7 @@ # ============================================================================== from pprint import pprint -import brainpy.version2 as bp +import brainpy as bp class HH(bp.dyn.NeuDyn): diff --git a/brainpy/version2/math/object_transform/tests/test_collector.py b/brainpy/math/object_transform/tests/test_collector.py similarity index 99% rename from brainpy/version2/math/object_transform/tests/test_collector.py rename to brainpy/math/object_transform/tests/test_collector.py index e3ca87769..1ba7da7fc 100644 --- a/brainpy/version2/math/object_transform/tests/test_collector.py +++ b/brainpy/math/object_transform/tests/test_collector.py @@ -17,7 +17,7 @@ import jax.numpy as jnp -import brainpy.version2 as bp +import brainpy as bp class GABAa_without_Variable(bp.synapses.TwoEndConn): diff --git a/brainpy/version2/math/object_transform/tests/test_controls.py b/brainpy/math/object_transform/tests/test_controls.py similarity index 99% rename from brainpy/version2/math/object_transform/tests/test_controls.py rename to brainpy/math/object_transform/tests/test_controls.py index 8f2c06c89..7920d1a78 100644 --- a/brainpy/version2/math/object_transform/tests/test_controls.py +++ b/brainpy/math/object_transform/tests/test_controls.py @@ -20,8 +20,8 @@ from absl.testing import parameterized from jax import vmap -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestLoop(parameterized.TestCase): diff --git a/brainpy/version2/math/object_transform/tests/test_jit.py b/brainpy/math/object_transform/tests/test_jit.py similarity index 99% rename from brainpy/version2/math/object_transform/tests/test_jit.py rename to brainpy/math/object_transform/tests/test_jit.py index 11f52914b..7585f817c 100644 --- a/brainpy/version2/math/object_transform/tests/test_jit.py +++ b/brainpy/math/object_transform/tests/test_jit.py @@ -18,8 +18,8 @@ import jax import pytest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestJIT(unittest.TestCase): diff --git a/brainpy/version2/math/object_transform/tests/test_namechecking.py b/brainpy/math/object_transform/tests/test_namechecking.py similarity index 96% rename from brainpy/version2/math/object_transform/tests/test_namechecking.py rename to brainpy/math/object_transform/tests/test_namechecking.py index 30c2fa69b..5291e4444 100644 --- a/brainpy/version2/math/object_transform/tests/test_namechecking.py +++ b/brainpy/math/object_transform/tests/test_namechecking.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import brainpy.version2 as bp +import brainpy as bp class LIF(bp.dyn.NeuDyn): diff --git a/brainpy/version2/math/object_transform/tests/test_naming.py b/brainpy/math/object_transform/tests/test_naming.py similarity index 94% rename from brainpy/version2/math/object_transform/tests/test_naming.py rename to brainpy/math/object_transform/tests/test_naming.py index 7e5c0f648..eb14135d7 100644 --- a/brainpy/version2/math/object_transform/tests/test_naming.py +++ b/brainpy/math/object_transform/tests/test_naming.py @@ -16,8 +16,8 @@ import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestNaming(unittest.TestCase): diff --git a/brainpy/version2/math/object_transform/tests/test_variable.py b/brainpy/math/object_transform/tests/test_variable.py similarity index 97% rename from brainpy/version2/math/object_transform/tests/test_variable.py rename to brainpy/math/object_transform/tests/test_variable.py index 94921f0c2..3a3dff31a 100644 --- a/brainpy/version2/math/object_transform/tests/test_variable.py +++ b/brainpy/math/object_transform/tests/test_variable.py @@ -16,7 +16,7 @@ import pytest -import brainpy.version2.math as bm +import brainpy.math as bm class TestVar(unittest.TestCase): diff --git a/brainpy/version2/math/object_transform/variables.py b/brainpy/math/object_transform/variables.py similarity index 97% rename from brainpy/version2/math/object_transform/variables.py rename to brainpy/math/object_transform/variables.py index 305c2e135..7afab1274 100644 --- a/brainpy/version2/math/object_transform/variables.py +++ b/brainpy/math/object_transform/variables.py @@ -22,8 +22,8 @@ import brainstate from brainpy._errors import MathError -from brainpy.version2.math.ndarray import Array -from brainpy.version2.math.sharding import BATCH_AXIS +from brainpy.math.ndarray import Array +from brainpy.math.sharding import BATCH_AXIS from brainstate._state import record_state_value_read, record_state_value_write __all__ = [ @@ -43,7 +43,7 @@ class Variable(brainstate.State, Array): Initializing an instance of ``Variable`` by two ways: - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> # 1. init a Variable by the concreate data >>> v1 = bm.Variable(bm.zeros(10)) >>> # 2. init a Variable by the data shape @@ -228,9 +228,9 @@ def __init__( class VariableView(Variable): """A view of a Variable instance. - This class is used to create a subset view of ``brainpy.version2.math.Variable``. + This class is used to create a subset view of ``brainpy.math.Variable``. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> bm.random.seed(123) >>> origin = bm.Variable(bm.random.random(5)) >>> view = bm.VariableView(origin, slice(None, 2, None)) # origin[:2] @@ -337,7 +337,7 @@ def __setitem__(self, key, value) -> 'VarList': This function ensures that the Variable appended in the :py:class:`~.VarList` will not be overridden, and only the value can be changed for each element. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> l = bm.var_list([bm.Variable(1), bm.Variable(2)]) >>> print(id(l[0]), id(l[1])) 2077748389472 2077748389552 @@ -400,7 +400,7 @@ def __setitem__(self, key, value) -> 'VarDict': This function ensures that the Variable appended in the :py:class:`~.VarList` will not be overridden. - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm >>> d = bm.var_dict({'a': bm.Variable(1), 'b': bm.Variable(2)}) >>> print(id(d['a']), id(d['b'])) 2077667833504 2077748488176 diff --git a/brainpy/version2/math/others.py b/brainpy/math/others.py similarity index 99% rename from brainpy/version2/math/others.py rename to brainpy/math/others.py index 28b9afc4a..fcf4b8587 100644 --- a/brainpy/version2/math/others.py +++ b/brainpy/math/others.py @@ -19,7 +19,7 @@ import jax.numpy as jnp from jax.tree_util import tree_map -from brainpy.version2 import check, tools +from brainpy import check, tools from .compat_numpy import fill_diagonal from .environment import get_dt, get_int from .interoperability import as_jax diff --git a/brainpy/version2/math/pre_syn_post.py b/brainpy/math/pre_syn_post.py similarity index 96% rename from brainpy/version2/math/pre_syn_post.py rename to brainpy/math/pre_syn_post.py index 7baacaf1a..d50f7c322 100644 --- a/brainpy/version2/math/pre_syn_post.py +++ b/brainpy/math/pre_syn_post.py @@ -17,8 +17,8 @@ from jax import vmap, jit, ops as jops from brainpy._errors import MathError -from brainpy.version2.math import event -from brainpy.version2.math.interoperability import as_jax +from brainpy.math import event +from brainpy.math.interoperability import as_jax __all__ = [ # pre-to-post @@ -49,7 +49,7 @@ def _raise_pre_ids_is_none(pre_ids): if pre_ids is None: raise MathError(f'pre2post synaptic computation needs "pre_ids" ' f'when providing heterogeneous "pre_values" ' - f'(brainpy.version2.math.ndim(pre_values) != 0).') + f'(brainpy.math.ndim(pre_values) != 0).') def pre2post_event_sum(events, @@ -395,7 +395,7 @@ def syn2post_prod(syn_values, post_ids, post_num: int, indices_are_sorted=False) The synaptic values. post_ids: ArrayType The post-synaptic neuron ids. If ``post_ids`` is generated by - ``brainpy.version2.conn.TwoEndConnector``, then it has sorted indices. + ``brainpy.conn.TwoEndConnector``, then it has sorted indices. Otherwise, this function cannot guarantee indices are sorted. You's better set ``indices_are_sorted=False``. post_num: int @@ -432,7 +432,7 @@ def syn2post_max(syn_values, post_ids, post_num: int, indices_are_sorted=False): The synaptic values. post_ids: ArrayType The post-synaptic neuron ids. If ``post_ids`` is generated by - ``brainpy.version2.conn.TwoEndConnector``, then it has sorted indices. + ``brainpy.conn.TwoEndConnector``, then it has sorted indices. Otherwise, this function cannot guarantee indices are sorted. You's better set ``indices_are_sorted=False``. post_num: int @@ -469,7 +469,7 @@ def syn2post_min(syn_values, post_ids, post_num: int, indices_are_sorted=False): The synaptic values. post_ids: ArrayType The post-synaptic neuron ids. If ``post_ids`` is generated by - ``brainpy.version2.conn.TwoEndConnector``, then it has sorted indices. + ``brainpy.conn.TwoEndConnector``, then it has sorted indices. Otherwise, this function cannot guarantee indices are sorted. You's better set ``indices_are_sorted=False``. post_num: int @@ -497,7 +497,7 @@ def syn2post_mean(syn_values, post_ids, post_num: int, indices_are_sorted=False) The synaptic values. post_ids: ArrayType The post-synaptic neuron ids. If ``post_ids`` is generated by - ``brainpy.version2.conn.TwoEndConnector``, then it has sorted indices. + ``brainpy.conn.TwoEndConnector``, then it has sorted indices. Otherwise, this function cannot guarantee indices are sorted. You's better set ``indices_are_sorted=False``. post_num: int @@ -527,7 +527,7 @@ def syn2post_softmax(syn_values, post_ids, post_num: int, indices_are_sorted=Fal The synaptic values. post_ids: ArrayType The post-synaptic neuron ids. If ``post_ids`` is generated by - ``brainpy.version2.conn.TwoEndConnector``, then it has sorted indices. + ``brainpy.conn.TwoEndConnector``, then it has sorted indices. Otherwise, this function cannot guarantee indices are sorted. You's better set ``indices_are_sorted=False``. post_num: int diff --git a/brainpy/version2/math/remove_vmap.py b/brainpy/math/remove_vmap.py similarity index 100% rename from brainpy/version2/math/remove_vmap.py rename to brainpy/math/remove_vmap.py diff --git a/brainpy/version2/math/scales.py b/brainpy/math/scales.py similarity index 100% rename from brainpy/version2/math/scales.py rename to brainpy/math/scales.py diff --git a/brainpy/version2/math/sharding.py b/brainpy/math/sharding.py similarity index 97% rename from brainpy/version2/math/sharding.py rename to brainpy/math/sharding.py index 9be8b7e44..e9f8ec679 100644 --- a/brainpy/version2/math/sharding.py +++ b/brainpy/math/sharding.py @@ -82,7 +82,7 @@ def _device_put(x: Union[Array, jax.Array, np.ndarray], device: Union[None, jax.Device, Sharding] = None): """Transfers ``x`` to ``device``. - Note that this function can only transfer ``brainpy.version2.math.Array``, ``jax.Array``, + Note that this function can only transfer ``brainpy.math.Array``, ``jax.Array``, and ``numpy.ndarray``. Other value will be directly returned. Args: @@ -97,7 +97,7 @@ def _device_put(x: Union[Array, jax.Array, np.ndarray], return x else: if isinstance(x, (jax.Array, np.ndarray)): - # wrap the data as brainpy.version2.math.Array is important (experimental) + # wrap the data as brainpy.math.Array is important (experimental) return ShardedArray(jax.device_put(x, device=device), keep_sharding=True) else: return x diff --git a/brainpy/version2/math/sparse/__init__.py b/brainpy/math/sparse/__init__.py similarity index 100% rename from brainpy/version2/math/sparse/__init__.py rename to brainpy/math/sparse/__init__.py diff --git a/brainpy/version2/math/sparse/coo_mv.py b/brainpy/math/sparse/coo_mv.py similarity index 97% rename from brainpy/version2/math/sparse/coo_mv.py rename to brainpy/math/sparse/coo_mv.py index ac5ee06c2..f38063e73 100644 --- a/brainpy/version2/math/sparse/coo_mv.py +++ b/brainpy/math/sparse/coo_mv.py @@ -18,7 +18,7 @@ import brainevent from jax import numpy as jnp -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'coomv', diff --git a/brainpy/version2/math/sparse/csr_mm.py b/brainpy/math/sparse/csr_mm.py similarity index 97% rename from brainpy/version2/math/sparse/csr_mm.py rename to brainpy/math/sparse/csr_mm.py index e25018ea8..c6056b0ad 100644 --- a/brainpy/version2/math/sparse/csr_mm.py +++ b/brainpy/math/sparse/csr_mm.py @@ -18,7 +18,7 @@ import brainevent from jax import numpy as jnp -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'csrmm', diff --git a/brainpy/version2/math/sparse/csr_mv.py b/brainpy/math/sparse/csr_mv.py similarity index 97% rename from brainpy/version2/math/sparse/csr_mv.py rename to brainpy/math/sparse/csr_mv.py index 18bc775c0..ff33180d5 100644 --- a/brainpy/version2/math/sparse/csr_mv.py +++ b/brainpy/math/sparse/csr_mv.py @@ -18,7 +18,7 @@ import brainevent from jax import numpy as jnp -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.ndarray import Array as Array __all__ = [ 'csrmv', diff --git a/brainpy/version2/math/sparse/jax_prim.py b/brainpy/math/sparse/jax_prim.py similarity index 97% rename from brainpy/version2/math/sparse/jax_prim.py rename to brainpy/math/sparse/jax_prim.py index c3a520dee..0960f6b8b 100644 --- a/brainpy/version2/math/sparse/jax_prim.py +++ b/brainpy/math/sparse/jax_prim.py @@ -17,8 +17,8 @@ import jax.numpy as jnp from jax import ops -from brainpy.version2.math.interoperability import as_jax -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.interoperability import as_jax +from brainpy.math.ndarray import Array as Array __all__ = [ 'seg_matmul', @@ -119,7 +119,7 @@ def seg_matmul(A, B): Examples:: - >>> import brainpy.version2.math as bm + >>> import brainpy.math as bm 1. when the left matrix :math:`A` is a sparse matrix with the shape of :math:`(N, M)`, diff --git a/brainpy/version2/math/sparse/utils.py b/brainpy/math/sparse/utils.py similarity index 99% rename from brainpy/version2/math/sparse/utils.py rename to brainpy/math/sparse/utils.py index 5a9e34f18..e0193ca26 100644 --- a/brainpy/version2/math/sparse/utils.py +++ b/brainpy/math/sparse/utils.py @@ -26,7 +26,7 @@ from jax.tree_util import tree_flatten, tree_unflatten from jaxlib import gpu_sparse -from brainpy.version2.math.interoperability import as_jax +from brainpy.math.interoperability import as_jax if jax.__version__ >= '0.5.0': from jax.extend.core import Primitive diff --git a/brainpy/version2/math/surrogate/__init__.py b/brainpy/math/surrogate/__init__.py similarity index 100% rename from brainpy/version2/math/surrogate/__init__.py rename to brainpy/math/surrogate/__init__.py diff --git a/brainpy/version2/math/surrogate/_one_input.py b/brainpy/math/surrogate/_one_input.py similarity index 96% rename from brainpy/version2/math/surrogate/_one_input.py rename to brainpy/math/surrogate/_one_input.py index 892ea29e8..91a6734b0 100644 --- a/brainpy/version2/math/surrogate/_one_input.py +++ b/brainpy/math/surrogate/_one_input.py @@ -20,8 +20,8 @@ import jax.numpy as jnp import jax.scipy as sci -from brainpy.version2.math.interoperability import as_jax -from brainpy.version2.math.ndarray import Array +from brainpy.math.interoperability import as_jax +from brainpy.math.ndarray import Array __all__ = [ 'sigmoid', @@ -140,8 +140,8 @@ def sigmoid( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-2, 2, 1000) @@ -239,8 +239,8 @@ def piecewise_quadratic( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -334,8 +334,8 @@ def piecewise_exp( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -423,8 +423,8 @@ def soft_sign( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -508,8 +508,8 @@ def arctan( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -606,8 +606,8 @@ def nonzero_sign_log( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -695,8 +695,8 @@ def erf( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -802,8 +802,8 @@ def piecewise_leaky_relu( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -913,8 +913,8 @@ def squarewave_fourier_series( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -1014,8 +1014,8 @@ def s2nn( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -1115,8 +1115,8 @@ def q_pseudo_spike( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1213,8 +1213,8 @@ def leaky_relu( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1317,8 +1317,8 @@ def log_tailed_relu( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1395,8 +1395,8 @@ def relu_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1475,8 +1475,8 @@ def gaussian_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1568,8 +1568,8 @@ def multi_gaussian_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1648,8 +1648,8 @@ def inv_square_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-1, 1, 1000) >>> for alpha in [1., 10., 100.]: @@ -1719,8 +1719,8 @@ def slayer_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) diff --git a/brainpy/version2/math/surrogate/_one_input_new.py b/brainpy/math/surrogate/_one_input_new.py similarity index 96% rename from brainpy/version2/math/surrogate/_one_input_new.py rename to brainpy/math/surrogate/_one_input_new.py index 94e8a03ed..b3680bdbc 100644 --- a/brainpy/version2/math/surrogate/_one_input_new.py +++ b/brainpy/math/surrogate/_one_input_new.py @@ -25,8 +25,8 @@ from jax.core import Primitive from jax.interpreters import batching, ad, mlir -from brainpy.version2.math.interoperability import as_jax -from brainpy.version2.math.ndarray import Array as Array +from brainpy.math.interoperability import as_jax +from brainpy.math.ndarray import Array as Array __all__ = [ 'Surrogate', @@ -115,8 +115,8 @@ class Surrogate(object): Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import jax.numpy as jnp >>> class MySurrogate(bm.Surrogate): @@ -204,8 +204,8 @@ def sigmoid( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-2, 2, 1000) @@ -301,8 +301,8 @@ def piecewise_quadratic( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -395,8 +395,8 @@ def piecewise_exp( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -483,8 +483,8 @@ def soft_sign( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -567,8 +567,8 @@ def arctan( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -664,8 +664,8 @@ def nonzero_sign_log( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -752,8 +752,8 @@ def erf( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -858,8 +858,8 @@ def piecewise_leaky_relu( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -968,8 +968,8 @@ def squarewave_fourier_series( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -1068,8 +1068,8 @@ def s2nn( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) @@ -1168,8 +1168,8 @@ def q_pseudo_spike( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1265,8 +1265,8 @@ def leaky_relu( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1368,8 +1368,8 @@ def log_tailed_relu( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1445,8 +1445,8 @@ def relu_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1525,8 +1525,8 @@ def gaussian_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1618,8 +1618,8 @@ def multi_gaussian_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-3, 3, 1000) >>> bp.visualize.get_figure(1, 1, 4, 6) @@ -1697,8 +1697,8 @@ def inv_square_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> xs = bm.linspace(-1, 1, 1000) >>> for alpha in [1., 10., 100.]: @@ -1767,8 +1767,8 @@ def slayer_grad( .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> bp.visualize.get_figure(1, 1, 4, 6) >>> xs = bm.linspace(-3, 3, 1000) diff --git a/brainpy/version2/math/surrogate/_two_inputs.py b/brainpy/math/surrogate/_two_inputs.py similarity index 95% rename from brainpy/version2/math/surrogate/_two_inputs.py rename to brainpy/math/surrogate/_two_inputs.py index 20aa6f591..d4bebff59 100644 --- a/brainpy/version2/math/surrogate/_two_inputs.py +++ b/brainpy/math/surrogate/_two_inputs.py @@ -18,8 +18,8 @@ import jax import jax.numpy as jnp -from brainpy.version2.math.interoperability import as_jax -from brainpy.version2.math.ndarray import Array +from brainpy.math.interoperability import as_jax +from brainpy.math.ndarray import Array from ._utils import vjp_custom __all__ = [ diff --git a/brainpy/version2/math/surrogate/_utils.py b/brainpy/math/surrogate/_utils.py similarity index 98% rename from brainpy/version2/math/surrogate/_utils.py rename to brainpy/math/surrogate/_utils.py index 9431a8410..7358e24f4 100644 --- a/brainpy/version2/math/surrogate/_utils.py +++ b/brainpy/math/surrogate/_utils.py @@ -21,8 +21,8 @@ import jax from brainpy._errors import UnsupportedError -from brainpy.version2 import check -from brainpy.version2.math.ndarray import Array as Array +from brainpy import check +from brainpy.math.ndarray import Array as Array __all__ = [ 'get_default', diff --git a/brainpy/version2/math/surrogate/tests/test_one_input.py b/brainpy/math/surrogate/tests/test_one_input.py similarity index 95% rename from brainpy/version2/math/surrogate/tests/test_one_input.py rename to brainpy/math/surrogate/tests/test_one_input.py index 605671849..dede3bcb2 100644 --- a/brainpy/version2/math/surrogate/tests/test_one_input.py +++ b/brainpy/math/surrogate/tests/test_one_input.py @@ -16,8 +16,8 @@ import jax from absl.testing import parameterized -import brainpy.version2.math as bm -from brainpy.version2.math.surrogate import _one_input as one_input +import brainpy.math as bm +from brainpy.math.surrogate import _one_input as one_input class TestOneInputGrad(parameterized.TestCase): diff --git a/brainpy/version2/math/surrogate/tests/test_two_inputs.py b/brainpy/math/surrogate/tests/test_two_inputs.py similarity index 95% rename from brainpy/version2/math/surrogate/tests/test_two_inputs.py rename to brainpy/math/surrogate/tests/test_two_inputs.py index ffa98f04f..1471c8b55 100644 --- a/brainpy/version2/math/surrogate/tests/test_two_inputs.py +++ b/brainpy/math/surrogate/tests/test_two_inputs.py @@ -16,8 +16,8 @@ import jax from absl.testing import parameterized -import brainpy.version2.math as bm -from brainpy.version2.math.surrogate import _two_inputs as two_inputs +import brainpy.math as bm +from brainpy.math.surrogate import _two_inputs as two_inputs class TestTwoInputsGrad(parameterized.TestCase): diff --git a/brainpy/version2/math/tests/test_array_format.py b/brainpy/math/tests/test_array_format.py similarity index 96% rename from brainpy/version2/math/tests/test_array_format.py rename to brainpy/math/tests/test_array_format.py index bcbf98ac2..66cbf2018 100644 --- a/brainpy/version2/math/tests/test_array_format.py +++ b/brainpy/math/tests/test_array_format.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import brainpy.version2.math as bm +import brainpy.math as bm def test_format(): diff --git a/brainpy/version2/math/tests/test_compat_pytorch.py b/brainpy/math/tests/test_compat_pytorch.py similarity index 95% rename from brainpy/version2/math/tests/test_compat_pytorch.py rename to brainpy/math/tests/test_compat_pytorch.py index 92bf73e42..eea641b6e 100644 --- a/brainpy/version2/math/tests/test_compat_pytorch.py +++ b/brainpy/math/tests/test_compat_pytorch.py @@ -15,9 +15,9 @@ # ============================================================================== import unittest -import brainpy.version2.math as bm -import brainpy.version2.math.compat_pytorch as torch -from brainpy.version2.math import compat_pytorch +import brainpy.math as bm +import brainpy.math.compat_pytorch as torch +from brainpy.math import compat_pytorch class TestFlatten(unittest.TestCase): diff --git a/brainpy/version2/math/tests/test_defaults.py b/brainpy/math/tests/test_defaults.py similarity index 98% rename from brainpy/version2/math/tests/test_defaults.py rename to brainpy/math/tests/test_defaults.py index 0c313922b..861b29ff3 100644 --- a/brainpy/version2/math/tests/test_defaults.py +++ b/brainpy/math/tests/test_defaults.py @@ -14,7 +14,7 @@ # ============================================================================== import unittest -import brainpy.version2.math as bm +import brainpy.math as bm class TestDefaults(unittest.TestCase): diff --git a/brainpy/version2/math/tests/test_delay_vars.py b/brainpy/math/tests/test_delay_vars.py similarity index 98% rename from brainpy/version2/math/tests/test_delay_vars.py rename to brainpy/math/tests/test_delay_vars.py index 0dccae839..6405c78f3 100644 --- a/brainpy/version2/math/tests/test_delay_vars.py +++ b/brainpy/math/tests/test_delay_vars.py @@ -17,8 +17,8 @@ import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2.math.delayvars import ROTATE_UPDATE, CONCAT_UPDATE +import brainpy.math as bm +from brainpy.math.delayvars import ROTATE_UPDATE, CONCAT_UPDATE class TestTimeDelay(unittest.TestCase): diff --git a/brainpy/version2/math/tests/test_einops.py b/brainpy/math/tests/test_einops.py similarity index 98% rename from brainpy/version2/math/tests/test_einops.py rename to brainpy/math/tests/test_einops.py index 8b29e85e1..55b747a90 100644 --- a/brainpy/version2/math/tests/test_einops.py +++ b/brainpy/math/tests/test_einops.py @@ -15,9 +15,9 @@ import numpy import pytest -import brainpy.version2.math as bm -from brainpy.version2.math.einops import ein_rearrange, ein_reduce, ein_repeat, _enumerate_directions -from brainpy.version2.math.einops_parsing import EinopsError +import brainpy.math as bm +from brainpy.math.einops import ein_rearrange, ein_reduce, ein_repeat, _enumerate_directions +from brainpy.math.einops_parsing import EinopsError REDUCTIONS = ("min", "max", "sum", "mean", "prod") diff --git a/brainpy/version2/math/tests/test_einops_parsing.py b/brainpy/math/tests/test_einops_parsing.py similarity index 97% rename from brainpy/version2/math/tests/test_einops_parsing.py rename to brainpy/math/tests/test_einops_parsing.py index 95fde1b01..46bad3f89 100644 --- a/brainpy/version2/math/tests/test_einops_parsing.py +++ b/brainpy/math/tests/test_einops_parsing.py @@ -14,7 +14,7 @@ # ============================================================================== import pytest -from brainpy.version2.math.einops_parsing import EinopsError, ParsedExpression, AnonymousAxis, _ellipsis +from brainpy.math.einops_parsing import EinopsError, ParsedExpression, AnonymousAxis, _ellipsis class AnonymousAxisPlaceholder: diff --git a/brainpy/version2/math/tests/test_environment.py b/brainpy/math/tests/test_environment.py similarity index 97% rename from brainpy/version2/math/tests/test_environment.py rename to brainpy/math/tests/test_environment.py index 97f1c7403..aee20e77a 100644 --- a/brainpy/version2/math/tests/test_environment.py +++ b/brainpy/math/tests/test_environment.py @@ -16,7 +16,7 @@ import jax -import brainpy.version2.math as bm +import brainpy.math as bm class TestEnvironment(unittest.TestCase): diff --git a/brainpy/version2/math/tests/test_ndarray.py b/brainpy/math/tests/test_ndarray.py similarity index 98% rename from brainpy/version2/math/tests/test_ndarray.py rename to brainpy/math/tests/test_ndarray.py index c6a6e577b..8a8b6f8bf 100644 --- a/brainpy/version2/math/tests/test_ndarray.py +++ b/brainpy/math/tests/test_ndarray.py @@ -20,8 +20,8 @@ import numpy as np from jax.tree_util import tree_flatten, tree_unflatten -import brainpy.version2.math as bm -from brainpy.version2.math import Variable +import brainpy.math as bm +from brainpy.math import Variable class TestJaxArray(unittest.TestCase): diff --git a/brainpy/version2/math/tests/test_numpy_einsum.py b/brainpy/math/tests/test_numpy_einsum.py similarity index 99% rename from brainpy/version2/math/tests/test_numpy_einsum.py rename to brainpy/math/tests/test_numpy_einsum.py index 7a0be3d46..8594ecba9 100644 --- a/brainpy/version2/math/tests/test_numpy_einsum.py +++ b/brainpy/math/tests/test_numpy_einsum.py @@ -31,7 +31,7 @@ from jax import lax from jax.config import config -import brainpy.version2.math as bm +import brainpy.math as bm config.parse_flags_with_absl() diff --git a/brainpy/version2/math/tests/test_numpy_indexing.py b/brainpy/math/tests/test_numpy_indexing.py similarity index 99% rename from brainpy/version2/math/tests/test_numpy_indexing.py rename to brainpy/math/tests/test_numpy_indexing.py index 2ab208278..6861bcfec 100644 --- a/brainpy/version2/math/tests/test_numpy_indexing.py +++ b/brainpy/math/tests/test_numpy_indexing.py @@ -36,7 +36,7 @@ from jax._src import util from jax._src.lax import lax as lax_internal from jax.config import config -import brainpy.version2.math as bm +import brainpy.math as bm config.parse_flags_with_absl() diff --git a/brainpy/version2/math/tests/test_numpy_ops.py b/brainpy/math/tests/test_numpy_ops.py similarity index 99% rename from brainpy/version2/math/tests/test_numpy_ops.py rename to brainpy/math/tests/test_numpy_ops.py index 66f30e97d..e866bf947 100644 --- a/brainpy/version2/math/tests/test_numpy_ops.py +++ b/brainpy/math/tests/test_numpy_ops.py @@ -53,7 +53,7 @@ from jax._src.numpy.util import _parse_numpydoc, ParsedDoc, _wraps from jax._src.util import prod, safe_zip -import brainpy.version2.math as bm +import brainpy.math as bm from jax.config import config diff --git a/brainpy/version2/math/tests/test_oprators.py b/brainpy/math/tests/test_oprators.py similarity index 98% rename from brainpy/version2/math/tests/test_oprators.py rename to brainpy/math/tests/test_oprators.py index 2aff91fdb..3198df7f2 100644 --- a/brainpy/version2/math/tests/test_oprators.py +++ b/brainpy/math/tests/test_oprators.py @@ -17,13 +17,13 @@ import jax.numpy as jnp -import brainpy.version2.math as bm +import brainpy.math as bm # class TestRegisterOP(unittest.TestCase): # def test_register_op(self): # from jax import jit -# import brainpy.version2 as bp +# import brainpy as bp # bp.math.set_platform('cpu') # # def abs_eval(*ins): diff --git a/brainpy/version2/math/tests/test_others.py b/brainpy/math/tests/test_others.py similarity index 97% rename from brainpy/version2/math/tests/test_others.py rename to brainpy/math/tests/test_others.py index dda416478..239df1dbe 100644 --- a/brainpy/version2/math/tests/test_others.py +++ b/brainpy/math/tests/test_others.py @@ -16,7 +16,7 @@ from scipy.special import exprel -import brainpy.version2.math as bm +import brainpy.math as bm class Test_exprel(TestCase): diff --git a/brainpy/version2/math/tests/test_random.py b/brainpy/math/tests/test_random.py similarity index 99% rename from brainpy/version2/math/tests/test_random.py rename to brainpy/math/tests/test_random.py index 5365ceafa..a7e09d498 100644 --- a/brainpy/version2/math/tests/test_random.py +++ b/brainpy/math/tests/test_random.py @@ -20,8 +20,8 @@ import numpy as np import pytest -import brainpy.version2.math as bm -from brainpy.version2.math import random as br +import brainpy.math as bm +from brainpy.math import random as br class TestRandom(unittest.TestCase): diff --git a/brainpy/version2/math/tests/test_tifunc.py b/brainpy/math/tests/test_tifunc.py similarity index 99% rename from brainpy/version2/math/tests/test_tifunc.py rename to brainpy/math/tests/test_tifunc.py index d71450aec..b442eb49c 100644 --- a/brainpy/version2/math/tests/test_tifunc.py +++ b/brainpy/math/tests/test_tifunc.py @@ -18,7 +18,7 @@ import pytest pytestmark = pytest.mark.skip(reason="Skipped due to MacOS limitation, manual execution required for testing.") -import brainpy.version2.math as bm +import brainpy.math as bm import matplotlib.pyplot as plt import os diff --git a/brainpy/version2/measure.py b/brainpy/measure.py similarity index 98% rename from brainpy/version2/measure.py rename to brainpy/measure.py index 0c879f446..71c1c2771 100644 --- a/brainpy/version2/measure.py +++ b/brainpy/measure.py @@ -18,7 +18,7 @@ import jax.numpy as jnp import numpy as onp -from brainpy.version2 import math as bm +from brainpy import math as bm __all__ = [ 'cross_correlation', diff --git a/brainpy/mixin.py b/brainpy/mixin.py index df0eedec7..6df0f6e6b 100644 --- a/brainpy/mixin.py +++ b/brainpy/mixin.py @@ -48,7 +48,7 @@ def _get_bm(): global bm if bm is None: - from brainpy.version2 import math + from brainpy import math bm = math return bm @@ -213,8 +213,8 @@ def unbind_cond(self): def _get_delay_tool(): global delay_identifier, init_delay_by_return - if init_delay_by_return is None: from brainpy.version2.delay import init_delay_by_return - if delay_identifier is None: from brainpy.version2.delay import delay_identifier + if init_delay_by_return is None: from brainpy.delay import init_delay_by_return + if delay_identifier is None: from brainpy.delay import delay_identifier return delay_identifier, init_delay_by_return @@ -268,7 +268,7 @@ def __getattr__(self, item): return super().__getattribute__(item) def __repr__(self): - from brainpy.version2 import tools + from brainpy import tools cls_name = self.__class__.__name__ indent = ' ' * len(cls_name) child_str = [tools.repr_context(repr(val), indent) for val in self.children.values()] @@ -280,7 +280,7 @@ def __get_elem_name(self, elem): if isinstance(elem, bm.BrainPyObject): return elem.name else: - from brainpy.version2.math.object_transform.base import get_unique_name + from brainpy.math.object_transform.base import get_unique_name return get_unique_name('ContainerElem') def format_elements(self, child_type: type, *children_as_tuple, **children_as_dict): @@ -333,7 +333,7 @@ class TreeNode(MixIn): def check_hierarchies(self, root, *leaves, **named_leaves): global DynamicalSystem if DynamicalSystem is None: - from brainpy.version2.dynsys import DynamicalSystem + from brainpy.dynsys import DynamicalSystem for leaf in leaves: if isinstance(leaf, DynamicalSystem): diff --git a/brainpy/version2/neurons.py b/brainpy/neurons.py similarity index 88% rename from brainpy/version2/neurons.py rename to brainpy/neurons.py index d7968f264..6b1ce431a 100644 --- a/brainpy/version2/neurons.py +++ b/brainpy/neurons.py @@ -14,24 +14,24 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dyn`` module instead. """ -from brainpy.version2.dynold.neurons.biological_models import ( +from brainpy.dynold.neurons.biological_models import ( HH as HH, MorrisLecar as MorrisLecar, PinskyRinzelModel as PinskyRinzelModel, WangBuzsakiModel as WangBuzsakiModel, ) -from brainpy.version2.dynold.neurons.fractional_models import ( +from brainpy.dynold.neurons.fractional_models import ( FractionalNeuron as FractionalNeuron, FractionalFHR as FractionalFHR, FractionalIzhikevich as FractionalIzhikevich, ) -from brainpy.version2.dynold.neurons.reduced_models import ( +from brainpy.dynold.neurons.reduced_models import ( LeakyIntegrator as LeakyIntegrator, LIF as LIF, ExpIF as ExpIF, @@ -45,7 +45,7 @@ FHN as FHN, LIF_SFA_Bellec2020, ) -from brainpy.version2.dyn.others import ( +from brainpy.dyn.others import ( InputGroup as InputGroup, OutputGroup as OutputGroup, SpikeTimeGroup as SpikeTimeGroup, diff --git a/brainpy/version2/optim/__init__.py b/brainpy/optim/__init__.py similarity index 100% rename from brainpy/version2/optim/__init__.py rename to brainpy/optim/__init__.py diff --git a/brainpy/version2/optim/optimizer.py b/brainpy/optim/optimizer.py similarity index 99% rename from brainpy/version2/optim/optimizer.py rename to brainpy/optim/optimizer.py index e2e10ddee..584ef57e7 100644 --- a/brainpy/version2/optim/optimizer.py +++ b/brainpy/optim/optimizer.py @@ -19,10 +19,10 @@ import jax.numpy as jnp from jax.lax import cond -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import MathError -from brainpy.version2 import check -from brainpy.version2.math.object_transform.base import BrainPyObject, ArrayCollector +from brainpy import check +from brainpy.math.object_transform.base import BrainPyObject, ArrayCollector from .scheduler import make_schedule, Scheduler __all__ = [ diff --git a/brainpy/version2/optim/scheduler.py b/brainpy/optim/scheduler.py similarity index 99% rename from brainpy/version2/optim/scheduler.py rename to brainpy/optim/scheduler.py index 04a998c74..4a43c3e34 100644 --- a/brainpy/version2/optim/scheduler.py +++ b/brainpy/optim/scheduler.py @@ -19,11 +19,11 @@ import jax import jax.numpy as jnp -import brainpy.version2.math as bm +import brainpy.math as bm import brainstate from brainpy._errors import MathError -from brainpy.version2 import check -from brainpy.version2.math.object_transform.base import BrainPyObject +from brainpy import check +from brainpy.math.object_transform.base import BrainPyObject # learning rate schedules # diff --git a/brainpy/version2/optim/tests/test_ModifyLr.py b/brainpy/optim/tests/test_ModifyLr.py similarity index 97% rename from brainpy/version2/optim/tests/test_ModifyLr.py rename to brainpy/optim/tests/test_ModifyLr.py index 480e97d6e..cb7026950 100644 --- a/brainpy/version2/optim/tests/test_ModifyLr.py +++ b/brainpy/optim/tests/test_ModifyLr.py @@ -15,8 +15,8 @@ from absl.testing import absltest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm dt = 0.04 num_step = int(1.0 / dt) diff --git a/brainpy/version2/optim/tests/test_scheduler.py b/brainpy/optim/tests/test_scheduler.py similarity index 98% rename from brainpy/version2/optim/tests/test_scheduler.py rename to brainpy/optim/tests/test_scheduler.py index dcb167c13..cd86cf8f2 100644 --- a/brainpy/version2/optim/tests/test_scheduler.py +++ b/brainpy/optim/tests/test_scheduler.py @@ -20,8 +20,8 @@ import pytest from absl.testing import parameterized -import brainpy.version2.math as bm -from brainpy.version2.optim import scheduler +import brainpy.math as bm +from brainpy.optim import scheduler show = False diff --git a/brainpy/version2/rates.py b/brainpy/rates.py similarity index 96% rename from brainpy/version2/rates.py rename to brainpy/rates.py index 5a10a91bd..955c8b6d5 100644 --- a/brainpy/version2/rates.py +++ b/brainpy/rates.py @@ -14,7 +14,7 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dyn`` module instead. """ from .dyn.rates import * diff --git a/brainpy/version2/runners.py b/brainpy/runners.py similarity index 98% rename from brainpy/version2/runners.py rename to brainpy/runners.py index 2c385498b..2e7d2bdd6 100644 --- a/brainpy/version2/runners.py +++ b/brainpy/runners.py @@ -26,13 +26,13 @@ import brainstate.environ from brainpy._errors import RunningError -from brainpy.version2 import math as bm, tools -from brainpy.version2.context import share -from brainpy.version2.deprecations import _input_deprecate_msg -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.helpers import clear_input -from brainpy.version2.running.runner import Runner -from brainpy.version2.types import Output, Monitor +from brainpy import math as bm, tools +from brainpy.context import share +from brainpy.deprecations import _input_deprecate_msg +from brainpy.dynsys import DynamicalSystem +from brainpy.helpers import clear_input +from brainpy.running.runner import Runner +from brainpy.types import Output, Monitor __all__ = [ 'DSRunner', diff --git a/brainpy/version2/running/__init__.py b/brainpy/running/__init__.py similarity index 100% rename from brainpy/version2/running/__init__.py rename to brainpy/running/__init__.py diff --git a/brainpy/version2/running/constants.py b/brainpy/running/constants.py similarity index 100% rename from brainpy/version2/running/constants.py rename to brainpy/running/constants.py diff --git a/brainpy/version2/running/jax_multiprocessing.py b/brainpy/running/jax_multiprocessing.py similarity index 97% rename from brainpy/version2/running/jax_multiprocessing.py rename to brainpy/running/jax_multiprocessing.py index 246122240..afcc52e89 100644 --- a/brainpy/version2/running/jax_multiprocessing.py +++ b/brainpy/running/jax_multiprocessing.py @@ -19,8 +19,8 @@ from jax import vmap, pmap from jax.tree_util import tree_unflatten, tree_flatten -import brainpy.version2.math as bm -from brainpy.version2.types import ArrayType +import brainpy.math as bm +from brainpy.types import ArrayType __all__ = [ 'jax_vectorize_map', @@ -103,7 +103,7 @@ def jax_parallelize_map( This function can be used in multi- CPU or GPU backends. If you are using it in a single CPU, please set host device count - by ``brainpy.version2.math.set_host_device_count(n)`` before. + by ``brainpy.math.set_host_device_count(n)`` before. Parameters:: diff --git a/brainpy/version2/running/native_multiprocessing.py b/brainpy/running/native_multiprocessing.py similarity index 100% rename from brainpy/version2/running/native_multiprocessing.py rename to brainpy/running/native_multiprocessing.py diff --git a/brainpy/version2/running/pathos_multiprocessing.py b/brainpy/running/pathos_multiprocessing.py similarity index 98% rename from brainpy/version2/running/pathos_multiprocessing.py rename to brainpy/running/pathos_multiprocessing.py index 618a2ccae..045af1cdd 100644 --- a/brainpy/version2/running/pathos_multiprocessing.py +++ b/brainpy/running/pathos_multiprocessing.py @@ -142,8 +142,8 @@ def cpu_ordered_parallel( Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import numpy as np >>> >>> def simulate(inp): @@ -200,8 +200,8 @@ def cpu_unordered_parallel( Examples:: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import numpy as np >>> >>> def simulate(inp): diff --git a/brainpy/version2/running/runner.py b/brainpy/running/runner.py similarity index 98% rename from brainpy/version2/running/runner.py rename to brainpy/running/runner.py index d63bdf91f..85afc11e9 100644 --- a/brainpy/version2/running/runner.py +++ b/brainpy/running/runner.py @@ -20,9 +20,9 @@ import numpy as np from brainpy._errors import MonitorError, RunningError -from brainpy.version2 import math as bm, check -from brainpy.version2.math.object_transform.base import BrainPyObject -from brainpy.version2.tools import DotDict +from brainpy import math as bm, check +from brainpy.math.object_transform.base import BrainPyObject +from brainpy.tools import DotDict from . import constants as C __all__ = [ diff --git a/brainpy/version2/running/tests/test_pathos_multiprocessing.py b/brainpy/running/tests/test_pathos_multiprocessing.py similarity index 96% rename from brainpy/version2/running/tests/test_pathos_multiprocessing.py rename to brainpy/running/tests/test_pathos_multiprocessing.py index a25144569..5e2c1f174 100644 --- a/brainpy/version2/running/tests/test_pathos_multiprocessing.py +++ b/brainpy/running/tests/test_pathos_multiprocessing.py @@ -18,8 +18,8 @@ import pytest from absl.testing import parameterized -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm if sys.platform == 'win32' and sys.version_info.minor >= 11: pytest.skip('python 3.11 does not support.', allow_module_level=True) diff --git a/brainpy/state_based/__init__.py b/brainpy/state_based/__init__.py new file mode 100644 index 000000000..f060b29b4 --- /dev/null +++ b/brainpy/state_based/__init__.py @@ -0,0 +1,45 @@ +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +from ._base import * +from ._base import __all__ as base_all +from ._exponential import * +from ._exponential import __all__ as exp_all +from ._inputs import * +from ._inputs import __all__ as inputs_all +from ._lif import * +from ._lif import __all__ as neuron_all +from ._projection import * +from ._projection import __all__ as proj_all +from ._readout import * +from ._readout import __all__ as readout_all +from ._stp import * +from ._stp import __all__ as stp_all +from ._synapse import * +from ._synapse import __all__ as synapse_all +from ._synaptic_projection import * +from ._synaptic_projection import __all__ as synproj_all +from ._synouts import * +from ._synouts import __all__ as synout_all +from .. import mixin + +__main__ = ['version2', 'mixin'] + inputs_all + neuron_all + readout_all + stp_all + synapse_all +__main__ = __main__ + synout_all + base_all + exp_all + proj_all + synproj_all +del inputs_all, neuron_all, readout_all, stp_all, synapse_all, synout_all, base_all +del exp_all, proj_all, synproj_all + +if __name__ == '__main__': + mixin diff --git a/brainpy/_base.py b/brainpy/state_based/_base.py similarity index 98% rename from brainpy/_base.py rename to brainpy/state_based/_base.py index 19ca54b7b..f7fd19f55 100644 --- a/brainpy/_base.py +++ b/brainpy/state_based/_base.py @@ -15,9 +15,8 @@ from typing import Callable, Optional -import braintools - import brainstate +import braintools __all__ = [ 'Neuron', 'Synapse', @@ -315,7 +314,7 @@ class Synapse(brainstate.nn.Dynamics): .. code-block:: python - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> import braintools @@ -344,7 +343,7 @@ class Synapse(brainstate.nn.Dynamics): .. code-block:: python - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> import jax @@ -369,7 +368,7 @@ class Synapse(brainstate.nn.Dynamics): .. code-block:: python - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> @@ -410,7 +409,7 @@ class Synapse(brainstate.nn.Dynamics): .. code-block:: python - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> diff --git a/brainpy/_base_test.py b/brainpy/state_based/_base_test.py similarity index 99% rename from brainpy/_base_test.py rename to brainpy/state_based/_base_test.py index ae49cb94f..ffe178c43 100644 --- a/brainpy/_base_test.py +++ b/brainpy/state_based/_base_test.py @@ -15,12 +15,12 @@ import unittest +import brainstate import braintools import brainunit as u import jax.numpy as jnp -import brainstate -from brainpy._base import Neuron, Synapse +from brainpy.state_based import Neuron, Synapse class TestNeuronBaseClass(unittest.TestCase): diff --git a/brainpy/_exponential.py b/brainpy/state_based/_exponential.py similarity index 99% rename from brainpy/_exponential.py rename to brainpy/state_based/_exponential.py index 7bbee291c..1f0ff1b04 100644 --- a/brainpy/_exponential.py +++ b/brainpy/state_based/_exponential.py @@ -18,13 +18,13 @@ from typing import Optional, Callable +import brainstate import braintools import brainunit as u - -import brainstate from brainstate.typing import Size, ArrayLike + +from brainpy.mixin import AlignPost from ._base import Synapse -from .mixin import AlignPost __all__ = [ 'Expon', 'DualExpon', diff --git a/brainpy/_inputs.py b/brainpy/state_based/_inputs.py similarity index 99% rename from brainpy/_inputs.py rename to brainpy/state_based/_inputs.py index e73e06317..6ab87a85e 100644 --- a/brainpy/_inputs.py +++ b/brainpy/state_based/_inputs.py @@ -15,15 +15,15 @@ from typing import Union, Optional, Sequence, Callable +import brainstate import braintools import brainunit as u import jax import numpy as np - -import brainstate -from brainpy._misc import set_module_as from brainstate.typing import ArrayLike, Size, DTypeLike +from ._misc import set_module_as + __all__ = [ 'SpikeTime', 'PoissonSpike', diff --git a/brainpy/_lif.py b/brainpy/state_based/_lif.py similarity index 99% rename from brainpy/_lif.py rename to brainpy/state_based/_lif.py index 27fcd75f7..430b57f42 100644 --- a/brainpy/_lif.py +++ b/brainpy/state_based/_lif.py @@ -17,12 +17,12 @@ from typing import Callable +import brainstate import braintools import brainunit as u import jax - -import brainstate from brainstate.typing import ArrayLike, Size + from ._base import Neuron __all__ = [ @@ -74,7 +74,7 @@ class IF(Neuron): Examples -------- - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> @@ -207,7 +207,7 @@ class LIF(Neuron): Examples -------- - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> @@ -344,7 +344,7 @@ class LIFRef(Neuron): Examples -------- - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> @@ -512,7 +512,7 @@ class ALIF(Neuron): Examples -------- - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainstate >>> import brainunit as u >>> diff --git a/brainpy/_lif_test.py b/brainpy/state_based/_lif_test.py similarity index 99% rename from brainpy/_lif_test.py rename to brainpy/state_based/_lif_test.py index 1a00c0da4..1d7aabf46 100644 --- a/brainpy/_lif_test.py +++ b/brainpy/state_based/_lif_test.py @@ -18,12 +18,12 @@ import unittest +import brainstate import brainunit as u import jax import jax.numpy as jnp -import brainstate -from brainpy import IF, LIF, ALIF +from brainpy.state_based import IF, LIF, ALIF class TestNeuron(unittest.TestCase): diff --git a/brainpy/_misc.py b/brainpy/state_based/_misc.py similarity index 100% rename from brainpy/_misc.py rename to brainpy/state_based/_misc.py diff --git a/brainpy/_projection.py b/brainpy/state_based/_projection.py similarity index 98% rename from brainpy/_projection.py rename to brainpy/state_based/_projection.py index 13dfaa9c4..f716dc67e 100644 --- a/brainpy/_projection.py +++ b/brainpy/state_based/_projection.py @@ -17,18 +17,14 @@ from typing import Optional import brainevent - import brainstate from brainstate._state import State from brainstate.mixin import JointTypes, ParamDescriber from brainstate.nn._dynamics import maybe_init_prefetch -from ._synouts import SynOut -from .mixin import BindCondData, AlignPost +from brainstate.util import get_unique_name -if brainstate.__version__ < '0.2.0': - from brainstate.util.others import get_unique_name -else: - from brainstate.util import get_unique_name +from brainpy.mixin import BindCondData, AlignPost +from ._synouts import SynOut __all__ = [ 'Projection', diff --git a/brainpy/_readout.py b/brainpy/state_based/_readout.py similarity index 100% rename from brainpy/_readout.py rename to brainpy/state_based/_readout.py index 0a3795dfb..3775220a9 100644 --- a/brainpy/_readout.py +++ b/brainpy/state_based/_readout.py @@ -19,12 +19,12 @@ import numbers from typing import Callable +import brainstate import braintools import brainunit as u import jax - -import brainstate from brainstate.typing import Size, ArrayLike + from ._base import Neuron __all__ = [ diff --git a/brainpy/_readout_test.py b/brainpy/state_based/_readout_test.py similarity index 98% rename from brainpy/_readout_test.py rename to brainpy/state_based/_readout_test.py index 927d9e3c3..c9ba068c3 100644 --- a/brainpy/_readout_test.py +++ b/brainpy/state_based/_readout_test.py @@ -16,12 +16,12 @@ import unittest +import brainstate import braintools import brainunit as u import jax.numpy as jnp -import brainpy -import brainstate +import brainpy.state_based as brainpy class TestReadoutModels(unittest.TestCase): diff --git a/brainpy/_stp.py b/brainpy/state_based/_stp.py similarity index 100% rename from brainpy/_stp.py rename to brainpy/state_based/_stp.py index 350496b07..8442bdd56 100644 --- a/brainpy/_stp.py +++ b/brainpy/state_based/_stp.py @@ -17,11 +17,11 @@ from typing import Optional +import brainstate import braintools import brainunit as u - -import brainstate from brainstate.typing import ArrayLike, Size + from ._base import Synapse __all__ = [ diff --git a/brainpy/_synapse.py b/brainpy/state_based/_synapse.py similarity index 100% rename from brainpy/_synapse.py rename to brainpy/state_based/_synapse.py index aec415ef1..625d479ac 100644 --- a/brainpy/_synapse.py +++ b/brainpy/state_based/_synapse.py @@ -18,11 +18,11 @@ from typing import Optional, Callable +import brainstate import braintools import brainunit as u - -import brainstate from brainstate.typing import Size, ArrayLike + from ._base import Synapse __all__ = [ diff --git a/brainpy/_synapse_test.py b/brainpy/state_based/_synapse_test.py similarity index 99% rename from brainpy/_synapse_test.py rename to brainpy/state_based/_synapse_test.py index 95bba6640..7af8500a6 100644 --- a/brainpy/_synapse_test.py +++ b/brainpy/state_based/_synapse_test.py @@ -16,12 +16,12 @@ import unittest +import brainstate import brainunit as u import jax.numpy as jnp import pytest -import brainstate -from brainpy import Expon, STP, STD +from brainpy.state_based import Expon, STP, STD class TestSynapse(unittest.TestCase): diff --git a/brainpy/_synaptic_projection.py b/brainpy/state_based/_synaptic_projection.py similarity index 99% rename from brainpy/_synaptic_projection.py rename to brainpy/state_based/_synaptic_projection.py index e7645ab02..6249eae6c 100644 --- a/brainpy/_synaptic_projection.py +++ b/brainpy/state_based/_synaptic_projection.py @@ -17,11 +17,11 @@ from typing import Callable, Union, Tuple +import brainstate import braintools import brainunit as u - -import brainstate from brainstate.typing import ArrayLike + from ._projection import Projection __all__ = [ @@ -247,7 +247,7 @@ class AsymmetryGapJunction(Projection): Examples -------- - >>> import brainpy + >>> import brainpy.state_based as brainpy >>> import brainunit as u >>> import numpy as np >>> diff --git a/brainpy/_synouts.py b/brainpy/state_based/_synouts.py similarity index 99% rename from brainpy/_synouts.py rename to brainpy/state_based/_synouts.py index e8cf466be..54605e528 100644 --- a/brainpy/_synouts.py +++ b/brainpy/state_based/_synouts.py @@ -15,11 +15,11 @@ # -*- coding: utf-8 -*- +import brainstate import brainunit as u import jax.numpy as jnp -import brainstate -from .mixin import BindCondData +from brainpy.mixin import BindCondData __all__ = [ 'SynOut', 'COBA', 'CUBA', 'MgBlock', diff --git a/brainpy/_synouts_test.py b/brainpy/state_based/_synouts_test.py similarity index 98% rename from brainpy/_synouts_test.py rename to brainpy/state_based/_synouts_test.py index d52c38e6d..0d55b13a7 100644 --- a/brainpy/_synouts_test.py +++ b/brainpy/state_based/_synouts_test.py @@ -20,7 +20,7 @@ import jax.numpy as jnp import numpy as np -import brainpy +import brainpy.state_based as brainpy class TestSynOutModels(unittest.TestCase): diff --git a/brainpy/version2/synapses.py b/brainpy/synapses.py similarity index 78% rename from brainpy/version2/synapses.py rename to brainpy/synapses.py index 9775da93e..09ba55119 100644 --- a/brainpy/version2/synapses.py +++ b/brainpy/synapses.py @@ -14,31 +14,31 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dyn`` module instead. """ -from brainpy.version2.dyn.synapses.delay_couplings import ( +from brainpy.dyn.synapses.delay_couplings import ( DiffusiveCoupling, AdditiveCoupling, ) -from brainpy.version2.dynold.synapses.abstract_models import ( +from brainpy.dynold.synapses.abstract_models import ( Delta as Delta, Exponential as Exponential, DualExponential as DualExponential, Alpha as Alpha, NMDA as NMDA, ) -from brainpy.version2.dynold.synapses.base import ( +from brainpy.dynold.synapses.base import ( _SynSTP as SynSTP, _SynOut as SynOut, TwoEndConn as TwoEndConn, ) -from brainpy.version2.dynold.synapses.biological_models import ( +from brainpy.dynold.synapses.biological_models import ( AMPA as AMPA, GABAa as GABAa, BioNMDA as BioNMDA, ) -from brainpy.version2.dynold.synapses.compat import ( +from brainpy.dynold.synapses.compat import ( DeltaSynapse as DeltaSynapse, ExpCUBA as ExpCUBA, ExpCOBA as ExpCOBA, @@ -47,10 +47,10 @@ AlphaCUBA as AlphaCUBA, AlphaCOBA as AlphaCOBA, ) -from brainpy.version2.dynold.synapses.gap_junction import ( +from brainpy.dynold.synapses.gap_junction import ( GapJunction ) -from brainpy.version2.dynold.synapses.learning_rules import ( +from brainpy.dynold.synapses.learning_rules import ( STP as STP, ) diff --git a/brainpy/version2/synouts.py b/brainpy/synouts.py similarity index 86% rename from brainpy/version2/synouts.py rename to brainpy/synouts.py index dd51c1908..5212630d0 100644 --- a/brainpy/version2/synouts.py +++ b/brainpy/synouts.py @@ -14,14 +14,14 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dyn`` module instead. """ -from brainpy.version2.dynold.synouts.conductances import ( +from brainpy.dynold.synouts.conductances import ( COBA as COBA, CUBA as CUBA, ) -from brainpy.version2.dynold.synouts.ions import ( +from brainpy.dynold.synouts.ions import ( MgBlock as MgBlock, ) diff --git a/brainpy/version2/synplast.py b/brainpy/synplast.py similarity index 89% rename from brainpy/version2/synplast.py rename to brainpy/synplast.py index 9b7d07f62..bcd4f9ae5 100644 --- a/brainpy/version2/synplast.py +++ b/brainpy/synplast.py @@ -14,10 +14,10 @@ # limitations under the License. # ============================================================================== """ -This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. +This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.dyn`` module instead. """ -from brainpy.version2.dynold.synplast.short_term_plasticity import ( +from brainpy.dynold.synplast.short_term_plasticity import ( STD as STD, STP as STP, ) diff --git a/brainpy/version2/tests/test_access_methods.py b/brainpy/tests/test_access_methods.py similarity index 99% rename from brainpy/version2/tests/test_access_methods.py rename to brainpy/tests/test_access_methods.py index eac2ce698..e5a0ac7ba 100644 --- a/brainpy/version2/tests/test_access_methods.py +++ b/brainpy/tests/test_access_methods.py @@ -15,7 +15,7 @@ # ============================================================================== import jax.numpy as jnp -import brainpy.version2 as bp +import brainpy as bp bp.ode.set_default_odeint('rk4') diff --git a/brainpy/version2/tests/test_base_classes.py b/brainpy/tests/test_base_classes.py similarity index 98% rename from brainpy/version2/tests/test_base_classes.py rename to brainpy/tests/test_base_classes.py index ec35ad08c..3a642fff4 100644 --- a/brainpy/version2/tests/test_base_classes.py +++ b/brainpy/tests/test_base_classes.py @@ -15,7 +15,7 @@ # ============================================================================== import unittest -import brainpy.version2 as bp +import brainpy as bp class TestDynamicalSystem(unittest.TestCase): diff --git a/brainpy/version2/tests/test_check.py b/brainpy/tests/test_check.py similarity index 97% rename from brainpy/version2/tests/test_check.py rename to brainpy/tests/test_check.py index d7da4e7d2..e5bb713c6 100644 --- a/brainpy/version2/tests/test_check.py +++ b/brainpy/tests/test_check.py @@ -15,7 +15,7 @@ # ============================================================================== import unittest -from brainpy.version2 import check as checking +from brainpy import check as checking class TestUtils(unittest.TestCase): diff --git a/brainpy/version2/tests/test_delay.py b/brainpy/tests/test_delay.py similarity index 98% rename from brainpy/version2/tests/test_delay.py rename to brainpy/tests/test_delay.py index 678e31259..b42199b69 100644 --- a/brainpy/version2/tests/test_delay.py +++ b/brainpy/tests/test_delay.py @@ -16,7 +16,7 @@ import jax.numpy as jnp -import brainpy.version2 as bp +import brainpy as bp class TestVarDelay(unittest.TestCase): diff --git a/brainpy/version2/tests/test_dyn_runner.py b/brainpy/tests/test_dyn_runner.py similarity index 98% rename from brainpy/version2/tests/test_dyn_runner.py rename to brainpy/tests/test_dyn_runner.py index 60d8bc08c..94ed8ee98 100644 --- a/brainpy/version2/tests/test_dyn_runner.py +++ b/brainpy/tests/test_dyn_runner.py @@ -15,8 +15,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestDSRunner(unittest.TestCase): diff --git a/brainpy/version2/tests/test_dynsys.py b/brainpy/tests/test_dynsys.py similarity index 98% rename from brainpy/version2/tests/test_dynsys.py rename to brainpy/tests/test_dynsys.py index 468052b17..328614290 100644 --- a/brainpy/version2/tests/test_dynsys.py +++ b/brainpy/tests/test_dynsys.py @@ -14,7 +14,7 @@ # ============================================================================== import unittest -import brainpy.version2 as bp +import brainpy as bp def test1(): diff --git a/brainpy/version2/tests/test_helper.py b/brainpy/tests/test_helper.py similarity index 97% rename from brainpy/version2/tests/test_helper.py rename to brainpy/tests/test_helper.py index a2ea49fda..523542f3a 100644 --- a/brainpy/version2/tests/test_helper.py +++ b/brainpy/tests/test_helper.py @@ -14,7 +14,7 @@ # ============================================================================== import unittest -import brainpy.version2 as bp +import brainpy as bp class TestResetLevel(unittest.TestCase): diff --git a/brainpy/version2/tests/test_mixin.py b/brainpy/tests/test_mixin.py similarity index 97% rename from brainpy/version2/tests/test_mixin.py rename to brainpy/tests/test_mixin.py index 18488147b..7d5a3d666 100644 --- a/brainpy/version2/tests/test_mixin.py +++ b/brainpy/tests/test_mixin.py @@ -14,8 +14,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestParamDesc(unittest.TestCase): diff --git a/brainpy/version2/tests/test_network.py b/brainpy/tests/test_network.py similarity index 98% rename from brainpy/version2/tests/test_network.py rename to brainpy/tests/test_network.py index fdebe2c09..6f8cefe62 100644 --- a/brainpy/version2/tests/test_network.py +++ b/brainpy/tests/test_network.py @@ -14,7 +14,7 @@ # ============================================================================== import unittest -import brainpy.version2 as bp +import brainpy as bp class TestNetDefinition(unittest.TestCase): diff --git a/brainpy/version2/tests/test_pickle.py b/brainpy/tests/test_pickle.py similarity index 97% rename from brainpy/version2/tests/test_pickle.py rename to brainpy/tests/test_pickle.py index 298810626..5b0506f3e 100644 --- a/brainpy/version2/tests/test_pickle.py +++ b/brainpy/tests/test_pickle.py @@ -16,7 +16,7 @@ import pickle import unittest -import brainpy.version2 as bp +import brainpy as bp class TestPickle(unittest.TestCase): diff --git a/brainpy/version2/tests/test_slice_view.py b/brainpy/tests/test_slice_view.py similarity index 96% rename from brainpy/version2/tests/test_slice_view.py rename to brainpy/tests/test_slice_view.py index 17acb099e..009417c53 100644 --- a/brainpy/version2/tests/test_slice_view.py +++ b/brainpy/tests/test_slice_view.py @@ -15,8 +15,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestSliceView(unittest.TestCase): diff --git a/brainpy/version2/tools/__init__.py b/brainpy/tools/__init__.py similarity index 100% rename from brainpy/version2/tools/__init__.py rename to brainpy/tools/__init__.py diff --git a/brainpy/version2/tools/codes.py b/brainpy/tools/codes.py similarity index 99% rename from brainpy/version2/tools/codes.py rename to brainpy/tools/codes.py index 31ef9feaf..0c4e74b48 100644 --- a/brainpy/version2/tools/codes.py +++ b/brainpy/tools/codes.py @@ -48,7 +48,7 @@ def repr_dict(dict_obj: dict): def repr_object(x): global BrainPyObject if BrainPyObject is None: - from brainpy.version2.math import BrainPyObject + from brainpy.math import BrainPyObject if isinstance(x, BrainPyObject): return repr(x) elif callable(x): diff --git a/brainpy/version2/tools/dicts.py b/brainpy/tools/dicts.py similarity index 99% rename from brainpy/version2/tools/dicts.py rename to brainpy/tools/dicts.py index b58a7d242..1d7c0d6f1 100644 --- a/brainpy/version2/tools/dicts.py +++ b/brainpy/tools/dicts.py @@ -146,7 +146,7 @@ def subset(self, var_type): ``subset()`` can be used to get a subset of some class: - >>> import brainpy.version2 as bp + >>> import brainpy as bp >>> >>> some_collector = DotDict() >>> diff --git a/brainpy/version2/tools/functions.py b/brainpy/tools/functions.py similarity index 100% rename from brainpy/version2/tools/functions.py rename to brainpy/tools/functions.py diff --git a/brainpy/version2/tools/install.py b/brainpy/tools/install.py similarity index 93% rename from brainpy/version2/tools/install.py rename to brainpy/tools/install.py index 690325597..5f82b0cf3 100644 --- a/brainpy/version2/tools/install.py +++ b/brainpy/tools/install.py @@ -30,6 +30,6 @@ Note that the versions of "jax" and "jaxlib" should be consistent, like "jax=0.3.14" and "jaxlib=0.3.14". -For more detail installation instructions, please see https://brainpy.version2.readthedocs.io/en/latest/quickstart/installation.html#dependency-2-jax +For more detail installation instructions, please see https://brainpy.readthedocs.io/en/latest/quickstart/installation.html#dependency-2-jax ''' diff --git a/brainpy/version2/tools/math_util.py b/brainpy/tools/math_util.py similarity index 100% rename from brainpy/version2/tools/math_util.py rename to brainpy/tools/math_util.py diff --git a/brainpy/version2/tools/others.py b/brainpy/tools/others.py similarity index 100% rename from brainpy/version2/tools/others.py rename to brainpy/tools/others.py diff --git a/brainpy/version2/tools/package.py b/brainpy/tools/package.py similarity index 100% rename from brainpy/version2/tools/package.py rename to brainpy/tools/package.py diff --git a/brainpy/version2/tools/progress.py b/brainpy/tools/progress.py similarity index 100% rename from brainpy/version2/tools/progress.py rename to brainpy/tools/progress.py diff --git a/brainpy/version2/tools/tests/test_functions.py b/brainpy/tools/tests/test_functions.py similarity index 94% rename from brainpy/version2/tools/tests/test_functions.py rename to brainpy/tools/tests/test_functions.py index ac479cf9f..e7e65551b 100644 --- a/brainpy/version2/tools/tests/test_functions.py +++ b/brainpy/tools/tests/test_functions.py @@ -14,8 +14,8 @@ # ============================================================================== import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class TestFunction(unittest.TestCase): diff --git a/brainpy/version2/train/__init__.py b/brainpy/train/__init__.py similarity index 100% rename from brainpy/version2/train/__init__.py rename to brainpy/train/__init__.py diff --git a/brainpy/version2/train/_utils.py b/brainpy/train/_utils.py similarity index 95% rename from brainpy/version2/train/_utils.py rename to brainpy/train/_utils.py index 8b4efb188..d84fa9ced 100644 --- a/brainpy/version2/train/_utils.py +++ b/brainpy/train/_utils.py @@ -15,9 +15,9 @@ # ============================================================================== import jax.numpy as jnp -import brainpy.version2.math as bm -from brainpy.version2.check import is_dict_data -from brainpy.version2.dynsys import DynamicalSystem +import brainpy.math as bm +from brainpy.check import is_dict_data +from brainpy.dynsys import DynamicalSystem __all__ = [ 'format_ys' diff --git a/brainpy/version2/train/back_propagation.py b/brainpy/train/back_propagation.py similarity index 98% rename from brainpy/version2/train/back_propagation.py rename to brainpy/train/back_propagation.py index a4a4ec54c..bb08bd13e 100644 --- a/brainpy/version2/train/back_propagation.py +++ b/brainpy/train/back_propagation.py @@ -22,17 +22,17 @@ from jax.tree_util import tree_map from tqdm import tqdm -import brainpy.version2.losses as losses -import brainpy.version2.math as bm +import brainpy.losses as losses +import brainpy.math as bm import brainstate.environ from brainpy._errors import UnsupportedError, NoLongerSupportError -from brainpy.version2 import optim -from brainpy.version2 import tools -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.helpers import clear_input -from brainpy.version2.running import constants as c -from brainpy.version2.types import ArrayType, Output +from brainpy import optim +from brainpy import tools +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem +from brainpy.helpers import clear_input +from brainpy.running import constants as c +from brainpy.types import ArrayType, Output from ._utils import msg from .base import DSTrainer @@ -57,7 +57,7 @@ class BPTrainer(DSTrainer): The target model to train. loss_fun: str, callable The loss function. If it is a string, it should be the - function chosen from ``brainpy.version2.losses`` module. Otherwise, + function chosen from ``brainpy.losses`` module. Otherwise, a callable function which receives argument of `(predicts, targets)` should be provided. loss_has_aux: bool @@ -487,7 +487,7 @@ class BPTT(BPTrainer): loss_fun: str, callable The loss function. - - If it is a string, it should be the function chosen from ``brainpy.version2.losses`` module. + - If it is a string, it should be the function chosen from ``brainpy.losses`` module. - Otherwise, a callable function which receives argument of ``(predicts, targets)`` should be provided. diff --git a/brainpy/version2/train/base.py b/brainpy/train/base.py similarity index 93% rename from brainpy/version2/train/base.py rename to brainpy/train/base.py index 5b2125e2d..4709fe6f3 100644 --- a/brainpy/version2/train/base.py +++ b/brainpy/train/base.py @@ -15,12 +15,12 @@ # ============================================================================== from typing import Dict, Sequence, Any, Optional -import brainpy.version2.math as bm +import brainpy.math as bm from brainpy._errors import NoLongerSupportError -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.runners import DSRunner -from brainpy.version2.running import constants as c -from brainpy.version2.types import Output +from brainpy.dynsys import DynamicalSystem +from brainpy.runners import DSRunner +from brainpy.running import constants as c +from brainpy.types import Output __all__ = [ 'DSTrainer', diff --git a/brainpy/version2/train/offline.py b/brainpy/train/offline.py similarity index 95% rename from brainpy/version2/train/offline.py rename to brainpy/train/offline.py index 52390f040..dfbee78c9 100644 --- a/brainpy/version2/train/offline.py +++ b/brainpy/train/offline.py @@ -19,15 +19,15 @@ import numpy as np import tqdm.auto -import brainpy.version2.math as bm +import brainpy.math as bm import brainstate.environ from brainpy.mixin import SupportOffline -from brainpy.version2 import tools -from brainpy.version2.algorithms.offline import get, RidgeRegression, OfflineAlgorithm -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.runners import _call_fun_with_share -from brainpy.version2.types import ArrayType, Output +from brainpy import tools +from brainpy.algorithms.offline import get, RidgeRegression, OfflineAlgorithm +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem +from brainpy.runners import _call_fun_with_share +from brainpy.types import ArrayType, Output from ._utils import format_ys from .base import DSTrainer @@ -55,7 +55,7 @@ class OfflineTrainer(DSTrainer): - It can be a dict, whose "name" item specifies the name of the training algorithm, and the others parameters specify the initialization parameters of the algorithm. For example, ``fit_method={'name': 'ridge', 'alpha': 0.1}``. - - It can be an instance of :py:class:`brainpy.version2.algorithms.OfflineAlgorithm`. + - It can be an instance of :py:class:`brainpy.algorithms.OfflineAlgorithm`. For example, ``fit_meth=bp.algorithms.RidgeRegression(alpha=0.1)``. - It can also be a callable function, which receives three arguments "targets", "x" and "y". For example, ``fit_method=lambda targets, x, y: numpy.linalg.lstsq(x, targets)[0]``. diff --git a/brainpy/version2/train/online.py b/brainpy/train/online.py similarity index 95% rename from brainpy/version2/train/online.py rename to brainpy/train/online.py index 42bc304a4..a0bacb099 100644 --- a/brainpy/version2/train/online.py +++ b/brainpy/train/online.py @@ -23,13 +23,13 @@ import brainstate.environ from brainpy.mixin import SupportOnline -from brainpy.version2 import math as bm, tools -from brainpy.version2.algorithms.online import get, OnlineAlgorithm, RLS -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.helpers import clear_input -from brainpy.version2.runners import _call_fun_with_share -from brainpy.version2.types import ArrayType, Output +from brainpy import math as bm, tools +from brainpy.algorithms.online import get, OnlineAlgorithm, RLS +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem +from brainpy.helpers import clear_input +from brainpy.runners import _call_fun_with_share +from brainpy.types import ArrayType, Output from ._utils import format_ys from .base import DSTrainer @@ -59,7 +59,7 @@ class OnlineTrainer(DSTrainer): - It can be a dict, whose "name" item specifies the name of the training algorithm, and the others parameters specify the initialization parameters of the algorithm. For example, ``fit_method={'name': 'rls', 'alpha': 0.1}``. - - It can be an instance of :py:class:`brainpy.version2.algorithms.OnlineAlgorithm`. + - It can be an instance of :py:class:`brainpy.algorithms.OnlineAlgorithm`. For example, ``fit_meth=bp.algorithms.RLS(alpha=1e-5)``. - It can also be a callable function. diff --git a/brainpy/version2/transform.py b/brainpy/transform.py similarity index 96% rename from brainpy/version2/transform.py rename to brainpy/transform.py index 6e37d688a..b42ed2761 100644 --- a/brainpy/version2/transform.py +++ b/brainpy/transform.py @@ -19,12 +19,12 @@ import jax import jax.numpy as jnp -from brainpy.version2 import tools, math as bm -from brainpy.version2.check import is_float, is_integer -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.helpers import clear_input -from brainpy.version2.types import PyTree +from brainpy import tools, math as bm +from brainpy.check import is_float, is_integer +from brainpy.context import share +from brainpy.dynsys import DynamicalSystem +from brainpy.helpers import clear_input +from brainpy.types import PyTree __all__ = [ 'LoopOverTime', @@ -50,8 +50,8 @@ class LoopOverTime(DynamicalSystem): This model can be used for network training: - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> >>> n_time, n_batch, n_in = 30, 128, 100 >>> model = bp.Sequential(l1=bp.layers.RNNCell(n_in, 20), @@ -78,8 +78,8 @@ class LoopOverTime(DynamicalSystem): .. plot:: :include-source: True - >>> import brainpy.version2 as bp - >>> import brainpy.version2.math as bm + >>> import brainpy as bp + >>> import brainpy.math as bm >>> import matplotlib.pyplot as plt >>> >>> hh = bp.neurons.HH(1) diff --git a/brainpy/version2/types.py b/brainpy/types.py similarity index 88% rename from brainpy/version2/types.py rename to brainpy/types.py index 76b0c7e5c..ddbfa31fb 100644 --- a/brainpy/version2/types.py +++ b/brainpy/types.py @@ -19,10 +19,10 @@ import jax import numpy as np -from brainpy.version2 import connect as conn -from brainpy.version2 import initialize as init -from brainpy.version2.math.ndarray import Array -from brainpy.version2.math.object_transform import Variable, TrainVar +from brainpy import connect as conn +from brainpy import initialize as init +from brainpy.math.ndarray import Array +from brainpy.math.object_transform import Variable, TrainVar __all__ = [ 'ArrayType', 'Parameter', 'PyTree', diff --git a/brainpy/version2/__init__.py b/brainpy/version2/__init__.py deleted file mode 100644 index da555bb27..000000000 --- a/brainpy/version2/__init__.py +++ /dev/null @@ -1,181 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -from brainpy import _errors as errors -from brainpy import mixin -# fundamental supporting modules -from brainpy.version2 import check, tools -# Part: Math Foundation # -# ----------------------- # -# math foundation -from brainpy.version2 import math -# Part: Toolbox # -# --------------- # -# modules of toolbox -from . import ( - connect, # synaptic connection - initialize, # weight initialization - optim, # gradient descent optimizers - losses, # loss functions - measure, # methods for data analysis - inputs, # methods for generating input currents - encoding, # encoding schema - checkpoints, # checkpoints - check, # error checking - algorithms, # online or offline training algorithms -) -from .math import BrainPyObject - -# convenient alias -conn = connect -init = initialize - -# numerical integrators -from brainpy.version2 import integrators -from brainpy.version2.integrators import ode, sde, fde -from brainpy.version2.integrators.base import (Integrator as Integrator) -from brainpy.version2.integrators.joint_eq import (JointEq as JointEq) -from brainpy.version2.integrators.runner import (IntegratorRunner as IntegratorRunner) -from brainpy.version2.integrators.ode.generic import (odeint as odeint) -from brainpy.version2.integrators.sde.generic import (sdeint as sdeint) -from brainpy.version2.integrators.fde.generic import (fdeint as fdeint) - -# Part: Models # -# -------------- # - -# base classes -from brainpy.version2.dynsys import ( - DynamicalSystem as DynamicalSystem, - DynSysGroup as DynSysGroup, # collectors - Sequential as Sequential, - Dynamic as Dynamic, # category - Projection as Projection, - receive_update_input, # decorators - receive_update_output, - not_receive_update_input, - not_receive_update_output, -) - -DynamicalSystemNS = DynamicalSystem -Network = DynSysGroup -# delays -from brainpy.version2.delay import ( - VarDelay as VarDelay, -) - -# building blocks -from brainpy.version2 import ( - dnn, layers, # module for dnn layers - dyn, # module for modeling dynamics -) - -NeuGroup = NeuGroupNS = dyn.NeuDyn -dyn.DynamicalSystem = DynamicalSystem - -# common tools -from brainpy.version2.context import (share as share) -from brainpy.version2.helpers import ( - reset_level as reset_level, - reset_state as reset_state, - save_state as save_state, - load_state as load_state, - clear_input as clear_input -) - -# Part: Running # -# --------------- # -from brainpy.version2.runners import (DSRunner as DSRunner) -from brainpy.version2.transform import (LoopOverTime as LoopOverTime, ) -from brainpy.version2 import (running as running) - -# Part: Training # -# ---------------- # -from brainpy.version2.train.base import (DSTrainer as DSTrainer, ) -from brainpy.version2.train.back_propagation import (BPTT as BPTT, - BPFF as BPFF, ) -from brainpy.version2.train.online import (OnlineTrainer as OnlineTrainer, - ForceTrainer as ForceTrainer, ) -from brainpy.version2.train.offline import (OfflineTrainer as OfflineTrainer, - RidgeTrainer as RidgeTrainer, ) - -# Part: Analysis # -# ---------------- # -from brainpy.version2 import (analysis as analysis) - -# Part: Others # -# ---------------- # -import brainpy.version2.visualization as visualize - -# Part: Deprecations # -# -------------------- # -from brainpy.version2 import train -from brainpy.version2 import ( - channels, # channel models - neurons, # neuron groups - synapses, # synapses - rates, # rate models - experimental, - synouts, # synaptic output - synplast, # synaptic plasticity -) -from brainpy.version2.math.object_transform.base import ( - Base as Base, -) - -from brainpy.version2.math.object_transform.collectors import ( - ArrayCollector as ArrayCollector, - Collector as Collector, -) - - -from brainpy.version2.deprecations import deprecation_getattr - -optimizers = optim - - - -if __name__ == '__main__': - connect - initialize, # weight initialization - optim, # gradient descent optimizers - losses, # loss functions - measure, # methods for data analysis - inputs, # methods for generating input currents - encoding, # encoding schema - checkpoints, # checkpoints - check, # error checking - mixin, # mixin classes - algorithms, # online or offline training algorithms - check, tools, errors, math - BrainPyObject, - integrators, ode, sde, fde - Integrator, JointEq, IntegratorRunner, odeint, sdeint, fdeint - DynamicalSystem, DynSysGroup, Sequential, Dynamic, Projection - receive_update_input, receive_update_output, not_receive_update_input, not_receive_update_output - VarDelay - dnn, layers, dyn - NeuGroup, NeuGroupNS - share - reset_level, reset_state, save_state, load_state, clear_input - DSRunner, LoopOverTime, running - DSTrainer, BPTT, BPFF, OnlineTrainer, ForceTrainer, - OfflineTrainer, RidgeTrainer - analysis - visualize - train - channels, neurons, synapses, rates, experimental, synouts, synplast - modes - Base - ArrayCollector, Collector, errors diff --git a/brainpy/version2/experimental.py b/brainpy/version2/experimental.py deleted file mode 100644 index 0f552124c..000000000 --- a/brainpy/version2/experimental.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -from brainpy.version2.dynold.experimental.abstract_synapses import ( - Exponential, - DualExponential, - Alpha, -) -from brainpy.version2.dynold.experimental.others import ( - PoissonInput, -) -from brainpy.version2.dynold.experimental.syn_outs import ( - CUBA as CUBA, - COBA as COBA, -) -from brainpy.version2.dynold.experimental.syn_plasticity import ( - STD as STD, - STP as STP, -) - -if __name__ == '__main__': - STD - STP - CUBA - COBA - Exponential, - DualExponential - Alpha - PoissonInput - diff --git a/brainpy/version2/visualization.py b/brainpy/visualization.py similarity index 100% rename from brainpy/version2/visualization.py rename to brainpy/visualization.py diff --git a/changelog.md b/changelog.md index 1031b987a..d1a4e3bc1 100644 --- a/changelog.md +++ b/changelog.md @@ -4,15 +4,15 @@ **Release Date:** October 2025 -This is a major release with significant architectural changes and improvements. BrainPy 3.0.0 introduces a new API design while maintaining backward compatibility through the `brainpy.version2` module. +This is a major release with significant architectural changes and improvements. BrainPy 3.0.0 introduces a new API design while maintaining backward compatibility through the `brainpy` module. ### Major Changes #### Architecture Reorganization -- **BREAKING CHANGE**: All existing BrainPy 2.x functionality has been moved to `brainpy.version2` module - - Users can migrate existing code by replacing `import brainpy` with `import brainpy.version2 as brainpy` - - The old `brainpy._src` module structure has been completely reorganized into `brainpy.version2` - - All submodules (math, dyn, dnn, etc.) are now under `brainpy.version2.*` +- **BREAKING CHANGE**: All existing BrainPy 2.x functionality has been moved to `brainpy` module + - Users can migrate existing code by replacing `import brainpy` with `import brainpy as brainpy` + - The old `brainpy._src` module structure has been completely reorganized into `brainpy` + - All submodules (math, dyn, dnn, etc.) are now under `brainpy.*` #### New Core API (brainpy.*) - Introduced simplified, streamlined API in the main `brainpy` namespace @@ -179,13 +179,13 @@ This is a major release with significant architectural changes and improvements. For users upgrading from BrainPy 2.6.x: -1. **Keep using BrainPy 2.x API**: Replace imports with `brainpy.version2` +1. **Keep using BrainPy 2.x API**: Replace imports with `brainpy` ```python # Old code (BrainPy 2.x) import brainpy as bp # New code (BrainPy 3.0 with backward compatibility) - import brainpy.version2 as bp + import brainpy as bp ``` 2. **Adopt new BrainPy 3.0 API**: Explore the simplified API in the main `brainpy` namespace for new projects @@ -195,7 +195,7 @@ For users upgrading from BrainPy 2.6.x: 4. **Review breaking changes**: Check if your code uses any of the reorganized internal modules ### Notes -- This release maintains backward compatibility through `brainpy.version2` +- This release maintains backward compatibility through `brainpy` - The new API in the main `brainpy` namespace represents the future direction of the library - Documentation for both versions is available on Read the Docs diff --git a/docs/conf.py b/docs/conf.py index 37382e33b..172625f69 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -27,7 +27,7 @@ except Exception as e: print(f"Error deleting {item}: {e}") -build_version = os.environ.get('CURRENT_VERSION', 'v3') +build_version = os.environ.get('CURRENT_VERSION', 'v2') if build_version == 'v2': shutil.copytree( os.path.join(os.path.dirname(__file__), '../docs_version2'), @@ -36,14 +36,14 @@ ) else: shutil.copytree( - os.path.join(os.path.dirname(__file__), '../docs_version3'), + os.path.join(os.path.dirname(__file__), '../docs_state_based'), os.path.join(os.path.dirname(__file__)), dirs_exist_ok=True ) sys.path.insert(0, os.path.abspath('./')) sys.path.insert(0, os.path.abspath('../')) - +os.makedirs('./_static', exist_ok=True) shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) shutil.copyfile('../changelog.md', './changelog.md') @@ -109,36 +109,6 @@ # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] -# href with no underline and white bold text color - -if build_version == 'v2': - announcement = """ - - This site covers the old BrainPy 2.0 API. [Explore the new BrainPy 3.0 API ✨] - - """ -else: - announcement = """ - - This site covers the new BrainPy 3.0 API. - [Click here for the classical BrainPy 2.0 API] - - """ - -html_theme_options = { - 'repository_url': 'https://github.com/brainpy/BrainPy', - 'use_repository_button': True, # add a 'link to repository' button - 'use_issues_button': False, # add an 'Open an Issue' button - 'path_to_docs': 'docs', # used to compute the path to launch notebooks in colab - 'launch_buttons': { - 'colab_url': 'https://colab.research.google.com/', - }, - 'prev_next_buttons_location': None, - 'show_navbar_depth': 1, - 'announcement': announcement, - 'logo_only': True, - 'show_toc_level': 2, -} html_theme = "sphinx_book_theme" html_logo = "_static/logos/logo.png" diff --git a/docs_version3/README.md b/docs_state_based/README.md similarity index 97% rename from docs_version3/README.md rename to docs_state_based/README.md index 08b47970b..8d50d48bd 100644 --- a/docs_version3/README.md +++ b/docs_state_based/README.md @@ -78,8 +78,8 @@ If you're migrating from BrainPy 2.x, the API has changed significantly. See the To use legacy 2.x APIs in version 3.x: ```python -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm ``` ## Running Notebooks diff --git a/docs_version3/_static/snn-simulation1.png b/docs_state_based/_static/snn-simulation1.png similarity index 100% rename from docs_version3/_static/snn-simulation1.png rename to docs_state_based/_static/snn-simulation1.png diff --git a/docs_version3/_templates/classtemplate.rst b/docs_state_based/_templates/classtemplate.rst similarity index 100% rename from docs_version3/_templates/classtemplate.rst rename to docs_state_based/_templates/classtemplate.rst diff --git a/docs_version3/api/index.rst b/docs_state_based/api/index.rst similarity index 100% rename from docs_version3/api/index.rst rename to docs_state_based/api/index.rst diff --git a/docs_version3/api/input-output.rst b/docs_state_based/api/input-output.rst similarity index 100% rename from docs_version3/api/input-output.rst rename to docs_state_based/api/input-output.rst diff --git a/docs_version3/api/networks.rst b/docs_state_based/api/networks.rst similarity index 100% rename from docs_version3/api/networks.rst rename to docs_state_based/api/networks.rst diff --git a/docs_version3/api/neurons.rst b/docs_state_based/api/neurons.rst similarity index 100% rename from docs_version3/api/neurons.rst rename to docs_state_based/api/neurons.rst diff --git a/docs_version3/api/projections.rst b/docs_state_based/api/projections.rst similarity index 100% rename from docs_version3/api/projections.rst rename to docs_state_based/api/projections.rst diff --git a/docs_version3/api/synapses.rst b/docs_state_based/api/synapses.rst similarity index 100% rename from docs_version3/api/synapses.rst rename to docs_state_based/api/synapses.rst diff --git a/docs_version3/api/training.rst b/docs_state_based/api/training.rst similarity index 100% rename from docs_version3/api/training.rst rename to docs_state_based/api/training.rst diff --git a/docs_version3/apis.rst b/docs_state_based/apis.rst similarity index 100% rename from docs_version3/apis.rst rename to docs_state_based/apis.rst diff --git a/docs_version3/checkpointing-en.ipynb b/docs_state_based/checkpointing-en.ipynb similarity index 100% rename from docs_version3/checkpointing-en.ipynb rename to docs_state_based/checkpointing-en.ipynb diff --git a/docs_version3/checkpointing-zh.ipynb b/docs_state_based/checkpointing-zh.ipynb similarity index 100% rename from docs_version3/checkpointing-zh.ipynb rename to docs_state_based/checkpointing-zh.ipynb diff --git a/docs_version3/core-concepts/architecture.rst b/docs_state_based/core-concepts/architecture.rst similarity index 100% rename from docs_version3/core-concepts/architecture.rst rename to docs_state_based/core-concepts/architecture.rst diff --git a/docs_version3/core-concepts/neurons.rst b/docs_state_based/core-concepts/neurons.rst similarity index 100% rename from docs_version3/core-concepts/neurons.rst rename to docs_state_based/core-concepts/neurons.rst diff --git a/docs_version3/core-concepts/projections.rst b/docs_state_based/core-concepts/projections.rst similarity index 100% rename from docs_version3/core-concepts/projections.rst rename to docs_state_based/core-concepts/projections.rst diff --git a/docs_version3/core-concepts/state-management.rst b/docs_state_based/core-concepts/state-management.rst similarity index 100% rename from docs_version3/core-concepts/state-management.rst rename to docs_state_based/core-concepts/state-management.rst diff --git a/docs_version3/core-concepts/synapses.rst b/docs_state_based/core-concepts/synapses.rst similarity index 100% rename from docs_version3/core-concepts/synapses.rst rename to docs_state_based/core-concepts/synapses.rst diff --git a/docs_version3/examples/gallery.rst b/docs_state_based/examples/gallery.rst similarity index 100% rename from docs_version3/examples/gallery.rst rename to docs_state_based/examples/gallery.rst diff --git a/docs_version3/how-to-guides/custom-components.rst b/docs_state_based/how-to-guides/custom-components.rst similarity index 100% rename from docs_version3/how-to-guides/custom-components.rst rename to docs_state_based/how-to-guides/custom-components.rst diff --git a/docs_version3/how-to-guides/debugging-networks.rst b/docs_state_based/how-to-guides/debugging-networks.rst similarity index 100% rename from docs_version3/how-to-guides/debugging-networks.rst rename to docs_state_based/how-to-guides/debugging-networks.rst diff --git a/docs_version3/how-to-guides/gpu-tpu-usage.rst b/docs_state_based/how-to-guides/gpu-tpu-usage.rst similarity index 100% rename from docs_version3/how-to-guides/gpu-tpu-usage.rst rename to docs_state_based/how-to-guides/gpu-tpu-usage.rst diff --git a/docs_version3/how-to-guides/index.rst b/docs_state_based/how-to-guides/index.rst similarity index 100% rename from docs_version3/how-to-guides/index.rst rename to docs_state_based/how-to-guides/index.rst diff --git a/docs_version3/how-to-guides/performance-optimization.rst b/docs_state_based/how-to-guides/performance-optimization.rst similarity index 100% rename from docs_version3/how-to-guides/performance-optimization.rst rename to docs_state_based/how-to-guides/performance-optimization.rst diff --git a/docs_version3/how-to-guides/save-load-models.rst b/docs_state_based/how-to-guides/save-load-models.rst similarity index 100% rename from docs_version3/how-to-guides/save-load-models.rst rename to docs_state_based/how-to-guides/save-load-models.rst diff --git a/docs_version3/index.rst b/docs_state_based/index.rst similarity index 100% rename from docs_version3/index.rst rename to docs_state_based/index.rst diff --git a/docs_version3/migration/migration-guide.rst b/docs_state_based/migration/migration-guide.rst similarity index 100% rename from docs_version3/migration/migration-guide.rst rename to docs_state_based/migration/migration-guide.rst diff --git a/docs_version3/quickstart/5min-tutorial.ipynb b/docs_state_based/quickstart/5min-tutorial.ipynb similarity index 98% rename from docs_version3/quickstart/5min-tutorial.ipynb rename to docs_state_based/quickstart/5min-tutorial.ipynb index debf25fe2..cdfaf9b27 100644 --- a/docs_version3/quickstart/5min-tutorial.ipynb +++ b/docs_state_based/quickstart/5min-tutorial.ipynb @@ -31,14 +31,11 @@ "metadata": {}, "outputs": [], "source": [ - "import brainpy\n", + "import brainpy.state_based as brainpy\n", "import brainstate\n", "import brainunit as u\n", "import braintools\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# Check version\n", - "print(f\"BrainPy version: {brainpy.__version__}\")" + "import matplotlib.pyplot as plt\n" ] }, { diff --git a/docs_version3/quickstart/concepts-overview.rst b/docs_state_based/quickstart/concepts-overview.rst similarity index 100% rename from docs_version3/quickstart/concepts-overview.rst rename to docs_state_based/quickstart/concepts-overview.rst diff --git a/docs_version3/quickstart/installation.rst b/docs_state_based/quickstart/installation.rst similarity index 100% rename from docs_version3/quickstart/installation.rst rename to docs_state_based/quickstart/installation.rst diff --git a/docs_version3/snn_simulation-en.ipynb b/docs_state_based/snn_simulation-en.ipynb similarity index 100% rename from docs_version3/snn_simulation-en.ipynb rename to docs_state_based/snn_simulation-en.ipynb diff --git a/docs_version3/snn_simulation-zh.ipynb b/docs_state_based/snn_simulation-zh.ipynb similarity index 100% rename from docs_version3/snn_simulation-zh.ipynb rename to docs_state_based/snn_simulation-zh.ipynb diff --git a/docs_version3/snn_training-en.ipynb b/docs_state_based/snn_training-en.ipynb similarity index 100% rename from docs_version3/snn_training-en.ipynb rename to docs_state_based/snn_training-en.ipynb diff --git a/docs_version3/snn_training-zh.ipynb b/docs_state_based/snn_training-zh.ipynb similarity index 100% rename from docs_version3/snn_training-zh.ipynb rename to docs_state_based/snn_training-zh.ipynb diff --git a/docs_version3/tutorials/advanced/05-snn-training.ipynb b/docs_state_based/tutorials/advanced/05-snn-training.ipynb similarity index 100% rename from docs_version3/tutorials/advanced/05-snn-training.ipynb rename to docs_state_based/tutorials/advanced/05-snn-training.ipynb diff --git a/docs_version3/tutorials/advanced/06-synaptic-plasticity.ipynb b/docs_state_based/tutorials/advanced/06-synaptic-plasticity.ipynb similarity index 100% rename from docs_version3/tutorials/advanced/06-synaptic-plasticity.ipynb rename to docs_state_based/tutorials/advanced/06-synaptic-plasticity.ipynb diff --git a/docs_version3/tutorials/advanced/07-large-scale-simulations.ipynb b/docs_state_based/tutorials/advanced/07-large-scale-simulations.ipynb similarity index 100% rename from docs_version3/tutorials/advanced/07-large-scale-simulations.ipynb rename to docs_state_based/tutorials/advanced/07-large-scale-simulations.ipynb diff --git a/docs_version3/tutorials/basic/01-lif-neuron.ipynb b/docs_state_based/tutorials/basic/01-lif-neuron.ipynb similarity index 100% rename from docs_version3/tutorials/basic/01-lif-neuron.ipynb rename to docs_state_based/tutorials/basic/01-lif-neuron.ipynb diff --git a/docs_version3/tutorials/basic/02-synapse-models.ipynb b/docs_state_based/tutorials/basic/02-synapse-models.ipynb similarity index 100% rename from docs_version3/tutorials/basic/02-synapse-models.ipynb rename to docs_state_based/tutorials/basic/02-synapse-models.ipynb diff --git a/docs_version3/tutorials/basic/03-network-connections.ipynb b/docs_state_based/tutorials/basic/03-network-connections.ipynb similarity index 100% rename from docs_version3/tutorials/basic/03-network-connections.ipynb rename to docs_state_based/tutorials/basic/03-network-connections.ipynb diff --git a/docs_version3/tutorials/basic/04-input-output.ipynb b/docs_state_based/tutorials/basic/04-input-output.ipynb similarity index 100% rename from docs_version3/tutorials/basic/04-input-output.ipynb rename to docs_state_based/tutorials/basic/04-input-output.ipynb diff --git a/docs_version3/tutorials/index.rst b/docs_state_based/tutorials/index.rst similarity index 100% rename from docs_version3/tutorials/index.rst rename to docs_state_based/tutorials/index.rst diff --git a/docs_version2/README.md b/docs_version2/README.md index 4a664da90..6cbbb4f79 100644 --- a/docs_version2/README.md +++ b/docs_version2/README.md @@ -18,8 +18,8 @@ import brainpy as bp import brainpy.math as bm # Using v2.x API in BrainPy 3.x -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm ``` ## Documentation Contents diff --git a/docs_version2/_static/css/theme.css b/docs_version2/_static/css/theme.css deleted file mode 100644 index b8207032d..000000000 --- a/docs_version2/_static/css/theme.css +++ /dev/null @@ -1,23 +0,0 @@ -@import url("theme.css"); - -.wy-nav-content { - max-width: 1290px; -} - -.rst-content table.docutils { - width: 100%; -} - -.rst-content table.docutils td { - vertical-align: top; - padding: 0; -} - -.rst-content table.docutils td p { - padding: 8px; -} - -.rst-content div[class^=highlight] { - border: 0; - margin: 0; -} diff --git a/docs_version2/apis/analysis.rst b/docs_version2/apis/analysis.rst index 95e26dac4..34ba1f2ee 100644 --- a/docs_version2/apis/analysis.rst +++ b/docs_version2/apis/analysis.rst @@ -1,8 +1,8 @@ -``brainpy.version2.analysis`` module +``brainpy.analysis`` module ==================================== -.. currentmodule:: brainpy.version2.analysis -.. automodule:: brainpy.version2.analysis +.. currentmodule:: brainpy.analysis +.. automodule:: brainpy.analysis .. contents:: :local: diff --git a/docs_version2/apis/brainpy.dyn.base.rst b/docs_version2/apis/brainpy.dyn.base.rst index 06b544985..4340fa509 100644 --- a/docs_version2/apis/brainpy.dyn.base.rst +++ b/docs_version2/apis/brainpy.dyn.base.rst @@ -1,8 +1,8 @@ Base Classes ============ -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.dyn.channels.rst b/docs_version2/apis/brainpy.dyn.channels.rst index f803afd52..47802851e 100644 --- a/docs_version2/apis/brainpy.dyn.channels.rst +++ b/docs_version2/apis/brainpy.dyn.channels.rst @@ -3,8 +3,8 @@ Ion Channel Dynamics -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn .. contents:: diff --git a/docs_version2/apis/brainpy.dyn.ions.rst b/docs_version2/apis/brainpy.dyn.ions.rst index 3cb580d5f..4c6cf510d 100644 --- a/docs_version2/apis/brainpy.dyn.ions.rst +++ b/docs_version2/apis/brainpy.dyn.ions.rst @@ -1,8 +1,8 @@ Ion Dynamics ====================== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn In the context of the brain, ions are electrically charged particles that play a crucial role in the diff --git a/docs_version2/apis/brainpy.dyn.neurons.rst b/docs_version2/apis/brainpy.dyn.neurons.rst index cd1c031fb..723b61abb 100644 --- a/docs_version2/apis/brainpy.dyn.neurons.rst +++ b/docs_version2/apis/brainpy.dyn.neurons.rst @@ -1,8 +1,8 @@ Neuron Dynamics =============== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn Neuronal dynamics refers to the diverse temporal activity patterns exhibited by neurons related to how they process and transmit information. Key aspects include: diff --git a/docs_version2/apis/brainpy.dyn.others.rst b/docs_version2/apis/brainpy.dyn.others.rst index 15cd471b7..aae94ff63 100644 --- a/docs_version2/apis/brainpy.dyn.others.rst +++ b/docs_version2/apis/brainpy.dyn.others.rst @@ -1,8 +1,8 @@ Common Dynamical Models ====================== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.dyn.outs.rst b/docs_version2/apis/brainpy.dyn.outs.rst index eb4a9e38b..892f700e2 100644 --- a/docs_version2/apis/brainpy.dyn.outs.rst +++ b/docs_version2/apis/brainpy.dyn.outs.rst @@ -1,8 +1,8 @@ Synaptic Outputs ================ -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn .. autosummary:: diff --git a/docs_version2/apis/brainpy.dyn.plasticity.rst b/docs_version2/apis/brainpy.dyn.plasticity.rst index 2b9c4ce5d..597c71aa5 100644 --- a/docs_version2/apis/brainpy.dyn.plasticity.rst +++ b/docs_version2/apis/brainpy.dyn.plasticity.rst @@ -1,8 +1,8 @@ Synaptic Plasticity =================== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.dyn.projections.rst b/docs_version2/apis/brainpy.dyn.projections.rst index 213a2cc4e..5549e6394 100644 --- a/docs_version2/apis/brainpy.dyn.projections.rst +++ b/docs_version2/apis/brainpy.dyn.projections.rst @@ -1,8 +1,8 @@ Synaptic Projections ====================== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn diff --git a/docs_version2/apis/brainpy.dyn.rates.rst b/docs_version2/apis/brainpy.dyn.rates.rst index c7b3f4b18..066c1728f 100644 --- a/docs_version2/apis/brainpy.dyn.rates.rst +++ b/docs_version2/apis/brainpy.dyn.rates.rst @@ -1,8 +1,8 @@ Firing Rate Models ================== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn Population Rate Models diff --git a/docs_version2/apis/brainpy.dyn.synapses.rst b/docs_version2/apis/brainpy.dyn.synapses.rst index 86777411e..bea61ab87 100644 --- a/docs_version2/apis/brainpy.dyn.synapses.rst +++ b/docs_version2/apis/brainpy.dyn.synapses.rst @@ -1,8 +1,8 @@ Synaptic Dynamics ====================== -.. currentmodule:: brainpy.version2.dyn -.. automodule:: brainpy.version2.dyn +.. currentmodule:: brainpy.dyn +.. automodule:: brainpy.dyn Synaptic dynamics refers to the processes that modulate the strength of synaptic connections between diff --git a/docs_version2/apis/brainpy.math.defaults.rst b/docs_version2/apis/brainpy.math.defaults.rst index 27d137830..515391dcf 100644 --- a/docs_version2/apis/brainpy.math.defaults.rst +++ b/docs_version2/apis/brainpy.math.defaults.rst @@ -2,8 +2,8 @@ Default Math Parameters ======================= -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.delayvars.rst b/docs_version2/apis/brainpy.math.delayvars.rst index f9c51291a..8c7678ac1 100644 --- a/docs_version2/apis/brainpy.math.delayvars.rst +++ b/docs_version2/apis/brainpy.math.delayvars.rst @@ -1,8 +1,8 @@ Delay Variables =============== -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.environment.rst b/docs_version2/apis/brainpy.math.environment.rst index 3f8e7dd4b..ad125a9e7 100644 --- a/docs_version2/apis/brainpy.math.environment.rst +++ b/docs_version2/apis/brainpy.math.environment.rst @@ -1,8 +1,8 @@ Environment Settings ==================== -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.event.rst b/docs_version2/apis/brainpy.math.event.rst index 07bdb3211..777614979 100644 --- a/docs_version2/apis/brainpy.math.event.rst +++ b/docs_version2/apis/brainpy.math.event.rst @@ -1,8 +1,8 @@ -``brainpy.version2.math.event``: Event-driven Operators +``brainpy.math.event``: Event-driven Operators ======================================================= -.. currentmodule:: brainpy.version2.math.event -.. automodule:: brainpy.version2.math.event +.. currentmodule:: brainpy.math.event +.. automodule:: brainpy.math.event .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.jitconn.rst b/docs_version2/apis/brainpy.math.jitconn.rst index e7f8d0b83..ca878172a 100644 --- a/docs_version2/apis/brainpy.math.jitconn.rst +++ b/docs_version2/apis/brainpy.math.jitconn.rst @@ -1,8 +1,8 @@ -``brainpy.version2.math.jitconn``: Just-In-Time Connectivity Operators +``brainpy.math.jitconn``: Just-In-Time Connectivity Operators ===================================================================== -.. currentmodule:: brainpy.version2.math.jitconn -.. automodule:: brainpy.version2.math.jitconn +.. currentmodule:: brainpy.math.jitconn +.. automodule:: brainpy.math.jitconn .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.modes.rst b/docs_version2/apis/brainpy.math.modes.rst index b178e8625..3bf9fbfb3 100644 --- a/docs_version2/apis/brainpy.math.modes.rst +++ b/docs_version2/apis/brainpy.math.modes.rst @@ -2,8 +2,8 @@ Computing Modes =============== -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.oo_transform.rst b/docs_version2/apis/brainpy.math.oo_transform.rst index 900214642..9ed9cf46a 100644 --- a/docs_version2/apis/brainpy.math.oo_transform.rst +++ b/docs_version2/apis/brainpy.math.oo_transform.rst @@ -1,8 +1,8 @@ Object-oriented Transformations =============================== -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. contents:: diff --git a/docs_version2/apis/brainpy.math.op_register.rst b/docs_version2/apis/brainpy.math.op_register.rst index c39cbf60c..13ce518cb 100644 --- a/docs_version2/apis/brainpy.math.op_register.rst +++ b/docs_version2/apis/brainpy.math.op_register.rst @@ -10,8 +10,8 @@ Operator Registration General Operator Customization Interface ---------------------------------------- -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ @@ -25,8 +25,8 @@ General Operator Customization Interface CPU Operator Customization with Taichi ------------------------------------- -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.pre_syn_post.rst b/docs_version2/apis/brainpy.math.pre_syn_post.rst index fdd000677..2c434a4b7 100644 --- a/docs_version2/apis/brainpy.math.pre_syn_post.rst +++ b/docs_version2/apis/brainpy.math.pre_syn_post.rst @@ -1,8 +1,8 @@ Operators for Pre-Syn-Post Conversion ===================================== -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.random.rst b/docs_version2/apis/brainpy.math.random.rst index f07baa809..eff0584cd 100644 --- a/docs_version2/apis/brainpy.math.random.rst +++ b/docs_version2/apis/brainpy.math.random.rst @@ -1,8 +1,8 @@ -``brainpy.version2.math.random``: Random Number Generations +``brainpy.math.random``: Random Number Generations =========================================================== -.. currentmodule:: brainpy.version2.math.random -.. automodule:: brainpy.version2.math.random +.. currentmodule:: brainpy.math.random +.. automodule:: brainpy.math.random diff --git a/docs_version2/apis/brainpy.math.rst b/docs_version2/apis/brainpy.math.rst index 998ff10ea..4e9426700 100644 --- a/docs_version2/apis/brainpy.math.rst +++ b/docs_version2/apis/brainpy.math.rst @@ -2,8 +2,8 @@ General Mathematical Operators ============================== -.. currentmodule:: brainpy.version2.math -.. automodule:: brainpy.version2.math +.. currentmodule:: brainpy.math +.. automodule:: brainpy.math .. contents:: diff --git a/docs_version2/apis/brainpy.math.sharding.rst b/docs_version2/apis/brainpy.math.sharding.rst index a1d66c897..e3477d7b3 100644 --- a/docs_version2/apis/brainpy.math.sharding.rst +++ b/docs_version2/apis/brainpy.math.sharding.rst @@ -1,8 +1,8 @@ -``brainpy.version2.math.sharding``: Parallelization Support +``brainpy.math.sharding``: Parallelization Support ================================================== -.. currentmodule:: brainpy.version2.math.sharding -.. automodule:: brainpy.version2.math.sharding +.. currentmodule:: brainpy.math.sharding +.. automodule:: brainpy.math.sharding .. autosummary:: diff --git a/docs_version2/apis/brainpy.math.sparse.rst b/docs_version2/apis/brainpy.math.sparse.rst index 7c82d32c1..cb4aedaf8 100644 --- a/docs_version2/apis/brainpy.math.sparse.rst +++ b/docs_version2/apis/brainpy.math.sparse.rst @@ -1,8 +1,8 @@ -``brainpy.version2.math.sparse``: Sparse Operators +``brainpy.math.sparse``: Sparse Operators ================================================== -.. currentmodule:: brainpy.version2.math.sparse -.. automodule:: brainpy.version2.math.sparse +.. currentmodule:: brainpy.math.sparse +.. automodule:: brainpy.math.sparse .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.math.surrogate.rst b/docs_version2/apis/brainpy.math.surrogate.rst index 01e8304d8..e4c7d2b91 100644 --- a/docs_version2/apis/brainpy.math.surrogate.rst +++ b/docs_version2/apis/brainpy.math.surrogate.rst @@ -1,8 +1,8 @@ -``brainpy.version2.math.surrogate``: Surrogate Gradient Functions +``brainpy.math.surrogate``: Surrogate Gradient Functions ================================================================= -.. currentmodule:: brainpy.version2.math.surrogate -.. automodule:: brainpy.version2.math.surrogate +.. currentmodule:: brainpy.math.surrogate +.. automodule:: brainpy.math.surrogate .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/brainpy.rst b/docs_version2/apis/brainpy.rst index 744bc4313..9235cf2cf 100644 --- a/docs_version2/apis/brainpy.rst +++ b/docs_version2/apis/brainpy.rst @@ -1,8 +1,8 @@ -``brainpy.version2`` module +``brainpy`` module =========================== -.. currentmodule:: brainpy.version2 -.. automodule:: brainpy.version2 +.. currentmodule:: brainpy +.. automodule:: brainpy .. contents:: :local: diff --git a/docs_version2/apis/connect.rst b/docs_version2/apis/connect.rst index 4bee58863..00da6c570 100644 --- a/docs_version2/apis/connect.rst +++ b/docs_version2/apis/connect.rst @@ -1,8 +1,8 @@ -``brainpy.version2.connect`` module +``brainpy.connect`` module =================================== -.. currentmodule:: brainpy.version2.connect -.. automodule:: brainpy.version2.connect +.. currentmodule:: brainpy.connect +.. automodule:: brainpy.connect .. contents:: :local: diff --git a/docs_version2/apis/deprecated/channels.rst b/docs_version2/apis/deprecated/channels.rst index 419a8cb1f..ef51ccef6 100644 --- a/docs_version2/apis/deprecated/channels.rst +++ b/docs_version2/apis/deprecated/channels.rst @@ -1,18 +1,18 @@ -``brainpy.version2.channels`` module +``brainpy.channels`` module ==================================== -.. currentmodule:: brainpy.version2.channels -.. automodule:: brainpy.version2.channels +.. currentmodule:: brainpy.channels +.. automodule:: brainpy.channels -``brainpy.version2.channels`` module is deprecated has been renamed as ``brainpy.version2.dnn``. -Although all models can be accessed through ``brainpy.version2.channels.xxx`` as in old -version of BrainPy, we recommend users to use ``brainpy.version2.dyn.xxx`` instead. +``brainpy.channels`` module is deprecated has been renamed as ``brainpy.dnn``. +Although all models can be accessed through ``brainpy.channels.xxx`` as in old +version of BrainPy, we recommend users to use ``brainpy.dyn.xxx`` instead. In general, from ``brainpy>=2.4.3``, we provide two modules: -- ``brainpy.version2.dnn`` for modeling deep neural networks -- ``brainpy.version2.dyn`` for modeling dynamics models +- ``brainpy.dnn`` for modeling deep neural networks +- ``brainpy.dyn`` for modeling dynamics models diff --git a/docs_version2/apis/deprecated/layers.rst b/docs_version2/apis/deprecated/layers.rst index 23e8a95a0..fc30e063c 100644 --- a/docs_version2/apis/deprecated/layers.rst +++ b/docs_version2/apis/deprecated/layers.rst @@ -1,19 +1,19 @@ -``brainpy.version2.layers`` module +``brainpy.layers`` module ================================== -.. currentmodule:: brainpy.version2.layers -.. automodule:: brainpy.version2.layers +.. currentmodule:: brainpy.layers +.. automodule:: brainpy.layers -``brainpy.version2.layers`` module is deprecated and has been renamed as ``brainpy.version2.dnn``. Although all models -can be accessed through ``brainpy.version2.layers.xxx`` as old version of BrainPy, we recommend -users to use ``brainpy.version2.dnn.xxx`` instead. +``brainpy.layers`` module is deprecated and has been renamed as ``brainpy.dnn``. Although all models +can be accessed through ``brainpy.layers.xxx`` as old version of BrainPy, we recommend +users to use ``brainpy.dnn.xxx`` instead. In general, from ``brainpy>=2.4.3``, we provide two modules: -- ``brainpy.version2.dnn`` for modeling deep neural networks -- ``brainpy.version2.dyn`` for modeling brain dynamics models +- ``brainpy.dnn`` for modeling deep neural networks +- ``brainpy.dyn`` for modeling brain dynamics models diff --git a/docs_version2/apis/deprecated/neurons.rst b/docs_version2/apis/deprecated/neurons.rst index f71ebbf93..1f7d28fc5 100644 --- a/docs_version2/apis/deprecated/neurons.rst +++ b/docs_version2/apis/deprecated/neurons.rst @@ -1,25 +1,25 @@ -``brainpy.version2.neurons`` module +``brainpy.neurons`` module =================================== -.. currentmodule:: brainpy.version2.neurons -.. automodule:: brainpy.version2.neurons +.. currentmodule:: brainpy.neurons +.. automodule:: brainpy.neurons .. contents:: :local: :depth: 1 -From ``brainpy>=2.4.3``, most of models in ``brainpy.version2.neurons`` have been -reimplemented with ``brainpy.version2.dyn`` module. +From ``brainpy>=2.4.3``, most of models in ``brainpy.neurons`` have been +reimplemented with ``brainpy.dyn`` module. -However, ``brainpy.version2.neurons`` is still independent from ``brainpy.version2.dyn`` module. +However, ``brainpy.neurons`` is still independent from ``brainpy.dyn`` module. -The most significant difference between models in ``brainpy.version2.neurons`` and ``brainpy.version2.dyn`` is that: +The most significant difference between models in ``brainpy.neurons`` and ``brainpy.dyn`` is that: - the former only support the integration style without liquid time constant (which means that the time constants in these neuron models are fixed once initialization) - the former supports the integration with SDE by specifying the ``noise`` parameter. For example, - ``brainpy.version2.neurons.HH(size, ..., noise=1.)`` + ``brainpy.neurons.HH(size, ..., noise=1.)`` - the former has one additional ``input`` variable for receiving external inputs. diff --git a/docs_version2/apis/deprecated/rates.rst b/docs_version2/apis/deprecated/rates.rst index fc35f0b24..c514e3e7d 100644 --- a/docs_version2/apis/deprecated/rates.rst +++ b/docs_version2/apis/deprecated/rates.rst @@ -1,20 +1,20 @@ -``brainpy.version2.rates`` module +``brainpy.rates`` module ================================= -.. currentmodule:: brainpy.version2.rates -.. automodule:: brainpy.version2.rates +.. currentmodule:: brainpy.rates +.. automodule:: brainpy.rates -``brainpy.version2.rates`` module is deprecated and has been renamed as ``brainpy.version2.dyn``. Although all models -can be accessed through ``brainpy.version2.rates.xxx`` as old version of BrainPy, we recommend -users to use ``brainpy.version2.dyn.xxx`` instead. +``brainpy.rates`` module is deprecated and has been renamed as ``brainpy.dyn``. Although all models +can be accessed through ``brainpy.rates.xxx`` as old version of BrainPy, we recommend +users to use ``brainpy.dyn.xxx`` instead. In general, from ``brainpy>=2.4.3``, we provide two modules: -- ``brainpy.version2.dnn`` for modeling deep neural networks -- ``brainpy.version2.dyn`` for modeling brain dynamics models +- ``brainpy.dnn`` for modeling deep neural networks +- ``brainpy.dyn`` for modeling brain dynamics models diff --git a/docs_version2/apis/deprecated/synapses.rst b/docs_version2/apis/deprecated/synapses.rst index db74021f7..d36485da6 100644 --- a/docs_version2/apis/deprecated/synapses.rst +++ b/docs_version2/apis/deprecated/synapses.rst @@ -1,15 +1,15 @@ -``brainpy.version2.synapses`` module +``brainpy.synapses`` module ==================================== -.. currentmodule:: brainpy.version2.synapses -.. automodule:: brainpy.version2.synapses +.. currentmodule:: brainpy.synapses +.. automodule:: brainpy.synapses -From ``brainpy>=2.4.3``, most of models in ``brainpy.version2.synapses`` have been reimplemented -with ``brainpy.version2.dyn`` module. +From ``brainpy>=2.4.3``, most of models in ``brainpy.synapses`` have been reimplemented +with ``brainpy.dyn`` module. -However, ``brainpy.version2.synapses`` is still independent from ``brainpy.version2.dyn`` module. +However, ``brainpy.synapses`` is still independent from ``brainpy.dyn`` module. Synaptic Dynamics diff --git a/docs_version2/apis/deprecated/synouts.rst b/docs_version2/apis/deprecated/synouts.rst index dc442fc7a..836577064 100644 --- a/docs_version2/apis/deprecated/synouts.rst +++ b/docs_version2/apis/deprecated/synouts.rst @@ -1,8 +1,8 @@ -``brainpy.version2.synouts`` module +``brainpy.synouts`` module =================================== -.. currentmodule:: brainpy.version2.synouts -.. automodule:: brainpy.version2.synouts +.. currentmodule:: brainpy.synouts +.. automodule:: brainpy.synouts .. autosummary:: diff --git a/docs_version2/apis/deprecated/synplast.rst b/docs_version2/apis/deprecated/synplast.rst index d31170df8..c61182f03 100644 --- a/docs_version2/apis/deprecated/synplast.rst +++ b/docs_version2/apis/deprecated/synplast.rst @@ -1,8 +1,8 @@ -``brainpy.version2.synplast`` module +``brainpy.synplast`` module ==================================== -.. currentmodule:: brainpy.version2.synplast -.. automodule:: brainpy.version2.synplast +.. currentmodule:: brainpy.synplast +.. automodule:: brainpy.synplast .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/dnn.rst b/docs_version2/apis/dnn.rst index 72b69dcbc..525baa5e2 100644 --- a/docs_version2/apis/dnn.rst +++ b/docs_version2/apis/dnn.rst @@ -1,8 +1,8 @@ -``brainpy.version2.dnn`` module +``brainpy.dnn`` module =============================== -.. currentmodule:: brainpy.version2.dnn -.. automodule:: brainpy.version2.dnn +.. currentmodule:: brainpy.dnn +.. automodule:: brainpy.dnn .. contents:: :local: diff --git a/docs_version2/apis/dyn.rst b/docs_version2/apis/dyn.rst index 347961731..33c1a00cd 100644 --- a/docs_version2/apis/dyn.rst +++ b/docs_version2/apis/dyn.rst @@ -1,4 +1,4 @@ -``brainpy.version2.dyn`` module +``brainpy.dyn`` module =============================== diff --git a/docs_version2/apis/encoding.rst b/docs_version2/apis/encoding.rst index 23addb512..33ac53df1 100644 --- a/docs_version2/apis/encoding.rst +++ b/docs_version2/apis/encoding.rst @@ -1,8 +1,8 @@ -``brainpy.version2.encoding`` module +``brainpy.encoding`` module ==================================== -.. currentmodule:: brainpy.version2.encoding -.. automodule:: brainpy.version2.encoding +.. currentmodule:: brainpy.encoding +.. automodule:: brainpy.encoding .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/initialize.rst b/docs_version2/apis/initialize.rst index 7baf1c96d..11bcf69a0 100644 --- a/docs_version2/apis/initialize.rst +++ b/docs_version2/apis/initialize.rst @@ -1,8 +1,8 @@ -``brainpy.version2.initialize`` module +``brainpy.initialize`` module ====================================== -.. currentmodule:: brainpy.version2.initialize -.. automodule:: brainpy.version2.initialize +.. currentmodule:: brainpy.initialize +.. automodule:: brainpy.initialize .. contents:: :local: diff --git a/docs_version2/apis/inputs.rst b/docs_version2/apis/inputs.rst index 3817608d5..0c692a66e 100644 --- a/docs_version2/apis/inputs.rst +++ b/docs_version2/apis/inputs.rst @@ -1,8 +1,8 @@ -``brainpy.version2.inputs`` module +``brainpy.inputs`` module ================================== -.. currentmodule:: brainpy.version2.inputs -.. automodule:: brainpy.version2.inputs +.. currentmodule:: brainpy.inputs +.. automodule:: brainpy.inputs .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/integrators.rst b/docs_version2/apis/integrators.rst index a70b6af98..e787450f0 100644 --- a/docs_version2/apis/integrators.rst +++ b/docs_version2/apis/integrators.rst @@ -1,8 +1,8 @@ -``brainpy.version2.integrators`` module +``brainpy.integrators`` module ======================================= -.. currentmodule:: brainpy.version2.integrators -.. automodule:: brainpy.version2.integrators +.. currentmodule:: brainpy.integrators +.. automodule:: brainpy.integrators .. contents:: :local: @@ -11,8 +11,8 @@ ODE integrators --------------- -.. currentmodule:: brainpy.version2.integrators.ode -.. automodule:: brainpy.version2.integrators.ode +.. currentmodule:: brainpy.integrators.ode +.. automodule:: brainpy.integrators.ode Base ODE Integrator ~~~~~~~~~~~~~~~~~~~ @@ -93,8 +93,8 @@ Exponential ODE Integrators SDE integrators --------------- -.. currentmodule:: brainpy.version2.integrators.sde -.. automodule:: brainpy.version2.integrators.sde +.. currentmodule:: brainpy.integrators.sde +.. automodule:: brainpy.integrators.sde Base SDE Integrator ~~~~~~~~~~~~~~~~~~~ @@ -152,8 +152,8 @@ SRK methods for scalar Wiener process FDE integrators --------------- -.. currentmodule:: brainpy.version2.integrators.fde -.. automodule:: brainpy.version2.integrators.fde +.. currentmodule:: brainpy.integrators.fde +.. automodule:: brainpy.integrators.fde Base FDE Integrator ~~~~~~~~~~~~~~~~~~~ diff --git a/docs_version2/apis/losses.rst b/docs_version2/apis/losses.rst index c37c145a8..b8c077bde 100644 --- a/docs_version2/apis/losses.rst +++ b/docs_version2/apis/losses.rst @@ -1,8 +1,8 @@ -``brainpy.version2.losses`` module +``brainpy.losses`` module ================================== -.. currentmodule:: brainpy.version2.losses -.. automodule:: brainpy.version2.losses +.. currentmodule:: brainpy.losses +.. automodule:: brainpy.losses .. contents:: :local: diff --git a/docs_version2/apis/math.rst b/docs_version2/apis/math.rst index a264eeb4d..597f466f5 100644 --- a/docs_version2/apis/math.rst +++ b/docs_version2/apis/math.rst @@ -1,4 +1,4 @@ -``brainpy.version2.math`` module +``brainpy.math`` module ================================ .. contents:: @@ -6,7 +6,7 @@ :depth: 1 -The `brainpy.version2.math` module provides the mathematical foundation for brain dynamics programming in the BrainPy framework. +The `brainpy.math` module provides the mathematical foundation for brain dynamics programming in the BrainPy framework. This module contains various mathematical functions and utilities that are commonly used in brain dynamics simulations, such as random number generation, mathematical operators, and object-oriented transformations. These functions are @@ -16,7 +16,7 @@ These mathematical functions are essential for implementing brain dynamics model the BrainPy framework. They provide a solid mathematical foundation for modeling and analyzing the complex dynamics of neural systems. -Note: The `brainpy.version2.math` module is part of the BrainPy library, which is an open-source framework for brain +Note: The `brainpy.math` module is part of the BrainPy library, which is an open-source framework for brain dynamics programming. For more information and usage examples, please refer to the official documentation. diff --git a/docs_version2/apis/measure.rst b/docs_version2/apis/measure.rst index cc4ec9a0a..774667d8f 100644 --- a/docs_version2/apis/measure.rst +++ b/docs_version2/apis/measure.rst @@ -1,8 +1,8 @@ -``brainpy.version2.measure`` module +``brainpy.measure`` module =================================== -.. currentmodule:: brainpy.version2.measure -.. automodule:: brainpy.version2.measure +.. currentmodule:: brainpy.measure +.. automodule:: brainpy.measure .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/mixin.rst b/docs_version2/apis/mixin.rst index bc3903fd6..d3d9f59f5 100644 --- a/docs_version2/apis/mixin.rst +++ b/docs_version2/apis/mixin.rst @@ -1,8 +1,8 @@ -``brainpy.version2.mixin`` module +``brainpy.mixin`` module ================================= -.. currentmodule:: brainpy.version2.mixin -.. automodule:: brainpy.version2.mixin +.. currentmodule:: brainpy.mixin +.. automodule:: brainpy.mixin .. autosummary:: :toctree: generated/ diff --git a/docs_version2/apis/optim.rst b/docs_version2/apis/optim.rst index 1bb838a60..ea41f937f 100644 --- a/docs_version2/apis/optim.rst +++ b/docs_version2/apis/optim.rst @@ -1,8 +1,8 @@ -``brainpy.version2.optim`` module +``brainpy.optim`` module ================================= -.. currentmodule:: brainpy.version2.optim -.. automodule:: brainpy.version2.optim +.. currentmodule:: brainpy.optim +.. automodule:: brainpy.optim .. contents:: :local: diff --git a/docs_version2/apis/running.rst b/docs_version2/apis/running.rst index 6780c4912..3ca713724 100644 --- a/docs_version2/apis/running.rst +++ b/docs_version2/apis/running.rst @@ -1,8 +1,8 @@ -``brainpy.version2.running`` module +``brainpy.running`` module =================================== -.. currentmodule:: brainpy.version2.running -.. automodule:: brainpy.version2.running +.. currentmodule:: brainpy.running +.. automodule:: brainpy.running .. autosummary:: :toctree: generated/ diff --git a/docs_version2/auto_generater.py b/docs_version2/auto_generater.py index 2c4edd711..2f076f7cb 100644 --- a/docs_version2/auto_generater.py +++ b/docs_version2/auto_generater.py @@ -301,8 +301,8 @@ def _generate_comparison_rst(numpy_mod, brainpy_mod, jax_mod, klass=None, header '', '**Summary**\n', '- Number of NumPy functions: {}\n'.format(len(np_funcs)), - '- Number of functions covered by ``brainpy.version2.math``: {}\n'.format(len(bm_funcs & np_funcs)), - '- Number of functions unique in ``brainpy.version2.math``: {}\n'.format(len(bm_funcs - np_funcs)), + '- Number of functions covered by ``brainpy.math``: {}\n'.format(len(bm_funcs & np_funcs)), + '- Number of functions unique in ``brainpy.math``: {}\n'.format(len(bm_funcs - np_funcs)), '- Number of functions covered by ``jax.numpy``: {}\n'.format(len(jax_funcs & np_funcs)), ] return buf @@ -310,7 +310,7 @@ def _generate_comparison_rst(numpy_mod, brainpy_mod, jax_mod, klass=None, header def _section(header, numpy_mod, brainpy_mod, jax_mod, klass=None, is_jax=False): buf = [header, '-' * len(header), '', ] - header2 = 'NumPy, brainpy.version2.math, jax.numpy' + header2 = 'NumPy, brainpy.math, jax.numpy' buf += _generate_comparison_rst(numpy_mod, brainpy_mod, jax_mod, klass=klass, header=header2, is_jax=is_jax) buf += [''] return buf @@ -318,7 +318,7 @@ def _section(header, numpy_mod, brainpy_mod, jax_mod, klass=None, is_jax=False): def generate_analysis_docs(): _write_subsections( - module_name='brainpy.version2.analysis', + module_name='brainpy.analysis', filename='apis/auto/analysis.rst', subsections={ 'Low-dimensional Analyzers': ['PhasePlane1D', @@ -334,8 +334,8 @@ def generate_analysis_docs(): def generate_connect_docs(): _write_subsections_v2( - 'brainpy.version2.connect', - 'brainpy.version2.connect', + 'brainpy.connect', + 'brainpy.connect', 'apis/auto/connect.rst', subsections={ 'base': 'Base Connection Classes and Tools', @@ -348,8 +348,8 @@ def generate_connect_docs(): def generate_channels_docs(): _write_subsections_v2( - 'brainpy.version2.channels', - 'brainpy.version2.channels', + 'brainpy.channels', + 'brainpy.channels', 'apis/auto/channels.rst', subsections={ 'base': 'Basic Channel Classes', @@ -364,15 +364,15 @@ def generate_channels_docs(): def generate_encoding_docs(): - _write_module(module_name='brainpy.version2.encoding', + _write_module(module_name='brainpy.encoding', filename='apis/auto/encoding.rst', - header='``brainpy.version2.encoding`` module') + header='``brainpy.encoding`` module') def generate_initialize_docs(): _write_subsections_v2( - 'brainpy.version2.initialize', - 'brainpy.version2.initialize', + 'brainpy.initialize', + 'brainpy.initialize', 'apis/auto/initialize.rst', subsections={ 'base': 'Basic Initialization Classes', @@ -384,21 +384,21 @@ def generate_initialize_docs(): def generate_inputs_docs(): - _write_module(module_name='brainpy.version2.inputs', + _write_module(module_name='brainpy.inputs', filename='apis/auto/inputs.rst', - header='``brainpy.version2.inputs`` module') + header='``brainpy.inputs`` module') def generate_mixin_docs(): - _write_module(module_name='brainpy.version2.mixin', + _write_module(module_name='brainpy.mixin', filename='apis/auto/mixin.rst', - header='``brainpy.version2.mixin`` module') + header='``brainpy.mixin`` module') def generate_dnn_docs(): _write_subsections_v2( - 'brainpy.version2.dnn', - 'brainpy.version2.dnn', + 'brainpy.dnn', + 'brainpy.dnn', 'apis/auto/dnn.rst', subsections={ 'activations': 'Non-linear Activations', @@ -414,8 +414,8 @@ def generate_dnn_docs(): def generate_dyn_docs(): _write_subsections_v2( - 'brainpy.version2.dyn', - 'brainpy.version2.dyn', + 'brainpy.dyn', + 'brainpy.dyn', 'apis/auto/dyn.rst', subsections={ 'base': 'Base Classes', @@ -433,8 +433,8 @@ def generate_dyn_docs(): def generate_losses_docs(): _write_subsections_v2( - 'brainpy.version2.losses', - 'brainpy.version2.losses', + 'brainpy.losses', + 'brainpy.losses', 'apis/auto/losses.rst', subsections={ 'comparison': 'Comparison', @@ -444,15 +444,15 @@ def generate_losses_docs(): def generate_measure_docs(): - _write_module(module_name='brainpy.version2.measure', + _write_module(module_name='brainpy.measure', filename='apis/auto/measure.rst', - header='``brainpy.version2.measure`` module') + header='``brainpy.measure`` module') def generate_neurons_docs(): _write_subsections_v2( - 'brainpy.version2.neurons', - 'brainpy.version2.neurons', + 'brainpy.neurons', + 'brainpy.neurons', 'apis/auto/neurons.rst', subsections={ 'biological_models': 'Biological Models', @@ -466,8 +466,8 @@ def generate_neurons_docs(): def generate_optim_docs(): _write_subsections_v2( - 'brainpy.version2.optim', - 'brainpy.version2.optim', + 'brainpy.optim', + 'brainpy.optim', 'apis/auto/optim.rst', subsections={ 'optimizer': 'Optimizers', @@ -477,35 +477,35 @@ def generate_optim_docs(): def generate_rates_docs(): - _write_module(module_name='brainpy.version2.rates', + _write_module(module_name='brainpy.rates', filename='apis/auto/rates.rst', - header='``brainpy.version2.rates`` module') + header='``brainpy.rates`` module') def generate_running_docs(): - _write_module(module_name='brainpy.version2.running', + _write_module(module_name='brainpy.running', filename='apis/auto/running.rst', - header='``brainpy.version2.running`` module') + header='``brainpy.running`` module') def generate_synapses_docs(): - _write_module(module_name='brainpy.version2.synapses', + _write_module(module_name='brainpy.synapses', filename='apis/auto/synapses.rst', - header='``brainpy.version2.synapses`` module') + header='``brainpy.synapses`` module') - _write_module(module_name='brainpy.version2.synouts', + _write_module(module_name='brainpy.synouts', filename='apis/auto/synouts.rst', - header='``brainpy.version2.synouts`` module') + header='``brainpy.synouts`` module') - _write_module(module_name='brainpy.version2.synplast', + _write_module(module_name='brainpy.synplast', filename='apis/auto/synplast.rst', - header='``brainpy.version2.synplast`` module') + header='``brainpy.synplast`` module') def generate_brainpy_docs(): _write_subsections( module_name='brainpy', - filename='apis/auto/brainpy.version2.rst', + filename='apis/auto/brainpy.rst', subsections={ 'Numerical Differential Integration': ['Integrator', 'JointEq', @@ -535,8 +535,8 @@ def generate_brainpy_docs(): def generate_integrators_doc(): _write_subsections_v3( - 'brainpy.version2.integrators', - 'brainpy.version2.integrators', + 'brainpy.integrators', + 'brainpy.integrators', 'apis/auto/integrators.rst', subsections={ 'ode': {'header': 'ODE integrators', @@ -562,27 +562,27 @@ def generate_integrators_doc(): def generate_math_docs(): _write_subsections_v4( - 'brainpy.version2.math', + 'brainpy.math', 'apis/auto/math.rst', subsections={ - 'object_base': ('Objects and Variables', 'brainpy.version2.math'), - 'object_transform': ('Object-oriented Transformations', 'brainpy.version2.math'), - 'environment': ('Environment Settings', 'brainpy.version2.math'), - # 'compat_numpy': ('Dense Operators with NumPy Syntax', 'brainpy.version2.math'), - # 'compat_pytorch': ('Dense Operators with PyTorch Syntax', 'brainpy.version2.math'), - # 'compat_tensorflow': ('Dense Operators with TensorFlow Syntax', 'brainpy.version2.math'), - 'interoperability': ('Array Interoperability', 'brainpy.version2.math'), - 'pre_syn_post': ('Operators for Pre-Syn-Post Conversion', 'brainpy.version2.math'), - 'activations': ('Activation Functions', 'brainpy.version2.math'), - 'delayvars': ('Delay Variables', 'brainpy.version2.math'), - 'modes': ('Computing Modes', 'brainpy.version2.math'), - 'sparse': ('``brainpy.version2.math.sparse`` module: Sparse Operators', 'brainpy.version2.math.sparse'), - 'event': ('``brainpy.version2.math.event`` module: Event-driven Operators', 'brainpy.version2.math.event'), - 'jitconn': ('``brainpy.version2.math.jitconn`` module: Just-In-Time Connectivity Operators', 'brainpy.version2.math.jitconn'), - 'surrogate': ('``brainpy.version2.math.surrogate`` module: Surrogate Gradient Functions', 'brainpy.version2.math.surrogate'), - 'random': ('``brainpy.version2.math.random`` module: Random Number Generations', 'brainpy.version2.math.random'), - 'linalg': ('``brainpy.version2.math.linalg`` module: Linear algebra', 'brainpy.version2.math.linalg'), - 'fft': ('``brainpy.version2.math.fft`` module: Discrete Fourier Transform', 'brainpy.version2.math.fft'), + 'object_base': ('Objects and Variables', 'brainpy.math'), + 'object_transform': ('Object-oriented Transformations', 'brainpy.math'), + 'environment': ('Environment Settings', 'brainpy.math'), + # 'compat_numpy': ('Dense Operators with NumPy Syntax', 'brainpy.math'), + # 'compat_pytorch': ('Dense Operators with PyTorch Syntax', 'brainpy.math'), + # 'compat_tensorflow': ('Dense Operators with TensorFlow Syntax', 'brainpy.math'), + 'interoperability': ('Array Interoperability', 'brainpy.math'), + 'pre_syn_post': ('Operators for Pre-Syn-Post Conversion', 'brainpy.math'), + 'activations': ('Activation Functions', 'brainpy.math'), + 'delayvars': ('Delay Variables', 'brainpy.math'), + 'modes': ('Computing Modes', 'brainpy.math'), + 'sparse': ('``brainpy.math.sparse`` module: Sparse Operators', 'brainpy.math.sparse'), + 'event': ('``brainpy.math.event`` module: Event-driven Operators', 'brainpy.math.event'), + 'jitconn': ('``brainpy.math.jitconn`` module: Just-In-Time Connectivity Operators', 'brainpy.math.jitconn'), + 'surrogate': ('``brainpy.math.surrogate`` module: Surrogate Gradient Functions', 'brainpy.math.surrogate'), + 'random': ('``brainpy.math.random`` module: Random Number Generations', 'brainpy.math.random'), + 'linalg': ('``brainpy.math.linalg`` module: Linear algebra', 'brainpy.math.linalg'), + 'fft': ('``brainpy.math.fft`` module: Discrete Fourier Transform', 'brainpy.math.fft'), } ) @@ -595,8 +595,8 @@ def generate_algorithm_docs(path='apis/auto/algorithms/'): ('online', 'Online Training Algorithms'), ('utils', 'Training Algorithm Utilities'), ] - _write_submodules(module_name='brainpy.version2.algorithms', + _write_submodules(module_name='brainpy.algorithms', filename=os.path.join(path, 'algorithms.rst'), - header='``brainpy.version2.algorithms`` module', + header='``brainpy.algorithms`` module', submodule_names=[k[0] for k in module_and_name], section_names=[k[1] for k in module_and_name]) diff --git a/docs_version2/core_concept/brainpy_dynamical_system.ipynb b/docs_version2/core_concept/brainpy_dynamical_system.ipynb index 70e8f1da2..cf239b5a0 100644 --- a/docs_version2/core_concept/brainpy_dynamical_system.ipynb +++ b/docs_version2/core_concept/brainpy_dynamical_system.ipynb @@ -40,8 +40,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/core_concept/brainpy_transform_concept.ipynb b/docs_version2/core_concept/brainpy_transform_concept.ipynb index eed830b93..e59cc066c 100644 --- a/docs_version2/core_concept/brainpy_transform_concept.ipynb +++ b/docs_version2/core_concept/brainpy_transform_concept.ipynb @@ -44,8 +44,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/index.rst b/docs_version2/index.rst index 946947ea4..ca06cdf88 100644 --- a/docs_version2/index.rst +++ b/docs_version2/index.rst @@ -9,29 +9,6 @@ general-purpose Brain Dynamics Programming (BDP). .. _BrainPy: https://github.com/brainpy/BrainPy - -.. note:: - - From September 2025, BrainPy has been upgraded to version 3.x. - To compatible apis within version 2.x. Please change your code: - - .. code-block:: python - - # Old version (v2.x) - import brainpy as bp - import brainpy.math as bm - - to the new version: - - - .. code-block:: python - - # New version (v3.x) - import brainpy.version2 as bp - import brainpy.version2.math as bm - - - ---- Installation @@ -127,7 +104,7 @@ Learn more .. card:: :material-regular:`settings;2em` Examples :class-card: sd-text-black sd-bg-light - :link: https://brainpy-v2.readthedocs.io/projects/examples/ + :link: https://brainpy-examples.readthedocs.io .. grid-item:: :columns: 6 6 6 4 @@ -143,10 +120,6 @@ Learn more in mind what BrainPy version you are using. -.. note:: - ``BrainPy>=3.0.0`` is rewritten based on `brainstate `_ since August 2025. - - ---- diff --git a/docs_version2/quickstart/analysis.ipynb b/docs_version2/quickstart/analysis.ipynb index 8970d816e..410c4dd33 100644 --- a/docs_version2/quickstart/analysis.ipynb +++ b/docs_version2/quickstart/analysis.ipynb @@ -43,8 +43,8 @@ }, "cell_type": "code", "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/quickstart/simulation.ipynb b/docs_version2/quickstart/simulation.ipynb index d761c7149..1b87c0460 100644 --- a/docs_version2/quickstart/simulation.ipynb +++ b/docs_version2/quickstart/simulation.ipynb @@ -41,8 +41,8 @@ "source": [ "import numpy as np\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/quickstart/training.ipynb b/docs_version2/quickstart/training.ipynb index f5335ff5e..de5eca2cf 100644 --- a/docs_version2/quickstart/training.ipynb +++ b/docs_version2/quickstart/training.ipynb @@ -37,8 +37,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import brainpy_datasets as bd\n", "import matplotlib.pyplot as plt\n", "\n", diff --git a/docs_version2/tutorial_FAQs/gotchas_of_brainpy_transforms.ipynb b/docs_version2/tutorial_FAQs/gotchas_of_brainpy_transforms.ipynb index 2a396230e..ea5675711 100644 --- a/docs_version2/tutorial_FAQs/gotchas_of_brainpy_transforms.ipynb +++ b/docs_version2/tutorial_FAQs/gotchas_of_brainpy_transforms.ipynb @@ -22,8 +22,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_FAQs/how_to_debug.ipynb b/docs_version2/tutorial_FAQs/how_to_debug.ipynb index 44fea69c4..4d0bdcda6 100644 --- a/docs_version2/tutorial_FAQs/how_to_debug.ipynb +++ b/docs_version2/tutorial_FAQs/how_to_debug.ipynb @@ -23,8 +23,8 @@ }, "source": [ "import jax\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_FAQs/uniqueness_of-brainpy-math.ipynb b/docs_version2/tutorial_FAQs/uniqueness_of-brainpy-math.ipynb index d4b86807d..0313a57f0 100644 --- a/docs_version2/tutorial_FAQs/uniqueness_of-brainpy-math.ipynb +++ b/docs_version2/tutorial_FAQs/uniqueness_of-brainpy-math.ipynb @@ -30,8 +30,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bp.math.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_advanced/advanced_lowdim_analysis.ipynb b/docs_version2/tutorial_advanced/advanced_lowdim_analysis.ipynb index f7b76311d..62a8a1851 100644 --- a/docs_version2/tutorial_advanced/advanced_lowdim_analysis.ipynb +++ b/docs_version2/tutorial_advanced/advanced_lowdim_analysis.ipynb @@ -54,8 +54,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "# bp.math.set_platform('cpu')\n", "bp.math.enable_x64() # It's better to enable x64 when performing analysis" diff --git a/docs_version2/tutorial_advanced/base_and_collector.ipynb b/docs_version2/tutorial_advanced/base_and_collector.ipynb index a388ec11c..00e23b713 100644 --- a/docs_version2/tutorial_advanced/base_and_collector.ipynb +++ b/docs_version2/tutorial_advanced/base_and_collector.ipynb @@ -41,8 +41,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "# bm.set_platform('cpu')" ], @@ -215,7 +215,7 @@ "UniqueNameError : In BrainPy, each object should have a unique name. However, we detect that <__main__.FHN object at 0x0000022AAEBAD2E0> has a used name \"Y\". \n", "If you try to run multiple trials, you may need \n", "\n", - ">>> brainpy.version2.math.clear_name_cache() \n", + ">>> brainpy.math.clear_name_cache() \n", "\n", "to clear all cached names. \n" ] @@ -391,7 +391,7 @@ { "data": { "text/plain": [ - "brainpy.version2.math.object_transform.collectors.ArrayCollector" + "brainpy.math.object_transform.collectors.ArrayCollector" ] }, "execution_count": 10, @@ -428,7 +428,7 @@ "data": { "text/plain": [ "{'FHN2': <__main__.FHN at 0x22aaebd6de0>,\n", - " 'RK44': }" + " 'RK44': }" ] }, "execution_count": 11, @@ -454,7 +454,7 @@ { "data": { "text/plain": [ - "brainpy.version2.math.object_transform.collectors.Collector" + "brainpy.math.object_transform.collectors.Collector" ] }, "execution_count": 12, @@ -490,7 +490,7 @@ { "data": { "text/plain": [ - "{'RK44': }" + "{'RK44': }" ] }, "execution_count": 13, @@ -516,7 +516,7 @@ { "data": { "text/plain": [ - "brainpy.version2.math.object_transform.collectors.Collector" + "brainpy.math.object_transform.collectors.Collector" ] }, "execution_count": 14, @@ -675,8 +675,8 @@ "{'FeedForwardCircuit0': <__main__.FeedForwardCircuit at 0x22aae606030>,\n", " 'FHN3': <__main__.FHN at 0x22aaebd6060>,\n", " 'FHN4': <__main__.FHN at 0x22aaebd5f10>,\n", - " 'RK45': ,\n", - " 'RK46': }" + " 'RK45': ,\n", + " 'RK46': }" ] }, "execution_count": 18, @@ -710,8 +710,8 @@ { "data": { "text/plain": [ - "{'RK45': ,\n", - " 'RK46': }" + "{'RK45': ,\n", + " 'RK46': }" ] }, "execution_count": 19, @@ -1055,8 +1055,8 @@ "{'': <__main__.FeedForwardCircuit at 0x22aae606030>,\n", " 'pre': <__main__.FHN at 0x22aaebd6060>,\n", " 'post': <__main__.FHN at 0x22aaebd5f10>,\n", - " 'pre.integral': ,\n", - " 'post.integral': }" + " 'pre.integral': ,\n", + " 'post.integral': }" ] }, "execution_count": 27, @@ -1091,7 +1091,7 @@ "data": { "text/plain": [ "{'': <__main__.FHN at 0x22aaebd6060>,\n", - " 'integral': }" + " 'integral': }" ] }, "execution_count": 28, @@ -1391,8 +1391,8 @@ "{'AnotherTest0': <__main__.AnotherTest at 0x22aae62d700>,\n", " 'T1': <__main__.FHN at 0x22aaebd7bc0>,\n", " 'T2': <__main__.FHN at 0x22aafef60f0>,\n", - " 'RK49': ,\n", - " 'RK410': }" + " 'RK49': ,\n", + " 'RK410': }" ] }, "execution_count": 37, diff --git a/docs_version2/tutorial_advanced/compilation.ipynb b/docs_version2/tutorial_advanced/compilation.ipynb index c9042b33d..7163bc88a 100644 --- a/docs_version2/tutorial_advanced/compilation.ipynb +++ b/docs_version2/tutorial_advanced/compilation.ipynb @@ -38,8 +38,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "# bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_advanced/differentiation.ipynb b/docs_version2/tutorial_advanced/differentiation.ipynb index 24d2e14f0..065fc2130 100644 --- a/docs_version2/tutorial_advanced/differentiation.ipynb +++ b/docs_version2/tutorial_advanced/differentiation.ipynb @@ -41,8 +41,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "# bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_advanced/integrate_bp_convlstm_into_flax.ipynb b/docs_version2/tutorial_advanced/integrate_bp_convlstm_into_flax.ipynb index 5926da1c2..868ab3678 100644 --- a/docs_version2/tutorial_advanced/integrate_bp_convlstm_into_flax.ipynb +++ b/docs_version2/tutorial_advanced/integrate_bp_convlstm_into_flax.ipynb @@ -33,8 +33,8 @@ "from flax.metrics import tensorboard\n", "from flax.training import train_state\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm" + "import brainpy as bp\n", + "import brainpy.math as bm" ] }, { diff --git a/docs_version2/tutorial_advanced/integrate_bp_lif_into_flax.ipynb b/docs_version2/tutorial_advanced/integrate_bp_lif_into_flax.ipynb index 8c0d1b22e..f5eac85de 100644 --- a/docs_version2/tutorial_advanced/integrate_bp_lif_into_flax.ipynb +++ b/docs_version2/tutorial_advanced/integrate_bp_lif_into_flax.ipynb @@ -35,8 +35,8 @@ "from flax.metrics import tensorboard\n", "from flax.training import train_state\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm" + "import brainpy as bp\n", + "import brainpy.math as bm" ] }, { diff --git a/docs_version2/tutorial_advanced/integrate_flax_into_brainpy.ipynb b/docs_version2/tutorial_advanced/integrate_flax_into_brainpy.ipynb index a1a59e343..42a562e25 100644 --- a/docs_version2/tutorial_advanced/integrate_flax_into_brainpy.ipynb +++ b/docs_version2/tutorial_advanced/integrate_flax_into_brainpy.ipynb @@ -27,8 +27,8 @@ }, "outputs": [], "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import brainpy_datasets as bd" ] }, diff --git a/docs_version2/tutorial_advanced/interoperation.ipynb b/docs_version2/tutorial_advanced/interoperation.ipynb index 9cbcc2efe..ae989d766 100644 --- a/docs_version2/tutorial_advanced/interoperation.ipynb +++ b/docs_version2/tutorial_advanced/interoperation.ipynb @@ -29,7 +29,7 @@ } }, "source": [ - "import brainpy.version2 as bp\n", + "import brainpy as bp\n", "import brainpy_datasets as bd" ], "outputs": [], @@ -44,7 +44,7 @@ } }, "source": [ - "import brainpy.version2.math as bm\n", + "import brainpy.math as bm\n", "import jax.numpy as jnp\n", "import numpy as np" ], diff --git a/docs_version2/tutorial_analysis/decision_making_model.ipynb b/docs_version2/tutorial_analysis/decision_making_model.ipynb index e5d93838f..ec02b1208 100644 --- a/docs_version2/tutorial_analysis/decision_making_model.ipynb +++ b/docs_version2/tutorial_analysis/decision_making_model.ipynb @@ -85,8 +85,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.enable_x64()\n", "bm.set_platform('cpu')" diff --git a/docs_version2/tutorial_analysis/highdim_analysis.ipynb b/docs_version2/tutorial_analysis/highdim_analysis.ipynb index 47fbc0f4a..c0d72c9a9 100644 --- a/docs_version2/tutorial_analysis/highdim_analysis.ipynb +++ b/docs_version2/tutorial_analysis/highdim_analysis.ipynb @@ -45,8 +45,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_analysis/lowdim_analysis.ipynb b/docs_version2/tutorial_analysis/lowdim_analysis.ipynb index 594cbde02..5682668a5 100644 --- a/docs_version2/tutorial_analysis/lowdim_analysis.ipynb +++ b/docs_version2/tutorial_analysis/lowdim_analysis.ipynb @@ -46,8 +46,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.enable_x64() # It's better to enable x64 when performing analysis\n", "bm.set_platform('cpu')\n", diff --git a/docs_version2/tutorial_building/build_conductance_neurons_v2.ipynb b/docs_version2/tutorial_building/build_conductance_neurons_v2.ipynb index 9daed27ea..aab67ea84 100644 --- a/docs_version2/tutorial_building/build_conductance_neurons_v2.ipynb +++ b/docs_version2/tutorial_building/build_conductance_neurons_v2.ipynb @@ -48,8 +48,8 @@ "source": [ "import numpy as np\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm" + "import brainpy as bp\n", + "import brainpy.math as bm" ], "outputs": [], "execution_count": 1 @@ -320,7 +320,7 @@ { "data": { "text/plain": [ - "brainpy.version2.dyn.ions.sodium.Sodium" + "brainpy.dyn.ions.sodium.Sodium" ] }, "execution_count": 5, @@ -354,7 +354,7 @@ { "data": { "text/plain": [ - "brainpy.version2.dyn.neurons.hh.HHTypedNeuron" + "brainpy.dyn.neurons.hh.HHTypedNeuron" ] }, "execution_count": 6, diff --git a/docs_version2/tutorial_building/build_network_models.ipynb b/docs_version2/tutorial_building/build_network_models.ipynb index 965a5c15a..83e4c90f0 100644 --- a/docs_version2/tutorial_building/build_network_models.ipynb +++ b/docs_version2/tutorial_building/build_network_models.ipynb @@ -49,8 +49,8 @@ "source": [ "import numpy as np\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_building/build_synapse_models.ipynb b/docs_version2/tutorial_building/build_synapse_models.ipynb index aea2ec0b9..7b305faf4 100644 --- a/docs_version2/tutorial_building/build_synapse_models.ipynb +++ b/docs_version2/tutorial_building/build_synapse_models.ipynb @@ -42,7 +42,7 @@ } }, "source": [ - "import brainpy.version2 as bp\n", + "import brainpy as bp\n", "\n", "bp.math.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_building/customize_dynamical_systems.ipynb b/docs_version2/tutorial_building/customize_dynamical_systems.ipynb index 2cd6ea7b8..966e31d6d 100644 --- a/docs_version2/tutorial_building/customize_dynamical_systems.ipynb +++ b/docs_version2/tutorial_building/customize_dynamical_systems.ipynb @@ -35,8 +35,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", @@ -316,7 +316,7 @@ "In BrainPy, each object should have a unique name. However, we detect that None(mode=NonBatchingMode) has a used name \"X\". \n", "If you try to run multiple trials, you may need \n", "\n", - ">>> brainpy.version2.math.clear_name_cache() \n", + ">>> brainpy.math.clear_name_cache() \n", "\n", "to clear all cached names. \n" ] diff --git a/docs_version2/tutorial_building/customize_neuron_models.ipynb b/docs_version2/tutorial_building/customize_neuron_models.ipynb index 0ac1bda6a..4631acb9b 100644 --- a/docs_version2/tutorial_building/customize_neuron_models.ipynb +++ b/docs_version2/tutorial_building/customize_neuron_models.ipynb @@ -39,8 +39,8 @@ "source": [ "import numpy as np\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_building/customize_synapse_models.ipynb b/docs_version2/tutorial_building/customize_synapse_models.ipynb index 54e62e51d..e6b6d6dab 100644 --- a/docs_version2/tutorial_building/customize_synapse_models.ipynb +++ b/docs_version2/tutorial_building/customize_synapse_models.ipynb @@ -37,8 +37,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_building/how_to_customze_a_synapse.ipynb b/docs_version2/tutorial_building/how_to_customze_a_synapse.ipynb index 6837fb96e..17f057e77 100644 --- a/docs_version2/tutorial_building/how_to_customze_a_synapse.ipynb +++ b/docs_version2/tutorial_building/how_to_customze_a_synapse.ipynb @@ -22,8 +22,8 @@ }, "source": [ "import numpy as np\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "import matplotlib.pyplot as plt" ], diff --git a/docs_version2/tutorial_building/kinetic_synapse_models.ipynb b/docs_version2/tutorial_building/kinetic_synapse_models.ipynb index 8e42493c2..f38a23650 100644 --- a/docs_version2/tutorial_building/kinetic_synapse_models.ipynb +++ b/docs_version2/tutorial_building/kinetic_synapse_models.ipynb @@ -22,8 +22,8 @@ }, "source": [ "import numpy as np\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "import matplotlib.pyplot as plt" ], diff --git a/docs_version2/tutorial_building/overview_of_dynamic_model.ipynb b/docs_version2/tutorial_building/overview_of_dynamic_model.ipynb index 2ae27d2df..f5494fdef 100644 --- a/docs_version2/tutorial_building/overview_of_dynamic_model.ipynb +++ b/docs_version2/tutorial_building/overview_of_dynamic_model.ipynb @@ -37,8 +37,8 @@ "source": [ "import numpy as np\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_building/phenon_synapse_models.ipynb b/docs_version2/tutorial_building/phenon_synapse_models.ipynb index 34894b738..ce38ce51e 100644 --- a/docs_version2/tutorial_building/phenon_synapse_models.ipynb +++ b/docs_version2/tutorial_building/phenon_synapse_models.ipynb @@ -22,8 +22,8 @@ }, "source": [ "import numpy as np\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "import matplotlib.pyplot as plt" ], diff --git a/docs_version2/tutorial_math/Dedicated_Operators.ipynb b/docs_version2/tutorial_math/Dedicated_Operators.ipynb index ca24c21f2..e0b22c10b 100644 --- a/docs_version2/tutorial_math/Dedicated_Operators.ipynb +++ b/docs_version2/tutorial_math/Dedicated_Operators.ipynb @@ -63,8 +63,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_math/Numpy_like_Operations.ipynb b/docs_version2/tutorial_math/Numpy_like_Operations.ipynb index cdab1e9a3..073743252 100644 --- a/docs_version2/tutorial_math/Numpy_like_Operations.ipynb +++ b/docs_version2/tutorial_math/Numpy_like_Operations.ipynb @@ -75,7 +75,7 @@ } }, "source": [ - "import brainpy.version2.math as bm\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_math/array.ipynb b/docs_version2/tutorial_math/array.ipynb index e6ada06fd..4bbf74ec0 100644 --- a/docs_version2/tutorial_math/array.ipynb +++ b/docs_version2/tutorial_math/array.ipynb @@ -71,7 +71,7 @@ } }, "source": [ - "import brainpy.version2.math as bm\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_math/arrays_and_variables.ipynb b/docs_version2/tutorial_math/arrays_and_variables.ipynb index a1b6ab4c2..eb365626b 100644 --- a/docs_version2/tutorial_math/arrays_and_variables.ipynb +++ b/docs_version2/tutorial_math/arrays_and_variables.ipynb @@ -119,7 +119,7 @@ } }, "source": [ - "import brainpy.version2.math as bm\n", + "import brainpy.math as bm\n", "\n", "# bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_math/control_flows.ipynb b/docs_version2/tutorial_math/control_flows.ipynb index 9b7599e6d..38fd1fe77 100644 --- a/docs_version2/tutorial_math/control_flows.ipynb +++ b/docs_version2/tutorial_math/control_flows.ipynb @@ -48,8 +48,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_math/einops_in_brainpy.ipynb b/docs_version2/tutorial_math/einops_in_brainpy.ipynb index aa873505f..804875d3f 100644 --- a/docs_version2/tutorial_math/einops_in_brainpy.ipynb +++ b/docs_version2/tutorial_math/einops_in_brainpy.ipynb @@ -46,7 +46,7 @@ "# so that numpy arrays in the output are displayed as images\n", "import numpy\n", "\n", - "import brainpy.version2.math as bm" + "import brainpy.math as bm" ], "outputs": [], "execution_count": 51 diff --git a/docs_version2/tutorial_math/random_number_generation.ipynb b/docs_version2/tutorial_math/random_number_generation.ipynb index cbb73805c..341613807 100644 --- a/docs_version2/tutorial_math/random_number_generation.ipynb +++ b/docs_version2/tutorial_math/random_number_generation.ipynb @@ -42,8 +42,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import numpy as np\n", "\n", "# bm.set_platform('cpu')" diff --git a/docs_version2/tutorial_math/variables.ipynb b/docs_version2/tutorial_math/variables.ipynb index 32342cef3..8ff792acc 100644 --- a/docs_version2/tutorial_math/variables.ipynb +++ b/docs_version2/tutorial_math/variables.ipynb @@ -44,8 +44,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "bp.__version__" diff --git a/docs_version2/tutorial_simulation/monitor_per_multiple_steps.ipynb b/docs_version2/tutorial_simulation/monitor_per_multiple_steps.ipynb index 6a9e1e23a..c8bb9ab66 100644 --- a/docs_version2/tutorial_simulation/monitor_per_multiple_steps.ipynb +++ b/docs_version2/tutorial_simulation/monitor_per_multiple_steps.ipynb @@ -36,8 +36,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2 .math as bm\n", + "import brainpy as bp\n", + "import brainpy .math as bm\n", "import numpy as np" ], "outputs": [], diff --git a/docs_version2/tutorial_simulation/parallel_for_parameter_exploration.ipynb b/docs_version2/tutorial_simulation/parallel_for_parameter_exploration.ipynb index 5115fd4d6..e6b5abd4a 100644 --- a/docs_version2/tutorial_simulation/parallel_for_parameter_exploration.ipynb +++ b/docs_version2/tutorial_simulation/parallel_for_parameter_exploration.ipynb @@ -44,8 +44,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2 .math as bm\n", + "import brainpy as bp\n", + "import brainpy .math as bm\n", "import numpy as np\n", "\n", "# bm.set_platform('cpu')" diff --git a/docs_version2/tutorial_simulation/simulation_dsrunner.ipynb b/docs_version2/tutorial_simulation/simulation_dsrunner.ipynb index 48ead5e6f..127975a84 100644 --- a/docs_version2/tutorial_simulation/simulation_dsrunner.ipynb +++ b/docs_version2/tutorial_simulation/simulation_dsrunner.ipynb @@ -40,8 +40,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_toolbox/dde_numerical_solvers.ipynb b/docs_version2/tutorial_toolbox/dde_numerical_solvers.ipynb index 3d8b42a57..853103cde 100644 --- a/docs_version2/tutorial_toolbox/dde_numerical_solvers.ipynb +++ b/docs_version2/tutorial_toolbox/dde_numerical_solvers.ipynb @@ -75,8 +75,8 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.enable_x64()\n", "\n", diff --git a/docs_version2/tutorial_toolbox/fde_numerical_solvers.ipynb b/docs_version2/tutorial_toolbox/fde_numerical_solvers.ipynb index 2c8f75412..749eaadd8 100644 --- a/docs_version2/tutorial_toolbox/fde_numerical_solvers.ipynb +++ b/docs_version2/tutorial_toolbox/fde_numerical_solvers.ipynb @@ -33,8 +33,8 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bp.__version__" ], diff --git a/docs_version2/tutorial_toolbox/inputs.ipynb b/docs_version2/tutorial_toolbox/inputs.ipynb index e7f470dbe..b0403ec64 100644 --- a/docs_version2/tutorial_toolbox/inputs.ipynb +++ b/docs_version2/tutorial_toolbox/inputs.ipynb @@ -40,8 +40,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bp.__version__" ], diff --git a/docs_version2/tutorial_toolbox/joint_equations.ipynb b/docs_version2/tutorial_toolbox/joint_equations.ipynb index 4f55fd4e3..833a8e5bf 100644 --- a/docs_version2/tutorial_toolbox/joint_equations.ipynb +++ b/docs_version2/tutorial_toolbox/joint_equations.ipynb @@ -36,7 +36,7 @@ "start_time": "2025-10-06T05:15:55.413203Z" } }, - "source": "import brainpy.version2 as bp", + "source": "import brainpy as bp", "outputs": [], "execution_count": 9 }, @@ -231,7 +231,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 15, @@ -279,14 +279,14 @@ " u_new = u + du_k1 * dt * 0.25 + du_k2 * dt * 0.75\n", " return V_new, u_new\n", "\n", - "{'f': }\n", + "{'f': }\n", "\n" ] }, { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 16, diff --git a/docs_version2/tutorial_toolbox/ode_numerical_solvers.ipynb b/docs_version2/tutorial_toolbox/ode_numerical_solvers.ipynb index 807bc7bcf..53bf089c5 100644 --- a/docs_version2/tutorial_toolbox/ode_numerical_solvers.ipynb +++ b/docs_version2/tutorial_toolbox/ode_numerical_solvers.ipynb @@ -40,8 +40,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import matplotlib.pyplot as plt\n", "\n", "bm.set_platform('cpu')\n", @@ -232,7 +232,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -320,7 +320,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -378,7 +378,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -806,7 +806,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 17, @@ -845,7 +845,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 18, @@ -876,7 +876,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 19, diff --git a/docs_version2/tutorial_toolbox/optimizers.ipynb b/docs_version2/tutorial_toolbox/optimizers.ipynb index 3c3b3c498..ff3b7b693 100644 --- a/docs_version2/tutorial_toolbox/optimizers.ipynb +++ b/docs_version2/tutorial_toolbox/optimizers.ipynb @@ -41,8 +41,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bp.math.set_platform('cpu')\n", "bp.__version__" @@ -448,8 +448,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "dt = 0.04\n", "num_step = int(1.0 / dt)\n", diff --git a/docs_version2/tutorial_toolbox/sde_numerical_solvers.ipynb b/docs_version2/tutorial_toolbox/sde_numerical_solvers.ipynb index 3e86f6495..0e72313ed 100644 --- a/docs_version2/tutorial_toolbox/sde_numerical_solvers.ipynb +++ b/docs_version2/tutorial_toolbox/sde_numerical_solvers.ipynb @@ -37,7 +37,7 @@ } }, "source": [ - "import brainpy.version2 as bp\n", + "import brainpy as bp\n", "\n", "bp.__version__" ], diff --git a/docs_version2/tutorial_toolbox/state_resetting.ipynb b/docs_version2/tutorial_toolbox/state_resetting.ipynb index a2ddd149e..fc11bc612 100644 --- a/docs_version2/tutorial_toolbox/state_resetting.ipynb +++ b/docs_version2/tutorial_toolbox/state_resetting.ipynb @@ -49,8 +49,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "class EINet(bp.DynSysGroup):\n", " def __init__(self):\n", diff --git a/docs_version2/tutorial_toolbox/state_saving_and_loading.ipynb b/docs_version2/tutorial_toolbox/state_saving_and_loading.ipynb index 20bda1733..541a3c998 100644 --- a/docs_version2/tutorial_toolbox/state_saving_and_loading.ipynb +++ b/docs_version2/tutorial_toolbox/state_saving_and_loading.ipynb @@ -42,8 +42,8 @@ "source": [ "import numpy as np\n", "\n", - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bp.math.set_platform('cpu')" ], diff --git a/docs_version2/tutorial_toolbox/synaptic_connections.ipynb b/docs_version2/tutorial_toolbox/synaptic_connections.ipynb index 2f9fba5ee..645e1c1fc 100644 --- a/docs_version2/tutorial_toolbox/synaptic_connections.ipynb +++ b/docs_version2/tutorial_toolbox/synaptic_connections.ipynb @@ -317,8 +317,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bp.math.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_toolbox/synaptic_weights.ipynb b/docs_version2/tutorial_toolbox/synaptic_weights.ipynb index c006762fe..18f33f048 100644 --- a/docs_version2/tutorial_toolbox/synaptic_weights.ipynb +++ b/docs_version2/tutorial_toolbox/synaptic_weights.ipynb @@ -37,8 +37,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", diff --git a/docs_version2/tutorial_training/bp_training.ipynb b/docs_version2/tutorial_training/bp_training.ipynb index 641b66e0f..9e3dea16a 100644 --- a/docs_version2/tutorial_training/bp_training.ipynb +++ b/docs_version2/tutorial_training/bp_training.ipynb @@ -31,8 +31,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import brainpy_datasets as bd\n", "import numpy as np\n", "\n", diff --git a/docs_version2/tutorial_training/build_training_models.ipynb b/docs_version2/tutorial_training/build_training_models.ipynb index 337eecd9f..ed54feda9 100644 --- a/docs_version2/tutorial_training/build_training_models.ipynb +++ b/docs_version2/tutorial_training/build_training_models.ipynb @@ -31,8 +31,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "bm.set_platform('cpu')\n", "\n", diff --git a/docs_version2/tutorial_training/esn_introduction.ipynb b/docs_version2/tutorial_training/esn_introduction.ipynb index fd2953e46..b73bf0832 100644 --- a/docs_version2/tutorial_training/esn_introduction.ipynb +++ b/docs_version2/tutorial_training/esn_introduction.ipynb @@ -31,8 +31,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "\n", "# enable x64 computation\n", "bm.set_environment(x64=True, mode=bm.batching_mode)\n", @@ -469,14 +469,14 @@ "outputs": [ { "ename": "AttributeError", - "evalue": "module 'brainpy.version2.layers' has no attribute 'Reservoir'", + "evalue": "module 'brainpy.layers' has no attribute 'Reservoir'", "output_type": "error", "traceback": [ "\u001B[31m---------------------------------------------------------------------------\u001B[39m", "\u001B[31mAttributeError\u001B[39m Traceback (most recent call last)", "\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[11]\u001B[39m\u001B[32m, line 1\u001B[39m\n\u001B[32m----> \u001B[39m\u001B[32m1\u001B[39m model = ESN(\u001B[32m1\u001B[39m, \u001B[32m100\u001B[39m, \u001B[32m1\u001B[39m)\n\u001B[32m 2\u001B[39m model.reset(\u001B[32m1\u001B[39m)\n\u001B[32m 3\u001B[39m trainer = bp.RidgeTrainer(model, alpha=\u001B[32m1e-6\u001B[39m)\n", "\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[10]\u001B[39m\u001B[32m, line 5\u001B[39m, in \u001B[36mESN.__init__\u001B[39m\u001B[34m(self, num_in, num_hidden, num_out, sr, leaky_rate, Win_initializer)\u001B[39m\n\u001B[32m 2\u001B[39m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34m__init__\u001B[39m(\u001B[38;5;28mself\u001B[39m, num_in, num_hidden, num_out, sr=\u001B[32m1.\u001B[39m, leaky_rate=\u001B[32m0.3\u001B[39m,\n\u001B[32m 3\u001B[39m Win_initializer=bp.init.Uniform(\u001B[32m0\u001B[39m, \u001B[32m0.2\u001B[39m)):\n\u001B[32m 4\u001B[39m \u001B[38;5;28msuper\u001B[39m(ESN, \u001B[38;5;28mself\u001B[39m).\u001B[34m__init__\u001B[39m()\n\u001B[32m----> \u001B[39m\u001B[32m5\u001B[39m \u001B[38;5;28mself\u001B[39m.r = bp.layers.Reservoir(\n\u001B[32m 6\u001B[39m num_in, num_hidden,\n\u001B[32m 7\u001B[39m Win_initializer=Win_initializer,\n\u001B[32m 8\u001B[39m spectral_radius=sr,\n\u001B[32m 9\u001B[39m leaky_rate=leaky_rate,\n\u001B[32m 10\u001B[39m )\n\u001B[32m 11\u001B[39m \u001B[38;5;28mself\u001B[39m.o = bp.layers.Dense(num_hidden, num_out, mode=bm.training_mode)\n", - "\u001B[31mAttributeError\u001B[39m: module 'brainpy.version2.layers' has no attribute 'Reservoir'" + "\u001B[31mAttributeError\u001B[39m: module 'brainpy.layers' has no attribute 'Reservoir'" ] } ], diff --git a/docs_version2/tutorial_training/offline_training.ipynb b/docs_version2/tutorial_training/offline_training.ipynb index 5eda1cee8..623168d9c 100644 --- a/docs_version2/tutorial_training/offline_training.ipynb +++ b/docs_version2/tutorial_training/offline_training.ipynb @@ -22,8 +22,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import brainpy_datasets as bd\n", "import matplotlib.pyplot as plt\n", "\n", diff --git a/docs_version2/tutorial_training/online_training.ipynb b/docs_version2/tutorial_training/online_training.ipynb index f00ad254b..49b76d8d7 100644 --- a/docs_version2/tutorial_training/online_training.ipynb +++ b/docs_version2/tutorial_training/online_training.ipynb @@ -22,8 +22,8 @@ } }, "source": [ - "import brainpy.version2 as bp\n", - "import brainpy.version2.math as bm\n", + "import brainpy as bp\n", + "import brainpy.math as bm\n", "import matplotlib.pyplot as plt\n", "import brainpy_datasets as bd\n", "\n", diff --git a/docs_version3/_static/css/theme.css b/docs_version3/_static/css/theme.css deleted file mode 100644 index b8207032d..000000000 --- a/docs_version3/_static/css/theme.css +++ /dev/null @@ -1,23 +0,0 @@ -@import url("theme.css"); - -.wy-nav-content { - max-width: 1290px; -} - -.rst-content table.docutils { - width: 100%; -} - -.rst-content table.docutils td { - vertical-align: top; - padding: 0; -} - -.rst-content table.docutils td p { - padding: 8px; -} - -.rst-content div[class^=highlight] { - border: 0; - margin: 0; -} diff --git a/examples_version3/102_EI_net_1996.py b/examples_state_based/102_EI_net_1996.py similarity index 98% rename from examples_version3/102_EI_net_1996.py rename to examples_state_based/102_EI_net_1996.py index 06f4ed912..8f64cd99f 100644 --- a/examples_version3/102_EI_net_1996.py +++ b/examples_state_based/102_EI_net_1996.py @@ -39,7 +39,7 @@ import brainunit as u import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/103_COBA_2005.py b/examples_state_based/103_COBA_2005.py similarity index 98% rename from examples_version3/103_COBA_2005.py rename to examples_state_based/103_COBA_2005.py index d86f71868..febefee45 100644 --- a/examples_version3/103_COBA_2005.py +++ b/examples_state_based/103_COBA_2005.py @@ -28,7 +28,7 @@ import brainunit as u import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/104_CUBA_2005.py b/examples_state_based/104_CUBA_2005.py similarity index 98% rename from examples_version3/104_CUBA_2005.py rename to examples_state_based/104_CUBA_2005.py index 60973ecb2..a7a0b7b19 100644 --- a/examples_version3/104_CUBA_2005.py +++ b/examples_state_based/104_CUBA_2005.py @@ -28,7 +28,7 @@ import brainunit as u import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/104_CUBA_2005_version2.py b/examples_state_based/104_CUBA_2005_version2.py similarity index 99% rename from examples_version3/104_CUBA_2005_version2.py rename to examples_state_based/104_CUBA_2005_version2.py index 55ab33bdb..46987db5e 100644 --- a/examples_version3/104_CUBA_2005_version2.py +++ b/examples_state_based/104_CUBA_2005_version2.py @@ -28,7 +28,7 @@ import brainunit as u import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/106_COBA_HH_2007.py b/examples_state_based/106_COBA_HH_2007.py similarity index 99% rename from examples_version3/106_COBA_HH_2007.py rename to examples_state_based/106_COBA_HH_2007.py index 9cd90cd35..804b56f49 100644 --- a/examples_version3/106_COBA_HH_2007.py +++ b/examples_state_based/106_COBA_HH_2007.py @@ -24,7 +24,7 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy +import brainpy.state_based as brainpy import brainstate # brainstate.environ.set(precision='bf16') diff --git a/examples_version3/107_gamma_oscillation_1996.py b/examples_state_based/107_gamma_oscillation_1996.py similarity index 99% rename from examples_version3/107_gamma_oscillation_1996.py rename to examples_state_based/107_gamma_oscillation_1996.py index d2866086e..2ff4853fd 100644 --- a/examples_version3/107_gamma_oscillation_1996.py +++ b/examples_state_based/107_gamma_oscillation_1996.py @@ -23,7 +23,7 @@ import brainunit as u import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/108_synfire_chains_199.py b/examples_state_based/108_synfire_chains_199.py similarity index 99% rename from examples_version3/108_synfire_chains_199.py rename to examples_state_based/108_synfire_chains_199.py index 1c3ef3c56..52f224373 100644 --- a/examples_version3/108_synfire_chains_199.py +++ b/examples_state_based/108_synfire_chains_199.py @@ -23,7 +23,7 @@ import jax import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/109_fast_global_oscillation.py b/examples_state_based/109_fast_global_oscillation.py similarity index 98% rename from examples_version3/109_fast_global_oscillation.py rename to examples_state_based/109_fast_global_oscillation.py index 9cd2f14c4..80df87f02 100644 --- a/examples_version3/109_fast_global_oscillation.py +++ b/examples_state_based/109_fast_global_oscillation.py @@ -25,7 +25,7 @@ import jax import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/110_Susin_Destexhe_2021_gamma_oscillation_AI.py b/examples_state_based/110_Susin_Destexhe_2021_gamma_oscillation_AI.py similarity index 99% rename from examples_version3/110_Susin_Destexhe_2021_gamma_oscillation_AI.py rename to examples_state_based/110_Susin_Destexhe_2021_gamma_oscillation_AI.py index 94ad80df3..5a20f6bea 100644 --- a/examples_version3/110_Susin_Destexhe_2021_gamma_oscillation_AI.py +++ b/examples_state_based/110_Susin_Destexhe_2021_gamma_oscillation_AI.py @@ -27,7 +27,7 @@ import brainunit as u import matplotlib.pyplot as plt -import brainpy +import brainpy.state_based as brainpy import brainstate from Susin_Destexhe_2021_gamma_oscillation import ( get_inputs, visualize_simulation_results, diff --git a/examples_version3/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py b/examples_state_based/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py similarity index 99% rename from examples_version3/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py rename to examples_state_based/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py index ed1190d26..961089d4a 100644 --- a/examples_version3/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py +++ b/examples_state_based/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py @@ -24,7 +24,7 @@ import brainunit as u -import brainpy +import brainpy.state_based as brainpy import brainstate from Susin_Destexhe_2021_gamma_oscillation import ( get_inputs, visualize_simulation_results, RS_par, FS_par, Ch_par, AdEx diff --git a/examples_version3/112_Susin_Destexhe_2021_gamma_oscillation_ING.py b/examples_state_based/112_Susin_Destexhe_2021_gamma_oscillation_ING.py similarity index 99% rename from examples_version3/112_Susin_Destexhe_2021_gamma_oscillation_ING.py rename to examples_state_based/112_Susin_Destexhe_2021_gamma_oscillation_ING.py index a8f6b67d6..0172504f2 100644 --- a/examples_version3/112_Susin_Destexhe_2021_gamma_oscillation_ING.py +++ b/examples_state_based/112_Susin_Destexhe_2021_gamma_oscillation_ING.py @@ -25,7 +25,7 @@ import brainunit as u -import brainpy +import brainpy.state_based as brainpy import brainstate from Susin_Destexhe_2021_gamma_oscillation import ( get_inputs, visualize_simulation_results, RS_par, FS_par, AdEx diff --git a/examples_version3/113_Susin_Destexhe_2021_gamma_oscillation_PING.py b/examples_state_based/113_Susin_Destexhe_2021_gamma_oscillation_PING.py similarity index 99% rename from examples_version3/113_Susin_Destexhe_2021_gamma_oscillation_PING.py rename to examples_state_based/113_Susin_Destexhe_2021_gamma_oscillation_PING.py index 3ee47aa92..1f1b53ac5 100644 --- a/examples_version3/113_Susin_Destexhe_2021_gamma_oscillation_PING.py +++ b/examples_state_based/113_Susin_Destexhe_2021_gamma_oscillation_PING.py @@ -25,7 +25,7 @@ import brainunit as u -import brainpy +import brainpy.state_based as brainpy import brainstate from Susin_Destexhe_2021_gamma_oscillation import ( get_inputs, visualize_simulation_results, RS_par, FS_par, AdEx diff --git a/examples_version3/200_surrogate_grad_lif.py b/examples_state_based/200_surrogate_grad_lif.py similarity index 99% rename from examples_version3/200_surrogate_grad_lif.py rename to examples_state_based/200_surrogate_grad_lif.py index 19186f3e4..27b5bae58 100644 --- a/examples_version3/200_surrogate_grad_lif.py +++ b/examples_state_based/200_surrogate_grad_lif.py @@ -28,7 +28,7 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/201_surrogate_grad_lif_fashion_mnist.py b/examples_state_based/201_surrogate_grad_lif_fashion_mnist.py similarity index 99% rename from examples_version3/201_surrogate_grad_lif_fashion_mnist.py rename to examples_state_based/201_surrogate_grad_lif_fashion_mnist.py index e8f2dc9c1..3cebef0fb 100644 --- a/examples_version3/201_surrogate_grad_lif_fashion_mnist.py +++ b/examples_state_based/201_surrogate_grad_lif_fashion_mnist.py @@ -29,7 +29,7 @@ import numpy as np from datasets import load_dataset -import brainpy +import brainpy.state_based as brainpy import brainstate import braintools diff --git a/examples_version3/202_mnist_lif_readout.py b/examples_state_based/202_mnist_lif_readout.py similarity index 99% rename from examples_version3/202_mnist_lif_readout.py rename to examples_state_based/202_mnist_lif_readout.py index 3b7433e4a..a1cb44b12 100644 --- a/examples_version3/202_mnist_lif_readout.py +++ b/examples_state_based/202_mnist_lif_readout.py @@ -17,7 +17,7 @@ import argparse import time -import brainpy +import brainpy.state_based as brainpy import braintools import brainunit as u import jax.numpy as jnp diff --git a/examples_version3/README.md b/examples_state_based/README.md similarity index 100% rename from examples_version3/README.md rename to examples_state_based/README.md diff --git a/examples_version3/Susin_Destexhe_2021_gamma_oscillation.py b/examples_state_based/Susin_Destexhe_2021_gamma_oscillation.py similarity index 99% rename from examples_version3/Susin_Destexhe_2021_gamma_oscillation.py rename to examples_state_based/Susin_Destexhe_2021_gamma_oscillation.py index 2024abb2b..85e8c1f5f 100644 --- a/examples_version3/Susin_Destexhe_2021_gamma_oscillation.py +++ b/examples_state_based/Susin_Destexhe_2021_gamma_oscillation.py @@ -25,7 +25,7 @@ import numpy as np from scipy.signal import kaiserord, lfilter, firwin, hilbert -import brainpy +import brainpy.state_based as brainpy import brainstate # Table 1: specific neuron model parameters diff --git a/examples_version2/README.md b/examples_version2/README.md index 51069dd39..def43dec3 100644 --- a/examples_version2/README.md +++ b/examples_version2/README.md @@ -11,8 +11,8 @@ These examples showcase BrainPy 2.x functionality including dynamics simulation, **As of September 2025, BrainPy has been upgraded to version 3.x.** To use these examples with BrainPy 3.x, update your imports: ```python -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm ``` ## Example Categories @@ -77,7 +77,7 @@ For version 3.x with 2.x compatibility: ```bash pip install -U brainpy[cpu] -# Then use: import brainpy.version2 as bp +# Then use: import brainpy as bp ``` ## Usage diff --git a/examples_version2/dynamics_analysis/1d_qif.py b/examples_version2/dynamics_analysis/1d_qif.py index 937aaf9bd..641d32588 100644 --- a/examples_version2/dynamics_analysis/1d_qif.py +++ b/examples_version2/dynamics_analysis/1d_qif.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -import brainpy.version2 as bp +import brainpy as bp bp.math.enable_x64() # important! diff --git a/examples_version2/dynamics_analysis/2d_fitzhugh_nagumo_model.py b/examples_version2/dynamics_analysis/2d_fitzhugh_nagumo_model.py index a94c046bc..c585d9e37 100644 --- a/examples_version2/dynamics_analysis/2d_fitzhugh_nagumo_model.py +++ b/examples_version2/dynamics_analysis/2d_fitzhugh_nagumo_model.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bp.math.enable_x64() diff --git a/examples_version2/dynamics_analysis/2d_mean_field_QIF.py b/examples_version2/dynamics_analysis/2d_mean_field_QIF.py index 0b91c3521..5bb088f98 100644 --- a/examples_version2/dynamics_analysis/2d_mean_field_QIF.py +++ b/examples_version2/dynamics_analysis/2d_mean_field_QIF.py @@ -1,5 +1,5 @@ -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bp.math.enable_x64() diff --git a/examples_version2/dynamics_analysis/3d_reduced_trn_model.py b/examples_version2/dynamics_analysis/3d_reduced_trn_model.py index 1a0aaf642..08a977c52 100644 --- a/examples_version2/dynamics_analysis/3d_reduced_trn_model.py +++ b/examples_version2/dynamics_analysis/3d_reduced_trn_model.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bp.math.enable_x64() bp.math.set_platform('cpu') diff --git a/examples_version2/dynamics_analysis/4d_HH_model.py b/examples_version2/dynamics_analysis/4d_HH_model.py index 309b9df78..65fe1877e 100644 --- a/examples_version2/dynamics_analysis/4d_HH_model.py +++ b/examples_version2/dynamics_analysis/4d_HH_model.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.random.seed(123) diff --git a/examples_version2/dynamics_analysis/highdim_RNN_Analysis.py b/examples_version2/dynamics_analysis/highdim_RNN_Analysis.py index caa277583..87cb41ae3 100644 --- a/examples_version2/dynamics_analysis/highdim_RNN_Analysis.py +++ b/examples_version2/dynamics_analysis/highdim_RNN_Analysis.py @@ -5,8 +5,8 @@ A primer[J]. Neuron, 2020, 107(6): 1048-1070. """ -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bp.math.set_platform('cpu') diff --git a/examples_version2/dynamics_simulation/COBA.py b/examples_version2/dynamics_simulation/COBA.py index edfe4edf5..50bb748ff 100644 --- a/examples_version2/dynamics_simulation/COBA.py +++ b/examples_version2/dynamics_simulation/COBA.py @@ -1,5 +1,5 @@ -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm neu_pars = dict( V_rest=-60., diff --git a/examples_version2/dynamics_simulation/decision_making_network.py b/examples_version2/dynamics_simulation/decision_making_network.py index 9ea8ebe4b..5bd80b94f 100644 --- a/examples_version2/dynamics_simulation/decision_making_network.py +++ b/examples_version2/dynamics_simulation/decision_making_network.py @@ -3,8 +3,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class AMPA(bp.Projection): diff --git a/examples_version2/dynamics_simulation/ei_nets.py b/examples_version2/dynamics_simulation/ei_nets.py index 6a3e34d45..449c47412 100644 --- a/examples_version2/dynamics_simulation/ei_nets.py +++ b/examples_version2/dynamics_simulation/ei_nets.py @@ -1,5 +1,5 @@ -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm def model1(): diff --git a/examples_version2/dynamics_simulation/hh_model.py b/examples_version2/dynamics_simulation/hh_model.py index e4b085cf8..bd0d02e3e 100644 --- a/examples_version2/dynamics_simulation/hh_model.py +++ b/examples_version2/dynamics_simulation/hh_model.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class HH(bp.dyn.CondNeuGroup): diff --git a/examples_version2/dynamics_simulation/whole_brain_simulation_with_fhn.py b/examples_version2/dynamics_simulation/whole_brain_simulation_with_fhn.py index 6c8b0d12e..fd162b0a0 100644 --- a/examples_version2/dynamics_simulation/whole_brain_simulation_with_fhn.py +++ b/examples_version2/dynamics_simulation/whole_brain_simulation_with_fhn.py @@ -4,8 +4,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm def bifurcation_analysis(): diff --git a/examples_version2/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py b/examples_version2/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py index b8f342ae3..3eec97632 100644 --- a/examples_version2/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py +++ b/examples_version2/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py @@ -3,8 +3,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bp.check.turn_off() diff --git a/examples_version2/dynamics_training/Song_2016_EI_RNN.py b/examples_version2/dynamics_training/Song_2016_EI_RNN.py index 647a81188..c7209823c 100644 --- a/examples_version2/dynamics_training/Song_2016_EI_RNN.py +++ b/examples_version2/dynamics_training/Song_2016_EI_RNN.py @@ -2,8 +2,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm # data ds = bp_data.cognitive.RatePerceptualDecisionMaking( diff --git a/examples_version2/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py b/examples_version2/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py index cafc70dee..40ef4b1ce 100644 --- a/examples_version2/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py +++ b/examples_version2/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py @@ -10,8 +10,8 @@ # Neuron 63, no. 4 (2009): 544-557. # %% -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set_platform('cpu') diff --git a/examples_version2/dynamics_training/echo_state_network.py b/examples_version2/dynamics_training/echo_state_network.py index 43bd95163..a10424fec 100644 --- a/examples_version2/dynamics_training/echo_state_network.py +++ b/examples_version2/dynamics_training/echo_state_network.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set_environment(bm.batching_mode) diff --git a/examples_version2/dynamics_training/integrate_brainpy_into_flax-convlstm.py b/examples_version2/dynamics_training/integrate_brainpy_into_flax-convlstm.py index 81e050c22..acf5eedb5 100644 --- a/examples_version2/dynamics_training/integrate_brainpy_into_flax-convlstm.py +++ b/examples_version2/dynamics_training/integrate_brainpy_into_flax-convlstm.py @@ -8,8 +8,8 @@ from flax.metrics import tensorboard from flax.training import train_state -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set(mode=bm.training_mode, dt=1.) diff --git a/examples_version2/dynamics_training/integrate_brainpy_into_flax-lif.py b/examples_version2/dynamics_training/integrate_brainpy_into_flax-lif.py index 341ae0f61..ab83990de 100644 --- a/examples_version2/dynamics_training/integrate_brainpy_into_flax-lif.py +++ b/examples_version2/dynamics_training/integrate_brainpy_into_flax-lif.py @@ -8,8 +8,8 @@ from flax.metrics import tensorboard from flax.training import train_state -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set(mode=bm.training_mode, dt=1.) diff --git a/examples_version2/dynamics_training/integrate_flax_into_brainpy.py b/examples_version2/dynamics_training/integrate_flax_into_brainpy.py index c2ce57b46..acb0d1e0a 100644 --- a/examples_version2/dynamics_training/integrate_flax_into_brainpy.py +++ b/examples_version2/dynamics_training/integrate_flax_into_brainpy.py @@ -3,8 +3,8 @@ import brainpy_datasets as bd from flax import linen as nn -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set_environment(mode=bm.training_mode) diff --git a/examples_version2/dynamics_training/integrator_rnn.py b/examples_version2/dynamics_training/integrator_rnn.py index 20cc46ce4..db09ccd32 100644 --- a/examples_version2/dynamics_training/integrator_rnn.py +++ b/examples_version2/dynamics_training/integrator_rnn.py @@ -2,8 +2,8 @@ import matplotlib.pyplot as plt -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm dt = 0.04 num_step = int(1.0 / dt) diff --git a/examples_version2/dynamics_training/reservoir-mnist.py b/examples_version2/dynamics_training/reservoir-mnist.py index 40cc2e41f..c437774be 100644 --- a/examples_version2/dynamics_training/reservoir-mnist.py +++ b/examples_version2/dynamics_training/reservoir-mnist.py @@ -5,8 +5,8 @@ import jax.numpy as jnp from tqdm import tqdm -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm traindata = bd.vision.MNIST(root='./data', split='train', download=True) testdata = bd.vision.MNIST(root='./data', split='test', download=True) diff --git a/examples_version2/training_ann_models/mnist-cnn.py b/examples_version2/training_ann_models/mnist-cnn.py index 12cf67f4d..7ad63960c 100644 --- a/examples_version2/training_ann_models/mnist-cnn.py +++ b/examples_version2/training_ann_models/mnist-cnn.py @@ -3,8 +3,8 @@ import brainpy_datasets as bd import jax.numpy as jnp -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm class FeedForwardModel(bp.DynamicalSystem): diff --git a/examples_version2/training_ann_models/mnist_ResNet.py b/examples_version2/training_ann_models/mnist_ResNet.py index 84d604caf..9355bce72 100644 --- a/examples_version2/training_ann_models/mnist_ResNet.py +++ b/examples_version2/training_ann_models/mnist_ResNet.py @@ -8,8 +8,8 @@ import brainpy_datasets as bd -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm bm.set_environment(mode=bm.training_mode, dt=1.) diff --git a/examples_version2/training_snn_models/spikebased_bp_for_cifar10.py b/examples_version2/training_snn_models/spikebased_bp_for_cifar10.py index 024937f3b..edc17609f 100644 --- a/examples_version2/training_snn_models/spikebased_bp_for_cifar10.py +++ b/examples_version2/training_snn_models/spikebased_bp_for_cifar10.py @@ -24,8 +24,8 @@ import torch.utils.data from torchvision import datasets, transforms -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm # bm.disable_gpu_memory_preallocation() bm.set_environment(bm.TrainingMode()) diff --git a/tests_version2/simulation/test_net_rate_FHN.py b/tests_version2/simulation/test_net_rate_FHN.py index 18221fed8..c13fbdfcd 100644 --- a/tests_version2/simulation/test_net_rate_FHN.py +++ b/tests_version2/simulation/test_net_rate_FHN.py @@ -4,8 +4,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm show = False bm.set_platform('cpu') diff --git a/tests_version2/simulation/test_net_rate_SL.py b/tests_version2/simulation/test_net_rate_SL.py index d8c4e8712..f8a64675d 100644 --- a/tests_version2/simulation/test_net_rate_SL.py +++ b/tests_version2/simulation/test_net_rate_SL.py @@ -4,8 +4,8 @@ import matplotlib.pyplot as plt import numpy as np -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm show = False diff --git a/tests_version2/simulation/test_neu_HH.py b/tests_version2/simulation/test_neu_HH.py index 401294b74..4e8364e11 100644 --- a/tests_version2/simulation/test_neu_HH.py +++ b/tests_version2/simulation/test_neu_HH.py @@ -1,7 +1,7 @@ import unittest -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm show = False diff --git a/tests_version2/training/test_ESN.py b/tests_version2/training/test_ESN.py index da60c6fc6..6beb00490 100644 --- a/tests_version2/training/test_ESN.py +++ b/tests_version2/training/test_ESN.py @@ -1,5 +1,5 @@ -import brainpy.version2 as bp -import brainpy.version2.math as bm +import brainpy as bp +import brainpy.math as bm import unittest