From 2b63eced4cab7bafd2caf26edaac84fc36bf7ac5 Mon Sep 17 00:00:00 2001 From: Christopher Farrenden Date: Tue, 12 Jan 2021 13:49:43 +1100 Subject: [PATCH 1/6] Apply pyproject.toml standard --- DESCRIPTION.md | 13 ++++ README.md | 5 +- README.rst | 165 ------------------------------------------------- pyproject.toml | 48 ++++++++------ 4 files changed, 42 insertions(+), 189 deletions(-) create mode 100644 DESCRIPTION.md delete mode 100644 README.rst diff --git a/DESCRIPTION.md b/DESCRIPTION.md new file mode 100644 index 00000000..fb1d2b02 --- /dev/null +++ b/DESCRIPTION.md @@ -0,0 +1,13 @@ +# Q-CTRL Open Controls + +Q-CTRL Open Controls is an open-source Python package that makes it easy to +create and deploy established error-robust quantum control protocols from the +open literature. The aim of the package is to be the most comprehensive library +of published and tested quantum control techniques developed by the community, +with easy to use export functions allowing users to deploy these controls on: + +- Custom quantum hardware +- Publicly available cloud quantum computers +- The [Q-CTRL product suite](https://q-ctrl.com/products/) + +Anyone interested in quantum control is welcome to contribute to this project. \ No newline at end of file diff --git a/README.md b/README.md index f49cc0d2..e034411e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ -# Q-CTRL Open Controls Python package - -[![Actions Status](https://github.com/qctrl/python-open-controls/workflows/Push%20workflow/badge.svg)](https://github.com/qctrl/python-open-controls/actions?query=workflow%3A"Push+workflow") -[![Actions Status](https://github.com/qctrl/python-open-controls/workflows/Release%20workflow/badge.svg)](https://github.com/qctrl/python-open-controls/actions?query=workflow%3A"Release+workflow") +# Q-CTRL Open Controls Q-CTRL Open Controls is an open-source Python package that makes it easy to create and deploy established error-robust quantum control protocols from the diff --git a/README.rst b/README.rst deleted file mode 100644 index 5a536b87..00000000 --- a/README.rst +++ /dev/null @@ -1,165 +0,0 @@ - -Q-CTRL Open Controls Python package -=================================== - - -.. image:: https://github.com/qctrl/python-open-controls/workflows/Push%20workflow/badge.svg - :target: https://github.com/qctrl/python-open-controls/actions?query=workflow%3A"Push+workflow" - :alt: Actions Status - - -.. image:: https://github.com/qctrl/python-open-controls/workflows/Release%20workflow/badge.svg - :target: https://github.com/qctrl/python-open-controls/actions?query=workflow%3A"Release+workflow" - :alt: Actions Status - - -Q-CTRL Open Controls is an open-source Python package that makes it easy to -create and deploy established error-robust quantum control protocols from the -open literature. The aim of the package is to be the most comprehensive library -of published and tested quantum control techniques developed by the community, -with easy to use export functions allowing users to deploy these controls on: - - -* Custom quantum hardware -* Publicly available cloud quantum computers -* The `Q-CTRL product suite `_ - -Anyone interested in quantum control is welcome to contribute to this project. - -Table of Contents ------------------ - - -* `Installation <#installation>`_ -* `Usage <#usage>`_ -* `Contributing <#contributing>`_ -* `Credits <#credits>`_ -* `License <#license>`_ - -Installation ------------- - -Q-CTRL Open Controls can be installed through ``pip`` or from source. We recommend -the ``pip`` distribution to get the most recent stable release. If you want the -latest features then install from source. - -Requirements -^^^^^^^^^^^^ - -To use Q-CTRL Open Controls you will need an installation of Python. We -recommend using the `Anaconda `_ distribution of -Python. Anaconda includes standard numerical and scientific Python packages -which are optimally compiled for your machine. Follow the `Anaconda -Installation `_ instructions and -consult the `Anaconda User -guide `_ to get started. - -We use interactive jupyter notebooks for our usage examples. The Anaconda -python distribution comes with editors for these files, or you can `install the -jupyter notebook editor `_ on its own. - -Using PyPi -^^^^^^^^^^ - -Use ``pip`` to install the latest version of Q-CTRL Open Controls. - -.. code-block:: shell - - pip install qctrl-open-controls - -From Source -^^^^^^^^^^^ - -The source code is hosted on -`Github `_. The repository can be -cloned using - -.. code-block:: shell - - git clone git@github.com:qctrl/python-open-controls.git - -Once the clone is complete, you have two options: - - -#. - Using setup.py - - .. code-block:: shell - - cd python-open-controls - python setup.py develop - - **Note:** We recommend installing using ``develop`` to point your installation - at the source code in the directory where you cloned the repository. - -#. - Using Poetry - - Follow the instructions from the - `Poetry documentation `_ to - install Poetry. - - After you have installed Poetry, use: - - .. code-block:: bash - - cd python-open-controls - poetry install - -Once installed via one of the above methods, test your installation by running -``pytest`` -in the ``python-open-controls`` directory. - -.. code-block:: shell - - pytest - -Usage ------ - -See the `Jupyter notebooks `_. - -Contributing ------------- - -For general guidelines, see `Contributing `_. - -Building documentation -^^^^^^^^^^^^^^^^^^^^^^ - -Documentation generation relies on `Sphinx `_. Automated builds are done by `Read The Docs `_. - -To build locally: - - -#. Ensure you have used one of the install options above. -#. - Execute the make file from the docs directory: - - If using Poetry: - - .. code-block:: bash - - cd docs - poetry run make html - - If using setuptools: - - .. code-block:: bash - - cd docs - # Activate your virtual environment if required - make html - -The generated HTML will appear in the ``docs/_build/html`` directory. - -Credits -------- - -See -`Contributors `_. - -License -------- - -See `LICENSE `_. diff --git a/pyproject.toml b/pyproject.toml index fb9c88d9..836faf72 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,29 +4,33 @@ version = "7.0.0" description = "Q-CTRL Open Controls" license = "Apache-2.0" authors = ["Q-CTRL "] -readme = "README.md" +maintainers = ["Q-CTRL "] +readme = "DESCRIPTION.md" +homepage = "https://q-ctrl.com" +repository = "" +documentation = "https://docs.q-ctrl.com/references/python/qctrl" keywords = [ - "quantum", - "computing", - "open source", - "engineering" + "q-ctrl", + "qctrl", + "quantum control" ] classifiers = [ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "Intended Audience :: Education", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: Apache Software License", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3.6", - "Topic :: Scientific/Engineering :: Physics", - "Topic :: Scientific/Engineering :: Visualization", - "Topic :: Software Development :: Embedded Systems", - "Topic :: System :: Distributed Computing" - ] -repository = "https://github.com/qctrl/python-open-controls" + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Intended Audience :: Developers", + "Intended Audience :: Education", + "Intended Audience :: Science/Research", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Scientific/Engineering :: Physics", + "Topic :: Scientific/Engineering :: Visualization", + "Topic :: Software Development :: Embedded Systems", + "Topic :: System :: Distributed Computing" +] packages = [ { include = "qctrlopencontrols" }, ] @@ -50,6 +54,10 @@ nbval = "^0.9.5" qctrl-visualizer = "^2.3.0" isort = "^5.4.2" +[tool.poetry.urls] +GitHub = "https://github.com/qctrl" +Twitter = "https://twitter.com/qctrlHQ" + [tool.black] exclude = ''' ( From 5f0706e28ba703ba00aec327be50bc20fd6eec11 Mon Sep 17 00:00:00 2001 From: Q-CTRL DevOps Date: Tue, 12 Jan 2021 02:50:31 +0000 Subject: [PATCH 2/6] Update setup.py/README.rst to match pyproject.toml/README.md --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index df548cf6..1e3d664a 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ readme = '' here = os.path.abspath(os.path.dirname(__file__)) -readme_path = os.path.join(here, 'README.rst') +readme_path = os.path.join(here, 'DESCRIPTION.rst') if os.path.exists(readme_path): with open(readme_path, 'rb') as stream: readme = stream.read().decode('utf8') @@ -27,12 +27,12 @@ version='7.0.0', description='Q-CTRL Open Controls', python_requires='<3.9,>=3.6.4', - project_urls={"repository": "https://github.com/qctrl/python-open-controls"}, + project_urls={"documentation": "https://docs.q-ctrl.com/references/python/qctrl", "homepage": "https://q-ctrl.com", "repository": ""}, author='Q-CTRL', author_email='support@q-ctrl.com', license='Apache-2.0', - keywords='quantum computing open source engineering', - classifiers=['Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: Apache Software License', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.6', 'Topic :: Scientific/Engineering :: Physics', 'Topic :: Scientific/Engineering :: Visualization', 'Topic :: Software Development :: Embedded Systems', 'Topic :: System :: Distributed Computing'], + keywords='q-ctrl qctrl quantum control', + classifiers=['Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Science/Research', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Scientific/Engineering :: Physics', 'Topic :: Scientific/Engineering :: Visualization', 'Topic :: Software Development :: Embedded Systems', 'Topic :: System :: Distributed Computing'], packages=['qctrlopencontrols', 'qctrlopencontrols.driven_controls', 'qctrlopencontrols.dynamic_decoupling_sequences'], package_dir={"": "."}, package_data={}, From 9c23280289778b27f4b249f2bed509f341162d56 Mon Sep 17 00:00:00 2001 From: Christopher Farrenden Date: Tue, 12 Jan 2021 13:53:36 +1100 Subject: [PATCH 3/6] Open controls documentation link --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 836faf72..fa9e450f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ maintainers = ["Q-CTRL "] readme = "DESCRIPTION.md" homepage = "https://q-ctrl.com" repository = "" -documentation = "https://docs.q-ctrl.com/references/python/qctrl" +documentation = "https://docs.q-ctrl.com/references/python/qctrl-open-controls/" keywords = [ "q-ctrl", "qctrl", From b746977f451849cd16711113f560b901345ee104 Mon Sep 17 00:00:00 2001 From: Q-CTRL DevOps Date: Tue, 12 Jan 2021 02:54:18 +0000 Subject: [PATCH 4/6] Update setup.py/README.rst to match pyproject.toml/README.md --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 1e3d664a..55332e23 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ version='7.0.0', description='Q-CTRL Open Controls', python_requires='<3.9,>=3.6.4', - project_urls={"documentation": "https://docs.q-ctrl.com/references/python/qctrl", "homepage": "https://q-ctrl.com", "repository": ""}, + project_urls={"documentation": "https://docs.q-ctrl.com/references/python/qctrl-open-controls/", "homepage": "https://q-ctrl.com", "repository": ""}, author='Q-CTRL', author_email='support@q-ctrl.com', license='Apache-2.0', From 5ae31d2303f167ceb8a5bd4eb7a7f89e5a6831e1 Mon Sep 17 00:00:00 2001 From: Christopher Farrenden Date: Tue, 12 Jan 2021 13:57:47 +1100 Subject: [PATCH 5/6] Add repository --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fa9e450f..42bbf19c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ authors = ["Q-CTRL "] maintainers = ["Q-CTRL "] readme = "DESCRIPTION.md" homepage = "https://q-ctrl.com" -repository = "" +repository = "https://github.com/qctrl/python-open-controls" documentation = "https://docs.q-ctrl.com/references/python/qctrl-open-controls/" keywords = [ "q-ctrl", From a4d69c9b209b0566d10c27b49d7f57ac584b1d3a Mon Sep 17 00:00:00 2001 From: Q-CTRL DevOps Date: Tue, 12 Jan 2021 02:58:28 +0000 Subject: [PATCH 6/6] Update setup.py/README.rst to match pyproject.toml/README.md --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 55332e23..6be89ce4 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ version='7.0.0', description='Q-CTRL Open Controls', python_requires='<3.9,>=3.6.4', - project_urls={"documentation": "https://docs.q-ctrl.com/references/python/qctrl-open-controls/", "homepage": "https://q-ctrl.com", "repository": ""}, + project_urls={"documentation": "https://docs.q-ctrl.com/references/python/qctrl-open-controls/", "homepage": "https://q-ctrl.com", "repository": "https://github.com/qctrl/python-open-controls"}, author='Q-CTRL', author_email='support@q-ctrl.com', license='Apache-2.0',