-
Notifications
You must be signed in to change notification settings - Fork 218
/
__init__.py
89 lines (75 loc) · 2.44 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
'''
Brian 2.0
'''
__docformat__ = "restructuredtext en"
__version__ = '2.0dev'
__release_date__ = 'notyet'
# Check basic dependencies
import sys
missing = []
try:
import numpy
except ImportError as ex:
sys.stderr.write('Importing numpy failed: %s\n' % ex)
missing.append('numpy')
try:
import scipy
except ImportError as ex:
sys.stderr.write('Importing scipy failed: %s\n' % ex)
missing.append('scipy')
try:
import sympy
except ImportError as ex:
sys.stderr.write('Importing sympy failed: %s\n' % ex)
missing.append('sympy')
try:
import pyparsing
except ImportError as ex:
sys.stderr.write('Importing pyparsing failed: %s\n' % ex)
missing.append('pyparsing')
if len(missing):
raise ImportError('Some required dependencies are missing:\n' + ', '.join(missing))
# To minimize the problems with imports, import the packages in a sensible
# order
# The units and utils package does not depend on any other Brian package and
# should be imported first
from brian2.units import *
from brian2.units.stdunits import *
from brian2.utils import *
from brian2.core.tracking import *
from brian2.core.names import *
from brian2.core.spikesource import *
# The following packages only depend on something in the above set
from brian2.core.preferences import *
from brian2.core.clocks import *
from brian2.core.scheduler import *
from brian2.equations import *
# The base class only depends on the above sets
from brian2.core.base import *
# The rest...
from brian2.core.network import *
from brian2.core.magic import *
from brian2.core.operations import *
from brian2.stateupdaters import *
from brian2.codegen import *
from brian2.core.namespace import *
from brian2.groups import *
from brian2.monitors import *
# preferences
from brian2.core.core_preferences import *
brian_prefs.load_preferences()
brian_prefs.do_validation()
brian_prefs._backup()
def restore_initial_state():
'''
Restores internal Brian variables to the state they are in when Brian is imported
Resets ``defaultclock.dt = 0.1*ms``, ``defaultclock.t = 0*ms``, `clear` all
objects and `BrianGlobalPreferences._restore` preferences.
'''
if hasattr(defaultclock, '_dt'):
del defaultclock._dt
defaultclock.__init__()
clear(erase=True)
brian_prefs._restore()
# make the test suite available via brian2.test()
from brian2.tests import run as test