Changeset 999 for trunk

Show
Ignore:
Timestamp:
10/12/11 11:20:03 (7 months ago)
Author:
apdavison
Message:

Made common into a module, and split into common.populations, common.projections, common.control and common.procedural_api

Location:
trunk
Files:
6 added
1 removed
21 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/brian/__init__.py

    r998 r999  
    1414from pyNN.brian import simulator 
    1515from pyNN import common, recording, space, core, __doc__ 
    16 common.simulator = simulator 
     16common.control.simulator = simulator 
    1717recording.simulator = simulator 
    1818from pyNN.random import * 
  • trunk/src/connectors.py

    r998 r999  
    2525logger = logging.getLogger("PyNN") 
    2626 
     27DEFAULT_WEIGHT = 0.0 
    2728 
    2829def expand_distances(d_expression): 
     
    149150    def check(self, weight): 
    150151        if weight is None: 
    151             weight = common.DEFAULT_WEIGHT 
     152            weight = DEFAULT_WEIGHT 
    152153        if core.is_listlike(weight): 
    153154            weight     = numpy.array(weight) 
     
    900901                self.weights = weights 
    901902                if weights is None: 
    902                     self.weights = common.DEFAULT_WEIGHT 
     903                    self.weights = DEFAULT_WEIGHT 
    903904                self.delays = delays 
    904905                if delays is None: 
  • trunk/src/core.py

    r998 r999  
    277277        return functools.partial(self.__call__, obj) 
    278278 
     279 
    279280class deprecated(object): 
    280281    """ 
     
    297298        new_func.__dict__.update(func.__dict__) 
    298299        return new_func 
     300 
     301         
  • trunk/src/moose/__init__.py

    r998 r999  
    1717from pyNN.moose import simulator 
    1818from pyNN import common, recording, core 
    19 common.simulator = simulator 
     19common.control.simulator = simulator 
    2020recording.simulator = simulator 
    2121 
  • trunk/src/multisim.py

    r957 r999  
    1717    """ 
    1818    print "Running simulation with %s" % sim.__name__ 
    19     common.simulator = sim.simulator 
     19    common.control.simulator = sim.simulator 
    2020    recording.simulator = sim.simulator 
    2121    network = network_model(sim, parameters) 
  • trunk/src/nemo/__init__.py

    r998 r999  
    1414from pyNN.nemo import simulator 
    1515from pyNN import common, recording, space, core, __doc__ 
    16 common.simulator = simulator 
     16common.control.simulator = simulator 
    1717recording.simulator = simulator 
    1818from pyNN.random import * 
  • trunk/src/nest/__init__.py

    r998 r999  
    1111from pyNN.nest import simulator 
    1212from pyNN import common, recording, errors, space, __doc__ 
    13 common.simulator = simulator 
     13common.control.simulator = simulator 
    1414recording.simulator = simulator 
    1515 
  • trunk/src/neuron/__init__.py

    r998 r999  
    1313from pyNN.neuron import simulator 
    1414from pyNN import common, core, recording as base_recording, space, __doc__ 
    15 common.simulator = simulator 
     15common.control.simulator = simulator 
    1616base_recording.simulator = simulator 
    1717 
  • trunk/src/neuron/nineml.py

    r986 r999  
    3131from pyNN.neuron import simulator 
    3232from pyNN import common, recording 
    33 common.simulator = simulator 
     33common.control.simulator = simulator 
    3434recording.simulator = simulator 
    3535 
  • trunk/src/nineml/__init__.py

    r957 r999  
    8080    state = State() 
    8181simulator = DummySimulator() 
    82 common.simulator = simulator 
     82common.control.simulator = simulator 
    8383recording.simulator = simulator 
    8484 
  • trunk/src/pcsim/__init__.py

    r998 r999  
    2222from pyNN import common, recording, errors, space, core, __doc__ 
    2323from pyNN.pcsim import simulator 
    24 common.simulator = simulator 
     24common.control.simulator = simulator 
    2525recording.simulator = simulator 
    2626import os.path 
  • trunk/src/recording/files.py

    r957 r999  
    2121import numpy, sys, os, shutil 
    2222import cPickle as pickle 
    23 from numpy.lib import format 
    2423 
    2524try: 
     
    4746    __doc__ = numpy.savez.__doc__     
    4847    import zipfile 
    49     
     48    from numpy.lib import format 
     49     
    5050    if isinstance(file, basestring): 
    5151        if not file.endswith('.npz'): 
  • trunk/test/unittests/test_assembly.py

    r879 r999  
    11from pyNN import common 
    2 from pyNN.common import Assembly, BasePopulation 
     2from pyNN.common.populations import Assembly, BasePopulation 
    33from nose.tools import assert_equal, assert_raises 
    44import numpy 
  • trunk/test/unittests/test_basepopulation.py

    r926 r999  
    1 from pyNN import common, errors, random, standardmodels 
     1from pyNN import common, errors, random, standardmodels, recording 
     2from pyNN.common import populations, control 
    23from nose.tools import assert_equal, assert_raises 
    34import numpy 
     
    1718        return parameters 
    1819 
    19 class MockPopulation(common.BasePopulation): 
     20class MockPopulation(populations.BasePopulation): 
    2021    size = 13 
    2122    all_cells = numpy.arange(100, 113) 
     
    5657     
    5758def test__getitem__slice(): 
    58     orig_PV = common.PopulationView 
    59     common.PopulationView = Mock() 
     59    orig_PV = populations.PopulationView 
     60    populations.PopulationView = Mock() 
    6061    p = MockPopulation() 
    6162    pv = p[3:9] 
    62     common.PopulationView.assert_called_with(p, slice(3,9,None)) 
    63     common.PopulationView = orig_PV 
     63    populations.PopulationView.assert_called_with(p, slice(3,9,None)) 
     64    populations.PopulationView = orig_PV 
    6465 
    6566def test__getitem__list(): 
    66     orig_PV = common.PopulationView 
    67     common.PopulationView = Mock() 
     67    orig_PV = populations.PopulationView 
     68    populations.PopulationView = Mock() 
    6869    p = MockPopulation() 
    6970    pv = p[range(3,9)] 
    70     common.PopulationView.assert_called_with(p, range(3,9)) 
    71     common.PopulationView = orig_PV 
     71    populations.PopulationView.assert_called_with(p, range(3,9)) 
     72    populations.PopulationView = orig_PV 
    7273 
    7374def test__getitem__tuple(): 
    74     orig_PV = common.PopulationView 
    75     common.PopulationView = Mock() 
     75    orig_PV = populations.PopulationView 
     76    populations.PopulationView = Mock() 
    7677    p = MockPopulation() 
    7778    pv = p[(3,5,7)] 
    78     common.PopulationView.assert_called_with(p, [3,5,7]) 
    79     common.PopulationView = orig_PV 
     79    populations.PopulationView.assert_called_with(p, [3,5,7]) 
     80    populations.PopulationView = orig_PV 
    8081 
    8182def test__getitem__invalid(): 
     
    112113    p2 = MockPopulation() 
    113114    assembly = p1 + p2 
    114     assert isinstance(assembly, common.Assembly) 
     115    assert isinstance(assembly, populations.Assembly) 
    115116    assert_equal(assembly.populations, [p1, p2]) 
    116117     
     
    150151 
    151152def test_sample(): 
    152     orig_pv = common.PopulationView 
    153     common.PopulationView = Mock() 
     153    orig_pv = populations.PopulationView 
     154    populations.PopulationView = Mock() 
    154155    p = MockPopulation() 
    155156    rng = Mock() 
    156157    rng.permutation = Mock(return_value=numpy.array([7,4,8,12,0,3,9,1,2,11,5,10,6])) 
    157158    pv = p.sample(5, rng=rng) 
    158     assert_arrays_equal(common.PopulationView.call_args[0][1], numpy.array([7,4,8,12,0])) 
    159     common.PopulationView = orig_pv 
     159    assert_arrays_equal(populations.PopulationView.call_args[0][1], numpy.array([7,4,8,12,0])) 
     160    populations.PopulationView = orig_pv 
    160161 
    161162def test_get_should_call_get_array_if_it_exists(): 
     
    174175 
    175176def test_get_with_gather(): 
    176     np_orig = common.num_processes 
    177     rank_orig = common.rank 
    178     gd_orig = common.recording.gather_dict 
    179     common.num_processes = lambda: 2 
    180     common.rank = lambda: 0 
     177    np_orig = control.num_processes 
     178    rank_orig = control.rank 
     179    gd_orig = recording.gather_dict 
     180    control.num_processes = lambda: 2 
     181    control.rank = lambda: 0 
    181182    def mock_gather_dict(D): # really hacky 
    182183        assert isinstance(D[0], list) 
    183184        D[1] = [i-1 for i in D[0]] + [D[0][-1] + 1] 
    184185        return D 
    185     common.recording.gather_dict = mock_gather_dict 
     186    recording.gather_dict = mock_gather_dict 
    186187     
    187188    p = MockPopulation() 
     
    190191                        numpy.arange(10.0, 23.0)) 
    191192     
    192     common.num_processes = np_orig 
    193     common.rank = rank_orig 
    194     common.recording.gather_dict = gd_orig 
     193    control.num_processes = np_orig 
     194    control.rank = rank_orig 
     195    recording.gather_dict = gd_orig 
    195196 
    196197def test_set_from_dict(): 
     
    436437     
    437438def test_meanSpikeCount(): 
    438     orig_rank = common.rank 
    439     common.rank = lambda: 0 
     439    orig_rank = control.rank 
     440    control.rank = lambda: 0 
    440441    p = MockPopulation() 
    441442    p.recorders = {'spikes': Mock()} 
    442443    p.recorders['spikes'].count = Mock(return_value={0: 2, 1: 5}) 
    443444    assert_equal(p.meanSpikeCount(), 3.5) 
    444     common.rank = orig_rank 
     445    control.rank = orig_rank 
    445446 
    446447def test_meanSpikeCount_on_slave_node(): 
    447     orig_rank = common.rank 
    448     common.rank = lambda: 1 
     448    orig_rank = control.rank 
     449    control.rank = lambda: 1 
    449450    p = MockPopulation() 
    450451    p.recorders = {'spikes': Mock()} 
    451452    p.recorders['spikes'].count = Mock(return_value={0: 2, 1: 5}) 
    452453    assert p.meanSpikeCount() is numpy.NaN 
    453     common.rank = orig_rank 
     454    control.rank = orig_rank 
    454455     
    455456def test_inject(): 
     
    468469def test_save_positions(): 
    469470    import os 
    470     orig_rank = common.rank 
    471     common.rank = lambda: 0 
     471    orig_rank = control.rank 
     472    control.rank = lambda: 0 
    472473    p = MockPopulation() 
    473474    p.all_cells = numpy.array([34, 45, 56, 67]) 
     
    479480    assert_equal(output_file.write.call_args[0][1], {'population': p.label}) 
    480481    # arguably, the first column should contain indices, not ids. 
    481     common.rank = orig_rank 
     482    control.rank = orig_rank 
  • trunk/test/unittests/test_connectors.py

    r998 r999  
    105105 
    106106    def setup(self): 
    107         common.simulator = MockSimulator 
     107        common.control.simulator = MockSimulator 
    108108        self.prj = MockProjection(MockPre(5), MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
    109109 
     
    129129 
    130130    def setup(self): 
    131         common.simulator = MockSimulator 
     131        common.control.simulator = MockSimulator 
    132132        self.prj = MockProjection(MockPre(4), MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
    133133 
     
    202202 
    203203    def setup(self): 
    204         common.simulator = MockSimulator 
     204        common.control.simulator = MockSimulator 
    205205        self.prj = MockProjection(MockPre(4), 
    206206                                  MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
     
    222222 
    223223    def setup(self): 
    224         common.simulator = MockSimulator 
     224        common.control.simulator = MockSimulator 
    225225        self.prj = MockProjection(MockPre(4), 
    226226                                  MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
     
    243243     
    244244    def setup(self): 
    245         common.simulator = MockSimulator 
     245        common.control.simulator = MockSimulator 
    246246        self.prj = MockProjection(MockPre(4), 
    247247                                  MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
     
    282282     
    283283    def setup(self): 
    284         common.simulator = MockSimulator 
     284        common.control.simulator = MockSimulator 
    285285        self.prj = MockProjection(MockPre(4), 
    286286                                  MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
     
    321321     
    322322    def setup(self): 
    323         common.simulator = MockSimulator 
     323        common.control.simulator = MockSimulator 
    324324        self.prj = MockProjection(MockPre(4), 
    325325                                  MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
     
    352352     
    353353    def setup(self): 
    354         common.simulator = MockSimulator 
     354        common.control.simulator = MockSimulator 
    355355        self.prj = MockProjection(MockPre(4), 
    356356                                  MockPost(numpy.array([0,1,0,1,0], dtype=bool))) 
  • trunk/test/unittests/test_lowlevelapi.py

    r993 r999  
    11from pyNN import common 
     2from pyNN.common.populations import BasePopulation 
    23from mock import Mock 
    34from inspect import isfunction 
     
    3132     
    3233def test_set(): 
    33     cells = common.BasePopulation() 
     34    cells = BasePopulation() 
    3435    cells.set = Mock() 
    3536    common.set(cells, "param", "val") 
     
    4243    assert isfunction(record_function) 
    4344     
    44     source = common.BasePopulation() 
     45    source = BasePopulation() 
    4546    source._record = Mock() 
    4647    source.recorders = {'foo': Mock()} 
     
    5556    assert isfunction(record_function) 
    5657     
    57     p1 = common.BasePopulation() 
    58     p2 = common.BasePopulation() 
     58    p1 = BasePopulation() 
     59    p2 = BasePopulation() 
    5960    source = common.Assembly(p1, p2) 
    6061    source._record = Mock() 
  • trunk/test/unittests/test_neuron.py

    r888 r999  
    11from neuron import h 
    22from pyNN.neuron import electrodes, recording, simulator 
    3 from pyNN import common 
     3from pyNN.common import populations 
    44from mock import Mock 
    55from nose.tools import assert_equal, assert_raises, assert_almost_equal 
     
    3737        self._cell = MockCell() 
    3838 
    39 class MockPopulation(common.BasePopulation): 
     39class MockPopulation(populations.BasePopulation): 
    4040    celltype = MockCellClass() 
    4141    local_cells = [MockID(44), MockID(33)] 
  • trunk/test/unittests/test_population.py

    r870 r999  
    1 from pyNN import common, errors, random, standardmodels, space 
     1from pyNN import errors, random, standardmodels, space 
     2from pyNN.common import control, populations 
    23from nose.tools import assert_equal, assert_raises 
    34import numpy 
     
    67 
    78 
    8 class MockID(int, common.IDMixin): 
     9class MockID(int, populations.IDMixin): 
    910    def __init__(self, n): 
    1011        int.__init__(n) 
    11         common.IDMixin.__init__(self) 
     12        populations.IDMixin.__init__(self) 
    1213    def get_parameters(self): 
    1314        return {} 
    1415 
    15 class MockPopulation(common.Population): 
     16class MockPopulation(populations.Population): 
    1617    recorder_class = Mock() 
    1718    initialize = Mock() 
     
    7980def test_id_to_index(): 
    8081    p = MockPopulation(11, MockStandardCell) 
    81     assert isinstance(p[0], common.IDMixin) 
     82    assert isinstance(p[0], populations.IDMixin) 
    8283    assert_equal(p.id_to_index(p[0]), 0) 
    8384    assert_equal(p.id_to_index(p[10]), 10) 
     
    8586def test_id_to_index_with_array(): 
    8687    p = MockPopulation(11, MockStandardCell) 
    87     assert isinstance(p[0], common.IDMixin) 
     88    assert isinstance(p[0], populations.IDMixin) 
    8889    assert_arrays_equal(p.id_to_index(p.all_cells[3:9:2]), numpy.arange(3,9,2)) 
    8990 
    9091def test_id_to_index_with_populationview(): 
    9192    p = MockPopulation(11, MockStandardCell) 
    92     assert isinstance(p[0], common.IDMixin) 
     93    assert isinstance(p[0], populations.IDMixin) 
    9394    view = p[3:7] 
    94     assert isinstance(view, common.PopulationView) 
     95    assert isinstance(view, populations.PopulationView) 
    9596    assert_arrays_equal(p.id_to_index(view), numpy.arange(3,7)) 
    9697 
    9798def test_id_to_index_with_invalid_id(): 
    9899    p = MockPopulation(11, MockStandardCell) 
    99     assert isinstance(p[0], common.IDMixin) 
     100    assert isinstance(p[0], populations.IDMixin) 
    100101    assert_raises(ValueError, p.id_to_index, MockID(p.last_id+1)) 
    101102    assert_raises(ValueError, p.id_to_index, MockID(p.first_id-1)) 
     
    106107 
    107108def test_id_to_local_index(): 
    108     orig_np = common.num_processes 
    109     common.num_processes = lambda: 5 
     109    orig_np = control.num_processes 
     110    control.num_processes = lambda: 5 
    110111    p = MockPopulation(11, MockStandardCell) 
    111112    # every 5th cell, starting with the 4th, is on this node. 
     
    113114    assert_equal(p.id_to_local_index(p[8]), 1) 
    114115     
    115     common.num_processes = lambda: 1 
     116    control.num_processes = lambda: 1 
    116117    # only one node 
    117118    assert_equal(p.id_to_local_index(p[3]), 3) 
    118119    assert_equal(p.id_to_local_index(p[8]), 8) 
    119     common.num_processes = orig_np 
     120    control.num_processes = orig_np 
    120121 
    121122def test_id_to_local_index_with_invalid_id(): 
    122     orig_np = common.num_processes 
    123     common.num_processes = lambda: 5 
     123    orig_np = control.num_processes 
     124    control.num_processes = lambda: 5 
    124125    p = MockPopulation(11, MockStandardCell) 
    125126    # every 5th cell, starting with the 4th, is on this node. 
    126127    assert_raises(ValueError, p.id_to_local_index, p[0]) 
    127     common.num_processes = orig_np 
     128    control.num_processes = orig_np 
    128129 
    129130# test structure property 
  • trunk/test/unittests/test_projection.py

    r998 r999  
    1 from pyNN import common, standardmodels 
     1from pyNN import common, standardmodels, recording 
     2from pyNN.common.populations import BasePopulation 
    23from nose.tools import assert_equal, assert_raises 
    34from mock import Mock 
     
    2021    recordable = ['v', 'spikes'] 
    2122 
    22 class MockPopulation(common.BasePopulation): 
     23class MockPopulation(BasePopulation): 
    2324    label = "mock_population" 
    2425    first_id = 555 
     
    5960     
    6061def test_size_with_gather(): 
    61     orig_mpi_sum = common.recording.mpi_sum 
    62     orig_len = common.Projection.__len__ 
    63     common.recording.mpi_sum = Mock() 
     62    orig_mpi_sum = recording.mpi_sum 
     63    orig_len = common.Projection.__len__ 
     64    recording.mpi_sum = Mock() 
    6465    common.Projection.__len__ = Mock(return_value=42) 
    6566    p1 = MockPopulation() 
     
    6768    prj = common.Projection(p1, p2, method=Mock()) 
    6869    prj.size(gather=True) 
    69     common.recording.mpi_sum.assert_called_with(len(prj)) 
    70     common.recording.mpi_sum = orig_mpi_sum 
     70    recording.mpi_sum.assert_called_with(len(prj)) 
     71    recording.mpi_sum = orig_mpi_sum 
    7172    common.Projection.__len__ = orig_len 
    7273     
  • trunk/test/unittests/test_simulation_control.py

    r858 r999  
    3838                
    3939def test_reset(): 
    40     common.simulator = MockSimulator() 
     40    common.control.simulator = MockSimulator() 
    4141    common.reset() 
    42     assert common.simulator.reset_called 
     42    assert common.control.simulator.reset_called 
    4343     
    4444def test_initialize(): 
     
    4848     
    4949def test_current_time(): 
    50     common.simulator = MockSimulator() 
     50    common.control.simulator = MockSimulator() 
    5151    common.get_current_time() 
    52     assert_equal(common.simulator.state.accesses, ['t']) 
     52    assert_equal(common.control.simulator.state.accesses, ['t']) 
    5353     
    5454def test_time_step(): 
    55     common.simulator = MockSimulator() 
     55    common.control.simulator = MockSimulator() 
    5656    common.get_time_step() 
    57     assert_equal(common.simulator.state.accesses, ['dt']) 
     57    assert_equal(common.control.simulator.state.accesses, ['dt']) 
    5858     
    5959def test_min_delay(): 
    60     common.simulator = MockSimulator() 
     60    common.control.simulator = MockSimulator() 
    6161    common.get_min_delay() 
    62     assert_equal(common.simulator.state.accesses, ['min_delay']) 
     62    assert_equal(common.control.simulator.state.accesses, ['min_delay']) 
    6363 
    6464def test_max_delay(): 
    65     common.simulator = MockSimulator() 
     65    common.control.simulator = MockSimulator() 
    6666    common.get_max_delay() 
    67     assert_equal(common.simulator.state.accesses, ['max_delay']) 
     67    assert_equal(common.control.simulator.state.accesses, ['max_delay']) 
    6868     
    6969def test_num_processes(): 
    70     common.simulator = MockSimulator() 
     70    common.control.simulator = MockSimulator() 
    7171    common.num_processes() 
    72     assert_equal(common.simulator.state.accesses, ['num_processes']) 
     72    assert_equal(common.control.simulator.state.accesses, ['num_processes']) 
    7373     
    7474def test_rank(): 
    75     common.simulator = MockSimulator() 
     75    common.control.simulator = MockSimulator() 
    7676    common.rank() 
    77     assert_equal(common.simulator.state.accesses, ['mpi_rank']) 
     77    assert_equal(common.control.simulator.state.accesses, ['mpi_rank']) 
  • trunk/test/unittests/test_utility_functions.py

    r870 r999  
    2525     
    2626def setup(): 
    27     common.simulator = MockSimulator 
     27    common.control.simulator = MockSimulator 
    2828 
    2929def test_is_conductance():