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.
Files changed (268) hide show
  1. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/PKG-INFO +1 -1
  2. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/view.py +23 -8
  4. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/data_quality.py +42 -14
  5. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/pyproject.toml +1 -1
  6. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/.gitignore +0 -0
  7. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/LICENSE +0 -0
  8. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/README.md +0 -0
  9. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/__main__.py +0 -0
  10. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/app.py +0 -0
  11. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  12. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
  13. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  14. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  15. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  16. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  17. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  18. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  19. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  20. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  21. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  22. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  23. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  24. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  25. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  26. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  27. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  28. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  29. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  30. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  31. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  32. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  33. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  34. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  35. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  36. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
  37. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  38. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  39. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  40. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  41. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  42. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  43. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  44. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  45. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
  46. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  47. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  48. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  49. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  50. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  51. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
  52. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  53. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  54. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  55. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  56. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  57. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  58. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
  59. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  60. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  61. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  62. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  63. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  64. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  65. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  66. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  67. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  68. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  69. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  70. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  71. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  72. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  73. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  74. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  75. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  76. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
  77. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  78. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  79. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  80. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  81. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  82. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
  83. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  84. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  85. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  86. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  87. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  88. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  89. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  90. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/__init__.py +0 -0
  91. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/activity.py +0 -0
  92. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/addon.py +0 -0
  93. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/agent.py +0 -0
  94. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/ai.py +0 -0
  95. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/annotation.py +0 -0
  96. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/auth.py +0 -0
  97. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/automation.py +0 -0
  98. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/batch.py +0 -0
  99. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/billing.py +0 -0
  100. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/browse.py +0 -0
  101. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/calc.py +0 -0
  102. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/capability.py +0 -0
  103. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/client_app.py +0 -0
  104. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/completion.py +0 -0
  105. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/config.py +0 -0
  106. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/connector.py +0 -0
  107. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/context.py +0 -0
  108. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/dashboard.py +0 -0
  109. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/data_app.py +0 -0
  110. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/dataset.py +0 -0
  111. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/doctor.py +0 -0
  112. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/external_key.py +0 -0
  113. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/file.py +0 -0
  114. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/folder.py +0 -0
  115. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/job.py +0 -0
  116. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/link.py +0 -0
  117. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/notification.py +0 -0
  118. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/parameter.py +0 -0
  119. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/project.py +0 -0
  120. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/registry.py +0 -0
  121. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/report.py +0 -0
  122. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/resolve.py +0 -0
  123. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/schedule.py +0 -0
  124. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/schema.py +0 -0
  125. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/skill.py +0 -0
  126. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/snippet.py +0 -0
  127. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/support.py +0 -0
  128. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/template.py +0 -0
  129. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/trash.py +0 -0
  130. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/upgrade.py +0 -0
  131. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/user.py +0 -0
  132. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/view_ops.py +0 -0
  133. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/view_profile.py +0 -0
  134. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/webhook.py +0 -0
  135. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/workflow.py +0 -0
  136. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/commands/workspace.py +0 -0
  137. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/__init__.py +0 -0
  138. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/credentials.py +0 -0
  139. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/endpoint.py +0 -0
  140. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/oauth.py +0 -0
  141. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/profiles.py +0 -0
  142. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/context/resolver.py +0 -0
  143. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/contracts/__init__.py +0 -0
  144. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/contracts/auth.py +0 -0
  145. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/embed.py +0 -0
  146. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/errors/__init__.py +0 -0
  147. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/errors/envelope.py +0 -0
  148. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/manifest/__init__.py +0 -0
  149. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/manifest/loader.py +0 -0
  150. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/messages/__init__.py +0 -0
  151. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/__init__.py +0 -0
  152. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/envelope.py +0 -0
  153. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/normalize.py +0 -0
  154. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/policy.py +0 -0
  155. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/progress.py +0 -0
  156. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/output/render.py +0 -0
  157. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/py.typed +0 -0
  158. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/__init__.py +0 -0
  159. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/confirm.py +0 -0
  160. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/dataset_health.py +0 -0
  161. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/dryrun.py +0 -0
  162. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  163. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/embedded.py +0 -0
  164. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/executor.py +0 -0
  165. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/input_loader.py +0 -0
  166. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/intent_only.py +0 -0
  167. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/invocation.py +0 -0
  168. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/locked_files.py +0 -0
  169. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/new_data.py +0 -0
  170. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/options.py +0 -0
  171. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/parents.py +0 -0
  172. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/runlog.py +0 -0
  173. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/session.py +0 -0
  174. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/state.py +0 -0
  175. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/strict.py +0 -0
  176. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/updates.py +0 -0
  177. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/validate.py +0 -0
  178. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/runtime/verify.py +0 -0
  179. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/__init__.py +0 -0
  180. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/append_blank_columns.py +0 -0
  181. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/argspec.py +0 -0
  182. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/board_values.py +0 -0
  183. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/coerce.py +0 -0
  184. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/command_contract.py +0 -0
  185. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/conditional_format.py +0 -0
  186. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/conditions.py +0 -0
  187. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dashboard_filters.py +0 -0
  188. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dashboard_pages.py +0 -0
  189. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dashboard_review.py +0 -0
  190. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/data_profile.py +0 -0
  191. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/dispatch.py +0 -0
  192. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/factory.py +0 -0
  193. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/input_fields.py +0 -0
  194. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/job_outcome.py +0 -0
  195. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/listing.py +0 -0
  196. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/local_time.py +0 -0
  197. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/mapping.py +0 -0
  198. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/openapi_types.py +0 -0
  199. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/positionals.py +0 -0
  200. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/protocol.py +0 -0
  201. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/read_queries.py +0 -0
  202. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/sdk_service.py +0 -0
  203. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/sql_check.py +0 -0
  204. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/stored_stats.py +0 -0
  205. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/testing.py +0 -0
  206. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/text_dates.py +0 -0
  207. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/type_system.py +0 -0
  208. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/view_analysis.py +0 -0
  209. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/view_variants.py +0 -0
  210. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/services/write_impact.py +0 -0
  211. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/skills/__init__.py +0 -0
  212. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/skills/installer.py +0 -0
  213. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/skills/steering.py +0 -0
  214. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/mammoth_cli/testing.py +0 -0
  215. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/activity.yaml +0 -0
  216. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/addon.yaml +0 -0
  217. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/agent.yaml +0 -0
  218. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/ai.yaml +0 -0
  219. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/annotation.yaml +0 -0
  220. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/auth.yaml +0 -0
  221. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/automation.yaml +0 -0
  222. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/batch.yaml +0 -0
  223. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/billing.yaml +0 -0
  224. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/browse.yaml +0 -0
  225. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/calc.yaml +0 -0
  226. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/capability.yaml +0 -0
  227. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/client-app.yaml +0 -0
  228. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/completion.yaml +0 -0
  229. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/config.yaml +0 -0
  230. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/connector.yaml +0 -0
  231. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/context.yaml +0 -0
  232. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/dashboard.yaml +0 -0
  233. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/data-app.yaml +0 -0
  234. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/dataset.yaml +0 -0
  235. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/doctor.yaml +0 -0
  236. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/external-key.yaml +0 -0
  237. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/file.yaml +0 -0
  238. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/folder.yaml +0 -0
  239. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/job.yaml +0 -0
  240. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/link.yaml +0 -0
  241. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/log.yaml +0 -0
  242. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/notification.yaml +0 -0
  243. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/parameter.yaml +0 -0
  244. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/project.yaml +0 -0
  245. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/report.yaml +0 -0
  246. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/resolve.yaml +0 -0
  247. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/schedule.yaml +0 -0
  248. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/schema.yaml +0 -0
  249. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/skill.yaml +0 -0
  250. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/snippet.yaml +0 -0
  251. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/support.yaml +0 -0
  252. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/template.yaml +0 -0
  253. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/token.yaml +0 -0
  254. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/trash.yaml +0 -0
  255. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/upgrade.yaml +0 -0
  256. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/user.yaml +0 -0
  257. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/version.yaml +0 -0
  258. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/view.yaml +0 -0
  259. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/webhook.yaml +0 -0
  260. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/workflow.yaml +0 -0
  261. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/commands/workspace.yaml +0 -0
  262. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/edits-target.source.yaml +0 -0
  263. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/openapi-operations.yaml +0 -0
  264. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/schema-v1.json +0 -0
  265. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/sdk-catalog.source.yaml +0 -0
  266. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/manifests/sdk-methods.yaml +0 -0
  267. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/openapi/metadata.json +0 -0
  268. {mammoth_cli-2.2.49 → mammoth_cli-2.2.50}/spec/openapi/openapi.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mammoth-cli
3
- Version: 2.2.49
3
+ Version: 2.2.50
4
4
  Summary: Command-line interface for the Mammoth Analytics platform
5
5
  Project-URL: homepage, https://mammoth.io
6
6
  Project-URL: repository, https://github.com/EdgeMetric/mammothsdk
@@ -6,7 +6,7 @@ not implement a second HTTP client and does not call private SDK members.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- __version__ = "2.2.49"
9
+ __version__ = "2.2.50"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -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(data, types or {}, view_id, dataset_id, read_only=True)
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(data, types, view_id, dataset_id, read_only=True)
1555
- return _with_duplicates_fact(data, view_id, dataset_id, whole_view)
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(data: Any, view_id: int, dataset_id: int | None, whole_view: bool) -> Any:
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(data[_ROWS_KEY], view_id, dataset_id, whole_view=whole_view)
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 _convert_hint(view_id: int | None, column: str, to: str) -> str:
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 f"mammoth view transform convert-type {target} --input {shlex.quote(spec)}"
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(view_id: int | None, column: str, mapping: list[dict[str, Any]]) -> str:
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 f"mammoth view transform bulk-replace {target} --input {shlex.quote(spec)}"
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(view_id: int, dataset_id: int, column: str) -> str:
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 f"mammoth view transform filter {view_id} --input {shlex.quote(spec)}"
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(column, texts, view_id, checked)
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.2.49"
3
+ version = "2.2.50"
4
4
  description = "Command-line interface for the Mammoth Analytics platform"
5
5
  authors = [{name = "Mammoth Analytics", email = "support@mammoth.io"}]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes