pyguitarpro


Namepyguitarpro JSON
Version 0.10 PyPI version JSON
download
home_pageNone
SummaryRead, write, and manipulate GP3, GP4 and GP5 files.
upload_time2025-08-31 13:16:40
maintainerNone
docs_urlNone
authorSviatoslav Abakumov
requires_python>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            PyGuitarPro
===========

.. image:: https://img.shields.io/pypi/v/pyguitarpro.svg?style=flat
   :alt: PyPI Package latest release
   :target: https://pypi.org/project/PyGuitarPro/


Introduction
------------

PyGuitarPro is a package to read, write and manipulate GP3, GP4 and GP5 files. Initially PyGuitarPro is a Python port
of `AlphaTab <https://www.alphatab.net/>`_ which originally was a Haxe port of
`TuxGuitar <https://sourceforge.net/projects/tuxguitar/>`_.

This package helps you achieve several goals you might find yourself yearning to do in a day-to-day tabber life:

- Transpose a track without messing the fingering
- Add the first string to the track without messing the fingering
- Map percussion notes to different values

Reading ``.gp*`` files is as easy as:

.. code-block:: python

   import guitarpro
   curl = guitarpro.parse('Mastodon - Curl of the Burl.gp5')

Writing ``.gp*`` files isn't that hard either:

.. code-block:: python

   guitarpro.write(curl, 'Mastodon - Curl of the Burl 2.gp5')

All objects representing GP entities are hashable and comparable. This gives a great opportunity to apply the *diff*
algorithm to tabs, or even the *diff3* algorithm to merge tablatures.

For those looking to create the best guitar tablature editor in Python, this package is a good place to start.

Examples
--------

Several usage examples are included in the ``/examples`` folder. Feel free to add your own examples or improve existing
ones. Then, submit them via pull request.

To run one of the examples in your local environment, simply:

.. code-block:: sh

   cd PyGuitarPro
   uv run examples/transpose.py --help


Installation
------------

Install PyGuitarPro from PyPI:

.. code-block:: sh

   pip install PyGuitarPro


Documentation
-------------

Package documentation is located at `Read the Docs <https://pyguitarpro.readthedocs.io/>`_.


Development
-----------

Install the development version of PyGuitarPro with `uv <https://docs.astral.sh/uv/>`_:

.. code-block:: sh

   git clone https://github.com/Perlence/PyGuitarPro.git
   cd PyGuitarPro
   uv sync

Run the tests:

.. code-block:: sh

   uv run pytest

Install the `pre-commit hook <https://adamj.eu/tech/2025/05/07/pre-commit-install-uv/>`_:

.. code-block:: sh

   uv run pre-commit install


Licensing
---------

Please see the file called ``LICENSE``.

.. vim: tw=120 cc=121

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyguitarpro",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Sviatoslav Abakumov",
    "author_email": "Sviatoslav Abakumov <dust.harvesting@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/a4/e6/965d1fc88ba6c288912c6099f53f6060d1c17efdbd24cd3fe7279aec1610/pyguitarpro-0.10.tar.gz",
    "platform": null,
    "description": "PyGuitarPro\n===========\n\n.. image:: https://img.shields.io/pypi/v/pyguitarpro.svg?style=flat\n   :alt: PyPI Package latest release\n   :target: https://pypi.org/project/PyGuitarPro/\n\n\nIntroduction\n------------\n\nPyGuitarPro is a package to read, write and manipulate GP3, GP4 and GP5 files. Initially PyGuitarPro is a Python port\nof `AlphaTab <https://www.alphatab.net/>`_ which originally was a Haxe port of\n`TuxGuitar <https://sourceforge.net/projects/tuxguitar/>`_.\n\nThis package helps you achieve several goals you might find yourself yearning to do in a day-to-day tabber life:\n\n- Transpose a track without messing the fingering\n- Add the first string to the track without messing the fingering\n- Map percussion notes to different values\n\nReading ``.gp*`` files is as easy as:\n\n.. code-block:: python\n\n   import guitarpro\n   curl = guitarpro.parse('Mastodon - Curl of the Burl.gp5')\n\nWriting ``.gp*`` files isn't that hard either:\n\n.. code-block:: python\n\n   guitarpro.write(curl, 'Mastodon - Curl of the Burl 2.gp5')\n\nAll objects representing GP entities are hashable and comparable. This gives a great opportunity to apply the *diff*\nalgorithm to tabs, or even the *diff3* algorithm to merge tablatures.\n\nFor those looking to create the best guitar tablature editor in Python, this package is a good place to start.\n\nExamples\n--------\n\nSeveral usage examples are included in the ``/examples`` folder. Feel free to add your own examples or improve existing\nones. Then, submit them via pull request.\n\nTo run one of the examples in your local environment, simply:\n\n.. code-block:: sh\n\n   cd PyGuitarPro\n   uv run examples/transpose.py --help\n\n\nInstallation\n------------\n\nInstall PyGuitarPro from PyPI:\n\n.. code-block:: sh\n\n   pip install PyGuitarPro\n\n\nDocumentation\n-------------\n\nPackage documentation is located at `Read the Docs <https://pyguitarpro.readthedocs.io/>`_.\n\n\nDevelopment\n-----------\n\nInstall the development version of PyGuitarPro with `uv <https://docs.astral.sh/uv/>`_:\n\n.. code-block:: sh\n\n   git clone https://github.com/Perlence/PyGuitarPro.git\n   cd PyGuitarPro\n   uv sync\n\nRun the tests:\n\n.. code-block:: sh\n\n   uv run pytest\n\nInstall the `pre-commit hook <https://adamj.eu/tech/2025/05/07/pre-commit-install-uv/>`_:\n\n.. code-block:: sh\n\n   uv run pre-commit install\n\n\nLicensing\n---------\n\nPlease see the file called ``LICENSE``.\n\n.. vim: tw=120 cc=121\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Read, write, and manipulate GP3, GP4 and GP5 files.",
    "version": "0.10",
    "project_urls": {
        "Documentation": "https://pyguitarpro.readthedocs.io/",
        "Issue tracker": "https://github.com/Perlence/PyGuitarPro/issues",
        "Source code": "https://github.com/Perlence/PyGuitarPro"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3addc14c257e7f198aea960ed51db6c5e9560e4c2c79c150ec448d643a690acf",
                "md5": "f3469f3bfb3a1b60ee48426ddd2eb609",
                "sha256": "3528c26a770839f0ff13cb7ddc960ab3a7090aff8a105d3035695de57b35159f"
            },
            "downloads": -1,
            "filename": "pyguitarpro-0.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f3469f3bfb3a1b60ee48426ddd2eb609",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 45385,
            "upload_time": "2025-08-31T13:16:41",
            "upload_time_iso_8601": "2025-08-31T13:16:41.864317Z",
            "url": "https://files.pythonhosted.org/packages/3a/dd/c14c257e7f198aea960ed51db6c5e9560e4c2c79c150ec448d643a690acf/pyguitarpro-0.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a4e6965d1fc88ba6c288912c6099f53f6060d1c17efdbd24cd3fe7279aec1610",
                "md5": "5d2a7a18345ebfe0e4b68e6bf9d9e69d",
                "sha256": "b64a54cfc36736c4e5e1e819bb9fc0d9a2f580983cec2ac5c39f75d58561aeb0"
            },
            "downloads": -1,
            "filename": "pyguitarpro-0.10.tar.gz",
            "has_sig": false,
            "md5_digest": "5d2a7a18345ebfe0e4b68e6bf9d9e69d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 94611,
            "upload_time": "2025-08-31T13:16:40",
            "upload_time_iso_8601": "2025-08-31T13:16:40.830624Z",
            "url": "https://files.pythonhosted.org/packages/a4/e6/965d1fc88ba6c288912c6099f53f6060d1c17efdbd24cd3fe7279aec1610/pyguitarpro-0.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-31 13:16:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Perlence",
    "github_project": "PyGuitarPro",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyguitarpro"
}
        
Elapsed time: 3.24975s