From c638ac145c1da2932fe8c6dc8fee01d42652e2ea Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Tue, 10 Oct 2023 15:31:04 +0900 Subject: [PATCH 1/9] run ci on schedule --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0297b3a..3767349 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ name: pytest on: pull_request: branches: [ "master" ] + schedule: + # Every Monday at 0AM UTC + - cron: "0 0 * * 1" permissions: contents: read From 6f7158b11df8fcdc2b503bb97f3426ace6a517d8 Mon Sep 17 00:00:00 2001 From: Shinichi Sunami <33350509+shinich1@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:32:53 +0900 Subject: [PATCH 2/9] add rtd config --- .readthedocs.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .readthedocs.yaml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..a807275 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,20 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +build: + os: ubuntu-20.04 + tools: + python: "3.9" + +sphinx: + configuration: docs/source/conf.py + +python: + install: + - requirements: docs/requirements.txt + - method: pip + path: . \ No newline at end of file From 8bd8d34ed4c9666b115441104566a4ab8a648dc4 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Mon, 16 Oct 2023 05:55:04 +0900 Subject: [PATCH 3/9] add docs template --- docs/logo/black_with_name.png | Bin 0 -> 16423 bytes docs/logo/black_with_text.png | Bin 0 -> 24256 bytes docs/logo/graphix-logo.pptx | Bin 0 -> 56670 bytes docs/logo/white.png | Bin 0 -> 19946 bytes docs/logo/white_with_text.png | Bin 0 -> 20500 bytes docs/source/conf.py | 64 ++++++++++++++++++++++++++++++++++ docs/source/index.rst | 13 +++++++ examples/gallery/readme.rst | 4 +++ readme.md | 25 ------------- 9 files changed, 81 insertions(+), 25 deletions(-) create mode 100644 docs/logo/black_with_name.png create mode 100644 docs/logo/black_with_text.png create mode 100644 docs/logo/graphix-logo.pptx create mode 100644 docs/logo/white.png create mode 100644 docs/logo/white_with_text.png create mode 100644 docs/source/conf.py create mode 100644 docs/source/index.rst create mode 100644 examples/gallery/readme.rst delete mode 100644 readme.md diff --git a/docs/logo/black_with_name.png b/docs/logo/black_with_name.png new file mode 100644 index 0000000000000000000000000000000000000000..04d5bfdbdc97d2d606f1ecc34442811690878a4c GIT binary patch literal 16423 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 F{{gfq%VPil literal 0 HcmV?d00001 diff --git a/docs/logo/black_with_text.png b/docs/logo/black_with_text.png new file mode 100644 index 0000000000000000000000000000000000000000..af32b3c9e99356469f4fcbd8a79ab3ebb016a0b3 GIT binary patch literal 24256 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 literal 0 HcmV?d00001 diff --git a/docs/logo/graphix-logo.pptx b/docs/logo/graphix-logo.pptx new file mode 100644 index 0000000000000000000000000000000000000000..85b777993a6d969108c5ae7b670713dc46a3e944 GIT binary patch literal 56670 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ι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 literal 0 HcmV?d00001 diff --git a/docs/logo/white_with_text.png b/docs/logo/white_with_text.png new file mode 100644 index 0000000000000000000000000000000000000000..5469371a669cc2c2726d51809a2dae760b04325c GIT binary patch literal 20500 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 literal 0 HcmV?d00001 diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..8d9f040 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,64 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html +import os +import sys + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = "graphix-perceval" +copyright = "2023, Kazuki Tsuoka, Shinichi Sunami" +author = "Kazuki Tsuoka, Shinichi Sunami" +release = "0.0.1" + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.viewcode", + "sphinx.ext.autosummary", + "sphinx.ext.autosectionlabel", + "sphinx.ext.napoleon", + "sphinx_gallery.gen_gallery", +] + +templates_path = ["_templates"] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] +autosectionlabel_prefix_document = True + + +sys.path.insert(0, os.path.abspath("../..")) + + +def skip(app, what, name, obj, would_skip, options): + if name == "__init__": + return False + return would_skip + + +def setup(app): + app.connect("autodoc-skip-member", skip) + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + + +html_theme = "sphinx_rtd_theme" +# html_theme = 'pydata_sphinx_theme' +html_static_path = ["_static"] +html_logo = "../logo/white_with_text.png" +html_theme_options = { + "logo_only": True, + "display_version": False, +} + +sphinx_gallery_conf = { + "examples_dirs": "../../examples/gallery", # path to your example scripts + "gallery_dirs": "gallery", # path to where to save gallery generated output + #'expected_failing_examples': ['../../examples/ibm_device.py'], + "filename_pattern": "/", +} diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..4a9bff8 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,13 @@ +.. graphix-perceval documentation master file, created by + sphinx-quickstart on Mon Oct 16 05:34:14 2023. + +Graphix-perceval - executing MBQC patterns on Perceval devices +============================================================== + +.. toctree:: + :maxdepth: 1 + :caption: Documentation + + tutorial + gallery/index + references diff --git a/examples/gallery/readme.rst b/examples/gallery/readme.rst new file mode 100644 index 0000000..1076f50 --- /dev/null +++ b/examples/gallery/readme.rst @@ -0,0 +1,4 @@ +Graphix-perceval examples +========================= + +Here are examples of pattern-to-circuit conversion and simulation using Perceval simulator. diff --git a/readme.md b/readme.md deleted file mode 100644 index 48b87c1..0000000 --- a/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Graphix Perceval interface - - -Provides an interface to run MBQC pattern (`graphix.Pattern`) on Quandela's optical quantum devices as well as Perceval's simulator backends. - -Requires [graphix](https://github.com/TeamGraphix/graphix) to generate the measurement pattern. - -## Installation - -install with `pip` - -```bash - $ pip install graphix-perceval -``` - - - -## License - -[Apache License 2.0](LICENSE) From cc68256d7b251301be86c47a52b9777bd05b68a0 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Mon, 16 Oct 2023 06:07:23 +0900 Subject: [PATCH 4/9] fix ci error --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index eae2186..cccfb8f 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ description = Run the unit tests deps = -r {toxinidir}/requirements.txt commands = - pip install --upgrade pip + python -m pip install --upgrade pip pip install pytest pytest {toxinidir} extras = test From b55e9d0f830f38272dfb4f96a646169b4638043e Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Wed, 18 Oct 2023 05:27:33 +0900 Subject: [PATCH 5/9] add module ref --- docs/source/conf.py | 4 +--- docs/source/converter.rst | 11 +++++++++++ docs/source/experiment.rst | 16 ++++++++++++++++ docs/source/index.rst | 2 +- docs/source/reference.rst | 8 ++++++++ docs/source/tutorial.rst | 6 ++++++ graphix_perceval/converter.py | 4 ++-- graphix_perceval/experiment.py | 26 +++++++++++++++----------- 8 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 docs/source/converter.rst create mode 100644 docs/source/experiment.rst create mode 100644 docs/source/reference.rst create mode 100644 docs/source/tutorial.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index 8d9f040..21947c8 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -9,7 +9,7 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = "graphix-perceval" -copyright = "2023, Kazuki Tsuoka, Shinichi Sunami" +copyright = "2023, Team Graphix" author = "Kazuki Tsuoka, Shinichi Sunami" release = "0.0.1" @@ -48,7 +48,6 @@ def setup(app): html_theme = "sphinx_rtd_theme" -# html_theme = 'pydata_sphinx_theme' html_static_path = ["_static"] html_logo = "../logo/white_with_text.png" html_theme_options = { @@ -59,6 +58,5 @@ def setup(app): sphinx_gallery_conf = { "examples_dirs": "../../examples/gallery", # path to your example scripts "gallery_dirs": "gallery", # path to where to save gallery generated output - #'expected_failing_examples': ['../../examples/ibm_device.py'], "filename_pattern": "/", } diff --git a/docs/source/converter.rst b/docs/source/converter.rst new file mode 100644 index 0000000..89a63f4 --- /dev/null +++ b/docs/source/converter.rst @@ -0,0 +1,11 @@ +Pattern converter +================== + +:mod:`graphix_perceval.converter` module ++++++++++++++++++++++++++++++++++++++++++ + +.. automodule:: graphix_perceval.converter + :members: + +.. autoclass:: PercevalCircuitConstructor + :members: diff --git a/docs/source/experiment.rst b/docs/source/experiment.rst new file mode 100644 index 0000000..43bac39 --- /dev/null +++ b/docs/source/experiment.rst @@ -0,0 +1,16 @@ +Device interface +================ + +:mod:`graphix_perceval.experiment` module ++++++++++++++++++++++++++++++++++++++++++ + +.. currentmodule:: graphix_perceval.experiment + +.. autoclass:: PercevalExperiment + :members: + +.. autoclass:: PhotonCount + :members: + +.. autoclass:: PhotonDistribution + :members: diff --git a/docs/source/index.rst b/docs/source/index.rst index 4a9bff8..dc19856 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,4 +10,4 @@ Graphix-perceval - executing MBQC patterns on Perceval devices tutorial gallery/index - references + reference diff --git a/docs/source/reference.rst b/docs/source/reference.rst new file mode 100644 index 0000000..26191fb --- /dev/null +++ b/docs/source/reference.rst @@ -0,0 +1,8 @@ +Module reference +================ + +.. toctree:: + :maxdepth: 2 + + converter + experiment diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst new file mode 100644 index 0000000..81d9084 --- /dev/null +++ b/docs/source/tutorial.rst @@ -0,0 +1,6 @@ +Tutorial +======== + +In this tutorial, we will learn how to use the `graphix-perceval` library to convert +`graphix.Pattern `_ +objects into `perceval.Circuit `_ objects. diff --git a/graphix_perceval/converter.py b/graphix_perceval/converter.py index 098a575..06a8cd7 100644 --- a/graphix_perceval/converter.py +++ b/graphix_perceval/converter.py @@ -85,7 +85,7 @@ def __init__(self): self._is_fused: bool = False self._clifford_applied: bool = False - def add_ResourceGraph(self, ResourceGraph: ResourceGraph, phasedict: dict[int, float], readouts: list) -> None: + def add_resourcegraph(self, ResourceGraph: ResourceGraph, phasedict: dict[int, float], readouts: list) -> None: if self._is_fused: raise RuntimeError("Cannot add ResourceGraph after fusion") for node_id in ResourceGraph.graph.nodes: @@ -132,7 +132,7 @@ def add_fusions(self) -> None: self._is_fused = True - def get_all_ResourceGraphs(self) -> list[ResourceGraph]: + def get_all_resourcegraphs(self) -> list[ResourceGraph]: return self.ghz_ResourceGraphs | self.linear_ResourceGraphs def setup_perceval_circuit(self, name: str | None = None, merge: bool = False) -> pcvl.Circuit: diff --git a/graphix_perceval/experiment.py b/graphix_perceval/experiment.py index 873212a..de2ec39 100644 --- a/graphix_perceval/experiment.py +++ b/graphix_perceval/experiment.py @@ -65,8 +65,10 @@ def __init__(self, circuit: pcvl.Circuit, photons: list[Photon]): Parameters ---------- - pattern: :class:`graphix.Pattern` object - MBQC pattern to be run on the Quandela device or Perceval simulator. + circuit : :class:`perceval.Circuit` object + Perceval circuit corresponding to the pattern. + photons : list[:class:`Photon` object] + List of photons. """ self.circ = circuit self.photons = photons @@ -75,7 +77,7 @@ def __init__(self, circuit: pcvl.Circuit, photons: list[Photon]): self.output_states: dict[str, str] | None = None def set_local_processor(self, backend: str, source: pcvl.Source = pcvl.Source(), name: str = None): - """Set the local computing backend. + r"""Set the local computing backend. Parameters ---------- @@ -98,7 +100,7 @@ def set_local_processor(self, backend: str, source: pcvl.Source = pcvl.Source(), self.set_output_states() def set_remote_processor(self, backend: str, token: str): - """Set the remote computing backend. + r"""Set the remote computing backend. Parameters ---------- @@ -120,8 +122,8 @@ def set_remote_processor(self, backend: str, token: str): self.set_output_states() def set_input_state(self): - """Set the input states for the processor. - The default input state is |{P:H}> for each photon and |0> for each ancillary mode. + r"""Set the input states for the processor. + The default input state is ``|{P:H}>`` for each photon and ``|0>`` for each ancillary mode. """ if self.processor is None: raise Exception( @@ -141,9 +143,9 @@ def set_output_states(self): Currently, Perceval does not support feed-forward opetations, so we postselect the output states where - - The witness photons are in |{P:H}> and translated to |0,1> - - The computing photons are in |{P:H}> and translated to |0,1> - - The readout photons are in |{P:H}> or |{P:V}> + - The witness photons are in ``|{P:H}>`` and translated to ``|0,1>`` + - The computing photons are in ``|{P:H}>`` and translated to ``|0,1>`` + - The readout photons are in ``|{P:H}>`` or ``|{P:V}>`` """ if self.processor is None: raise Exception( @@ -171,7 +173,9 @@ def set_output_states(self): x = x + 1 self.output_states = out_states - def get_probability_distribution(self, format_result=True, postselection=True) -> PhotonDistribution: + def get_probability_distribution( + self, format_result: bool = True, postselection: bool = True + ) -> PhotonDistribution: r"""Get the probability distribution of the measurement results. Parameters @@ -201,7 +205,7 @@ def get_probability_distribution(self, format_result=True, postselection=True) - return probs - def sample(self, num_samples=1024, format_result=True, postselection=True) -> PhotonCount: + def sample(self, num_samples=1024, format_result: bool = True, postselection: bool = True) -> PhotonCount: """Run the MBQC pattern on IBMQ devices Parameters From b75249052c155c48120838651964a2cee395be29 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Wed, 18 Oct 2023 05:33:03 +0900 Subject: [PATCH 6/9] fix test --- graphix_perceval/converter.py | 2 +- tests/test_converter.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/graphix_perceval/converter.py b/graphix_perceval/converter.py index 06a8cd7..214dc16 100644 --- a/graphix_perceval/converter.py +++ b/graphix_perceval/converter.py @@ -61,7 +61,7 @@ def to_perceval(pattern: graphix.Pattern) -> PercevalExperiment: pcc = PercevalCircuitConstructor() for ResourceGraph in ResourceGraphs: - pcc.add_ResourceGraph(ResourceGraph, phasedict, output_nodes) + pcc.add_resourcegraph(ResourceGraph, phasedict, output_nodes) pcc.add_fusions() diff --git a/tests/test_converter.py b/tests/test_converter.py index 3847507..dbd16b6 100644 --- a/tests/test_converter.py +++ b/tests/test_converter.py @@ -20,7 +20,7 @@ def test_sampling_circuit_wo_postselection(self): exp.set_local_processor("SLOS") dist = exp.sample(num_samples=1000, format_result=False, postselection=False) counts = 0 - for k, v in dist.items(): + for _, v in dist.items(): counts += v self.assertEqual(counts, 1000) From 0d81707f33739fa3e1318a6d1745a525f39bad1d Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 2 Nov 2023 18:43:09 +0900 Subject: [PATCH 7/9] mod experiment rst --- docs/source/experiment.rst | 2 +- graphix_perceval/experiment.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/experiment.rst b/docs/source/experiment.rst index 43bac39..9897c79 100644 --- a/docs/source/experiment.rst +++ b/docs/source/experiment.rst @@ -4,7 +4,7 @@ Device interface :mod:`graphix_perceval.experiment` module +++++++++++++++++++++++++++++++++++++++++ -.. currentmodule:: graphix_perceval.experiment +.. automodule:: graphix_perceval.experiment .. autoclass:: PercevalExperiment :members: diff --git a/graphix_perceval/experiment.py b/graphix_perceval/experiment.py index de2ec39..4d070e6 100644 --- a/graphix_perceval/experiment.py +++ b/graphix_perceval/experiment.py @@ -290,6 +290,7 @@ def items(self) -> dict_items: def draw(self, sort: bool = True): """Draw the counts result in a table. + If the code is run in a Jupyter notebook, the table will be displayed in HTML format. If the code is run in a terminal, the table will be displayed in ASCII format. From 7a996286122f31b9e2d204b81278d03ed83f4507 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Sun, 5 Nov 2023 03:44:34 +0900 Subject: [PATCH 8/9] docs: Add GHZ state generation example --- docs/source/_static/img/ghz_circuit.svg | 105 +++++++++++++++++++ docs/source/_static/img/ghz_pattern.png | Bin 0 -> 15851 bytes docs/source/conf.py | 2 +- docs/source/tutorial.rst | 129 ++++++++++++++++++++++++ examples/{gallery => }/readme.rst | 0 5 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 docs/source/_static/img/ghz_circuit.svg create mode 100644 docs/source/_static/img/ghz_pattern.png rename examples/{gallery => }/readme.rst (100%) diff --git a/docs/source/_static/img/ghz_circuit.svg b/docs/source/_static/img/ghz_circuit.svg new file mode 100644 index 0000000..f055d95 --- /dev/null +++ b/docs/source/_static/img/ghz_circuit.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + +GHZ + + + + + + + + + + + + + + +LOCALCLIFFORDID:6 + + +LOCALCLIFFORDID:6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 + \ No newline at end of file diff --git a/docs/source/_static/img/ghz_pattern.png b/docs/source/_static/img/ghz_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..4715a969aa0ba57646bf635569d2c1c7a80c2af8 GIT binary patch literal 15851 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 literal 0 HcmV?d00001 diff --git a/docs/source/conf.py b/docs/source/conf.py index 21947c8..1dfec95 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,7 +56,7 @@ def setup(app): } sphinx_gallery_conf = { - "examples_dirs": "../../examples/gallery", # path to your example scripts + "examples_dirs": "../../examples", # path to your example scripts "gallery_dirs": "gallery", # path to where to save gallery generated output "filename_pattern": "/", } diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst index 81d9084..66b600b 100644 --- a/docs/source/tutorial.rst +++ b/docs/source/tutorial.rst @@ -4,3 +4,132 @@ Tutorial In this tutorial, we will learn how to use the `graphix-perceval` library to convert `graphix.Pattern `_ objects into `perceval.Circuit `_ objects. + +Installation +------------ + +First, we need to install the `graphix-perceval` library. This can be done using `pip`: + +.. code-block:: bash + + pip install graphix-perceval + +If you have not installed `graphix` yet, you can install it using `pip` as well: + +.. code-block:: bash + + pip install graphix + +Generating MBQC Pattern +----------------------- + +We first generate a MBQC pattern using ``graphix`` library. +We create GHZ state as an example. + +First, let us import relevant modules and define function we will use: + +.. code-block:: python + + from graphix import Circuit + import numpy as np + import matplotlib.pyplot as plt + import networkx as nx + + + # define the functions required for GHZ state generation + def ghz(circuit: Circuit): + """generate GHZ circuit""" + circuit.h(1) + circuit.h(2) + circuit.cnot(0, 1) + circuit.cnot(0, 2) + +Then we define a circuit to create GHZ state. + +.. code-block:: python + + # generate the GHZ state generation pattern + circuit = Circuit(3) + ghz(circuit) + pattern = circuit.transpile() + + # plot the pattern + nodes, edges = pattern.get_graph() + g = nx.Graph() + g.add_nodes_from(nodes) + g.add_edges_from(edges) + np.random.seed(100) + nx.draw(g) + plt.show() + + +.. figure:: ./_static/img/ghz_pattern.png + :scale: 85 % + :alt: 2-qubit GHZ pattern visualization + +Pattern-to-circuit conversion +----------------------------- + +Now let us convert the pattern into a circuit using the `graphix-perceval` library: + +.. code-block:: python + + from graphix_perceval import to_perceval + from perceval import pdisplay + + exp = to_perceval(pattern) + pdisplay(exp.circ) + +.. figure:: ./_static/img/ghz_circuit.svg + :scale: 85 % + :alt: 2-qubit GHZ circuit visualization + +Running pattern on Perceval simulator +------------------------------------- + +By running the Perceval's computing backends, We can obtain the probability distribution of the measurement outcomes + +.. code-block:: python + + exp.set_local_processor("SLOS") + dist = exp.get_probability_distribution() + dist.draw() + +.. raw:: html + + + + + + + + + +
state probability
|000> 0.5
|111> 0.5
+
+ +or sampling distribution with a given number of samples: + +.. code-block:: python + + exp.set_local_processor("SLOS") + dist = exp.sample(num_samples=1000) + dist.draw() + +.. raw:: html + + + + + + + + + +
state counts
|000> 499
|111> 501
+
+ +.. note:: + Note that the current implementation only supports ``SLOS`` and ``Naive`` as local Perceval processors. + See `Perceval documentation `_ for more details. + diff --git a/examples/gallery/readme.rst b/examples/readme.rst similarity index 100% rename from examples/gallery/readme.rst rename to examples/readme.rst From 2fa38bc4d962c4e0a60574e57449d1d6cf0c787d Mon Sep 17 00:00:00 2001 From: Shinichi Sunami <33350509+shinich1@users.noreply.github.com> Date: Sun, 5 Nov 2023 11:57:39 +0900 Subject: [PATCH 9/9] add readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 48b87c1..d7c683c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Graphix Perceval interface - +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/graphix-perceval) Provides an interface to run MBQC pattern (`graphix.Pattern`) on Quandela's optical quantum devices as well as Perceval's simulator backends. @@ -22,4 +22,4 @@ install with `pip` ## License -[Apache License 2.0](LICENSE) +[Apache License 2.0](LICENSE) \ No newline at end of file