{"id":22882483,"url":"https://github.com/cqcl/qnexus","last_synced_at":"2025-05-07T04:47:36.411Z","repository":{"id":258523062,"uuid":"707605277","full_name":"CQCL/qnexus","owner":"CQCL","description":"Quantinuum Nexus python client.","archived":false,"fork":false,"pushed_at":"2025-05-01T13:53:28.000Z","size":2625,"stargazers_count":12,"open_issues_count":19,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T04:47:22.826Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.quantinuum.com/nexus/","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/CQCL.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-20T09:04:04.000Z","updated_at":"2025-05-01T13:52:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa48cf22-9de0-46e7-8122-9fac83884d32","html_url":"https://github.com/CQCL/qnexus","commit_stats":null,"previous_names":["cqcl/qnexus"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2Fqnexus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2Fqnexus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2Fqnexus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2Fqnexus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CQCL","download_url":"https://codeload.github.com/CQCL/qnexus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252816522,"owners_count":21808702,"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-12-13T18:17:54.009Z","updated_at":"2025-05-07T04:47:36.401Z","avatar_url":"https://github.com/CQCL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qnexus\n\n\n\n[![pypi][]](https://pypi.org/project/qnexus/)\n[![py-version][]](https://pypi.org/project/qnexus/)\n\n  [py-version]: https://img.shields.io/pypi/pyversions/qnexus\n  [pypi]: https://img.shields.io/pypi/v/qnexus\n\nA python client for the [Quantinuum Nexus](https://nexus.quantinuum.com) platform.\n\n```python\nimport qnexus as qnx\n\n# Will open a browser window to login with Nexus credentials\nqnx.login()\n\n# Dataframe representation of all your pending jobs in Nexus\nqnx.jobs.get_all(job_status=[\"SUBMITTED\", \"QUEUED\", \"RUNNING\"]).df()\n```\n\n\n## Install\n\nqnexus can be installed via `pip`.\n\n```sh\npip install qnexus\n```\n\n\n## Usage\n\nUsage examples and tutorials are available [here][examples].\n\n[examples]: ./examples/\n\n\n## Development\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Prerequisites\n\nThe easiest way to setup the development environment is to use the provided devenv.nix file. This will setup a development shell with all the required dependencies.\n\nTo use this, you will need to install [devenv](https://devenv.sh/getting-started/). Once you have it running, open a shell with:\n\n```bash\ndevenv shell\n```\n\nSpecifically the project relies on these tools:\n\n- Python \u003e= 3.10\n- [uv](https://docs.astral.sh/uv/)\n- [commitizen](https://commitizen-tools.github.io/commitizen/)\n- [git](https://git-scm.com/)\n\n\n### Installation for development\n\nBy default devenv will set up your `uv` virtual environment. If you aren't using devenv please check the [uv](https://docs.astral.sh/uv/) documentation for creating and using a virtual environment.\n\nYou can then install all dependencies with:\n\n```sh\nuv sync\n```\n\nTo run a single command in the shell, just prefix it with `uv run`.\n\n\n### Checks\n\nFormatting, linting and type-checking are added as a devenv script and can be run with:\n\n```sh\nqfmt\n```\n\n### Testing\n\nMost of the test suite are integration tests that require the following environment variables:\n\nNEXUS_DOMAIN = \"qa.myqos.com\"\nNEXUS_QA_USER_EMAIL = ...\nNEXUS_QA_USER_PASSWORD = ...\nNEXUS_QA_QSYS_DEVICE = ...\n\nAnd can be run locally (for the above user) with:\n\n```sh\nuv run python integration/setup_tokens.py\n\nuv run pytest integration/\n```\n\nThese will only be available to run via Github CI by internal team members. For external contributions we recommend writing unit tests and/or integration tests and requesting they\nbe run by an internal reviewer.\n\nRun basic unit tests using\n\n```sh\nuv run pytest tests/\n```\n\n### Release\n\n### Step 1 - update the changelog\n\n- Update `CHANGELOG.md`: this is automated. Use `devenv` and the `commitizen` [tool](https://commitizen-tools.github.io/commitizen/):\n  ```\n  git fetch --tags origin  # make sure your local tags are same as in github\n  cz bump --files-only  # --files-only prevents the tool making a git tag\n  ```\n  This will use the [commit history](https://www.conventionalcommits.org/) and modify `CHANGELOG.md` to include a heading with the new version number and the date. It also updates `.cz.toml`. The tool automatically decides whether to increment the patch version, minor version or major version (major version changes are currently disabled in its config file). It also updates the version in `pyproject.toml` at the same time.\n- If you like, you can manually edit `CHANGELOG.md` at this point. Consider moving important entries under these headings, or writing under them (see [Keep A Changelog](https://keepachangelog.com/en/1.1.0/#how)):\n  - Deprecated\n  - Removed\n  - Security\n- Create a release branch `git checkout -b release/vx.y.z`\n- `git add` the modifications, then `git commit` and `git push` them.\n- Create a PR (title: `docs: Update CHANGELOG for vx.y.z`)\n- Ask a colleague to review the changes (should be just `CHANGELOG.md`, `pyproject.toml` and `.cz.toml`)\n- Squash merge the PR into `main`\n\n### Step 2 - run the release workflow\n\n- Go to https://github.com/CQCL-DEV/qnexus/releases/new\n- Select `create new tag... on publish` when choosing the tag, with name in the format `vx.y.z`.\n- Choose the target branch/commit for the release (normally `main`)\n- Put the version number in the \"release title\" box\n- Copy/paste the new sections from `CHANGELOG.md` into the \"Describe this release\" box\n- Click \"Publish release\"\n\n\n## License\n\nThis project is licensed under Apache License, Version 2.0 ([LICENSE][] or http://www.apache.org/licenses/LICENSE-2.0).\n\n  [LICENSE]: ./LICENSE\n\n\nCopyright 2025 Quantinuum Ltd.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcqcl%2Fqnexus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcqcl%2Fqnexus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcqcl%2Fqnexus/lists"}