def ok() -> None: import pathlib from egoist.generators.filekit import runtime from egoist.internal.netutil import find_free_port from discovery import get_discovery import util sentinel = util.create_sentinel_file() server_py = pathlib.Path(__file__).absolute().with_name("server.py") port = find_free_port() get_discovery().register("HELLO", url=f"http://127.0.0.1:{port}") argv = [ sys.executable, server_py, "--port", str(port), "--host", "127.0.0.1", "--sentinel", sentinel, ] with util.ConnectedProcess().spawn(argv, sentinel=sentinel): import requests url = get_discovery().lookup("HELLO") res = requests.get(url) res.raise_for_status() with runtime.create_file() as wf: print(res.json(), file=wf)
def _register(): from discovery import get_discovery port = None if app.registry.dry_run: logger.info("dry run, %s skipped", NAME) get_discovery().register("gofmtrpc", url=f"http://127.0.0.1:{port}") return from egoist.internal.netutil import find_free_port from util import spawn_with_connection port = find_free_port() get_discovery().register("gofmtrpc", url=f"http://127.0.0.1:{port}") argv = ["gofmtrpc", "-addr", f":{port}"] p, _ = spawn_with_connection(argv, sentinel_option="-sentinel") import atexit def _shutdown(): logger.info("terminate gofmtrpc") with p: p.terminate() atexit.register(_shutdown)
def _register(): import shutil from egoist.internal.netutil import find_free_port from discovery import get_discovery import util sentinel = util.create_sentinel_file() port = find_free_port() get_discovery().register("gofmtrpc", url=f"http://127.0.0.1:{port}") assert shutil.which("gofmtrpc") argv = [ "gofmtrpc", "-addr", f":{port}", "-sentinel", sentinel, ] p = util.ConnectedProcess().spawn(argv, sentinel=sentinel) import atexit def _shutdown(): logger.info("terminate gofmtrpc") with p: p.terminate() atexit.register(_shutdown)
def _register(): nonlocal host nonlocal port import shlex import atexit from discovery import get_discovery from rpcutil import find_free_port kwargs = {k: fn(app) for k, fn in (params or {}).items()} if port is None: port = kwargs.get("port") or find_free_port() if "host" in kwargs: host = kwargs.get["host"] argv = shlex.split(fmt.format(**kwargs)) url = urlfmt.format(host=host, port=port) get_discovery().register(name, url=url) if app.registry.dry_run: logger.info("dry run, %s skipped", name) return from spawn import spawn_with_connection p, _ = spawn_with_connection(argv) def _shutdown(): # xxx: logger.info("terminate %s", name) with p: p.terminate() atexit.register(_shutdown)
def _register(): import sys import pathlib from egoist.internal.netutil import find_free_port from discovery import get_discovery import util sentinel = util.create_sentinel_file() server_py = pathlib.Path(__file__).absolute().with_name("server.py") port = find_free_port() get_discovery().register("HELLO", url=f"http://127.0.0.1:{port}") argv = [ sys.executable, server_py, "--port", str(port), "--host", "127.0.0.1", "--sentinel", sentinel, ] p = util.ConnectedProcess().spawn(argv, sentinel=sentinel) import atexit def _shutdown(): logger.info("terminate HELLO") with p: p.terminate() atexit.register(_shutdown)
def ok2() -> None: import requests from egoist.generators.filekit import runtime from discovery import get_discovery with runtime.create_file() as wf: url = get_discovery().lookup("HELLO") res = requests.get(url) res.raise_for_status() print(res.json(), file=wf)
def hello__hello(*, filename: str = "./hello/hello.go") -> None: from egoist.generators.filekit import runtime from discovery import get_discovery with runtime.create_file() as wf: with get_file_opener().open(filename) as rf: code = rf.read() url = get_discovery().lookup("gofmtrpc") res = get_http_client().post( url, json={ "jsonrpc": "2.0", "id": 1, "method": "format", "params": { "code": code }, }, ) res.raise_for_status() print(res.json()["result"], file=wf)