mammoth-cli 2.2.49__tar.gz → 2.2.50__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.
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/PKG-INFO +1 -1
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/__init__.py +1 -1
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/view.py +23 -8
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/data_quality.py +42 -14
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/pyproject.toml +1 -1
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/.gitignore +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/LICENSE +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/README.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/__main__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/app.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/activity.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/addon.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/agent.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/ai.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/annotation.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/auth.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/automation.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/batch.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/billing.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/browse.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/calc.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/capability.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/client_app.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/completion.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/config.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/connector.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/context.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/dashboard.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/data_app.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/dataset.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/doctor.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/external_key.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/file.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/folder.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/job.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/link.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/notification.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/parameter.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/project.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/registry.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/report.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/resolve.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/schedule.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/schema.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/skill.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/snippet.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/support.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/template.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/trash.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/upgrade.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/user.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/view_ops.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/view_profile.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/webhook.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/workflow.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/workspace.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/credentials.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/endpoint.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/oauth.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/profiles.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/resolver.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/contracts/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/contracts/auth.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/embed.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/errors/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/errors/envelope.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/manifest/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/manifest/loader.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/messages/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/envelope.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/normalize.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/policy.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/progress.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/render.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/py.typed +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/confirm.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/dataset_health.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/dryrun.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/dryrun_targets.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/embedded.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/executor.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/input_loader.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/intent_only.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/invocation.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/locked_files.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/new_data.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/options.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/parents.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/runlog.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/session.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/state.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/strict.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/updates.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/validate.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/verify.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/append_blank_columns.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/argspec.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/board_values.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/coerce.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/command_contract.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/conditional_format.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/conditions.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dashboard_filters.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dashboard_pages.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dashboard_review.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/data_profile.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dispatch.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/factory.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/input_fields.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/job_outcome.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/listing.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/local_time.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/mapping.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/openapi_types.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/positionals.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/protocol.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/read_queries.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/sdk_service.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/sql_check.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/stored_stats.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/testing.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/text_dates.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/type_system.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/view_analysis.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/view_variants.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/write_impact.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/skills/__init__.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/skills/installer.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/skills/steering.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/testing.py +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/activity.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/addon.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/agent.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/ai.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/annotation.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/auth.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/automation.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/batch.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/billing.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/browse.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/calc.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/capability.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/client-app.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/completion.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/config.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/connector.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/context.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/dashboard.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/data-app.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/dataset.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/doctor.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/external-key.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/file.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/folder.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/job.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/link.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/log.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/notification.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/parameter.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/project.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/report.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/resolve.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/schedule.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/schema.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/skill.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/snippet.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/support.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/template.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/token.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/trash.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/upgrade.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/user.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/version.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/view.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/webhook.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/workflow.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/workspace.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/edits-target.source.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/openapi-operations.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/schema-v1.json +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/sdk-catalog.source.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/sdk-methods.yaml +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/openapi/metadata.json +0 -0
- {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/openapi/openapi.json +0 -0
|
@@ -1547,19 +1547,32 @@ def _relabel_and_check(
|
|
|
1547
1547
|
rows = data.get(_ROWS_KEY) if isinstance(data, dict) else None
|
|
1548
1548
|
if not isinstance(rows, list) or not rows:
|
|
1549
1549
|
data = _relabel_columns(service, dataset_id, view_id, project_id, data, mapping)
|
|
1550
|
-
return _with_column_warnings(
|
|
1550
|
+
return _with_column_warnings(
|
|
1551
|
+
data, types or {}, view_id, dataset_id, read_only=True, project_id=project_id
|
|
1552
|
+
)
|
|
1551
1553
|
if mapping is None or types is None:
|
|
1552
1554
|
mapping, types = _column_profile(service, dataset_id, view_id, project_id)
|
|
1553
1555
|
data = _relabel_columns(service, dataset_id, view_id, project_id, data, mapping)
|
|
1554
|
-
data = _with_column_warnings(
|
|
1555
|
-
|
|
1556
|
+
data = _with_column_warnings(
|
|
1557
|
+
data, types, view_id, dataset_id, read_only=True, project_id=project_id
|
|
1558
|
+
)
|
|
1559
|
+
return _with_duplicates_fact(data, view_id, dataset_id, whole_view, project_id=project_id)
|
|
1556
1560
|
|
|
1557
1561
|
|
|
1558
|
-
def _with_duplicates_fact(
|
|
1562
|
+
def _with_duplicates_fact(
|
|
1563
|
+
data: Any,
|
|
1564
|
+
view_id: int,
|
|
1565
|
+
dataset_id: int | None,
|
|
1566
|
+
whole_view: bool,
|
|
1567
|
+
*,
|
|
1568
|
+
project_id: int | None = None,
|
|
1569
|
+
) -> Any:
|
|
1559
1570
|
"""Add ``duplicates``: the read's own statement about exact duplicate rows."""
|
|
1560
1571
|
if not isinstance(data, dict) or not isinstance(data.get(_ROWS_KEY), list):
|
|
1561
1572
|
return data
|
|
1562
|
-
fact = duplicate_rows_fact(
|
|
1573
|
+
fact = duplicate_rows_fact(
|
|
1574
|
+
data[_ROWS_KEY], view_id, dataset_id, whole_view=whole_view, project_id=project_id
|
|
1575
|
+
)
|
|
1563
1576
|
return {**data, "duplicates": fact} if fact is not None else data
|
|
1564
1577
|
|
|
1565
1578
|
|
|
@@ -1580,6 +1593,7 @@ def _with_column_warnings(
|
|
|
1580
1593
|
view_id: int,
|
|
1581
1594
|
dataset_id: int | None = None,
|
|
1582
1595
|
read_only: bool = False,
|
|
1596
|
+
project_id: int | None = None,
|
|
1583
1597
|
) -> Any:
|
|
1584
1598
|
"""Add ``column_checks`` (always) and ``column_warnings`` (when found).
|
|
1585
1599
|
|
|
@@ -1590,7 +1604,7 @@ def _with_column_warnings(
|
|
|
1590
1604
|
if not isinstance(data, dict) or not isinstance(data.get(_ROWS_KEY, []), list):
|
|
1591
1605
|
return data
|
|
1592
1606
|
checks, warnings = _check_columns(
|
|
1593
|
-
data.get(_ROWS_KEY) or [], types, view_id, dataset_id, read_only
|
|
1607
|
+
data.get(_ROWS_KEY) or [], types, view_id, dataset_id, read_only, project_id
|
|
1594
1608
|
)
|
|
1595
1609
|
out = {**data, "column_checks": checks}
|
|
1596
1610
|
return {**out, "column_warnings": warnings} if warnings else out
|
|
@@ -1602,6 +1616,7 @@ def _check_columns(
|
|
|
1602
1616
|
view_id: int,
|
|
1603
1617
|
dataset_id: int | None,
|
|
1604
1618
|
read_only: bool = False,
|
|
1619
|
+
project_id: int | None = None,
|
|
1605
1620
|
) -> tuple[dict[str, Any], list[dict[str, Any]]]:
|
|
1606
1621
|
"""Run ``column_warnings`` and describe what was checked (never raises)."""
|
|
1607
1622
|
checks: dict[str, Any] = {
|
|
@@ -1613,7 +1628,7 @@ def _check_columns(
|
|
|
1613
1628
|
warnings: list[dict[str, Any]] = []
|
|
1614
1629
|
if rows and types:
|
|
1615
1630
|
try:
|
|
1616
|
-
warnings = column_warnings(rows, types, view_id, dataset_id, read_only)
|
|
1631
|
+
warnings = column_warnings(rows, types, view_id, dataset_id, read_only, project_id)
|
|
1617
1632
|
except Exception as exc: # noqa: BLE001 -- a presentation aid must not fail the read
|
|
1618
1633
|
checks["checked"] = []
|
|
1619
1634
|
checks["error"] = f"{type(exc).__name__}: {exc}"
|
|
@@ -4789,7 +4804,7 @@ def upload_preview(
|
|
|
4789
4804
|
rows = [row for row in rows or [] if isinstance(row, dict)]
|
|
4790
4805
|
except Exception as exc: # noqa: BLE001 -- a preview must never fail the upload
|
|
4791
4806
|
return {"preview_error": f"{type(exc).__name__}: {exc}"}
|
|
4792
|
-
checks, warnings = _check_columns(rows, types, view_id, dataset_id)
|
|
4807
|
+
checks, warnings = _check_columns(rows, types, view_id, dataset_id, project_id=project_id)
|
|
4793
4808
|
preview: dict[str, Any] = {
|
|
4794
4809
|
"view_id": view_id,
|
|
4795
4810
|
"view_name": record.get("name"),
|
|
@@ -65,18 +65,31 @@ def _is_date(text: str) -> bool:
|
|
|
65
65
|
return False
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
def
|
|
68
|
+
def _project_flag(project_id: int | None) -> str:
|
|
69
|
+
"""`` --project N`` for a fix command, or nothing when the project is not known."""
|
|
70
|
+
return f" --project {project_id}" if project_id is not None else ""
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _convert_hint(view_id: int | None, column: str, to: str, project_id: int | None) -> str:
|
|
69
74
|
target = str(view_id) if view_id is not None else "VIEW_ID"
|
|
70
75
|
spec = json.dumps({"conversions": [{"column": column, "to": to}]})
|
|
71
|
-
return
|
|
76
|
+
return (
|
|
77
|
+
f"mammoth view transform convert-type {target} --input {shlex.quote(spec)}"
|
|
78
|
+
f"{_project_flag(project_id)}"
|
|
79
|
+
)
|
|
72
80
|
|
|
73
81
|
|
|
74
|
-
def _bulk_replace_hint(
|
|
82
|
+
def _bulk_replace_hint(
|
|
83
|
+
view_id: int | None, column: str, mapping: list[dict[str, Any]], project_id: int | None
|
|
84
|
+
) -> str:
|
|
75
85
|
target = str(view_id) if view_id is not None else "VIEW_ID"
|
|
76
86
|
spec = json.dumps(
|
|
77
87
|
{"columns": [column], "mapping": mapping, "match_case": True, "match_words": True}
|
|
78
88
|
)
|
|
79
|
-
return
|
|
89
|
+
return (
|
|
90
|
+
f"mammoth view transform bulk-replace {target} --input {shlex.quote(spec)}"
|
|
91
|
+
f"{_project_flag(project_id)}"
|
|
92
|
+
)
|
|
80
93
|
|
|
81
94
|
|
|
82
95
|
def _spelling_key(text: str) -> str:
|
|
@@ -149,6 +162,7 @@ def _variant_spellings_warning(
|
|
|
149
162
|
texts: list[str],
|
|
150
163
|
view_id: int | None,
|
|
151
164
|
checked: int,
|
|
165
|
+
project_id: int | None,
|
|
152
166
|
) -> dict[str, Any] | None:
|
|
153
167
|
groups = _variant_spelling_groups(texts)
|
|
154
168
|
if not groups:
|
|
@@ -172,7 +186,7 @@ def _variant_spellings_warning(
|
|
|
172
186
|
"column": column,
|
|
173
187
|
"issue": "variant_spellings",
|
|
174
188
|
"detail": detail,
|
|
175
|
-
"fix": _bulk_replace_hint(view_id, column, mapping),
|
|
189
|
+
"fix": _bulk_replace_hint(view_id, column, mapping, project_id),
|
|
176
190
|
"rows_checked": checked,
|
|
177
191
|
}
|
|
178
192
|
|
|
@@ -206,6 +220,7 @@ def _renamed_label_warning(
|
|
|
206
220
|
column: str,
|
|
207
221
|
date_column: str,
|
|
208
222
|
view_id: int | None,
|
|
223
|
+
project_id: int | None,
|
|
209
224
|
) -> dict[str, Any] | None:
|
|
210
225
|
"""A label that stops before a longer label starting with its words begins
|
|
211
226
|
reads as one thing renamed ("Riverside" -> "Riverside Mall"): left apart, its
|
|
@@ -240,7 +255,7 @@ def _renamed_label_warning(
|
|
|
240
255
|
"its figures split across two names and a period comparison shows a drop "
|
|
241
256
|
"and a new entry that are the same thing; confirm, then unify them."
|
|
242
257
|
),
|
|
243
|
-
"fix": _bulk_replace_hint(view_id, column, mapping),
|
|
258
|
+
"fix": _bulk_replace_hint(view_id, column, mapping, project_id),
|
|
244
259
|
"rows_checked": len(rows),
|
|
245
260
|
}
|
|
246
261
|
|
|
@@ -273,6 +288,7 @@ def duplicate_rows_fact(
|
|
|
273
288
|
dataset_id: int | None,
|
|
274
289
|
*,
|
|
275
290
|
whole_view: bool,
|
|
291
|
+
project_id: int | None = None,
|
|
276
292
|
) -> dict[str, Any] | None:
|
|
277
293
|
"""The read's positive statement about exact duplicate rows (zero included).
|
|
278
294
|
|
|
@@ -308,7 +324,7 @@ def duplicate_rows_fact(
|
|
|
308
324
|
spec = json.dumps({"dataset_id": dataset_id})
|
|
309
325
|
fact["table_wide_check"] = (
|
|
310
326
|
f"mammoth view transform discard-duplicates {view_id} "
|
|
311
|
-
f"--input {shlex.quote(spec)} --dry-run"
|
|
327
|
+
f"--input {shlex.quote(spec)} --dry-run{_project_flag(project_id)}"
|
|
312
328
|
)
|
|
313
329
|
return fact
|
|
314
330
|
|
|
@@ -317,6 +333,7 @@ def _duplicate_rows_warning(
|
|
|
317
333
|
rows: list[Mapping[str, Any]],
|
|
318
334
|
view_id: int | None,
|
|
319
335
|
dataset_id: int | None,
|
|
336
|
+
project_id: int | None,
|
|
320
337
|
) -> dict[str, Any] | None:
|
|
321
338
|
"""Return a table-level warning when the page itself holds exact duplicates.
|
|
322
339
|
|
|
@@ -340,6 +357,7 @@ def _duplicate_rows_warning(
|
|
|
340
357
|
spec = json.dumps({"dataset_id": dataset_id})
|
|
341
358
|
warning["fix"] = (
|
|
342
359
|
f"mammoth view transform discard-duplicates {view_id} --input {shlex.quote(spec)}"
|
|
360
|
+
f"{_project_flag(project_id)}"
|
|
343
361
|
)
|
|
344
362
|
return warning
|
|
345
363
|
|
|
@@ -389,11 +407,16 @@ def _blank_values_warning(
|
|
|
389
407
|
}
|
|
390
408
|
|
|
391
409
|
|
|
392
|
-
def _remove_blank_rows_hint(
|
|
410
|
+
def _remove_blank_rows_hint(
|
|
411
|
+
view_id: int, dataset_id: int, column: str, project_id: int | None
|
|
412
|
+
) -> str:
|
|
393
413
|
spec = json.dumps(
|
|
394
414
|
{"condition": {"column": column, "operator": "IS_NOT_EMPTY"}, "dataset_id": dataset_id}
|
|
395
415
|
)
|
|
396
|
-
return
|
|
416
|
+
return (
|
|
417
|
+
f"mammoth view transform filter {view_id} --input {shlex.quote(spec)}"
|
|
418
|
+
f"{_project_flag(project_id)}"
|
|
419
|
+
)
|
|
397
420
|
|
|
398
421
|
|
|
399
422
|
def column_warnings(
|
|
@@ -402,6 +425,7 @@ def column_warnings(
|
|
|
402
425
|
view_id: int | None = None,
|
|
403
426
|
dataset_id: int | None = None,
|
|
404
427
|
read_only: bool = False,
|
|
428
|
+
project_id: int | None = None,
|
|
405
429
|
) -> list[dict[str, Any]]:
|
|
406
430
|
"""Return warnings for text columns that hold numbers or dates, and for blanks.
|
|
407
431
|
|
|
@@ -413,6 +437,8 @@ def column_warnings(
|
|
|
413
437
|
command (a mutation, so it needs the exact parent, not discovery).
|
|
414
438
|
read_only: The rows came from a read-only data read; a ``dates_stored_as_text``
|
|
415
439
|
finding then carries no ``fix``, since a read answers from the text as it is.
|
|
440
|
+
project_id: The project the rows were read from; each fix command names it
|
|
441
|
+
with ``--project`` (the saved profile project may differ, or be absent).
|
|
416
442
|
|
|
417
443
|
Returns:
|
|
418
444
|
One record per finding: ``column``, ``issue``
|
|
@@ -428,7 +454,7 @@ def column_warnings(
|
|
|
428
454
|
checked = len(materialised)
|
|
429
455
|
warnings: list[dict[str, Any]] = []
|
|
430
456
|
figures = _varying_numbers(materialised, column_types)
|
|
431
|
-
duplicate_warning = _duplicate_rows_warning(materialised, view_id, dataset_id)
|
|
457
|
+
duplicate_warning = _duplicate_rows_warning(materialised, view_id, dataset_id, project_id)
|
|
432
458
|
if duplicate_warning is not None:
|
|
433
459
|
warnings.append(duplicate_warning)
|
|
434
460
|
for column, col_type in column_types.items():
|
|
@@ -466,10 +492,12 @@ def column_warnings(
|
|
|
466
492
|
detail += "."
|
|
467
493
|
finding: dict[str, Any] = {"column": column, "issue": issue, "detail": detail}
|
|
468
494
|
if not (read_only and kind == "dates"):
|
|
469
|
-
finding["fix"] = _convert_hint(view_id, column, to)
|
|
495
|
+
finding["fix"] = _convert_hint(view_id, column, to, project_id)
|
|
470
496
|
warnings.append({**finding, "rows_checked": checked})
|
|
471
497
|
break
|
|
472
|
-
variant_warning = _variant_spellings_warning(
|
|
498
|
+
variant_warning = _variant_spellings_warning(
|
|
499
|
+
column, texts, view_id, checked, project_id
|
|
500
|
+
)
|
|
473
501
|
if variant_warning is not None:
|
|
474
502
|
warnings.append(variant_warning)
|
|
475
503
|
date_column = next(
|
|
@@ -477,7 +505,7 @@ def column_warnings(
|
|
|
477
505
|
None,
|
|
478
506
|
)
|
|
479
507
|
renamed = (
|
|
480
|
-
_renamed_label_warning(materialised, column, date_column, view_id)
|
|
508
|
+
_renamed_label_warning(materialised, column, date_column, view_id, project_id)
|
|
481
509
|
if date_column is not None
|
|
482
510
|
else None
|
|
483
511
|
)
|
|
@@ -486,6 +514,6 @@ def column_warnings(
|
|
|
486
514
|
if blanks:
|
|
487
515
|
remove_fix = None
|
|
488
516
|
if figures == [column] and view_id is not None and dataset_id is not None:
|
|
489
|
-
remove_fix = _remove_blank_rows_hint(view_id, dataset_id, column)
|
|
517
|
+
remove_fix = _remove_blank_rows_hint(view_id, dataset_id, column, project_id)
|
|
490
518
|
warnings.append(_blank_values_warning(column, blanks, len(values), checked, remove_fix))
|
|
491
519
|
return warnings
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md
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
|
{mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|