Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.1.0 release #84

Merged
merged 3 commits into from
Feb 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 26 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,52 @@
# Pulser

A framework for interacting with [Pasqal][pasqal] devices at the **pulse** level.
Pulser is a framework for composing, simulating and executing **pulse** sequences for neutral-atom quantum devices.

Pulser is a library that allows for writing sequences of pulses representing the
behaviour of some Pasqal processor prototypes.
Pulser documentation is available at https://pulser.readthedocs.io.

- The user can define one or several channels to target the qubits in the device.
- A basis can be chosen to represent the transition levels of the Rydberg atom-arrays setup.
- Channels can be local or global depending on the application. In the local case,
a phase-shift option is included to reduce complexity
- There's a visualization routine for ease of use.
The source code can be found at https://github.com/pasqal-io/Pulser.

The pulse sequences can then be read and operated by real Pasqal devices or
emulated (using [QuTiP][qutip] libraries).
## Overview of Pulser

Pulser is designed to let users create experiments that are tailored to specific neutral atom devices,
like those developed at [Pasqal][pasqal].
This reduces the level of abstraction and gives you maximal flexibility and control over the behaviour of the relevant physical parameters, within the bounds set by the chosen device.

Consequently, Pulser breaks free from the paradigm of digital quantum computing
and also allows the creation of **analog** quantum simulations, outside of the
scope of traditional quantum circuit approaches. Whatever the type of experiment
or paradigm, if it can be done on the device, it can be done with Pulser.

Additionally, Pulser features built-in tools for classical simulation (using [QuTiP][qutip] libraries) to aid in the development and testing of new pulse sequences.

## Installation

To install Pulser from source, do the following from within the repository
after cloning it:
To install the latest release of ``pulser``, have Python 3.7.0 or higher installed, then use ``pip``:

```bash
pip install pulser
```

If you wish to **install Pulser from source** instead, do the following from within this repository after cloning it:

```bash
pip install -e .
```

## Testing
### Development Requirements (Optional)

To run the test suite, after installation first run the following to install
development requirements:
To run the tutorials or the test suite locally, after installation first run the following to install the development requirements:

```bash
pip install -r requirements.txt
```

Then, do the following to run the test suite and report test coverage:
Then, you can do the following to run the test suite and report test coverage:

```bash
pytest --cov pulser
```


[pasqal]: https://pasqal.io/
[qutip]: https://qutip.org/
11 changes: 5 additions & 6 deletions docs/source/installation.rst
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
Installation
==============

..
Stable version
-----------------
To install the latest release of ``pulser``, have Python 3.7.0 or higher
installed, then use ``pip``: ::
Stable version
-----------------
To install the latest release of ``pulser``, have Python 3.7.0 or higher
installed, then use ``pip``: ::

pip install pulser
pip install pulser


Latest version
Expand Down
11 changes: 4 additions & 7 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,24 @@

setup(
name="pulser",
version="0.0.1",
version="0.1.0",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm seeing 0.1.1 on TestPypi , is this relevant? I.e. does this version numbering correspond to the real Pypi numbering?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the right one, I had to bump it up in TestPypi because I had to upload more than once and it doesn't let you repeat a version.

install_requires=[
"matplotlib",
"numpy",
"scipy",
"qutip",
],
packages=find_packages(),
include_package_data=True,
description="A pulse-level composer for Pasqal's quantum devices.",
description="A pulse-level composer for neutral-atom quantum devices.",
long_description=open("README.md").read(),
long_description_content_type="text/markdown",
author="Pulser Development Team",
python_requires=">=3.7.0",
license="Apache 2.0",
classifiers=[
"Development Status :: 2 - Pre-Alpha",
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
"Operating System :: MacOS",
"Operating System :: Unix",
"Operating System :: Microsoft :: Windows",
"Topic :: Scientific/Engineering",
],
url="https://github.com/pasqal-io/Pulser",
)