Files
flow/scripts/ci/update_starter_projects.py
zeekay a270a374f0 refactor(rebrand): unify hanzoflow -> hanzo-flow (pkg) / flow (module,cmd) / FLOW_ (env)
Cleaned the concurrent session's half-rebrand inconsistency (166 files):
- pip/pypi refs hanzoflow -> hanzo-flow (matches hanzo-flow-base/sdk)
- module paths/commands/devcontainer hanzoflow -> flow (the import name + CLI)
- env vars HANZOFLOW_ -> FLOW_ (was inconsistent with the LANGFLOW_->FLOW_ sweep)
- fixed a stale src/backend/base/hanzoflow/ path that didn't exist
- product display HanzoFlow -> 'Hanzo Flow' in docs; kept HanzoFlow only as a
  code identifier where a space is illegal

Canonical: pip install hanzo-flow / import flow / `flow` CLI. compileall clean.
2026-07-16 10:26:22 -07:00

44 lines
1.7 KiB
Python

"""Script to update HanzoFlow starter projects with the latest component versions."""
import asyncio
import os
import flow.main # noqa: F401
from flow.initial_setup.setup import (
get_project_data,
load_starter_projects,
update_edges_with_latest_component_versions,
update_project_file,
update_projects_components_with_latest_component_versions,
)
from flow.services.utils import initialize_services
from lfx.interface.components import get_and_cache_all_types_dict
from lfx.services.deps import get_settings_service
async def main():
"""Updates the starter projects with the latest component versions.
Copies the code from flow/initial_setup/setup.py. Doesn't use the
create_or_update_starter_projects function directly to avoid sql interactions.
"""
await initialize_services(fix_migration=False)
all_types_dict = await get_and_cache_all_types_dict(get_settings_service())
starter_projects = await load_starter_projects()
for project_path, project in starter_projects:
_, _, _, _, project_data, _, _, _, _ = get_project_data(project)
do_update_starter_projects = os.environ.get("FLOW_UPDATE_STARTER_PROJECTS", "true").lower() == "true"
if do_update_starter_projects:
updated_project_data = update_projects_components_with_latest_component_versions(
project_data.copy(), all_types_dict
)
updated_project_data = update_edges_with_latest_component_versions(updated_project_data)
if updated_project_data != project_data:
project_data = updated_project_data
await update_project_file(project_path, project, updated_project_data)
if __name__ == "__main__":
asyncio.run(main())