hap-cli 0.8.7__tar.gz → 0.8.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hap_cli-0.8.7 → hap_cli-0.8.8}/PKG-INFO +1 -1
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/__init__.py +1 -1
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/icon_cmd.py +17 -11
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/worksheet_templates.py +7 -1
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_core.py +47 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli.egg-info/PKG-INFO +1 -1
- {hap_cli-0.8.7 → hap_cli-0.8.8}/MANIFEST.in +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/README.md +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/app_live_tests/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/app_live_tests/__main__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/app_live_tests/config.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/app_live_tests/harness.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/app_live_tests/smoke.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/app_live_tests/state.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/README.md +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/README_CN.md +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/__main__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/app_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/app_editor_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/auth_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/calendar_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/chart_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/chat_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/chatbot_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/config_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/contact_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/department_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/group_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/instance_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/node_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/optionset_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/page_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/post_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/record_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/region_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/role_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/update_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/upload_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/v3_registry.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/workflow_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/commands/worksheet_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/context.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/action_spec_adapter.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/app.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/auth.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/calendar_mod.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/chart.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/chat.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/chatbot.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/cli_access.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/contact.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/control_type_codes.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/department.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/_hapmeta/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/_hapmeta/control_type_codes.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/apply.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/componentlower.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/editspec.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/errors.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/fieldlower.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/jsonschema_mini.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/models.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/ops.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/planner.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/editor/reader.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/field_normalizer.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/field_spec_adapter.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/filter_translator.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/flow_node.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/global_meta.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/group.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/icon_index.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/instance.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/logger.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/optionset.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/page.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/post.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/record.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/response_crypto.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/role.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/role_perm_builder.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/session.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/token_crypto.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/update.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/upload.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/v3/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/v3/dispatcher.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/v3/render.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/v3/schema.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/view_spec_adapter.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/workflow.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/workflow_node_dsl.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/core/worksheet.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/hap_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/i18n.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/locale/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/locale/messages.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/locale/messages.schema.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/conftest.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_app_editor.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_app_export_usage.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_auth_prerelease.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_bug_036430.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_chart.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_cli_access.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_config_cmd.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_destructive_confirm_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_full_e2e.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_global_meta.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_i18n.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_instance_history_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_approval.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_approval_actions.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_calendar.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_destructive.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_misc.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_post.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_social.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_v3.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_workflow.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_integration_worksheet_extra.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_multi_profile.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_org_approval_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_org_id_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_org_id_docs.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_parameter_conventions.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_parameter_mapping_registry.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_record_batch_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_record_field_alias.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_record_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_semantic_types_registry.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_update.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_v3_api_schema_loader.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_v3_dispatcher.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_v3_registry_coverage.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_v3_session.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_v3_yaml_translation.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_workflow_list_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_workflow_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_worksheet_crud_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/tests/test_worksheet_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/utils/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/utils/formatting.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/utils/options.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli/utils/parameter_mapping.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli.egg-info/SOURCES.txt +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli.egg-info/dependency_links.txt +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli.egg-info/entry_points.txt +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli.egg-info/requires.txt +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/hap_cli.egg-info/top_level.txt +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/__main__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/_wftest.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/charts.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/cleanup.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/compiler.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/config.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/errors.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/executor.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/fields.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/hap.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/recording/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/recording/console.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/recording/jsonl.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/recording/mirror.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/recording/report.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/schema.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/seed/__init__.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/seed/cli.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/seed/executor.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/seed/template.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/selftest.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/smoke.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/step.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/steps.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/store.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/live_tests/workflow_dsl.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/setup.cfg +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/setup.py +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/component.schema.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/custom-action.schema.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/envelope.schema.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/field.schema.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/INDEX.json +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/add_member_to_role.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/batch_delete_records.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/create_optionset.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/create_role.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/delete_optionset.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/delete_record.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/delete_role.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/delete_worksheet.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_app_info.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_app_knowledge_list.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_app_worksheets_list.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_optionset_list.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_details.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_discussions.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_list.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_logs.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_pivot_data.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_relations.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_record_share_link.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_regions.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_role_details.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/get_role_list.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/knowledge_search.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/leave_all_roles.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/remove_member_from_role.yaml +0 -0
- {hap_cli-0.8.7 → hap_cli-0.8.8}/sources/v3-api-schema/update_optionset.yaml +0 -0
|
@@ -31,9 +31,10 @@ def _icon_table(rows):
|
|
|
31
31
|
@click.option(
|
|
32
32
|
"--limit",
|
|
33
33
|
type=int,
|
|
34
|
-
default=
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
default=None,
|
|
35
|
+
help="Maximum number of icons to return. Caps the result exactly — "
|
|
36
|
+
"--limit 5 returns at most 5. Defaults to 20 for a keyword search, "
|
|
37
|
+
"or the whole catalogue when browsing with no keyword.",
|
|
37
38
|
)
|
|
38
39
|
@pass_context
|
|
39
40
|
def icon_search(ctx, query, limit):
|
|
@@ -41,19 +42,24 @@ def icon_search(ctx, query, limit):
|
|
|
41
42
|
|
|
42
43
|
Pass one or more keywords; an icon must relate to every keyword to
|
|
43
44
|
match. With no keyword, lists the whole catalogue. When fewer than
|
|
44
|
-
10 icons match, random suggestions top the list up to 10
|
|
45
|
-
always have something to pick from. Use the
|
|
46
|
-
the --icon option of app/worksheet creation.
|
|
45
|
+
10 icons match, random suggestions top the list up to 10 (never more
|
|
46
|
+
than --limit) so you always have something to pick from. Use the
|
|
47
|
+
returned icon name with the --icon option of app/worksheet creation.
|
|
47
48
|
"""
|
|
48
49
|
try:
|
|
49
|
-
# With no keyword the command acts as "browse all"; the limit
|
|
50
|
-
# only narrows an actual keyword search.
|
|
51
|
-
effective_limit = limit if query else None
|
|
52
|
-
rows = ic_mod.search_icons(list(query), limit=effective_limit)
|
|
53
50
|
if query:
|
|
51
|
+
# Keyword search: default to 20 matches; an explicit --limit
|
|
52
|
+
# is the exact upper bound, and the random-suggestion floor
|
|
53
|
+
# never exceeds it either.
|
|
54
|
+
effective_limit = limit if limit is not None else 20
|
|
55
|
+
rows = ic_mod.search_icons(list(query), limit=effective_limit)
|
|
54
56
|
rows = ic_mod.pad_with_random_icons(
|
|
55
|
-
rows, target=min(10, max(0,
|
|
57
|
+
rows, target=min(10, max(0, effective_limit))
|
|
56
58
|
)
|
|
59
|
+
else:
|
|
60
|
+
# Browse all by default; honor an explicit --limit if given.
|
|
61
|
+
# search_icons treats None as "no truncation".
|
|
62
|
+
rows = ic_mod.search_icons(list(query), limit=limit)
|
|
57
63
|
ctx.output(rows, _icon_table)
|
|
58
64
|
except Exception as e:
|
|
59
65
|
ctx.handle_error(e)
|
|
@@ -407,8 +407,14 @@ def build_control(
|
|
|
407
407
|
spec = dict(spec)
|
|
408
408
|
child_type = spec.pop("type")
|
|
409
409
|
child_name = spec.pop("name")
|
|
410
|
+
# row/col default to the child's position in the list, but a
|
|
411
|
+
# child spec may pin its own grid coordinates (the skill emits
|
|
412
|
+
# row/size per child). Seed defaults then let the spec win, so
|
|
413
|
+
# an explicit `row`/`col` in spec does not collide with a
|
|
414
|
+
# positional kwarg ("multiple values for 'row'").
|
|
415
|
+
child_kwargs = {"row": i, "col": 0, **spec}
|
|
410
416
|
built.append(build_control(
|
|
411
|
-
child_type, child_name,
|
|
417
|
+
child_type, child_name, **child_kwargs,
|
|
412
418
|
))
|
|
413
419
|
relation_controls = built
|
|
414
420
|
|
|
@@ -6911,6 +6911,25 @@ class TestBuildControlAcceptsBuilderCode:
|
|
|
6911
6911
|
)
|
|
6912
6912
|
assert ctrl["type"] == 19 # AREA_PROVINCE
|
|
6913
6913
|
|
|
6914
|
+
def test_sublist_child_fields_carry_row_col_size(self):
|
|
6915
|
+
"""A SUB_LIST child spec may carry its own grid keys (row/col/size).
|
|
6916
|
+
The inline-child loop pre-seeds row=i/col=0 as defaults, so passing
|
|
6917
|
+
a child whose spec also has `row` must NOT raise "multiple values
|
|
6918
|
+
for keyword argument 'row'" — the spec value wins."""
|
|
6919
|
+
from hap_cli.core import worksheet_templates as wt
|
|
6920
|
+
ctrl = wt.build_control(
|
|
6921
|
+
"SUB_LIST", "明细",
|
|
6922
|
+
child_fields=[
|
|
6923
|
+
{"type": "Text", "name": "产品名称", "row": 0, "size": 6},
|
|
6924
|
+
{"type": "Currency", "name": "单价",
|
|
6925
|
+
"row": 1, "col": 1, "size": 6, "extra": {"dot": 2}},
|
|
6926
|
+
],
|
|
6927
|
+
)
|
|
6928
|
+
children = ctrl["relationControls"]
|
|
6929
|
+
assert [c["controlName"] for c in children] == ["产品名称", "单价"]
|
|
6930
|
+
# spec-provided row/col take precedence over the loop's defaults.
|
|
6931
|
+
assert (children[1]["row"], children[1]["col"]) == (1, 1)
|
|
6932
|
+
|
|
6914
6933
|
|
|
6915
6934
|
class TestCreateWorksheetWithFields:
|
|
6916
6935
|
"""`worksheet create --fields JSON` aggregates AddWorkSheet +
|
|
@@ -9293,6 +9312,34 @@ class TestIconIndex:
|
|
|
9293
9312
|
data = json.loads(result.output)
|
|
9294
9313
|
assert len(data) == 3
|
|
9295
9314
|
|
|
9315
|
+
def test_cli_icon_search_small_limit_returns_exact_count(self):
|
|
9316
|
+
"""An explicit --limit below the default returns exactly that many
|
|
9317
|
+
rows for a keyword with plenty of real matches."""
|
|
9318
|
+
runner = CliRunner()
|
|
9319
|
+
for limit in (1, 5):
|
|
9320
|
+
result = runner.invoke(
|
|
9321
|
+
cli, ["--json", "icon", "search", "统计", "--limit", str(limit)]
|
|
9322
|
+
)
|
|
9323
|
+
assert result.exit_code == 0, result.output
|
|
9324
|
+
data = json.loads(result.output)
|
|
9325
|
+
assert len(data) == limit
|
|
9326
|
+
|
|
9327
|
+
def test_cli_icon_search_no_keyword_honors_limit(self):
|
|
9328
|
+
"""Browsing with no keyword still caps the result at --limit."""
|
|
9329
|
+
runner = CliRunner()
|
|
9330
|
+
result = runner.invoke(cli, ["--json", "icon", "search", "--limit", "5"])
|
|
9331
|
+
assert result.exit_code == 0, result.output
|
|
9332
|
+
data = json.loads(result.output)
|
|
9333
|
+
assert len(data) == 5
|
|
9334
|
+
|
|
9335
|
+
def test_cli_icon_search_no_keyword_no_limit_browses_all(self):
|
|
9336
|
+
"""No keyword and no --limit still lists the whole catalogue."""
|
|
9337
|
+
runner = CliRunner()
|
|
9338
|
+
result = runner.invoke(cli, ["--json", "icon", "search"])
|
|
9339
|
+
assert result.exit_code == 0, result.output
|
|
9340
|
+
data = json.loads(result.output)
|
|
9341
|
+
assert len(data) >= 400
|
|
9342
|
+
|
|
9296
9343
|
def test_cli_icon_list_default_page(self):
|
|
9297
9344
|
runner = CliRunner()
|
|
9298
9345
|
result = runner.invoke(cli, ["--json", "icon", "list"])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/component.schema.json
RENAMED
|
File without changes
|
{hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/custom-action.schema.json
RENAMED
|
File without changes
|
{hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/envelope.schema.json
RENAMED
|
File without changes
|
{hap_cli-0.8.7 → hap_cli-0.8.8}/skills/hap-cli-app-editor/scripts/editspec/field.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|