{"id":20779734,"url":"https://github.com/openqasm/openpulse-python","last_synced_at":"2025-12-12T01:01:50.329Z","repository":{"id":62378281,"uuid":"526670343","full_name":"openqasm/openpulse-python","owner":"openqasm","description":"Reference Python package to work with OpenPulse","archived":false,"fork":false,"pushed_at":"2025-04-02T16:08:41.000Z","size":109,"stargazers_count":5,"open_issues_count":7,"forks_count":9,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-30T03:19:51.195Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openqasm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-08-19T16:03:36.000Z","updated_at":"2025-04-02T16:08:45.000Z","dependencies_parsed_at":"2024-06-21T12:57:48.418Z","dependency_job_id":"8d3636cd-4f10-4c63-a80e-8266dd236dd8","html_url":"https://github.com/openqasm/openpulse-python","commit_stats":null,"previous_names":["openqasm/openpulse"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openqasm%2Fopenpulse-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openqasm%2Fopenpulse-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openqasm%2Fopenpulse-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openqasm%2Fopenpulse-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openqasm","download_url":"https://codeload.github.com/openqasm/openpulse-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251773214,"owners_count":21641583,"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":[],"created_at":"2024-11-17T13:29:25.619Z","updated_at":"2025-12-12T01:01:50.271Z","avatar_url":"https://github.com/openqasm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenPulse Python Parser Reference Implementation\n\nThis project is a reference implementation of [OpenPulse](https://openqasm.com/language/openpulse.html).\nSpecifically, the parser passes the body of `cal` and `defcal` written in `OpenPulse`.\nIt reuses the classical types and statements from `openqasm3`.\n## Developing openpulse\n\nTo install dependencies, change to `source/openpulse` directory and run:\n\n```\npython -m pip install -r requirements.txt -r requirements-dev.txt\n```\n\nTo reuse classic statements/types, OpenPulse grammar imports OpenQASM grammar. When we update the\nOpenPulse grammar, we also need to copy the latest OpenQASM grammar from \nhttps://github.com/openqasm/openqasm/tree/main/source/grammar into the `source/grammar` directory.\n\nNow build the `openpulse` grammar. Change to the `source/grammar` directory and run:\n\n```\nantlr4 -o ../openpulse/openpulse/_antlr/_\u003cmajor\u003e_\u003cminor\u003e -Dlanguage=Python3 -visitor openpulseLexer.g4 openpulseParser.g4\n```\n\nFinally, you can change to the `source/openpulse` directory and run:\n\n```\npytest .\n```\n\n## Deployment procedure\n\nThe deployment is primarily managed by a GitHub Actions pipeline, triggered by a tag of the form `v\u003cversion\u003e`.\nFor example, for package version `0.4.0`, the tag should be `v0.4.0`.\n\nTo deploy:\n\n1. create a PR that sets the version number of the package in `__init__.py` to what it should be.\n2. once the PR has merged, tag the merge commit (for example, `git fetch origin; git tag -m \"Python AST 0.4.0\" v0.4.0 origin/main`).\n3. push the tag to this repository (for example, `git push origin v0.4.0`).\n\nAt this point, the deployment pipeline will take over and deploy the package to PyPI.\nYou should be able to see the progress [in the Actions tab of this repository](https://github.com/openqasm/openpulse/actions/workflows/deploy-ast.yml).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenqasm%2Fopenpulse-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenqasm%2Fopenpulse-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenqasm%2Fopenpulse-python/lists"}