gncpy


Namegncpy JSON
Version 2.0.0 PyPI version JSON
download
home_pagehttp://lager.ua.edu/
SummaryA package for Guidance, Navigation, and Control (GNC) algorithms.
upload_time2023-07-19 06:32:27
maintainer
docs_urlNone
authorLaboratory for Autonomy GNC and Estimation Research (LAGER)
requires_python<3.10,>=3.7
licenseMIT License Copyright (c) 2020 Jordan D Larson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords guidance navigation and control dynamics kalman filter reinforcement learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            GNCPy
=====

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.

.. contents:: Table of Contents
    :depth: 2
    :local:
    :backlinks: entry

..
    BEGIN LINKS INCLUDE

.. |Open in Dev Containers| image:: https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode
   :target: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/drjdlarson/gncpy.git

.. |Test Status| image:: https://drjdlarson.github.io/gncpy/reports/junit/tests-badge.svg?dummy=8484744
    :target: https://drjdlarson.github.io/gncpy/reports/junit/junit.html

.. |Test Cov| image:: https://drjdlarson.github.io/gncpy/reports/coverage/coverage-badge.svg?dummy=8484744
    :target: https://drjdlarson.github.io/gncpy/reports/coverage/index.html

..
    END LINKS INCLUDE

|Open in Dev Containers| |Test Status| |Test Cov|

..
    BEGIN TOOLCHAIN INCLUDE

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 <https://semver.org/>`__ 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 <https://code.visualstudio.com/docs/devcontainers/containers>`__ for an overview, `here <https://stackoverflow.com/questions/71402603/vs-code-in-docker-container-is-there-a-way-to-automatically-install-extensions>`__ for auto installing extensions in the container
and `here <https://pspdfkit.com/blog/2020/visual-studio-code-cpp-docker/>`__ 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 <https://docs.docker.com/desktop/install/windows-install/>`__, `Mac <https://docs.docker.com/desktop/install/mac-install/>`_, `Linux <https://docs.docker.com/engine/install/>`__). 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 :code:`\\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.

.. code-block:: 

    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

.. code-block:: 

    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

.. code-block:: 

    tox -av

and a specific environment run by calling

.. code-block:: 

    tox -e ENV

where :code:`ENV` is replaced with the environment name. To pass positional arguments into the commands run within the tox environment you must use :code:`--` after the environment name but before the positional arguments. For example to run validation tests using Python 3.9 and pass the :code:`--runslow` option to pytest you would call :code:`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.

..
    END TOOLCHAIN INCLUDE

.. 
    BEGIN CITE INCLUDE

Cite
====
Please cite the framework as follows

.. code-block:: bibtex

    @Misc{gncpy,
        author       = {Jordan D. Larson and Ryan W. Thomas and Vincent W. Hill and Vaughn Weirens},
        howpublished = {Web page},
        title        = {{GNCPy}: A {P}ython library for {G}uidance, {N}avigation, and {C}ontrol algorithms},
        year         = {2019},
        url          = {https://github.com/drjdlarson/gncpy},
    }

..
    END CITE INCLUDE
            

Raw data

            {
    "_id": null,
    "home_page": "http://lager.ua.edu/",
    "name": "gncpy",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<3.10,>=3.7",
    "maintainer_email": "",
    "keywords": "Guidance Navigation and Control dynamics kalman filter reinforcement learning",
    "author": "Laboratory for Autonomy GNC and Estimation Research (LAGER)",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/a5/69/5689e3fe360f73ffe525f9efe5cafd72922dd302fc16d2e5b6857c172594/gncpy-2.0.0.tar.gz",
    "platform": null,
    "description": "GNCPy\n=====\n\nA 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).\n\nFor 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.\n\n.. contents:: Table of Contents\n    :depth: 2\n    :local:\n    :backlinks: entry\n\n..\n    BEGIN LINKS INCLUDE\n\n.. |Open in Dev Containers| image:: https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode\n   :target: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/drjdlarson/gncpy.git\n\n.. |Test Status| image:: https://drjdlarson.github.io/gncpy/reports/junit/tests-badge.svg?dummy=8484744\n    :target: https://drjdlarson.github.io/gncpy/reports/junit/junit.html\n\n.. |Test Cov| image:: https://drjdlarson.github.io/gncpy/reports/coverage/coverage-badge.svg?dummy=8484744\n    :target: https://drjdlarson.github.io/gncpy/reports/coverage/index.html\n\n..\n    END LINKS INCLUDE\n\n|Open in Dev Containers| |Test Status| |Test Cov|\n\n..\n    BEGIN TOOLCHAIN INCLUDE\n\nThis 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 <https://semver.org/>`__ 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.\n\n\nDevelopment Environment Setup\n-----------------------------\nIt 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 <https://code.visualstudio.com/docs/devcontainers/containers>`__ for an overview, `here <https://stackoverflow.com/questions/71402603/vs-code-in-docker-container-is-there-a-way-to-automatically-install-extensions>`__ for auto installing extensions in the container\nand `here <https://pspdfkit.com/blog/2020/visual-studio-code-cpp-docker/>`__ for an example setup. The provided dev container also has useful extensions installed to ease development.\n\nTo being, make sure VS Code and git are installed. Additionally, make sure docker is installed for your system (`Windows <https://docs.docker.com/desktop/install/windows-install/>`__, `Mac <https://docs.docker.com/desktop/install/mac-install/>`_, `Linux <https://docs.docker.com/engine/install/>`__). 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 :code:`\\\\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.\n\nNote 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).\n\n\nExample Workflow\n----------------\nOnce 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.\n\n.. code-block:: \n\n    tox\n\nThis 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.\n\nAfter 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\n\n.. code-block:: \n\n    tox -e clean_docs\n    tox -e docs_html\n\nto 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.\n\n\nNotes on tox\n------------\nTox 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\n\n.. code-block:: \n\n    tox -av\n\nand a specific environment run by calling\n\n.. code-block:: \n\n    tox -e ENV\n\nwhere :code:`ENV` is replaced with the environment name. To pass positional arguments into the commands run within the tox environment you must use :code:`--` after the environment name but before the positional arguments. For example to run validation tests using Python 3.9 and pass the :code:`--runslow` option to pytest you would call :code:`tox -e py39-validation_test -- --runslow`.\n\nNote, all tox commands must be run from the root of the repository because this is where the **tox.ini** file lives.\n\n..\n    END TOOLCHAIN INCLUDE\n\n.. \n    BEGIN CITE INCLUDE\n\nCite\n====\nPlease cite the framework as follows\n\n.. code-block:: bibtex\n\n    @Misc{gncpy,\n        author       = {Jordan D. Larson and Ryan W. Thomas and Vincent W. Hill and Vaughn Weirens},\n        howpublished = {Web page},\n        title        = {{GNCPy}: A {P}ython library for {G}uidance, {N}avigation, and {C}ontrol algorithms},\n        year         = {2019},\n        url          = {https://github.com/drjdlarson/gncpy},\n    }\n\n..\n    END CITE INCLUDE",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2020 Jordan D Larson  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "A package for Guidance, Navigation, and Control (GNC) algorithms.",
    "version": "2.0.0",
    "project_urls": {
        "Documentation": "https://drjdlarson.github.io/gncpy/",
        "Homepage": "http://lager.ua.edu/",
        "Repository": "https://github.com/drjdlarson/gncpy"
    },
    "split_keywords": [
        "guidance",
        "navigation",
        "and",
        "control",
        "dynamics",
        "kalman",
        "filter",
        "reinforcement",
        "learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a78fef489d6297ad72b88c15712412ceb317cb9356ec46ea6556ebd83e6cc74a",
                "md5": "050ecea3e0dd739eea4dec3fa045544f",
                "sha256": "73ffe3c7672bc1d2a6790daffa62201424e678667a707052fc837561f337e6dc"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "050ecea3e0dd739eea4dec3fa045544f",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5483058,
            "upload_time": "2023-07-19T06:31:41",
            "upload_time_iso_8601": "2023-07-19T06:31:41.334145Z",
            "url": "https://files.pythonhosted.org/packages/a7/8f/ef489d6297ad72b88c15712412ceb317cb9356ec46ea6556ebd83e6cc74a/gncpy-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "181add24f14cc7d0727c1e29dcb966640ee27dbd8057e0e79cbbf0b9d99d5a0a",
                "md5": "5b17731d3b6a629955516262e9447742",
                "sha256": "359261a798940bcff483f124d165606e712297ec2aa0a923b7d905cd30a72a67"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "5b17731d3b6a629955516262e9447742",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5338435,
            "upload_time": "2023-07-19T06:31:43",
            "upload_time_iso_8601": "2023-07-19T06:31:43.514187Z",
            "url": "https://files.pythonhosted.org/packages/18/1a/dd24f14cc7d0727c1e29dcb966640ee27dbd8057e0e79cbbf0b9d99d5a0a/gncpy-2.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9746c11d9276140add3042b302a88bfa5a9ad9e8d2cfe4a1b90c8fac9636968",
                "md5": "91ee2a8358d2bd11d184477fd80b1e23",
                "sha256": "17689e3e8b2a2bf71b989c18e6058e189afbd04238db8b772582fae34248aa8b"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "91ee2a8358d2bd11d184477fd80b1e23",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5255135,
            "upload_time": "2023-07-19T06:31:45",
            "upload_time_iso_8601": "2023-07-19T06:31:45.507081Z",
            "url": "https://files.pythonhosted.org/packages/e9/74/6c11d9276140add3042b302a88bfa5a9ad9e8d2cfe4a1b90c8fac9636968/gncpy-2.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5415c486562c8d48bc3c776475d7ff88694a268002ca3071e3a4d1b992af7f5",
                "md5": "6163468076a88fc827a56adf3af70a37",
                "sha256": "842a88eaec05e7dc043d0c51794787852661637c622d6dd0cc8587b7206eed9f"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp37-cp37m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "6163468076a88fc827a56adf3af70a37",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5749736,
            "upload_time": "2023-07-19T06:31:46",
            "upload_time_iso_8601": "2023-07-19T06:31:46.960939Z",
            "url": "https://files.pythonhosted.org/packages/c5/41/5c486562c8d48bc3c776475d7ff88694a268002ca3071e3a4d1b992af7f5/gncpy-2.0.0-cp37-cp37m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c6dad31e3e32658f0dd69e372a6a43dff946e2f29ac3f5ed22fe538dc165fa28",
                "md5": "0a6d318234d7b462d03b488b4b0b5c05",
                "sha256": "2e84f1bdf9d1dfc37370404fdb67ad983480711c909c30d2f1e70b68092a9ef3"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0a6d318234d7b462d03b488b4b0b5c05",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5633828,
            "upload_time": "2023-07-19T06:31:48",
            "upload_time_iso_8601": "2023-07-19T06:31:48.949276Z",
            "url": "https://files.pythonhosted.org/packages/c6/da/d31e3e32658f0dd69e372a6a43dff946e2f29ac3f5ed22fe538dc165fa28/gncpy-2.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3fc4e9ff26e7ae714da4981e47a147316d1b1b4e91520edd23039fa99e42fcf",
                "md5": "97f0e309f8853b06de9b78f593a69a63",
                "sha256": "2ac259facb1ef94e82514ad50b5db03c20d2a66d8105635128e1ab9dcca4a334"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "97f0e309f8853b06de9b78f593a69a63",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5488617,
            "upload_time": "2023-07-19T06:31:50",
            "upload_time_iso_8601": "2023-07-19T06:31:50.515994Z",
            "url": "https://files.pythonhosted.org/packages/a3/fc/4e9ff26e7ae714da4981e47a147316d1b1b4e91520edd23039fa99e42fcf/gncpy-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2c45dc52a2319152c278959620ad12f17c1a2754e16842691441c3d323f9d1c7",
                "md5": "f6d7b65c50e02b85ce9332aa42add7cb",
                "sha256": "64615fe5bfc7d7fab3d3f8772b12ec5929b39c69833ebf7d05b74c402d9646b3"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f6d7b65c50e02b85ce9332aa42add7cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5313501,
            "upload_time": "2023-07-19T06:31:52",
            "upload_time_iso_8601": "2023-07-19T06:31:52.668832Z",
            "url": "https://files.pythonhosted.org/packages/2c/45/dc52a2319152c278959620ad12f17c1a2754e16842691441c3d323f9d1c7/gncpy-2.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da5e59ec8c43f9051edf9f9c82da79ee6a35323962dbe5812005458198bf5997",
                "md5": "78272a175a3369b7a482f78427fac04a",
                "sha256": "1c7a0f20427c8c0193c41093673795104f2b3d6f81a1c5dbeea2a898d521952b"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "78272a175a3369b7a482f78427fac04a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5236961,
            "upload_time": "2023-07-19T06:31:54",
            "upload_time_iso_8601": "2023-07-19T06:31:54.836554Z",
            "url": "https://files.pythonhosted.org/packages/da/5e/59ec8c43f9051edf9f9c82da79ee6a35323962dbe5812005458198bf5997/gncpy-2.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c313a623bbcfc7188106274f0b0c94f213be7082749e9d5d18b0d1ddca890cb0",
                "md5": "1a3ee9b515bcced7172adc548e8ee780",
                "sha256": "9c28677b9fa254cee9b7452f718ed0d2237bb475569c0660f70e26ec25224467"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "1a3ee9b515bcced7172adc548e8ee780",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5724863,
            "upload_time": "2023-07-19T06:31:56",
            "upload_time_iso_8601": "2023-07-19T06:31:56.810073Z",
            "url": "https://files.pythonhosted.org/packages/c3/13/a623bbcfc7188106274f0b0c94f213be7082749e9d5d18b0d1ddca890cb0/gncpy-2.0.0-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aacefd48a66a014958deded72abf52a6c5fc9cd4199cd092752506f316c7a0d2",
                "md5": "fd5ce49d1db41b3065ef8aa9995d9737",
                "sha256": "077d6e1ec7f3e381be7e7b09ffce8de62e31e684bfbb5dba9f3c1fbb73835975"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fd5ce49d1db41b3065ef8aa9995d9737",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5613466,
            "upload_time": "2023-07-19T06:31:58",
            "upload_time_iso_8601": "2023-07-19T06:31:58.773581Z",
            "url": "https://files.pythonhosted.org/packages/aa/ce/fd48a66a014958deded72abf52a6c5fc9cd4199cd092752506f316c7a0d2/gncpy-2.0.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9d2d062951b67d97911226c384b874698f7e92f6614376c4104bbba6f1b54612",
                "md5": "620167f5b874241b0adf3ad430deccbb",
                "sha256": "4d2745b04b89ecf77ae764caebe83e3d6cdf5f966eaf6e4cf9533af4dd1a7148"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "620167f5b874241b0adf3ad430deccbb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5488989,
            "upload_time": "2023-07-19T06:32:00",
            "upload_time_iso_8601": "2023-07-19T06:32:00.943462Z",
            "url": "https://files.pythonhosted.org/packages/9d/2d/062951b67d97911226c384b874698f7e92f6614376c4104bbba6f1b54612/gncpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1f95556361c47e267b908e6370f10b89cf8a66d61b397bd13e44756de572c6cc",
                "md5": "52e7ec5ac986b9553526d8ff3890dc48",
                "sha256": "40d2754c95e46e57cddf29576723cafab6f39ea038646997b12e41c3823adc79"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "52e7ec5ac986b9553526d8ff3890dc48",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5316359,
            "upload_time": "2023-07-19T06:32:03",
            "upload_time_iso_8601": "2023-07-19T06:32:03.948922Z",
            "url": "https://files.pythonhosted.org/packages/1f/95/556361c47e267b908e6370f10b89cf8a66d61b397bd13e44756de572c6cc/gncpy-2.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9a08f2afbaccf4d6cd69571b2f89f40f63305f9450b0c3b53dc5254f424a7b2f",
                "md5": "0109d42f6ea2b3c3a7f241178876bcd7",
                "sha256": "93adfa0eb14da693658a9ad665108c569e73b1f927d2336375c9634899d3c6a2"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0109d42f6ea2b3c3a7f241178876bcd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5236680,
            "upload_time": "2023-07-19T06:32:05",
            "upload_time_iso_8601": "2023-07-19T06:32:05.444343Z",
            "url": "https://files.pythonhosted.org/packages/9a/08/f2afbaccf4d6cd69571b2f89f40f63305f9450b0c3b53dc5254f424a7b2f/gncpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9892303f3173f7226c85f8bd92743a97d2e1a57c002377f84d172dfe15e36552",
                "md5": "450a838761a1a19a95454f232cde0ea2",
                "sha256": "648ff9d4ffccbe8284af4804c363a9b5f3cc0d7a5ae19c77531fc8a052231a5d"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "450a838761a1a19a95454f232cde0ea2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5726183,
            "upload_time": "2023-07-19T06:32:07",
            "upload_time_iso_8601": "2023-07-19T06:32:07.627068Z",
            "url": "https://files.pythonhosted.org/packages/98/92/303f3173f7226c85f8bd92743a97d2e1a57c002377f84d172dfe15e36552/gncpy-2.0.0-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dbd9e48725fe5a14dc80fe8630041574e856c74046e5dd371ca25197d15a060d",
                "md5": "5b029bc303605d4d75999fdc09791565",
                "sha256": "8c07951b2f2364b89dd46772f1868b20bc7390565a7f142720125e6337b86c3d"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5b029bc303605d4d75999fdc09791565",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5614799,
            "upload_time": "2023-07-19T06:32:09",
            "upload_time_iso_8601": "2023-07-19T06:32:09.603464Z",
            "url": "https://files.pythonhosted.org/packages/db/d9/e48725fe5a14dc80fe8630041574e856c74046e5dd371ca25197d15a060d/gncpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dab0306f6720ecc1c9a725b6dddee8f7573866b77fa9ae465eb39dbe20cbddc1",
                "md5": "7358a42a24ecbc82b2a5a34997ab244d",
                "sha256": "a53af442ebafd1900610074c04a8a5b7fe1f50ad437434bc853c1f34c9448f8f"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7358a42a24ecbc82b2a5a34997ab244d",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5487788,
            "upload_time": "2023-07-19T06:32:11",
            "upload_time_iso_8601": "2023-07-19T06:32:11.164408Z",
            "url": "https://files.pythonhosted.org/packages/da/b0/306f6720ecc1c9a725b6dddee8f7573866b77fa9ae465eb39dbe20cbddc1/gncpy-2.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b7831c9354e33f73cfffad060b0ff01bd16d3639013878c3332be83b48194e97",
                "md5": "c13f45bdc9775704809bd980cc0b45df",
                "sha256": "b2ee725e06ac4320aaec7277d3bfae2ff729f71364cb97499056d7b63dd84e28"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "c13f45bdc9775704809bd980cc0b45df",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5315014,
            "upload_time": "2023-07-19T06:32:12",
            "upload_time_iso_8601": "2023-07-19T06:32:12.712464Z",
            "url": "https://files.pythonhosted.org/packages/b7/83/1c9354e33f73cfffad060b0ff01bd16d3639013878c3332be83b48194e97/gncpy-2.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "770b9814022a8cce63744b30470ad7336542cb830eb0608f1018f719e1fd24d1",
                "md5": "618b723386406c43a3dc4facd9865800",
                "sha256": "905990e517e168e5b1f4af28bdf1bcc1ae44636a0638ffcbf407aca78d9d669d"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "618b723386406c43a3dc4facd9865800",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": "<3.10,>=3.7",
            "size": 5230970,
            "upload_time": "2023-07-19T06:32:14",
            "upload_time_iso_8601": "2023-07-19T06:32:14.299106Z",
            "url": "https://files.pythonhosted.org/packages/77/0b/9814022a8cce63744b30470ad7336542cb830eb0608f1018f719e1fd24d1/gncpy-2.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b13033d82b264db12a718e5d730cb38ff5f189682529f32bea6f82e08b13966b",
                "md5": "2b3282e61c1e2fb1a1078057bf06070c",
                "sha256": "cf62c1cc2c05644992fef30950c11bbc3fcc406e6bbb028c378d86cf99d4f9a6"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2b3282e61c1e2fb1a1078057bf06070c",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5489276,
            "upload_time": "2023-07-19T06:32:15",
            "upload_time_iso_8601": "2023-07-19T06:32:15.767502Z",
            "url": "https://files.pythonhosted.org/packages/b1/30/33d82b264db12a718e5d730cb38ff5f189682529f32bea6f82e08b13966b/gncpy-2.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b6d72ae9d2b4558a4f5cd2b846bc906adc9f4aec4d9d5749194a6ad515ffe54e",
                "md5": "e44fb1ded32087396321e30d0003faed",
                "sha256": "45771bc5de49618317829beeaf57716ddba42d903e30bdc9d07fc4359b82b064"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "e44fb1ded32087396321e30d0003faed",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5317306,
            "upload_time": "2023-07-19T06:32:17",
            "upload_time_iso_8601": "2023-07-19T06:32:17.341891Z",
            "url": "https://files.pythonhosted.org/packages/b6/d7/2ae9d2b4558a4f5cd2b846bc906adc9f4aec4d9d5749194a6ad515ffe54e/gncpy-2.0.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7bbdb6e2b7e1b191939a2b1b196243e6b0d544787ec7ddce470af246144022dc",
                "md5": "2771f4ea0238c258bcd43a4b6fec964f",
                "sha256": "2e6ddd8a440e635195c382f47ed8cc61df5edb080d4cf3aa11aba23b3da627b0"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2771f4ea0238c258bcd43a4b6fec964f",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": "<3.10,>=3.7",
            "size": 5234417,
            "upload_time": "2023-07-19T06:32:19",
            "upload_time_iso_8601": "2023-07-19T06:32:19.464221Z",
            "url": "https://files.pythonhosted.org/packages/7b/bd/b6e2b7e1b191939a2b1b196243e6b0d544787ec7ddce470af246144022dc/gncpy-2.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d20029b111012a6ec27c07854124042f9c8b305baf042b2e2a85f3c164eb29f",
                "md5": "4c576dfd87c0f76227a39cb7f4fb6da5",
                "sha256": "9570241524782a876bbf1f256457815bb85ae041c2c487af8da68a8978d23efa"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4c576dfd87c0f76227a39cb7f4fb6da5",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5489228,
            "upload_time": "2023-07-19T06:32:21",
            "upload_time_iso_8601": "2023-07-19T06:32:21.493600Z",
            "url": "https://files.pythonhosted.org/packages/7d/20/029b111012a6ec27c07854124042f9c8b305baf042b2e2a85f3c164eb29f/gncpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c4c3842a2b8c723589b9321aa87fef89c3da40196e7a73d5f1143856e0913786",
                "md5": "2dfbf1f58c1da5e8fbf866035dca9e0a",
                "sha256": "39ea7681bc70a2d120f21fee1feb5b5402cef80b598b4a5f123dac8e0d9bc236"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "2dfbf1f58c1da5e8fbf866035dca9e0a",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5317063,
            "upload_time": "2023-07-19T06:32:23",
            "upload_time_iso_8601": "2023-07-19T06:32:23.514227Z",
            "url": "https://files.pythonhosted.org/packages/c4/c3/842a2b8c723589b9321aa87fef89c3da40196e7a73d5f1143856e0913786/gncpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "803912ba5f9356e33ce55cc5a14ba683d0f61aa117ab13c67b80fd85d206a208",
                "md5": "2f2eefa7ca6cfebc383d9b060172b13d",
                "sha256": "f6419e4fdbdb0e5692b304fc0ac2f76dcea18b5bf44057ac9b365c177f68b30e"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2f2eefa7ca6cfebc383d9b060172b13d",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "<3.10,>=3.7",
            "size": 5234094,
            "upload_time": "2023-07-19T06:32:25",
            "upload_time_iso_8601": "2023-07-19T06:32:25.631808Z",
            "url": "https://files.pythonhosted.org/packages/80/39/12ba5f9356e33ce55cc5a14ba683d0f61aa117ab13c67b80fd85d206a208/gncpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a5695689e3fe360f73ffe525f9efe5cafd72922dd302fc16d2e5b6857c172594",
                "md5": "a9875f16979e05eb3b7fc504eb51a189",
                "sha256": "435b1269ecd34a7a9952017ae6adad650454d3ffe44bf87ab168a80112fd5a6e"
            },
            "downloads": -1,
            "filename": "gncpy-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a9875f16979e05eb3b7fc504eb51a189",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.10,>=3.7",
            "size": 15864745,
            "upload_time": "2023-07-19T06:32:27",
            "upload_time_iso_8601": "2023-07-19T06:32:27.304778Z",
            "url": "https://files.pythonhosted.org/packages/a5/69/5689e3fe360f73ffe525f9efe5cafd72922dd302fc16d2e5b6857c172594/gncpy-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-19 06:32:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "drjdlarson",
    "github_project": "gncpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "gncpy"
}
        
Elapsed time: 0.11357s