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.
@@ -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
- [![Python Versions](https://img.shields.io/pypi/pyversions/qilisdk.svg)](https://pypi.org/project/qilisdk/)
38
- [![PyPI Version](https://img.shields.io/pypi/v/qilisdk.svg)](https://pypi.org/project/qilisdk/)
39
- [![License](https://img.shields.io/pypi/l/qilisdk.svg)](#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!