Allow unauthenticated users to access device specifications
The solution implemented by this MR:
Allow unauthenticated users to instantiate the SDK without specifying credentials.
The current get_device_specs_dict method will target the public endpoint if called by unauthenticated users; otherwise, the private endpoint will be used.
Alternative solution:
Add a class method get_public_device_specs to allow unauthenticated users to access device specifications without instantiating the SDK.
Cons of this solution:
This approach would not be transparent to the pulser since it's already using get_device_specs_dict.
Core-api endpoint is stored as an SDK attribute, so it would need to be passed to the new classmethod as an argument.
Remaining Tasks
Related PRs in other projects (PASQAL developers only)
Additional merge criteria
Breaking changes
Checklist
[ ] The title of the PR follows the right format: [{Label}] {Short Message}. Label examples: IMPROVEMENT, FIX, REFACTORING... Short message is about what your PR changes.
Versioning (PASQAL developers only)
[ ] Update the version of pasqal-cloud in _version.py following the changes in your PR and by using semantic versioning.
Documentation
[ ] Update CHANGELOG.md with a description explaining briefly the changes to the users.
Tests
[ ] Unit tests have been added or adjusted.
[ ] Tests were run locally.
Internal tests pipeline (PASQAL developers only)
[ ] Update and run the internal tests while targeting the branch of this PR.
If your PR hasn't changed any functionality, it still needs to be validated against internal tests.
After updating the version (PASQAL developers only)
[ ] Open a PR on the internal tests that updates the version used for the pasqal-cloud backward compatibility tests.
Description
The solution implemented by this MR:
Alternative solution:
Cons of this solution: This approach would not be transparent to the pulser since it's already using get_device_specs_dict. Core-api endpoint is stored as an SDK attribute, so it would need to be passed to the new classmethod as an argument.
Remaining Tasks
Related PRs in other projects (PASQAL developers only)
Additional merge criteria
Breaking changes
Checklist
Versioning (PASQAL developers only)
_version.py
following the changes in your PR and by using semantic versioning.Documentation
Tests
Internal tests pipeline (PASQAL developers only)
After updating the version (PASQAL developers only)