diff --git a/.travis.yml b/.travis.yml index 39f7e99..c05b2a9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,10 @@ python: - 2.7 - 3.4 - 3.5 -- &mainstream_python 3.6 +- 3.6 +- &mainstream_python 3.7-dev - &pypy pypy - pypy3.5 -- 3.7-dev install: - &upgrade_python_toolset pip install --upgrade pip setuptools wheel - pip install tox-travis @@ -21,7 +21,7 @@ jobs: fast_finish: true include: - stage: Static analisys - python: *mainstream_python + python: 3.6 services: skip install: - *upgrade_python_toolset @@ -53,6 +53,7 @@ jobs: - ./tools/run_docker.sh "exec_helpers" before_deploy: - pip install -r build_requirements.txt + - python setup.py bdist_wheel deploy: - provider: pypi # `skip_cleanup: true` is required to preserve binary wheels, built @@ -63,7 +64,7 @@ jobs: secure: "maml4+SU/6NtRf7JIwWhVyXkesE9Gk5Umdo3txOjcrcvt84S3NlN/hFgdNclMUpJ3b+rOFEpiZOamtDKbP67uhlA6yJ364SxW5T3ZQJ8tjFFzMHcaM38HgGbgLR8AxK8fdZKRg9gVMnGofeiusB5aNsKmn9XnvESc8dNv0Umdmi83wXxm+DfVRXL8VTFgwsH3BxQy/Kdv6upRrXyNWkyoi8Zk8PkrFFDpFoW9WK1fRBqnvCw1Wt8nEAJah7y2b7vj52eM+MfT3IL+jpocZqOJQlFPdWkTonX7mAP9nB97kk4DMbm3ZqUw2Qr9pM0nKK9HhrXhsSSUGa1w95zmw9nbXLrpfnQ61Lyk9pGcVh60WbrVKstE/x9Lq3pqGsA/YKqsIZK3OAqRfBHNG9L7lekP05hXyDNHJXGoEyGQjVA/666S2ZCjM10XaaUmZ5P1kPGocCnEjv86dKdINTkFM6L0n4oIu1nyftBhVu9jz0xQaxute4LZNJiQtE6x8NX3WuSO68UhWjDqevYdRgW55Gp1OD4ilfA/SVNPpsHJfB2baue1fi9m8Rn3bWQSJoZ8twYHoIxEOAIXyMBhYnmldvsuUY6h5p+/hk6kpJAsTXZFjUSa/FPIH84QvDkNCoZxwInSkjEN1tj9PBep2vYcLMd92+g6udtin8FbYMZItiDl1M=" on: tags: true - distributions: sdist bdist_wheel + distributions: sdist skip_upload_docs: true cache: pip diff --git a/CI_REQUIREMENTS.txt b/CI_REQUIREMENTS.txt index 146b678..08d9d53 100644 --- a/CI_REQUIREMENTS.txt +++ b/CI_REQUIREMENTS.txt @@ -1,3 +1,4 @@ mock # no assert_called_once in py35 futures>=3.1; python_version == "2.7" +enum34>=1.1; python_version == "2.7" -r requirements.txt diff --git a/MANIFEST.in b/MANIFEST.in index 4d3f977..69fb558 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,10 @@ include *.rst LICENSE requirements.txt +global-exclude *.c +exclude Makefile +prune tools +exclude .travis.yml appveyor.yml +exclude tox.ini pytest.ini .coveragerc +prune test +prune .github +prune docs +exclude CODEOWNERS CODE_OF_CONDUCT.md _config.yml diff --git a/TODO.md b/TODO.md deleted file mode 100644 index a957da2..0000000 --- a/TODO.md +++ /dev/null @@ -1,5 +0,0 @@ -* [ ] Validate types description -* [x] API documentation -* [x] Readme documentation and examples -* [x] investigate PYPY support (`getrefcount`) -* [ ] Functional tests (separate Win32 and POSIX) diff --git a/exec_helpers/__init__.py b/exec_helpers/__init__.py index 6d2f9b1..e40d29f 100644 --- a/exec_helpers/__init__.py +++ b/exec_helpers/__init__.py @@ -46,7 +46,7 @@ 'ExecResult', ) -__version__ = '1.3.2' +__version__ = '1.3.3' __author__ = "Alexey Stepanov" __author_email__ = 'penguinolog@gmail.com' __maintainers__ = { diff --git a/exec_helpers/ssh_auth.py b/exec_helpers/ssh_auth.py index 171c741..e270ee2 100644 --- a/exec_helpers/ssh_auth.py +++ b/exec_helpers/ssh_auth.py @@ -96,7 +96,7 @@ def username(self): # type: () -> typing.Optional[str] return self.__username @staticmethod - def __get_public_key(key): # type: () -> typing.Optional[str] + def __get_public_key(key): # type: (typing.Union[paramiko.RSAKey, None]) -> typing.Optional[str] """Internal method for get public key from private. :type key: paramiko.RSAKey diff --git a/tools/build-wheels.sh b/tools/build-wheels.sh index 53a19a5..032245f 100755 --- a/tools/build-wheels.sh +++ b/tools/build-wheels.sh @@ -1,5 +1,5 @@ #!/bin/bash -PYTHON_VERSIONS="cp34-cp34m cp35-cp35m cp36-cp36m" +PYTHON_VERSIONS="cp34-cp34m cp35-cp35m cp36-cp36m cp37-cp37m" # Avoid creation of __pycache__/*.py[c|o] export PYTHONDONTWRITEBYTECODE=1 diff --git a/tox.ini b/tox.ini index 0949d2b..d19ee6d 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,7 @@ [tox] minversion = 2.0 -envlist = pep8, pep257, py{27,34,35,36,37,py,py3}, pylint, bandit, py{34,35,36}-nocov, docs, +envlist = pep8, pep257, py{27,34,35,36,37,py,py3}, pylint, bandit, py{34,35,36,37}-nocov, docs, skipsdist = True skip_missing_interpreters = True @@ -49,6 +49,13 @@ commands = pip install exec_helpers --no-index -f dist py.test -vv {posargs:test} +[testenv:py37-nocov] +usedevelop = False +commands = + python setup.py bdist_wheel + pip install exec_helpers --no-index -f dist + py.test -vv {posargs:test} + [testenv:venv] commands = {posargs:} @@ -80,7 +87,6 @@ usedevelop = False commands = pip install ./ -vvv -U [testenv:pylint] -basepython = python3.6 usedevelop = False deps = pylint @@ -88,7 +94,6 @@ deps = commands = pylint exec_helpers [flake8] -basepython = python3.6 exclude = .venv, .git,