Skip to content
Snippets Groups Projects
Commit 81666c03 authored by Vaclav Sraier's avatar Vaclav Sraier
Browse files

manager: explicitely crash on old Python versions

parent 4a9c22a1
No related branches found
No related tags found
1 merge request!1248manager: packaging
import argparse
import sys
from pathlib import Path
# throws nice syntax error on old Python versions:
0_0 # Python >= 3.6 required
from knot_resolver_manager import compat
from knot_resolver_manager.constants import DEFAULT_MANAGER_CONFIG_FILE
from knot_resolver_manager.log import logger_startup
from knot_resolver_manager.server import start_server
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Knot Resolver - caching DNS resolver")
parser.add_argument(
"-c",
"--config",
help="Config file to load. Overrides default config location at '" + str(DEFAULT_MANAGER_CONFIG_FILE) + "'",
type=str,
nargs=1,
required=False,
default=None,
)
return parser.parse_args()
def main(args: argparse.Namespace) -> int:
# where to look for config
config_path = DEFAULT_MANAGER_CONFIG_FILE if args.config is None else Path(args.config[0])
exit_code = compat.asyncio.run(start_server(config=config_path))
sys.exit(exit_code)
if __name__ == "__main__":
# initial logging is to memory until we read the config
logger_startup()
# run the main
main(parse_args())
from knot_resolver_manager import main
main.main()
"""
Effectively the same as normal __main__.py. However, we moved it's content over to this
file to allow us to exclude the __main__.py file from black's autoformatting
"""
import argparse
import sys
from pathlib import Path
from knot_resolver_manager import compat
from knot_resolver_manager.constants import DEFAULT_MANAGER_CONFIG_FILE
from knot_resolver_manager.log import logger_startup
from knot_resolver_manager.server import start_server
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Knot Resolver - caching DNS resolver")
parser.add_argument(
"-c",
"--config",
help="Config file to load. Overrides default config location at '" + str(DEFAULT_MANAGER_CONFIG_FILE) + "'",
type=str,
nargs=1,
required=False,
default=None,
)
return parser.parse_args()
def main() -> None:
# initial logging is to memory until we read the config
logger_startup()
# parse arguments
args = parse_args()
# where to look for config
config_path = DEFAULT_MANAGER_CONFIG_FILE if args.config is None else Path(args.config[0])
exit_code = compat.asyncio.run(start_server(config=config_path))
sys.exit(exit_code)
......@@ -82,6 +82,7 @@ target_version = ['py38']
include = '\.py$'
exclude = '''
^/setup.py # Poetry generates it and we want to keep it unchanged
knot_resolver_manager/__main__.py # due to pretty syntax error blocking old versions of python
'''
[tool.isort]
......@@ -93,6 +94,7 @@ float_to_top=true
profile = "black"
skip = [
"setup.py", # Poetry generates it and we want to keep it unchanged
"knot_resolver_manager/__main__.py",
]
[tool.tox]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment