Metadata-Version: 2.4
Name: pasqal-cloud
Version: 0.23.0
Summary: Software development kit for Pasqal cloud platform.
Home-page: https://github.com/pasqal-io/pasqal-cloud
Maintainer: Pasqal Cloud Services
Maintainer-email: pcs@pasqal.io
License: Apache 2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: auth0-python<4.0.0,>=3.23.1
Requires-Dist: requests<3.0.0,>=2.25.1
Requires-Dist: pyjwt[crypto]<3.0.0,>=2.5.0
Requires-Dist: pydantic<3.0.0,>=2.6.0
Requires-Dist: pulser-core>=1.8
Requires-Dist: tenacity>=9.1
Provides-Extra: dev
Requires-Dist: pytest-cov==5.0.0; extra == "dev"
Requires-Dist: ruff==0.6.9; extra == "dev"
Requires-Dist: mypy==1.10.0; extra == "dev"
Requires-Dist: requests-mock==1.12.1; extra == "dev"
Requires-Dist: types-requests==2.31.0.1; extra == "dev"
Requires-Dist: pytest==8.1.1; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs==1.6.1; extra == "docs"
Requires-Dist: mkdocstrings==0.27.0; extra == "docs"
Requires-Dist: mkdocs-material==9.5.50; extra == "docs"
Requires-Dist: mkdocstrings-python==1.13.0; extra == "docs"
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# pasqal-cloud

`pasqal-cloud` is a Python package to execute [Pulser](https://pypi.org/project/pulser/) sequences on [Pasqal](https://portal.pasqal.cloud) infrastructure.

## Installation

```bash
pip install pasqal-cloud
```

## Quickstart

```python
# Retrieve all QPU devices
devices = connection.fetch_available_devices()
device = devices["FRESNEL_CAN1"]

# Create a register of trapped atoms before performing operation on them
register = Register.square(5, 5).with_automatic_layout(device)

# Declare the sequence of pulses to perform on the register
sequence = Sequence(register, device)
sequence.declare_channel("rydberg", "rydberg_global")
omega_max = sequence.declare_variable("omega_max")

# Add a pulse to that channel with the amplitude omega_max
generic_pulse = Pulse.ConstantPulse(100, omega_max, 2, 0.0)
sequence.add(generic_pulse, "rydberg")

# Declare a backend based on the sequence and remote connection
backend = QPUBackend(sequence=sequence, connection=connection)

# Run jobs with different arguments over the same sequence and register
results = backend.run(
    job_params=[
        {"runs": 5, "variables": {"omega_max": 12}},
        {"runs": 10, "variables": {"omega_max": 6}},
    ],
    wait=True,
)
print(results.results)
```

## Documentation

For full usage guides, authentication options, emulator configuration, and API reference,
visit the [Github Pages documentation](https://pasqal-io.github.io/pasqal-cloud/)
or the **[Pasqal documentation](https://docs.pasqal.com/cloud/pasqal-cloud/)**.
