From 95fe1578bb22dc7ac489b6b175219f05fd856ff9 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Tue, 5 Nov 2019 01:59:53 +0200 Subject: [PATCH] dvc: automatically reorder imports --- .pre-commit-config.yaml | 5 ++ .restyled.yaml | 10 ++++ dvc/__init__.py | 2 - dvc/__main__.py | 1 - dvc/analytics.py | 8 ++- dvc/api.py | 2 +- dvc/cache.py | 4 +- dvc/cli.py | 45 ++++++++-------- dvc/command/add.py | 3 +- dvc/command/base.py | 3 +- dvc/command/cache.py | 5 +- dvc/command/checkout.py | 3 +- dvc/command/commit.py | 3 +- dvc/command/config.py | 3 +- dvc/command/daemon.py | 3 +- dvc/command/data_sync.py | 3 +- dvc/command/destroy.py | 3 +- dvc/command/diff.py | 5 +- dvc/command/gc.py | 7 +-- dvc/command/get.py | 3 +- dvc/command/get_url.py | 3 +- dvc/command/imp.py | 3 +- dvc/command/imp_url.py | 3 +- dvc/command/init.py | 3 +- dvc/command/install.py | 3 +- dvc/command/lock.py | 3 +- dvc/command/metrics.py | 7 ++- dvc/command/move.py | 3 +- dvc/command/pipeline.py | 9 ++-- dvc/command/remote.py | 3 +- dvc/command/remove.py | 3 +- dvc/command/repro.py | 5 +- dvc/command/root.py | 3 +- dvc/command/run.py | 3 +- dvc/command/tag.py | 6 ++- dvc/command/unprotect.py | 3 +- dvc/command/update.py | 3 +- dvc/command/version.py | 6 +-- dvc/config.py | 22 +++++--- dvc/daemon.py | 8 +-- dvc/dagascii.py | 12 +++-- dvc/data_cloud.py | 4 +- dvc/dependency/__init__.py | 14 +++-- dvc/dependency/gs.py | 2 +- dvc/dependency/hdfs.py | 2 +- dvc/dependency/http.py | 2 +- dvc/dependency/https.py | 2 +- dvc/dependency/repo.py | 7 ++- dvc/dependency/s3.py | 2 +- dvc/dependency/ssh.py | 2 +- dvc/exceptions.py | 5 +- dvc/external_repo.py | 2 +- dvc/ignore.py | 2 +- dvc/istextfile.py | 4 +- dvc/lock.py | 3 +- dvc/logger.py | 13 ++--- dvc/main.py | 10 ++-- dvc/output/__init__.py | 13 +++-- dvc/output/base.py | 11 ++-- dvc/output/gs.py | 2 +- dvc/output/local.py | 10 ++-- dvc/output/s3.py | 2 +- dvc/path_info.py | 13 +++-- dvc/progress.py | 5 +- dvc/prompt.py | 5 +- dvc/remote/__init__.py | 9 ++-- dvc/remote/azure.py | 14 ++--- dvc/remote/base.py | 35 ++++++------ dvc/remote/config.py | 5 +- dvc/remote/gs.py | 4 +- dvc/remote/hdfs.py | 25 +++++---- dvc/remote/http.py | 9 ++-- dvc/remote/https.py | 3 +- dvc/remote/local.py | 52 +++++++++--------- dvc/remote/oss.py | 9 ++-- dvc/remote/pool.py | 1 + dvc/remote/s3.py | 11 ++-- dvc/remote/slow_link_detection.py | 3 +- dvc/remote/ssh/__init__.py | 20 +++---- dvc/remote/ssh/connection.py | 5 +- dvc/repo/__init__.py | 22 ++++---- dvc/repo/add.py | 12 +++-- dvc/repo/brancher.py | 1 + dvc/repo/checkout.py | 3 +- dvc/repo/diff.py | 16 +++--- dvc/repo/fetch.py | 9 ++-- dvc/repo/gc.py | 2 +- dvc/repo/get.py | 18 +++---- dvc/repo/get_url.py | 3 +- dvc/repo/imp_url.py | 5 +- dvc/repo/init.py | 16 +++--- dvc/repo/metrics/modify.py | 2 +- dvc/repo/metrics/show.py | 12 +++-- dvc/repo/move.py | 3 +- dvc/repo/reproduce.py | 6 +-- dvc/repo/status.py | 1 + dvc/scm/__init__.py | 1 - dvc/scm/base.py | 1 - dvc/scm/git/__init__.py | 23 ++++---- dvc/scm/git/tree.py | 6 +-- dvc/stage.py | 29 +++++----- dvc/state.py | 16 ++++-- dvc/system.py | 7 ++- dvc/updater.py | 13 +++-- dvc/utils/__init__.py | 43 +++++++-------- dvc/utils/collections.py | 4 +- dvc/utils/compat.py | 4 +- dvc/utils/fs.py | 9 ++-- dvc/utils/http.py | 2 +- dvc/utils/stage.py | 5 +- fastentrypoints.py | 3 +- scripts/ci/check_patch.sh | 7 ++- scripts/hooks/hook-Crypto.py | 4 +- setup.py | 9 ++-- tests/basic_env.py | 14 ++--- tests/conftest.py | 10 ++-- tests/func/test_add.py | 42 +++++++-------- tests/func/test_analytics.py | 7 ++- tests/func/test_api.py | 32 ++++++----- tests/func/test_cache.py | 7 +-- tests/func/test_checkout.py | 43 +++++++-------- tests/func/test_cli.py | 22 ++++---- tests/func/test_commit.py | 3 +- tests/func/test_data_cloud.py | 53 ++++++++++--------- tests/func/test_dependency.py | 6 ++- tests/func/test_diff.py | 2 +- tests/func/test_external_repo.py | 1 + tests/func/test_gc.py | 11 ++-- tests/func/test_get.py | 6 +-- tests/func/test_get_url.py | 2 +- tests/func/test_import.py | 6 +-- tests/func/test_import_url.py | 3 +- tests/func/test_init.py | 6 +-- tests/func/test_install.py | 3 +- tests/func/test_lock.py | 3 +- tests/func/test_metrics.py | 7 +-- tests/func/test_move.py | 7 +-- tests/func/test_output.py | 3 +- tests/func/test_pipeline.py | 4 +- tests/func/test_remote.py | 12 ++--- tests/func/test_remove.py | 13 ++--- tests/func/test_repo.py | 5 +- tests/func/test_repro.py | 52 ++++++++++-------- tests/func/test_run.py | 33 ++++++------ tests/func/test_s3.py | 6 +-- tests/func/test_scm.py | 9 ++-- tests/func/test_stage.py | 9 ++-- tests/func/test_state.py | 8 +-- tests/func/test_status.py | 6 +-- tests/func/test_system.py | 1 + tests/func/test_tag.py | 5 +- tests/func/test_tree.py | 6 +-- tests/func/test_unprotect.py | 1 - tests/func/test_update.py | 4 +- tests/func/test_updater.py | 1 + tests/func/test_utils.py | 2 +- tests/func/test_version.py | 3 +- tests/unit/command/test_imp_url.py | 2 +- tests/unit/command/test_repro.py | 2 +- tests/unit/dependency/test_gs.py | 1 - tests/unit/dependency/test_hdfs.py | 2 +- tests/unit/dependency/test_http.py | 1 - tests/unit/dependency/test_local.py | 3 +- tests/unit/dependency/test_s3.py | 1 - tests/unit/dependency/test_ssh.py | 1 - tests/unit/output/test_gs.py | 1 - tests/unit/output/test_hdfs.py | 2 +- tests/unit/output/test_local.py | 3 +- tests/unit/output/test_s3.py | 1 - tests/unit/output/test_ssh.py | 1 - tests/unit/remote/ssh/test_connection.py | 11 ++-- tests/unit/remote/ssh/test_ssh.py | 7 ++- tests/unit/remote/test_base.py | 7 ++- tests/unit/remote/test_gs.py | 6 ++- tests/unit/remote/test_http.py | 3 +- tests/unit/remote/test_s3.py | 1 - tests/unit/remote/test_slow_link_detection.py | 4 +- tests/unit/scm/test_scm.py | 6 ++- tests/unit/test_daemon.py | 5 +- tests/unit/test_ignore.py | 8 +-- tests/unit/test_logger.py | 3 +- tests/unit/test_path_info.py | 7 ++- tests/unit/test_progress.py | 6 ++- tests/unit/test_prompt.py | 3 +- tests/unit/test_stage.py | 13 ++--- tests/unit/test_updater.py | 2 +- tests/unit/test_version.py | 2 +- tests/unit/utils/test_fs.py | 18 +++---- tests/unit/utils/test_http.py | 1 + tests/unit/utils/test_utils.py | 3 +- tests/utils/__init__.py | 5 +- 191 files changed, 820 insertions(+), 695 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1cc91e222..1a1fb7601 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,3 +9,8 @@ repos: hooks: - id: flake8 language_version: python3 +- repo: https://github.com/asottile/reorder_python_imports + rev: v1.8.0 + hooks: + - id: reorder-python-imports + language_version: python3 diff --git a/.restyled.yaml b/.restyled.yaml index d5eeec715..75c31e5ee 100644 --- a/.restyled.yaml +++ b/.restyled.yaml @@ -9,3 +9,13 @@ restylers: - "**/*.py" interpreters: - python + - name: reorder-python-imports + image: restyled/restyler-reorder-python-imports:v1.6.0 + command: + - reorder-python-imports + - "--exit-zero-even-if-changed" + arguments: [] + include: + - "**/*.py" + interpreters: + - python diff --git a/dvc/__init__.py b/dvc/__init__.py index fbec7dfad..81bbe6ee3 100644 --- a/dvc/__init__.py +++ b/dvc/__init__.py @@ -3,13 +3,11 @@ DVC ---- Make your data science projects reproducible and shareable. """ - from __future__ import unicode_literals import warnings import dvc.logger - from dvc.version import __version__ # noqa: F401 diff --git a/dvc/__main__.py b/dvc/__main__.py index 357464370..e160b02ed 100644 --- a/dvc/__main__.py +++ b/dvc/__main__.py @@ -1,5 +1,4 @@ """Main entry point for dvc command line tool.""" - from __future__ import unicode_literals import sys diff --git a/dvc/analytics.py b/dvc/analytics.py index 95fda9b9a..6e0e63694 100644 --- a/dvc/analytics.py +++ b/dvc/analytics.py @@ -1,16 +1,14 @@ """Collect and send usage analytics""" - from __future__ import unicode_literals -from dvc.utils.compat import str - -import os -import json import errno +import json import logging +import os from dvc import __version__ from dvc.utils import env2bool +from dvc.utils.compat import str logger = logging.getLogger(__name__) diff --git a/dvc/api.py b/dvc/api.py index 1f5ae5285..bf976dcf0 100644 --- a/dvc/api.py +++ b/dvc/api.py @@ -1,5 +1,5 @@ -from contextlib import contextmanager import os +from contextlib import contextmanager try: from contextlib import _GeneratorContextManager as GCM diff --git a/dvc/cache.py b/dvc/cache.py index 4ca3b4f62..452197f0c 100644 --- a/dvc/cache.py +++ b/dvc/cache.py @@ -1,13 +1,13 @@ """Manages cache of a dvc repo.""" - from __future__ import unicode_literals import os from collections import defaultdict + from funcy import cached_property -from dvc.utils.compat import builtin_str from dvc.config import Config +from dvc.utils.compat import builtin_str class CacheConfig(object): diff --git a/dvc/cli.py b/dvc/cli.py index f1a4f9ef3..782723e07 100644 --- a/dvc/cli.py +++ b/dvc/cli.py @@ -1,42 +1,41 @@ """Command line interface for dvc.""" - from __future__ import print_function from __future__ import unicode_literals -import sys import argparse import logging +import sys -from dvc.command.base import fix_subparsers -import dvc.command.init as init +import dvc.command.add as add +import dvc.command.cache as cache +import dvc.command.checkout as checkout +import dvc.command.commit as commit +import dvc.command.config as config +import dvc.command.daemon as daemon +import dvc.command.data_sync as data_sync +import dvc.command.destroy as destroy +import dvc.command.diff as diff +import dvc.command.gc as gc import dvc.command.get as get import dvc.command.get_url as get_url -import dvc.command.destroy as destroy -import dvc.command.remove as remove -import dvc.command.move as move -import dvc.command.unprotect as unprotect -import dvc.command.run as run -import dvc.command.repro as repro -import dvc.command.data_sync as data_sync -import dvc.command.gc as gc -import dvc.command.add as add import dvc.command.imp as imp import dvc.command.imp_url as imp_url -import dvc.command.config as config -import dvc.command.checkout as checkout -import dvc.command.remote as remote -import dvc.command.cache as cache -import dvc.command.metrics as metrics +import dvc.command.init as init import dvc.command.install as install -import dvc.command.root as root import dvc.command.lock as lock +import dvc.command.metrics as metrics +import dvc.command.move as move import dvc.command.pipeline as pipeline -import dvc.command.daemon as daemon -import dvc.command.commit as commit +import dvc.command.remote as remote +import dvc.command.remove as remove +import dvc.command.repro as repro +import dvc.command.root as root +import dvc.command.run as run import dvc.command.tag as tag -import dvc.command.diff as diff -import dvc.command.version as version +import dvc.command.unprotect as unprotect import dvc.command.update as update +import dvc.command.version as version +from dvc.command.base import fix_subparsers from dvc.exceptions import DvcParserError diff --git a/dvc/command/add.py b/dvc/command/add.py index 788412fb2..cd08a966a 100644 --- a/dvc/command/add.py +++ b/dvc/command/add.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import RecursiveAddingWhileUsingFilename diff --git a/dvc/command/base.py b/dvc/command/base.py index f7db28803..56a9aed23 100644 --- a/dvc/command/base.py +++ b/dvc/command/base.py @@ -1,8 +1,9 @@ from __future__ import unicode_literals -import colorama import logging +import colorama + logger = logging.getLogger(__name__) diff --git a/dvc/command/cache.py b/dvc/command/cache.py index f9a4f28fc..264360f8f 100644 --- a/dvc/command/cache.py +++ b/dvc/command/cache.py @@ -2,9 +2,10 @@ from __future__ import unicode_literals import argparse -from dvc.command.base import fix_subparsers, append_doc_link -from dvc.command.config import CmdConfig from dvc.cache import CacheConfig +from dvc.command.base import append_doc_link +from dvc.command.base import fix_subparsers +from dvc.command.config import CmdConfig class CmdCacheDir(CmdConfig): diff --git a/dvc/command/checkout.py b/dvc/command/checkout.py index 12e654c0f..2802b1b15 100644 --- a/dvc/command/checkout.py +++ b/dvc/command/checkout.py @@ -2,7 +2,8 @@ from __future__ import unicode_literals import argparse -from dvc.command.base import CmdBase, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase class CmdCheckout(CmdBase): diff --git a/dvc/command/commit.py b/dvc/command/commit.py index daa4d2474..2c626e2ae 100644 --- a/dvc/command/commit.py +++ b/dvc/command/commit.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/config.py b/dvc/command/config.py index de9f8bd58..fb679e84a 100644 --- a/dvc/command/config.py +++ b/dvc/command/config.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBaseNoRepo from dvc.config import Config diff --git a/dvc/command/daemon.py b/dvc/command/daemon.py index 01fa07532..2b60bded4 100644 --- a/dvc/command/daemon.py +++ b/dvc/command/daemon.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals -from dvc.command.base import CmdBaseNoRepo, fix_subparsers +from dvc.command.base import CmdBaseNoRepo +from dvc.command.base import fix_subparsers class CmdDaemonBase(CmdBaseNoRepo): diff --git a/dvc/command/data_sync.py b/dvc/command/data_sync.py index 237cd8563..99822b003 100644 --- a/dvc/command/data_sync.py +++ b/dvc/command/data_sync.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException diff --git a/dvc/command/destroy.py b/dvc/command/destroy.py index 3dc251387..8559ef1cb 100644 --- a/dvc/command/destroy.py +++ b/dvc/command/destroy.py @@ -4,7 +4,8 @@ import argparse import logging import dvc.prompt as prompt -from dvc.command.base import CmdBase, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException diff --git a/dvc/command/diff.py b/dvc/command/diff.py index d11ed01e6..180508896 100644 --- a/dvc/command/diff.py +++ b/dvc/command/diff.py @@ -1,14 +1,15 @@ from __future__ import unicode_literals import argparse +import logging import humanize import inflect -import logging from funcy import compact +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/gc.py b/dvc/command/gc.py index 45d774f6d..8890aae6e 100644 --- a/dvc/command/gc.py +++ b/dvc/command/gc.py @@ -1,11 +1,12 @@ from __future__ import unicode_literals import argparse -import os -import dvc.prompt as prompt import logging +import os -from dvc.command.base import CmdBase, append_doc_link +import dvc.prompt as prompt +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase logger = logging.getLogger(__name__) diff --git a/dvc/command/get.py b/dvc/command/get.py index e5d647f69..77235ecef 100644 --- a/dvc/command/get.py +++ b/dvc/command/get.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from .base import append_doc_link +from .base import CmdBaseNoRepo from dvc.exceptions import DvcException -from .base import CmdBaseNoRepo, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/get_url.py b/dvc/command/get_url.py index 579193d9a..df377d045 100644 --- a/dvc/command/get_url.py +++ b/dvc/command/get_url.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from .base import append_doc_link +from .base import CmdBaseNoRepo from dvc.exceptions import DvcException -from .base import CmdBaseNoRepo, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/imp.py b/dvc/command/imp.py index c179960b3..452a481d5 100644 --- a/dvc/command/imp.py +++ b/dvc/command/imp.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/imp_url.py b/dvc/command/imp_url.py index 1b0b1cf87..46b24f8aa 100644 --- a/dvc/command/imp_url.py +++ b/dvc/command/imp_url.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/init.py b/dvc/command/init.py index 075e3be4c..e7589fca6 100644 --- a/dvc/command/init.py +++ b/dvc/command/init.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBaseNoRepo logger = logging.getLogger(__name__) diff --git a/dvc/command/install.py b/dvc/command/install.py index 081714fde..2ff809212 100644 --- a/dvc/command/install.py +++ b/dvc/command/install.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase logger = logging.getLogger(__name__) diff --git a/dvc/command/lock.py b/dvc/command/lock.py index da672c352..b89240264 100644 --- a/dvc/command/lock.py +++ b/dvc/command/lock.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/metrics.py b/dvc/command/metrics.py index 48c0bac52..7ae0155fd 100644 --- a/dvc/command/metrics.py +++ b/dvc/command/metrics.py @@ -3,8 +3,11 @@ from __future__ import unicode_literals import argparse import logging -from dvc.exceptions import DvcException, BadMetricError -from dvc.command.base import CmdBase, fix_subparsers, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase +from dvc.command.base import fix_subparsers +from dvc.exceptions import BadMetricError +from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/move.py b/dvc/command/move.py index 1991e2dca..83764f68f 100644 --- a/dvc/command/move.py +++ b/dvc/command/move.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/pipeline.py b/dvc/command/pipeline.py index 280699479..84b3ef206 100644 --- a/dvc/command/pipeline.py +++ b/dvc/command/pipeline.py @@ -1,13 +1,14 @@ from __future__ import unicode_literals -from dvc.utils import relpath -from dvc.utils.compat import str - import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase +from dvc.command.base import fix_subparsers from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, fix_subparsers, append_doc_link +from dvc.utils import relpath +from dvc.utils.compat import str logger = logging.getLogger(__name__) diff --git a/dvc/command/remote.py b/dvc/command/remote.py index 412f3b4ee..9ff361fd6 100644 --- a/dvc/command/remote.py +++ b/dvc/command/remote.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import append_doc_link, fix_subparsers +from dvc.command.base import append_doc_link +from dvc.command.base import fix_subparsers from dvc.command.config import CmdConfig from dvc.remote.config import RemoteConfig diff --git a/dvc/command/remove.py b/dvc/command/remove.py index a00448029..179d373f6 100644 --- a/dvc/command/remove.py +++ b/dvc/command/remove.py @@ -4,8 +4,9 @@ import argparse import logging import dvc.prompt as prompt +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/repro.py b/dvc/command/repro.py index ffa76cd77..24d4f1276 100644 --- a/dvc/command/repro.py +++ b/dvc/command/repro.py @@ -1,10 +1,11 @@ from __future__ import unicode_literals import argparse -import os import logging +import os -from dvc.command.base import CmdBase, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.command.metrics import show_metrics from dvc.command.status import CmdDataStatus from dvc.exceptions import DvcException diff --git a/dvc/command/root.py b/dvc/command/root.py index 09f14d0cb..a5d4208f9 100644 --- a/dvc/command/root.py +++ b/dvc/command/root.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBaseNoRepo from dvc.utils import relpath logger = logging.getLogger(__name__) diff --git a/dvc/command/run.py b/dvc/command/run.py index c51f10bab..1368eb4bc 100644 --- a/dvc/command/run.py +++ b/dvc/command/run.py @@ -3,7 +3,8 @@ from __future__ import unicode_literals import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException diff --git a/dvc/command/tag.py b/dvc/command/tag.py index 679ccbb92..859ea9124 100644 --- a/dvc/command/tag.py +++ b/dvc/command/tag.py @@ -1,8 +1,10 @@ import logging -from dvc.utils import to_yaml_string +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase +from dvc.command.base import fix_subparsers from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, fix_subparsers, append_doc_link +from dvc.utils import to_yaml_string logger = logging.getLogger(__name__) diff --git a/dvc/command/unprotect.py b/dvc/command/unprotect.py index b4b276234..7344f086a 100644 --- a/dvc/command/unprotect.py +++ b/dvc/command/unprotect.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/update.py b/dvc/command/update.py index e4dfdb56a..2b800c9fe 100644 --- a/dvc/command/update.py +++ b/dvc/command/update.py @@ -3,8 +3,9 @@ from __future__ import unicode_literals import argparse import logging +from dvc.command.base import append_doc_link +from dvc.command.base import CmdBase from dvc.exceptions import DvcException -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/version.py b/dvc/command/version.py index 7cf00c751..ad0385861 100644 --- a/dvc/command/version.py +++ b/dvc/command/version.py @@ -1,11 +1,11 @@ from __future__ import unicode_literals +import argparse +import itertools +import logging import os import platform -import argparse -import logging import uuid -import itertools try: import psutil diff --git a/dvc/config.py b/dvc/config.py index d89b2fc6f..bd569864c 100644 --- a/dvc/config.py +++ b/dvc/config.py @@ -1,18 +1,24 @@ """DVC config objects.""" - from __future__ import unicode_literals -from dvc.utils.compat import str, open - -import os -import re import copy import errno -import configobj import logging +import os +import re -from schema import Schema, Optional, And, Use, Regex, SchemaError -from dvc.exceptions import DvcException, NotDvcRepoError +import configobj +from schema import And +from schema import Optional +from schema import Regex +from schema import Schema +from schema import SchemaError +from schema import Use + +from dvc.exceptions import DvcException +from dvc.exceptions import NotDvcRepoError +from dvc.utils.compat import open +from dvc.utils.compat import str logger = logging.getLogger(__name__) diff --git a/dvc/daemon.py b/dvc/daemon.py index 10dc40fd3..ebef6f2e5 100644 --- a/dvc/daemon.py +++ b/dvc/daemon.py @@ -1,15 +1,15 @@ """Launch `dvc daemon` command in a separate detached process.""" - from __future__ import unicode_literals -import os -import sys import inspect import logging +import os +import sys from subprocess import Popen from dvc.env import DVC_DAEMON -from dvc.utils import is_binary, fix_env +from dvc.utils import fix_env +from dvc.utils import is_binary from dvc.utils.compat import cast_bytes_py2 diff --git a/dvc/dagascii.py b/dvc/dagascii.py index e7620e675..6f324b865 100644 --- a/dvc/dagascii.py +++ b/dvc/dagascii.py @@ -1,14 +1,16 @@ """Draws DAG in ASCII.""" - -from __future__ import unicode_literals from __future__ import print_function +from __future__ import unicode_literals -import sys import math +import sys -from grandalf.graphs import Vertex, Edge, Graph +from grandalf.graphs import Edge +from grandalf.graphs import Graph +from grandalf.graphs import Vertex from grandalf.layouts import SugiyamaLayout -from grandalf.routing import route_with_lines, EdgeViewer +from grandalf.routing import EdgeViewer +from grandalf.routing import route_with_lines class VertexViewer(object): diff --git a/dvc/data_cloud.py b/dvc/data_cloud.py index 63669f4b2..ce300f0cd 100644 --- a/dvc/data_cloud.py +++ b/dvc/data_cloud.py @@ -1,10 +1,10 @@ """Manages dvc remotes that user can use with push/pull/status comamnds.""" - from __future__ import unicode_literals import logging -from dvc.config import Config, NoRemoteError +from dvc.config import Config +from dvc.config import NoRemoteError from dvc.remote import Remote diff --git a/dvc/dependency/__init__.py b/dvc/dependency/__init__.py index bd3dd1587..5209c1f86 100644 --- a/dvc/dependency/__init__.py +++ b/dvc/dependency/__init__.py @@ -2,20 +2,18 @@ from __future__ import unicode_literals import schema -from dvc.scheme import Schemes - import dvc.output as output -from dvc.output.base import OutputBase -from dvc.dependency.s3 import DependencyS3 +from .repo import DependencyREPO from dvc.dependency.gs import DependencyGS -from dvc.dependency.local import DependencyLOCAL from dvc.dependency.hdfs import DependencyHDFS -from dvc.dependency.ssh import DependencySSH from dvc.dependency.http import DependencyHTTP from dvc.dependency.https import DependencyHTTPS -from .repo import DependencyREPO - +from dvc.dependency.local import DependencyLOCAL +from dvc.dependency.s3 import DependencyS3 +from dvc.dependency.ssh import DependencySSH +from dvc.output.base import OutputBase from dvc.remote import Remote +from dvc.scheme import Schemes DEPS = [ diff --git a/dvc/dependency/gs.py b/dvc/dependency/gs.py index 7c41dede7..73dda18d6 100644 --- a/dvc/dependency/gs.py +++ b/dvc/dependency/gs.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.output.gs import OutputGS from dvc.dependency.base import DependencyBase +from dvc.output.gs import OutputGS class DependencyGS(DependencyBase, OutputGS): diff --git a/dvc/dependency/hdfs.py b/dvc/dependency/hdfs.py index c67899f72..15da38cda 100644 --- a/dvc/dependency/hdfs.py +++ b/dvc/dependency/hdfs.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.output.hdfs import OutputHDFS from dvc.dependency.base import DependencyBase +from dvc.output.hdfs import OutputHDFS class DependencyHDFS(DependencyBase, OutputHDFS): diff --git a/dvc/dependency/http.py b/dvc/dependency/http.py index 47133adc6..f958eba31 100644 --- a/dvc/dependency/http.py +++ b/dvc/dependency/http.py @@ -1,8 +1,8 @@ from __future__ import unicode_literals +from dvc.dependency.base import DependencyBase from dvc.output.base import OutputBase from dvc.remote.http import RemoteHTTP -from dvc.dependency.base import DependencyBase class DependencyHTTP(DependencyBase, OutputBase): diff --git a/dvc/dependency/https.py b/dvc/dependency/https.py index 91233bede..3eb4562de 100644 --- a/dvc/dependency/https.py +++ b/dvc/dependency/https.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.remote.https import RemoteHTTPS from .http import DependencyHTTP +from dvc.remote.https import RemoteHTTPS class DependencyHTTPS(DependencyHTTP): diff --git a/dvc/dependency/repo.py b/dvc/dependency/repo.py index 376a38a6c..20439c024 100644 --- a/dvc/dependency/repo.py +++ b/dvc/dependency/repo.py @@ -1,15 +1,14 @@ from __future__ import unicode_literals import copy +from contextlib import contextmanager from funcy import merge from schema import Optional -from contextlib import contextmanager - -from dvc.external_repo import external_repo -from dvc.utils.compat import str from .local import DependencyLOCAL +from dvc.external_repo import external_repo +from dvc.utils.compat import str class DependencyREPO(DependencyLOCAL): diff --git a/dvc/dependency/s3.py b/dvc/dependency/s3.py index 382e77a7d..18b960c5f 100644 --- a/dvc/dependency/s3.py +++ b/dvc/dependency/s3.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.output.s3 import OutputS3 from dvc.dependency.base import DependencyBase +from dvc.output.s3 import OutputS3 class DependencyS3(DependencyBase, OutputS3): diff --git a/dvc/dependency/ssh.py b/dvc/dependency/ssh.py index b48c5e302..f09daad52 100644 --- a/dvc/dependency/ssh.py +++ b/dvc/dependency/ssh.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.output.ssh import OutputSSH from dvc.dependency.base import DependencyBase +from dvc.output.ssh import OutputSSH class DependencySSH(DependencyBase, OutputSSH): diff --git a/dvc/exceptions.py b/dvc/exceptions.py index 16b8b837b..07a0ce806 100644 --- a/dvc/exceptions.py +++ b/dvc/exceptions.py @@ -1,12 +1,11 @@ """Exceptions raised by the dvc.""" - from __future__ import unicode_literals -from dvc.utils.compat import str, builtin_str - import traceback from dvc.utils import relpath +from dvc.utils.compat import builtin_str +from dvc.utils.compat import str class DvcException(Exception): diff --git a/dvc/external_repo.py b/dvc/external_repo.py index 4081ee25f..ccdadf6e6 100644 --- a/dvc/external_repo.py +++ b/dvc/external_repo.py @@ -2,9 +2,9 @@ from __future__ import unicode_literals import os import tempfile +from contextlib import contextmanager from distutils.dir_util import copy_tree -from contextlib import contextmanager from funcy import retry from dvc.utils import remove diff --git a/dvc/ignore.py b/dvc/ignore.py index b24c7824f..fe78b649f 100644 --- a/dvc/ignore.py +++ b/dvc/ignore.py @@ -2,11 +2,11 @@ from __future__ import unicode_literals import logging import os + from pathspec import PathSpec from pathspec.patterns import GitWildMatchPattern from dvc.utils import relpath - from dvc.utils.compat import open logger = logging.getLogger(__name__) diff --git a/dvc/istextfile.py b/dvc/istextfile.py index a3767870d..d26af9911 100644 --- a/dvc/istextfile.py +++ b/dvc/istextfile.py @@ -1,8 +1,8 @@ """Use heuristics to guess if it is a text file or a binary file.""" - from __future__ import unicode_literals -from dvc.utils.compat import is_py3, open +from dvc.utils.compat import is_py3 +from dvc.utils.compat import open # Based on https://eli.thegreenplace.net/2011/10/19/ # perls-guess-if-file-is-text-or-binary-implemented-in-python diff --git a/dvc/lock.py b/dvc/lock.py index d3bc83d19..27ca67229 100644 --- a/dvc/lock.py +++ b/dvc/lock.py @@ -1,9 +1,8 @@ """Manages dvc lock file.""" - from __future__ import unicode_literals -import os import hashlib +import os import time from datetime import timedelta diff --git a/dvc/logger.py b/dvc/logger.py index f26ef31ce..f6104777b 100644 --- a/dvc/logger.py +++ b/dvc/logger.py @@ -1,15 +1,16 @@ """Manages logging configuration for dvc repo.""" - from __future__ import unicode_literals -from dvc.utils.compat import str, StringIO, RecursionError -from dvc.progress import Tqdm - -import logging -import logging.handlers import logging.config +import logging.handlers + import colorama +from dvc.progress import Tqdm +from dvc.utils.compat import RecursionError +from dvc.utils.compat import str +from dvc.utils.compat import StringIO + FOOTER = ( "\n{yellow}Having any troubles?{nc}" diff --git a/dvc/main.py b/dvc/main.py index 5d3f01193..0c83ddab3 100644 --- a/dvc/main.py +++ b/dvc/main.py @@ -1,17 +1,17 @@ """Main entry point for dvc CLI.""" - from __future__ import unicode_literals import logging +from dvc.analytics import Analytics from dvc.cli import parse_args +from dvc.config import ConfigError +from dvc.exceptions import DvcParserError +from dvc.exceptions import NotDvcRepoError +from dvc.external_repo import clean_repos from dvc.lock import LockError from dvc.logger import FOOTER -from dvc.config import ConfigError -from dvc.analytics import Analytics -from dvc.exceptions import NotDvcRepoError, DvcParserError from dvc.remote.pool import close_pools -from dvc.external_repo import clean_repos from dvc.utils.compat import is_py2 diff --git a/dvc/output/__init__.py b/dvc/output/__init__.py index ca8ad7777..b12ebf3af 100644 --- a/dvc/output/__init__.py +++ b/dvc/output/__init__.py @@ -2,20 +2,19 @@ from __future__ import unicode_literals import schema -from dvc.scheme import Schemes -from dvc.utils.compat import urlparse, str - from dvc.output.base import OutputBase -from dvc.output.s3 import OutputS3 from dvc.output.gs import OutputGS -from dvc.output.local import OutputLOCAL from dvc.output.hdfs import OutputHDFS +from dvc.output.local import OutputLOCAL +from dvc.output.s3 import OutputS3 from dvc.output.ssh import OutputSSH - from dvc.remote import Remote -from dvc.remote.s3 import RemoteS3 from dvc.remote.hdfs import RemoteHDFS from dvc.remote.local import RemoteLOCAL +from dvc.remote.s3 import RemoteS3 +from dvc.scheme import Schemes +from dvc.utils.compat import str +from dvc.utils.compat import urlparse OUTS = [ OutputHDFS, diff --git a/dvc/output/base.py b/dvc/output/base.py index df2d3d2ce..2a0f7bf24 100644 --- a/dvc/output/base.py +++ b/dvc/output/base.py @@ -3,13 +3,16 @@ from __future__ import unicode_literals import logging from copy import copy -from schema import Or, Optional +from schema import Optional +from schema import Or -from dvc.cache import NamedCache import dvc.prompt as prompt -from dvc.exceptions import DvcException, CollectCacheError -from dvc.utils.compat import str, urlparse +from dvc.cache import NamedCache +from dvc.exceptions import CollectCacheError +from dvc.exceptions import DvcException from dvc.remote.base import RemoteBASE +from dvc.utils.compat import str +from dvc.utils.compat import urlparse logger = logging.getLogger(__name__) diff --git a/dvc/output/gs.py b/dvc/output/gs.py index 29a75e4ad..82fa2d7fa 100644 --- a/dvc/output/gs.py +++ b/dvc/output/gs.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.remote.gs import RemoteGS from dvc.output.s3 import OutputS3 +from dvc.remote.gs import RemoteGS class OutputGS(OutputS3): diff --git a/dvc/output/local.py b/dvc/output/local.py index cbd9c9503..ecdeafdae 100644 --- a/dvc/output/local.py +++ b/dvc/output/local.py @@ -1,13 +1,15 @@ from __future__ import unicode_literals -import os import logging +import os -from dvc.utils.compat import urlparse, fspath_py35, str -from dvc.istextfile import istextfile from dvc.exceptions import DvcException -from dvc.remote.local import RemoteLOCAL +from dvc.istextfile import istextfile from dvc.output.base import OutputBase +from dvc.remote.local import RemoteLOCAL +from dvc.utils.compat import fspath_py35 +from dvc.utils.compat import str +from dvc.utils.compat import urlparse logger = logging.getLogger(__name__) diff --git a/dvc/output/s3.py b/dvc/output/s3.py index d9cd116b4..2d6df4e28 100644 --- a/dvc/output/s3.py +++ b/dvc/output/s3.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.remote.s3 import RemoteS3 from dvc.output.base import OutputBase +from dvc.remote.s3 import RemoteS3 class OutputS3(OutputBase): diff --git a/dvc/path_info.py b/dvc/path_info.py index 6707c8d81..15b3fe25f 100644 --- a/dvc/path_info.py +++ b/dvc/path_info.py @@ -1,14 +1,19 @@ -from __future__ import unicode_literals, absolute_import +from __future__ import absolute_import +from __future__ import unicode_literals -import sys import os import posixpath +import sys from funcy import cached_property -from dvc.utils.compat import str, builtin_str, basestring, is_py2 -from dvc.utils.compat import pathlib, urlparse from dvc.utils import relpath +from dvc.utils.compat import basestring +from dvc.utils.compat import builtin_str +from dvc.utils.compat import is_py2 +from dvc.utils.compat import pathlib +from dvc.utils.compat import str +from dvc.utils.compat import urlparse # On Python 2.7/Windows sys.getfilesystemencoding() is set to mbcs, diff --git a/dvc/progress.py b/dvc/progress.py index 68c6ddd59..5cc209e9d 100644 --- a/dvc/progress.py +++ b/dvc/progress.py @@ -1,9 +1,12 @@ """Manages progress bars for dvc repo.""" from __future__ import print_function + import logging import sys -from tqdm import tqdm + from funcy import merge +from tqdm import tqdm + from dvc.utils import env2bool logger = logging.getLogger(__name__) diff --git a/dvc/prompt.py b/dvc/prompt.py index c4cad9fb3..cec76b3f6 100644 --- a/dvc/prompt.py +++ b/dvc/prompt.py @@ -1,10 +1,9 @@ """Manages user prompts.""" - -from __future__ import unicode_literals from __future__ import print_function +from __future__ import unicode_literals -import sys import logging +import sys from getpass import getpass from dvc.utils.compat import input diff --git a/dvc/remote/__init__.py b/dvc/remote/__init__.py index e8ffe81f4..3ff90d365 100644 --- a/dvc/remote/__init__.py +++ b/dvc/remote/__init__.py @@ -1,16 +1,15 @@ from __future__ import unicode_literals +from .config import RemoteConfig from dvc.remote.azure import RemoteAZURE from dvc.remote.gs import RemoteGS from dvc.remote.hdfs import RemoteHDFS -from dvc.remote.local import RemoteLOCAL -from dvc.remote.s3 import RemoteS3 -from dvc.remote.ssh import RemoteSSH from dvc.remote.http import RemoteHTTP from dvc.remote.https import RemoteHTTPS +from dvc.remote.local import RemoteLOCAL from dvc.remote.oss import RemoteOSS - -from .config import RemoteConfig +from dvc.remote.s3 import RemoteS3 +from dvc.remote.ssh import RemoteSSH REMOTES = [ diff --git a/dvc/remote/azure.py b/dvc/remote/azure.py index aec5ffa63..217ce91fc 100644 --- a/dvc/remote/azure.py +++ b/dvc/remote/azure.py @@ -1,20 +1,20 @@ from __future__ import absolute_import from __future__ import unicode_literals +import logging import os import re -import logging -from datetime import datetime, timedelta +from datetime import datetime +from datetime import timedelta from funcy import cached_property -from dvc.scheme import Schemes - -from dvc.utils.compat import urlparse -from dvc.progress import Tqdm from dvc.config import Config -from dvc.remote.base import RemoteBASE from dvc.path_info import CloudURLInfo +from dvc.progress import Tqdm +from dvc.remote.base import RemoteBASE +from dvc.scheme import Schemes +from dvc.utils.compat import urlparse logger = logging.getLogger(__name__) diff --git a/dvc/remote/base.py b/dvc/remote/base.py index f9bd7ef76..68af0670e 100644 --- a/dvc/remote/base.py +++ b/dvc/remote/base.py @@ -1,31 +1,34 @@ from __future__ import unicode_literals -from operator import itemgetter -from multiprocessing import cpu_count - +import itertools import json import logging import tempfile -import itertools -from functools import partial from concurrent.futures import ThreadPoolExecutor from copy import copy - -from dvc.ignore import DvcIgnore -from dvc.utils.compat import str, basestring, urlparse, FileNotFoundError -from dvc.remote.slow_link_detection import slow_link_guard +from functools import partial +from multiprocessing import cpu_count +from operator import itemgetter import dvc.prompt as prompt from dvc.config import Config -from dvc.exceptions import ( - DvcException, - ConfirmRemoveError, - DvcIgnoreInCollectedDirError, -) +from dvc.exceptions import ConfirmRemoveError +from dvc.exceptions import DvcException +from dvc.exceptions import DvcIgnoreInCollectedDirError +from dvc.ignore import DvcIgnore +from dvc.path_info import PathInfo +from dvc.path_info import URLInfo from dvc.progress import Tqdm -from dvc.utils import tmp_fname, move, relpath, makedirs +from dvc.remote.slow_link_detection import slow_link_guard from dvc.state import StateNoop -from dvc.path_info import PathInfo, URLInfo +from dvc.utils import makedirs +from dvc.utils import move +from dvc.utils import relpath +from dvc.utils import tmp_fname +from dvc.utils.compat import basestring +from dvc.utils.compat import FileNotFoundError +from dvc.utils.compat import str +from dvc.utils.compat import urlparse from dvc.utils.http import open_url logger = logging.getLogger(__name__) diff --git a/dvc/remote/config.py b/dvc/remote/config.py index 99a841f67..17f1ef4fd 100644 --- a/dvc/remote/config.py +++ b/dvc/remote/config.py @@ -1,10 +1,11 @@ -import os import logging +import os import posixpath +from dvc.config import Config +from dvc.config import ConfigError from dvc.utils import relpath from dvc.utils.compat import urlparse -from dvc.config import Config, ConfigError logger = logging.getLogger(__name__) diff --git a/dvc/remote/gs.py b/dvc/remote/gs.py index 8f8eeb3d2..c2fb4efc1 100644 --- a/dvc/remote/gs.py +++ b/dvc/remote/gs.py @@ -6,12 +6,12 @@ from functools import wraps from funcy import cached_property -from dvc.utils.compat import FileNotFoundError # skipcq: PYL-W0622 -from dvc.remote.base import RemoteBASE from dvc.config import Config from dvc.exceptions import DvcException from dvc.path_info import CloudURLInfo +from dvc.remote.base import RemoteBASE from dvc.scheme import Schemes +from dvc.utils.compat import FileNotFoundError # skipcq: PYL-W0622 logger = logging.getLogger(__name__) diff --git a/dvc/remote/hdfs.py b/dvc/remote/hdfs.py index 6fc68ed20..75469ed18 100644 --- a/dvc/remote/hdfs.py +++ b/dvc/remote/hdfs.py @@ -1,21 +1,24 @@ from __future__ import unicode_literals -import os -import re import io -import posixpath import logging -from subprocess import Popen, PIPE -from contextlib import contextmanager, closing +import os +import posixpath +import re +from contextlib import closing +from contextlib import contextmanager +from subprocess import PIPE +from subprocess import Popen +from .base import RemoteBASE +from .base import RemoteCmdError +from .pool import get_connection from dvc.config import Config from dvc.scheme import Schemes - -from dvc.utils.compat import urlparse, FileNotFoundError -from dvc.utils import fix_env, tmp_fname - -from .pool import get_connection -from .base import RemoteBASE, RemoteCmdError +from dvc.utils import fix_env +from dvc.utils import tmp_fname +from dvc.utils.compat import FileNotFoundError +from dvc.utils.compat import urlparse logger = logging.getLogger(__name__) diff --git a/dvc/remote/http.py b/dvc/remote/http.py index aef214c08..7f96e0b8e 100644 --- a/dvc/remote/http.py +++ b/dvc/remote/http.py @@ -4,12 +4,13 @@ import logging from funcy import cached_property +from dvc.config import Config +from dvc.config import ConfigError +from dvc.exceptions import DvcException +from dvc.progress import Tqdm +from dvc.remote.base import RemoteBASE from dvc.scheme import Schemes from dvc.utils.compat import open -from dvc.progress import Tqdm -from dvc.exceptions import DvcException -from dvc.config import Config, ConfigError -from dvc.remote.base import RemoteBASE logger = logging.getLogger(__name__) diff --git a/dvc/remote/https.py b/dvc/remote/https.py index 2a111330d..eee6a1d80 100644 --- a/dvc/remote/https.py +++ b/dvc/remote/https.py @@ -1,8 +1,7 @@ from __future__ import unicode_literals -from dvc.scheme import Schemes - from .http import RemoteHTTP +from dvc.scheme import Schemes class RemoteHTTPS(RemoteHTTP): diff --git a/dvc/remote/local.py b/dvc/remote/local.py index 7f950404a..0197ec53e 100644 --- a/dvc/remote/local.py +++ b/dvc/remote/local.py @@ -1,38 +1,38 @@ from __future__ import unicode_literals -import os -import stat + import errno import logging -from functools import partial +import os +import stat from concurrent.futures import ThreadPoolExecutor +from functools import partial from shortuuid import uuid -from dvc.scheme import Schemes -from dvc.utils.compat import str, fspath_py35, open -from dvc.system import System -from dvc.remote.base import ( - RemoteBASE, - STATUS_MAP, - STATUS_NEW, - STATUS_DELETED, - STATUS_MISSING, -) -from dvc.utils import ( - remove, - move, - copyfile, - tmp_fname, - file_md5, - walk_files, - relpath, - makedirs, -) from dvc.config import Config -from dvc.exceptions import DvcException, DownloadError, UploadError -from dvc.progress import Tqdm - +from dvc.exceptions import DownloadError +from dvc.exceptions import DvcException +from dvc.exceptions import UploadError from dvc.path_info import PathInfo +from dvc.progress import Tqdm +from dvc.remote.base import RemoteBASE +from dvc.remote.base import STATUS_DELETED +from dvc.remote.base import STATUS_MAP +from dvc.remote.base import STATUS_MISSING +from dvc.remote.base import STATUS_NEW +from dvc.scheme import Schemes +from dvc.system import System +from dvc.utils import copyfile +from dvc.utils import file_md5 +from dvc.utils import makedirs +from dvc.utils import move +from dvc.utils import relpath +from dvc.utils import remove +from dvc.utils import tmp_fname +from dvc.utils import walk_files +from dvc.utils.compat import fspath_py35 +from dvc.utils.compat import open +from dvc.utils.compat import str logger = logging.getLogger(__name__) diff --git a/dvc/remote/oss.py b/dvc/remote/oss.py index 185c7b7a8..ca41e68db 100644 --- a/dvc/remote/oss.py +++ b/dvc/remote/oss.py @@ -1,15 +1,14 @@ from __future__ import absolute_import from __future__ import unicode_literals -import os import logging - -from dvc.scheme import Schemes +import os from dvc.config import Config -from dvc.remote.base import RemoteBASE -from dvc.progress import Tqdm from dvc.path_info import CloudURLInfo +from dvc.progress import Tqdm +from dvc.remote.base import RemoteBASE +from dvc.scheme import Schemes logger = logging.getLogger(__name__) diff --git a/dvc/remote/pool.py b/dvc/remote/pool.py index 3f92056db..bec579cc4 100644 --- a/dvc/remote/pool.py +++ b/dvc/remote/pool.py @@ -1,5 +1,6 @@ from collections import deque from contextlib import contextmanager + from funcy import memoize diff --git a/dvc/remote/s3.py b/dvc/remote/s3.py index ded688b3c..a45769425 100644 --- a/dvc/remote/s3.py +++ b/dvc/remote/s3.py @@ -1,16 +1,17 @@ # -*- coding: utf-8 -*- - from __future__ import unicode_literals -import os import logging +import os + from funcy import cached_property -from dvc.progress import Tqdm from dvc.config import Config -from dvc.remote.base import RemoteBASE -from dvc.exceptions import DvcException, ETagMismatchError +from dvc.exceptions import DvcException +from dvc.exceptions import ETagMismatchError from dvc.path_info import CloudURLInfo +from dvc.progress import Tqdm +from dvc.remote.base import RemoteBASE from dvc.scheme import Schemes logger = logging.getLogger(__name__) diff --git a/dvc/remote/slow_link_detection.py b/dvc/remote/slow_link_detection.py index bffa6e9e8..6c67fe0ff 100644 --- a/dvc/remote/slow_link_detection.py +++ b/dvc/remote/slow_link_detection.py @@ -1,9 +1,10 @@ import logging -import time import sys +import time from functools import wraps import colorama + from dvc.config import Config diff --git a/dvc/remote/ssh/__init__.py b/dvc/remote/ssh/__init__.py index 7230f016a..e8469f968 100644 --- a/dvc/remote/ssh/__init__.py +++ b/dvc/remote/ssh/__init__.py @@ -1,23 +1,25 @@ from __future__ import unicode_literals import errno -import itertools -import io -import os import getpass +import io +import itertools import logging +import os import threading from concurrent.futures import ThreadPoolExecutor -from contextlib import contextmanager, closing +from contextlib import closing +from contextlib import contextmanager import dvc.prompt as prompt from dvc.config import Config -from dvc.utils import to_chunks -from dvc.utils.compat import urlparse, StringIO -from dvc.remote.base import RemoteBASE -from dvc.scheme import Schemes -from dvc.remote.pool import get_connection from dvc.progress import Tqdm +from dvc.remote.base import RemoteBASE +from dvc.remote.pool import get_connection +from dvc.scheme import Schemes +from dvc.utils import to_chunks +from dvc.utils.compat import StringIO +from dvc.utils.compat import urlparse logger = logging.getLogger(__name__) diff --git a/dvc/remote/ssh/connection.py b/dvc/remote/ssh/connection.py index b2da0b67a..2d49e9355 100644 --- a/dvc/remote/ssh/connection.py +++ b/dvc/remote/ssh/connection.py @@ -1,8 +1,9 @@ +import errno +import logging import os import posixpath -import logging -import errno import stat + from funcy import cached_property try: diff --git a/dvc/repo/__init__.py b/dvc/repo/__init__.py index 017d7b4d4..19d862a24 100644 --- a/dvc/repo/__init__.py +++ b/dvc/repo/__init__.py @@ -1,26 +1,28 @@ from __future__ import unicode_literals -import os import logging +import os from contextlib import contextmanager +from functools import wraps from itertools import chain -from functools import wraps from funcy import cached_property +from .graph import check_acyclic +from .graph import get_pipeline +from .graph import get_pipelines +from .graph import get_stages from dvc.config import Config -from dvc.exceptions import ( - NotDvcRepoError, - OutputNotFoundError, - FileMissingError, -) +from dvc.exceptions import FileMissingError +from dvc.exceptions import NotDvcRepoError +from dvc.exceptions import OutputNotFoundError from dvc.ignore import DvcIgnoreFilter from dvc.path_info import PathInfo from dvc.remote.base import RemoteActionNotImplemented -from dvc.utils.compat import open as _open, fspath_py35, FileNotFoundError from dvc.utils import relpath - -from .graph import check_acyclic, get_pipeline, get_pipelines, get_stages +from dvc.utils.compat import FileNotFoundError +from dvc.utils.compat import fspath_py35 +from dvc.utils.compat import open as _open logger = logging.getLogger(__name__) diff --git a/dvc/repo/add.py b/dvc/repo/add.py index e81825b0a..85486c1f7 100644 --- a/dvc/repo/add.py +++ b/dvc/repo/add.py @@ -1,16 +1,18 @@ from __future__ import unicode_literals -import os import logging +import os + import colorama from six import string_types -from dvc.repo.scm_context import scm_context -from dvc.stage import Stage -from dvc.utils import walk_files, LARGE_DIR_SIZE +from . import locked from dvc.exceptions import RecursiveAddingWhileUsingFilename from dvc.progress import Tqdm -from . import locked +from dvc.repo.scm_context import scm_context +from dvc.stage import Stage +from dvc.utils import LARGE_DIR_SIZE +from dvc.utils import walk_files logger = logging.getLogger(__name__) diff --git a/dvc/repo/brancher.py b/dvc/repo/brancher.py index ce60fbd2f..9b01c91d6 100644 --- a/dvc/repo/brancher.py +++ b/dvc/repo/brancher.py @@ -1,4 +1,5 @@ from funcy import group_by + from dvc.scm.tree import WorkingTree diff --git a/dvc/repo/checkout.py b/dvc/repo/checkout.py index f753c1419..eda072321 100644 --- a/dvc/repo/checkout.py +++ b/dvc/repo/checkout.py @@ -2,7 +2,8 @@ from __future__ import unicode_literals import logging -from dvc.exceptions import CheckoutErrorSuggestGit, CheckoutError +from dvc.exceptions import CheckoutError +from dvc.exceptions import CheckoutErrorSuggestGit from dvc.progress import Tqdm diff --git a/dvc/repo/diff.py b/dvc/repo/diff.py index 32efe9880..8d42983a3 100644 --- a/dvc/repo/diff.py +++ b/dvc/repo/diff.py @@ -3,18 +3,14 @@ from __future__ import unicode_literals import os from errno import ENOENT - import dvc.logger as logger -from dvc.scm.base import FileNotInCommitError -from dvc.scm.git import ( - DIFF_A_TREE, - DIFF_B_TREE, - DIFF_A_REF, - DIFF_B_REF, - DIFF_EQUAL, -) - from . import locked +from dvc.scm.base import FileNotInCommitError +from dvc.scm.git import DIFF_A_REF +from dvc.scm.git import DIFF_A_TREE +from dvc.scm.git import DIFF_B_REF +from dvc.scm.git import DIFF_B_TREE +from dvc.scm.git import DIFF_EQUAL DIFF_TARGET = "target" diff --git a/dvc/repo/fetch.py b/dvc/repo/fetch.py index 95eba34b1..531fd4d53 100644 --- a/dvc/repo/fetch.py +++ b/dvc/repo/fetch.py @@ -2,11 +2,12 @@ from __future__ import unicode_literals import logging -from dvc.config import NoRemoteError -from dvc.exceptions import DownloadError, OutputNotFoundError -from dvc.scm.base import CloneError -from dvc.external_repo import external_repo from dvc.cache import NamedCache +from dvc.config import NoRemoteError +from dvc.exceptions import DownloadError +from dvc.exceptions import OutputNotFoundError +from dvc.external_repo import external_repo +from dvc.scm.base import CloneError logger = logging.getLogger(__name__) diff --git a/dvc/repo/gc.py b/dvc/repo/gc.py index a7f4f2ab3..8313f8feb 100644 --- a/dvc/repo/gc.py +++ b/dvc/repo/gc.py @@ -2,8 +2,8 @@ from __future__ import unicode_literals import logging -from dvc.cache import NamedCache from . import locked +from dvc.cache import NamedCache logger = logging.getLogger(__name__) diff --git a/dvc/repo/get.py b/dvc/repo/get.py index 9096216c9..3eb209d73 100644 --- a/dvc/repo/get.py +++ b/dvc/repo/get.py @@ -1,19 +1,19 @@ import logging import os + import shortuuid -from dvc.stage import Stage from dvc.config import Config -from dvc.exceptions import ( - NotDvcRepoError, - UrlNotDvcRepoError, - GetDVCFileError, - OutputNotFoundError, -) -from dvc.path_info import PathInfo +from dvc.exceptions import GetDVCFileError +from dvc.exceptions import NotDvcRepoError +from dvc.exceptions import OutputNotFoundError +from dvc.exceptions import UrlNotDvcRepoError from dvc.external_repo import external_repo +from dvc.path_info import PathInfo +from dvc.stage import Stage from dvc.state import StateNoop -from dvc.utils import remove, resolve_output +from dvc.utils import remove +from dvc.utils import resolve_output logger = logging.getLogger(__name__) diff --git a/dvc/repo/get_url.py b/dvc/repo/get_url.py index 8ba187865..fbc173b64 100644 --- a/dvc/repo/get_url.py +++ b/dvc/repo/get_url.py @@ -1,8 +1,7 @@ import os -import dvc.output as output import dvc.dependency as dependency - +import dvc.output as output from dvc.utils import resolve_output diff --git a/dvc/repo/imp_url.py b/dvc/repo/imp_url.py index 5888b7da9..d59659354 100644 --- a/dvc/repo/imp_url.py +++ b/dvc/repo/imp_url.py @@ -1,7 +1,6 @@ -from dvc.utils import resolve_output -from dvc.repo.scm_context import scm_context - from . import locked as locked_repo +from dvc.repo.scm_context import scm_context +from dvc.utils import resolve_output @locked_repo diff --git a/dvc/repo/init.py b/dvc/repo/init.py index e2f6b4702..fce49b7d7 100644 --- a/dvc/repo/init.py +++ b/dvc/repo/init.py @@ -1,13 +1,17 @@ -import os -import colorama import logging +import os -from dvc.repo import Repo -from dvc.scm import SCM, NoSCM +import colorama + +from dvc.analytics import Analytics from dvc.config import Config from dvc.exceptions import InitError -from dvc.utils import boxify, relpath, remove -from dvc.analytics import Analytics +from dvc.repo import Repo +from dvc.scm import NoSCM +from dvc.scm import SCM +from dvc.utils import boxify +from dvc.utils import relpath +from dvc.utils import remove logger = logging.getLogger(__name__) diff --git a/dvc/repo/metrics/modify.py b/dvc/repo/metrics/modify.py index a8baac8ae..4ddf18248 100644 --- a/dvc/repo/metrics/modify.py +++ b/dvc/repo/metrics/modify.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -from dvc.repo import locked from dvc.exceptions import DvcException +from dvc.repo import locked @locked diff --git a/dvc/repo/metrics/show.py b/dvc/repo/metrics/show.py index d61f98241..a2a12babc 100644 --- a/dvc/repo/metrics/show.py +++ b/dvc/repo/metrics/show.py @@ -1,16 +1,20 @@ from __future__ import unicode_literals -import errno -import os import csv +import errno import json import logging +import os from jsonpath_ng.ext import parse +from dvc.exceptions import NoMetricsError +from dvc.exceptions import OutputNotFoundError from dvc.repo import locked -from dvc.exceptions import OutputNotFoundError, NoMetricsError -from dvc.utils.compat import builtin_str, open, StringIO, csv_reader +from dvc.utils.compat import builtin_str +from dvc.utils.compat import csv_reader +from dvc.utils.compat import open +from dvc.utils.compat import StringIO NO_METRICS_FILE_AT_REFERENCE_WARNING = ( "Metrics file '{}' does not exist at the reference '{}'." diff --git a/dvc/repo/move.py b/dvc/repo/move.py index 6fa86eaa6..d67a14866 100644 --- a/dvc/repo/move.py +++ b/dvc/repo/move.py @@ -1,10 +1,9 @@ import os +from . import locked from dvc.exceptions import MoveNotDataSourceError from dvc.repo.scm_context import scm_context -from . import locked - def _expand_target_path(from_path, to_path): if os.path.isdir(to_path): diff --git a/dvc/repo/reproduce.py b/dvc/repo/reproduce.py index dd26d6df9..2eecd3d3a 100644 --- a/dvc/repo/reproduce.py +++ b/dvc/repo/reproduce.py @@ -2,13 +2,13 @@ from __future__ import unicode_literals import logging +from . import locked +from .graph import get_pipeline +from .graph import get_pipelines from dvc.exceptions import ReproductionError from dvc.repo.scm_context import scm_context from dvc.utils import relpath -from . import locked -from .graph import get_pipeline, get_pipelines - logger = logging.getLogger(__name__) diff --git a/dvc/repo/status.py b/dvc/repo/status.py index 9b6808b2e..6bb7dee52 100644 --- a/dvc/repo/status.py +++ b/dvc/repo/status.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import logging + from funcy.py3 import cat from . import locked diff --git a/dvc/scm/__init__.py b/dvc/scm/__init__.py index a1d823e77..ba6236bc6 100644 --- a/dvc/scm/__init__.py +++ b/dvc/scm/__init__.py @@ -1,5 +1,4 @@ """Manages source control systems(e.g. Git).""" - from __future__ import unicode_literals from dvc.scm.base import Base diff --git a/dvc/scm/base.py b/dvc/scm/base.py index e529745c2..4815e4abc 100644 --- a/dvc/scm/base.py +++ b/dvc/scm/base.py @@ -1,5 +1,4 @@ """Manages source control systems(e.g. Git) in dvc.""" - from __future__ import unicode_literals import os diff --git a/dvc/scm/git/__init__.py b/dvc/scm/git/__init__.py index fd4e7ad10..7ae51968b 100644 --- a/dvc/scm/git/__init__.py +++ b/dvc/scm/git/__init__.py @@ -1,24 +1,25 @@ """Manages Git.""" - from __future__ import unicode_literals -import os import logging +import os from funcy import cached_property from pathspec.patterns import GitWildMatchPattern from dvc.exceptions import GitHookAlreadyExistsError -from dvc.utils.compat import str, open, cast_bytes_py2 -from dvc.utils import fix_env, relpath, is_binary -from dvc.scm.base import ( - Base, - SCMError, - FileNotInRepoError, - CloneError, - RevError, -) +from dvc.scm.base import Base +from dvc.scm.base import CloneError +from dvc.scm.base import FileNotInRepoError +from dvc.scm.base import RevError +from dvc.scm.base import SCMError from dvc.scm.git.tree import GitTree +from dvc.utils import fix_env +from dvc.utils import is_binary +from dvc.utils import relpath +from dvc.utils.compat import cast_bytes_py2 +from dvc.utils.compat import open +from dvc.utils.compat import str logger = logging.getLogger(__name__) diff --git a/dvc/scm/git/tree.py b/dvc/scm/git/tree.py index 23653b251..0601c322d 100644 --- a/dvc/scm/git/tree.py +++ b/dvc/scm/git/tree.py @@ -1,11 +1,11 @@ import errno import os -from dvc.utils import relpath -from dvc.utils.compat import StringIO, BytesIO from dvc.exceptions import DvcException - from dvc.scm.tree import BaseTree +from dvc.utils import relpath +from dvc.utils.compat import BytesIO +from dvc.utils.compat import StringIO # see git-fast-import(1) diff --git a/dvc/stage.py b/dvc/stage.py index 94ec95c21..d408019dc 100644 --- a/dvc/stage.py +++ b/dvc/stage.py @@ -1,28 +1,33 @@ from __future__ import unicode_literals -from dvc.utils.compat import str - import copy -import re -import os -import subprocess import logging +import os +import re import signal +import subprocess import threading from itertools import chain -from dvc.utils import relpath -from dvc.utils.compat import pathlib -from dvc.utils.fs import contains_symlink_up_to -from schema import Schema, SchemaError, Optional, Or, And +from schema import And +from schema import Optional +from schema import Or +from schema import Schema +from schema import SchemaError -import dvc.prompt as prompt import dvc.dependency as dependency import dvc.output as output +import dvc.prompt as prompt from dvc.exceptions import DvcException -from dvc.utils import dict_md5, fix_env +from dvc.utils import dict_md5 +from dvc.utils import fix_env +from dvc.utils import relpath from dvc.utils.collections import apply_diff -from dvc.utils.stage import load_stage_fd, dump_stage_file +from dvc.utils.compat import pathlib +from dvc.utils.compat import str +from dvc.utils.fs import contains_symlink_up_to +from dvc.utils.stage import dump_stage_file +from dvc.utils.stage import load_stage_fd logger = logging.getLogger(__name__) diff --git a/dvc/state.py b/dvc/state.py index dacc07693..a7d6f733d 100644 --- a/dvc/state.py +++ b/dvc/state.py @@ -1,17 +1,23 @@ """Manages state database used for checksum caching.""" - from __future__ import unicode_literals +import logging import os import re import sqlite3 -import logging from dvc.config import Config -from dvc.utils import remove, current_timestamp, relpath, to_chunks from dvc.exceptions import DvcException -from dvc.utils.fs import get_mtime_and_size, get_inode -from dvc.utils.compat import fspath_py35, urlencode, urlunparse, is_py2 +from dvc.utils import current_timestamp +from dvc.utils import relpath +from dvc.utils import remove +from dvc.utils import to_chunks +from dvc.utils.compat import fspath_py35 +from dvc.utils.compat import is_py2 +from dvc.utils.compat import urlencode +from dvc.utils.compat import urlunparse +from dvc.utils.fs import get_inode +from dvc.utils.fs import get_mtime_and_size SQLITE_MAX_VARIABLES_NUMBER = 999 diff --git a/dvc/system.py b/dvc/system.py index eaa3deaf2..f2e23db95 100644 --- a/dvc/system.py +++ b/dvc/system.py @@ -1,9 +1,12 @@ from __future__ import unicode_literals -import os + import errno +import os import shutil -from dvc.utils.compat import str, open, fspath +from dvc.utils.compat import fspath +from dvc.utils.compat import open +from dvc.utils.compat import str class System(object): diff --git a/dvc/updater.py b/dvc/updater.py index 8b13754e8..a54b7a79a 100644 --- a/dvc/updater.py +++ b/dvc/updater.py @@ -1,15 +1,18 @@ from __future__ import unicode_literals -import sys -import os -import time import logging +import os +import sys +import time + import colorama from packaging import version from dvc import __version__ -from dvc.lock import Lock, LockError -from dvc.utils import boxify, env2bool +from dvc.lock import Lock +from dvc.lock import LockError +from dvc.utils import boxify +from dvc.utils import env2bool from dvc.utils.pkg import get_package_manager logger = logging.getLogger(__name__) diff --git a/dvc/utils/__init__.py b/dvc/utils/__init__.py index b0cb6b3ff..d8fd1fae1 100644 --- a/dvc/utils/__init__.py +++ b/dvc/utils/__init__.py @@ -1,34 +1,31 @@ """Helpers for other modules.""" - from __future__ import unicode_literals -from dvc.utils.compat import ( - str, - builtin_str, - open, - cast_bytes_py2, - StringIO, - fspath_py35, - fspath, - makedirs as _makedirs, -) - -import os -import sys -import stat -import math -import json import errno -import shutil import hashlib -import nanotime -import time -import colorama -import re +import json import logging +import math +import os +import re +import shutil +import stat +import sys +import time -from shortuuid import uuid +import colorama +import nanotime from ruamel.yaml import YAML +from shortuuid import uuid + +from dvc.utils.compat import builtin_str +from dvc.utils.compat import cast_bytes_py2 +from dvc.utils.compat import fspath +from dvc.utils.compat import fspath_py35 +from dvc.utils.compat import makedirs as _makedirs +from dvc.utils.compat import open +from dvc.utils.compat import str +from dvc.utils.compat import StringIO logger = logging.getLogger(__name__) diff --git a/dvc/utils/collections.py b/dvc/utils/collections.py index 2eb47ba76..e20ee6f1e 100644 --- a/dvc/utils/collections.py +++ b/dvc/utils/collections.py @@ -1,4 +1,6 @@ -from __future__ import absolute_import, unicode_literals +from __future__ import absolute_import +from __future__ import unicode_literals + from dvc.utils.compat import Mapping diff --git a/dvc/utils/compat.py b/dvc/utils/compat.py index 6ab98ea2a..7d66dd090 100644 --- a/dvc/utils/compat.py +++ b/dvc/utils/compat.py @@ -1,9 +1,9 @@ """Handle import compatibility between Python 2 and Python 3""" from __future__ import absolute_import -import sys -import os import errno +import os +import sys from contextlib import contextmanager # Syntax sugar. diff --git a/dvc/utils/fs.py b/dvc/utils/fs.py index 6ded4cefd..572423544 100644 --- a/dvc/utils/fs.py +++ b/dvc/utils/fs.py @@ -1,13 +1,16 @@ from __future__ import unicode_literals -import os import errno -import nanotime import logging +import os + +import nanotime from dvc.exceptions import DvcException from dvc.system import System -from dvc.utils import dict_md5, walk_files, fspath_py35 +from dvc.utils import dict_md5 +from dvc.utils import fspath_py35 +from dvc.utils import walk_files from dvc.utils.compat import str diff --git a/dvc/utils/http.py b/dvc/utils/http.py index b714a1767..f478345d1 100644 --- a/dvc/utils/http.py +++ b/dvc/utils/http.py @@ -1,5 +1,5 @@ -from contextlib import contextmanager import io +from contextlib import contextmanager from dvc.utils.compat import FileNotFoundError diff --git a/dvc/utils/stage.py b/dvc/utils/stage.py index e88f3c2b0..7d5eb8116 100644 --- a/dvc/utils/stage.py +++ b/dvc/utils/stage.py @@ -1,9 +1,8 @@ -from dvc.utils.compat import open - -from ruamel.yaml.error import YAMLError from ruamel.yaml import YAML +from ruamel.yaml.error import YAMLError from dvc.exceptions import StageFileCorruptedError +from dvc.utils.compat import open def load_stage_file(path): diff --git a/fastentrypoints.py b/fastentrypoints.py index 932500886..b70ee94fd 100644 --- a/fastentrypoints.py +++ b/fastentrypoints.py @@ -36,9 +36,10 @@ This is better. (c) 2016, Aaron Christianson http://github.com/ninjaaron/fast-entry_points """ -from setuptools.command import easy_install import re +from setuptools.command import easy_install + TEMPLATE = r""" # -*- coding: utf-8 -*- # EASY-INSTALL-ENTRY-SCRIPT: '{3}','{4}','{5}' diff --git a/scripts/ci/check_patch.sh b/scripts/ci/check_patch.sh index 7268ccf2a..0ee8f8302 100755 --- a/scripts/ci/check_patch.sh +++ b/scripts/ci/check_patch.sh @@ -3,11 +3,10 @@ set -x set -e -pip install Pygments collective.checkdocs flake8 'black==19.3b0' +pip install Pygments collective.checkdocs pre-commit # stop the build if there are any readme formatting errors python setup.py checkdocs -# stop the build if there are any black or flake8 errors -black ./ --check -flake8 ./ +# stop the build if there are any formatting errors +pre-commit run --all-files diff --git a/scripts/hooks/hook-Crypto.py b/scripts/hooks/hook-Crypto.py index 1b31460bb..1be95a592 100644 --- a/scripts/hooks/hook-Crypto.py +++ b/scripts/hooks/hook-Crypto.py @@ -6,7 +6,6 @@ # # The full license is in the file COPYING.txt, distributed with this software. # ----------------------------------------------------------------------------- - """ Hook for PyCryptodome library: https://pypi.python.org/pypi/pycryptodome @@ -27,9 +26,8 @@ triggered also when PyCrypto is installed, so it must be tested with both. Tested with PyCryptodome 3.5.1, PyCrypto 2.6.1, Python 2.7 & 3.6, Fedora & Windows """ - -import os import glob +import os from PyInstaller.compat import EXTENSION_SUFFIXES from PyInstaller.utils.hooks import get_module_file_attribute diff --git a/setup.py b/setup.py index 6817b8dea..195830b81 100644 --- a/setup.py +++ b/setup.py @@ -1,12 +1,15 @@ -from setuptools import setup, find_packages -from setuptools.command.build_py import build_py as _build_py import os import sys +from setuptools import find_packages +from setuptools import setup +from setuptools.command.build_py import build_py as _build_py + +import fastentrypoints # noqa: F401 + # Prevents pkg_resources import in entry point script, # see https://github.com/ninjaaron/fast-entry_points. # This saves about 200 ms on startup time for non-wheel installs. -import fastentrypoints # noqa: F401 # https://packaging.python.org/guides/single-sourcing-package-version/ diff --git a/tests/basic_env.py b/tests/basic_env.py index 5afba2c3c..ae80d60e5 100644 --- a/tests/basic_env.py +++ b/tests/basic_env.py @@ -1,21 +1,21 @@ # encoding: utf-8 - from __future__ import unicode_literals -import os -import shortuuid -import tempfile import logging +import os +import tempfile import warnings +from unittest import TestCase +import pytest +import shortuuid from git import Repo from git.exc import GitCommandNotFound -from unittest import TestCase -import pytest from dvc.repo import Repo as DvcRepo -from dvc.utils.compat import open, str from dvc.utils import remove +from dvc.utils.compat import open +from dvc.utils.compat import str logger = logging.getLogger("dvc") diff --git a/tests/conftest.py b/tests/conftest.py index 9ca00335f..0cdb204b8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,15 +1,19 @@ from __future__ import unicode_literals + +import os + import mockssh import pytest -import os from git import Repo from git.exc import GitCommandNotFound +from .basic_env import TestDirFixture +from .basic_env import TestDvcGitFixture +from .basic_env import TestGitFixture from dvc.remote.config import RemoteConfig -from dvc.utils.compat import cast_bytes_py2 from dvc.remote.ssh.connection import SSHConnection from dvc.repo import Repo as DvcRepo -from .basic_env import TestDirFixture, TestDvcGitFixture, TestGitFixture +from dvc.utils.compat import cast_bytes_py2 # Prevent updater and analytics from running their processes os.environ[cast_bytes_py2("DVC_TEST")] = cast_bytes_py2("true") diff --git a/tests/func/test_add.py b/tests/func/test_add.py index 3c5fa59a1..2906403ac 100644 --- a/tests/func/test_add.py +++ b/tests/func/test_add.py @@ -1,36 +1,34 @@ from __future__ import unicode_literals -import os - -import pytest - -import dvc -import time -import shutil import filecmp -import posixpath import logging -import colorama +import os +import posixpath +import shutil +import time -from dvc.remote import RemoteLOCAL -from dvc.system import System +import colorama +import pytest from mock import patch +import dvc +from dvc.exceptions import DvcException +from dvc.exceptions import RecursiveAddingWhileUsingFilename +from dvc.exceptions import StageFileCorruptedError from dvc.main import main -from dvc.utils import file_md5, LARGE_DIR_SIZE, relpath -from dvc.utils.stage import load_stage_file -from dvc.utils.compat import range -from dvc.stage import Stage -from dvc.exceptions import ( - DvcException, - RecursiveAddingWhileUsingFilename, - StageFileCorruptedError, -) from dvc.output.base import OutputAlreadyTrackedError +from dvc.remote import RemoteLOCAL from dvc.repo import Repo as DvcRepo - +from dvc.stage import Stage +from dvc.system import System +from dvc.utils import file_md5 +from dvc.utils import LARGE_DIR_SIZE +from dvc.utils import relpath +from dvc.utils.compat import range +from dvc.utils.stage import load_stage_file from tests.basic_env import TestDvc -from tests.utils import spy, get_gitignore_content +from tests.utils import get_gitignore_content +from tests.utils import spy class TestAdd(TestDvc): diff --git a/tests/func/test_analytics.py b/tests/func/test_analytics.py index 364023ed7..b8af2367b 100644 --- a/tests/func/test_analytics.py +++ b/tests/func/test_analytics.py @@ -1,10 +1,13 @@ import os + import mock import requests -from dvc.main import main from dvc.analytics import Analytics -from tests.basic_env import TestDvc, TestGit, TestDir +from dvc.main import main +from tests.basic_env import TestDir +from tests.basic_env import TestDvc +from tests.basic_env import TestGit def _clean_getenv(key, default=None): diff --git a/tests/func/test_api.py b/tests/func/test_api.py index 70e36c3ec..3ba71ea46 100644 --- a/tests/func/test_api.py +++ b/tests/func/test_api.py @@ -1,28 +1,26 @@ import os - -import pytest import shutil +import pytest + +from .test_data_cloud import _should_test_aws +from .test_data_cloud import _should_test_azure +from .test_data_cloud import _should_test_gcp +from .test_data_cloud import _should_test_hdfs +from .test_data_cloud import _should_test_oss +from .test_data_cloud import _should_test_ssh +from .test_data_cloud import get_aws_url +from .test_data_cloud import get_azure_url +from .test_data_cloud import get_gcp_url +from .test_data_cloud import get_hdfs_url +from .test_data_cloud import get_local_url +from .test_data_cloud import get_oss_url +from .test_data_cloud import get_ssh_url from dvc import api from dvc.exceptions import FileMissingError from dvc.main import main from dvc.path_info import URLInfo from dvc.remote.config import RemoteConfig -from .test_data_cloud import ( - get_local_url, - _should_test_aws, - get_aws_url, - _should_test_gcp, - get_gcp_url, - _should_test_azure, - get_azure_url, - _should_test_oss, - get_oss_url, - _should_test_ssh, - get_ssh_url, - _should_test_hdfs, - get_hdfs_url, -) # NOTE: staticmethod is only needed in Python 2 diff --git a/tests/func/test_cache.py b/tests/func/test_cache.py index 9c9673573..0943df7fe 100644 --- a/tests/func/test_cache.py +++ b/tests/func/test_cache.py @@ -1,14 +1,15 @@ import os import stat -import pytest + import configobj +import pytest from dvc.cache import Cache from dvc.main import main from dvc.remote.base import DirCacheError from dvc.utils import relpath - -from tests.basic_env import TestDvc, TestDir +from tests.basic_env import TestDir +from tests.basic_env import TestDvc class TestCache(TestDvc): diff --git a/tests/func/test_checkout.py b/tests/func/test_checkout.py index dd32075a6..162dc800d 100644 --- a/tests/func/test_checkout.py +++ b/tests/func/test_checkout.py @@ -1,30 +1,31 @@ +import collections +import filecmp +import logging import os import shutil -import filecmp -import collections -import logging import pytest - -from dvc.main import main -from dvc.repo import Repo as DvcRepo -from dvc.system import System -from dvc.utils import walk_files, relpath -from dvc.utils.stage import load_stage_file, dump_stage_file -from dvc.utils.compat import is_py2 -from tests.basic_env import TestDvc, TestDvcGit -from tests.func.test_repro import TestRepro -from dvc.stage import Stage, StageFileBadNameError, StageFileDoesNotExistError -from dvc.remote.local import RemoteLOCAL -from dvc.exceptions import ( - DvcException, - ConfirmRemoveError, - CheckoutErrorSuggestGit, - CheckoutError, -) - from mock import patch +from dvc.exceptions import CheckoutError +from dvc.exceptions import CheckoutErrorSuggestGit +from dvc.exceptions import ConfirmRemoveError +from dvc.exceptions import DvcException +from dvc.main import main +from dvc.remote.local import RemoteLOCAL +from dvc.repo import Repo as DvcRepo +from dvc.stage import Stage +from dvc.stage import StageFileBadNameError +from dvc.stage import StageFileDoesNotExistError +from dvc.system import System +from dvc.utils import relpath +from dvc.utils import walk_files +from dvc.utils.compat import is_py2 +from dvc.utils.stage import dump_stage_file +from dvc.utils.stage import load_stage_file +from tests.basic_env import TestDvc +from tests.basic_env import TestDvcGit +from tests.func.test_repro import TestRepro from tests.utils import spy logger = logging.getLogger("dvc") diff --git a/tests/func/test_cli.py b/tests/func/test_cli.py index e823fa810..d7a4d0f45 100644 --- a/tests/func/test_cli.py +++ b/tests/func/test_cli.py @@ -1,19 +1,19 @@ import os from dvc.cli import parse_args -from dvc.command.init import CmdInit -from dvc.command.run import CmdRun -from dvc.command.data_sync import CmdDataPull, CmdDataPush -from dvc.command.status import CmdDataStatus -from dvc.command.repro import CmdRepro from dvc.command.add import CmdAdd -from dvc.command.remove import CmdRemove -from dvc.command.gc import CmdGC -from dvc.command.config import CmdConfig -from dvc.command.checkout import CmdCheckout -from dvc.exceptions import DvcException from dvc.command.base import CmdBase - +from dvc.command.checkout import CmdCheckout +from dvc.command.config import CmdConfig +from dvc.command.data_sync import CmdDataPull +from dvc.command.data_sync import CmdDataPush +from dvc.command.gc import CmdGC +from dvc.command.init import CmdInit +from dvc.command.remove import CmdRemove +from dvc.command.repro import CmdRepro +from dvc.command.run import CmdRun +from dvc.command.status import CmdDataStatus +from dvc.exceptions import DvcException from tests.basic_env import TestDvc diff --git a/tests/func/test_commit.py b/tests/func/test_commit.py index 2ec74a185..9bc97ed68 100644 --- a/tests/func/test_commit.py +++ b/tests/func/test_commit.py @@ -1,7 +1,8 @@ import pytest -from dvc.utils.stage import load_stage_file, dump_stage_file from dvc.stage import StageCommitError +from dvc.utils.stage import dump_stage_file +from dvc.utils.stage import load_stage_file def test_commit_recursive(dvc_repo, repo_dir): diff --git a/tests/func/test_data_cloud.py b/tests/func/test_data_cloud.py index 6ceeb07bb..6eb94d7ea 100644 --- a/tests/func/test_data_cloud.py +++ b/tests/func/test_data_cloud.py @@ -1,37 +1,38 @@ -from subprocess import CalledProcessError -from subprocess import check_output, Popen -from unittest import SkipTest -import os -import uuid -import shutil -import getpass -import platform import copy +import getpass import logging -import pytest +import os +import platform +import shutil +import uuid +from subprocess import CalledProcessError +from subprocess import check_output +from subprocess import Popen +from unittest import SkipTest +import pytest from mock import patch -from dvc.utils.compat import str -from dvc.utils import env2bool -from dvc.main import main -from dvc.config import Config from dvc.cache import NamedCache +from dvc.config import Config from dvc.data_cloud import DataCloud -from dvc.remote import ( - RemoteS3, - RemoteGS, - RemoteAZURE, - RemoteOSS, - RemoteLOCAL, - RemoteSSH, - RemoteHDFS, - RemoteHTTP, -) -from dvc.remote.base import STATUS_OK, STATUS_NEW, STATUS_DELETED +from dvc.main import main +from dvc.remote import RemoteAZURE +from dvc.remote import RemoteGS +from dvc.remote import RemoteHDFS +from dvc.remote import RemoteHTTP +from dvc.remote import RemoteLOCAL +from dvc.remote import RemoteOSS +from dvc.remote import RemoteS3 +from dvc.remote import RemoteSSH +from dvc.remote.base import STATUS_DELETED +from dvc.remote.base import STATUS_NEW +from dvc.remote.base import STATUS_OK +from dvc.utils import env2bool from dvc.utils import file_md5 -from dvc.utils.stage import load_stage_file, dump_stage_file - +from dvc.utils.compat import str +from dvc.utils.stage import dump_stage_file +from dvc.utils.stage import load_stage_file from tests.basic_env import TestDvc from tests.utils import spy diff --git a/tests/func/test_dependency.py b/tests/func/test_dependency.py index 67cd21539..941960ef6 100644 --- a/tests/func/test_dependency.py +++ b/tests/func/test_dependency.py @@ -1,10 +1,12 @@ from __future__ import unicode_literals + import copy + import pytest +from dvc.dependency import _get +from dvc.dependency import DEP_MAP from dvc.stage import Stage -from dvc.dependency import _get, DEP_MAP - from tests.func.test_output import TESTS as OUT_TESTS diff --git a/tests/func/test_diff.py b/tests/func/test_diff.py index 799b95c1e..72b425c6e 100644 --- a/tests/func/test_diff.py +++ b/tests/func/test_diff.py @@ -2,9 +2,9 @@ from __future__ import unicode_literals import os +import dvc.repo.diff as diff from dvc.main import main from dvc.scm.base import FileNotInCommitError -import dvc.repo.diff as diff from tests.basic_env import TestDvcGit diff --git a/tests/func/test_external_repo.py b/tests/func/test_external_repo.py index da2ad7059..1cdbdfec0 100644 --- a/tests/func/test_external_repo.py +++ b/tests/func/test_external_repo.py @@ -1,4 +1,5 @@ import os + from mock import patch from dvc.external_repo import external_repo diff --git a/tests/func/test_gc.py b/tests/func/test_gc.py index efcf29a7b..df746e2b8 100644 --- a/tests/func/test_gc.py +++ b/tests/func/test_gc.py @@ -1,18 +1,17 @@ from __future__ import unicode_literals + import os -import pytest import configobj - +import pytest from git import Repo -from dvc.utils.compat import pathlib +from dvc.exceptions import CollectCacheError from dvc.main import main from dvc.repo import Repo as DvcRepo -from dvc.exceptions import CollectCacheError - -from tests.basic_env import TestDvcGit +from dvc.utils.compat import pathlib from tests.basic_env import TestDir +from tests.basic_env import TestDvcGit class TestGC(TestDvcGit): diff --git a/tests/func/test_get.py b/tests/func/test_get.py index a52b0b582..2dcba2ba8 100644 --- a/tests/func/test_get.py +++ b/tests/func/test_get.py @@ -1,14 +1,14 @@ from __future__ import unicode_literals -import os import filecmp +import os import pytest -from dvc.exceptions import UrlNotDvcRepoError, GetDVCFileError +from dvc.exceptions import GetDVCFileError +from dvc.exceptions import UrlNotDvcRepoError from dvc.repo import Repo from dvc.utils import makedirs - from tests.utils import trees_equal diff --git a/tests/func/test_get_url.py b/tests/func/test_get_url.py index eae2b556e..39cb0ec44 100644 --- a/tests/func/test_get_url.py +++ b/tests/func/test_get_url.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals -import os import filecmp +import os import pytest diff --git a/tests/func/test_import.py b/tests/func/test_import.py index 4fe8857aa..10d4b3e37 100644 --- a/tests/func/test_import.py +++ b/tests/func/test_import.py @@ -1,16 +1,16 @@ from __future__ import unicode_literals -import os import filecmp +import os import shutil import pytest from mock import patch -from tests.utils import trees_equal +from dvc.exceptions import DownloadError from dvc.stage import Stage from dvc.utils import makedirs -from dvc.exceptions import DownloadError +from tests.utils import trees_equal def test_import(repo_dir, git, dvc_repo, erepo): diff --git a/tests/func/test_import_url.py b/tests/func/test_import_url.py index e94390f64..6f8fa47b4 100644 --- a/tests/func/test_import_url.py +++ b/tests/func/test_import_url.py @@ -1,17 +1,16 @@ from __future__ import unicode_literals +import filecmp import os from uuid import uuid4 import pytest -import filecmp from mock import patch import dvc from dvc.main import main from dvc.utils import makedirs from dvc.utils.compat import str - from tests.basic_env import TestDvc from tests.utils import spy diff --git a/tests/func/test_init.py b/tests/func/test_init.py index f9889f7cd..1b49276be 100644 --- a/tests/func/test_init.py +++ b/tests/func/test_init.py @@ -1,10 +1,10 @@ import os +from dvc.exceptions import InitError from dvc.main import main from dvc.repo import Repo as DvcRepo -from dvc.exceptions import InitError - -from tests.basic_env import TestGit, TestDir +from tests.basic_env import TestDir +from tests.basic_env import TestGit class TestInit(TestGit): diff --git a/tests/func/test_install.py b/tests/func/test_install.py index 73afdf28c..1a13dc591 100644 --- a/tests/func/test_install.py +++ b/tests/func/test_install.py @@ -4,10 +4,9 @@ import sys import pytest from dvc.exceptions import GitHookAlreadyExistsError -from dvc.utils import file_md5 - from dvc.main import main from dvc.stage import Stage +from dvc.utils import file_md5 @pytest.mark.skipif( diff --git a/tests/func/test_lock.py b/tests/func/test_lock.py index ad04f22ed..ccf71fedf 100644 --- a/tests/func/test_lock.py +++ b/tests/func/test_lock.py @@ -1,9 +1,8 @@ import os +from dvc.lock import Lock from dvc.lock import LockError from dvc.main import main -from dvc.lock import Lock - from tests.basic_env import TestDvc diff --git a/tests/func/test_metrics.py b/tests/func/test_metrics.py index 9f0b2a00f..dc1ef19ac 100644 --- a/tests/func/test_metrics.py +++ b/tests/func/test_metrics.py @@ -1,13 +1,14 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -import os import json import logging +import os -from dvc.repo import Repo as DvcRepo +from dvc.exceptions import DvcException +from dvc.exceptions import NoMetricsError from dvc.main import main -from dvc.exceptions import DvcException, NoMetricsError +from dvc.repo import Repo as DvcRepo from dvc.repo.metrics.show import NO_METRICS_FILE_AT_REFERENCE_WARNING from dvc.stage import Stage from dvc.utils import relpath diff --git a/tests/func/test_move.py b/tests/func/test_move.py index 83484e542..eef8a603c 100644 --- a/tests/func/test_move.py +++ b/tests/func/test_move.py @@ -1,11 +1,12 @@ import os +from dvc.exceptions import DvcException +from dvc.exceptions import MoveNotDataSourceError from dvc.main import main -from dvc.exceptions import DvcException, MoveNotDataSourceError from dvc.stage import Stage from dvc.utils.stage import load_stage_file - -from tests.basic_env import TestDvc, TestDvcGit +from tests.basic_env import TestDvc +from tests.basic_env import TestDvcGit from tests.func.test_repro import TestRepro from tests.utils import cd diff --git a/tests/func/test_output.py b/tests/func/test_output.py index 20764ea9f..19744db32 100644 --- a/tests/func/test_output.py +++ b/tests/func/test_output.py @@ -3,8 +3,9 @@ import sys import pytest +from dvc.output import _get +from dvc.output import OUTS_MAP from dvc.stage import Stage -from dvc.output import _get, OUTS_MAP TESTS = [ diff --git a/tests/func/test_pipeline.py b/tests/func/test_pipeline.py index a9bac3780..c1de332d5 100644 --- a/tests/func/test_pipeline.py +++ b/tests/func/test_pipeline.py @@ -1,9 +1,9 @@ import logging from dvc.main import main - from tests.basic_env import TestDvc -from tests.func.test_repro import TestRepro, TestReproChangedDeepData +from tests.func.test_repro import TestRepro +from tests.func.test_repro import TestReproChangedDeepData class TestPipelineShowSingle(TestDvc): diff --git a/tests/func/test_remote.py b/tests/func/test_remote.py index af9d041cf..f589eb234 100644 --- a/tests/func/test_remote.py +++ b/tests/func/test_remote.py @@ -1,17 +1,17 @@ import os -import configobj import shutil + +import configobj from mock import patch -from dvc.main import main +from .test_data_cloud import get_local_url from dvc.config import Config -from dvc.remote.base import RemoteBASE -from dvc.remote import RemoteLOCAL +from dvc.main import main from dvc.path_info import PathInfo - +from dvc.remote import RemoteLOCAL +from dvc.remote.base import RemoteBASE from tests.basic_env import TestDvc from tests.func.test_data_cloud import get_local_storagepath -from .test_data_cloud import get_local_url class TestRemote(TestDvc): diff --git a/tests/func/test_remove.py b/tests/func/test_remove.py index beab5c2b5..b55b837d4 100644 --- a/tests/func/test_remove.py +++ b/tests/func/test_remove.py @@ -1,14 +1,15 @@ import os import shutil -from dvc.main import main -from dvc.system import System -from dvc.stage import Stage, StageFileDoesNotExistError -from dvc.exceptions import DvcException - -from tests.basic_env import TestDvc from mock import patch +from dvc.exceptions import DvcException +from dvc.main import main +from dvc.stage import Stage +from dvc.stage import StageFileDoesNotExistError +from dvc.system import System +from tests.basic_env import TestDvc + class TestRemove(TestDvc): def test(self): diff --git a/tests/func/test_repo.py b/tests/func/test_repo.py index f1f24d2a6..2bf2340b0 100644 --- a/tests/func/test_repo.py +++ b/tests/func/test_repo.py @@ -1,11 +1,10 @@ from dvc.ignore import DvcIgnore from dvc.main import main from dvc.repo import Repo -from dvc.stage import Stage -from tests.basic_env import TestDvcGit - from dvc.scm.git import GitTree from dvc.scm.tree import WorkingTree +from dvc.stage import Stage +from tests.basic_env import TestDvcGit class TestCollect(TestDvcGit): diff --git a/tests/func/test_repro.py b/tests/func/test_repro.py index f75edce04..68883dd4f 100644 --- a/tests/func/test_repro.py +++ b/tests/func/test_repro.py @@ -1,43 +1,49 @@ from __future__ import unicode_literals -from dvc.utils.compat import str, urljoin, pathlib -import os -import re -import shutil import filecmp import getpass +import os import posixpath -from subprocess import Popen, PIPE +import re +import shutil +import uuid +from subprocess import PIPE +from subprocess import Popen import boto3 -import uuid import paramiko -from google.cloud import storage as gc -from flaky.flaky_decorator import flaky import pytest +from flaky.flaky_decorator import flaky +from google.cloud import storage as gc +from mock import patch +from dvc.exceptions import CyclicGraphError +from dvc.exceptions import ReproductionError +from dvc.exceptions import StagePathAsOutputError from dvc.main import main -from dvc.repo import Repo as DvcRepo -from dvc.utils import file_md5, relpath -from dvc.utils.stage import load_stage_file, dump_stage_file +from dvc.output.base import OutputBase from dvc.path_info import URLInfo from dvc.remote.local import RemoteLOCAL -from dvc.stage import Stage, StageFileDoesNotExistError +from dvc.repo import Repo as DvcRepo +from dvc.stage import Stage +from dvc.stage import StageFileDoesNotExistError from dvc.system import System -from dvc.output.base import OutputBase -from dvc.exceptions import ( - CyclicGraphError, - StagePathAsOutputError, - ReproductionError, -) - +from dvc.utils import file_md5 +from dvc.utils import relpath +from dvc.utils.compat import pathlib +from dvc.utils.compat import str +from dvc.utils.compat import urljoin +from dvc.utils.stage import dump_stage_file +from dvc.utils.stage import load_stage_file from tests.basic_env import TestDvc -from tests.func.test_data_cloud import _should_test_aws, TEST_AWS_REPO_BUCKET -from tests.func.test_data_cloud import _should_test_gcp, TEST_GCP_REPO_BUCKET -from tests.func.test_data_cloud import _should_test_ssh, _should_test_hdfs +from tests.func.test_data_cloud import _should_test_aws +from tests.func.test_data_cloud import _should_test_gcp +from tests.func.test_data_cloud import _should_test_hdfs +from tests.func.test_data_cloud import _should_test_ssh from tests.func.test_data_cloud import get_ssh_url +from tests.func.test_data_cloud import TEST_AWS_REPO_BUCKET +from tests.func.test_data_cloud import TEST_GCP_REPO_BUCKET from tests.utils.httpd import StaticFileServer -from mock import patch class TestRepro(TestDvc): diff --git a/tests/func/test_run.py b/tests/func/test_run.py index dabaa419e..7d9a51f29 100644 --- a/tests/func/test_run.py +++ b/tests/func/test_run.py @@ -1,32 +1,33 @@ +import filecmp +import logging import os +import shutil import uuid -import logging import mock -import shutil -import filecmp import pytest from dvc.dependency.base import DependencyIsStageFileError +from dvc.exceptions import ArgumentDuplicationError +from dvc.exceptions import CircularDependencyError +from dvc.exceptions import CyclicGraphError +from dvc.exceptions import OutputDuplicationError +from dvc.exceptions import OverlappingOutputPathsError +from dvc.exceptions import StagePathAsOutputError from dvc.main import main from dvc.output import OutputBase from dvc.output.base import OutputIsStageFileError from dvc.repo import Repo as DvcRepo +from dvc.stage import MissingDep +from dvc.stage import Stage +from dvc.stage import StageFileAlreadyExistsError +from dvc.stage import StageFileBadNameError +from dvc.stage import StagePathNotDirectoryError +from dvc.stage import StagePathNotFoundError +from dvc.stage import StagePathOutsideError +from dvc.system import System from dvc.utils import file_md5 from dvc.utils.stage import load_stage_file -from dvc.system import System -from dvc.stage import Stage, StagePathNotFoundError, StagePathNotDirectoryError -from dvc.stage import StageFileBadNameError, MissingDep -from dvc.stage import StagePathOutsideError, StageFileAlreadyExistsError -from dvc.exceptions import ( - OutputDuplicationError, - CircularDependencyError, - CyclicGraphError, - ArgumentDuplicationError, - StagePathAsOutputError, - OverlappingOutputPathsError, -) - from tests.basic_env import TestDvc diff --git a/tests/func/test_s3.py b/tests/func/test_s3.py index 9cead965f..7a58f9c52 100644 --- a/tests/func/test_s3.py +++ b/tests/func/test_s3.py @@ -1,8 +1,8 @@ -import boto3 - -from moto import mock_s3 from functools import wraps + +import boto3 import moto.s3.models as s3model +from moto import mock_s3 from dvc.remote.s3 import RemoteS3 from tests.func.test_data_cloud import get_aws_url diff --git a/tests/func/test_scm.py b/tests/func/test_scm.py index 6c8d60276..3c3c8e84b 100644 --- a/tests/func/test_scm.py +++ b/tests/func/test_scm.py @@ -4,11 +4,14 @@ import os from git import Repo +from dvc.scm import Git +from dvc.scm import NoSCM +from dvc.scm import SCM from dvc.system import System from dvc.utils.compat import str # noqa: F401 -from dvc.scm import SCM, NoSCM, Git - -from tests.basic_env import TestDir, TestGit, TestGitSubmodule +from tests.basic_env import TestDir +from tests.basic_env import TestGit +from tests.basic_env import TestGitSubmodule from tests.utils import get_gitignore_content diff --git a/tests/func/test_stage.py b/tests/func/test_stage.py index 4d4a92795..b87a32d76 100644 --- a/tests/func/test_stage.py +++ b/tests/func/test_stage.py @@ -1,12 +1,13 @@ -import tempfile import os +import tempfile from dvc.main import main from dvc.output.local import OutputLOCAL from dvc.remote.local import RemoteLOCAL -from dvc.stage import Stage, StageFileFormatError -from dvc.utils.stage import load_stage_file, dump_stage_file - +from dvc.stage import Stage +from dvc.stage import StageFileFormatError +from dvc.utils.stage import dump_stage_file +from dvc.utils.stage import load_stage_file from tests.basic_env import TestDvc diff --git a/tests/func/test_state.py b/tests/func/test_state.py index 5ea87fc1e..d0c6d1c3f 100644 --- a/tests/func/test_state.py +++ b/tests/func/test_state.py @@ -1,12 +1,12 @@ import os + import mock -from dvc.utils.compat import str - -from dvc.state import State -from dvc.utils import file_md5 from dvc.main import main from dvc.path_info import PathInfo +from dvc.state import State +from dvc.utils import file_md5 +from dvc.utils.compat import str def test_state(dvc_repo, repo_dir): diff --git a/tests/func/test_status.py b/tests/func/test_status.py index d164ab70d..e4de03852 100644 --- a/tests/func/test_status.py +++ b/tests/func/test_status.py @@ -1,10 +1,10 @@ import os -from dvc.main import main - -from tests.basic_env import TestDvc from mock import patch +from dvc.main import main +from tests.basic_env import TestDvc + class TestStatus(TestDvc): def test_quiet(self): diff --git a/tests/func/test_system.py b/tests/func/test_system.py index 867825282..e71247549 100644 --- a/tests/func/test_system.py +++ b/tests/func/test_system.py @@ -1,4 +1,5 @@ import os + import pytest from dvc.system import System diff --git a/tests/func/test_tag.py b/tests/func/test_tag.py index cd675a8d4..13b67bd03 100644 --- a/tests/func/test_tag.py +++ b/tests/func/test_tag.py @@ -1,11 +1,10 @@ -import os -import shutil import filecmp import logging +import os +import shutil from dvc.main import main from dvc.utils import from_yaml_string - from tests.basic_env import TestDvc diff --git a/tests/func/test_tree.py b/tests/func/test_tree.py index 9cc771480..8b351f757 100644 --- a/tests/func/test_tree.py +++ b/tests/func/test_tree.py @@ -1,5 +1,4 @@ # encoding: utf-8 - from __future__ import unicode_literals from os.path import join @@ -8,8 +7,9 @@ from dvc.ignore import DvcIgnoreFilter from dvc.scm import SCM from dvc.scm.git import GitTree from dvc.scm.tree import WorkingTree - -from tests.basic_env import TestDir, TestGit, TestGitSubmodule +from tests.basic_env import TestDir +from tests.basic_env import TestGit +from tests.basic_env import TestGitSubmodule class TestWorkingTree(TestDir): diff --git a/tests/func/test_unprotect.py b/tests/func/test_unprotect.py index 27780bddc..5e504b214 100644 --- a/tests/func/test_unprotect.py +++ b/tests/func/test_unprotect.py @@ -2,7 +2,6 @@ import os import stat from dvc.main import main - from tests.basic_env import TestDvc diff --git a/tests/func/test_update.py b/tests/func/test_update.py index cbd48a415..888bea929 100644 --- a/tests/func/test_update.py +++ b/tests/func/test_update.py @@ -1,9 +1,9 @@ +import filecmp import os import shutil -import filecmp -from dvc.repo import Repo from dvc.external_repo import clean_repos +from dvc.repo import Repo def test_update_import(dvc_repo, erepo): diff --git a/tests/func/test_updater.py b/tests/func/test_updater.py index fd92729c0..bef364bbf 100644 --- a/tests/func/test_updater.py +++ b/tests/func/test_updater.py @@ -1,4 +1,5 @@ import os + import mock import pytest diff --git a/tests/func/test_utils.py b/tests/func/test_utils.py index 1baf49c22..73f489e25 100644 --- a/tests/func/test_utils.py +++ b/tests/func/test_utils.py @@ -1,6 +1,6 @@ +import filecmp import os import shutil -import filecmp from dvc import utils from tests.basic_env import TestDvc diff --git a/tests/func/test_version.py b/tests/func/test_version.py index 7bb80bb2b..97bb257bc 100644 --- a/tests/func/test_version.py +++ b/tests/func/test_version.py @@ -1,8 +1,9 @@ import re + import pytest -from dvc.main import main from dvc.command.version import psutil +from dvc.main import main def test_info_in_repo(repo_dir, dvc_repo, caplog): diff --git a/tests/unit/command/test_imp_url.py b/tests/unit/command/test_imp_url.py index 50cb6e5bd..8858188f6 100644 --- a/tests/unit/command/test_imp_url.py +++ b/tests/unit/command/test_imp_url.py @@ -1,8 +1,8 @@ import logging from dvc.cli import parse_args -from dvc.exceptions import DvcException from dvc.command.imp_url import CmdImportUrl +from dvc.exceptions import DvcException def test_import_url(mocker, dvc_repo): diff --git a/tests/unit/command/test_repro.py b/tests/unit/command/test_repro.py index 4e9688e87..9dc66dc4f 100644 --- a/tests/unit/command/test_repro.py +++ b/tests/unit/command/test_repro.py @@ -1,5 +1,5 @@ -from dvc.command.repro import CmdRepro from dvc.cli import parse_args +from dvc.command.repro import CmdRepro default_arguments = { "all_pipelines": False, diff --git a/tests/unit/dependency/test_gs.py b/tests/unit/dependency/test_gs.py index 5eba2b75c..1bc850e29 100644 --- a/tests/unit/dependency/test_gs.py +++ b/tests/unit/dependency/test_gs.py @@ -1,5 +1,4 @@ from dvc.dependency.gs import DependencyGS - from tests.unit.dependency.test_local import TestDependencyLOCAL diff --git a/tests/unit/dependency/test_hdfs.py b/tests/unit/dependency/test_hdfs.py index 7a88219a3..f85ce1ccc 100644 --- a/tests/unit/dependency/test_hdfs.py +++ b/tests/unit/dependency/test_hdfs.py @@ -1,9 +1,9 @@ import os import sys + import pytest from dvc.dependency.hdfs import DependencyHDFS - from tests.unit.dependency.test_local import TestDependencyLOCAL diff --git a/tests/unit/dependency/test_http.py b/tests/unit/dependency/test_http.py index b8d1c2c4c..28ddc1711 100644 --- a/tests/unit/dependency/test_http.py +++ b/tests/unit/dependency/test_http.py @@ -1,5 +1,4 @@ from dvc.dependency.http import DependencyHTTP - from tests.unit.dependency.test_local import TestDependencyLOCAL diff --git a/tests/unit/dependency/test_local.py b/tests/unit/dependency/test_local.py index 8beaaa9f8..236bc6992 100644 --- a/tests/unit/dependency/test_local.py +++ b/tests/unit/dependency/test_local.py @@ -1,8 +1,7 @@ import mock -from dvc.stage import Stage from dvc.dependency import DependencyLOCAL - +from dvc.stage import Stage from tests.basic_env import TestDvc diff --git a/tests/unit/dependency/test_s3.py b/tests/unit/dependency/test_s3.py index 4dcf49e80..fdc322d6b 100644 --- a/tests/unit/dependency/test_s3.py +++ b/tests/unit/dependency/test_s3.py @@ -1,5 +1,4 @@ from dvc.dependency.s3 import DependencyS3 - from tests.unit.dependency.test_local import TestDependencyLOCAL diff --git a/tests/unit/dependency/test_ssh.py b/tests/unit/dependency/test_ssh.py index c9fbf1984..c5660dfdc 100644 --- a/tests/unit/dependency/test_ssh.py +++ b/tests/unit/dependency/test_ssh.py @@ -1,5 +1,4 @@ from dvc.dependency.ssh import DependencySSH - from tests.unit.dependency.test_local import TestDependencyLOCAL diff --git a/tests/unit/output/test_gs.py b/tests/unit/output/test_gs.py index 7682d71a2..69d20a4e8 100644 --- a/tests/unit/output/test_gs.py +++ b/tests/unit/output/test_gs.py @@ -1,5 +1,4 @@ from dvc.output.gs import OutputGS - from tests.unit.output.test_local import TestOutputLOCAL diff --git a/tests/unit/output/test_hdfs.py b/tests/unit/output/test_hdfs.py index b54490ecb..8f80d1a59 100644 --- a/tests/unit/output/test_hdfs.py +++ b/tests/unit/output/test_hdfs.py @@ -1,9 +1,9 @@ import os import sys + import pytest from dvc.output.hdfs import OutputHDFS - from tests.unit.output.test_local import TestOutputLOCAL diff --git a/tests/unit/output/test_local.py b/tests/unit/output/test_local.py index 6e2af1132..0999472c6 100644 --- a/tests/unit/output/test_local.py +++ b/tests/unit/output/test_local.py @@ -1,9 +1,8 @@ from mock import patch -from dvc.stage import Stage from dvc.output import OutputLOCAL from dvc.remote.local import RemoteLOCAL - +from dvc.stage import Stage from tests.basic_env import TestDvc diff --git a/tests/unit/output/test_s3.py b/tests/unit/output/test_s3.py index 1c48c5eae..4b0b986f5 100644 --- a/tests/unit/output/test_s3.py +++ b/tests/unit/output/test_s3.py @@ -1,5 +1,4 @@ from dvc.output.s3 import OutputS3 - from tests.unit.output.test_local import TestOutputLOCAL diff --git a/tests/unit/output/test_ssh.py b/tests/unit/output/test_ssh.py index cd91d0280..397e34ebc 100644 --- a/tests/unit/output/test_ssh.py +++ b/tests/unit/output/test_ssh.py @@ -1,5 +1,4 @@ from dvc.output.ssh import OutputSSH - from tests.unit.output.test_local import TestOutputLOCAL diff --git a/tests/unit/remote/ssh/test_connection.py b/tests/unit/remote/ssh/test_connection.py index 6b1300ce3..bda20b0e7 100644 --- a/tests/unit/remote/ssh/test_connection.py +++ b/tests/unit/remote/ssh/test_connection.py @@ -1,14 +1,15 @@ from __future__ import unicode_literals -import os -import posixpath -import platform -import pytest import filecmp +import os +import platform +import posixpath import tempfile -from dvc.system import System +import pytest + from dvc.command.version import CmdVersion +from dvc.system import System here = os.path.abspath(os.path.dirname(__file__)) diff --git a/tests/unit/remote/ssh/test_ssh.py b/tests/unit/remote/ssh/test_ssh.py index 6e6e101aa..95efa231c 100644 --- a/tests/unit/remote/ssh/test_ssh.py +++ b/tests/unit/remote/ssh/test_ssh.py @@ -1,16 +1,15 @@ import getpass import os import sys - from unittest import TestCase -from mock import patch, mock_open import pytest - -from tests.func.test_data_cloud import get_ssh_url_mocked +from mock import mock_open +from mock import patch from dvc.remote.ssh import RemoteSSH from dvc.system import System +from tests.func.test_data_cloud import get_ssh_url_mocked class TestRemoteSSH(TestCase): diff --git a/tests/unit/remote/test_base.py b/tests/unit/remote/test_base.py index e42c05e25..4c39be1f8 100644 --- a/tests/unit/remote/test_base.py +++ b/tests/unit/remote/test_base.py @@ -1,7 +1,10 @@ -import mock from unittest import TestCase -from dvc.remote.base import RemoteBASE, RemoteCmdError, RemoteMissingDepsError +import mock + +from dvc.remote.base import RemoteBASE +from dvc.remote.base import RemoteCmdError +from dvc.remote.base import RemoteMissingDepsError class TestRemoteBASE(object): diff --git a/tests/unit/remote/test_gs.py b/tests/unit/remote/test_gs.py index 81a1949bd..817b64c59 100644 --- a/tests/unit/remote/test_gs.py +++ b/tests/unit/remote/test_gs.py @@ -1,9 +1,11 @@ +from unittest import TestCase + import mock import pytest import requests -from unittest import TestCase -from dvc.remote.gs import RemoteGS, dynamic_chunk_size +from dvc.remote.gs import dynamic_chunk_size +from dvc.remote.gs import RemoteGS class TestRemoteGS(TestCase): diff --git a/tests/unit/remote/test_http.py b/tests/unit/remote/test_http.py index b2d82bd8e..2b1ecdb07 100644 --- a/tests/unit/remote/test_http.py +++ b/tests/unit/remote/test_http.py @@ -1,6 +1,7 @@ import pytest -from dvc.remote.http import RemoteHTTP + from dvc.config import ConfigError +from dvc.remote.http import RemoteHTTP def test_no_traverse_compatibility(dvc_repo): diff --git a/tests/unit/remote/test_s3.py b/tests/unit/remote/test_s3.py index 36b9d1e23..a82d005c4 100644 --- a/tests/unit/remote/test_s3.py +++ b/tests/unit/remote/test_s3.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- - import pytest from moto import mock_s3 diff --git a/tests/unit/remote/test_slow_link_detection.py b/tests/unit/remote/test_slow_link_detection.py index 141b4ff95..cb0a5e8f2 100644 --- a/tests/unit/remote/test_slow_link_detection.py +++ b/tests/unit/remote/test_slow_link_detection.py @@ -1,9 +1,9 @@ -import pytest import mock +import pytest import dvc.remote.slow_link_detection -from dvc.remote.slow_link_detection import slow_link_guard from dvc.config import Config +from dvc.remote.slow_link_detection import slow_link_guard @pytest.fixture(autouse=True) diff --git a/tests/unit/scm/test_scm.py b/tests/unit/scm/test_scm.py index 484c6f396..513653139 100644 --- a/tests/unit/scm/test_scm.py +++ b/tests/unit/scm/test_scm.py @@ -1,8 +1,10 @@ +from unittest import TestCase + +import mock + from dvc.repo import Repo from dvc.repo.scm_context import scm_context from dvc.scm import NoSCM -from unittest import TestCase -import mock class TestScmContext(TestCase): diff --git a/tests/unit/test_daemon.py b/tests/unit/test_daemon.py index d5c4198a2..a9f193eb9 100644 --- a/tests/unit/test_daemon.py +++ b/tests/unit/test_daemon.py @@ -1,8 +1,9 @@ -import os -import mock import inspect +import os from unittest import TestCase +import mock + import dvc.daemon as daemon diff --git a/tests/unit/test_ignore.py b/tests/unit/test_ignore.py index d27c9f1ec..0eed6adc2 100644 --- a/tests/unit/test_ignore.py +++ b/tests/unit/test_ignore.py @@ -1,10 +1,12 @@ import os -import dvc import pytest -from mock import mock_open, patch +from mock import mock_open +from mock import patch -from dvc.ignore import DvcIgnorePatterns, DvcIgnoreDirs +import dvc +from dvc.ignore import DvcIgnoreDirs +from dvc.ignore import DvcIgnorePatterns def mock_dvcignore(dvcignore_path, patterns): diff --git a/tests/unit/test_logger.py b/tests/unit/test_logger.py index bcc061ff3..dbbabb10c 100644 --- a/tests/unit/test_logger.py +++ b/tests/unit/test_logger.py @@ -1,7 +1,8 @@ from __future__ import unicode_literals -import traceback import logging +import traceback + import colorama import dvc.logger diff --git a/tests/unit/test_path_info.py b/tests/unit/test_path_info.py index a4d48ee0b..c9fabf02c 100644 --- a/tests/unit/test_path_info.py +++ b/tests/unit/test_path_info.py @@ -1,8 +1,11 @@ -import pytest import copy +import pytest + +from dvc.path_info import CloudURLInfo +from dvc.path_info import PathInfo +from dvc.path_info import URLInfo from dvc.utils.compat import pathlib -from dvc.path_info import PathInfo, URLInfo, CloudURLInfo TEST_DEPTH = len(pathlib.Path(__file__).parents) + 1 diff --git a/tests/unit/test_progress.py b/tests/unit/test_progress.py index 36ba35e44..72005f65c 100644 --- a/tests/unit/test_progress.py +++ b/tests/unit/test_progress.py @@ -1,8 +1,10 @@ import logging +import sys + +import mock + from dvc.progress import Tqdm from dvc.utils import env2bool -import sys -import mock def test_quiet_logging(caplog, capsys): diff --git a/tests/unit/test_prompt.py b/tests/unit/test_prompt.py index 2b6395ac7..68ccb8877 100644 --- a/tests/unit/test_prompt.py +++ b/tests/unit/test_prompt.py @@ -1,6 +1,7 @@ -import mock from unittest import TestCase +import mock + from dvc.prompt import confirm diff --git a/tests/unit/test_stage.py b/tests/unit/test_stage.py index d805a5d6f..652c4b529 100644 --- a/tests/unit/test_stage.py +++ b/tests/unit/test_stage.py @@ -1,14 +1,15 @@ -from dvc.path_info import PathInfo -from dvc.stage import Stage, StageUpdateError -from dvc.dependency.repo import DependencyREPO - import signal -import threading import subprocess +import threading +from unittest import TestCase import mock import pytest -from unittest import TestCase + +from dvc.dependency.repo import DependencyREPO +from dvc.path_info import PathInfo +from dvc.stage import Stage +from dvc.stage import StageUpdateError TEST_STAGE_DICT = { diff --git a/tests/unit/test_updater.py b/tests/unit/test_updater.py index d387e1476..c8a0ee2de 100644 --- a/tests/unit/test_updater.py +++ b/tests/unit/test_updater.py @@ -1,5 +1,5 @@ -import os import json +import os from dvc import __version__ from dvc.updater import Updater diff --git a/tests/unit/test_version.py b/tests/unit/test_version.py index 5912133f8..5b33b4380 100644 --- a/tests/unit/test_version.py +++ b/tests/unit/test_version.py @@ -1,6 +1,6 @@ -import mock import subprocess +import mock import dvc.version from dvc.utils.compat import cast_bytes diff --git a/tests/unit/utils/test_fs.py b/tests/unit/utils/test_fs.py index d479b10d9..322e90c16 100644 --- a/tests/unit/utils/test_fs.py +++ b/tests/unit/utils/test_fs.py @@ -1,22 +1,20 @@ import os from unittest import TestCase -import dvc import pytest +from mock import patch +import dvc from dvc.ignore import DvcIgnoreFilter -from dvc.system import System from dvc.path_info import PathInfo +from dvc.system import System from dvc.utils import relpath from dvc.utils.compat import str -from dvc.utils.fs import ( - get_mtime_and_size, - contains_symlink_up_to, - BasePathNotInCheckedPathException, - get_parent_dirs_up_to, - get_inode, -) -from mock import patch +from dvc.utils.fs import BasePathNotInCheckedPathException +from dvc.utils.fs import contains_symlink_up_to +from dvc.utils.fs import get_inode +from dvc.utils.fs import get_mtime_and_size +from dvc.utils.fs import get_parent_dirs_up_to from tests.basic_env import TestDir from tests.utils import spy diff --git a/tests/unit/utils/test_http.py b/tests/unit/utils/test_http.py index 44e88f108..38bb41a49 100644 --- a/tests/unit/utils/test_http.py +++ b/tests/unit/utils/test_http.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import io + import requests from dvc.utils.http import open_url diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py index 5678994d4..59f801af0 100644 --- a/tests/unit/utils/test_utils.py +++ b/tests/unit/utils/test_utils.py @@ -2,7 +2,8 @@ import os import pytest -from dvc.utils import to_chunks, fix_env +from dvc.utils import fix_env +from dvc.utils import to_chunks @pytest.mark.parametrize( diff --git a/tests/utils/__init__.py b/tests/utils/__init__.py index cd50069c9..a40a91f2c 100644 --- a/tests/utils/__init__.py +++ b/tests/utils/__init__.py @@ -1,9 +1,10 @@ import os +from contextlib import contextmanager from filecmp import dircmp -from dvc.scm import Git from mock import MagicMock -from contextlib import contextmanager + +from dvc.scm import Git def spy(method_to_decorate):