qilisdk 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qilisdk/__init__.py +2 -32
- qilisdk/__init__.pyi +2 -15
- qilisdk/analog/__init__.py +18 -1
- qilisdk/analog/analog_result.py +1 -1
- qilisdk/common/__init__.py +2 -5
- qilisdk/digital/__init__.py +5 -12
- qilisdk/digital/ansatz.py +18 -1
- qilisdk/digital/digital_result.py +1 -1
- qilisdk/digital/vqe.py +1 -0
- qilisdk/extras/__init__.py +27 -0
- qilisdk/extras/__init__.pyi +18 -0
- qilisdk/extras/cuda/__init__.py +0 -5
- qilisdk/extras/cuda/cuda_backend.py +1 -3
- qilisdk/extras/qaas/models.py +76 -1
- qilisdk/extras/qaas/qaas_analog_result.py +20 -0
- qilisdk/extras/qaas/qaas_backend.py +120 -20
- qilisdk/extras/qaas/qaas_time_evolution_result.py +20 -0
- qilisdk/extras/qaas/qaas_vqe_result.py +20 -0
- qilisdk/yaml.py +34 -2
- qilisdk-0.1.2.dist-info/METADATA +538 -0
- {qilisdk-0.1.0.dist-info → qilisdk-0.1.2.dist-info}/RECORD +23 -19
- qilisdk-0.1.0.dist-info/METADATA +0 -237
- {qilisdk-0.1.0.dist-info → qilisdk-0.1.2.dist-info}/WHEEL +0 -0
- {qilisdk-0.1.0.dist-info → qilisdk-0.1.2.dist-info}/licenses/LICENCE +0 -0
qilisdk-0.1.0.dist-info/METADATA
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: qilisdk
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: qilisdk is a Python framework for writing digital and analog quantum algorithms and executing them across multiple quantum backends. Its modular design streamlines the development process and enables easy integration with a variety of quantum platforms.
|
|
5
|
-
Author-email: Qilimanjaro Quantum Tech <info@qilimanjaro.tech>
|
|
6
|
-
License-File: LICENCE
|
|
7
|
-
Keywords: analog quantum computing,digital quantum computing,qilimanjaro,quantum computing
|
|
8
|
-
Classifier: Development Status :: 1 - Planning
|
|
9
|
-
Classifier: Environment :: Console
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Intended Audience :: Science/Research
|
|
12
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
-
Classifier: Topic :: Scientific/Engineering
|
|
19
|
-
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
20
|
-
Classifier: Topic :: Scientific/Engineering :: Quantum Computing
|
|
21
|
-
Requires-Python: >=3.10
|
|
22
|
-
Requires-Dist: dill>=0.3.9
|
|
23
|
-
Requires-Dist: numpy>=2.2.4
|
|
24
|
-
Requires-Dist: ruamel-yaml>=0.18.10
|
|
25
|
-
Requires-Dist: scipy>=1.15.1
|
|
26
|
-
Provides-Extra: cuda
|
|
27
|
-
Requires-Dist: cudaq==0.9.1; extra == 'cuda'
|
|
28
|
-
Provides-Extra: qaas
|
|
29
|
-
Requires-Dist: httpx>=0.28.1; extra == 'qaas'
|
|
30
|
-
Requires-Dist: keyring>=25.6.0; extra == 'qaas'
|
|
31
|
-
Requires-Dist: pydantic-settings>=2.8.0; extra == 'qaas'
|
|
32
|
-
Requires-Dist: pydantic>=2.10.6; extra == 'qaas'
|
|
33
|
-
Description-Content-Type: text/markdown
|
|
34
|
-
|
|
35
|
-
# qilisdk
|
|
36
|
-
|
|
37
|
-
[](https://pypi.org/project/qilisdk/)
|
|
38
|
-
[](https://pypi.org/project/qilisdk/)
|
|
39
|
-
[](#license)
|
|
40
|
-
|
|
41
|
-
**qilisdk** is a Python framework for writing digital and analog quantum algorithms and executing them across multiple quantum backends. Its modular design streamlines the development process and enables easy integration with a variety of quantum platforms.
|
|
42
|
-
|
|
43
|
-
> **Note**: The instructions below focus on developing and contributing to qilisdk. For installation and usage as an end user, see the [Usage](#usage) section (placeholder).
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Table of Contents
|
|
48
|
-
- [qilisdk](#qilisdk)
|
|
49
|
-
- [Table of Contents](#table-of-contents)
|
|
50
|
-
- [Development](#development)
|
|
51
|
-
- [Prerequisites](#prerequisites)
|
|
52
|
-
- [Setup \& Dependency Management](#setup--dependency-management)
|
|
53
|
-
- [Testing](#testing)
|
|
54
|
-
- [Linting \& Formatting](#linting--formatting)
|
|
55
|
-
- [Type Checking](#type-checking)
|
|
56
|
-
- [Changelog Management](#changelog-management)
|
|
57
|
-
- [Contributing](#contributing)
|
|
58
|
-
- [Usage](#usage)
|
|
59
|
-
- [License](#license)
|
|
60
|
-
- [Acknowledgments](#acknowledgments)
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Development
|
|
65
|
-
|
|
66
|
-
This section covers how to set up a local development environment for qilisdk, run tests, enforce code style, manage dependencies, and contribute to the project. We use a number of tools to maintain code quality and consistency:
|
|
67
|
-
|
|
68
|
-
- **[uv](https://pypi.org/project/uv/)** for dependency management and packaging.
|
|
69
|
-
- **[ruff](https://beta.ruff.rs/docs/)** for linting and code formatting.
|
|
70
|
-
- **[mypy](http://mypy-lang.org/)** for static type checking.
|
|
71
|
-
- **[towncrier](https://github.com/twisted/towncrier)** for automated changelog generation.
|
|
72
|
-
|
|
73
|
-
### Prerequisites
|
|
74
|
-
|
|
75
|
-
- Python **3.10+** (we test against multiple versions, but 3.10 is the minimum for local dev).
|
|
76
|
-
- [Git](https://git-scm.com/) for version control.
|
|
77
|
-
- [uv](https://pypi.org/project/uv/) for dependency management.
|
|
78
|
-
|
|
79
|
-
### Setup & Dependency Management
|
|
80
|
-
|
|
81
|
-
1. **Clone the repository**:
|
|
82
|
-
```bash
|
|
83
|
-
git clone https://github.com/qilimanjaro-tech/qilisdk.git
|
|
84
|
-
cd qilisdk
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
2. **Install [uv](https://pypi.org/project/uv/) globally** (if not already):
|
|
88
|
-
```bash
|
|
89
|
-
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
3. **Sync dependencies**:
|
|
93
|
-
- We maintain a `pyproject.toml` listing all dev and optional requirements.
|
|
94
|
-
- To install the dev environment locally, run:
|
|
95
|
-
```bash
|
|
96
|
-
uv sync
|
|
97
|
-
```
|
|
98
|
-
This sets up a virtual environment and installs all pinned dependencies (including `ruff`, `mypy`, `towncrier`, etc.).
|
|
99
|
-
- To install extra dependencies such as `qibo-backend`, run:
|
|
100
|
-
```bash
|
|
101
|
-
uv sync --extra qibo-backend -extra ...
|
|
102
|
-
```
|
|
103
|
-
This sets up a virtual environment and installs all pinned dependencies (previous), plus the specified extras.
|
|
104
|
-
|
|
105
|
-
4. **Activate the virtual environment**:
|
|
106
|
-
- uv typically creates and manages its own environment, e.g., `.venv/`.
|
|
107
|
-
- Run:
|
|
108
|
-
```bash
|
|
109
|
-
source .venv/bin/activate
|
|
110
|
-
```
|
|
111
|
-
*(Exact command can vary depending on your shell and OS.)*
|
|
112
|
-
|
|
113
|
-
Now you can run all development commands (tests, linting, etc.) within this environment.
|
|
114
|
-
|
|
115
|
-
### Testing
|
|
116
|
-
|
|
117
|
-
TODO: to_be_filled
|
|
118
|
-
|
|
119
|
-
### Linting & Formatting
|
|
120
|
-
|
|
121
|
-
We enforce code style and best practices using [**ruff**](https://beta.ruff.rs/docs/). ruff handles:
|
|
122
|
-
|
|
123
|
-
- Lint checks (similar to flake8, pylint).
|
|
124
|
-
- Formatting (similar to black or isort).
|
|
125
|
-
- Automated fixes for certain issues.
|
|
126
|
-
|
|
127
|
-
To check linting:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
ruff check
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
To automatically fix lint issues (where possible):
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
ruff check --fix
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
To automatically format your code:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
ruff format
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
*(We recommend running `ruff check --fix` and `ruff format` before committing any changes.)*
|
|
146
|
-
|
|
147
|
-
### Type Checking
|
|
148
|
-
|
|
149
|
-
We use [**mypy**](http://mypy-lang.org/) for static type checking. This helps ensure our code is type-safe and maintainable.
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
mypy qilisdk
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
If you have extra modules or tests you want type-checked, specify them:
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
mypy qilisdk tests
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
*(We encourage developers to annotate new functions, classes, and methods with type hints.)*
|
|
162
|
-
|
|
163
|
-
### Changelog Management
|
|
164
|
-
|
|
165
|
-
We manage our changelog using [**towncrier**](https://github.com/twisted/towncrier). Instead of editing `CHANGELOG.md` directly, **each pull request** includes a small *news fragment* file in the `changes/` directory describing the user-facing changes.
|
|
166
|
-
|
|
167
|
-
For example, if you create a PR with id #123 adding a new feature, you add:
|
|
168
|
-
```
|
|
169
|
-
changes/123.feature.rst
|
|
170
|
-
```
|
|
171
|
-
Inside this file, you briefly describe the new feature:
|
|
172
|
-
```rst
|
|
173
|
-
Added a new `cool_feature` in the `qilisdk.extras` module.
|
|
174
|
-
```
|
|
175
|
-
Instead of manually creating the file, you can run:
|
|
176
|
-
```bash
|
|
177
|
-
towncrier create --no-edit
|
|
178
|
-
```
|
|
179
|
-
When we cut a new release, we update the version in `pyproject.toml` file and run:
|
|
180
|
-
```bash
|
|
181
|
-
towncrier
|
|
182
|
-
```
|
|
183
|
-
This aggregates all the news fragments into the `CHANGELOG.md` under the new version and removes the used fragments.
|
|
184
|
-
|
|
185
|
-
### Contributing
|
|
186
|
-
|
|
187
|
-
We welcome contributions! Here’s the workflow:
|
|
188
|
-
|
|
189
|
-
1. **Fork** this repository and create a feature branch.
|
|
190
|
-
2. **Write** your changes (code, docs, or tests).
|
|
191
|
-
3. **Add a news fragment** (if applicable) in `changes/` describing the user-facing impact.
|
|
192
|
-
4. **Run** the following checks locally:
|
|
193
|
-
```bash
|
|
194
|
-
ruff check --fix
|
|
195
|
-
ruff format
|
|
196
|
-
mypy qilisdk
|
|
197
|
-
pytest tests
|
|
198
|
-
```
|
|
199
|
-
5. **Commit** and push your branch to your fork. `pre-commit` will also run the checks automatically.
|
|
200
|
-
6. **Open a Pull Request** against the `main` branch here.
|
|
201
|
-
|
|
202
|
-
Our CI will run tests, linting, and type checks. Please make sure your branch passes these checks before requesting a review.
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## Usage
|
|
207
|
-
|
|
208
|
-
*(Placeholder for end users. Provide a brief snippet on how to install qilisdk and use its main features. For example:)*
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
pip install qilisdk
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
```python
|
|
215
|
-
from qilisdk import core_feature
|
|
216
|
-
|
|
217
|
-
result = core_feature.do_something()
|
|
218
|
-
print(result)
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## License
|
|
224
|
-
|
|
225
|
-
This project is licensed under the [Apache License](LICENSE).
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Acknowledgments
|
|
230
|
-
|
|
231
|
-
- Thanks to all the contributors who help develop qilisdk!
|
|
232
|
-
- [uv](https://pypi.org/project/uv/) for making dependency management smoother.
|
|
233
|
-
- [ruff](https://beta.ruff.rs/docs/), [mypy](http://mypy-lang.org/), and [towncrier](https://github.com/twisted/towncrier) for their amazing tooling.
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
Feel free to open [issues](https://github.com/qilimanjaro-tech/qilisdk/issues) or [pull requests](https://github.com/qilimanjaro-tech/qilisdk/pulls) if you have questions or contributions. Happy coding!
|
|
File without changes
|
|
File without changes
|