summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml19
-rw-r--r--paramiko/hostkeys.py6
-rw-r--r--setup.py2
-rw-r--r--sites/www/changelog.rst4
4 files changed, 22 insertions, 9 deletions
diff --git a/.travis.yml b/.travis.yml
index a2820666..41c074bb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,4 @@
+dist: xenial
language: python
sudo: false
cache:
@@ -8,26 +9,28 @@ python:
- "3.4"
- "3.5"
- "3.6"
- - "3.7-dev"
- - "pypy-5.6.0"
+ - "3.7"
+ - "3.8-dev"
+ - "pypy"
+ - "pypy3"
matrix:
allow_failures:
- - python: "3.7-dev"
+ - python: "3.8-dev"
# Explicitly test against our oldest supported cryptography.io, in addition
# to whatever the latest default is.
include:
- python: 2.7
- env: "CRYPTO_BEFORE=2.6"
- - python: 3.6
- env: "CRYPTO_BEFORE=2.6"
+ env: "OLDEST_CRYPTO=2.5"
+ - python: 3.7
+ env: "OLDEST_CRYPTO=2.5"
install:
# Ensure modern pip/etc to avoid some issues w/ older worker environs
- pip install pip==9.0.1 setuptools==36.6.0
# Grab a specific version of Cryptography if desired. Doing this before other
# installations ensures we don't have to do any downgrading/overriding.
- |
- if [[ -n "$CRYPTO_BEFORE" ]]; then
- pip install "cryptography<${CRYPTO_BEFORE}"
+ if [[ -n "$OLDEST_CRYPTO" ]]; then
+ pip install "cryptography==${OLDEST_CRYPTO}"
fi
# Self-install for setup.py-driven deps
- pip install -e .
diff --git a/paramiko/hostkeys.py b/paramiko/hostkeys.py
index f31b8819..d0660cc8 100644
--- a/paramiko/hostkeys.py
+++ b/paramiko/hostkeys.py
@@ -19,8 +19,12 @@
import binascii
import os
+import sys
-from collections import MutableMapping
+if sys.version_info[:2] >= (3, 3):
+ from collections.abc import MutableMapping
+else:
+ from collections import MutableMapping
from hashlib import sha1
from hmac import HMAC
diff --git a/setup.py b/setup.py
index 6c366ce1..e6c4a077 100644
--- a/setup.py
+++ b/setup.py
@@ -70,6 +70,8 @@ setup(
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
],
install_requires=["bcrypt>=3.1.3", "cryptography>=2.5", "pynacl>=1.0.1"],
)
diff --git a/sites/www/changelog.rst b/sites/www/changelog.rst
index ff87bfbb..25d11217 100644
--- a/sites/www/changelog.rst
+++ b/sites/www/changelog.rst
@@ -2,6 +2,10 @@
Changelog
=========
+- :support:`1378 backported` Add support for the modern (as of Python 3.3)
+ import location of ``MutableMapping`` (used in host key management) to avoid
+ the old location becoming deprecated in Python 3.8. Thanks to Josh Karpel for
+ catch & patch.
- :release:`2.4.2 <2018-09-18>`
- :release:`2.3.3 <2018-09-18>`
- :release:`2.2.4 <2018-09-18>`