mammoth-cli 2.2.28__tar.gz → 2.2.29__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.28 → mammoth_cli-2.2.29}/PKG-INFO +1 -1
  2. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +6 -1
  4. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/view.py +84 -14
  5. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/errors/envelope.py +1 -0
  6. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/pyproject.toml +1 -1
  7. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/view.yaml +1 -1
  8. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/.gitignore +0 -0
  9. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/LICENSE +0 -0
  10. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/README.md +0 -0
  11. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/__main__.py +0 -0
  12. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/app.py +0 -0
  13. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  14. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  15. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  16. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  17. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  18. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  19. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  20. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  21. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  22. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  23. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  24. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  25. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  26. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  27. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  28. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  29. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  30. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  31. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  32. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  33. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  34. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  35. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  36. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  37. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
  38. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  39. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  40. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  41. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  42. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  43. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  44. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  45. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  46. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
  47. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  48. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  49. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  50. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  51. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  52. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  53. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  54. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  55. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  56. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  57. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  58. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  59. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  60. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  61. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  62. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  63. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  64. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  65. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  66. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  67. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  68. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  69. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  70. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  71. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  72. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  73. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  74. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  75. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
  76. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  77. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  78. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  79. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  80. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  81. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
  82. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  83. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  84. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  85. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  86. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  87. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  88. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  89. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/__init__.py +0 -0
  90. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/activity.py +0 -0
  91. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/addon.py +0 -0
  92. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/agent.py +0 -0
  93. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/ai.py +0 -0
  94. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/annotation.py +0 -0
  95. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/auth.py +0 -0
  96. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/automation.py +0 -0
  97. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/batch.py +0 -0
  98. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/billing.py +0 -0
  99. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/browse.py +0 -0
  100. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/calc.py +0 -0
  101. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/capability.py +0 -0
  102. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/client_app.py +0 -0
  103. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/completion.py +0 -0
  104. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/config.py +0 -0
  105. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/connector.py +0 -0
  106. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/context.py +0 -0
  107. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/dashboard.py +0 -0
  108. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/data_app.py +0 -0
  109. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/dataset.py +0 -0
  110. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/doctor.py +0 -0
  111. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/external_key.py +0 -0
  112. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/file.py +0 -0
  113. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/folder.py +0 -0
  114. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/job.py +0 -0
  115. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/link.py +0 -0
  116. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/notification.py +0 -0
  117. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/parameter.py +0 -0
  118. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/project.py +0 -0
  119. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/registry.py +0 -0
  120. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/report.py +0 -0
  121. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/schedule.py +0 -0
  122. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/schema.py +0 -0
  123. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/skill.py +0 -0
  124. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/snippet.py +0 -0
  125. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/support.py +0 -0
  126. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/template.py +0 -0
  127. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/trash.py +0 -0
  128. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/upgrade.py +0 -0
  129. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/user.py +0 -0
  130. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/view_ops.py +0 -0
  131. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/view_profile.py +0 -0
  132. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/webhook.py +0 -0
  133. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/workflow.py +0 -0
  134. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/commands/workspace.py +0 -0
  135. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/context/__init__.py +0 -0
  136. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/context/credentials.py +0 -0
  137. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/context/endpoint.py +0 -0
  138. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/context/profiles.py +0 -0
  139. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/context/resolver.py +0 -0
  140. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/contracts/__init__.py +0 -0
  141. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/contracts/auth.py +0 -0
  142. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/embed.py +0 -0
  143. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/errors/__init__.py +0 -0
  144. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/manifest/__init__.py +0 -0
  145. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/manifest/loader.py +0 -0
  146. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/messages/__init__.py +0 -0
  147. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/output/__init__.py +0 -0
  148. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/output/envelope.py +0 -0
  149. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/output/normalize.py +0 -0
  150. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/output/policy.py +0 -0
  151. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/output/progress.py +0 -0
  152. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/output/render.py +0 -0
  153. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/py.typed +0 -0
  154. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/__init__.py +0 -0
  155. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/confirm.py +0 -0
  156. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/dataset_health.py +0 -0
  157. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/dryrun.py +0 -0
  158. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  159. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/embedded.py +0 -0
  160. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/executor.py +0 -0
  161. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/input_loader.py +0 -0
  162. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/intent_only.py +0 -0
  163. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/invocation.py +0 -0
  164. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/new_data.py +0 -0
  165. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/options.py +0 -0
  166. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/parents.py +0 -0
  167. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/runlog.py +0 -0
  168. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/session.py +0 -0
  169. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/state.py +0 -0
  170. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/strict.py +0 -0
  171. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/updates.py +0 -0
  172. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/validate.py +0 -0
  173. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/runtime/verify.py +0 -0
  174. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/__init__.py +0 -0
  175. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/argspec.py +0 -0
  176. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/board_values.py +0 -0
  177. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/coerce.py +0 -0
  178. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/command_contract.py +0 -0
  179. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/conditional_format.py +0 -0
  180. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/conditions.py +0 -0
  181. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/dashboard_filters.py +0 -0
  182. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/dashboard_pages.py +0 -0
  183. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/dashboard_review.py +0 -0
  184. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/data_profile.py +0 -0
  185. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/data_quality.py +0 -0
  186. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/dispatch.py +0 -0
  187. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/factory.py +0 -0
  188. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/input_fields.py +0 -0
  189. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/listing.py +0 -0
  190. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/local_time.py +0 -0
  191. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/mapping.py +0 -0
  192. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/openapi_types.py +0 -0
  193. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/positionals.py +0 -0
  194. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/protocol.py +0 -0
  195. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/read_queries.py +0 -0
  196. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/sdk_service.py +0 -0
  197. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/sql_check.py +0 -0
  198. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/stored_stats.py +0 -0
  199. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/testing.py +0 -0
  200. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/text_dates.py +0 -0
  201. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/type_system.py +0 -0
  202. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/services/write_impact.py +0 -0
  203. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/skills/__init__.py +0 -0
  204. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/skills/installer.py +0 -0
  205. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/skills/steering.py +0 -0
  206. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/mammoth_cli/testing.py +0 -0
  207. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/activity.yaml +0 -0
  208. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/addon.yaml +0 -0
  209. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/agent.yaml +0 -0
  210. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/ai.yaml +0 -0
  211. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/annotation.yaml +0 -0
  212. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/auth.yaml +0 -0
  213. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/automation.yaml +0 -0
  214. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/batch.yaml +0 -0
  215. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/billing.yaml +0 -0
  216. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/browse.yaml +0 -0
  217. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/calc.yaml +0 -0
  218. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/capability.yaml +0 -0
  219. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/client-app.yaml +0 -0
  220. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/completion.yaml +0 -0
  221. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/config.yaml +0 -0
  222. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/connector.yaml +0 -0
  223. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/context.yaml +0 -0
  224. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/dashboard.yaml +0 -0
  225. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/data-app.yaml +0 -0
  226. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/dataset.yaml +0 -0
  227. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/doctor.yaml +0 -0
  228. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/external-key.yaml +0 -0
  229. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/file.yaml +0 -0
  230. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/folder.yaml +0 -0
  231. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/job.yaml +0 -0
  232. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/link.yaml +0 -0
  233. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/log.yaml +0 -0
  234. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/notification.yaml +0 -0
  235. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/parameter.yaml +0 -0
  236. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/project.yaml +0 -0
  237. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/report.yaml +0 -0
  238. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/schedule.yaml +0 -0
  239. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/schema.yaml +0 -0
  240. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/skill.yaml +0 -0
  241. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/snippet.yaml +0 -0
  242. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/support.yaml +0 -0
  243. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/template.yaml +0 -0
  244. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/trash.yaml +0 -0
  245. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/upgrade.yaml +0 -0
  246. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/user.yaml +0 -0
  247. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/version.yaml +0 -0
  248. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/webhook.yaml +0 -0
  249. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/workflow.yaml +0 -0
  250. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/commands/workspace.yaml +0 -0
  251. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/edits-target.source.yaml +0 -0
  252. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/openapi-operations.yaml +0 -0
  253. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/schema-v1.json +0 -0
  254. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/sdk-catalog.source.yaml +0 -0
  255. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/manifests/sdk-methods.yaml +0 -0
  256. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/spec/openapi/metadata.json +0 -0
  257. {mammoth_cli-2.2.28 → mammoth_cli-2.2.29}/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.28
3
+ Version: 2.2.29
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.28"
9
+ __version__ = "2.2.29"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -141,7 +141,12 @@ No command:
141
141
  - **Union or append two views.** There is no union task. Upload a file into
142
142
  an existing dataset with `append_to_ds_id`, or send a view's rows into an
143
143
  existing dataset with `view export dataset` (`target_ds_id` and
144
- `save_as_mode` `APPEND_TO_DS`). An append is a standing link: it is stored
144
+ `save_as_mode` `APPEND_TO_DS`). Omit `column_mapping` and every column is
145
+ matched by name; a non-empty `column_mapping` is used as-is, so it must map
146
+ every source column to an existing target column. A partial mapping, or a
147
+ destination the target lacks, is refused with `append_mapping_incomplete`
148
+ before anything is written (the backend would append only the mapped columns
149
+ and add a new column for the unknown name). An append is a standing link: it is stored
145
150
  as a pipeline step of the source view, so every later re-run of that view
146
151
  appends again into the target dataset, not just the first run. A column
147
152
  with the same name but a different type in the source view and the target
@@ -3545,6 +3545,7 @@ def view_export_specialized(invocation: Invocation) -> HandlerResult:
3545
3545
  _reject_export_into_draft(service, dataview_id, dataset_id)
3546
3546
  target_view_before = None
3547
3547
  target_only_columns: list[str] = []
3548
+ mapped_type_warnings: list[str] = []
3548
3549
  if target_ds_id is not None:
3549
3550
  # Each `view export dataset` call creates its own PERSISTENT
3550
3551
  # export trigger on this view, which re-runs on every pipeline
@@ -3578,7 +3579,7 @@ def view_export_specialized(invocation: Invocation) -> HandlerResult:
3578
3579
  # before the call so a later re-read can never be confused with it.
3579
3580
  target_view_before = _dataset_view_info(service, int(target_ds_id), result_project_id)
3580
3581
  if save_as_mode == "APPEND_TO_DS":
3581
- target_only_columns = _reject_append_schema_mismatch(
3582
+ target_only_columns, mapped_type_warnings = _reject_append_schema_mismatch(
3582
3583
  service,
3583
3584
  dataview_id,
3584
3585
  dataset_id,
@@ -3640,13 +3641,17 @@ def view_export_specialized(invocation: Invocation) -> HandlerResult:
3640
3641
  # An append is expected to grow the target; verify.py treats
3641
3642
  # a non-increase here as unverified, not just an omitted count.
3642
3643
  row_check["expected_row_increase"] = True
3644
+ warnings = list(mapped_type_warnings)
3643
3645
  if target_only_columns:
3644
3646
  # Allowed -- an append never has to cover every target column
3645
3647
  # -- but worth surfacing rather than leaving silent.
3646
- row_check["warnings"] = [
3648
+ warnings.insert(
3649
+ 0,
3647
3650
  "target dataset has column(s) the source view does not (kept "
3648
- "as-is): " + ", ".join(target_only_columns)
3649
- ]
3651
+ "as-is): " + ", ".join(target_only_columns),
3652
+ )
3653
+ if warnings:
3654
+ row_check["warnings"] = warnings
3650
3655
  data["row_check"] = row_check
3651
3656
  if pipeline_error is not None:
3652
3657
  data["pipeline_error"] = pipeline_error
@@ -3799,24 +3804,92 @@ def _reject_append_type_mismatch(
3799
3804
  )
3800
3805
 
3801
3806
 
3807
+ def _reject_partial_append_mapping(
3808
+ source_names: set[str],
3809
+ target_names: set[str],
3810
+ mapping: dict[str, str],
3811
+ ids: tuple[int, int],
3812
+ ) -> None:
3813
+ """Refuse a non-empty append ``column_mapping`` that drops or invents columns.
3814
+
3815
+ The backend maps every column by name when the mapping is empty, but uses
3816
+ a non-empty one as-is: unmapped source columns are not appended (their
3817
+ target cells stay NULL) and a destination the target lacks becomes a new
3818
+ column named after the source.
3819
+ """
3820
+ if not mapping:
3821
+ return
3822
+ unknown = {src: dest for src, dest in sorted(mapping.items()) if dest not in target_names}
3823
+ unmapped = sorted(source_names - set(mapping))
3824
+ if not unknown and not unmapped:
3825
+ return
3826
+ view_id, target_ds_id = ids
3827
+ problems = []
3828
+ if unknown:
3829
+ listed = ", ".join(f"{dest!r} (for {src!r})" for src, dest in unknown.items())
3830
+ problems.append(f"destination column(s) not in target dataset {target_ds_id}: {listed}")
3831
+ if unmapped:
3832
+ problems.append(f"source column(s) left unmapped and not appended: {', '.join(unmapped)}")
3833
+ raise CliError(
3834
+ code="append_mapping_incomplete",
3835
+ message=(
3836
+ f"column_mapping for appending view {view_id} into dataset {target_ds_id} would "
3837
+ f"corrupt the append: {'; '.join(problems)}. A non-empty column_mapping is used "
3838
+ "as-is: unmapped columns are not appended and an unknown destination creates a "
3839
+ "new column."
3840
+ ),
3841
+ exit_status=EXIT_USAGE,
3842
+ hint=(
3843
+ "Omit column_mapping to map all columns by name, or map every source column to "
3844
+ f"an existing column of dataset {target_ds_id}."
3845
+ ),
3846
+ details={
3847
+ "unknown_destinations": unknown,
3848
+ "unmapped_source_columns": unmapped,
3849
+ "target_columns": sorted(target_names),
3850
+ },
3851
+ )
3852
+
3853
+
3854
+ def _mapped_type_warnings(
3855
+ source_types: Any, target_schema: dict[str, str], mapping: dict[str, str]
3856
+ ) -> list[str]:
3857
+ """Warn where a mapped source column's type differs from its target column's."""
3858
+ if not isinstance(source_types, dict):
3859
+ return []
3860
+ return [
3861
+ f"mapped column {src!r} is {str(source_types[src]).lower()} but target column "
3862
+ f"{dest!r} is {target_schema[dest].lower()}"
3863
+ for src, dest in sorted(mapping.items())
3864
+ if source_types.get(src)
3865
+ and target_schema.get(dest)
3866
+ and str(source_types[src]).lower() != target_schema[dest].lower()
3867
+ ]
3868
+
3869
+
3802
3870
  def _reject_append_schema_mismatch(
3803
3871
  service: Any,
3804
3872
  dataview_id: int,
3805
3873
  dataset_id: int | None,
3806
3874
  target_ds_id: int,
3807
3875
  column_mapping: Any,
3808
- ) -> list[str]:
3876
+ ) -> tuple[list[str], list[str]]:
3809
3877
  """Refuse an ``APPEND_TO_DS`` export whose source has a column the target
3810
3878
  dataset's schema does not, and ``column_mapping`` does not cover.
3811
3879
 
3880
+ A non-empty ``column_mapping`` is stricter: the backend then copies only
3881
+ the mapped columns and turns an unknown destination into a new column, so
3882
+ every source column must be mapped to a column the target already has
3883
+ (``_reject_partial_append_mapping``).
3884
+
3812
3885
  An append writes into rows the target dataset already has; a source
3813
3886
  column with no home in the target schema and no explicit mapping would
3814
3887
  otherwise reach the backend as a malformed write. Checked here, before
3815
3888
  the call, so the refusal costs nothing and names exactly what to fix.
3816
3889
 
3817
3890
  Returns the target-only column names (present in the target schema, not
3818
- in the source, not a ``column_mapping`` destination) -- allowed, but
3819
- worth a warning rather than silence.
3891
+ in the source, not a ``column_mapping`` destination) and the type
3892
+ warnings for mapped pairs -- both allowed, but worth a warning.
3820
3893
  """
3821
3894
  source_columns = service.call_view(dataview_id, "columns", dataset_id=dataset_id)
3822
3895
  if not isinstance(source_columns, dict):
@@ -3833,14 +3906,11 @@ def _reject_append_schema_mismatch(
3833
3906
  # dict keys are display names, matching what the backend's own schema
3834
3907
  # match compares by -- never the internal ids in the dict's values.
3835
3908
  source_names = set(source_columns)
3909
+ _reject_partial_append_mapping(source_names, target_names, mapping, (dataview_id, target_ds_id))
3836
3910
  source_only = sorted(source_names - target_names - set(mapping))
3837
3911
  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
- )
3912
+ source_types = service.call_view(dataview_id, "column_types", dataset_id=dataset_id)
3913
+ _reject_append_type_mismatch(source_types, target_schema, mapping, (dataview_id, target_ds_id))
3844
3914
  if source_only:
3845
3915
  raise CliError(
3846
3916
  code="append_schema_mismatch",
@@ -3855,7 +3925,7 @@ def _reject_append_schema_mismatch(
3855
3925
  ),
3856
3926
  details={"source_only": source_only, "target_only": target_only},
3857
3927
  )
3858
- return target_only
3928
+ return target_only, _mapped_type_warnings(source_types, target_schema, mapping)
3859
3929
 
3860
3930
 
3861
3931
  def _dataset_view_info(
@@ -77,6 +77,7 @@ ERROR_SUMMARIES: dict[str, str] = {
77
77
  "More than one item matched, so the assistant needs to be more specific."
78
78
  ),
79
79
  "api_error": "Mammoth couldn't complete this step.",
80
+ "append_mapping_incomplete": "The column mapping would leave columns out or add new ones.",
80
81
  "append_schema_mismatch": "The new data doesn't line up with the existing columns.",
81
82
  "append_type_mismatch": "A column has a different type than in the existing data.",
82
83
  "append_schema_unreadable": "The columns of the existing data couldn't be read.",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.2.28"
3
+ version = "2.2.29"
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"
@@ -2261,7 +2261,7 @@ commands:
2261
2261
  - CT-VIEW-EXPORT-DATASET-ERROR
2262
2262
  draft_test: null
2263
2263
  undo_test: null
2264
- known_restrictions: 'Mutation class dynamic: benign_mutation for a new target, destructive when replacing an existing target. The export is appended to the source pipeline (end_of_pipeline) and re-runs with it; target_project_id sends the dataset into another project (cross-project branch-out, proven on release). Result: {dataset_id, project_id, source_view_id, next}. Not a plain copy: this leaves a live export on the source and the new dataset refreshes from the source view, so keep that working view and name it as the new dataset''s source. For an independent copy of a dataset use dataset create with ds_creation_type clone.'
2264
+ known_restrictions: 'Mutation class dynamic: benign_mutation for a new target, destructive when replacing an existing target. The export is appended to the source pipeline (end_of_pipeline) and re-runs with it; target_project_id sends the dataset into another project (cross-project branch-out, proven on release). Result: {dataset_id, project_id, source_view_id, next}. Not a plain copy: this leaves a live export on the source and the new dataset refreshes from the source view, so keep that working view and name it as the new dataset''s source. For an independent copy of a dataset use dataset create with ds_creation_type clone. Appending into an existing dataset (save_as_mode APPEND_TO_DS with target_ds_id): omit column_mapping and every column is mapped by name; a non-empty column_mapping is used as-is, so it must map every source column to an existing target column, and a partial mapping or an unknown destination is refused (append_mapping_incomplete) before anything is written. A mapped pair of different types is reported in row_check.warnings.'
2265
2265
  reviewed_by: primary
2266
2266
  - command_id: view.export.delete
2267
2267
  command_path: view export delete
File without changes
File without changes
File without changes