Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adhere to code style #3498

Merged
merged 3 commits into from
May 3, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Adhere to code style
  • Loading branch information
ofek committed Apr 20, 2019
commit bb501e4b05135a650a054f76f2936b05e6f25377
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,4 @@
# Licensed under a 3-clause BSD style license (see LICENSE)
from .__about__ import __version__

__all__ = [
'__version__',
]
__all__ = ['__version__']
30 changes: 13 additions & 17 deletions datadog_checks_downloader/datadog_checks/downloader/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,12 @@
import argparse
import re

# 2nd party.
from .download import TUFDownloader
from .exceptions import (
NonCanonicalVersion,
NonDatadogPackage,
NoSuchDatadogPackageOrVersion,
)

# 3rd party.
from tuf.exceptions import UnknownTargetError

# 2nd party.
from .download import TUFDownloader
from .exceptions import NonCanonicalVersion, NonDatadogPackage, NoSuchDatadogPackageOrVersion

# Private module functions.

Expand All @@ -42,14 +37,15 @@ def __get_wheel_distribution_name(standard_distribution_name):
def download():
parser = argparse.ArgumentParser()

parser.add_argument('standard_distribution_name', type=str,
help='Standard distribution name of the desired Datadog check.')
parser.add_argument(
'standard_distribution_name', type=str, help='Standard distribution name of the desired Datadog check.'
)

parser.add_argument('--version', type=str, default=None,
help='The version number of the desired Datadog check.')
parser.add_argument('--version', type=str, default=None, help='The version number of the desired Datadog check.')

parser.add_argument('-v', '--verbose', action='count', default=0,
help='Show verbose information about TUF and in-toto.')
parser.add_argument(
'-v', '--verbose', action='count', default=0, help='Show verbose information about TUF and in-toto.'
)

args = parser.parse_args()
standard_distribution_name = args.standard_distribution_name
Expand All @@ -68,9 +64,9 @@ def download():
if not __is_canonical(version):
raise NonCanonicalVersion(version)

target_relpath = 'simple/{}/{}-{}-py2.py3-none-any.whl'\
.format(standard_distribution_name,
wheel_distribution_name, version)
target_relpath = 'simple/{}/{}-{}-py2.py3-none-any.whl'.format(
standard_distribution_name, wheel_distribution_name, version
)

try:
target_abspath = tuf_downloader.download(target_relpath)
Expand Down
54 changes: 22 additions & 32 deletions datadog_checks_downloader/datadog_checks/downloader/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,29 @@
import tempfile

import tuf.settings
# Turn off TUF file logging.
tuf.settings.ENABLE_FILE_LOGGING = False
# Increase requests timeout.
tuf.settings.SOCKET_TIMEOUT = 60

# Import what we need from TUF.
from tuf.client.updater import Updater
from tuf.exceptions import UnknownTargetError

# Import what we need from in-toto.
from in_toto import verifylib
from in_toto.models.metadata import Metablock
from in_toto.util import import_public_keys_from_files_as_dict

# After we import everything we neeed, shut off all existing loggers.
logging.config.dictConfig({
'disable_existing_loggers': True,
'version': 1,
})

# Other 3rd-party imports.
# NOTE: We assume that setuptools is installed by default.
from pkg_resources import parse_version

# Import what we need from TUF.
from tuf.client.updater import Updater
from tuf.exceptions import UnknownTargetError

# Exceptions.
from .exceptions import (
InconsistentSimpleIndex,
MissingVersions,
NoInTotoLinkMetadataFound,
NoInTotoRootLayoutPublicKeysFound,
NoSuchDatadogPackage,
)

# NOTE: A module with a function that substitutes parameters for
# in-toto inspections. The function is expected to be called
# 'substitute', and takes one parameter, target_relpath, that specifies
Expand All @@ -46,14 +45,14 @@
# The module is expected to live here.
from .parameters import substitute

# Exceptions.
from .exceptions import (
InconsistentSimpleIndex,
MissingVersions,
NoInTotoLinkMetadataFound,
NoInTotoRootLayoutPublicKeysFound,
NoSuchDatadogPackage,
)
# Turn off TUF file logging.
tuf.settings.ENABLE_FILE_LOGGING = False
# Increase requests timeout.
tuf.settings.SOCKET_TIMEOUT = 60


# After we import everything we neeed, shut off all existing loggers.
logging.config.dictConfig({'disable_existing_loggers': True, 'version': 1})


# CONSTANTS.
Expand All @@ -66,7 +65,7 @@
'url_prefix': 'https://dd-integrations-core-wheels-build-stable.datadoghq.com',
'metadata_path': 'metadata.staged',
'targets_path': 'targets',
'confined_target_dirs': ['']
'confined_target_dirs': [''],
}
}

Expand All @@ -76,8 +75,6 @@


class TUFDownloader:


def __init__(self, verbose=0):
# 0 => 60 (effectively /dev/null)
# 1 => 50 (CRITICAL)
Expand Down Expand Up @@ -110,7 +107,6 @@ def __init__(self, verbose=0):
# we use the same consistent snapshot to download targets.
self.__updater.refresh()


def __download_in_toto_metadata(self, target):
# A list to collect where in-toto metadata targets live.
target_relpaths = []
Expand Down Expand Up @@ -145,7 +141,6 @@ def __download_in_toto_metadata(self, target):
# Return list of where in-toto metadata files live.
return target_relpaths


def __update_in_toto_layout_pubkeys(self):
'''
NOTE: We assume that all the public keys needed to verify any in-toto
Expand All @@ -171,7 +166,6 @@ def __update_in_toto_layout_pubkeys(self):

return target_relpaths


def __verify_in_toto_metadata(self, target_relpath, in_toto_inspection_packet):
# Make a temporary directory in a parent directory we control.
tempdir = tempfile.mkdtemp(dir=REPOSITORIES_DIR)
Expand Down Expand Up @@ -207,7 +201,6 @@ def __verify_in_toto_metadata(self, target_relpath, in_toto_inspection_packet):
# Delete temp dir.
shutil.rmtree(tempdir)


def __download_and_verify_in_toto_metadata(self, target, target_relpath):
in_toto_metadata_relpaths = self.__download_in_toto_metadata(target)

Expand All @@ -227,7 +220,6 @@ def __download_and_verify_in_toto_metadata(self, target, target_relpath):
in_toto_inspection_packet = [target_relpath] + in_toto_metadata_relpaths + pubkey_relpaths
self.__verify_in_toto_metadata(target_relpath, in_toto_inspection_packet)


def __get_target(self, target_relpath, download_in_toto_metadata=True):
target = self.__updater.get_one_valid_targetinfo(target_relpath)
updated_targets = self.__updater.updated_targets((target,), self.__targets_dir)
Expand Down Expand Up @@ -258,7 +250,6 @@ def __get_target(self, target_relpath, download_in_toto_metadata=True):
target_path = os.path.join(self.__targets_dir, target_relpath)
return target_path


def download(self, target_relpath, download_in_toto_metadata=True):
'''
Returns:
Expand All @@ -267,7 +258,6 @@ def download(self, target_relpath, download_in_toto_metadata=True):
'''
return self.__get_target(target_relpath, download_in_toto_metadata=download_in_toto_metadata)


def get_latest_version(self, standard_distribution_name, wheel_distribution_name):
'''
Returns:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,68 +7,50 @@


class CLIError(Exception):


def __init__(self, standard_distribution_name):
self.standard_distribution_name = standard_distribution_name


def __str__(self):
return 'Unexpected CLI error for {}!'.format(self.standard_distribution_name)


class InconsistentSimpleIndex(CLIError):


def __init__(self, href, text):
self.href = href
self.text = text


def __str__(self):
return '{} != {}'.format(self.href, self.text)


class MissingVersions(CLIError):


def __str__(self):
return 'No version found for {} !'.format(self.standard_distribution_name)


class NonCanonicalVersion(CLIError):


def __init__(self, version):
self.version = version


def __str__(self):
return '{} is not a valid PEP 440 version!'.format(self.version)


class NonDatadogPackage(CLIError):


def __str__(self):
return '{} is not a Datadog package!'.format(self.standard_distribution_name)


class NoSuchDatadogPackage(CLIError):


def __str__(self):
return 'Could not find the {} package!'.format(self.standard_distribution_name)


class NoSuchDatadogPackageOrVersion(CLIError):


def __init__(self, standard_distribution_name, version):
super(NoSuchDatadogPackageOrVersion, self).__init__(standard_distribution_name)
self.version = version


def __str__(self):
return 'Either no {} package, or {} version!'.format(self.standard_distribution_name, self.version)

Expand All @@ -77,25 +59,18 @@ def __str__(self):


class TUFInTotoError(Exception):


def __init__(self, target_relpath):
self.target_relpath = target_relpath


def __str__(self):
return 'Unexpected tuf-in-toto error for {}!'.format(self.target_relpath)


class NoInTotoLinkMetadataFound(TUFInTotoError):


def __str__(self):
return 'in-toto link metadata expected, but not found for {}!'.format(self.target_relpath)


class NoInTotoRootLayoutPublicKeysFound(TUFInTotoError):


def __str__(self):
return 'in-toto root layout public keys expected, but not found for {}!'.format(self.target_relpath)
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,7 @@
# NOTE: We assume that setuptools is installed by default.
from pkg_resources import safe_name


EXCEPTIONS = {
'datadog_checks_base',
'datadog_checks_dev',
'datadog_checks_downloader',
}
EXCEPTIONS = {'datadog_checks_base', 'datadog_checks_dev', 'datadog_checks_downloader'}


def substitute(target_relpath):
Expand Down Expand Up @@ -43,5 +38,5 @@ def substitute(target_relpath):
'wheel_distribution_name': wheel_distribution_name,
'package_version': package_version,
'package_github_dir': package_github_dir,
'standard_distribution_name': standard_distribution_name
'standard_distribution_name': standard_distribution_name,
}
12 changes: 2 additions & 10 deletions datadog_checks_downloader/setup.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# (C) Datadog, Inc. 2019
# All rights reserved
# Licensed under a 3-clause BSD style license (see LICENSE)
from setuptools import setup
from codecs import open # To use a consistent encoding
from os import path

from setuptools import setup

HERE = path.abspath(path.dirname(__file__))

Expand All @@ -26,7 +26,6 @@ def get_requirements(fpath):
setup(
# Version should always match one from an agent release
version=ABOUT["__version__"],

name='datadog_checks_downloader',
description='The Datadog Checks Downloader',
long_description=LONG_DESC,
Expand All @@ -36,7 +35,6 @@ def get_requirements(fpath):
author='Datadog',
author_email='packages@datadoghq.com',
license='BSD',

# See https://pypi.org/classifiers
classifiers=[
'Development Status :: 5 - Production/Stable',
Expand All @@ -49,7 +47,6 @@ def get_requirements(fpath):
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
],

packages=['datadog_checks.downloader'],
# NOTE: Copy over TUF directories, and root metadata.
package_data={
Expand All @@ -61,10 +58,5 @@ def get_requirements(fpath):
]
},
include_package_data=True,

entry_points={
'console_scripts': [
'datadog-checks-downloader=datadog_checks.downloader.cli:download'
],
},
entry_points={'console_scripts': ['datadog-checks-downloader=datadog_checks.downloader.cli:download']},
)
12 changes: 1 addition & 11 deletions datadog_checks_downloader/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ minversion = 2.0
skip_missing_interpreters = true
envlist =
py{27,37}
flake8

[testenv]
dd_check_style = true
usedevelop = true
deps =
-e../datadog_checks_base[deps]
Expand All @@ -14,13 +14,3 @@ commands =
pip install -r requirements.in
pytest -vs --log-cli-level=debug


[testenv:flake8]
skip_install = true
deps = flake8
commands = flake8 .

[flake8]
ignore = E303, E402, E722
exclude = .eggs,.tox,build
max-line-length = 120