diff --git a/.drone.jsonnet b/.drone.jsonnet index eb5a90e..87596e4 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -50,7 +50,6 @@ local PipelineTest = { arch: 'amd64', }, steps: [ - PythonVersion(pyversion='3.5'), PythonVersion(pyversion='3.6'), PythonVersion(pyversion='3.7'), PythonVersion(pyversion='3.8'), @@ -67,7 +66,6 @@ local PipelineTest = { 'codecov --required -X gcov', ], depends_on: [ - 'python35-pytest', 'python36-pytest', 'python37-pytest', 'python38-pytest', diff --git a/.drone.yml b/.drone.yml index 50404f0..326eaab 100644 --- a/.drone.yml +++ b/.drone.yml @@ -31,19 +31,6 @@ platform: arch: amd64 steps: -- name: python35-pytest - image: python:3.5 - commands: - - pip install poetry -qq - - poetry install -q - - poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail - - poetry version - - poetry run docker-tidy --help - environment: - PY_COLORS: 1 - depends_on: - - clone - - name: python36-pytest image: python:3.6 commands: @@ -106,7 +93,6 @@ steps: from_secret: codecov_token PY_COLORS: 1 depends_on: - - python35-pytest - python36-pytest - python37-pytest - python38-pytest @@ -617,6 +603,6 @@ depends_on: --- kind: signature -hmac: 0cca89c6ee5e4403f8fe70514e96aa7d596b7f0d74994d2e567993ae19c6692f +hmac: 06ddc40fb488eedcd3e5b8b71be91eed5b0414955f39edfd8689a286be1d2f7d ... diff --git a/dockertidy/Autostop.py b/dockertidy/Autostop.py index 36c6b2c..2bbcbc7 100644 --- a/dockertidy/Autostop.py +++ b/dockertidy/Autostop.py @@ -2,10 +2,10 @@ """Stop long running docker iamges.""" import dateutil.parser -import docker import docker.errors import requests.exceptions +import docker from dockertidy.Config import SingleConfig from dockertidy.Logger import SingleLog from dockertidy.Parser import timedelta diff --git a/dockertidy/GarbageCollector.py b/dockertidy/GarbageCollector.py index 77cfd59..115a973 100644 --- a/dockertidy/GarbageCollector.py +++ b/dockertidy/GarbageCollector.py @@ -5,10 +5,10 @@ import fnmatch from collections import namedtuple import dateutil.parser -import docker import docker.errors import requests.exceptions +import docker from dockertidy.Config import SingleConfig from dockertidy.Logger import SingleLog from dockertidy.Parser import timedelta diff --git a/dockertidy/test/unit/test_autostop.py b/dockertidy/test/unit/test_autostop.py index 2998af3..244b3c6 100644 --- a/dockertidy/test/unit/test_autostop.py +++ b/dockertidy/test/unit/test_autostop.py @@ -1,8 +1,8 @@ """Test Autostop class.""" -import docker import pytest +import docker from dockertidy import Autostop pytest_plugins = [ diff --git a/dockertidy/test/unit/test_garbagecollector.py b/dockertidy/test/unit/test_garbagecollector.py index dbdef07..e8ee23e 100644 --- a/dockertidy/test/unit/test_garbagecollector.py +++ b/dockertidy/test/unit/test_garbagecollector.py @@ -1,9 +1,9 @@ """Test GarbageCollector class.""" -import docker import pytest import requests +import docker from dockertidy import GarbageCollector pytest_plugins = [ diff --git a/poetry.lock b/poetry.lock index 9d23681..173cbfe 100644 --- a/poetry.lock +++ b/poetry.lock @@ -209,20 +209,20 @@ six = ">=1.4.0" [[package]] name = "environs" -version = "7.4.0" +version = "9.2.0" description = "simplified environment variable parsing" category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" [package.dependencies] marshmallow = ">=2.7.0" python-dotenv = "*" [package.extras] -dev = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url", "flake8 (==3.7.9)", "flake8-bugbear (==20.1.4)", "mypy (==0.770)", "pre-commit (>=1.20,<3.0)", "tox"] +dev = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url", "flake8 (==3.8.4)", "flake8-bugbear (==20.1.4)", "mypy (==0.790)", "pre-commit (>=2.4,<3.0)", "tox"] django = ["dj-database-url", "dj-email-url", "django-cache-url"] -lint = ["flake8 (==3.7.9)", "flake8-bugbear (==20.1.4)", "mypy (==0.770)", "pre-commit (>=1.20,<3.0)"] +lint = ["flake8 (==3.8.4)", "flake8-bugbear (==20.1.4)", "mypy (==0.790)", "pre-commit (>=2.4,<3.0)"] tests = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url"] [[package]] @@ -271,7 +271,7 @@ test = ["coverage", "coveralls", "mock", "pytest", "pytest-cov"] [[package]] name = "flake8-colors" -version = "0.1.6" +version = "0.1.8" description = "Error highlight plugin for Flake8." category = "dev" optional = false @@ -428,17 +428,16 @@ python-versions = "*" [[package]] name = "isort" -version = "4.3.21" +version = "5.6.4" description = "A Python utility / library to sort Python imports." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6,<4.0" [package.extras] -pipfile = ["pipreqs", "requirementslib"] -pyproject = ["toml"] -requirements = ["pipreqs", "pip-api"] -xdg_home = ["appdirs (>=1.4.0)"] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +requirements_deprecated_finder = ["pipreqs", "pip-api"] +colors = ["colorama (>=0.4.3,<0.5.0)"] [[package]] name = "jsonschema" @@ -590,7 +589,6 @@ optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4" [package.dependencies] -autopep8 = {version = ">=1.4,<2.0", markers = "python_version < \"3.6\""} black = {version = "19.10b0", markers = "python_version >= \"3.6\""} colorama = ">=0.4,<1.0" packaging = ">=20.0,<21.0" @@ -663,14 +661,13 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pydocstyle" -version = "3.0.0" +version = "5.1.1" description = "Python docstring style checker" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.5" [package.dependencies] -six = "*" snowballstemmer = "*" [[package]] @@ -712,7 +709,6 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" -pathlib2 = {version = ">=2.2.0", markers = "python_version < \"3.6\""} pluggy = ">=0.12,<1.0" py = ">=1.8.2" toml = "*" @@ -908,15 +904,15 @@ python-versions = "*" [[package]] name = "stevedore" -version = "1.32.0" +version = "3.2.2" description = "Manage dynamic plugins for Python applications" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" [package.dependencies] +importlib-metadata = {version = ">=1.7.0", markers = "python_version < \"3.8\""} pbr = ">=2.0.0,<2.1.0 || >2.1.0" -six = ">=1.10.0" [[package]] name = "testfixtures" @@ -997,7 +993,6 @@ python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.7" [package.dependencies] colorama = ">=0.3.4,<0.4.2 || >0.4.2" -pathlib2 = {version = "*", markers = "python_version < \"3.6\""} six = "*" [package.extras] @@ -1028,20 +1023,20 @@ python-versions = "*" [[package]] name = "zipp" -version = "1.2.0" +version = "3.4.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false -python-versions = ">=2.7" +python-versions = ">=3.6" [package.extras] docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"] +testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] [metadata] lock-version = "1.1" -python-versions = "^3.5.0" -content-hash = "83b7d966995211d9128c6fb75d4b6dfc03b765347e584b5818dbd181a9f1e322" +python-versions = "^3.6.0" +content-hash = "1e731279e73e7fc846e56cb2347d3c237f81a02b4bf43f879474bff943f381cf" [metadata.files] anyconfig = [ @@ -1147,8 +1142,8 @@ docker-pycreds = [ {file = "docker_pycreds-0.4.0-py2.py3-none-any.whl", hash = "sha256:7266112468627868005106ec19cd0d722702d2b7d5912a28e19b826c3d37af49"}, ] environs = [ - {file = "environs-7.4.0-py2.py3-none-any.whl", hash = "sha256:5a130876f555cffafeecd775c2e81a447b46c9a1a27f7241e0a822c4c7d30f2a"}, - {file = "environs-7.4.0.tar.gz", hash = "sha256:ae38e5263a1da25c3057d3b77eabc7840143f8fb893fb3795532e1aeba5e0806"}, + {file = "environs-9.2.0-py2.py3-none-any.whl", hash = "sha256:10dca340bff9c912e99d237905909390365e32723c2785a9f3afa6ef426c53bc"}, + {file = "environs-9.2.0.tar.gz", hash = "sha256:36081033ab34a725c2414f48ee7ec7f7c57e498d8c9255d61fbc7f2d4bf60865"}, ] eradicate = [ {file = "eradicate-2.0.0.tar.gz", hash = "sha256:27434596f2c5314cc9b31410c93d8f7e8885747399773cd088d3adea647a60c8"}, @@ -1166,7 +1161,8 @@ flake8-builtins = [ {file = "flake8_builtins-1.5.3-py2.py3-none-any.whl", hash = "sha256:7706babee43879320376861897e5d1468e396a40b8918ed7bccf70e5f90b8687"}, ] flake8-colors = [ - {file = "flake8-colors-0.1.6.tar.gz", hash = "sha256:508fcf6efc15826f2146b42172ab41999555e07af43fcfb3e6a28ad596189560"}, + {file = "flake8-colors-0.1.8.tar.gz", hash = "sha256:7a2c14ace214e22ba07870e25efc4ccd640f21227de9820482ea73b68343ee96"}, + {file = "flake8_colors-0.1.8-py3-none-any.whl", hash = "sha256:b63b81bd7edf45ed4d9ac1d144b5fdcf60f6dffd1f4e6b066aaf5e77fe055af3"}, ] flake8-docstrings = [ {file = "flake8-docstrings-1.5.0.tar.gz", hash = "sha256:3d5a31c7ec6b7367ea6506a87ec293b94a0a46c0bce2bb4975b7f1d09b6f3717"}, @@ -1219,8 +1215,8 @@ ipaddress = [ {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"}, ] isort = [ - {file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"}, - {file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"}, + {file = "isort-5.6.4-py3-none-any.whl", hash = "sha256:dcab1d98b469a12a1a624ead220584391648790275560e1a43e54c5dceae65e7"}, + {file = "isort-5.6.4.tar.gz", hash = "sha256:dcaeec1b5f0eca77faea2a35ab790b4f3680ff75590bfcb7145986905aab2f58"}, ] jsonschema = [ {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, @@ -1293,9 +1289,8 @@ pycodestyle = [ {file = "pycodestyle-2.6.0.tar.gz", hash = "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"}, ] pydocstyle = [ - {file = "pydocstyle-3.0.0-py2-none-any.whl", hash = "sha256:2258f9b0df68b97bf3a6c29003edc5238ff8879f1efb6f1999988d934e432bd8"}, - {file = "pydocstyle-3.0.0-py3-none-any.whl", hash = "sha256:ed79d4ec5e92655eccc21eb0c6cf512e69512b4a97d215ace46d17e4990f2039"}, - {file = "pydocstyle-3.0.0.tar.gz", hash = "sha256:5741c85e408f9e0ddf873611085e819b809fca90b619f5fd7f34bd4959da3dd4"}, + {file = "pydocstyle-5.1.1-py3-none-any.whl", hash = "sha256:aca749e190a01726a4fb472dd4ef23b5c9da7b9205c0a7857c06533de13fd678"}, + {file = "pydocstyle-5.1.1.tar.gz", hash = "sha256:19b86fa8617ed916776a11cd8bc0197e5b9856d5433b777f51a3defe13075325"}, ] pyflakes = [ {file = "pyflakes-2.2.0-py2.py3-none-any.whl", hash = "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92"}, @@ -1456,8 +1451,8 @@ snowballstemmer = [ {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"}, ] stevedore = [ - {file = "stevedore-1.32.0-py2.py3-none-any.whl", hash = "sha256:a4e7dc759fb0f2e3e2f7d8ffe2358c19d45b9b8297f393ef1256858d82f69c9b"}, - {file = "stevedore-1.32.0.tar.gz", hash = "sha256:18afaf1d623af5950cc0f7e75e70f917784c73b652a34a12d90b309451b5500b"}, + {file = "stevedore-3.2.2-py3-none-any.whl", hash = "sha256:5e1ab03eaae06ef6ce23859402de785f08d97780ed774948ef16c4652c41bc62"}, + {file = "stevedore-3.2.2.tar.gz", hash = "sha256:f845868b3a3a77a2489d226568abe7328b5c2d4f6a011cc759dfa99144a521f0"}, ] testfixtures = [ {file = "testfixtures-6.15.0-py2.py3-none-any.whl", hash = "sha256:e17f4f526fc90b0ac9bc7f8ca62b7dec17d9faf3d721f56bda4f0fd94d02f85a"}, @@ -1528,6 +1523,6 @@ yapf = [ {file = "yapf-0.30.0.tar.gz", hash = "sha256:3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427"}, ] zipp = [ - {file = "zipp-1.2.0-py2.py3-none-any.whl", hash = "sha256:e0d9e63797e483a30d27e09fffd308c59a700d365ec34e93cc100844168bf921"}, - {file = "zipp-1.2.0.tar.gz", hash = "sha256:c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1"}, + {file = "zipp-3.4.0-py3-none-any.whl", hash = "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108"}, + {file = "zipp-3.4.0.tar.gz", hash = "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb"}, ] diff --git a/pyproject.toml b/pyproject.toml index e6a5274..a01e00b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,6 @@ classifiers = [ "Natural Language :: English", "Operating System :: POSIX", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", @@ -36,52 +35,51 @@ repository = "https://github.com/thegeeklab/docker-tidy/" version = "0.0.0" [tool.poetry.dependencies] -anyconfig = "*" -appdirs = "*" -certifi = "*" -chardet = "*" -colorama = "*" -dateparser = "*" -docker = "*" -docker-pycreds = "*" -environs = "*" -idna = "*" -importlib-metadata = {version = "*", markers = "python_version<'3.8'"} -ipaddress = "*" -jsonschema = "*" -nested-lookup = "*" -pathspec = "*" -python = "^3.5.0" -python-dateutil = "*" -python-json-logger = "*" -requests = "*" -"ruamel.yaml" = "*" -websocket-client = "*" -zipp = "<2.0.0" +anyconfig = "^0.9.11" +appdirs = "^1.4.4" +certifi = "^2020.11.8" +chardet = "^3.0.4" +colorama = "^0.4.4" +dateparser = "^1.0.0" +docker = "^4.3.1" +docker-pycreds = "^0.4.0" +environs = "^9.2.0" +idna = "^2.10" +ipaddress = "^1.0.23" +jsonschema = "^3.2.0" +nested-lookup = "^0.2.21" +pathspec = "^0.8.1" +python = "^3.6.0" +python-dateutil = "^2.8.1" +python-json-logger = "^2.0.1" +requests = "^2.25.0" +"ruamel.yaml" = "^0.16.12" +websocket_client = "^0.57.0" +zipp = "^3.4.0" [tool.poetry.dev-dependencies] -autopep8 = "*" -bandit = "*" -coverage = {extras = ["toml"], version = "*"} -flake8 = "*" -flake8-blind-except = "*" -flake8-builtins = "*" -flake8-colors = "*" -flake8-docstrings = "<=3.0.0" -flake8-eradicate = {version = "*", markers = "python_version>='3.6'"} -flake8-isort = "*" -flake8-logging-format = "*" -flake8-pep3101 = "*" -flake8-polyfill = "*" -flake8-quotes = "*" -pathlib2 = "*" -pep8-naming = "*" -pipenv-setup = "*" -pydocstyle = "<4.0.0" -pytest = "*" -pytest-cov = "*" -pytest-mock = "*" -yapf = "*" +autopep8 = "^1.5.4" +bandit = "^1.6.2" +coverage = {extras = ["toml"], version = "^5.3"} +flake8 = "^3.8.4" +flake8-blind-except = "^0.1.1" +flake8-builtins = "^1.5.3" +flake8-colors = "^0.1.8" +flake8-docstrings = "^1.5.0" +flake8-eradicate = "^1.0.0" +flake8-isort = "^4.0.0" +flake8-logging-format = "^0.6.0" +flake8-pep3101 = "^1.3.0" +flake8-polyfill = "^1.0.2" +flake8-quotes = "^3.2.0" +pathlib2 = "^2.3.5" +pep8-naming = "^0.11.1" +pipenv-setup = "^3.1.1" +pydocstyle = "^5.1.1" +pytest = "^6.1.2" +pytest-cov = "^2.10.1" +pytest-mock = "^3.3.1" +yapf = "^0.30.0" [tool.poetry.scripts] docker-tidy = "dockertidy.Cli:main" @@ -94,7 +92,6 @@ vcs = "git" [tool.isort] default_section = "THIRDPARTY" force_single_line = true -known_first_party = "dockertidy" line_length = 99 sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"] skip_glob = ["**/.env*", "**/env/*", "**/docs/*"]