Skip to main content

A package for Guidance, Navigation, and Control (GNC) algorithms.

Project description

A python package for Guidance, Navigation, and Control (GNC) algorithms developed by the Laboratory for Autonomy, GNC, and Estimation Research (LAGER) at the University of Alabama (UA).

For using this package, simply clone the repository and then pip install the top level folder. It is recommended to install with the -e flag such that new updates can be applied automatically. For setting up a development environment to extend the package see the following sections.

Open in Dev Containers Test Status Test Cov

This project uses the pytest for developing and running the tests (with extensions for generating summary and coverage reports), tox automates setting up and running the test environment (as well as the documentation), Sphinx is used for documenting the code, and the Black formatter is used to auto format the python code. This project also follows semantic versioning where any api breaking changes will increment the major version number. Additionally, a prebuilt docker container image is provided to get started with developing for this library. It contains all of the needed tools to compile the code, run the tests, and build the documentation. The docker container can be used within VS Code through their dev container extension to allow editing local files but compiling using the toolchain provided within the container.

Development Environment Setup

It is recommended to use VS Code with the dev containers extension for developing. Development containers allow the full toolchain to be automatically setup on most any machine capable of running Docker. For information on dev-containers see here for an overview, here for auto installing extensions in the container and here for an example setup. The provided dev container also has useful extensions installed to ease development.

To being, make sure VS Code and git are installed. Additionally, make sure docker is installed for your system (Windows, Mac, Linux). Next, install the dev containers extension within VS Code. Clone the repository locally on your computer, for windows it is recommended to clone it within your linux subsystem directory (e.g. a sub-directory of your linux home folder) to improve performance within the container (the linux directories on Windows can be accessed through the file browser by typing \\wsl$ in the address bar and clicking on your distro). Now open the repo folder within VS Code (for windows you may need to connect to the linux subsystem first). Then you should be prompted to open the folder in the container, click yes. If you are not prompted, you can go to the command palette and start typing “Open folder in container”. Now your terminal within VS Code will be running commands within the container but the files your are editing/creating will be accessible from your local machine’s file browser.

Note if you click the open in container button on the repo’s page it will automatically open VS Code, open the container, and clone the repo for you. However, it will do this within a docker volume so the files are only accessible within the container (ie you can’t view them through your local file browser).

Example Workflow

Once the repository is open in the container, you can edit files, run tests, and make commits just like normal. For example, after editing some files and adding some validation tests to run these tests you would simply call the following from the root of the repository.

tox

This will attempt to run the all the validation tests, except those marked as slow, on multiple versions of python. If the python version can not be found, it will be skipped.

After running tests, it may be helpful to check the documentation build locally to ensure code comments are being pulled correctly. This can be done with

tox -e clean_docs
tox -e docs_html

to remove any existing documenation builds and generate the html version. The output is placed in docs/build/html and can be viewed by opening the docs/build/html/index.html file in your web browser.

Notes on tox

Tox will automatically create virtual environements, install dependencies, install the package, and run some commands in the virtual environment. These are defined in the tox.ini file in the repository. If tox is called without specifying an envrionment, it will run all of the default environments. The available environments can be listed with

tox -av

and a specific environment run by calling

tox -e ENV

where ENV is replaced with the environment name. To pass positional arguments into the commands run within the tox environment you must use -- after the environment name but before the positional arguments. For example to run validation tests using Python 3.9 and pass the --runslow option to pytest you would call tox -e py39-validation_test -- --runslow.

Note, all tox commands must be run from the root of the repository because this is where the tox.ini file lives.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gncpy-2.0.3.tar.gz (22.4 MB view details)

Uploaded Source

Built Distributions

gncpy-2.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

gncpy-2.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (5.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

gncpy-2.0.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

gncpy-2.0.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (5.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

gncpy-2.0.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.2 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

gncpy-2.0.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (5.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

gncpy-2.0.3-cp39-cp39-musllinux_1_1_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

gncpy-2.0.3-cp39-cp39-musllinux_1_1_i686.whl (5.7 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

gncpy-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

gncpy-2.0.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (5.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

gncpy-2.0.3-cp38-cp38-musllinux_1_1_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

gncpy-2.0.3-cp38-cp38-musllinux_1_1_i686.whl (5.7 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

gncpy-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

gncpy-2.0.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (5.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

gncpy-2.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

gncpy-2.0.3-cp37-cp37m-musllinux_1_1_i686.whl (5.8 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

gncpy-2.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

gncpy-2.0.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (5.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

File details

Details for the file gncpy-2.0.3.tar.gz.

File metadata

  • Download URL: gncpy-2.0.3.tar.gz
  • Upload date:
  • Size: 22.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for gncpy-2.0.3.tar.gz
Algorithm Hash digest
SHA256 9d886754a05756f97d28cf0fcc7ef8d457d4e5ad07672de203b56aa4739f2f04
MD5 de2f9e8722acaad3bfa7e285433d3f73
BLAKE2b-256 52923c48622c43b02b258f4fadee36047b154bb93989576f8c1452bfac290b3b

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a169c65372cf1761b743ff0d69aea3ee64418b5afd5f47df52726e41d2187229
MD5 27dfd1bcb1a26a9829d5b36173716a01
BLAKE2b-256 5517b5bd6f903a76d0fc0995a69acbfc2646c986483fbf89e8886967b651374d

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 31f624e463c2d3aa8fe305687956fd2820e47b11314ccea24a8d66a4968f86c0
MD5 71baca357c51b9e7c6f150bc81d6f3e0
BLAKE2b-256 552ce510fce0310192eb73cb51f6a643db4d221c249467206acb4bb18437704e

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3e00fbabea9f1b08fb59f900d7f3bad35d90d359a35c2ee5ae7d8267b7d465c
MD5 e6e5f808400d4de575a55581d909f10d
BLAKE2b-256 de7b46170798aab7fdb4b27a4b8dce1013d28ff9e8f44cdbf96ba8bc262cc1b5

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f0edb87a22063ff2b87523a7f3a6b1ba3e38bb8fe4cb937aa9477bf4dbe50cb2
MD5 aef8840eda4eb40d14073b1edd938322
BLAKE2b-256 e2eb749f9e6f62aa79fa2d000857ac805d31afc90861abfbdc588bdcaba0ef67

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0dfc77770aa9912453367c8578be1fa5610e64f2ab68bd10a7bc076a5af63b5b
MD5 f5ab4933c560e586436d7b4560df9926
BLAKE2b-256 d656faad0436d01f5f0d28590e805fe02942da199f70542d6deabd0bf978423f

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f495a8dd8c95e3be2e6630e8d4b73cefd1cb8cfa36994228d96e8a95aea04b42
MD5 d6677edef742cdb4d9435117b1f5304e
BLAKE2b-256 332e8d408c0fde2f3eec04136b4f51ebaef41e4649e9760a98b18f8ebf3f3fe8

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 81fb02f7532cb27abe60c89a532f51b30c75976571ec3c4c536f6eeca83e4f48
MD5 7c2fd81fd1ffb6d0d1688948a12fa793
BLAKE2b-256 30bea7d0c0be13645868df24f87aa307d28bfa24a8a152e3ffa2b15e8727eeb1

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 38a242fb73d92715cb0a0c8b046d43db941bfcdb6dc6044ca3b2d302624875c8
MD5 152dd155796ca29f7f45342f32b62589
BLAKE2b-256 f9971cc7fd381273aa689166d1d11f63c714512e0b1b5bcf0475ea169037592c

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9004c3459aff907254555977e8105a57e34577f64a5196ea81b5a28b0208b2be
MD5 beb1c356403f60ea7b9a2d1fe2d6918c
BLAKE2b-256 097fcc1b219ec337271def9e8fc605a39a0bda930922c0f9012b84561a5c4c24

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1a70d4f6cfceb906fedb05b60f9efbd527bb11c0c48451dd3396ceff9433f919
MD5 cfef35a71a723e4fae27cf0b608e36e9
BLAKE2b-256 4595b115c534c59112ab6cc3a4b1926687f2693d7866c5b65fb47b07a039a6c6

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c4277ca88aa52ec0e7ba522965edb375cd03c245b0a320910febf97b03781ded
MD5 1e7bce93620298d99ee463314a530558
BLAKE2b-256 45286ef9da3a2b084a168c003c6721944b4e2cc81762b271b3ed5a368192f74a

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 63024fb6b0b9d43a9cc0f2945508f982e761008420ecd220bac553103d17334f
MD5 3464736943237069c924db4c0f96065a
BLAKE2b-256 02448c6a4da952f9f695d9c900488b56402a2ec0fd23f848eb4814d7781223a5

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b1b2e497c8fb9865ad95f2a2fd528064457236c3ec6b07b53d31f71b74526bea
MD5 bcd6c49e8a7f8191573b33d85c893c50
BLAKE2b-256 f5c214f6b88540be73f4acd24a997329c9905b353622720dc8cffc4081e58023

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9054719058a5285f03db1b0378b578de4e825d5f965fb6b07eb403d6685415f3
MD5 ef8ad33f4c60bd66ef35616032fa7f75
BLAKE2b-256 a31507ad4ab19bd3f3145d7f9ce3af2eb9fe6dc4e4e3d3b8f8730866fbfd05be

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 308424af45cb2e4903ae831bb6aef9619db6c44738445a3161d78f39a3d12dbe
MD5 4b8ef0d4672fe8a694f1c88bc1bca2e5
BLAKE2b-256 18dad8fd89479020a17ce83f717ebb8722facdb268e3299402d7c47fa90b7846

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 aea3a56803bc6e422ef670c22bdc4abef758cd28e7a1505568ebeb435c95e39a
MD5 564b66993ae1e1d0986def10d395cdd6
BLAKE2b-256 63fe42c7f033304c760b1f0b4c807c4014a99e5d76f3fd2f49e714beaf785b17

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d883dc251e358bfafd9be3b36ee37da14a08e42a8139b741f13731ba44da2d3
MD5 d2d65912d698c8472603ea04b2aa2b82
BLAKE2b-256 dca42e8d0129150b8428ec473ed5aa294b93ac1655735f08abc43aa0f036b324

See more details on using hashes here.

File details

Details for the file gncpy-2.0.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for gncpy-2.0.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8ef461a5ad5f90fe90221ed7b0440d042b5213f654c4de63172719ee1a798121
MD5 acb468597b1b3e1fac6c618d0482d8ee
BLAKE2b-256 872017406ce05bac859bd8b9ee55fed3f5033d4457834c88d0e64b530564e50d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page