From 2d527052f1fd21fad6f7fd02d0da086bbf98052b Mon Sep 17 00:00:00 2001 From: Rex Zhang Date: Tue, 21 Nov 2023 14:57:29 +0800 Subject: [PATCH] Rename --- python_project/__init__.py | 7 +++++ python_project/__main__.py | 22 +++++++++++++++ python_project/cli.py | 57 ++++++++++++++++++++++++++++++++++++++ python_project/core.py | 5 ++++ 4 files changed, 91 insertions(+) create mode 100644 python_project/__init__.py create mode 100644 python_project/__main__.py create mode 100644 python_project/cli.py create mode 100644 python_project/core.py diff --git a/python_project/__init__.py b/python_project/__init__.py new file mode 100644 index 0000000..15560cd --- /dev/null +++ b/python_project/__init__.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + + +from .core import PyPIPackageProject # noqa: F401 + +__name__ = "PyPIPackageProjectTemplate" +__version__ = "0.x.0" diff --git a/python_project/__main__.py b/python_project/__main__.py new file mode 100644 index 0000000..98b38fe --- /dev/null +++ b/python_project/__main__.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + + +""" +The main entry point. Invoke as `python_module_project' or + `python -m python_module_project'. +""" + +import sys + + +def main(): + try: + from .cli import main as cli_main + + sys.exit(cli_main()) + except KeyboardInterrupt: + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/python_project/cli.py b/python_project/cli.py new file mode 100644 index 0000000..4660b6b --- /dev/null +++ b/python_project/cli.py @@ -0,0 +1,57 @@ +import os +import sys +from logging import getLogger + +import click +import uvicorn + +logger = getLogger(__name__) + + +@click.group() +def cli(**cli_kwargs): + # do something + return + + +@cli.command("runserver") +@click.option( + "-H", + "--host", + default="127.0.0.1", + help="Bind socket to this host. [default: 127.0.0.1]", +) +@click.option( + "-P", "--port", default=8000, help="Bind socket to this port. [default: 8000]" +) +def runserver(**cli_kwargs): + kwargs = { + "app": "ddns_clienter.asgi:application", + # "host": host, + # "port": port, + "lifespan": "off", + "log_level": "info", + "access_log": False, + } + kwargs.update(cli_kwargs) + + return uvicorn.run(**kwargs) + + +@cli.command("check_and_push") +@click.option("-C", "--config", required=True, type=str, help="config.toml") +def check_and_push(**cli_kwargs): + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ddns_clienter.settings") + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +def main(): + cli() diff --git a/python_project/core.py b/python_project/core.py new file mode 100644 index 0000000..f7039e6 --- /dev/null +++ b/python_project/core.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + + +class PyPIPackageProject: + pass