Beispiel #1
0
def run(
    filepath: str,
    *,
    pkg: str = "model",
    rootdir: str = "",
    here: t.Optional[str] = None,
    action: t.Literal["generate", "scan"] = "generate",
) -> None:
    m = import_module(filepath)
    here = here or m.__file__
    settings: SettingsDict = {"rootdir": rootdir, "here": here}
    app = create_app(settings)
    app.include("egoist.directives.define_struct_set")

    define_struct_set = app.define_struct_set(
        "egoist.generators.structkit:walk")

    scanned = scan_module(m, is_ignored=lambda x: not inspect.isclass(x))
    classes = list(scanned.values())

    def models():
        from egoist.generators.structkit import runtime, structkit

        with runtime.generate(structkit, classes=classes) as m:
            m.package(pkg)

    define_struct_set(models)
    app.run([action])
Beispiel #2
0
def run(
    filepath: str,
    *,
    rootdir: str = "cmd/",
    here: t.Optional[str] = None,
    action: t.Literal["generate", "scan"] = "generate",
) -> None:
    m = import_module(filepath)
    here = here or m.__file__
    settings: SettingsDict = {"rootdir": rootdir, "here": here}
    app = create_app(settings)
    app.include("egoist.directives.define_cli")

    define_cli = app.define_cli("egoist.generators.clikit:walk")

    commands = scan_module(m)
    for name, fn in commands.items():
        define_cli(fn)
    app.run([action])
Beispiel #3
0
from __future__ import annotations
import typing as t
from egoist.app import create_app, SettingsDict, parse_args
from egoist.go.types import gopackage

settings: SettingsDict = {"rootdir": "", "here": __file__}
app = create_app(settings)

app.include("egoist.directives.define_struct_set")


class Person:
    name: str
    age: int
    memo: Memo
    memo2: t.Optional[Memo]
    memo_listmap: t.Dict[str, t.List[Memo]]


@gopackage("m/other")
class Memo:
    text: str


@app.define_struct_set("egoist.generators.structkit:walk")
def models__models() -> None:
    from egoist.generators.structkit import runtime, structkit

    with runtime.generate(structkit, classes=[Person]) as m:
        m.package("models")