Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.

Conversation

@rmshaffer
Copy link
Contributor

@rmshaffer rmshaffer commented Jun 23, 2020

This PR contains Azure Quantum integration functionality for IQ#. This includes:

  • New %azure.* magic commands that allow connecting, targeting, submitting, and querying jobs for quantum execution providers on Azure Quantum.
  • Python qsharp.azure.* APIs which expose the same functionality via Python.
  • General improvements to IQ# magic command handling, including the ability to pass key=value style arguments to built-in magic commands such as %simulate and %estimate. (Fixes Passing arguments to operations invoked via %simulate in Jupyter Notebooks #83.)
  • Integration with latest Microsoft.Jupyter.Core release, which includes improved help functionality for magic commands and support for kernel interrupt messages.

As this is a feature branch being merged to master, the code changes have previously been reviewed in PRs into the feature branch. See #119, #141, #144, #150, #152, #156, #160, #161, #164, #167, #170, #173, #174, #176.

rmshaffer and others added 30 commits April 13, 2020 13:07
Co-Authored-By: Chris Granade <chgranad@microsoft.com>
Co-Authored-By: Chris Granade <chgranad@microsoft.com>
Add AzureClient project to iqsharp
* Add AzureClient assembly to manifest

* Add manifest.ps1 to build steps

* Run manifest after build completes

* Fix manifest.ps1 script error

* Fix to manifest.ps1

* Run manifest.ps1 from inside build.ps1

* Fix case error in manifest.ps1, undo 192a631

* Move back to using pwsh in manifest.ps1
…sions

Update Microsoft.Identity.Client package versions
* Add IAzureClient definition and initial magic commands

* Add AzureClient assembly to manifest

* Add base class with common functionality for AzureClient magic commands

* Initial implementation of AzureClient methods

* Move AbstractMagic to Jupyter project

* Add key=value input parameter parsing to AbstractMagic

* Initial qsharp.azure Python implementation

* Begin to unify magic command parsing

* Minor updates to a few magics

* Integrate latest Azure.Quantum.Client package

* Minor cleanup

* Improvements to address PR comments

* Minor change to fix syntax highlighting
* Add more magics and clean up IAzureClient

* Update magic behaviors, add dogfood support

* Minor documentation fix

* Update tests to match new functionality

* Clean up AzureEnvironment class

* Work around syntax highlighting error

* Improve exception handling and documentation

* Use Enum.TryParse() in AzureEnvironment.Create()
rmshaffer and others added 19 commits June 17, 2020 15:11
…d-to-end C# and Python tests (#167)

* Mock AzureEnvironment and end-to-end tests

* Raise Python exceptions rather than returning error objects

* Fix nullable warnings

* Minor cleanup

* Add missing Dedent() in ConfigMagic

* Few improvements to output when using Python
* Mock AzureEnvironment and end-to-end tests

* Raise Python exceptions rather than returning error objects

* Fix nullable warnings

* Minor cleanup

* Add missing Dedent() in ConfigMagic

* Support kernel interrupt during job execution

* Add #nullable enable

* Properly dispose CancellationTokenSource

* Consume CancellationToken functionality from jupyter-core

* Few improvements to output when using Python

* Derive AbstractMagic from CancellableMagicSymbol

* Whitespace fixes

* Updates for latest jupyter-core changes

* Improve readability

* Improve readability correctly

* Microsoft.Jupyter.Core version

* Use Jupyter.Core CI package temporarily

* Update to CI package version from master

* Whitespace

* Apply suggestions from code review

Co-authored-by: Chris Granade <chgranad@microsoft.com>

* Default value for CancellationToken in IAzureClient

* Use released Microsoft.Jupyter.Core version

Co-authored-by: Chris Granade <chgranad@microsoft.com>
* Mock AzureEnvironment and end-to-end tests

* Raise Python exceptions rather than returning error objects

* Fix nullable warnings

* Minor cleanup

* Add missing Dedent() in ConfigMagic

* Add filter for %azure.jobs command

* Move filter logic into extension function

* Fix typo

* Tests and Python support

* Few improvements to output when using Python

* Small change to CloudJob encoder
* Support resource ID in %azure.connect

* Update parameter names to match standalone executable

* Update Python API and tests

* Use named parameter for resource ID

* Avoid calling Regex.IsMatch

Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com>

* Address PR feedback and improve tests

* Empty commit to re-trigger CI build

* Speed up tests, enable debug logging

* Make NuGet.config available to conda package

* Add prerelease feed for non-release builds

* Copy NuGet config during build step

* Fix bad merge with job filter changes

* Copy NuGet.config to home folder

* Copy NuGet.config in both jobs

* Write prerelease NuGet directly

* Construct RegEx object once

* Remove line breaks

* Write prerelease NuGet into target directory

* Put prerelease NuGet back in test.ps1 for now

Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com>
@rmshaffer rmshaffer changed the title Merging feature/azure-client to master Azure Quantum integration for IQ# Jun 23, 2020
@rmshaffer rmshaffer marked this pull request as ready for review June 23, 2020 20:17
Copy link
Contributor

@cgranade cgranade left a comment

Choose a reason for hiding this comment

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

I'll admit I mostly skimmed through, since it was all previously reviewed, but it looks good to me. Thank you!

@rmshaffer rmshaffer merged commit 6eb34f6 into master Jun 25, 2020
@rmshaffer rmshaffer deleted the feature/azure-client branch June 25, 2020 16:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Passing arguments to operations invoked via %simulate in Jupyter Notebooks

3 participants