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).