mammoth-cli 2.2.23__tar.gz → 2.2.25__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 (257) hide show
  1. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/PKG-INFO +1 -1
  2. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +6 -1
  4. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/view.py +53 -5
  5. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/errors/envelope.py +1 -0
  6. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/data_quality.py +25 -6
  7. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/pyproject.toml +1 -1
  8. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/.gitignore +0 -0
  9. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/LICENSE +0 -0
  10. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/README.md +0 -0
  11. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/__main__.py +0 -0
  12. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/app.py +0 -0
  13. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  14. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  15. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  16. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  17. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  18. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  19. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  20. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  21. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  22. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  23. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  24. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  25. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  26. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  27. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  28. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  29. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  30. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  31. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  32. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  33. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  34. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  35. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  36. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  37. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
  38. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  39. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  40. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  41. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  42. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  43. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  44. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  45. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  46. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
  47. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  48. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  49. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  50. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  51. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  52. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  53. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  54. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  55. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  56. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  57. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  58. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  59. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  60. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  61. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  62. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  63. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  64. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  65. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  66. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  67. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  68. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  69. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  70. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  71. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  72. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  73. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  74. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  75. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
  76. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  77. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  78. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  79. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  80. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  81. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
  82. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  83. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  84. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  85. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  86. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  87. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  88. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  89. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/__init__.py +0 -0
  90. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/activity.py +0 -0
  91. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/addon.py +0 -0
  92. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/agent.py +0 -0
  93. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/ai.py +0 -0
  94. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/annotation.py +0 -0
  95. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/auth.py +0 -0
  96. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/automation.py +0 -0
  97. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/batch.py +0 -0
  98. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/billing.py +0 -0
  99. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/browse.py +0 -0
  100. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/calc.py +0 -0
  101. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/capability.py +0 -0
  102. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/client_app.py +0 -0
  103. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/completion.py +0 -0
  104. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/config.py +0 -0
  105. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/connector.py +0 -0
  106. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/context.py +0 -0
  107. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/dashboard.py +0 -0
  108. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/data_app.py +0 -0
  109. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/dataset.py +0 -0
  110. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/doctor.py +0 -0
  111. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/external_key.py +0 -0
  112. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/file.py +0 -0
  113. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/folder.py +0 -0
  114. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/job.py +0 -0
  115. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/link.py +0 -0
  116. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/notification.py +0 -0
  117. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/parameter.py +0 -0
  118. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/project.py +0 -0
  119. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/registry.py +0 -0
  120. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/report.py +0 -0
  121. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/schedule.py +0 -0
  122. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/schema.py +0 -0
  123. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/skill.py +0 -0
  124. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/snippet.py +0 -0
  125. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/support.py +0 -0
  126. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/template.py +0 -0
  127. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/trash.py +0 -0
  128. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/upgrade.py +0 -0
  129. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/user.py +0 -0
  130. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/view_ops.py +0 -0
  131. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/view_profile.py +0 -0
  132. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/webhook.py +0 -0
  133. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/workflow.py +0 -0
  134. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/commands/workspace.py +0 -0
  135. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/context/__init__.py +0 -0
  136. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/context/credentials.py +0 -0
  137. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/context/endpoint.py +0 -0
  138. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/context/profiles.py +0 -0
  139. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/context/resolver.py +0 -0
  140. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/contracts/__init__.py +0 -0
  141. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/contracts/auth.py +0 -0
  142. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/embed.py +0 -0
  143. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/errors/__init__.py +0 -0
  144. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/manifest/__init__.py +0 -0
  145. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/manifest/loader.py +0 -0
  146. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/messages/__init__.py +0 -0
  147. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/output/__init__.py +0 -0
  148. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/output/envelope.py +0 -0
  149. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/output/normalize.py +0 -0
  150. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/output/policy.py +0 -0
  151. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/output/progress.py +0 -0
  152. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/output/render.py +0 -0
  153. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/py.typed +0 -0
  154. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/__init__.py +0 -0
  155. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/confirm.py +0 -0
  156. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/dataset_health.py +0 -0
  157. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/dryrun.py +0 -0
  158. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  159. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/embedded.py +0 -0
  160. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/executor.py +0 -0
  161. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/input_loader.py +0 -0
  162. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/intent_only.py +0 -0
  163. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/invocation.py +0 -0
  164. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/new_data.py +0 -0
  165. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/options.py +0 -0
  166. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/parents.py +0 -0
  167. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/runlog.py +0 -0
  168. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/session.py +0 -0
  169. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/state.py +0 -0
  170. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/strict.py +0 -0
  171. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/updates.py +0 -0
  172. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/validate.py +0 -0
  173. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/runtime/verify.py +0 -0
  174. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/__init__.py +0 -0
  175. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/argspec.py +0 -0
  176. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/board_values.py +0 -0
  177. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/coerce.py +0 -0
  178. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/command_contract.py +0 -0
  179. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/conditional_format.py +0 -0
  180. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/conditions.py +0 -0
  181. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/dashboard_filters.py +0 -0
  182. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/dashboard_pages.py +0 -0
  183. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/dashboard_review.py +0 -0
  184. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/data_profile.py +0 -0
  185. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/dispatch.py +0 -0
  186. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/factory.py +0 -0
  187. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/input_fields.py +0 -0
  188. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/listing.py +0 -0
  189. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/local_time.py +0 -0
  190. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/mapping.py +0 -0
  191. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/openapi_types.py +0 -0
  192. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/positionals.py +0 -0
  193. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/protocol.py +0 -0
  194. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/read_queries.py +0 -0
  195. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/sdk_service.py +0 -0
  196. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/sql_check.py +0 -0
  197. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/stored_stats.py +0 -0
  198. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/testing.py +0 -0
  199. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/text_dates.py +0 -0
  200. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/type_system.py +0 -0
  201. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/services/write_impact.py +0 -0
  202. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/skills/__init__.py +0 -0
  203. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/skills/installer.py +0 -0
  204. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/skills/steering.py +0 -0
  205. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/mammoth_cli/testing.py +0 -0
  206. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/activity.yaml +0 -0
  207. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/addon.yaml +0 -0
  208. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/agent.yaml +0 -0
  209. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/ai.yaml +0 -0
  210. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/annotation.yaml +0 -0
  211. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/auth.yaml +0 -0
  212. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/automation.yaml +0 -0
  213. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/batch.yaml +0 -0
  214. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/billing.yaml +0 -0
  215. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/browse.yaml +0 -0
  216. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/calc.yaml +0 -0
  217. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/capability.yaml +0 -0
  218. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/client-app.yaml +0 -0
  219. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/completion.yaml +0 -0
  220. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/config.yaml +0 -0
  221. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/connector.yaml +0 -0
  222. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/context.yaml +0 -0
  223. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/dashboard.yaml +0 -0
  224. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/data-app.yaml +0 -0
  225. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/dataset.yaml +0 -0
  226. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/doctor.yaml +0 -0
  227. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/external-key.yaml +0 -0
  228. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/file.yaml +0 -0
  229. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/folder.yaml +0 -0
  230. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/job.yaml +0 -0
  231. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/link.yaml +0 -0
  232. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/log.yaml +0 -0
  233. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/notification.yaml +0 -0
  234. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/parameter.yaml +0 -0
  235. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/project.yaml +0 -0
  236. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/report.yaml +0 -0
  237. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/schedule.yaml +0 -0
  238. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/schema.yaml +0 -0
  239. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/skill.yaml +0 -0
  240. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/snippet.yaml +0 -0
  241. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/support.yaml +0 -0
  242. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/template.yaml +0 -0
  243. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/trash.yaml +0 -0
  244. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/upgrade.yaml +0 -0
  245. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/user.yaml +0 -0
  246. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/version.yaml +0 -0
  247. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/view.yaml +0 -0
  248. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/webhook.yaml +0 -0
  249. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/workflow.yaml +0 -0
  250. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/commands/workspace.yaml +0 -0
  251. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/edits-target.source.yaml +0 -0
  252. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/openapi-operations.yaml +0 -0
  253. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/schema-v1.json +0 -0
  254. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/sdk-catalog.source.yaml +0 -0
  255. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/manifests/sdk-methods.yaml +0 -0
  256. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/spec/openapi/metadata.json +0 -0
  257. {mammoth_cli-2.2.23 → mammoth_cli-2.2.25}/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.23
3
+ Version: 2.2.25
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.23"
9
+ __version__ = "2.2.25"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -143,7 +143,12 @@ No command:
143
143
  existing dataset with `view export dataset` (`target_ds_id` and
144
144
  `save_as_mode` `APPEND_TO_DS`). An append is a standing link: it is stored
145
145
  as a pipeline step of the source view, so every later re-run of that view
146
- appends again into the target dataset, not just the first run. To stack
146
+ appends again into the target dataset, not just the first run. A column
147
+ with the same name but a different type in the source view and the target
148
+ dataset (say `date` as text against `date` as date) would land in a
149
+ separate column, so the export is refused with `append_type_mismatch`
150
+ before anything is written; `view transform convert-type` on the source
151
+ view aligns the type. To stack
147
152
  rows into a brand-new dataset instead of an existing one, omit
148
153
  `target_ds_id`. A row present in both sources lands twice: note the
149
154
  appended view's `row_count` (`view get`) and its `duplicates` fact
@@ -3719,8 +3719,8 @@ def _existing_internal_dataset_export(
3719
3719
  _DATASET_GET_SYMBOL = "mammoth.api.datasets.DatasetsAPI.get"
3720
3720
 
3721
3721
 
3722
- def _target_dataset_schema_names(service: Any, target_ds_id: int) -> set[str]:
3723
- """The target dataset's own schema column display names.
3722
+ def _target_dataset_schema(service: Any, target_ds_id: int) -> dict[str, str]:
3723
+ """The target dataset's own schema: column display name -> type ('' if absent).
3724
3724
 
3725
3725
  ``dataset.get``'s ``data_schema`` is the dataset's base schema, not any
3726
3726
  view's live/rendered columns -- a view's own rename task can show a
@@ -3744,7 +3744,7 @@ def _target_dataset_schema_names(service: Any, target_ds_id: int) -> set[str]:
3744
3744
  hint="Read the target dataset before appending to it.",
3745
3745
  details={"side": "target", "dataset_id": target_ds_id},
3746
3746
  )
3747
- names: set[str] = set()
3747
+ names: dict[str, str] = {}
3748
3748
  for column in data_schema:
3749
3749
  display_name = column.get("c_name") if isinstance(column, dict) else None
3750
3750
  if not isinstance(display_name, str):
@@ -3754,10 +3754,51 @@ def _target_dataset_schema_names(service: Any, target_ds_id: int) -> set[str]:
3754
3754
  hint="Read the target dataset before appending to it.",
3755
3755
  details={"side": "target", "dataset_id": target_ds_id},
3756
3756
  )
3757
- names.add(display_name)
3757
+ names[display_name] = str(column.get("c_type") or "")
3758
3758
  return names
3759
3759
 
3760
3760
 
3761
+ def _reject_append_type_mismatch(
3762
+ source_types: Any,
3763
+ target_schema: dict[str, str],
3764
+ mapping: dict[str, str],
3765
+ ids: tuple[int, int],
3766
+ ) -> None:
3767
+ """Refuse an append where a column both sides name has a different type.
3768
+
3769
+ The backend does not coerce: a same-named column of another type lands in
3770
+ a separate new column, splitting the data. Columns only on one side, or
3771
+ renamed through ``column_mapping``, are not compared; an unknown type
3772
+ (empty) on either side is not a mismatch.
3773
+ """
3774
+ if not isinstance(source_types, dict):
3775
+ return
3776
+ mismatched = {
3777
+ name: (str(source_types[name]).lower(), target_schema[name].lower())
3778
+ for name in sorted(source_types.keys() & target_schema.keys() - set(mapping))
3779
+ if source_types[name]
3780
+ and target_schema[name]
3781
+ and str(source_types[name]).lower() != target_schema[name].lower()
3782
+ }
3783
+ if not mismatched:
3784
+ return
3785
+ view_id, target_ds_id = ids
3786
+ listed = "; ".join(f"{n}: source {src}, target {tgt}" for n, (src, tgt) in mismatched.items())
3787
+ raise CliError(
3788
+ code="append_type_mismatch",
3789
+ message=(
3790
+ f"View {view_id} has column(s) whose type differs from target dataset "
3791
+ f"{target_ds_id}: {listed}. An append would create separate columns."
3792
+ ),
3793
+ exit_status=EXIT_USAGE,
3794
+ hint=(
3795
+ f"Run mammoth view transform convert-type on view {view_id} so each column "
3796
+ "matches the target type, then retry the export."
3797
+ ),
3798
+ details={"mismatched": {n: {"source": s, "target": t} for n, (s, t) in mismatched.items()}},
3799
+ )
3800
+
3801
+
3761
3802
  def _reject_append_schema_mismatch(
3762
3803
  service: Any,
3763
3804
  dataview_id: int,
@@ -3785,7 +3826,8 @@ def _reject_append_schema_mismatch(
3785
3826
  hint="Read the source view before appending from it.",
3786
3827
  details={"side": "source", "dataview_id": dataview_id},
3787
3828
  )
3788
- target_names = _target_dataset_schema_names(service, target_ds_id)
3829
+ target_schema = _target_dataset_schema(service, target_ds_id)
3830
+ target_names = set(target_schema)
3789
3831
  mapping = column_mapping if isinstance(column_mapping, dict) else {}
3790
3832
  # View.columns (mammoth/view.py) maps display name -> internal name; these
3791
3833
  # dict keys are display names, matching what the backend's own schema
@@ -3793,6 +3835,12 @@ def _reject_append_schema_mismatch(
3793
3835
  source_names = set(source_columns)
3794
3836
  source_only = sorted(source_names - target_names - set(mapping))
3795
3837
  target_only = sorted(target_names - source_names - set(mapping.values()))
3838
+ _reject_append_type_mismatch(
3839
+ service.call_view(dataview_id, "column_types", dataset_id=dataset_id),
3840
+ target_schema,
3841
+ mapping,
3842
+ (dataview_id, target_ds_id),
3843
+ )
3796
3844
  if source_only:
3797
3845
  raise CliError(
3798
3846
  code="append_schema_mismatch",
@@ -78,6 +78,7 @@ ERROR_SUMMARIES: dict[str, str] = {
78
78
  ),
79
79
  "api_error": "Mammoth couldn't complete this step.",
80
80
  "append_schema_mismatch": "The new data doesn't line up with the existing columns.",
81
+ "append_type_mismatch": "A column has a different type than in the existing data.",
81
82
  "append_schema_unreadable": "The columns of the existing data couldn't be read.",
82
83
  "authentication_failed": "Mammoth didn't accept the sign-in for this step.",
83
84
  "authorization_required": "You don't have permission to do this.",
@@ -217,13 +217,26 @@ def _renamed_label_warning(
217
217
  }
218
218
 
219
219
 
220
- def _duplicate_count(rows: list[Mapping[str, Any]]) -> int:
221
- """How many of ``rows`` are exact copies of an earlier row."""
220
+ _DUPLICATE_SAMPLE_LIMIT = 5
221
+
222
+
223
+ def _duplicate_summary(rows: list[Mapping[str, Any]]) -> tuple[int, list[dict[str, Any]]]:
224
+ """Return (rows that copy an earlier row, up to 5 sample duplicated rows).
225
+
226
+ A sample is the row's values as read plus how many times it occurs.
227
+ """
222
228
  counts: dict[str, int] = {}
229
+ first_seen: dict[str, Mapping[str, Any]] = {}
223
230
  for row in rows:
224
231
  fingerprint = json.dumps(row, sort_keys=True, default=str)
225
232
  counts[fingerprint] = counts.get(fingerprint, 0) + 1
226
- return sum(count - 1 for count in counts.values() if count > 1)
233
+ first_seen.setdefault(fingerprint, row)
234
+ repeated = [fp for fp, count in counts.items() if count > 1]
235
+ samples = [
236
+ {"row": dict(first_seen[fp]), "occurrences": counts[fp]}
237
+ for fp in repeated[:_DUPLICATE_SAMPLE_LIMIT]
238
+ ]
239
+ return sum(counts[fp] - 1 for fp in repeated), samples
227
240
 
228
241
 
229
242
  def duplicate_rows_fact(
@@ -245,19 +258,24 @@ def duplicate_rows_fact(
245
258
  if not materialised:
246
259
  return None
247
260
  checked = len(materialised)
248
- duplicates = _duplicate_count(materialised)
261
+ duplicates, samples = _duplicate_summary(materialised)
249
262
  if whole_view:
250
- return {
263
+ whole: dict[str, Any] = {
251
264
  "exact_duplicate_rows": duplicates,
252
265
  "rows_checked": checked,
253
266
  "row_count": checked,
254
267
  "scope": "every row of the view",
255
268
  }
269
+ if samples:
270
+ whole["duplicate_samples"] = samples
271
+ return whole
256
272
  fact: dict[str, Any] = {
257
273
  "exact_duplicate_rows_in_page": duplicates,
258
274
  "rows_checked": checked,
259
275
  "scope": "this page only",
260
276
  }
277
+ if samples:
278
+ fact["duplicate_samples"] = samples
261
279
  if view_id is not None and dataset_id is not None:
262
280
  spec = json.dumps({"dataset_id": dataset_id})
263
281
  fact["table_wide_check"] = (
@@ -278,7 +296,7 @@ def _duplicate_rows_warning(
278
296
  table-wide duplication without separately checking the full table (e.g.
279
297
  ``view data aggregate`` COUNT vs a distinct count).
280
298
  """
281
- duplicate_count = _duplicate_count(rows)
299
+ duplicate_count, samples = _duplicate_summary(rows)
282
300
  if not duplicate_count:
283
301
  return None
284
302
  warning: dict[str, Any] = {
@@ -288,6 +306,7 @@ def _duplicate_rows_warning(
288
306
  "of another row in this page (not checked table-wide)."
289
307
  ),
290
308
  "rows_checked": len(rows),
309
+ "duplicate_samples": samples,
291
310
  }
292
311
  if view_id is not None and dataset_id is not None:
293
312
  spec = json.dumps({"dataset_id": dataset_id})
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.2.23"
3
+ version = "2.2.25"
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