Repository structure¶

The Brian source code repository is broken into the following directories:

brian

The main package, documented above, with the following additional directories:

deprecated
For code that is no longer up to date, but that we keep for backwards compatibility.
experimental
Package for storing experimental code that can be used but whose syntax and functionality may change.
library
Modules where specific models are defined (e.g. neuron and synaptic models).
tests

Package for storing tests, composed of:

testcorrectness
Package for tests of mathematical correctness of algorithms, etc.
testinterface
Package for tests of individual Brian modules. Module names are the names of the module being tested prepended by ‘test’.
unused
Old stuff
utils
Modules that are not Brian-specific, for example circular.py defines circular arrays used for storing spiking events.
dev

The main development folder, for works in progress, debugging stuff, tools, etc. Consists of:

benchmarking
Code for benchmarking performance against other languages and simulators.
BEPs
The Brian Enhancement Proposals.
debugging

Dumping ground for files used for debugging a problem.

troubleshooting
Used for debugging problems from the brian-support mailing list.
ideas
For ideas for new features, incomplete implementations, etc. This is where new things go before going into the main Brian package or the experimental package.
logo
The Brian logo in various sizes.
optimising
Ideas for making Brian faster.
speedtracking
A sort of testing framework which tracks, over time, the speed of various Brian features.
tests
A few scripts to run Brian’s tests.
tools

The main folder for developer tools.

docs
Scripts for invoking Sphinx and building the documentation. Includes script to automatically generate documentation for examples and tutorials, and to build index entries for these.
newrelease
Tools for creating a new public release of Brian.
searchreplace
Some tools for doing global changes to the code (e.g. syntax changes).
dist
Automatically generated distribution files.
docs
Automatically generated documentation files in HTML/PDF format.
docs_sphinx
Sources for Sphinx documentation.
examples
Examples of Brian’s use. Documentation is automatically generated from all of these examples.
tutorials
Source files for the tutorials, documentation is automatically generated from these. Each tutorial has a directory, possibly containing an introduction.txt Sphinx source, followed by a series of files in alphabetical order (e.g. 1a, 1b, 1c, etc.). Multi-line strings are treated as Sphinx source code (take a look at a few examples to get the idea).