{"id":17200623,"url":"https://github.com/perlence/rpp","last_synced_at":"2025-04-13T19:33:07.837Z","repository":{"id":57462945,"uuid":"43323485","full_name":"Perlence/rpp","owner":"Perlence","description":"Read and write Reaper RPP files with Python.","archived":false,"fork":false,"pushed_at":"2023-04-29T18:46:09.000Z","size":92,"stargazers_count":68,"open_issues_count":3,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-04T14:02:27.793Z","etag":null,"topics":["parser","ply","python","python3","reaper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Perlence.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-28T19:53:32.000Z","updated_at":"2025-03-26T05:40:22.000Z","dependencies_parsed_at":"2024-11-07T23:11:07.623Z","dependency_job_id":null,"html_url":"https://github.com/Perlence/rpp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Frpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Frpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Frpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Perlence%2Frpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Perlence","download_url":"https://codeload.github.com/Perlence/rpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248768166,"owners_count":21158590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["parser","ply","python","python3","reaper"],"created_at":"2024-10-15T02:09:16.075Z","updated_at":"2025-04-13T19:33:07.808Z","avatar_url":"https://github.com/Perlence.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"RPP\n===\n\nRPP is a format used to describe `REAPER \u003chttp://reaper.fm\u003e`_ projects. This package is designed to be an RPP\nparser/emitter and uses `PLY \u003chttp://www.dabeaz.com/ply/\u003e`_ as a parser framework.\n\nExamples\n--------\n\nImport the package:\n\n.. code-block:: python\n\n   \u003e\u003e\u003e import rpp\n\nDecode RPP:\n\n.. code-block:: python\n\n   \u003e\u003e\u003e r = rpp.loads(\"\"\"\\\n   \u003cREAPER_PROJECT 0.1 \"4.32\" 1372525904\n     RIPPLE 0\n     GROUPOVERRIDE 0 0 0\n     AUTOXFADE 1\n   \u003e\n   \"\"\")\n   \u003e\u003e\u003e r\n   Element(tag='REAPER_PROJECT', attrib=['0.1', '4.32', '1372525904'], children=[\n       ['RIPPLE', '0'],\n       ['GROUPOVERRIDE', '0', '0', '0'],\n       ['AUTOXFADE', '1'],\n   ])\n\nTransform elements into RPP:\n\n.. code-block:: python\n\n   \u003e\u003e\u003e from rpp import Element\n   \u003e\u003e\u003e rpp.dumps(\n   ...     Element(tag='REAPER_PROJECT', attrib=['0.1', '4.32', '1372525904'], children=[\n   ...         ['RIPPLE', '0'],\n   ...         ['GROUPOVERRIDE', '0', '0', '0'],\n   ...         ['AUTOXFADE', '1'],\n   ...     ]))\n   '\u003cREAPER_PROJECT 0.1 4.32 1372525904\\n  RIPPLE 0\\n  GROUPOVERRIDE 0 0 0\\n  AUTOXFADE 1\\n\u003e\\n'\n\n``Element`` mimics the interface of xml.etree.ElementTree.Element_. You can perform querying operations with\n``findall``, ``find``, ``iterfind``. Note that attribute and text predicates are not supported.\n\n.. _xml.etree.ElementTree.Element: https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element\n\n.. code-block:: python\n\n   \u003e\u003e\u003e groupoverride = r.find('.//GROUPOVERRIDE')\n   \u003e\u003e\u003e groupoverride\n   ['GROUPOVERRIDE', '0', '0', '0']\n   \u003e\u003e\u003e groupoverride[1:] = ['9', '9', '9']\n   \u003e\u003e\u003e r\n   Element(tag='REAPER_PROJECT', attrib=['0.1', '4.32', '1372525904'], children=[\n       ['RIPPLE', '0'],\n       ['GROUPOVERRIDE', '9', '9', '9'],\n       ['AUTOXFADE', '1'],\n   ])\n\nDependencies\n------------\n\n- `attrs \u003chttps://attrs.readthedocs.org/\u003e`_\n- `ply \u003chttp://www.dabeaz.com/ply/\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlence%2Frpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperlence%2Frpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperlence%2Frpp/lists"}