cuery.actors.scaffold.flex ========================== .. py:module:: cuery.actors.scaffold.flex .. autoapi-nested-parse:: Scaffold a new Apify actor from a FlexTool subclass. This script inspects a given subclass of ``cuery.tools.flex.FlexTool`` and creates a new actor directory in ``actors/`` with the common structure and files used in this repo: actors/ / .actor/ actor.json input_schema.json dataset_schema.json example_input.json README.md Dockerfile src/ __main__.py storage/ It also creates a new module stub in ``src/cuery/actors/.py`` that wires the FlexTool into the standard runner using ``run_flex_tool``. Usage (from project root): python -m cuery.actors.scaffold cuery.tools.flex.classify.Classifier --actor-name classifier You can override names and descriptions with CLI options. By default, names are derived from the tool class name. Classes ------- .. autoapisummary:: cuery.actors.scaffold.flex.ScaffoldSpec Functions --------- .. autoapisummary:: cuery.actors.scaffold.flex.snake_case cuery.actors.scaffold.flex.kebab_case cuery.actors.scaffold.flex.title_case cuery.actors.scaffold.flex.load_class cuery.actors.scaffold.flex.repo_root_from_here cuery.actors.scaffold.flex.read_project_version cuery.actors.scaffold.flex.ensure_dir cuery.actors.scaffold.flex.write_json cuery.actors.scaffold.flex.write_text cuery.actors.scaffold.flex.derive_actor_names cuery.actors.scaffold.flex._apify_editor_for_field cuery.actors.scaffold.flex.build_input_schema cuery.actors.scaffold.flex.default_dataset_schema cuery.actors.scaffold.flex.make_actor_json cuery.actors.scaffold.flex.make_dockerfile cuery.actors.scaffold.flex.make_readme cuery.actors.scaffold.flex.make_actor_main cuery.actors.scaffold.flex.make_module_stub cuery.actors.scaffold.flex.scaffold cuery.actors.scaffold.flex.make_scaffold Module Contents --------------- .. py:function:: snake_case(name) .. py:function:: kebab_case(name) .. py:function:: title_case(name) .. py:function:: load_class(path) Load a class given a full import path ``module.submodule:Class`` or ``module.Class``. .. py:function:: repo_root_from_here() Return the repository root based on this file location. This file lives at: /src/cuery/actors/scaffold/make.py → parents[4] is the repo root. .. py:function:: read_project_version(root) .. py:function:: ensure_dir(path) .. py:function:: write_json(path, data) .. py:function:: write_text(path, data) .. py:function:: derive_actor_names(tool_class_name, actor_name, module_name, title) Return (actor_dir_name, module_name, title). .. py:function:: _apify_editor_for_field(name, schema) .. py:function:: build_input_schema(tool_cls, title, description) Convert a Pydantic model JSON schema into Apify actor input_schema.json. - Adds dataset_id - Drops 'records' - Attempts to set Apify UI editors heuristically .. py:function:: default_dataset_schema(title, description) .. py:function:: make_actor_json(name, title, description, module_name) .. py:function:: make_dockerfile(cuery_version, module_name) .. py:function:: make_readme(title, description) .. py:function:: make_actor_main(module_name) .. py:function:: make_module_stub(tool_path) .. py:class:: ScaffoldSpec .. py:attribute:: tool_class_path :type: str .. py:attribute:: actor_dir_name :type: str .. py:attribute:: module_name :type: str .. py:attribute:: title :type: str .. py:attribute:: description :type: str | None .. py:attribute:: overwrite :type: bool :value: False .. py:function:: scaffold(spec) .. py:function:: make_scaffold(tool, actor_name = None, module_name = None, title = None, description = None, force = False) Create a new actor directory and module for a given FlexTool subclass.