pltr-cli 0.16.0__tar.gz → 0.17.0__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 (522) hide show
  1. pltr_cli-0.17.0/.github/workflows/ci.yml +179 -0
  2. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/.gitignore +4 -0
  3. pltr_cli-0.17.0/CHANGELOG.md +1288 -0
  4. pltr_cli-0.17.0/PKG-INFO +672 -0
  5. pltr_cli-0.17.0/README.md +629 -0
  6. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/RELEASE.md +64 -0
  7. pltr_cli-0.17.0/claude_skill/README.md +56 -0
  8. pltr_cli-0.17.0/claude_skill/SKILL.md +205 -0
  9. pltr_cli-0.17.0/claude_skill/reference/api/admin/cbac-banner.md +24 -0
  10. pltr_cli-0.17.0/claude_skill/reference/api/admin/cbac-marking-restrictions.md +15 -0
  11. pltr_cli-0.17.0/claude_skill/reference/api/admin/enrollment.md +119 -0
  12. pltr_cli-0.17.0/claude_skill/reference/api/admin/group.md +163 -0
  13. pltr_cli-0.17.0/claude_skill/reference/api/admin/marking-category.md +46 -0
  14. pltr_cli-0.17.0/claude_skill/reference/api/admin/marking.md +152 -0
  15. pltr_cli-0.17.0/claude_skill/reference/api/admin/organization.md +114 -0
  16. pltr_cli-0.17.0/claude_skill/reference/api/admin/role.md +24 -0
  17. pltr_cli-0.17.0/claude_skill/reference/api/admin/user.md +126 -0
  18. pltr_cli-0.17.0/claude_skill/reference/api/aip-agents.md +184 -0
  19. pltr_cli-0.17.0/claude_skill/reference/api/audit.md +30 -0
  20. pltr_cli-0.17.0/claude_skill/reference/api/checkpoints.md +38 -0
  21. pltr_cli-0.17.0/claude_skill/reference/api/connectivity.md +239 -0
  22. pltr_cli-0.17.0/claude_skill/reference/api/data-health.md +73 -0
  23. pltr_cli-0.17.0/claude_skill/reference/api/datasets.md +368 -0
  24. pltr_cli-0.17.0/claude_skill/reference/api/filesystem.md +401 -0
  25. pltr_cli-0.17.0/claude_skill/reference/api/functions.md +111 -0
  26. pltr_cli-0.17.0/claude_skill/reference/api/language-models.md +36 -0
  27. pltr_cli-0.17.0/claude_skill/reference/api/media-sets.md +217 -0
  28. pltr_cli-0.17.0/claude_skill/reference/api/models.md +368 -0
  29. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/action-type-full-metadata.md +48 -0
  30. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/action.md +55 -0
  31. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/attachment-property.md +60 -0
  32. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/attachment.md +49 -0
  33. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/cipher-text-property.md +46 -0
  34. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/geotemporal-series-property.md +20 -0
  35. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/linked-object.md +33 -0
  36. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/media-reference-property.md +45 -0
  37. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology-interface.md +102 -0
  38. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology-object-set.md +84 -0
  39. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology-object.md +64 -0
  40. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology-scenario.md +91 -0
  41. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology-transaction.md +18 -0
  42. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology-value-type.md +25 -0
  43. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/ontology.md +241 -0
  44. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/query.md +18 -0
  45. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/time-series-property-v2.md +45 -0
  46. pltr_cli-0.17.0/claude_skill/reference/api/ontologies/time-series-value-bank-property.md +32 -0
  47. pltr_cli-0.17.0/claude_skill/reference/api/orchestration.md +207 -0
  48. pltr_cli-0.17.0/claude_skill/reference/api/sql-queries.md +57 -0
  49. pltr_cli-0.17.0/claude_skill/reference/api/streams.md +195 -0
  50. pltr_cli-0.17.0/claude_skill/reference/api/third-party-applications.md +107 -0
  51. pltr_cli-0.17.0/claude_skill/reference/api/widgets.md +122 -0
  52. pltr_cli-0.17.0/claude_skill/reference/curated/admin.md +265 -0
  53. pltr_cli-0.17.0/claude_skill/reference/curated/aip-agents.md +54 -0
  54. pltr_cli-0.17.0/claude_skill/reference/curated/alias.md +88 -0
  55. pltr_cli-0.17.0/claude_skill/reference/curated/audit.md +27 -0
  56. pltr_cli-0.17.0/claude_skill/reference/curated/commands.md +43 -0
  57. pltr_cli-0.17.0/claude_skill/reference/curated/completion.md +34 -0
  58. pltr_cli-0.17.0/claude_skill/reference/curated/configure.md +45 -0
  59. pltr_cli-0.17.0/claude_skill/reference/curated/connectivity.md +179 -0
  60. pltr_cli-0.17.0/claude_skill/reference/curated/cp.md +20 -0
  61. pltr_cli-0.17.0/claude_skill/reference/curated/data-health.md +73 -0
  62. pltr_cli-0.17.0/claude_skill/reference/curated/dataset.md +389 -0
  63. pltr_cli-0.17.0/claude_skill/reference/curated/folder.md +54 -0
  64. pltr_cli-0.17.0/claude_skill/reference/curated/functions.md +71 -0
  65. pltr_cli-0.17.0/claude_skill/reference/curated/hello.md +12 -0
  66. pltr_cli-0.17.0/claude_skill/reference/curated/language-models.md +63 -0
  67. pltr_cli-0.17.0/claude_skill/reference/curated/media-sets.md +152 -0
  68. pltr_cli-0.17.0/claude_skill/reference/curated/models.md +53 -0
  69. pltr_cli-0.17.0/claude_skill/reference/curated/ontology.md +225 -0
  70. pltr_cli-0.17.0/claude_skill/reference/curated/orchestration.md +201 -0
  71. pltr_cli-0.17.0/claude_skill/reference/curated/project.md +121 -0
  72. pltr_cli-0.17.0/claude_skill/reference/curated/resource-role.md +57 -0
  73. pltr_cli-0.17.0/claude_skill/reference/curated/resource.md +150 -0
  74. pltr_cli-0.17.0/claude_skill/reference/curated/shell.md +24 -0
  75. pltr_cli-0.17.0/claude_skill/reference/curated/space.md +79 -0
  76. pltr_cli-0.17.0/claude_skill/reference/curated/sql.md +76 -0
  77. pltr_cli-0.17.0/claude_skill/reference/curated/streams.md +91 -0
  78. pltr_cli-0.17.0/claude_skill/reference/curated/third-party-apps.md +15 -0
  79. pltr_cli-0.17.0/claude_skill/reference/curated/verify.md +12 -0
  80. pltr_cli-0.17.0/claude_skill/reference/curated/widgets.md +64 -0
  81. pltr_cli-0.17.0/claude_skill/reference/index.md +105 -0
  82. pltr_cli-0.17.0/claude_skill/workflows/builds-and-schedules.md +63 -0
  83. pltr_cli-0.17.0/claude_skill/workflows/explore-data.md +89 -0
  84. pltr_cli-0.17.0/claude_skill/workflows/permissions.md +58 -0
  85. pltr_cli-0.17.0/docs/README.md +36 -0
  86. pltr_cli-0.17.0/docs/api/wrapper.md +213 -0
  87. pltr_cli-0.17.0/docs/api-commands.md +352 -0
  88. pltr_cli-0.17.0/docs/development/command-contract.md +560 -0
  89. pltr_cli-0.17.0/docs/development/live-verification.md +525 -0
  90. pltr_cli-0.17.0/docs/development/sdk-guardrail.md +214 -0
  91. pltr_cli-0.17.0/docs/examples/csv-upload.md +322 -0
  92. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/docs/examples/gallery.md +21 -13
  93. pltr_cli-0.17.0/docs/features/dataset-transactions.md +287 -0
  94. pltr_cli-0.17.0/docs/migration/v2-pagination.md +66 -0
  95. pltr_cli-0.17.0/docs/pagination.md +118 -0
  96. pltr_cli-0.17.0/docs/user-guide/aliases.md +252 -0
  97. pltr_cli-0.17.0/docs/user-guide/authentication.md +537 -0
  98. pltr_cli-0.17.0/docs/user-guide/claude-skill.md +135 -0
  99. pltr_cli-0.17.0/docs/user-guide/commands.md +818 -0
  100. pltr_cli-0.17.0/docs/user-guide/quick-start.md +136 -0
  101. pltr_cli-0.17.0/docs/user-guide/troubleshooting.md +212 -0
  102. pltr_cli-0.17.0/docs/user-guide/workflows.md +229 -0
  103. pltr_cli-0.17.0/pyproject.toml +121 -0
  104. pltr_cli-0.17.0/scripts/__init__.py +5 -0
  105. pltr_cli-0.17.0/scripts/check_command_metadata.py +418 -0
  106. pltr_cli-0.17.0/scripts/check_sdk_calls.py +131 -0
  107. pltr_cli-0.17.0/scripts/coverage.py +237 -0
  108. pltr_cli-0.17.0/scripts/generate_api_commands.py +1000 -0
  109. pltr_cli-0.17.0/scripts/generate_skill_reference.py +692 -0
  110. pltr_cli-0.17.0/scripts/sdk_calls.py +1341 -0
  111. pltr_cli-0.17.0/scripts/smoke.example.toml +117 -0
  112. pltr_cli-0.17.0/scripts/smoke.py +2818 -0
  113. pltr_cli-0.17.0/src/pltr/__init__.py +1 -0
  114. pltr_cli-0.17.0/src/pltr/__main__.py +6 -0
  115. pltr_cli-0.17.0/src/pltr/auth/base.py +109 -0
  116. pltr_cli-0.17.0/src/pltr/auth/environment.py +162 -0
  117. pltr_cli-0.17.0/src/pltr/auth/manager.py +459 -0
  118. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/auth/oauth.py +42 -26
  119. pltr_cli-0.17.0/src/pltr/auth/storage.py +232 -0
  120. pltr_cli-0.17.0/src/pltr/auth/token.py +74 -0
  121. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/cli.py +44 -23
  122. pltr_cli-0.17.0/src/pltr/commands/admin.py +1217 -0
  123. pltr_cli-0.17.0/src/pltr/commands/aip_agents.py +214 -0
  124. pltr_cli-0.17.0/src/pltr/commands/alias.py +344 -0
  125. pltr_cli-0.17.0/src/pltr/commands/api/__init__.py +62 -0
  126. pltr_cli-0.17.0/src/pltr/commands/api/_runtime.py +723 -0
  127. pltr_cli-0.17.0/src/pltr/commands/api/_specs/__init__.py +26 -0
  128. pltr_cli-0.17.0/src/pltr/commands/api/_specs/admin.py +997 -0
  129. pltr_cli-0.17.0/src/pltr/commands/api/_specs/aip_agents.py +260 -0
  130. pltr_cli-0.17.0/src/pltr/commands/api/_specs/audit.py +58 -0
  131. pltr_cli-0.17.0/src/pltr/commands/api/_specs/checkpoints.py +58 -0
  132. pltr_cli-0.17.0/src/pltr/commands/api/_specs/connectivity.py +297 -0
  133. pltr_cli-0.17.0/src/pltr/commands/api/_specs/data_health.py +104 -0
  134. pltr_cli-0.17.0/src/pltr/commands/api/_specs/datasets.py +483 -0
  135. pltr_cli-0.17.0/src/pltr/commands/api/_specs/filesystem.py +529 -0
  136. pltr_cli-0.17.0/src/pltr/commands/api/_specs/functions.py +173 -0
  137. pltr_cli-0.17.0/src/pltr/commands/api/_specs/language_models.py +67 -0
  138. pltr_cli-0.17.0/src/pltr/commands/api/_specs/media_sets.py +282 -0
  139. pltr_cli-0.17.0/src/pltr/commands/api/_specs/models.py +502 -0
  140. pltr_cli-0.17.0/src/pltr/commands/api/_specs/ontologies.py +1563 -0
  141. pltr_cli-0.17.0/src/pltr/commands/api/_specs/orchestration.py +284 -0
  142. pltr_cli-0.17.0/src/pltr/commands/api/_specs/sql_queries.py +84 -0
  143. pltr_cli-0.17.0/src/pltr/commands/api/_specs/streams.py +259 -0
  144. pltr_cli-0.17.0/src/pltr/commands/api/_specs/third_party_applications.py +146 -0
  145. pltr_cli-0.17.0/src/pltr/commands/api/_specs/widgets.py +157 -0
  146. pltr_cli-0.17.0/src/pltr/commands/audit.py +148 -0
  147. pltr_cli-0.17.0/src/pltr/commands/completion.py +221 -0
  148. pltr_cli-0.17.0/src/pltr/commands/configure.py +338 -0
  149. pltr_cli-0.17.0/src/pltr/commands/connectivity.py +831 -0
  150. pltr_cli-0.17.0/src/pltr/commands/cp.py +196 -0
  151. pltr_cli-0.17.0/src/pltr/commands/data_health.py +301 -0
  152. pltr_cli-0.17.0/src/pltr/commands/dataset.py +1823 -0
  153. pltr_cli-0.17.0/src/pltr/commands/folder.py +223 -0
  154. pltr_cli-0.17.0/src/pltr/commands/functions.py +308 -0
  155. pltr_cli-0.17.0/src/pltr/commands/language_models.py +475 -0
  156. pltr_cli-0.17.0/src/pltr/commands/manifest.py +263 -0
  157. pltr_cli-0.17.0/src/pltr/commands/mediasets.py +643 -0
  158. pltr_cli-0.17.0/src/pltr/commands/models.py +228 -0
  159. pltr_cli-0.17.0/src/pltr/commands/ontology.py +1465 -0
  160. pltr_cli-0.17.0/src/pltr/commands/orchestration.py +943 -0
  161. pltr_cli-0.17.0/src/pltr/commands/project.py +517 -0
  162. pltr_cli-0.17.0/src/pltr/commands/resource.py +630 -0
  163. pltr_cli-0.17.0/src/pltr/commands/resource_role.py +306 -0
  164. pltr_cli-0.17.0/src/pltr/commands/shell.py +320 -0
  165. pltr_cli-0.17.0/src/pltr/commands/space.py +292 -0
  166. pltr_cli-0.17.0/src/pltr/commands/sql.py +362 -0
  167. pltr_cli-0.17.0/src/pltr/commands/streams.py +443 -0
  168. pltr_cli-0.17.0/src/pltr/commands/third_party_applications.py +66 -0
  169. pltr_cli-0.17.0/src/pltr/commands/verify.py +135 -0
  170. pltr_cli-0.17.0/src/pltr/commands/widgets.py +201 -0
  171. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/config/aliases.py +0 -30
  172. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/config/profiles.py +12 -12
  173. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/config/settings.py +18 -10
  174. pltr_cli-0.17.0/src/pltr/contract/__init__.py +152 -0
  175. pltr_cli-0.17.0/src/pltr/contract/command.py +344 -0
  176. pltr_cli-0.17.0/src/pltr/contract/errors.py +729 -0
  177. pltr_cli-0.17.0/src/pltr/contract/options.py +350 -0
  178. pltr_cli-0.17.0/src/pltr/contract/output.py +494 -0
  179. pltr_cli-0.17.0/src/pltr/contract/runtime.py +275 -0
  180. pltr_cli-0.17.0/src/pltr/contract/serialize.py +163 -0
  181. pltr_cli-0.17.0/src/pltr/manifest.py +756 -0
  182. pltr_cli-0.17.0/src/pltr/services/admin.py +409 -0
  183. pltr_cli-0.17.0/src/pltr/services/aip_agents.py +72 -0
  184. pltr_cli-0.17.0/src/pltr/services/audit.py +74 -0
  185. pltr_cli-0.17.0/src/pltr/services/base.py +120 -0
  186. pltr_cli-0.17.0/src/pltr/services/connectivity.py +238 -0
  187. pltr_cli-0.17.0/src/pltr/services/copy.py +462 -0
  188. pltr_cli-0.17.0/src/pltr/services/data_health.py +84 -0
  189. pltr_cli-0.17.0/src/pltr/services/dataset.py +864 -0
  190. pltr_cli-0.17.0/src/pltr/services/folder.py +74 -0
  191. pltr_cli-0.17.0/src/pltr/services/functions.py +126 -0
  192. pltr_cli-0.17.0/src/pltr/services/language_models.py +282 -0
  193. pltr_cli-0.17.0/src/pltr/services/mediasets.py +164 -0
  194. pltr_cli-0.17.0/src/pltr/services/models.py +75 -0
  195. pltr_cli-0.17.0/src/pltr/services/ontology.py +597 -0
  196. pltr_cli-0.17.0/src/pltr/services/orchestration.py +231 -0
  197. pltr_cli-0.17.0/src/pltr/services/project.py +226 -0
  198. pltr_cli-0.17.0/src/pltr/services/resource.py +278 -0
  199. pltr_cli-0.17.0/src/pltr/services/resource_role.py +86 -0
  200. pltr_cli-0.17.0/src/pltr/services/space.py +111 -0
  201. pltr_cli-0.17.0/src/pltr/services/sql.py +197 -0
  202. pltr_cli-0.17.0/src/pltr/services/streams.py +137 -0
  203. pltr_cli-0.17.0/src/pltr/services/third_party_applications.py +30 -0
  204. pltr_cli-0.17.0/src/pltr/services/verify.py +36 -0
  205. pltr_cli-0.17.0/src/pltr/services/widgets.py +73 -0
  206. pltr_cli-0.17.0/src/pltr/utils/completion.py +122 -0
  207. pltr_cli-0.17.0/tests/conftest.py +285 -0
  208. pltr_cli-0.17.0/tests/foundry_json.py +99 -0
  209. pltr_cli-0.17.0/tests/foundry_json_admin.py +124 -0
  210. pltr_cli-0.17.0/tests/foundry_json_aip_agents.py +79 -0
  211. pltr_cli-0.17.0/tests/foundry_json_audit.py +14 -0
  212. pltr_cli-0.17.0/tests/foundry_json_connectivity.py +106 -0
  213. pltr_cli-0.17.0/tests/foundry_json_data_health.py +66 -0
  214. pltr_cli-0.17.0/tests/foundry_json_dataset.py +191 -0
  215. pltr_cli-0.17.0/tests/foundry_json_filesystem.py +183 -0
  216. pltr_cli-0.17.0/tests/foundry_json_functions.py +60 -0
  217. pltr_cli-0.17.0/tests/foundry_json_language_models.py +63 -0
  218. pltr_cli-0.17.0/tests/foundry_json_mediasets.py +62 -0
  219. pltr_cli-0.17.0/tests/foundry_json_models.py +57 -0
  220. pltr_cli-0.17.0/tests/foundry_json_ontology.py +221 -0
  221. pltr_cli-0.17.0/tests/foundry_json_orchestration.py +130 -0
  222. pltr_cli-0.17.0/tests/foundry_json_sql.py +59 -0
  223. pltr_cli-0.17.0/tests/foundry_json_streams.py +48 -0
  224. pltr_cli-0.17.0/tests/foundry_json_widgets.py +38 -0
  225. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/test_auth_flow.py +9 -1
  226. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/test_cli_integration.py +10 -24
  227. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/test_data_workflows_simple.py +23 -10
  228. pltr_cli-0.17.0/tests/sdk_call_allowlist.txt +9 -0
  229. pltr_cli-0.17.0/tests/test_api_commands/conftest.py +32 -0
  230. pltr_cli-0.17.0/tests/test_api_commands/test_behaviour.py +1008 -0
  231. pltr_cli-0.17.0/tests/test_api_commands/test_generator.py +356 -0
  232. pltr_cli-0.17.0/tests/test_api_commands/test_lazy_loading.py +122 -0
  233. pltr_cli-0.17.0/tests/test_api_commands/test_namespaces.py +357 -0
  234. pltr_cli-0.17.0/tests/test_auth/fakes.py +170 -0
  235. pltr_cli-0.17.0/tests/test_auth/test_headless_auth.py +777 -0
  236. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_auth/test_manager.py +25 -0
  237. pltr_cli-0.17.0/tests/test_auth/test_oauth.py +186 -0
  238. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_auth/test_storage.py +89 -7
  239. pltr_cli-0.17.0/tests/test_auth/test_token.py +134 -0
  240. pltr_cli-0.17.0/tests/test_cli_help.py +107 -0
  241. pltr_cli-0.17.0/tests/test_commands/test_admin.py +1366 -0
  242. pltr_cli-0.17.0/tests/test_commands/test_aip_agents.py +338 -0
  243. pltr_cli-0.17.0/tests/test_commands/test_alias.py +468 -0
  244. pltr_cli-0.17.0/tests/test_commands/test_audit.py +313 -0
  245. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_commands/test_completion.py +196 -63
  246. pltr_cli-0.17.0/tests/test_commands/test_configure.py +505 -0
  247. pltr_cli-0.17.0/tests/test_commands/test_connectivity.py +1228 -0
  248. pltr_cli-0.17.0/tests/test_commands/test_cp.py +383 -0
  249. pltr_cli-0.17.0/tests/test_commands/test_data_health.py +433 -0
  250. pltr_cli-0.17.0/tests/test_commands/test_dataset.py +997 -0
  251. pltr_cli-0.17.0/tests/test_commands/test_dataset_files.py +841 -0
  252. pltr_cli-0.17.0/tests/test_commands/test_dataset_transactions.py +280 -0
  253. pltr_cli-0.17.0/tests/test_commands/test_dataset_views.py +431 -0
  254. pltr_cli-0.17.0/tests/test_commands/test_folder.py +454 -0
  255. pltr_cli-0.17.0/tests/test_commands/test_functions.py +394 -0
  256. pltr_cli-0.17.0/tests/test_commands/test_language_models.py +657 -0
  257. pltr_cli-0.17.0/tests/test_commands/test_mediasets.py +782 -0
  258. pltr_cli-0.17.0/tests/test_commands/test_models.py +279 -0
  259. pltr_cli-0.17.0/tests/test_commands/test_ontology.py +1590 -0
  260. pltr_cli-0.17.0/tests/test_commands/test_orchestration.py +962 -0
  261. pltr_cli-0.17.0/tests/test_commands/test_project.py +575 -0
  262. pltr_cli-0.17.0/tests/test_commands/test_resource.py +647 -0
  263. pltr_cli-0.17.0/tests/test_commands/test_resource_role.py +402 -0
  264. pltr_cli-0.17.0/tests/test_commands/test_shell.py +500 -0
  265. pltr_cli-0.17.0/tests/test_commands/test_space.py +339 -0
  266. pltr_cli-0.17.0/tests/test_commands/test_sql.py +587 -0
  267. pltr_cli-0.17.0/tests/test_commands/test_streams.py +632 -0
  268. pltr_cli-0.17.0/tests/test_commands/test_third_party_applications.py +127 -0
  269. pltr_cli-0.17.0/tests/test_commands/test_verify.py +451 -0
  270. pltr_cli-0.17.0/tests/test_commands/test_widgets.py +393 -0
  271. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_config/test_aliases.py +0 -26
  272. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_config/test_profiles.py +35 -2
  273. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_config/test_settings.py +45 -23
  274. pltr_cli-0.17.0/tests/test_contract/__init__.py +0 -0
  275. pltr_cli-0.17.0/tests/test_contract/cases/__init__.py +69 -0
  276. pltr_cli-0.17.0/tests/test_contract/cases/admin.py +69 -0
  277. pltr_cli-0.17.0/tests/test_contract/cases/aip_agents.py +11 -0
  278. pltr_cli-0.17.0/tests/test_contract/cases/api.py +194 -0
  279. pltr_cli-0.17.0/tests/test_contract/cases/audit.py +15 -0
  280. pltr_cli-0.17.0/tests/test_contract/cases/connectivity.py +69 -0
  281. pltr_cli-0.17.0/tests/test_contract/cases/cp.py +26 -0
  282. pltr_cli-0.17.0/tests/test_contract/cases/data/connectivity-driver.jar +1 -0
  283. pltr_cli-0.17.0/tests/test_contract/cases/data/connectivity-secrets.json +1 -0
  284. pltr_cli-0.17.0/tests/test_contract/cases/data_health.py +24 -0
  285. pltr_cli-0.17.0/tests/test_contract/cases/dataset.py +69 -0
  286. pltr_cli-0.17.0/tests/test_contract/cases/folder.py +18 -0
  287. pltr_cli-0.17.0/tests/test_contract/cases/functions.py +16 -0
  288. pltr_cli-0.17.0/tests/test_contract/cases/language_models.py +29 -0
  289. pltr_cli-0.17.0/tests/test_contract/cases/local.py +28 -0
  290. pltr_cli-0.17.0/tests/test_contract/cases/manifest.py +10 -0
  291. pltr_cli-0.17.0/tests/test_contract/cases/mediasets.py +38 -0
  292. pltr_cli-0.17.0/tests/test_contract/cases/models.py +13 -0
  293. pltr_cli-0.17.0/tests/test_contract/cases/ontology.py +57 -0
  294. pltr_cli-0.17.0/tests/test_contract/cases/orchestration.py +43 -0
  295. pltr_cli-0.17.0/tests/test_contract/cases/project.py +32 -0
  296. pltr_cli-0.17.0/tests/test_contract/cases/resource.py +30 -0
  297. pltr_cli-0.17.0/tests/test_contract/cases/resource_role.py +31 -0
  298. pltr_cli-0.17.0/tests/test_contract/cases/space.py +21 -0
  299. pltr_cli-0.17.0/tests/test_contract/cases/sql.py +22 -0
  300. pltr_cli-0.17.0/tests/test_contract/cases/streams.py +49 -0
  301. pltr_cli-0.17.0/tests/test_contract/cases/third_party_applications.py +7 -0
  302. pltr_cli-0.17.0/tests/test_contract/cases/verify.py +7 -0
  303. pltr_cli-0.17.0/tests/test_contract/cases/widgets.py +14 -0
  304. pltr_cli-0.17.0/tests/test_contract/test_cli_contract.py +325 -0
  305. pltr_cli-0.17.0/tests/test_contract/test_command.py +356 -0
  306. pltr_cli-0.17.0/tests/test_contract/test_errors.py +635 -0
  307. pltr_cli-0.17.0/tests/test_contract/test_options.py +457 -0
  308. pltr_cli-0.17.0/tests/test_contract/test_output.py +438 -0
  309. pltr_cli-0.17.0/tests/test_contract/test_runtime.py +275 -0
  310. pltr_cli-0.17.0/tests/test_contract/test_serialize.py +247 -0
  311. pltr_cli-0.17.0/tests/test_contract/test_table_rows_timezones.py +38 -0
  312. pltr_cli-0.17.0/tests/test_debug_tracebacks.py +97 -0
  313. pltr_cli-0.17.0/tests/test_dependencies.py +92 -0
  314. pltr_cli-0.17.0/tests/test_docs_examples.py +606 -0
  315. pltr_cli-0.17.0/tests/test_entry_point.py +46 -0
  316. pltr_cli-0.17.0/tests/test_manifest/__init__.py +0 -0
  317. pltr_cli-0.17.0/tests/test_manifest/conftest.py +39 -0
  318. pltr_cli-0.17.0/tests/test_manifest/test_manifest_build.py +436 -0
  319. pltr_cli-0.17.0/tests/test_manifest/test_manifest_cli.py +211 -0
  320. pltr_cli-0.17.0/tests/test_manifest/test_manifest_search.py +128 -0
  321. pltr_cli-0.17.0/tests/test_manifest/test_metadata_crosscheck.py +114 -0
  322. pltr_cli-0.17.0/tests/test_manifest/test_skill_reference.py +254 -0
  323. pltr_cli-0.17.0/tests/test_sdk_call_checker.py +622 -0
  324. pltr_cli-0.17.0/tests/test_sdk_call_guardrail.py +68 -0
  325. pltr_cli-0.17.0/tests/test_services/test_admin.py +615 -0
  326. pltr_cli-0.17.0/tests/test_services/test_aip_agents.py +102 -0
  327. pltr_cli-0.17.0/tests/test_services/test_audit.py +73 -0
  328. pltr_cli-0.17.0/tests/test_services/test_connectivity.py +334 -0
  329. pltr_cli-0.17.0/tests/test_services/test_copy.py +844 -0
  330. pltr_cli-0.17.0/tests/test_services/test_data_health.py +137 -0
  331. pltr_cli-0.17.0/tests/test_services/test_dataset.py +696 -0
  332. pltr_cli-0.17.0/tests/test_services/test_dataset_transactions.py +206 -0
  333. pltr_cli-0.17.0/tests/test_services/test_folder.py +128 -0
  334. pltr_cli-0.17.0/tests/test_services/test_functions.py +174 -0
  335. pltr_cli-0.17.0/tests/test_services/test_language_models.py +276 -0
  336. pltr_cli-0.17.0/tests/test_services/test_mediasets.py +227 -0
  337. pltr_cli-0.17.0/tests/test_services/test_models.py +97 -0
  338. pltr_cli-0.17.0/tests/test_services/test_ontology.py +616 -0
  339. pltr_cli-0.17.0/tests/test_services/test_orchestration.py +338 -0
  340. pltr_cli-0.17.0/tests/test_services/test_project.py +325 -0
  341. pltr_cli-0.17.0/tests/test_services/test_resource.py +310 -0
  342. pltr_cli-0.17.0/tests/test_services/test_resource_role.py +130 -0
  343. pltr_cli-0.17.0/tests/test_services/test_space.py +144 -0
  344. pltr_cli-0.17.0/tests/test_services/test_sql.py +292 -0
  345. pltr_cli-0.17.0/tests/test_services/test_streams.py +185 -0
  346. pltr_cli-0.17.0/tests/test_services/test_widgets.py +108 -0
  347. pltr_cli-0.17.0/tests/test_smoke_script.py +913 -0
  348. pltr_cli-0.17.0/tests/test_smoke_script_stubbed.py +689 -0
  349. pltr_cli-0.17.0/tests/test_startup.py +37 -0
  350. pltr_cli-0.17.0/tests/test_utils/test_rid_cache.py +94 -0
  351. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/uv.lock +35 -281
  352. pltr_cli-0.16.0/.github/workflows/ci.yml +0 -81
  353. pltr_cli-0.16.0/.github/workflows/claude-code-review.yml +0 -56
  354. pltr_cli-0.16.0/.github/workflows/claude.yml +0 -49
  355. pltr_cli-0.16.0/CHANGELOG.md +0 -26
  356. pltr_cli-0.16.0/PKG-INFO +0 -565
  357. pltr_cli-0.16.0/README.md +0 -526
  358. pltr_cli-0.16.0/claude_skill/README.md +0 -51
  359. pltr_cli-0.16.0/claude_skill/SKILL.md +0 -188
  360. pltr_cli-0.16.0/claude_skill/reference/admin-commands.md +0 -311
  361. pltr_cli-0.16.0/claude_skill/reference/aip-agents-commands.md +0 -209
  362. pltr_cli-0.16.0/claude_skill/reference/connectivity-commands.md +0 -227
  363. pltr_cli-0.16.0/claude_skill/reference/dataset-commands.md +0 -154
  364. pltr_cli-0.16.0/claude_skill/reference/filesystem-commands.md +0 -398
  365. pltr_cli-0.16.0/claude_skill/reference/functions-commands.md +0 -279
  366. pltr_cli-0.16.0/claude_skill/reference/language-models-commands.md +0 -235
  367. pltr_cli-0.16.0/claude_skill/reference/mediasets-commands.md +0 -222
  368. pltr_cli-0.16.0/claude_skill/reference/models-commands.md +0 -232
  369. pltr_cli-0.16.0/claude_skill/reference/ontology-commands.md +0 -171
  370. pltr_cli-0.16.0/claude_skill/reference/orchestration-commands.md +0 -221
  371. pltr_cli-0.16.0/claude_skill/reference/quick-start.md +0 -136
  372. pltr_cli-0.16.0/claude_skill/reference/sql-commands.md +0 -156
  373. pltr_cli-0.16.0/claude_skill/reference/streams-commands.md +0 -268
  374. pltr_cli-0.16.0/claude_skill/workflows/data-analysis.md +0 -215
  375. pltr_cli-0.16.0/claude_skill/workflows/data-pipeline.md +0 -242
  376. pltr_cli-0.16.0/claude_skill/workflows/permission-management.md +0 -254
  377. pltr_cli-0.16.0/docs/README.md +0 -52
  378. pltr_cli-0.16.0/docs/api/wrapper.md +0 -625
  379. pltr_cli-0.16.0/docs/examples/csv-upload.md +0 -724
  380. pltr_cli-0.16.0/docs/features/dataset-transactions.md +0 -295
  381. pltr_cli-0.16.0/docs/migration/v2-pagination.md +0 -478
  382. pltr_cli-0.16.0/docs/pagination.md +0 -494
  383. pltr_cli-0.16.0/docs/user-guide/aliases.md +0 -257
  384. pltr_cli-0.16.0/docs/user-guide/authentication.md +0 -403
  385. pltr_cli-0.16.0/docs/user-guide/claude-skill.md +0 -141
  386. pltr_cli-0.16.0/docs/user-guide/commands.md +0 -1987
  387. pltr_cli-0.16.0/docs/user-guide/quick-start.md +0 -184
  388. pltr_cli-0.16.0/docs/user-guide/troubleshooting.md +0 -529
  389. pltr_cli-0.16.0/docs/user-guide/workflows.md +0 -759
  390. pltr_cli-0.16.0/pyproject.toml +0 -81
  391. pltr_cli-0.16.0/src/pltr/__init__.py +0 -1
  392. pltr_cli-0.16.0/src/pltr/__main__.py +0 -31
  393. pltr_cli-0.16.0/src/pltr/auth/base.py +0 -49
  394. pltr_cli-0.16.0/src/pltr/auth/manager.py +0 -129
  395. pltr_cli-0.16.0/src/pltr/auth/storage.py +0 -87
  396. pltr_cli-0.16.0/src/pltr/auth/token.py +0 -64
  397. pltr_cli-0.16.0/src/pltr/commands/admin.py +0 -1084
  398. pltr_cli-0.16.0/src/pltr/commands/aip_agents.py +0 -333
  399. pltr_cli-0.16.0/src/pltr/commands/alias.py +0 -241
  400. pltr_cli-0.16.0/src/pltr/commands/audit.py +0 -186
  401. pltr_cli-0.16.0/src/pltr/commands/completion.py +0 -383
  402. pltr_cli-0.16.0/src/pltr/commands/configure.py +0 -151
  403. pltr_cli-0.16.0/src/pltr/commands/connectivity.py +0 -740
  404. pltr_cli-0.16.0/src/pltr/commands/cp.py +0 -103
  405. pltr_cli-0.16.0/src/pltr/commands/data_health.py +0 -474
  406. pltr_cli-0.16.0/src/pltr/commands/dataset.py +0 -1609
  407. pltr_cli-0.16.0/src/pltr/commands/folder.py +0 -338
  408. pltr_cli-0.16.0/src/pltr/commands/functions.py +0 -503
  409. pltr_cli-0.16.0/src/pltr/commands/language_models.py +0 -657
  410. pltr_cli-0.16.0/src/pltr/commands/mediasets.py +0 -598
  411. pltr_cli-0.16.0/src/pltr/commands/models.py +0 -362
  412. pltr_cli-0.16.0/src/pltr/commands/ontology.py +0 -732
  413. pltr_cli-0.16.0/src/pltr/commands/orchestration.py +0 -837
  414. pltr_cli-0.16.0/src/pltr/commands/project.py +0 -649
  415. pltr_cli-0.16.0/src/pltr/commands/resource.py +0 -959
  416. pltr_cli-0.16.0/src/pltr/commands/resource_role.py +0 -454
  417. pltr_cli-0.16.0/src/pltr/commands/shell.py +0 -126
  418. pltr_cli-0.16.0/src/pltr/commands/space.py +0 -384
  419. pltr_cli-0.16.0/src/pltr/commands/sql.py +0 -405
  420. pltr_cli-0.16.0/src/pltr/commands/streams.py +0 -616
  421. pltr_cli-0.16.0/src/pltr/commands/third_party_applications.py +0 -82
  422. pltr_cli-0.16.0/src/pltr/commands/verify.py +0 -186
  423. pltr_cli-0.16.0/src/pltr/commands/widgets.py +0 -466
  424. pltr_cli-0.16.0/src/pltr/services/admin.py +0 -642
  425. pltr_cli-0.16.0/src/pltr/services/aip_agents.py +0 -147
  426. pltr_cli-0.16.0/src/pltr/services/audit.py +0 -105
  427. pltr_cli-0.16.0/src/pltr/services/base.py +0 -232
  428. pltr_cli-0.16.0/src/pltr/services/connectivity.py +0 -562
  429. pltr_cli-0.16.0/src/pltr/services/copy.py +0 -391
  430. pltr_cli-0.16.0/src/pltr/services/data_health.py +0 -212
  431. pltr_cli-0.16.0/src/pltr/services/dataset.py +0 -1334
  432. pltr_cli-0.16.0/src/pltr/services/folder.py +0 -193
  433. pltr_cli-0.16.0/src/pltr/services/functions.py +0 -223
  434. pltr_cli-0.16.0/src/pltr/services/language_models.py +0 -547
  435. pltr_cli-0.16.0/src/pltr/services/mediasets.py +0 -428
  436. pltr_cli-0.16.0/src/pltr/services/models.py +0 -179
  437. pltr_cli-0.16.0/src/pltr/services/ontology.py +0 -729
  438. pltr_cli-0.16.0/src/pltr/services/orchestration.py +0 -610
  439. pltr_cli-0.16.0/src/pltr/services/project.py +0 -451
  440. pltr_cli-0.16.0/src/pltr/services/resource.py +0 -578
  441. pltr_cli-0.16.0/src/pltr/services/resource_role.py +0 -321
  442. pltr_cli-0.16.0/src/pltr/services/space.py +0 -203
  443. pltr_cli-0.16.0/src/pltr/services/sql.py +0 -388
  444. pltr_cli-0.16.0/src/pltr/services/streams.py +0 -290
  445. pltr_cli-0.16.0/src/pltr/services/third_party_applications.py +0 -53
  446. pltr_cli-0.16.0/src/pltr/services/widgets.py +0 -293
  447. pltr_cli-0.16.0/src/pltr/utils/completion.py +0 -178
  448. pltr_cli-0.16.0/src/pltr/utils/formatting.py +0 -1654
  449. pltr_cli-0.16.0/src/pltr/utils/pagination.py +0 -325
  450. pltr_cli-0.16.0/src/pltr/utils/progress.py +0 -328
  451. pltr_cli-0.16.0/tests/conftest.py +0 -118
  452. pltr_cli-0.16.0/tests/test_auth/test_oauth.py +0 -271
  453. pltr_cli-0.16.0/tests/test_auth/test_token.py +0 -217
  454. pltr_cli-0.16.0/tests/test_commands/test_admin.py +0 -872
  455. pltr_cli-0.16.0/tests/test_commands/test_aip_agents.py +0 -458
  456. pltr_cli-0.16.0/tests/test_commands/test_alias.py +0 -225
  457. pltr_cli-0.16.0/tests/test_commands/test_audit.py +0 -340
  458. pltr_cli-0.16.0/tests/test_commands/test_connectivity.py +0 -857
  459. pltr_cli-0.16.0/tests/test_commands/test_data_health.py +0 -396
  460. pltr_cli-0.16.0/tests/test_commands/test_dataset.py +0 -380
  461. pltr_cli-0.16.0/tests/test_commands/test_folder.py +0 -393
  462. pltr_cli-0.16.0/tests/test_commands/test_functions.py +0 -629
  463. pltr_cli-0.16.0/tests/test_commands/test_language_models.py +0 -815
  464. pltr_cli-0.16.0/tests/test_commands/test_mediasets.py +0 -520
  465. pltr_cli-0.16.0/tests/test_commands/test_models.py +0 -404
  466. pltr_cli-0.16.0/tests/test_commands/test_ontology.py +0 -700
  467. pltr_cli-0.16.0/tests/test_commands/test_orchestration.py +0 -610
  468. pltr_cli-0.16.0/tests/test_commands/test_shell.py +0 -183
  469. pltr_cli-0.16.0/tests/test_commands/test_sql.py +0 -476
  470. pltr_cli-0.16.0/tests/test_commands/test_streams.py +0 -579
  471. pltr_cli-0.16.0/tests/test_commands/test_third_party_applications.py +0 -255
  472. pltr_cli-0.16.0/tests/test_commands/test_verify_simple.py +0 -95
  473. pltr_cli-0.16.0/tests/test_commands/test_widgets.py +0 -560
  474. pltr_cli-0.16.0/tests/test_services/test_admin.py +0 -776
  475. pltr_cli-0.16.0/tests/test_services/test_aip_agents.py +0 -204
  476. pltr_cli-0.16.0/tests/test_services/test_connectivity.py +0 -715
  477. pltr_cli-0.16.0/tests/test_services/test_copy.py +0 -160
  478. pltr_cli-0.16.0/tests/test_services/test_data_health.py +0 -259
  479. pltr_cli-0.16.0/tests/test_services/test_dataset.py +0 -525
  480. pltr_cli-0.16.0/tests/test_services/test_dataset_transactions.py +0 -404
  481. pltr_cli-0.16.0/tests/test_services/test_folder.py +0 -307
  482. pltr_cli-0.16.0/tests/test_services/test_functions.py +0 -345
  483. pltr_cli-0.16.0/tests/test_services/test_language_models.py +0 -709
  484. pltr_cli-0.16.0/tests/test_services/test_mediasets.py +0 -371
  485. pltr_cli-0.16.0/tests/test_services/test_models.py +0 -274
  486. pltr_cli-0.16.0/tests/test_services/test_ontology.py +0 -707
  487. pltr_cli-0.16.0/tests/test_services/test_orchestration.py +0 -652
  488. pltr_cli-0.16.0/tests/test_services/test_pagination_integration.py +0 -167
  489. pltr_cli-0.16.0/tests/test_services/test_project.py +0 -573
  490. pltr_cli-0.16.0/tests/test_services/test_resource.py +0 -778
  491. pltr_cli-0.16.0/tests/test_services/test_resource_role.py +0 -371
  492. pltr_cli-0.16.0/tests/test_services/test_space.py +0 -296
  493. pltr_cli-0.16.0/tests/test_services/test_sql.py +0 -388
  494. pltr_cli-0.16.0/tests/test_services/test_streams.py +0 -376
  495. pltr_cli-0.16.0/tests/test_utils/test_pagination.py +0 -321
  496. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/.github/workflows/publish.yml +0 -0
  497. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/.github/workflows/test-publish.yml +0 -0
  498. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/.pre-commit-config.yaml +0 -0
  499. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/CLAUDE.md +0 -0
  500. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/LICENSE +0 -0
  501. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/mypy.ini +0 -0
  502. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/scripts/release.py +0 -0
  503. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/auth/__init__.py +0 -0
  504. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/commands/__init__.py +0 -0
  505. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/config/__init__.py +0 -0
  506. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/services/__init__.py +0 -0
  507. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/utils/__init__.py +0 -0
  508. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/src/pltr/utils/alias_resolver.py +0 -0
  509. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/__init__.py +0 -0
  510. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/README.md +0 -0
  511. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/__init__.py +0 -0
  512. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/conftest.py +0 -0
  513. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/test_data_workflows.py +0 -0
  514. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/integration/test_simple_integration.py +0 -0
  515. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_auth/__init__.py +0 -0
  516. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_auth/test_base.py +0 -0
  517. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_commands/__init__.py +0 -0
  518. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_config/__init__.py +0 -0
  519. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_services/__init__.py +0 -0
  520. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_services/test_base.py +0 -0
  521. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_utils/__init__.py +0 -0
  522. {pltr_cli-0.16.0 → pltr_cli-0.17.0}/tests/test_utils/test_alias_resolver.py +0 -0
@@ -0,0 +1,179 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest, windows-latest]
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v3
22
+ with:
23
+ version: "latest"
24
+
25
+ - name: Set up Python ${{ matrix.python-version }}
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+
30
+ - name: Install dependencies
31
+ run: |
32
+ uv sync --dev
33
+
34
+ - name: Run linting with ruff
35
+ run: |
36
+ uv run ruff check .
37
+
38
+ - name: Run type checking with mypy
39
+ run: |
40
+ uv run mypy src/pltr
41
+
42
+ - name: Run tests with coverage
43
+ run: |
44
+ # Run all tests including integration tests (import issues fixed)
45
+ uv run pytest tests/ --cov=pltr --cov-report=xml --cov-report=term
46
+
47
+ - name: Upload coverage to Codecov
48
+ uses: codecov/codecov-action@v4
49
+ with:
50
+ file: ./coverage.xml
51
+ fail_ci_if_error: false
52
+ token: ${{ secrets.CODECOV_TOKEN }}
53
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
54
+
55
+ fresh-install:
56
+ # Install the built wheel the way users do: without uv.lock, so the resolver
57
+ # picks the newest versions pyproject.toml allows. The lock can hide a missing
58
+ # or incompatible dependency (typer >= 0.26 no longer installs click, which
59
+ # pltr imports; see the typer/click caps in pyproject.toml).
60
+ name: fresh-install (${{ matrix.os }}, Python ${{ matrix.python-version }})
61
+ runs-on: ${{ matrix.os }}
62
+ strategy:
63
+ fail-fast: false
64
+ matrix:
65
+ os: [ubuntu-latest, windows-latest]
66
+ python-version: ["3.10", "3.13"]
67
+ defaults:
68
+ run:
69
+ shell: bash
70
+
71
+ steps:
72
+ - uses: actions/checkout@v4
73
+
74
+ - name: Install uv
75
+ uses: astral-sh/setup-uv@v3
76
+ with:
77
+ version: "latest"
78
+
79
+ - name: Set up Python ${{ matrix.python-version }}
80
+ uses: actions/setup-python@v5
81
+ with:
82
+ python-version: ${{ matrix.python-version }}
83
+
84
+ - name: Build the wheel
85
+ run: |
86
+ uv build --wheel --out-dir dist
87
+
88
+ - name: Install the wheel into a clean venv, without the lock
89
+ run: |
90
+ uv venv --python "${{ matrix.python-version }}" "$RUNNER_TEMP/fresh"
91
+ uv pip install --python "$RUNNER_TEMP/fresh" dist/*.whl
92
+ uv pip list --python "$RUNNER_TEMP/fresh"
93
+ if [ "$RUNNER_OS" = "Windows" ]; then
94
+ cygpath -w "$RUNNER_TEMP/fresh/Scripts" >> "$GITHUB_PATH"
95
+ else
96
+ echo "$RUNNER_TEMP/fresh/bin" >> "$GITHUB_PATH"
97
+ fi
98
+
99
+ - name: Run the installed CLI
100
+ working-directory: ${{ runner.temp }}
101
+ run: |
102
+ command -v pltr
103
+ pltr --version
104
+ pltr --help
105
+ pltr api --help
106
+
107
+ - name: Check the error contract (JSON error on stderr, documented exit code)
108
+ working-directory: ${{ runner.temp }}
109
+ shell: python
110
+ run: |
111
+ import json
112
+ import os
113
+ import subprocess
114
+
115
+ # No profile and no FOUNDRY_* variables here, so an API command fails on auth.
116
+ env = {k: v for k, v in os.environ.items() if not k.startswith(("FOUNDRY_", "PLTR_"))}
117
+ cases = [
118
+ (["folder", "get", "--format", "json"], 2, "usage_error"),
119
+ (["folder", "get", "not-a-rid", "--format", "json"], 3, "auth_error"),
120
+ ]
121
+ for args, code, kind in cases:
122
+ result = subprocess.run(
123
+ ["pltr", *args], capture_output=True, encoding="utf-8", env=env
124
+ )
125
+ print("pltr", *args, "-> exit", result.returncode)
126
+ print(result.stderr)
127
+ assert result.returncode == code, f"expected exit code {code}"
128
+ assert result.stdout == "", "stdout must stay empty on failure"
129
+ # In JSON mode stderr carries only JSON Lines; the last one is the error.
130
+ error = [json.loads(line) for line in result.stderr.splitlines()][-1]
131
+ assert (error["type"], error["exitCode"]) == (kind, code), error
132
+
133
+ lint-and-format:
134
+ runs-on: ubuntu-latest
135
+ steps:
136
+ - uses: actions/checkout@v4
137
+
138
+ - name: Install uv
139
+ uses: astral-sh/setup-uv@v3
140
+ with:
141
+ version: "latest"
142
+
143
+ - name: Set up Python
144
+ uses: actions/setup-python@v5
145
+ with:
146
+ python-version: "3.11"
147
+
148
+ - name: Install dependencies
149
+ run: |
150
+ uv sync --dev
151
+
152
+ - name: Check code formatting with ruff
153
+ run: |
154
+ uv run ruff format --check .
155
+
156
+ - name: Check every SDK call against the installed SDK (#185)
157
+ run: |
158
+ uv run python scripts/check_sdk_calls.py
159
+
160
+ - name: Check generated API commands are up to date (#186)
161
+ run: |
162
+ uv run python scripts/generate_api_commands.py --check
163
+
164
+ - name: Report SDK method coverage (#186)
165
+ run: |
166
+ uv run python scripts/coverage.py
167
+
168
+ - name: Check curated commands' SDK metadata matches their calls (#188)
169
+ run: |
170
+ uv run python scripts/check_command_metadata.py
171
+
172
+ - name: Check the generated agent skill reference is up to date (#188)
173
+ run: |
174
+ uv run python scripts/generate_skill_reference.py --check
175
+
176
+ - name: Run security checks (if configured)
177
+ run: |
178
+ # Add security scanning tools here if needed
179
+ echo "Security checks placeholder - add tools like bandit, safety, etc."
@@ -153,3 +153,7 @@ credentials.json
153
153
 
154
154
  # ruff
155
155
  .ruff_cache/
156
+
157
+ # Inputs of the live smoke test (scripts/smoke.py); they name real RIDs
158
+ /smoke.toml
159
+ /smoke.json