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

Add python3.8 support #1471

Merged
merged 6 commits into from Nov 6, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
128 changes: 126 additions & 2 deletions .circleci/config.yml
Expand Up @@ -179,7 +179,9 @@ jobs:
- image: circleci/python:3.6
environment:
TOXENV: py36-ethpm
WEB3_INFURA_PROJECT_ID: 4f1a358967c7474aae6f8f4a7698aefc
# Please don't use this key for any shenanigans
WEB3_INFURA_PROJECT_ID: 7707850c2fb7465ebe6f150d67182e22
WEB3_INFURA_API_SECRET: 1955838f22ac4d858434f41498557130

py36-integration-goethereum-ipc-1.7.2:
<<: *geth_steps
Expand Down Expand Up @@ -286,7 +288,8 @@ jobs:
- image: circleci/python:3.7
environment:
TOXENV: py37-ethpm
WEB3_INFURA_PROJECT_ID: 4f1a358967c7474aae6f8f4a7698aefc
WEB3_INFURA_PROJECT_ID: ae13436d29b34850b640af9c80f80871
WEB3_INFURA_API_SECRET: 067ddad6021048f0840a38a4e52eb568

py37-integration-goethereum-ipc-1.7.2:
<<: *geth_steps
Expand Down Expand Up @@ -370,6 +373,114 @@ jobs:
environment:
TOXENV: py37-integration-ethtester
ETHEREUM_TESTER_CHAIN_BACKEND: eth_tester.backends.PyEVMBackend
#
# Python 3.8
#
py38-core:
<<: *common
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-core

py38-ens:
<<: *common
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-ens

py38-ethpm:
<<: *ethpm_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-ethpm
WEB3_INFURA_PROJECT_ID: ae13436d29b34850b640af9c80f80871
WEB3_INFURA_API_SECRET: 067ddad6021048f0840a38a4e52eb568

py38-integration-goethereum-ipc-1.7.2:
<<: *geth_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-goethereum-ipc
GETH_VERSION: v1.7.2

py38-integration-goethereum-http-1.7.2:
<<: *geth_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-goethereum-http
GETH_VERSION: v1.7.2

py38-integration-goethereum-ws-1.7.2:
<<: *geth_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-goethereum-ws
GETH_VERSION: v1.7.2

py38-integration-goethereum-ipc-1.8.22:
<<: *geth_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-goethereum-ipc
GETH_VERSION: v1.8.22

py38-integration-goethereum-http-1.8.22:
<<: *geth_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-goethereum-http
GETH_VERSION: v1.8.22

py38-integration-goethereum-ws-1.8.22:
<<: *geth_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-goethereum-ws
GETH_VERSION: v1.8.22

py38-integration-parity-ipc:
<<: *parity_steps
docker:
- image: circleci/python:3.8
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I want to point out that it seems like stretch images are no longer needed. Back when this commit was added parity would fail to build on other distros.

environment:
TOXENV: py38-integration-parity-ipc
PARITY_VERSION: v2.3.5
PARITY_OS: linux

py38-integration-parity-http:
<<: *parity_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-parity-http
PARITY_VERSION: v2.3.5
PARITY_OS: linux

py38-integration-parity-ws:
<<: *parity_steps
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-parity-ws
PARITY_VERSION: v2.3.5
PARITY_OS: linux

py38-integration-ethtester-pyevm:
<<: *common
docker:
- image: circleci/python:3.8
environment:
TOXENV: py38-integration-ethtester
ETHEREUM_TESTER_CHAIN_BACKEND: eth_tester.backends.PyEVMBackend

workflows:
version: 2
Expand Down Expand Up @@ -403,3 +514,16 @@ workflows:
- py37-integration-parity-http
- py37-integration-parity-ws
- py37-integration-ethtester-pyevm
- py38-core
- py38-ens
- py38-ethpm
- py38-integration-goethereum-ipc-1.7.2
- py38-integration-goethereum-http-1.7.2
- py38-integration-goethereum-ws-1.7.2
- py38-integration-goethereum-ipc-1.8.22
- py38-integration-goethereum-http-1.8.22
- py38-integration-goethereum-ws-1.8.22
- py38-integration-parity-ipc
- py38-integration-parity-http
- py38-integration-parity-ws
- py38-integration-ethtester-pyevm
1 change: 1 addition & 0 deletions newsfragments/1471.misc.rst
@@ -0,0 +1 @@
Add python3.8 support
5 changes: 3 additions & 2 deletions setup.py
Expand Up @@ -71,15 +71,15 @@
"eth-account>=0.4.0,<0.5.0",
"eth-hash[pycryptodome]>=0.2.0,<1.0.0",
"eth-typing>=2.0.0,<3.0.0",
"eth-utils>=1.4.0,<2.0.0",
"eth-utils>=1.8.0,<2.0.0",
"hexbytes>=0.1.0,<1.0.0",
"ipfshttpclient>=0.4.12,<1",
"jsonschema>=3.0.0,<4.0.0",
"lru-dict>=1.1.6,<2.0.0",
"protobuf>=3.0.0,<4",
"pypiwin32>=223;platform_system=='Windows'",
"requests>=2.16.0,<3.0.0",
"websockets>=7.0.0,<8.0.0",
"websockets>=8.1.0,<9.0.0",
],
setup_requires=['setuptools-markdown'],
python_requires='>=3.6,<4',
Expand All @@ -98,5 +98,6 @@
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
],
)
13 changes: 10 additions & 3 deletions tests/core/providers/test_websocket_provider.py
@@ -1,8 +1,6 @@
import asyncio
from concurrent.futures import (
TimeoutError,
)
import pytest
import sys
from threading import (
Thread,
)
Expand All @@ -20,6 +18,15 @@
WebsocketProvider,
)

if sys.version_info >= (3, 8):
from asyncio.exceptions import (
TimeoutError,
)
else:
from concurrent.futures import (
TimeoutError,
)


@pytest.yield_fixture
def start_websocket_server(open_port):
Expand Down
10 changes: 6 additions & 4 deletions tox.ini
@@ -1,9 +1,9 @@
[tox]
envlist=
py{36,37}-ens
py{36,37}-ethpm
py{36,37}-core
py{36,37}-integration-{goethereum,ethtester,parity}
py{36,37,38}-ens
py{36,37,38}-ethpm
py{36,37,38}-core
py{36,37,38}-integration-{goethereum,ethtester,parity}
lint
docs

Expand Down Expand Up @@ -51,10 +51,12 @@ passenv =
GOROOT
GOPATH
WEB3_INFURA_PROJECT_ID
WEB3_INFURA_API_SECRET
basepython =
docs: python3.6
py36: python3.6
py37: python3.7
py38: python3.8

[testenv:lint]
basepython=python
Expand Down