{"id":18952709,"url":"https://github.com/compwa/qrules","last_synced_at":"2025-04-15T07:07:21.216Z","repository":{"id":39300421,"uuid":"355222824","full_name":"ComPWA/qrules","owner":"ComPWA","description":"Rule-based particle reaction problem solver on a quantum number level","archived":false,"fork":false,"pushed_at":"2025-04-07T21:17:16.000Z","size":3602,"stargazers_count":9,"open_issues_count":39,"forks_count":5,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-15T07:07:09.124Z","etag":null,"topics":["amplitude-analysis","conservation-rules","partial-wave-analysis","particle-physics","quantum-numbers","reactions","rule-based"],"latest_commit_sha":null,"homepage":"https://qrules.rtfd.io","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/ComPWA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-06T14:38:59.000Z","updated_at":"2025-03-31T12:11:56.000Z","dependencies_parsed_at":"2024-06-07T04:27:36.227Z","dependency_job_id":"b56c786b-6227-443f-ad05-a3a3dfc17e2e","html_url":"https://github.com/ComPWA/qrules","commit_stats":{"total_commits":640,"total_committers":12,"mean_commits":"53.333333333333336","dds":0.503125,"last_synced_commit":"5a3bf729ed06718b25459adad290bd7a00224c67"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComPWA%2Fqrules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComPWA%2Fqrules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComPWA%2Fqrules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComPWA%2Fqrules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ComPWA","download_url":"https://codeload.github.com/ComPWA/qrules/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249023700,"owners_count":21199960,"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":["amplitude-analysis","conservation-rules","partial-wave-analysis","particle-physics","quantum-numbers","reactions","rule-based"],"created_at":"2024-11-08T13:34:23.384Z","updated_at":"2025-04-15T07:07:21.210Z","avatar_url":"https://github.com/ComPWA.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quantum Number Conservation Rules\n\n[![10.5281/zenodo.5526360](https://zenodo.org/badge/doi/10.5281/zenodo.5526360.svg)](https://doi.org/10.5281/zenodo.5526360)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\n[![PyPI package](https://badge.fury.io/py/qrules.svg)](https://pypi.org/project/qrules)\n[![Conda package](https://anaconda.org/conda-forge/qrules/badges/version.svg)](https://anaconda.org/conda-forge/qrules)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/qrules)](https://pypi.org/project/qrules)\n\n[![Binder](https://static.mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ComPWA/qrules/stable?urlpath=lab)\n[![Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ComPWA/qrules/blob/stable)\n[![Open in Visual Studio Code](https://img.shields.io/badge/vscode-open-blue?logo=visualstudiocode)](https://open.vscode.dev/ComPWA/qrules)\n\n[![Documentation](https://readthedocs.org/projects/qrules/badge/?version=latest)](https://qrules.readthedocs.io)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ComPWA/qrules/main.svg)](https://results.pre-commit.ci/latest/github/ComPWA/qrules/main)\n[![pytest](https://github.com/ComPWA/qrules/workflows/pytest/badge.svg)](https://github.com/ComPWA/qrules/actions?query=branch%3Amain+workflow%3Apytest)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy.readthedocs.io)\n[![Test coverage](https://codecov.io/gh/ComPWA/qrules/branch/main/graph/badge.svg)](https://codecov.io/gh/ComPWA/qrules)\n[![Spelling checked](https://img.shields.io/badge/cspell-checked-brightgreen.svg)](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)\n\nQRules is a Python package for **validating and generating particle reactions** using\nquantum number conservation rules. The user only has to provide a certain set of\nboundary conditions (initial and final state, allowed interaction types, expected decay\ntopologies, etc.). QRules will then span the space of allowed quantum numbers over all\nallowed decay topologies and particle instances that correspond with the sets of allowed\nquantum numbers it has found.\n\nThe resulting state transition objects are particularly useful for **amplitude analysis\n/ Partial Wave Analysis** as they contain all information (such as expected masses,\nwidths, and spin projections) that is needed to formulate an amplitude model.\n\nVisit [qrules.rtfd.io](https://qrules.readthedocs.io) for more information!\n\nFor an overview of **upcoming releases and planned functionality**, see\n[here](https://github.com/ComPWA/qrules/milestones?direction=asc\u0026sort=title\u0026state=open).\n\n## Available features\n\n- **Input**: Particle database\n  - Source of truth: PDG\n  - Predefined particle list file\n  - Option to overwrite and append with custom particle definitions\n- **State transition graph**\n  - Feynman graph like description of the reactions\n  - Visualization of the decay topology\n- **Conservation rules**\n  - Open-closed design\n  - Large set of predefined rules\n    - Spin/Angular momentum conservation\n    - Quark and Lepton flavor conservation (incl. isospin)\n    - Baryon number conservation\n    - EM-charge conservation\n    - Parity, C-Parity, G-Parity conservation\n    - Mass conservation\n  - Predefined sets of conservation rules representing Strong, EM, Weak interactions\n\n## Contribute\n\nSee [`CONTRIBUTING.md`](./CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompwa%2Fqrules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompwa%2Fqrules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompwa%2Fqrules/lists"}