Skip to content

project-bluebird/dodo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Active development moved under Project BlueBird.

Dodo

Build Status

Overview

Dodo is a package that provides a scaffold for building air traffic control agents, as part of the Simurgh project. The packages is written in Python (PyDodo) and R (rdodo).

Note that the package is built to communicate with BlueBird version >= 2.0.

All the default settings and parameter values (e.g., BlueBird version number) are specified in a common configuration file.

For an overview of all functionality, please read the specification document.

Contents

PyDodo

PyDodo installation

(Optional first step)

conda create -n pydodo python=3.7
conda activate pydodo

...

git clone https://github.com/alan-turing-institute/dodo.git
cd dodo/PyDodo
pip install .

PyDodo usage

If BlueBird (and a simulator) are running, then one can communicate with BlueBird using PyDodo. For example:

>>> import pydodo
>>>
>>> pydodo.reset_simulation()
True
>>>

The specification document gives a detailed overview of the supported commands.

See the example notebook in the Simurgh project repository for a run through of how to use PyDodo to interact with BlueBird.

PyDodo development

Tests

Run the tests from the project root:

pytest PyDodo/

If BlueSky and BlueBird are running and PyDodo can connect to them, all tests are run. Otherwise integration tests are skipped and only unit tests are run.

Style guide

Docstrings should follow numpydoc convention. We encourage extensive documentation.

The python code itself should follow PEP8 convention whenever possible, with at most about 500 lines of code (not including docstrings) per script.

To format the code we recommend using the black code formatter.

rdodo

rdodo installation

rdodo usage

rdodo development

Contributing

If you have any questions that aren't discussed here, please let us know by opening an issue.

We welcome all contributions from documentation to testing to writing code. Don't let trying to be perfect get in the way of being good - exciting ideas are more important than perfect pull requests.

To contribute to PyDodo or rdodo development, please check the corresponding section (PyDodo development or rdodo development for details.

To implement Dodo in another programming language, please follow the specification document. The shared configuration file specifies common required parameters and settings.

Releases

No releases published

Packages

No packages published

Languages