rkm / dodo

Scaffold for ATC agents

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Scaffold for ATC agents

License:MIT License


Languages

Language:R 54.3%Language:Python 45.0%Language:Batchfile 0.3%Language:Makefile 0.2%Language:Shell 0.2%