The code structure of Nashpy¶
The directory structure¶
The directory structure for Nashpy is:
├── src/
├── tests/
├── docs/
├── CHANGES.md
├── CITATION.md
├── LICENSE
├── README.md
├── paper.bib
├── paper.md
├── pyproject.toml
├── .readthedocs.yml
├── setup.cfg
└── tox.ini
Here is a brief description of each of these:
The src/
directory¶
The src/
directory contains the source code. It’s structure is as
follows:
src/
└── nashpy
├── __init__.py
├── game.py
├── algorithms/
├── integer_pivoting/
├── learning/
└── polytope/
The
__init__.py
file contains the various commands to import all the functionality of the library.The
game.py
file contains the mainnashpy.Game
class.The
algorithms/
directory contains further modules with algorithms for computation of Nash equilibria.The
integer_pivoting/
directory contains further modules with algorithms for integer pivoting.The
learning/
directory contains further modules for various learning algorithms.The
polytope
directory contains further modules with code for best response polytopes.
The tests/
directory¶
This contains all the test files.
The docs/
directory¶
The documentation is written using the Diataxis framework [Procida2021]. As well as various configuration files for sphinx there are 5 main subdirectories:
docs/
├── contributing
│ ├── discussion/
│ ├── how-to/
│ ├── index.rst
│ ├── reference/
│ └── tutorial/
├── discussion/
├── how-to/
├── index.rst
├── reference/
└── tutorial/
The
contributing/
directory contains the specific contributing documentation. Which itself is written using Diataxis [Procida2021].The
discussion/
directory contains source files for the discussion described at [Procida2021] as: “explanation is discussion that clarifies and illuminates a particular topic.”The
reference/
directory contains source files for the reference described at [Procida2021] as: “reference guides are technical descriptions of the machinery and how to operate it.”The
how-to/
directory contains source files for the how to guides described at [Procida2021] as: “how-to guides are directions that take the reader through the steps required to solve a real-world problem”The
tutorial/
directory contains source files for the tutorial described at [Procida2021] as: “tutorials are lessons that take the reader by the hand through a series of steps to complete a project of some kind.”
The CHANGES.md
file¶
Makes a note of different changes in versions of Nashpy.
The CITATION.md
file¶
Contains information for citing Nashpy.
The LICENSE
file¶
Contains the license.
The README.md
file¶
Contains the first entry point documentation to the Nashpy project.
The paper.bib
and paper.md
files¶
These are the source files for the Journal of Open Source Software paper written about Nashpy: [Knight2018].
The pyproject.toml
file¶
Contains all the build instructions for packaging Nashpy and is used by flit.
The .readthedocs.yml
file¶
This includes configuration settings for the online service that hosts the documentation read the docs.
The setup.cfg
file¶
Contains some configuration instructions for testing.
The tox.ini
file¶
Contains the instructions for the test runner tox
.
The Game class¶
The nashpy.Game
class is an umbrella class that creates an object
oriented interface to all functionality of Nashpy as methods on a game.