ellf-cli 18.0.3__tar.gz → 18.0.6__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.
- {ellf_cli-18.0.3/ellf_cli.egg-info → ellf_cli-18.0.6}/PKG-INFO +1 -1
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/README.md +4 -4
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/users.py +22 -4
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf.json +9 -9
- ellf_cli-18.0.6/ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec +3 -0
- ellf_cli-18.0.6/ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c +3 -0
- ellf_cli-18.0.6/ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97 +3 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6/ellf_cli.egg-info}/PKG-INFO +1 -1
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli.egg-info/SOURCES.txt +4 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_users_assign.py +10 -3
- ellf_cli-18.0.6/tests/test_users_list.py +77 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/LICENSE +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/MANIFEST.in +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/__main__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/about.json +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/about.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/appdirs.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/auth.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/cli.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/cloud/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/cloud/gcp.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/cluster_config.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_cluster_select.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_org_select.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_project_scope.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_recipe_file.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_recipe_subcommand.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_state.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/_usage.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/actions.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/agents.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/assets.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/auth.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/clusters.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/config.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/datasets.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/files/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/files/cp.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/files/ls.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/files/rm.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/files/rsync.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/files/stats.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/general.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/import_export.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/_config_io.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/_helpers.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/configure.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/deploy.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/init.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/init_values.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/provision.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/register.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/setup.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/start.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/terraform.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/infra/tls.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/jobs.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/packages.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/paths.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/plans.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/projects.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/publish_code.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/publish_data.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/recipes.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/secrets.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/services.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/support.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/tasks.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/commands/todos.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/config.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/.claude-plugin/plugin.json +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/.gitignore +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skill_variants.json +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/references/annotation_audit.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/references/builtin_ellf_annotation_recipes.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/annotation_audit.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/builtin_ellf_annotation_recipes.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/builtin_prodigy_recipes.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-ask/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/training_monitoring.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/annotation_metrics.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/training_monitoring.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/scripts/check_training.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-ops.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-ops.coding/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-ops.coding/references/data_infra_cli.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-ops.coding/scripts/run_job.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-patterns/references/pattern_strategies.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_action_recipe.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_agent_recipe.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_blocks_ui.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_correct.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_custom_ui.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_manual.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_pages_ui.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_routing.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_task_recipe.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_teach.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/builtin_recipes.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/ellf_recipe_sdk.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/lint_recipe.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/prodigy_recipe_api.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/template_index.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/consulting_patterns.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/explosion_strategy.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/prodigy_llm_bot.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.coding/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/consulting_patterns.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/explosion_strategy.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/prodigy_llm_bot.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-support.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-support.coding/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-todo/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/diagnostics.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/evaluation_guide.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/model_selection.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/training_paradigms.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/workflow.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/SKILL.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_advanced.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_architectures.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_training.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/diagnostics.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/evaluation_guide.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/experiment_patterns.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/model_selection.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_paradigms.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_troubleshooting.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/workflow.md +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-train.coding/scripts/ellf_logger.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/errors.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/helm.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/interactivity.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/key_pair.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/main.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/messages.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/pypi_auth.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/query.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/cookiecutter.json +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/.gitignore +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/README.md.tmpl +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements-dev.in +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements.in +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/setup.py.tmpl +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/about.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/example_task.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/testing/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ty.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ui.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/url.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/util.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.114_2026-08-19-08-36-57__1a4e37c1-471e-4a81-b4d5-1ffe7dec3a61 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.114_2026-08-19-09-25-21_patch_33ff1e26-0e5e-46d8-8052-ab1d032e8b6c +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.115_2026-08-19-09-27-13_patch_4ac728c3-0342-4a36-adbc-e28d2d99b1ba +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.116_2026-08-19-09-30-47_patch_c706fef6-6813-4183-b268-12e7b00d7d0b +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.117_2026-08-19-09-39-14_patch_c6b0495f-2f88-4aa8-9ebf-0a235b4c407e +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.118_2026-08-19-09-52-00_patch_b395655a-8d78-4344-9266-6901c20f6517 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.119_2026-08-19-10-22-38_patch_8f95c49d-aedc-41b8-816d-ccb95f048831 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.120_2026-08-19-10-26-58_patch_7fbf35e6-cc01-4b75-8c9a-f5d054bcaf93 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.121_2026-08-19-10-42-02_patch_31a81b02-a886-4dea-84e0-67cc6ca412d5 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.122_2026-08-19-11-16-49_patch_1c4d7307-48d4-493e-936d-80af799d644b +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.123_2026-08-19-11-47-32_patch_d3d78d04-9989-45b1-91b1-93b571d8814a +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.124_2026-08-20-08-03-17_patch_57f4c389-2d19-41ce-aca4-13b61c62f387 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.125_2026-08-20-08-25-05_patch_7f368148-0d1c-4525-bbdf-c6d257ad861a +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.126_2026-08-20-14-51-36_patch_a99abcc8-3371-4c63-a759-bb7ea5b32432 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.127_2026-08-21-05-48-58_patch_34b4ccee-7596-4f57-93e9-774973cca58e +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.128_2026-08-21-10-47-20_patch_693112b9-927c-4a8f-8553-b06eef86079d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.129_2026-08-21-11-16-54_patch_7a981666-01d9-4d1b-9ba3-2129744e3bd5 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.130_2026-08-21-13-09-36_patch_b7ad1a76-ce70-4d70-9d1a-7c414eba5bb4 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.131_2026-08-21-14-31-10_patch_9128ef66-193e-4caf-8710-afd86128e638 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.132_2026-08-24-08-59-34_patch_c600fc14-86a5-460f-9c4e-f0177056f756 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.133_2026-08-24-10-28-29_patch_b6ce3e32-9d7b-48ac-981a-270c22c180dd +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.134_2026-08-24-11-00-51_patch_a4fc0484-4a64-46a2-94f8-aa805254c7b0 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.135_2026-08-24-12-12-41_patch_a870a56f-9a65-49eb-92da-f572b26667d8 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.136_2026-08-24-12-42-46_patch_9b399356-6482-4291-8da7-e748a99c4b53 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.137_2026-08-24-12-53-57_patch_f7979348-1910-40cd-a535-90299eca84ee +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.138_2026-08-24-14-36-30_patch_ed0f8750-f663-498b-85e7-0d3f2213fcfe +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.139_2026-08-25-08-37-26_patch_3ba87e19-902b-4f76-b64c-90e5c0ca1fc6 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.140_2026-08-25-09-52-45_patch_abc830f2-df15-4385-b797-cdaf72c10752 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.141_2026-08-25-11-37-20_patch_1d9ec01e-06f6-4c8e-b095-af17d5b62b00 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.142_2026-08-26-07-38-49_patch_3dd23e36-e7df-494c-986f-a412861a8d40 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.143_2026-08-26-09-32-32_patch_7b7ebd34-de27-4b73-98a7-3e1501e16cd5 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.144_2026-08-26-10-56-43_patch_166064f2-2208-4c9b-9e25-25dc4cd32084 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.145_2026-08-26-11-37-29_patch_b997f3ee-d7d3-4408-9f2f-c8b6d08bdb3b +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.146_2026-08-26-12-15-20_patch_afbbb893-25db-468c-81db-2663ca373068 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.147_2026-08-26-14-10-50_patch_fd753b1f-2fa1-4ddb-a9e7-de690da85254 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.148_2026-08-27-09-08-35_patch_23814c0b-7f77-489c-b4a8-ceadd18146e3 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.149_2026-08-27-09-40-17_patch_8879d72e-a3d8-4abc-a16a-d9dcf75f0fa1 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.150_2026-08-27-10-57-25_patch_afbe60ed-3e23-4d88-be3c-f800d7002a7d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.151_2026-08-28-09-02-46_patch_1d4ca23b-aeae-4ea8-96b1-8cf57371f29d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.152_2026-08-28-15-37-24_patch_c9d0bdc1-a7e1-432b-92b9-92dc76fe0c78 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.153_2026-08-29-09-03-27_patch_7531573a-1b33-4092-aa9c-0e65f47b201f +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.154_2026-08-29-11-56-35_patch_919f5787-39c8-4dc1-ae6a-f27c28380f21 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.155_2026-08-29-15-15-59_patch_822f9ed8-c366-4e5f-9791-dee8467cf3ce +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.156_2026-08-29-16-19-01_patch_3ac2bf36-20f7-4c9f-9fdb-295d4466d59e +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.157_2026-08-30-17-32-17_patch_4302354c-c9c5-4be7-acd3-542872a748d8 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.158_2026-08-31-09-28-33_patch_3523774f-c25d-4102-8c1a-92fff046a48d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.159_2026-08-31-10-31-01_patch_fe3e6290-2553-4154-a0a0-8b8a418280ed +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.160_2026-08-31-11-23-39_patch_e701a085-3d23-4212-b0af-73b1d419a4c1 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.161_2026-08-31-12-41-01_patch_074d7bde-c493-44db-bc15-e81fd91e2921 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.162_2026-08-31-13-58-06_patch_84db1d60-4280-433b-bd3a-22e5611cd315 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.163_2026-08-31-15-25-54_patch_1931c5ba-73df-48cb-8dcb-555ace0af267 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.163_2026-08-31-15-44-37_patch_3962e805-2a92-494a-a87b-b6e6d66c40a0 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.165_2026-08-31-19-48-59_patch_86e5b923-2b99-4b86-b542-469b197614be +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.166_2026-09-01-07-39-57_patch_c344892f-d542-4e7b-8f27-02365a411e15 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.167_2026-09-01-08-21-53_patch_e199d419-282a-4dbb-8756-cf98b7037e2b +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.168_2026-09-01-09-12-31_patch_235c9fe0-da15-431d-bb56-01e2b9b15f4b +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.169_2026-09-01-11-54-19_patch_98b617ab-d130-42b5-93f2-19cae56d4c4c +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.170_2026-09-02-09-27-28_patch_e448d2e6-b7ec-4235-96bf-0173b3623c87 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.171_2026-09-02-12-52-44_patch_e6a241c2-1d62-482c-a9eb-9e3373395c50 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.172_2026-09-04-08-47-04_patch_daae079f-c104-4fcd-bb57-7bff68e80ad9 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.173_2026-09-04-12-34-42_patch_399c4cbd-0c28-4dfd-a4ec-e569420a36e4 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.174_2026-09-04-13-08-48_patch_f5cfe3d5-808e-45e4-bafc-00d0554838ee +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.175_2026-09-04-17-20-46_patch_1ef542fa-5d8e-4d90-aa15-9fc4cea3dfec +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.176_2026-09-05-08-25-05_patch_ced5521f-f9da-4640-a921-95fcb5cd2e6d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.177_2026-09-05-09-00-16_patch_803c1ad4-a9af-4953-92c5-d882dec03ea2 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.178_2026-09-05-09-30-34_patch_012f6259-2e3f-4591-9806-1920fd06cb1f +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.179_2026-09-05-09-33-43_patch_f4bdf28c-d584-47a5-b699-8c883330162c +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.180_2026-09-05-12-02-21_patch_34a14b01-d22d-44a8-ac63-be0370a61422 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.181_2026-09-05-12-47-46_patch_56b18867-99f6-4d5c-8215-7b9d60d34010 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.182_2026-09-05-13-35-18_patch_61b7d4d1-73c8-4603-9b0c-593e7405587f +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.183_2026-09-06-07-27-09_patch_d76331b2-e3a3-4c0b-8412-ecd131b6ac02 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.184_2026-09-06-10-21-47_patch_7680b7a1-49f0-4eef-b12e-4c854407448c +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.185_2026-09-06-10-30-40_patch_e56c2183-77f8-44ef-a92e-7377ea6ce8c1 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.186_2026-09-07-10-00-51_patch_67de5683-d208-4bc0-8fb6-7677377908e7 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.187_2026-09-07-10-18-13_patch_2086cee2-276b-48f7-80ce-6a17397b9541 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.188_2026-09-07-12-51-28_patch_d6590822-068f-4a19-814d-34bbf204ba6e +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.189_2026-09-07-12-55-23_patch_7e0fb04b-4d40-4490-974f-c74ba2ae55a1 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.190_2026-09-08-08-58-03_patch_15e3ac1e-4475-4272-bdd8-d00bb0db8f17 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.191_2026-09-08-09-55-58_patch_3d350e50-ee53-4282-bc75-d2251142c46e +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.192_2026-09-08-11-12-21_patch_0733223b-1ae2-4b5b-897f-dfc57574ff83 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.193_2026-09-08-21-48-17_patch_8d07d4e6-3555-4720-85c9-9452570fae2d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.194_2026-09-09-07-53-43_patch_69559429-aa42-4b62-9bd7-cdfded1c00d0 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.195_2026-09-09-09-55-40_patch_bbf67f1d-3b9a-43a2-b1bc-22df3fed8a34 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.196_2026-09-09-09-59-47_patch_70d76812-7b3c-4192-ad49-fcaccc29b0da +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.197_2026-09-09-13-06-06_patch_d455be0b-5421-492a-b952-fab0fd8110f8 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.198_2026-09-09-13-14-34_patch_267f54e5-311e-435e-882f-8e19191325ea +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.199_2026-09-09-22-24-18_patch_81e3e453-ca0e-42fa-9c21-8f94d43c05f2 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.200_2026-09-10-07-19-50_patch_911714fa-1fa3-4165-bfe6-d10c650bf5bf +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.201_2026-09-10-10-14-19_patch_864015f2-b0b0-4563-a1c8-155629cb9126 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.202_2026-09-10-11-00-05_patch_18270ecf-e770-4e69-8bcf-e5143c39929b +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.203_2026-09-10-11-10-41_patch_ff273ab1-44f3-4bc0-b184-3396e943df04 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.204_2026-09-10-13-02-02_patch_d4ee41e2-d13c-4941-8605-3f1a42b56b22 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.205_2026-09-10-13-57-50_patch_284df67e-5957-4b0c-bc64-5581db6ddecc +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.206_2026-09-11-10-18-50_patch_1ac7e410-0e62-4eef-bbe4-ebf93c9d0869 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/17.0.207_2026-09-11-15-26-02_major_3f1b3ed7-eaac-41f5-b740-0af3331595d9 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/18.0.0_2026-09-12-10-01-10_patch_8995783a-a9fa-4c4e-90b3-6386a4c481eb +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/18.0.1_2026-09-12-17-33-30_patch_f6ea2c99-a715-4c4d-876a-23ed8c62a83d +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/18.0.2_2026-09-13-06-36-33_patch_176bb944-1c49-4dd3-a001-8fce908825a0 +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/__init__.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/version/read_version.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli.egg-info/dependency_links.txt +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli.egg-info/entry_points.txt +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli.egg-info/not-zip-safe +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli.egg-info/requires.txt +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli.egg-info/top_level.txt +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/pyproject.toml +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/setup.cfg +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/setup.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_appdirs.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_auth.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_config.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_errors.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_files_cp.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_files_cp_helpers.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_helm.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_import_export.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_info.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_config_io.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_configure.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_deploy_node_labels.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_get_terraform.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_init.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_provision.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_start_fixes.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_start_validation.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_state_bucket.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_infra_terraform_init.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_invalid_secrets.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_job_list_project_filter.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_jobs_list_unmatched.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_key_pair.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_login.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_logout.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_main.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_org_select.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_plans.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_projects.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_publish_build_poll.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_publish_data.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_publish_import_root.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_publish_requirements.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_pypi_auth.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_query.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_recipe_file.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_recipes.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_state.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_support.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_todos.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_ty.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_ui.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_ui_extras.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_usage_counts.py +0 -0
- {ellf_cli-18.0.3 → ellf_cli-18.0.6}/tests/test_util.py +0 -0
|
@@ -215,7 +215,7 @@ List the agents in a project. Uses your default project unless --project is give
|
|
|
215
215
|
| Argument | Type | Description | Default |
|
|
216
216
|
| --- | --- | --- | --- |
|
|
217
217
|
| `--project` | `str` | Name, slug, or ID of agent's project or the last project if not set | `None` |
|
|
218
|
-
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'state'] | `['id', 'name', 'state']` |
|
|
218
|
+
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'icon', 'state'] | `['id', 'name', 'state']` |
|
|
219
219
|
| `--json` | `bool` | Output the result as JSON | `False` |
|
|
220
220
|
|
|
221
221
|
#### `ellf agents info`
|
|
@@ -227,7 +227,7 @@ Print information about an agent on the cluster
|
|
|
227
227
|
| `name_or_id` | `Union[str, UUID]` | Name or ID of the agent | |
|
|
228
228
|
| `--project` | `str` | Name, slug, or ID of agent's project or the last project if not set | `None` |
|
|
229
229
|
| `--cluster` | `str` | Name, slug, or ID of the cluster to search for agent name (or the last cluster if not set) | `None` |
|
|
230
|
-
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'recipe_name', 'recipe_title', 'project_name', 'error', 'last_execution_id', 'related_tasks', 'created_by_user'] | `None` |
|
|
230
|
+
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'icon', 'recipe_name', 'recipe_title', 'project_name', 'error', 'last_execution_id', 'related_tasks', 'created_by_user'] | `None` |
|
|
231
231
|
| `--json` | `bool` | Output the result as JSON | `False` |
|
|
232
232
|
|
|
233
233
|
#### `ellf agents logs`
|
|
@@ -1431,7 +1431,7 @@ List all users in the organization
|
|
|
1431
1431
|
|
|
1432
1432
|
| Argument | Type | Description | Default |
|
|
1433
1433
|
| --- | --- | --- | --- |
|
|
1434
|
-
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role'] | `['id', 'name', 'email', 'role']` |
|
|
1434
|
+
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status'] | `['id', 'name', 'email', 'role']` |
|
|
1435
1435
|
| `--role` | `str` | Filter by role | `None` |
|
|
1436
1436
|
| `--include-deactivated` | `bool` | Include deactivated users | `False` |
|
|
1437
1437
|
| `--json` | `bool` | Output the result as JSON | `False` |
|
|
@@ -1505,7 +1505,7 @@ List pending invitations
|
|
|
1505
1505
|
|
|
1506
1506
|
| Argument | Type | Description | Default |
|
|
1507
1507
|
| --- | --- | --- | --- |
|
|
1508
|
-
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'role'] | `['id', 'email', 'role', 'claimed']` |
|
|
1508
|
+
| `--select` | `list[str]` | Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'created_by_id', 'role'] | `['id', 'email', 'role', 'claimed']` |
|
|
1509
1509
|
| `--all` | `bool` | Also include invitations that have already been claimed | `False` |
|
|
1510
1510
|
| `--json` | `bool` | Output the result as JSON | `False` |
|
|
1511
1511
|
|
|
@@ -10,6 +10,7 @@ from wasabi import msg
|
|
|
10
10
|
from ellf_pam_sdk import Client as PamClient
|
|
11
11
|
from ellf_pam_sdk.errors import EllfError
|
|
12
12
|
from ellf_pam_sdk.models import (
|
|
13
|
+
AnnotatorType,
|
|
13
14
|
InvitationDetail,
|
|
14
15
|
InvitationReading,
|
|
15
16
|
InvitationSummary,
|
|
@@ -34,6 +35,16 @@ from ._state import get_auth_state
|
|
|
34
35
|
UserRoleName = Literal["admin", "developer", "annotator"]
|
|
35
36
|
|
|
36
37
|
|
|
38
|
+
# What `users list` shows when nothing is asked for. Named because the command
|
|
39
|
+
# adds to it when deactivated users are in the table, and can only tell that
|
|
40
|
+
# the caller wants the default by comparing against it.
|
|
41
|
+
DEFAULT_SELECT = ["id", "name", "email", "role"]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _status_of(user: Union[UserSummary, UserDetail]) -> str:
|
|
45
|
+
return "deactivated" if user.deactivated_at else "active"
|
|
46
|
+
|
|
47
|
+
|
|
37
48
|
def _role_of(user: Union[UserSummary, UserDetail]) -> str:
|
|
38
49
|
if user.is_org_admin:
|
|
39
50
|
return "admin"
|
|
@@ -104,7 +115,7 @@ def _is_assigned(client: PamClient, task_id: UUID, user_id: UUID) -> bool:
|
|
|
104
115
|
so ``is_added`` on a user row is what actually answers this.
|
|
105
116
|
"""
|
|
106
117
|
return any(
|
|
107
|
-
a.id == user_id and a.is_added and a.annotator_type !=
|
|
118
|
+
a.id == user_id and a.is_added and a.annotator_type != AnnotatorType.agent
|
|
108
119
|
for a in client.task.users(task_id)
|
|
109
120
|
)
|
|
110
121
|
|
|
@@ -116,7 +127,7 @@ def _is_assigned(client: PamClient, task_id: UUID, user_id: UUID) -> bool:
|
|
|
116
127
|
select=Arg(
|
|
117
128
|
"--select",
|
|
118
129
|
help=Messages.select.format(
|
|
119
|
-
opts=builtins.list(UserSummary.model_fields) + ["role"]
|
|
130
|
+
opts=builtins.list(UserSummary.model_fields) + ["role", "status"]
|
|
120
131
|
),
|
|
121
132
|
),
|
|
122
133
|
role=Arg("--role", help=Messages.filter_by.format(filter="role")),
|
|
@@ -127,7 +138,7 @@ def _is_assigned(client: PamClient, task_id: UUID, user_id: UUID) -> bool:
|
|
|
127
138
|
# fmt: on
|
|
128
139
|
)
|
|
129
140
|
def list(
|
|
130
|
-
select: builtins.list[str] =
|
|
141
|
+
select: builtins.list[str] = DEFAULT_SELECT,
|
|
131
142
|
role: Optional[UserRoleName] = None,
|
|
132
143
|
include_deactivated: bool = False,
|
|
133
144
|
as_json: bool = False,
|
|
@@ -137,7 +148,14 @@ def list(
|
|
|
137
148
|
query = _role_query(role) if role is not None else UserReading()
|
|
138
149
|
query.include_deactivated = include_deactivated
|
|
139
150
|
items = builtins.list(client.user.all(query))
|
|
140
|
-
rows = [
|
|
151
|
+
rows = [
|
|
152
|
+
{**u.model_dump(), "role": _role_of(u), "status": _status_of(u)} for u in items
|
|
153
|
+
]
|
|
154
|
+
# The status column earns its place only where the table can hold both
|
|
155
|
+
# kinds: without the flag every row reads "active", which is a column
|
|
156
|
+
# saying nothing. A caller who named their own columns keeps them.
|
|
157
|
+
if include_deactivated and select == DEFAULT_SELECT:
|
|
158
|
+
select = [*select, "status"]
|
|
141
159
|
print_table_with_select(rows, select=select, as_json=as_json)
|
|
142
160
|
return items
|
|
143
161
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"prog": "ellf",
|
|
3
3
|
"help": "Ellf Command Line Interface.",
|
|
4
|
-
"version": "18.0.
|
|
4
|
+
"version": "18.0.5",
|
|
5
5
|
"extra_key": "_extra",
|
|
6
6
|
"commands": {
|
|
7
7
|
"actions": {
|
|
@@ -1255,9 +1255,9 @@
|
|
|
1255
1255
|
"id": "select",
|
|
1256
1256
|
"option": "--select",
|
|
1257
1257
|
"short": null,
|
|
1258
|
-
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'state']",
|
|
1258
|
+
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'icon', 'state']",
|
|
1259
1259
|
"default": "['id', 'name', 'state']",
|
|
1260
|
-
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'state'] (list[str])",
|
|
1260
|
+
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'icon', 'state'] (list[str])",
|
|
1261
1261
|
"action": null,
|
|
1262
1262
|
"choices": null,
|
|
1263
1263
|
"has_converter": true,
|
|
@@ -1329,9 +1329,9 @@
|
|
|
1329
1329
|
"id": "select",
|
|
1330
1330
|
"option": "--select",
|
|
1331
1331
|
"short": null,
|
|
1332
|
-
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'recipe_name', 'recipe_title', 'project_name', 'error', 'last_execution_id', 'related_tasks', 'created_by_user']",
|
|
1332
|
+
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'icon', 'recipe_name', 'recipe_title', 'project_name', 'error', 'last_execution_id', 'related_tasks', 'created_by_user']",
|
|
1333
1333
|
"default": null,
|
|
1334
|
-
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'recipe_name', 'recipe_title', 'project_name', 'error', 'last_execution_id', 'related_tasks', 'created_by_user'] (list[str])",
|
|
1334
|
+
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'cluster_id', 'name', 'project_id', 'job_type', 'plan', 'cli_command', 'last_execution_started', 'icon', 'recipe_name', 'recipe_title', 'project_name', 'error', 'last_execution_id', 'related_tasks', 'created_by_user'] (list[str])",
|
|
1335
1335
|
"action": null,
|
|
1336
1336
|
"choices": null,
|
|
1337
1337
|
"has_converter": true,
|
|
@@ -8401,9 +8401,9 @@
|
|
|
8401
8401
|
"id": "select",
|
|
8402
8402
|
"option": "--select",
|
|
8403
8403
|
"short": null,
|
|
8404
|
-
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role']",
|
|
8404
|
+
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status']",
|
|
8405
8405
|
"default": "['id', 'name', 'email', 'role']",
|
|
8406
|
-
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role'] (list[str])",
|
|
8406
|
+
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'name', 'org_id', 'org_name', 'person_id', 'email', 'avatar_url', 'locale', 'is_org_admin', 'is_org_developer', 'last_cluster_id', 'last_project_id', 'deactivated_at', 'role', 'status'] (list[str])",
|
|
8407
8407
|
"action": null,
|
|
8408
8408
|
"choices": null,
|
|
8409
8409
|
"has_converter": true,
|
|
@@ -8801,9 +8801,9 @@
|
|
|
8801
8801
|
"id": "select",
|
|
8802
8802
|
"option": "--select",
|
|
8803
8803
|
"short": null,
|
|
8804
|
-
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'role']",
|
|
8804
|
+
"orig_help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'created_by_id', 'role']",
|
|
8805
8805
|
"default": "['id', 'email', 'role', 'claimed']",
|
|
8806
|
-
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'role'] (list[str])",
|
|
8806
|
+
"help": "Comma-separated fields to select and show in output. Available: ['id', 'created', 'updated', 'org_id', 'email', 'claimed', 'vars', 'created_by_id', 'role'] (list[str])",
|
|
8807
8807
|
"action": null,
|
|
8808
8808
|
"choices": null,
|
|
8809
8809
|
"has_converter": true,
|
|
@@ -264,6 +264,9 @@ ellf_cli/version/17.0.207_2026-09-11-15-26-02_major_3f1b3ed7-eaac-41f5-b740-0af3
|
|
|
264
264
|
ellf_cli/version/18.0.0_2026-09-12-10-01-10_patch_8995783a-a9fa-4c4e-90b3-6386a4c481eb
|
|
265
265
|
ellf_cli/version/18.0.1_2026-09-12-17-33-30_patch_f6ea2c99-a715-4c4d-876a-23ed8c62a83d
|
|
266
266
|
ellf_cli/version/18.0.2_2026-09-13-06-36-33_patch_176bb944-1c49-4dd3-a001-8fce908825a0
|
|
267
|
+
ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec
|
|
268
|
+
ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c
|
|
269
|
+
ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97
|
|
267
270
|
ellf_cli/version/__init__.py
|
|
268
271
|
ellf_cli/version/read_version.py
|
|
269
272
|
tests/test_appdirs.py
|
|
@@ -311,4 +314,5 @@ tests/test_ui.py
|
|
|
311
314
|
tests/test_ui_extras.py
|
|
312
315
|
tests/test_usage_counts.py
|
|
313
316
|
tests/test_users_assign.py
|
|
317
|
+
tests/test_users_list.py
|
|
314
318
|
tests/test_util.py
|
|
@@ -8,7 +8,12 @@ import pytest
|
|
|
8
8
|
|
|
9
9
|
from ellf_cli.commands import users as users_cmd
|
|
10
10
|
from ellf_cli.errors import CLIError
|
|
11
|
-
from ellf_pam_sdk.models import
|
|
11
|
+
from ellf_pam_sdk.models import (
|
|
12
|
+
AnnotatorType,
|
|
13
|
+
EmailReturning,
|
|
14
|
+
TaskAnnotator,
|
|
15
|
+
UserDetail,
|
|
16
|
+
)
|
|
12
17
|
|
|
13
18
|
|
|
14
19
|
def _user(*, admin: bool = False, developer: bool = False) -> UserDetail:
|
|
@@ -35,7 +40,7 @@ def _annotator(
|
|
|
35
40
|
user_id: UUID,
|
|
36
41
|
*,
|
|
37
42
|
is_added: bool = True,
|
|
38
|
-
annotator_type:
|
|
43
|
+
annotator_type: AnnotatorType = AnnotatorType.user,
|
|
39
44
|
) -> TaskAnnotator:
|
|
40
45
|
return TaskAnnotator(
|
|
41
46
|
id=user_id,
|
|
@@ -205,7 +210,9 @@ def test_unassign_does_not_match_an_agent_row(env):
|
|
|
205
210
|
`ellf agents unassign`, so a same-id agent row must not stand in for a
|
|
206
211
|
user assignment."""
|
|
207
212
|
user = _user()
|
|
208
|
-
task_client, _ = env(
|
|
213
|
+
task_client, _ = env(
|
|
214
|
+
user, [_annotator(user.id, annotator_type=AnnotatorType.agent)]
|
|
215
|
+
)
|
|
209
216
|
|
|
210
217
|
with pytest.raises(CLIError):
|
|
211
218
|
users_cmd.unassign(user.email, task="ner-task")
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
|
+
from types import SimpleNamespace
|
|
3
|
+
from typing import Any
|
|
4
|
+
from uuid import uuid4
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
from ellf_cli.commands import users as users_cmd
|
|
9
|
+
from ellf_pam_sdk.models import UserSummary
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _user(name: str, *, deactivated: bool = False) -> UserSummary:
|
|
13
|
+
now = datetime.now(timezone.utc)
|
|
14
|
+
return UserSummary(
|
|
15
|
+
id=uuid4(),
|
|
16
|
+
created=now,
|
|
17
|
+
updated=now,
|
|
18
|
+
name=name,
|
|
19
|
+
org_id=uuid4(),
|
|
20
|
+
org_name="Explosion",
|
|
21
|
+
person_id=uuid4(),
|
|
22
|
+
email=f"{name.lower()}@example.com",
|
|
23
|
+
avatar_url="",
|
|
24
|
+
locale="en",
|
|
25
|
+
is_org_admin=False,
|
|
26
|
+
is_org_developer=False,
|
|
27
|
+
deactivated_at=now if deactivated else None,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.fixture
|
|
32
|
+
def listed(monkeypatch):
|
|
33
|
+
"""Run `users list` against a fixed set of people, and capture the table."""
|
|
34
|
+
printed: dict[str, Any] = {}
|
|
35
|
+
|
|
36
|
+
def _run(users: list[UserSummary], **kwargs: Any) -> dict[str, Any]:
|
|
37
|
+
auth = SimpleNamespace(
|
|
38
|
+
client=SimpleNamespace(user=SimpleNamespace(all=lambda _query: users))
|
|
39
|
+
)
|
|
40
|
+
monkeypatch.setattr(users_cmd, "get_auth_state", lambda: auth)
|
|
41
|
+
monkeypatch.setattr(
|
|
42
|
+
users_cmd,
|
|
43
|
+
"print_table_with_select",
|
|
44
|
+
lambda rows, select, as_json: printed.update(rows=rows, select=select),
|
|
45
|
+
)
|
|
46
|
+
users_cmd.list(**kwargs)
|
|
47
|
+
return printed
|
|
48
|
+
|
|
49
|
+
return _run
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def test_listing_deactivated_users_says_which_they_are(listed):
|
|
53
|
+
"""Both kinds are in the table, so a column has to tell them apart."""
|
|
54
|
+
printed = listed(
|
|
55
|
+
[_user("Ann"), _user("Bo", deactivated=True)], include_deactivated=True
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
assert printed["select"] == ["id", "name", "email", "role", "status"]
|
|
59
|
+
assert [row["status"] for row in printed["rows"]] == ["active", "deactivated"]
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def test_the_default_listing_spends_no_column_on_status(listed):
|
|
63
|
+
"""Without the flag every row is active, and the column says nothing."""
|
|
64
|
+
printed = listed([_user("Ann")])
|
|
65
|
+
|
|
66
|
+
assert printed["select"] == ["id", "name", "email", "role"]
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def test_chosen_columns_are_left_alone(listed):
|
|
70
|
+
"""Asking for columns is asking for those columns."""
|
|
71
|
+
printed = listed(
|
|
72
|
+
[_user("Ann", deactivated=True)],
|
|
73
|
+
include_deactivated=True,
|
|
74
|
+
select=["name", "email"],
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
assert printed["select"] == ["name", "email"]
|
|
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
|
{ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-ops.coding/scripts/run_job.py
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
|
{ellf_cli-18.0.3 → ellf_cli-18.0.6}/ellf_cli/ellf_skills/skills/ellf-project.assistant/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|