noteworthy have to do with Python.

**Changes that affect Python**

All communication with hoc from Python is now accomplished uniformly via the neuron.h object. In other words, do this first

Code: Select all

```
import neuron
h = neuron.h
```

h.Section() returns new section

h.cas() returns currently accessed section

h.allsec() is an iterator over all sections

Python allows use of a nrn.Segment object as the argument to a PointProcess constructor or loc function. That is,

IClamp(section(x))

is an alternative to

IClamp(x, sec = section).

Also, section(0.5).sec is the section, and section(0.5).x is the arc location value 0.5.

The following new Vector functions are much (> 50 times !) faster than a Python loop over the elements:

- Vector.from_python(source) fills the Vector with doubles from a Python list or NumPy 1-d array. The Vector is resized and returned.
- Vector.to_python() returns a Python list of doubles.
- Vector.to_python(target) fills the target with doubles from the hoc Vector and returns the target object. Note that if the target is a NumPy 1-d array it must already be sized the same as the Vector.

**Other changes that deserve mention**

CellBuild.cexport() is public and can be used from hoc with an argument of 1 (or 0) to force (or prevent) writing the cell info to the simulation instance.

Vector.play in continuous mode uses linear extrapolation of the last two time points when a value is requested outside the time domain of the Vector. This allows more efficient variable time step approach to a discontinuity, as it keeps the first derivative continuous when cvode asks for a value past the next discontinuity (the discontinuity event will cause a retreat to the proper time).