Skip to content

Commit

Permalink
Use subpackage Quasar for parsing, handle batch-running locally (#26)
Browse files Browse the repository at this point in the history
* change: Do OpenQASM3 parsing with new Quasar submodule

* Update src/validation.jl

Co-authored-by: Cody Wang <speller26@gmail.com>

* change: Loosing Project.toml bounds and update CondaPkg.toml

* fix: Schemas version

---------

Co-authored-by: Cody Wang <speller26@gmail.com>
  • Loading branch information
kshyatt-aws and speller26 authored Jul 2, 2024
1 parent 15490e1 commit 4e44fdb
Show file tree
Hide file tree
Showing 23 changed files with 4,214 additions and 1,349 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.version == 'nightly' }}
timeout-minutes: 60
permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created
actions: write
Expand All @@ -24,6 +25,7 @@ jobs:
matrix:
version:
- '1.9'
- '1.10'
- 'nightly'
os:
- ubuntu-latest
Expand All @@ -37,7 +39,7 @@ jobs:
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
Expand All @@ -57,7 +59,7 @@ jobs:
- uses: julia-actions/setup-julia@v1
with:
version: '1'
- uses: julia-actions/cache@v1
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1 # forces PkgServer refresh
- name: Configure doc environment
shell: julia --project=docs --color=yes {0}
Expand Down
6 changes: 2 additions & 4 deletions CondaPkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,5 @@ channels = ["conda-forge"]
[deps]
# Conda package names and versions
python = ">=3.9,<4"
amazon-braket-sdk = ">=1.76"
amazon-braket-schemas = ">=1.21"
amazon-braket-default-simulator = ">=1.21"
sympy = ">=1.12"
amazon-braket-sdk = ">=1.83"
amazon-braket-schemas = ">=1.22"
16 changes: 12 additions & 4 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@ authors = ["Katharine Hyatt <hyatkath@amazon.com> and contributors"]
version = "0.0.1"

[deps]
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
Automa = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b"
Braket = "19504a0f-b47d-4348-9127-acc6cc69ef67"
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
Expand All @@ -22,18 +26,22 @@ PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
BraketSimulatorPythonExt = "PythonCall"

[compat]
AbstractTrees = "=0.4.5"
Aqua = "=0.8"
Braket = "=0.9.0"
Automa = "=1.0.3"
Braket = "=0.9.1"
Combinatorics = "=1.0.2"
DataStructures = "=0.18.20"
Dates = "1.6"
JSON3 = "=1.14.0"
LinearAlgebra = "1.6"
Logging = "1.6"
Pkg = "1.6"
PythonCall = "=0.9.19"
PrecompileTools = "=1.2.1"
PythonCall = "=0.9.20"
Random = "1.6"
StaticArrays = "=1.9.3"
StatsBase = "=0.34.2"
StaticArrays = "1.9"
StatsBase = "0.34"
Test = "1.6"
UUIDs = "1.6"
julia = "1.9"
Expand Down
13 changes: 13 additions & 0 deletions docs/src/custom_gates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
```@meta
CurrentModule = BraketSimulator
```

# Custom gates

`BraketSimulator.jl` defines some custom gates to extend what `Braket.jl` provides. These include the OpenQASM3 built-in gates `gphase` (as `MultiQubitPhaseShift`) and `U` (the single qubit three angle unitary).

```@docs
U
MultiQubitPhaseShift
MultiRZ
```
10 changes: 8 additions & 2 deletions docs/src/sims.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ and an **array type** (so that we can specialize for GPU arrays, for example).

Each simulator can be initialized with a `qubit_count` and `shots` value. You may query the [`properties`](@ref Braket.properties) of a simulator to learn what gate types, result types, and other operations it supports.

```@autodocs
Modules = [BraketSimulator]
```@docs
StateVectorSimulator
DensityMatrixSimulator
evolve!
simulate
expectation
probabilities
Braket.properties
```
296 changes: 31 additions & 265 deletions ext/BraketSimulatorPythonExt/BraketSimulatorPythonExt.jl

Large diffs are not rendered by default.

Loading

0 comments on commit 4e44fdb

Please sign in to comment.