dist
.tox
"""
+gen-setuppy = { shell = "python scripts/create_setup.py > setup.py", help = "Generate setup.py file for backwards compatibility" }
tox = { cmd = "tox", help = "Run tests in tox" }
integration = {cmd = "python integration/runner.py", help = "Run integration tests" }
configure-vscode = {cmd = "scripts/configure-vscode", help = "Create VSCode configuration for debugging, virtual envs etc" }
check_rv $?
echo
+
+# check that setup.py is not behind pyproject.toml
+echo -e "${yellow}Checking setup.py${reset}"
+python scripts/create_setup.py | diff - setup.py
+check_rv $?
+echo
+
# fancy messages at the end :)
if test "$aggregate_rv" -eq "0"; then
echo -e "${green}Everything looks great!${reset} 🥳🎉🥰"
else
+ echo -e "${red}Failure.${reset}"
+ echo -e "${red}These commands might help you:${reset}"
+ echo -e "${red}\tpoe format${reset}"
+ echo -e "${red}\tpoe gen-setuppy${reset}"
echo -e "${red}That's not great. Could you please fix that?${reset} 😲😟"
fi
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Original source:
+# https://github.com/sdss/flicamera/blob/main/create_setup.py
+# We modified the script so that it outputs the setup.py to stdout
+#
+# @Author: José Sánchez-Gallego (gallegoj@uw.edu)
+# @Date: 2019-12-18
+# @Filename: create_setup.py
+# @License: BSD 3-clause (http://www.opensource.org/licenses/BSD-3-Clause)
+
+# This is a temporary solution for the fact that pip install . fails with
+# poetry when there is no setup.py and an extension needs to be compiled.
+# See https://github.com/python-poetry/poetry/issues/1516. Running this
+# script creates a setup.py filled out with information generated by
+# poetry when parsing the pyproject.toml.
+
+import os
+import sys
+from distutils.version import StrictVersion
+
+
+# If there is a global installation of poetry, prefer that.
+lib = os.path.expanduser("~/.poetry/lib")
+vendors = os.path.join(lib, "poetry", "_vendor")
+current_vendors = os.path.join(
+ vendors, "py{}".format(".".join(str(v) for v in sys.version_info[:2]))
+)
+
+sys.path.insert(0, lib)
+sys.path.insert(0, current_vendors)
+
+try:
+ try:
+ from poetry.core.factory import Factory
+ from poetry.core.masonry.builders.sdist import SdistBuilder
+ except (ImportError, ModuleNotFoundError):
+ from poetry.masonry.builders.sdist import SdistBuilder
+ from poetry.factory import Factory
+ from poetry.__version__ import __version__
+except (ImportError, ModuleNotFoundError) as ee:
+ raise ImportError(
+ f"install poetry by doing pip install poetry to use this script: {ee}"
+ )
+
+
+# Generate a Poetry object that knows about the metadata in pyproject.toml
+factory = Factory()
+poetry = factory.create_poetry(os.path.dirname(__file__))
+
+# Use the SdistBuilder to genrate a blob for setup.py
+if StrictVersion(__version__) >= StrictVersion("1.1.0b1"):
+ sdist_builder = SdistBuilder(poetry, None)
+else:
+ sdist_builder = SdistBuilder(poetry, None, None)
+
+setuppy_blob = sdist_builder.build_setup()
+
+sys.stdout.buffer.write(setuppy_blob)
+sys.stdout.buffer.write(b"\n# This setup.py was autogenerated using poetry.\n")
echo Knot Manager API is accessible on http://localhost:5000
echo -------------------------------------------------------
-poetry run python -m knot_resolver_manager $@
\ No newline at end of file
+poetry run python -m knot_resolver_manager -c etc/knot-resolver/config.yml $@
--- /dev/null
+# -*- coding: utf-8 -*-
+from setuptools import setup
+
+packages = \
+['knot_resolver_manager',
+ 'knot_resolver_manager.client',
+ 'knot_resolver_manager.compat',
+ 'knot_resolver_manager.datamodel',
+ 'knot_resolver_manager.kresd_controller',
+ 'knot_resolver_manager.kresd_controller.supervisord',
+ 'knot_resolver_manager.kresd_controller.systemd',
+ 'knot_resolver_manager.utils']
+
+package_data = \
+{'': ['*']}
+
+install_requires = \
+['Jinja2>=2.11.3,<3.0.0',
+ 'PyGObject>=3.38.0,<4.0.0',
+ 'PyYAML>=5.4.1,<6.0.0',
+ 'aiohttp>=3.6.12,<4.0.0',
+ 'click>=7.1.2,<8.0.0',
+ 'pydbus>=0.6.0,<0.7.0',
+ 'requests>=2.25.1,<3.0.0']
+
+setup_kwargs = {
+ 'name': 'knot-resolver-manager',
+ 'version': '0.1.0',
+ 'description': 'A central management tool for multiple instances of Knot Resolver',
+ 'long_description': None,
+ 'author': 'Vašek Šraier',
+ 'author_email': 'git@vakabus.cz',
+ 'maintainer': None,
+ 'maintainer_email': None,
+ 'url': None,
+ 'packages': packages,
+ 'package_data': package_data,
+ 'install_requires': install_requires,
+ 'python_requires': '>=3.6.8,<4.0.0',
+}
+
+
+setup(**setup_kwargs)
+
+# This setup.py was autogenerated using poetry.