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