Skip to content

Commit

Permalink
Add support for Python 3.11
Browse files Browse the repository at this point in the history
  • Loading branch information
manoelmarques committed Nov 16, 2022
1 parent c4561bb commit 3548857
Show file tree
Hide file tree
Showing 10 changed files with 30 additions and 67 deletions.
19 changes: 9 additions & 10 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,15 @@ jobs:
pip install pyenchant
echo "earliest_version: 0.1.0" >> releasenotes/config.yaml
shell: bash
- run: pip check
- run: pip check
if: ${{ !cancelled() }}
shell: bash
- name: Copyright Check
run: |
python tools/check_copyright.py -check
if: ${{ !cancelled() }}
shell: bash
- run: make spell
- run: make spell
if: ${{ !cancelled() }}
shell: bash
- name: Style Check
Expand All @@ -88,7 +88,7 @@ jobs:
if: ${{ !cancelled() }}
shell: bash
- name: Run make html
run: |
run: |
make clean_sphinx
make html
cd docs/_build/html
Expand All @@ -102,7 +102,7 @@ jobs:
name: documentation
path: docs/_build/html/artifacts/documentation.tar.gz
if: ${{ !cancelled() }}
- run: make doctest
- run: make doctest
if: ${{ !cancelled() }}
shell: bash
MachineLearning:
Expand All @@ -111,16 +111,20 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: [3.7, 3.8, 3.9, '3.10']
python-version: [3.7, 3.8, 3.9, '3.10', 3.11]
include:
- os: macos-latest
python-version: 3.8
- os: macos-latest
python-version: '3.10'
- os: macos-latest
python-version: 3.11
- os: windows-2019
python-version: 3.8
- os: windows-2019
python-version: '3.10'
- os: windows-2019
python-version: 3.11
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
Expand All @@ -142,11 +146,6 @@ jobs:
- run: make mypy
if: ${{ !cancelled() && matrix.python-version != '3.10' }}
shell: bash
- name: Run make lint latest version
run: |
pip install -U -r requirements-dev.txt
make lint
shell: bash
- name: Machine Learning Unit Tests under Python ${{ matrix.python-version }}
uses: ./.github/actions/run-tests
with:
Expand Down
48 changes: 1 addition & 47 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ confidence=
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
disable=no-self-use, # disabled as it is too verbose
fixme, # disabled as TODOs would show up as warnings
disable=fixme, # disabled as TODOs would show up as warnings
protected-access, # disabled as we don't follow the public vs private
# convention strictly
duplicate-code, # disabled as it is too verbose
Expand All @@ -72,9 +71,6 @@ disable=no-self-use, # disabled as it is too verbose
no-else-return, # relax "elif" after a clause with a return
docstring-first-line-empty, # relax docstring style
import-outside-toplevel,
bad-continuation, bad-whitespace, # differences of opinion with black




[REPORTS]
Expand All @@ -84,12 +80,6 @@ disable=no-self-use, # disabled as it is too verbose
# mypackage.mymodule.MyReporterClass.
output-format=text

# Put messages in a separate file for each module / package specified on the
# command line instead of printing them on stdout. Reports (if any) will be
# written in a file name "pylint_global.[txt|html]". This option is deprecated
# and it will be removed in Pylint 2.0.
files-output=no

# Tells whether to display a full report or only the messages
reports=yes

Expand Down Expand Up @@ -138,63 +128,33 @@ property-classes=abc.abstractproperty
# Regular expression matching correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$

# Naming hint for module names
module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$

# Regular expression matching correct constant names
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$

# Naming hint for constant names
const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$

# Regular expression matching correct class names
class-rgx=[A-Z_][a-zA-Z0-9]+$

# Naming hint for class names
class-name-hint=[A-Z_][a-zA-Z0-9]+$

# Regular expression matching correct function names
function-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for function names
function-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct method names
method-rgx=(([a-z_][a-z0-9_]{2,49})|(assert[A-Z][a-zA-Z0-9]{2,43})|(test_[_a-zA-Z0-9]{2,}))$

# Naming hint for method names
method-name-hint=[a-z_][a-z0-9_]{2,30}$ or camelCase `assert*` in tests.

# Regular expression matching correct attribute names
attr-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for attribute names
attr-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct argument names
argument-rgx=[a-z_][a-z0-9_]{2,30}|ax|dt$

# Naming hint for argument names
argument-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct variable names
variable-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for variable names
variable-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct class attribute names
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$

# Naming hint for class attribute names
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$

# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$

# Naming hint for inline iteration names
inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$

# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=^_
Expand Down Expand Up @@ -222,12 +182,6 @@ ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# else.
single-line-if-stmt=no

# List of optional constructs for which whitespace checking is disabled. `dict-
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
# `empty-line` allows space-only lines.
no-space-check=trailing-comma,dict-separator

# Maximum number of lines in a module
max-module-lines=1000

Expand Down
2 changes: 0 additions & 2 deletions constraints.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
astroid==2.5.6
pylint==2.8.3
numpy>=1.20.0
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[tool.black]
line-length = 100
target-version = ['py37', 'py38', 'py39', 'py310']
target-version = ['py37', 'py38', 'py39', 'py310', 'py311']
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
upgrade:
- |
Added support for running with Python 3.11.
At the the time of the release, Sparse didn't have a python 3.11 version.
4 changes: 2 additions & 2 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ coverage>=4.4.0
matplotlib>=2.1
seaborn
black[jupyter]~=22.0
pylint>=2.8.3,<2.14.0
pylint>=2.15.0
pylatexenc>=1.4
stestr>=2.0.0
ddt>=1.2.0,!=1.4.0
Expand All @@ -14,7 +14,7 @@ sphinx-autodoc-typehints<1.14.0
sphinxcontrib-spelling
jupyter-sphinx
discover
qiskit-aer>=0.11
qiskit-aer>=0.11;python_version < '3.11'
mypy>=0.981
mypy-extensions>=0.4.3
nbsphinx
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
qiskit-terra>=0.22
qiskit-terra>=0.22.2
scipy>=1.4
numpy>=1.17
psutil>=5
Expand Down
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Topic :: Scientific/Engineering"
],
keywords='qiskit sdk quantum machine learning ml',
Expand All @@ -70,7 +71,7 @@
python_requires=">=3.7",
extras_require={
'torch': ["torch; python_version < '3.10'"],
'sparse': ["sparse"],
'sparse': ["sparse;python_version < '3.11'"],
},
zip_safe=False
)
10 changes: 8 additions & 2 deletions test/connectors/test_torch_networks.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,12 @@ def forward(self, x):
return Net()

def _create_circuit_qnn(self) -> CircuitQNN:
output_shape, interpret = 2, lambda x: f"{x:b}".count("1") % 2
output_shape = 2
num_inputs = 2

def interpret(x):
return f"{x:b}".count("1") % 2

feature_map = ZZFeatureMap(num_inputs)
ansatz = RealAmplitudes(num_inputs, entanglement="linear", reps=1)

Expand Down Expand Up @@ -111,9 +114,12 @@ def _create_estimator_qnn(self) -> EstimatorQNN:
return qnn

def _create_sampler_qnn(self) -> SamplerQNN:
output_shape, interpret = 2, lambda x: f"{x:b}".count("1") % 2
output_shape = 2
num_inputs = 2

def interpret(x):
return f"{x:b}".count("1") % 2

feature_map = ZZFeatureMap(num_inputs)
ansatz = RealAmplitudes(num_inputs, entanglement="linear", reps=1)

Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tox]
minversion = 3.17
envlist = py37, py38, py39, py310, lint, gpu, gpu-amd
envlist = py37, py38, py39, py310, py311, lint, gpu, gpu-amd
skipsdist = True

[testenv]
Expand Down

0 comments on commit 3548857

Please sign in to comment.