Repository structure¶
The Brian source code repository is broken into the following directories:
brianThe 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).
testsPackage 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.
devThe 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.
debuggingDumping ground for files used for debugging a problem.
troubleshooting- Used for debugging problems from the
brian-supportmailing 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
experimentalpackage. 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.
toolsThe 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.txtSphinx 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).