Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ def load_requirements(file: Union[str, Path]) -> List[str]:
packages=find_packages(),
entry_points={
"console_scripts": [
"etl-uvicorn=unstructured_platform_plugins.etl_uvicorn.main:cmd",
"etl-validate=unstructured_platform_plugins.validate_api:validate_api",
"etl-uvicorn=unstructured_platform_plugins.cli.etl_uvicorn.main:cmd",
"etl-validate=unstructured_platform_plugins.cli.validate.main:validate_api",
"etl-schema=unstructured_platform_plugins.cli.schema_yaml.main:generate_yaml",
],
},
install_requires=load_requirements("requirements/cli.in")
Expand Down
2 changes: 1 addition & 1 deletion test/test_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from pydantic import BaseModel

import unstructured_platform_plugins.schema.json_schema as js
from unstructured_platform_plugins.etl_uvicorn.utils import get_input_schema
from unstructured_platform_plugins.cli.utils import get_input_schema
from unstructured_platform_plugins.schema.model import is_validate_dict


Expand Down
2 changes: 1 addition & 1 deletion test/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pydantic import BaseModel
from uvicorn.importer import import_from_string

from unstructured_platform_plugins.etl_uvicorn import utils
from unstructured_platform_plugins.cli import utils


def test_get_func_simple():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from pydantic import BaseModel
from uvicorn.importer import import_from_string

from unstructured_platform_plugins.etl_uvicorn.utils import (
from unstructured_platform_plugins.cli.utils import (
get_func,
get_input_schema,
get_output_sig,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from uvicorn.config import LOGGING_CONFIG, Config, RawConfigParser
from uvicorn.main import main, run

from unstructured_platform_plugins.etl_uvicorn.api_generator import generate_fast_api
from unstructured_platform_plugins.cli.etl_uvicorn.api_generator import generate_fast_api


@dataclass
Expand Down
25 changes: 25 additions & 0 deletions unstructured_platform_plugins/cli/schema_yaml/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from typing import Optional

import click
from uvicorn.importer import import_from_string
from yaml import Dumper, dump

from unstructured_platform_plugins.cli.utils import get_func, get_schema_dict


@click.command()
@click.argument("app", envvar="UVICORN_APP")
@click.option(
"--method-name",
required=False,
type=str,
default=None,
help="If passed in instance is a class, what method to wrap. "
"Will fall back to __call__ if none is provided.",
)
def generate_yaml(app: str, method_name: Optional[str] = None) -> None:
instance = import_from_string(app)
func = get_func(instance=instance, method_name=method_name)
schemas = get_schema_dict(func)
output = dump(schemas, Dumper=Dumper)
print(output)