mammoth-cli 2.2.64__tar.gz → 2.2.66__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 (276) hide show
  1. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/PKG-INFO +1 -1
  2. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/__init__.py +1 -1
  3. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/dataset.py +85 -78
  4. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/view.py +16 -5
  5. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/pyproject.toml +1 -1
  6. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/.gitignore +0 -0
  7. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/LICENSE +0 -0
  8. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/README.md +0 -0
  9. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/__main__.py +0 -0
  10. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/app.py +0 -0
  11. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/SKILL.md +0 -0
  12. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/about-mammoth.md +0 -0
  13. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/auth.md +0 -0
  14. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities-misc.md +0 -0
  15. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/capabilities.md +0 -0
  16. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/command-index.md +0 -0
  17. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/activity.md +0 -0
  18. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/addon.md +0 -0
  19. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/agent.md +0 -0
  20. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/ai.md +0 -0
  21. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/annotation.md +0 -0
  22. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/auth.md +0 -0
  23. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/automation.md +0 -0
  24. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/batch.md +0 -0
  25. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/billing.md +0 -0
  26. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/browse.md +0 -0
  27. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/calc.md +0 -0
  28. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/capability.md +0 -0
  29. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/client-app.md +0 -0
  30. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/completion.md +0 -0
  31. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/config.md +0 -0
  32. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/connector.md +0 -0
  33. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/context.md +0 -0
  34. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-qa.md +0 -0
  35. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-style.md +0 -0
  36. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard-template.md +0 -0
  37. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dashboard.md +0 -0
  38. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/data-app.md +0 -0
  39. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/dataset.md +0 -0
  40. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/doctor.md +0 -0
  41. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/external-key.md +0 -0
  42. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/file.md +0 -0
  43. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/folder.md +0 -0
  44. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/job.md +0 -0
  45. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/link.md +0 -0
  46. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/log.md +0 -0
  47. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/notification.md +0 -0
  48. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/parameter.md +0 -0
  49. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/project.md +0 -0
  50. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/report.md +0 -0
  51. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/resolve.md +0 -0
  52. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schedule.md +0 -0
  53. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/schema.md +0 -0
  54. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/skill.md +0 -0
  55. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/snippet.md +0 -0
  56. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/support.md +0 -0
  57. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/template.md +0 -0
  58. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/token.md +0 -0
  59. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/trash.md +0 -0
  60. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/upgrade.md +0 -0
  61. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/user.md +0 -0
  62. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/version.md +0 -0
  63. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view-transform.md +0 -0
  64. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/view.md +0 -0
  65. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/webhook.md +0 -0
  66. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workflow.md +0 -0
  67. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/commands/workspace.md +0 -0
  68. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/handoff.md +0 -0
  69. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/input.md +0 -0
  70. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/jobs-drafts.md +0 -0
  71. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/machine-output.md +0 -0
  72. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/operations.md +0 -0
  73. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/auth-scope.md +0 -0
  74. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/build-an-agent.md +0 -0
  75. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/cleanup.md +0 -0
  76. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/dashboards.md +0 -0
  77. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/database-import.md +0 -0
  78. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/end-to-end.md +0 -0
  79. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/exports.md +0 -0
  80. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/file-import.md +0 -0
  81. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/index.md +0 -0
  82. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/need-action.md +0 -0
  83. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/resources.md +0 -0
  84. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/scheduling.md +0 -0
  85. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/transforms.md +0 -0
  86. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recipes/typed-etl-discovery.md +0 -0
  87. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/recovery.md +0 -0
  88. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/report-checklist.md +0 -0
  89. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/retention.md +0 -0
  90. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/safety.md +0 -0
  91. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/bundled_skill/mammoth-cli/references/task-start.md +0 -0
  92. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/__init__.py +0 -0
  93. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/_lazy.py +0 -0
  94. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/activity.py +0 -0
  95. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/addon.py +0 -0
  96. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/agent.py +0 -0
  97. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/ai.py +0 -0
  98. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/annotation.py +0 -0
  99. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/auth.py +0 -0
  100. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/automation.py +0 -0
  101. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/batch.py +0 -0
  102. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/billing.py +0 -0
  103. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/browse.py +0 -0
  104. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/calc.py +0 -0
  105. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/capability.py +0 -0
  106. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/client_app.py +0 -0
  107. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/completion.py +0 -0
  108. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/config.py +0 -0
  109. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/connector.py +0 -0
  110. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/context.py +0 -0
  111. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/dashboard.py +0 -0
  112. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/data_app.py +0 -0
  113. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/doctor.py +0 -0
  114. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/external_key.py +0 -0
  115. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/file.py +0 -0
  116. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/folder.py +0 -0
  117. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/help_summaries.json +0 -0
  118. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/job.py +0 -0
  119. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/link.py +0 -0
  120. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/notification.py +0 -0
  121. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/parameter.py +0 -0
  122. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/project.py +0 -0
  123. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/registry.py +0 -0
  124. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/report.py +0 -0
  125. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/resolve.py +0 -0
  126. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/schedule.py +0 -0
  127. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/schema.py +0 -0
  128. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/skill.py +0 -0
  129. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/snippet.py +0 -0
  130. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/support.py +0 -0
  131. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/template.py +0 -0
  132. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/trash.py +0 -0
  133. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/upgrade.py +0 -0
  134. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/user.py +0 -0
  135. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/view_ops.py +0 -0
  136. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/view_profile.py +0 -0
  137. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/webhook.py +0 -0
  138. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/workflow.py +0 -0
  139. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/commands/workspace.py +0 -0
  140. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/__init__.py +0 -0
  141. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/credentials.py +0 -0
  142. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/endpoint.py +0 -0
  143. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/keyring_backend.py +0 -0
  144. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/oauth.py +0 -0
  145. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/profiles.py +0 -0
  146. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/context/resolver.py +0 -0
  147. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/contracts/__init__.py +0 -0
  148. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/contracts/auth.py +0 -0
  149. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/embed.py +0 -0
  150. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/errors/__init__.py +0 -0
  151. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/errors/envelope.py +0 -0
  152. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/manifest/__init__.py +0 -0
  153. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/manifest/loader.py +0 -0
  154. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/messages/__init__.py +0 -0
  155. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/output/__init__.py +0 -0
  156. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/output/envelope.py +0 -0
  157. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/output/normalize.py +0 -0
  158. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/output/policy.py +0 -0
  159. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/output/progress.py +0 -0
  160. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/output/render.py +0 -0
  161. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/py.typed +0 -0
  162. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/__init__.py +0 -0
  163. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/confirm.py +0 -0
  164. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/dataset_health.py +0 -0
  165. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/dryrun.py +0 -0
  166. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/dryrun_targets.py +0 -0
  167. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/embedded.py +0 -0
  168. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/executor.py +0 -0
  169. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/input_loader.py +0 -0
  170. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/intent_only.py +0 -0
  171. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/invocation.py +0 -0
  172. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/locked_files.py +0 -0
  173. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/new_data.py +0 -0
  174. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/opens.py +0 -0
  175. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/options.py +0 -0
  176. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/parents.py +0 -0
  177. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/runlog.py +0 -0
  178. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/session.py +0 -0
  179. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/state.py +0 -0
  180. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/strict.py +0 -0
  181. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/updates.py +0 -0
  182. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/validate.py +0 -0
  183. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/runtime/verify.py +0 -0
  184. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/__init__.py +0 -0
  185. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/append_blank_columns.py +0 -0
  186. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/argspec.py +0 -0
  187. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/board_values.py +0 -0
  188. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/coerce.py +0 -0
  189. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/command_contract.py +0 -0
  190. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/conditional_format.py +0 -0
  191. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/conditions.py +0 -0
  192. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/dashboard_filters.py +0 -0
  193. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/dashboard_pages.py +0 -0
  194. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/dashboard_review.py +0 -0
  195. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/data_profile.py +0 -0
  196. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/data_quality.py +0 -0
  197. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/dispatch.py +0 -0
  198. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/explore_cards.py +0 -0
  199. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/factory.py +0 -0
  200. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/folder_ids.py +0 -0
  201. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/input_fields.py +0 -0
  202. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/job_outcome.py +0 -0
  203. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/listing.py +0 -0
  204. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/local_time.py +0 -0
  205. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/mapping.py +0 -0
  206. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/openapi_types.py +0 -0
  207. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/positionals.py +0 -0
  208. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/protocol.py +0 -0
  209. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/read_queries.py +0 -0
  210. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/sdk_service.py +0 -0
  211. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/sql_check.py +0 -0
  212. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/stored_stats.py +0 -0
  213. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/testing.py +0 -0
  214. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/text_dates.py +0 -0
  215. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/type_system.py +0 -0
  216. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/view_analysis.py +0 -0
  217. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/view_variants.py +0 -0
  218. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/services/write_impact.py +0 -0
  219. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/skills/__init__.py +0 -0
  220. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/skills/installer.py +0 -0
  221. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/skills/steering.py +0 -0
  222. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/mammoth_cli/testing.py +0 -0
  223. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/activity.yaml +0 -0
  224. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/addon.yaml +0 -0
  225. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/agent.yaml +0 -0
  226. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/ai.yaml +0 -0
  227. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/annotation.yaml +0 -0
  228. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/auth.yaml +0 -0
  229. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/automation.yaml +0 -0
  230. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/batch.yaml +0 -0
  231. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/billing.yaml +0 -0
  232. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/browse.yaml +0 -0
  233. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/calc.yaml +0 -0
  234. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/capability.yaml +0 -0
  235. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/client-app.yaml +0 -0
  236. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/completion.yaml +0 -0
  237. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/config.yaml +0 -0
  238. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/connector.yaml +0 -0
  239. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/context.yaml +0 -0
  240. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/dashboard.yaml +0 -0
  241. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/data-app.yaml +0 -0
  242. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/dataset.yaml +0 -0
  243. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/doctor.yaml +0 -0
  244. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/external-key.yaml +0 -0
  245. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/file.yaml +0 -0
  246. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/folder.yaml +0 -0
  247. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/job.yaml +0 -0
  248. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/link.yaml +0 -0
  249. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/log.yaml +0 -0
  250. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/notification.yaml +0 -0
  251. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/parameter.yaml +0 -0
  252. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/project.yaml +0 -0
  253. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/report.yaml +0 -0
  254. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/resolve.yaml +0 -0
  255. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/schedule.yaml +0 -0
  256. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/schema.yaml +0 -0
  257. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/skill.yaml +0 -0
  258. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/snippet.yaml +0 -0
  259. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/support.yaml +0 -0
  260. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/template.yaml +0 -0
  261. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/token.yaml +0 -0
  262. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/trash.yaml +0 -0
  263. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/upgrade.yaml +0 -0
  264. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/user.yaml +0 -0
  265. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/version.yaml +0 -0
  266. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/view.yaml +0 -0
  267. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/webhook.yaml +0 -0
  268. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/workflow.yaml +0 -0
  269. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/commands/workspace.yaml +0 -0
  270. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/edits-target.source.yaml +0 -0
  271. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/openapi-operations.yaml +0 -0
  272. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/schema-v1.json +0 -0
  273. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/sdk-catalog.source.yaml +0 -0
  274. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/manifests/sdk-methods.yaml +0 -0
  275. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/spec/openapi/metadata.json +0 -0
  276. {mammoth_cli-2.2.64 → mammoth_cli-2.2.66}/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.64
3
+ Version: 2.2.66
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.64"
9
+ __version__ = "2.2.66"
10
10
 
11
11
  # The versioned machine output envelope contract.
12
12
  SCHEMA_VERSION = 1
@@ -171,52 +171,62 @@ def _tokens_in_order(needle: str, name: str) -> bool:
171
171
  return True
172
172
 
173
173
 
174
- def _find_in_projects(
175
- service: Any,
176
- needle: str,
177
- projects: list[dict[str, Any]],
178
- skipped: list[dict[str, Any]] | None = None,
179
- ) -> list[dict[str, Any]]:
180
- """Datasets whose name has every token of ``needle`` in order, in each of ``projects``.
174
+ def _search_term(needle: str) -> str:
175
+ """The longest word of ``needle``: the server searches a substring, the words are
176
+ matched in order here."""
177
+ return max(needle.split(), key=len, default="")
178
+
179
+
180
+ def _hit_record(hit: dict[str, Any]) -> dict[str, Any]:
181
+ """A resource-search hit in the shape of a dataset record, for ``name_hit``/``source_of``."""
182
+ info = hit.get("additional_info")
183
+ original = info.get("ORIGINAL_FILE_PROPS") if isinstance(info, dict) else None
184
+ file_name = original.get("FILE_NAME") if isinstance(original, dict) else None
185
+ return {
186
+ "id": hit.get("object_id"),
187
+ "name": hit.get("name"),
188
+ "status": hit.get("status"),
189
+ "created_at": hit.get("created_at"),
190
+ "updated_at": hit.get("last_updated_at"),
191
+ "stats": {"row_count": hit.get("row_count"), "column_count": hit.get("column_count")},
192
+ "additional_info": info,
193
+ "sources": [
194
+ {
195
+ "type": hit.get("source_type"),
196
+ "details": {"file_name": file_name, "connector_key": hit.get("integration_key")},
197
+ }
198
+ ],
199
+ }
200
+
181
201
 
182
- A project that cannot be read does not end the search: with ``skipped`` it is
183
- recorded there (id, name, why) and the rest are still searched.
202
+ def _find_by_name(
203
+ service: Any, needle: str, projects: list[dict[str, Any]]
204
+ ) -> tuple[list[dict[str, Any]], bool]:
205
+ """Datasets in ``projects`` whose name has every token of ``needle`` in order, and whether cut.
206
+
207
+ One workspace search returns each hit with its size, times and source, so no
208
+ project's dataset list is read: that route costs the server a few queries per
209
+ dataset, and a project of a few hundred datasets took 20+ s to list.
184
210
  """
185
- matches: list[dict[str, Any]] = []
186
- for project in projects:
187
- project_id = project.get("id")
188
- if project_id is None:
211
+ names = {p.get("id"): p.get("name") for p in projects}
212
+ hits, cut = search_hits(service, "datasource", _search_term(needle), fields="standard")
213
+ matches = []
214
+ for hit in hits:
215
+ name = hit.get("name")
216
+ if hit.get("project_id") not in names or not isinstance(name, str):
189
217
  continue
190
- try:
191
- response = service.call(
192
- "mammoth.api.datasets.DatasetsAPI.list_all",
193
- project_id=project_id,
194
- fields=DATASET_ROW_FIELDS,
195
- )
196
- except CliError as error:
197
- if skipped is None:
198
- raise
199
- skipped.append(
200
- {
201
- "project_id": project_id,
202
- "project_name": project.get("name"),
203
- "error": error.message,
204
- }
205
- )
218
+ if not _tokens_in_order(needle, name):
206
219
  continue
207
- datasets = response.get("datasets", []) if isinstance(response, dict) else []
208
- for dataset in datasets:
209
- name = dataset.get("name") if isinstance(dataset, dict) else None
210
- if isinstance(name, str) and _tokens_in_order(needle, name):
211
- matches.append(
212
- {
213
- "project_id": project_id,
214
- "project_name": project.get("name"),
215
- **name_hit(dataset),
216
- "source": source_of(dataset),
217
- }
218
- )
219
- return matches
220
+ record = _hit_record(hit)
221
+ matches.append(
222
+ {
223
+ "project_id": hit["project_id"],
224
+ "project_name": names[hit["project_id"]],
225
+ **name_hit(record),
226
+ "source": source_of(record),
227
+ }
228
+ )
229
+ return matches, cut
220
230
 
221
231
 
222
232
  #: Pages of resource search read for one name (100 hits each); past it the result says so.
@@ -271,15 +281,6 @@ def search_cut_note(kind: str) -> str:
271
281
  )
272
282
 
273
283
 
274
- def _projects_holding(
275
- service: Any, needle: str, visible: list[dict[str, Any]]
276
- ) -> tuple[list[dict[str, Any]], bool]:
277
- """The visible projects that hold a dataset whose name contains ``needle``."""
278
- rows, cut = search_hits(service, "datasource", needle)
279
- holding = {r.get("project_id") for r in rows}
280
- return [p for p in visible if p.get("id") in holding], cut
281
-
282
-
283
284
  def _other_projects(visible: list[dict[str, Any]], project_id: int) -> list[dict[str, Any]]:
284
285
  """Every visible project except ``project_id``."""
285
286
  return [p for p in visible if p.get("id") != project_id]
@@ -394,8 +395,22 @@ def elsewhere_note(dropped: int) -> str:
394
395
  if not dropped:
395
396
  return ""
396
397
  return (
397
- f"{dropped} more match(es) in other projects are not listed: "
398
- """--input '{"all_projects": true}' lists them."""
398
+ f"{dropped} more match(es) in other projects are not listed; the match in the "
399
+ "current project is the answer. They matter only when the user names another "
400
+ """project: then --input '{"all_projects": true}' lists them."""
401
+ )
402
+
403
+
404
+ def _find_note(
405
+ matches: list[dict[str, Any]], is_exact: Callable[[dict[str, Any]], bool], needle: str
406
+ ) -> str | None:
407
+ """The ambiguity note, unless exactly one match in the project is the exact name."""
408
+ own = [m for m in matches if m.get("in_project") and is_exact(m)]
409
+ if len(own) != 1 or len(matches) < 2:
410
+ return ambiguity_note(len(matches), needle)
411
+ return (
412
+ f"'{own[0]['name']}' is dataset {own[0]['id']} in the current project; the other "
413
+ f"{len(matches) - 1} match(es) are other datasets or sit in other projects: use this id."
399
414
  )
400
415
 
401
416
 
@@ -404,22 +419,20 @@ def _find_scoped(
404
419
  needle: str,
405
420
  visible: list[dict[str, Any]],
406
421
  project_id: int,
407
- skipped: list[dict[str, Any]],
408
422
  ) -> tuple[list[dict[str, Any]], list[dict[str, Any]], bool]:
409
423
  """``(matches, projects searched, cut)``: the project's own matches, then every other one's."""
410
- home = named_project(service, project_id, visible)
411
- own = _find_in_projects(service, needle, [home], skipped)
412
- holding, cut = _projects_holding(service, needle, visible)
413
- outside = _find_in_projects(service, needle, _other_projects(holding, project_id), skipped)
414
- searched = [home] + _other_projects(visible, project_id)
415
- return _tag_scope(own + outside, project_id), searched, cut
424
+ searched = [named_project(service, project_id, visible), *_other_projects(visible, project_id)]
425
+ found, cut = _find_by_name(service, needle, searched)
426
+ matches = sorted(_tag_scope(found, project_id), key=lambda m: not m["in_project"])
427
+ return matches, searched, cut
416
428
 
417
429
 
418
430
  def dataset_find(invocation: Invocation) -> HandlerResult:
419
431
  """Search dataset names for a substring across every visible project.
420
432
 
421
433
  Read-only local composite: lists the projects the credential can see, then
422
- lists datasets in each and keeps a case-insensitive substring match. With
434
+ reads one workspace search for the name and keeps the datasets whose name has
435
+ every word of the substring, in order, ignoring case. With
423
436
  ``--project`` the project's own matches come first and the matches in every
424
437
  other visible project are returned too, each row marked ``in_project`` and
425
438
  carrying its ``project_id`` and ``project_name``: the in-product agent runs
@@ -431,23 +444,21 @@ def dataset_find(invocation: Invocation) -> HandlerResult:
431
444
  """
432
445
  name_substring = _require_string_positional(invocation, "name substring")
433
446
  needle = name_substring.lower()
434
- skipped: list[dict[str, Any]] = []
435
447
  dropped = 0
448
+
449
+ def is_exact(m: dict[str, Any]) -> bool:
450
+ return str(m.get("name", "")).lower() == needle
451
+
436
452
  with open_service(invocation) as (service, auth):
437
453
  visible = _visible_projects(service)
438
454
  cut = False
439
455
  if invocation.project is not None:
440
- matches, projects, cut = _find_scoped(
441
- service, needle, visible, invocation.project, skipped
442
- )
456
+ matches, projects, cut = _find_scoped(service, needle, visible, invocation.project)
443
457
  if not all_projects_requested(invocation):
444
- matches, dropped = narrow_to_project(
445
- matches, lambda m: str(m.get("name", "")).lower() == needle
446
- )
458
+ matches, dropped = narrow_to_project(matches, is_exact)
447
459
  else:
448
460
  projects = visible
449
- holding, cut = _projects_holding(service, needle, visible)
450
- matches = _find_in_projects(service, needle, holding, skipped)
461
+ matches, cut = _find_by_name(service, needle, visible)
451
462
  meta = {
452
463
  "profile": invocation.profile,
453
464
  "workspace_id": auth.workspace_id,
@@ -455,11 +466,9 @@ def dataset_find(invocation: Invocation) -> HandlerResult:
455
466
  }
456
467
  result: dict[str, Any] = {
457
468
  "matches": matches,
458
- "projects_searched": len(projects) - len(skipped),
469
+ "projects_searched": len(projects),
459
470
  }
460
- if skipped:
461
- result["projects_skipped"] = skipped
462
- notes = [ambiguity_note(len(matches), name_substring)]
471
+ notes = [_find_note(matches, is_exact, name_substring)]
463
472
  if dropped:
464
473
  result["elsewhere"] = dropped
465
474
  notes.append(elsewhere_note(dropped))
@@ -563,10 +572,8 @@ def _dataset_name_search(
563
572
  records = data.get("datasets", []) if isinstance(data, dict) else []
564
573
  page = search_page(records, name, int(document.get("offset", 0)), document.get("limit"))
565
574
  if page["matched"] == 0:
566
- holding, cut = _projects_holding(service, name.lower(), _visible_projects(service))
567
- elsewhere = _find_in_projects(
568
- service, name.lower(), _other_projects(holding, project_id)
569
- )
575
+ found, cut = _find_by_name(service, name.lower(), _visible_projects(service))
576
+ elsewhere = [m for m in found if m["project_id"] != project_id]
570
577
  if elsewhere:
571
578
  page["in_other_projects"] = elsewhere
572
579
  page["note"] = (
@@ -357,7 +357,9 @@ def _read_meta(
357
357
  """Envelope metadata for a data read, naming the dataset and view it read.
358
358
 
359
359
  A number in an answer needs its source; without the names an agent that
360
- silently used the wrong one of two look-alike datasets never says so.
360
+ silently used the wrong one of two look-alike datasets never says so. Both
361
+ carry their row count: a view's steps can filter rows, so a total read from
362
+ it is not the dataset's total, and the two counts are how an agent sees that.
361
363
  """
362
364
  meta = _meta(invocation, workspace_id, project_id)
363
365
  view = service.call(
@@ -365,17 +367,26 @@ def _read_meta(
365
367
  dataset_id=dataset_id,
366
368
  dataview_id=view_id,
367
369
  project_id=project_id,
368
- fields="__min",
370
+ fields="id,name,row_count",
369
371
  )
370
372
  # The read just proved this dataset holds the view; keep the pair so the
371
373
  # next command on it (a transform) needs no ``dataset_id`` of its own.
372
374
  parents.remember(_profile_name(invocation), workspace_id, {view_id: dataset_id})
373
375
  dataset = service.call(
374
- _DATASET_GET_SYMBOL, dataset_id=dataset_id, project_id=project_id, fields="id,name"
376
+ _DATASET_GET_SYMBOL,
377
+ dataset_id=dataset_id,
378
+ project_id=project_id,
379
+ fields="id,name,stats",
375
380
  )
376
381
  dataset = dataset.get("dataset", dataset) if isinstance(dataset, dict) else {}
377
- meta["dataset"] = {"id": dataset_id, "name": dataset.get("name")}
378
- meta["view"] = {"id": view_id, "name": view.get("name") if isinstance(view, dict) else None}
382
+ view = view if isinstance(view, dict) else {}
383
+ stats = dataset.get("stats")
384
+ meta["dataset"] = {
385
+ "id": dataset_id,
386
+ "name": dataset.get("name"),
387
+ "row_count": stats.get("row_count") if isinstance(stats, dict) else None,
388
+ }
389
+ meta["view"] = {"id": view_id, "name": view.get("name"), "row_count": view.get("row_count")}
379
390
  return meta
380
391
 
381
392
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mammoth-cli"
3
- version = "2.2.64"
3
+ version = "2.2.66"
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