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

Support Python 3.12 #6516

Merged
merged 10 commits into from
May 9, 2024
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ jobs:
name: Pytest Ubuntu
strategy:
matrix:
python-version: [ '3.10', '3.11' ]
python-version: ['3.10', '3.11', '3.12']
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -234,7 +234,7 @@ jobs:
name: Pytest Windows
strategy:
matrix:
python-version: [ '3.10', '3.11' ]
python-version: ['3.10', '3.11', '3.12']
runs-on: windows-2019
steps:
- uses: actions/checkout@v4
Expand All @@ -259,7 +259,7 @@ jobs:
name: Pytest MacOS
strategy:
matrix:
python-version: [ '3.10', '3.11' ]
python-version: ['3.10', '3.11', '3.12']
# TODO(#6577): upgrade to macos-latest when it runs Python 3.10
runs-on: macos-13
steps:
Expand Down
7 changes: 2 additions & 5 deletions cirq-core/cirq/contrib/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# Runtime requirements for contrib.

ply>=3.6
pylatex~=1.3.0
pylatex~=1.4

# quimb
quimb~=1.6.0
quimb~=1.7
opt_einsum
autoray
# required for py39 opcodes.
numba~=0.58.0
1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v1/operations_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v1/params_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v1/program_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v2/device_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v2/metrics_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v2/program_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v2/result_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion cirq-google/cirq_google/api/v2/run_context_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cirq-google/cirq_google/engine/engine_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ def test_create_context(client):

context = EngineContext(cg.engine.engine.ProtoVersion.V2, {'args': 'test'}, True)
assert context.proto_version == cg.engine.engine.ProtoVersion.V2
assert client.called_with({'args': 'test'}, True)
client.assert_called_with(service_args={'args': 'test'}, verbose=True)

assert context.copy().proto_version == context.proto_version
assert context.copy().client == context.client
Expand Down
4 changes: 3 additions & 1 deletion dev_tools/cloned_env_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,7 @@ def test_isolated_env_cloning(cloned_env, param):
result = shell_tools.run(f"{env}/bin/pip list --format=json".split(), stdout=subprocess.PIPE)
packages = json.loads(result.stdout)
assert {"name": "flynt", "version": "0.64"} in packages
assert {"astor", "flynt", "pip", "setuptools", "wheel"} == set(p['name'] for p in packages)
package_names = set(p['name'] for p in packages)
assert package_names.issuperset({"astor", "flynt", "pip"})
assert package_names.issubset({"astor", "flynt", "pip", "setuptools", "wheel"})
shutil.rmtree(env)
2 changes: 2 additions & 0 deletions dev_tools/notebooks/notebook_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
'**/ionq/*.ipynb',
'**/pasqal/*.ipynb',
'**/rigetti/*.ipynb',
# disabled to unblock Python 3.12. TODO(#6590) - fix and enable.
'cirq-core/cirq/contrib/quimb/Contract-a-Grid-Circuit.ipynb',
# skipp cirq-ft notebooks since they are included in individual tests
'cirq-ft/**',
# skipping fidelity estimation due to
Expand Down
2 changes: 1 addition & 1 deletion dev_tools/requirements/deps/dev-tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
asv

# For verifying behavior of qasm output.
qiskit-aer~=0.12.2
qiskit-aer~=0.12.0

# For verifying rst
rstcheck~=3.3.1
6 changes: 3 additions & 3 deletions dev_tools/requirements/deps/protos.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# dependencies for proto generation - used by cirq-google

# This bundles protoc 3.23.1, which we use for generating proto code.
grpcio-tools~=1.56.0
# This bundles protoc 3.24.3, which we use for generating proto code.
grpcio-tools~=1.59.0

mypy-protobuf==3.4
mypy-protobuf==3.4
4 changes: 2 additions & 2 deletions dev_tools/requirements/deps/pytest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ coverage<=6.2

# for parallel testing notebooks
pytest-xdist~=2.2.0
filelock~=3.0.12
filelock~=3.1

# For testing time specific logic
freezegun~=0.3.15
Expand All @@ -22,5 +22,5 @@ importlib-metadata
codeowners; platform_system != "Windows"

# for creating isolated environments
virtualenv
virtualenv~=20.23
virtualenv-clone