diff --git a/datadog_checks_downloader/pyproject.toml b/datadog_checks_downloader/pyproject.toml new file mode 100644 index 0000000000000..720364772e9f2 --- /dev/null +++ b/datadog_checks_downloader/pyproject.toml @@ -0,0 +1,62 @@ +[build-system] +requires = [ + "hatchling>=0.11.2", + "setuptools; python_version < '3.0'", +] +build-backend = "hatchling.build" + +[project] +name = "datadog-checks-downloader" +description = "The Datadog Checks Downloader" +readme = "README.md" +license = "BSD-3-Clause" +keywords = [ + "datadog", + "datadog agent", + "datadog check", +] +authors = [ + { name = "Datadog", email = "packages@datadoghq.com" }, +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3.8", + "Topic :: System :: Monitoring", +] +dynamic = [ + "version", +] + +[project.optional-dependencies] +deps = [ + "in-toto==1.0.1", + "securesystemslib[crypto,pynacl]==0.20.1", + "tuf==0.17.0; python_version < '3.0'", + "tuf==0.19.0; python_version > '3.0'", +] + +[project.urls] +Source = "https://github.com/DataDog/integrations-core" + +[tool.hatch.version] +path = "datadog_checks/downloader/__about__.py" + +[tool.hatch.build.targets.sdist] +include = [ + "/datadog_checks", + "/tests", + "/requirements-dev.txt", + "/tox.ini", +] + +[tool.hatch.build.targets.wheel] +include = [ + "/datadog_checks", +] +dev-mode-dirs = [ + ".", +] diff --git a/datadog_checks_downloader/requirements.in b/datadog_checks_downloader/requirements.in deleted file mode 100644 index 52b6a00f8b197..0000000000000 --- a/datadog_checks_downloader/requirements.in +++ /dev/null @@ -1,13 +0,0 @@ -# -# At the time of writing (Jan 30 2020), this was the latest version of these -# libraries. -# -tuf==0.17.0; python_version < "3.0" -tuf==0.19.0; python_version > "3.0" -in-toto==1.0.1 -# -# Make sure TUF and in-toto use the same version of this library, which they -# both use in common. At the time of writing (Jan 30 2020), this was the latest -# version of the library. -# -securesystemslib[crypto,pynacl]==0.20.1 diff --git a/datadog_checks_downloader/setup.py b/datadog_checks_downloader/setup.py index 73e2dbeb9e218..d82f95e2cb6ac 100644 --- a/datadog_checks_downloader/setup.py +++ b/datadog_checks_downloader/setup.py @@ -27,6 +27,21 @@ def get_dependencies(): return f.readlines() +def parse_pyproject_array(name): + import os + import re + from ast import literal_eval + + pattern = r'^{} = (\[.+?\])$'.format(name) + + with open(os.path.join(HERE, 'pyproject.toml'), 'r', encoding='utf-8') as f: + # Windows \r\n prevents match + contents = '\n'.join(line.rstrip() for line in f.readlines()) + + array = re.search(pattern, contents, flags=re.MULTILINE | re.DOTALL).group(1) + return literal_eval(array) + + setup( # Version should always match one from an agent release version=ABOUT["__version__"], @@ -52,7 +67,7 @@ def get_dependencies(): ], packages=['datadog_checks.downloader'], # Run-time dependencies - extras_require={'deps': get_dependencies()}, + extras_require={'deps': parse_pyproject_array('deps')}, # NOTE: Copy over TUF directories, and root metadata. package_data={ 'datadog_checks.downloader': [ diff --git a/datadog_checks_downloader/tox.ini b/datadog_checks_downloader/tox.ini index d7b6d1559fac4..2cba513fba9aa 100644 --- a/datadog_checks_downloader/tox.ini +++ b/datadog_checks_downloader/tox.ini @@ -11,9 +11,9 @@ envdir = py38: {toxworkdir}/py38 dd_check_style = true usedevelop = true +extras = deps deps = -e../datadog_checks_base[deps] -rrequirements-dev.txt commands = - pip install -r requirements.in pytest -v {posargs} --capture=no --log-cli-level=debug