pygeai 0.1.51b3__py3-none-any.whl → 0.6.0b15__py3-none-any.whl

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 (648) hide show
  1. pygeai/__init__.py +9 -1
  2. pygeai/_docs/Makefile +20 -0
  3. pygeai/_docs/make.bat +35 -0
  4. pygeai/_docs/source/conf.py +117 -0
  5. pygeai/_docs/source/content/ai_lab/cli.rst +747 -0
  6. pygeai/_docs/source/content/ai_lab/models.rst +1734 -0
  7. pygeai/_docs/source/content/ai_lab/runner.rst +253 -0
  8. pygeai/_docs/source/content/ai_lab/spec.rst +431 -0
  9. pygeai/_docs/source/content/ai_lab/usage.rst +1011 -0
  10. pygeai/_docs/source/content/ai_lab.rst +102 -0
  11. pygeai/_docs/source/content/analytics.rst +598 -0
  12. pygeai/_docs/source/content/api_reference/admin.rst +161 -0
  13. pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
  14. pygeai/_docs/source/content/api_reference/auth.rst +379 -0
  15. pygeai/_docs/source/content/api_reference/chat.rst +754 -0
  16. pygeai/_docs/source/content/api_reference/embeddings.rst +154 -0
  17. pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
  18. pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
  19. pygeai/_docs/source/content/api_reference/files.rst +592 -0
  20. pygeai/_docs/source/content/api_reference/gam.rst +401 -0
  21. pygeai/_docs/source/content/api_reference/health.rst +58 -0
  22. pygeai/_docs/source/content/api_reference/project.rst +738 -0
  23. pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
  24. pygeai/_docs/source/content/api_reference/rag.rst +710 -0
  25. pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
  26. pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
  27. pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
  28. pygeai/_docs/source/content/api_reference.rst +58 -0
  29. pygeai/_docs/source/content/authentication.rst +295 -0
  30. pygeai/_docs/source/content/chat_gui.rst +121 -0
  31. pygeai/_docs/source/content/cli.rst +203 -0
  32. pygeai/_docs/source/content/debugger.rst +651 -0
  33. pygeai/_docs/source/content/intro.rst +67 -0
  34. pygeai/_docs/source/content/migration.rst +929 -0
  35. pygeai/_docs/source/content/modules.rst +7 -0
  36. pygeai/_docs/source/content/quickstart.rst +143 -0
  37. pygeai/_docs/source/content/samples.rst +394 -0
  38. pygeai/_docs/source/index.rst +75 -0
  39. pygeai/_docs/source/modules.rst +7 -0
  40. pygeai/_docs/source/pygeai.admin.rst +29 -0
  41. pygeai/_docs/source/pygeai.analytics.rst +53 -0
  42. pygeai/_docs/source/pygeai.assistant.data.rst +21 -0
  43. pygeai/_docs/source/pygeai.assistant.data_analyst.rst +29 -0
  44. pygeai/_docs/source/pygeai.assistant.rag.rst +53 -0
  45. pygeai/_docs/source/pygeai.assistant.rst +55 -0
  46. pygeai/_docs/source/pygeai.auth.rst +29 -0
  47. pygeai/_docs/source/pygeai.chat.rst +69 -0
  48. pygeai/_docs/source/pygeai.cli.commands.flows.rst +10 -0
  49. pygeai/_docs/source/pygeai.cli.commands.lab.rst +53 -0
  50. pygeai/_docs/source/pygeai.cli.commands.rst +222 -0
  51. pygeai/_docs/source/pygeai.cli.rst +62 -0
  52. pygeai/_docs/source/pygeai.cli.texts.rst +21 -0
  53. pygeai/_docs/source/pygeai.core.base.rst +53 -0
  54. pygeai/_docs/source/pygeai.core.common.rst +37 -0
  55. pygeai/_docs/source/pygeai.core.embeddings.rst +61 -0
  56. pygeai/_docs/source/pygeai.core.feedback.rst +37 -0
  57. pygeai/_docs/source/pygeai.core.files.rst +61 -0
  58. pygeai/_docs/source/pygeai.core.llm.rst +29 -0
  59. pygeai/_docs/source/pygeai.core.plugins.rst +37 -0
  60. pygeai/_docs/source/pygeai.core.rerank.rst +53 -0
  61. pygeai/_docs/source/pygeai.core.rst +63 -0
  62. pygeai/_docs/source/pygeai.core.secrets.rst +29 -0
  63. pygeai/_docs/source/pygeai.core.services.llm.rst +29 -0
  64. pygeai/_docs/source/pygeai.core.services.rst +37 -0
  65. pygeai/_docs/source/pygeai.core.utils.rst +37 -0
  66. pygeai/_docs/source/pygeai.dbg.rst +21 -0
  67. pygeai/_docs/source/pygeai.evaluation.dataset.rst +29 -0
  68. pygeai/_docs/source/pygeai.evaluation.plan.rst +29 -0
  69. pygeai/_docs/source/pygeai.evaluation.result.rst +29 -0
  70. pygeai/_docs/source/pygeai.evaluation.rst +31 -0
  71. pygeai/_docs/source/pygeai.flows.rst +29 -0
  72. pygeai/_docs/source/pygeai.gam.rst +29 -0
  73. pygeai/_docs/source/pygeai.health.rst +29 -0
  74. pygeai/_docs/source/pygeai.lab.agents.rst +37 -0
  75. pygeai/_docs/source/pygeai.lab.processes.rst +37 -0
  76. pygeai/_docs/source/pygeai.lab.rst +65 -0
  77. pygeai/_docs/source/pygeai.lab.spec.rst +29 -0
  78. pygeai/_docs/source/pygeai.lab.strategies.rst +37 -0
  79. pygeai/_docs/source/pygeai.lab.tools.rst +37 -0
  80. pygeai/_docs/source/pygeai.man.man1.rst +10 -0
  81. pygeai/_docs/source/pygeai.man.rst +18 -0
  82. pygeai/_docs/source/pygeai.migration.rst +29 -0
  83. pygeai/_docs/source/pygeai.organization.limits.rst +45 -0
  84. pygeai/_docs/source/pygeai.organization.rst +61 -0
  85. pygeai/_docs/source/pygeai.proxy.rst +53 -0
  86. pygeai/_docs/source/pygeai.rst +35 -0
  87. pygeai/_docs/source/pygeai.tests.admin.rst +21 -0
  88. pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
  89. pygeai/_docs/source/pygeai.tests.assistants.rag.rst +37 -0
  90. pygeai/_docs/source/pygeai.tests.assistants.rst +45 -0
  91. pygeai/_docs/source/pygeai.tests.auth.rst +29 -0
  92. pygeai/_docs/source/pygeai.tests.chat.rst +45 -0
  93. pygeai/_docs/source/pygeai.tests.cli.commands.lab.rst +37 -0
  94. pygeai/_docs/source/pygeai.tests.cli.commands.rst +165 -0
  95. pygeai/_docs/source/pygeai.tests.cli.docker.rst +10 -0
  96. pygeai/_docs/source/pygeai.tests.cli.rst +46 -0
  97. pygeai/_docs/source/pygeai.tests.core.base.data.rst +29 -0
  98. pygeai/_docs/source/pygeai.tests.core.base.rst +45 -0
  99. pygeai/_docs/source/pygeai.tests.core.common.data.rst +10 -0
  100. pygeai/_docs/source/pygeai.tests.core.common.rst +37 -0
  101. pygeai/_docs/source/pygeai.tests.core.embeddings.rst +37 -0
  102. pygeai/_docs/source/pygeai.tests.core.feedback.rst +21 -0
  103. pygeai/_docs/source/pygeai.tests.core.files.rst +53 -0
  104. pygeai/_docs/source/pygeai.tests.core.llm.rst +21 -0
  105. pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
  106. pygeai/_docs/source/pygeai.tests.core.rerank.rst +37 -0
  107. pygeai/_docs/source/pygeai.tests.core.rst +39 -0
  108. pygeai/_docs/source/pygeai.tests.core.secrets.rst +21 -0
  109. pygeai/_docs/source/pygeai.tests.core.services.rst +21 -0
  110. pygeai/_docs/source/pygeai.tests.core.utils.rst +21 -0
  111. pygeai/_docs/source/pygeai.tests.dbg.rst +21 -0
  112. pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
  113. pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
  114. pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
  115. pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
  116. pygeai/_docs/source/pygeai.tests.gam.rst +21 -0
  117. pygeai/_docs/source/pygeai.tests.health.rst +21 -0
  118. pygeai/_docs/source/pygeai.tests.integration.assistants.rag.rst +21 -0
  119. pygeai/_docs/source/pygeai.tests.integration.assistants.rst +18 -0
  120. pygeai/_docs/source/pygeai.tests.integration.chat.rst +21 -0
  121. pygeai/_docs/source/pygeai.tests.integration.lab.agents.rst +69 -0
  122. pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +77 -0
  123. pygeai/_docs/source/pygeai.tests.integration.lab.reasoning_strategies.rst +37 -0
  124. pygeai/_docs/source/pygeai.tests.integration.lab.rst +21 -0
  125. pygeai/_docs/source/pygeai.tests.integration.lab.tools.rst +77 -0
  126. pygeai/_docs/source/pygeai.tests.integration.rst +20 -0
  127. pygeai/_docs/source/pygeai.tests.lab.agents.rst +29 -0
  128. pygeai/_docs/source/pygeai.tests.lab.processes.rst +29 -0
  129. pygeai/_docs/source/pygeai.tests.lab.rst +49 -0
  130. pygeai/_docs/source/pygeai.tests.lab.spec.rst +29 -0
  131. pygeai/_docs/source/pygeai.tests.lab.strategies.rst +29 -0
  132. pygeai/_docs/source/pygeai.tests.lab.tools.rst +29 -0
  133. pygeai/_docs/source/pygeai.tests.migration.rst +29 -0
  134. pygeai/_docs/source/pygeai.tests.organization.limits.rst +29 -0
  135. pygeai/_docs/source/pygeai.tests.organization.rst +53 -0
  136. pygeai/_docs/source/pygeai.tests.proxy.rst +61 -0
  137. pygeai/_docs/source/pygeai.tests.rst +33 -0
  138. pygeai/admin/clients.py +14 -11
  139. pygeai/admin/endpoints.py +2 -2
  140. pygeai/analytics/clients.py +505 -0
  141. pygeai/analytics/endpoints.py +35 -0
  142. pygeai/analytics/managers.py +606 -0
  143. pygeai/analytics/mappers.py +207 -0
  144. pygeai/analytics/responses.py +240 -0
  145. pygeai/assistant/clients.py +18 -45
  146. pygeai/assistant/data/clients.py +1 -0
  147. pygeai/assistant/data_analyst/clients.py +8 -12
  148. pygeai/assistant/managers.py +195 -157
  149. pygeai/assistant/mappers.py +4 -2
  150. pygeai/assistant/rag/clients.py +27 -67
  151. pygeai/assistant/rag/mappers.py +12 -6
  152. pygeai/assistant/rag/models.py +301 -159
  153. pygeai/auth/__init__.py +0 -0
  154. pygeai/auth/clients.py +129 -0
  155. pygeai/auth/endpoints.py +6 -0
  156. pygeai/chat/clients.py +308 -37
  157. pygeai/chat/endpoints.py +3 -0
  158. pygeai/chat/iris.py +2 -8
  159. pygeai/chat/managers.py +9 -6
  160. pygeai/chat/session.py +38 -0
  161. pygeai/chat/settings.py +6 -0
  162. pygeai/chat/ui.py +678 -0
  163. pygeai/cli/__init__.py +0 -1
  164. pygeai/cli/commands/admin.py +7 -10
  165. pygeai/cli/commands/analytics.py +533 -0
  166. pygeai/cli/commands/assistant.py +9 -9
  167. pygeai/cli/commands/auth.py +299 -0
  168. pygeai/cli/commands/base.py +71 -9
  169. pygeai/cli/commands/chat.py +676 -19
  170. pygeai/cli/commands/common.py +28 -24
  171. pygeai/cli/commands/configuration.py +66 -13
  172. pygeai/cli/commands/docs.py +105 -0
  173. pygeai/cli/commands/embeddings.py +58 -11
  174. pygeai/cli/commands/evaluation.py +38 -38
  175. pygeai/cli/commands/feedback.py +3 -4
  176. pygeai/cli/commands/files.py +7 -8
  177. pygeai/cli/commands/gam.py +85 -10
  178. pygeai/cli/commands/lab/ai_lab.py +340 -484
  179. pygeai/cli/commands/lab/options.py +8 -0
  180. pygeai/cli/commands/lab/spec.py +273 -0
  181. pygeai/cli/commands/lab/utils.py +13 -0
  182. pygeai/cli/commands/llm.py +6 -7
  183. pygeai/cli/commands/migrate.py +1064 -436
  184. pygeai/cli/commands/organization.py +516 -11
  185. pygeai/cli/commands/rag.py +13 -14
  186. pygeai/cli/commands/rerank.py +3 -5
  187. pygeai/cli/commands/secrets.py +8 -9
  188. pygeai/cli/commands/usage_limits.py +18 -20
  189. pygeai/cli/commands/validators.py +144 -1
  190. pygeai/cli/commands/version.py +4 -5
  191. pygeai/cli/error_handler.py +151 -0
  192. pygeai/cli/geai.py +170 -31
  193. pygeai/cli/geai_proxy.py +86 -25
  194. pygeai/cli/install_man.py +93 -22
  195. pygeai/cli/parsers.py +75 -25
  196. pygeai/cli/texts/help.py +265 -28
  197. pygeai/core/base/clients.py +53 -12
  198. pygeai/core/base/mappers.py +11 -2
  199. pygeai/core/base/session.py +95 -11
  200. pygeai/core/common/config.py +78 -14
  201. pygeai/core/common/exceptions.py +96 -6
  202. pygeai/core/embeddings/__init__.py +19 -0
  203. pygeai/core/embeddings/clients.py +23 -5
  204. pygeai/core/embeddings/managers.py +9 -4
  205. pygeai/core/embeddings/mappers.py +16 -2
  206. pygeai/core/embeddings/responses.py +9 -2
  207. pygeai/core/feedback/clients.py +8 -3
  208. pygeai/core/files/clients.py +23 -24
  209. pygeai/core/files/managers.py +121 -30
  210. pygeai/core/files/responses.py +4 -3
  211. pygeai/core/handlers.py +10 -1
  212. pygeai/core/llm/clients.py +22 -29
  213. pygeai/core/models.py +127 -11
  214. pygeai/core/plugins/clients.py +6 -6
  215. pygeai/core/rerank/clients.py +9 -3
  216. pygeai/core/rerank/managers.py +22 -5
  217. pygeai/core/secrets/clients.py +16 -37
  218. pygeai/core/services/response.py +18 -0
  219. pygeai/core/services/rest.py +159 -49
  220. pygeai/core/utils/__init__.py +0 -0
  221. pygeai/core/utils/console.py +83 -0
  222. pygeai/core/utils/parsers.py +32 -0
  223. pygeai/core/utils/validators.py +10 -0
  224. pygeai/dbg/__init__.py +3 -0
  225. pygeai/dbg/debugger.py +854 -14
  226. pygeai/evaluation/clients.py +7 -4
  227. pygeai/evaluation/dataset/clients.py +46 -44
  228. pygeai/evaluation/plan/clients.py +28 -26
  229. pygeai/evaluation/result/clients.py +38 -5
  230. pygeai/gam/clients.py +50 -28
  231. pygeai/gam/endpoints.py +2 -1
  232. pygeai/health/__init__.py +0 -0
  233. pygeai/health/clients.py +24 -0
  234. pygeai/health/endpoints.py +1 -0
  235. pygeai/lab/__init__.py +0 -90
  236. pygeai/lab/agents/clients.py +203 -162
  237. pygeai/lab/agents/endpoints.py +4 -0
  238. pygeai/lab/agents/mappers.py +57 -7
  239. pygeai/lab/clients.py +24 -0
  240. pygeai/lab/constants.py +3 -0
  241. pygeai/lab/managers.py +571 -541
  242. pygeai/lab/models.py +108 -19
  243. pygeai/lab/processes/clients.py +332 -340
  244. pygeai/lab/processes/mappers.py +3 -3
  245. pygeai/lab/runners.py +90 -0
  246. pygeai/lab/spec/__init__.py +0 -0
  247. pygeai/lab/spec/loader.py +24 -0
  248. pygeai/lab/spec/parsers.py +39 -0
  249. pygeai/lab/strategies/clients.py +67 -63
  250. pygeai/lab/strategies/mappers.py +1 -1
  251. pygeai/lab/tools/clients.py +85 -118
  252. pygeai/lab/tools/endpoints.py +4 -0
  253. pygeai/lab/tools/mappers.py +5 -5
  254. pygeai/man/man1/geai-proxy.1 +116 -0
  255. pygeai/man/man1/geai.1 +2580 -66
  256. pygeai/migration/__init__.py +33 -0
  257. pygeai/migration/strategies.py +468 -146
  258. pygeai/migration/tools.py +170 -3
  259. pygeai/organization/clients.py +245 -50
  260. pygeai/organization/endpoints.py +17 -8
  261. pygeai/organization/limits/clients.py +34 -32
  262. pygeai/organization/limits/managers.py +108 -49
  263. pygeai/organization/managers.py +347 -53
  264. pygeai/organization/mappers.py +102 -2
  265. pygeai/organization/responses.py +58 -1
  266. pygeai/proxy/clients.py +6 -3
  267. pygeai/proxy/config.py +14 -1
  268. pygeai/proxy/managers.py +61 -33
  269. pygeai/proxy/servers.py +196 -51
  270. pygeai/proxy/tool.py +33 -16
  271. pygeai/tests/admin/__init__.py +0 -0
  272. pygeai/tests/admin/test_clients.py +148 -0
  273. pygeai/tests/analytics/__init__.py +0 -0
  274. pygeai/tests/analytics/test_clients.py +86 -0
  275. pygeai/tests/analytics/test_managers.py +94 -0
  276. pygeai/tests/analytics/test_mappers.py +84 -0
  277. pygeai/tests/analytics/test_responses.py +73 -0
  278. pygeai/tests/assistants/rag/test_clients.py +346 -0
  279. pygeai/tests/assistants/rag/test_models.py +292 -0
  280. pygeai/tests/assistants/test_clients.py +176 -82
  281. pygeai/tests/assistants/test_managers.py +191 -57
  282. pygeai/tests/auth/__init__.py +0 -0
  283. pygeai/tests/auth/test_clients.py +289 -0
  284. pygeai/tests/auth/test_oauth.py +172 -0
  285. pygeai/tests/auth/test_session_logging.py +150 -0
  286. pygeai/tests/chat/__init__.py +0 -0
  287. pygeai/tests/chat/test_clients.py +393 -0
  288. pygeai/tests/chat/test_iris.py +38 -0
  289. pygeai/tests/chat/test_session.py +62 -0
  290. pygeai/tests/chat/test_ui.py +224 -0
  291. pygeai/tests/cli/commands/__init__.py +0 -0
  292. pygeai/tests/cli/commands/lab/__init__.py +0 -0
  293. pygeai/tests/cli/commands/lab/test_ai_lab.py +786 -0
  294. pygeai/tests/cli/commands/lab/test_common.py +208 -0
  295. pygeai/tests/cli/commands/lab/test_spec.py +246 -0
  296. pygeai/tests/cli/commands/test_assistant.py +202 -0
  297. pygeai/tests/cli/commands/test_chat.py +130 -0
  298. pygeai/tests/cli/commands/test_common.py +350 -0
  299. pygeai/tests/cli/commands/test_embeddings.py +132 -0
  300. pygeai/tests/cli/commands/test_evaluation.py +656 -0
  301. pygeai/tests/cli/commands/test_feedback.py +65 -0
  302. pygeai/tests/cli/commands/test_files.py +161 -0
  303. pygeai/tests/cli/commands/test_gam.py +201 -0
  304. pygeai/tests/cli/commands/test_llm.py +114 -0
  305. pygeai/tests/cli/commands/test_migrate.py +176 -0
  306. pygeai/tests/cli/commands/test_organization.py +276 -0
  307. pygeai/tests/cli/commands/test_rag.py +266 -0
  308. pygeai/tests/cli/commands/test_rerank.py +110 -0
  309. pygeai/tests/cli/commands/test_secrets.py +171 -0
  310. pygeai/tests/cli/commands/test_show_help.py +41 -0
  311. pygeai/tests/cli/commands/test_usage_limits.py +412 -0
  312. pygeai/tests/cli/commands/test_validators.py +160 -0
  313. pygeai/tests/cli/commands/test_version.py +81 -0
  314. pygeai/tests/cli/docker/__init__.py +0 -0
  315. pygeai/tests/cli/test_credentials_flag.py +316 -0
  316. pygeai/tests/cli/test_error_handler.py +225 -0
  317. pygeai/tests/cli/test_geai_driver.py +154 -0
  318. pygeai/tests/cli/test_parsers.py +5 -5
  319. pygeai/tests/core/base/data/models.py +7 -0
  320. pygeai/tests/core/base/test_mappers.py +43 -11
  321. pygeai/tests/core/base/test_models.py +3 -1
  322. pygeai/tests/core/base/test_responses.py +53 -0
  323. pygeai/tests/core/common/__init__.py +0 -0
  324. pygeai/tests/core/common/data/__init__.py +0 -0
  325. pygeai/tests/core/common/test_config.py +186 -0
  326. pygeai/tests/core/common/test_decorators.py +69 -0
  327. pygeai/tests/core/embeddings/__init__.py +0 -0
  328. pygeai/tests/core/embeddings/test_clients.py +225 -0
  329. pygeai/tests/core/embeddings/test_managers.py +171 -0
  330. pygeai/tests/core/embeddings/test_mappers.py +142 -0
  331. pygeai/tests/core/feedback/__init__.py +0 -0
  332. pygeai/tests/core/feedback/test_clients.py +64 -0
  333. pygeai/tests/core/files/test_clients.py +128 -0
  334. pygeai/tests/core/files/test_managers.py +124 -78
  335. pygeai/tests/core/files/test_mappers.py +137 -0
  336. pygeai/tests/core/files/test_models.py +103 -0
  337. pygeai/tests/core/files/test_responses.py +122 -0
  338. pygeai/tests/core/llm/__init__.py +0 -0
  339. pygeai/tests/core/llm/test_clients.py +142 -0
  340. pygeai/tests/core/plugins/__init__.py +0 -0
  341. pygeai/tests/core/plugins/test_clients.py +66 -0
  342. pygeai/tests/core/rerank/test_clients.py +76 -0
  343. pygeai/tests/core/rerank/test_managers.py +61 -39
  344. pygeai/tests/core/secrets/__init__.py +0 -0
  345. pygeai/tests/core/secrets/test_clients.py +264 -0
  346. pygeai/tests/core/services/__init__.py +0 -0
  347. pygeai/tests/core/services/test_rest.py +273 -0
  348. pygeai/tests/core/test_handlers.py +66 -0
  349. pygeai/tests/core/utils/__init__.py +0 -0
  350. pygeai/tests/core/utils/test_console.py +80 -0
  351. pygeai/tests/dbg/__init__.py +0 -0
  352. pygeai/tests/dbg/test_debugger.py +591 -0
  353. pygeai/tests/evaluation/__init__.py +0 -0
  354. pygeai/tests/evaluation/dataset/__init__.py +0 -0
  355. pygeai/tests/evaluation/dataset/test_clients.py +265 -0
  356. pygeai/tests/evaluation/plan/__init__.py +0 -0
  357. pygeai/tests/evaluation/plan/test_clients.py +195 -0
  358. pygeai/tests/evaluation/result/__init__.py +0 -0
  359. pygeai/tests/evaluation/result/test_clients.py +66 -0
  360. pygeai/tests/gam/__init__.py +0 -0
  361. pygeai/tests/gam/test_clients.py +195 -0
  362. pygeai/tests/health/__init__.py +0 -0
  363. pygeai/tests/health/test_clients.py +41 -0
  364. pygeai/tests/integration/__init__.py +0 -0
  365. pygeai/tests/integration/assistants/__init__.py +0 -0
  366. pygeai/tests/integration/assistants/rag/__init__.py +0 -0
  367. pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
  368. pygeai/tests/integration/chat/__init__.py +0 -0
  369. pygeai/tests/integration/chat/test_generate_image.py +158 -0
  370. pygeai/tests/integration/lab/__init__.py +0 -0
  371. pygeai/tests/integration/lab/agents/__init__.py +0 -0
  372. pygeai/tests/integration/lab/agents/test_agents_list.py +106 -0
  373. pygeai/tests/integration/lab/agents/test_create_agent.py +319 -0
  374. pygeai/tests/integration/lab/agents/test_create_sharing_link.py +70 -0
  375. pygeai/tests/integration/lab/agents/test_delete_agent.py +75 -0
  376. pygeai/tests/integration/lab/agents/test_get_agent.py +94 -0
  377. pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +127 -0
  378. pygeai/tests/integration/lab/agents/test_update_agent.py +250 -0
  379. pygeai/tests/integration/lab/processes/__init__.py +0 -0
  380. pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
  381. pygeai/tests/integration/lab/processes/test_create_task.py +211 -0
  382. pygeai/tests/integration/lab/processes/test_delete_process.py +111 -0
  383. pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
  384. pygeai/tests/integration/lab/processes/test_list_process_instances.py +91 -0
  385. pygeai/tests/integration/lab/processes/test_list_processes.py +138 -0
  386. pygeai/tests/integration/lab/processes/test_publish_process_revision.py +232 -0
  387. pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
  388. pygeai/tests/integration/lab/reasoning_strategies/__init__.py +0 -0
  389. pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
  390. pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
  391. pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
  392. pygeai/tests/integration/lab/tools/__init__.py +0 -0
  393. pygeai/tests/integration/lab/tools/test_create_tool.py +288 -0
  394. pygeai/tests/integration/lab/tools/test_delete_tool.py +87 -0
  395. pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
  396. pygeai/tests/integration/lab/tools/test_get_tool.py +91 -0
  397. pygeai/tests/integration/lab/tools/test_list_tools.py +106 -0
  398. pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
  399. pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
  400. pygeai/tests/integration/lab/tools/test_update_tool.py +267 -0
  401. pygeai/tests/lab/agents/__init__.py +0 -0
  402. pygeai/tests/lab/agents/test_clients.py +481 -0
  403. pygeai/tests/lab/agents/test_mappers.py +440 -0
  404. pygeai/tests/lab/processes/__init__.py +0 -0
  405. pygeai/tests/lab/processes/test_clients.py +1416 -0
  406. pygeai/tests/lab/processes/test_mappers.py +1092 -0
  407. pygeai/tests/lab/spec/__init__.py +0 -0
  408. pygeai/tests/lab/spec/test_loader.py +59 -0
  409. pygeai/tests/lab/spec/test_parsers.py +182 -0
  410. pygeai/tests/lab/strategies/__init__.py +0 -0
  411. pygeai/tests/lab/strategies/test_clients.py +241 -0
  412. pygeai/tests/lab/strategies/test_mappers.py +132 -0
  413. pygeai/tests/lab/test_managers.py +553 -0
  414. pygeai/tests/lab/test_models.py +500 -3
  415. pygeai/tests/lab/tools/__init__.py +0 -0
  416. pygeai/tests/lab/tools/test_clients.py +521 -0
  417. pygeai/tests/lab/tools/test_mappers.py +198 -0
  418. pygeai/tests/migration/__init__.py +0 -0
  419. pygeai/tests/migration/test_strategies.py +405 -0
  420. pygeai/tests/migration/test_tools.py +159 -0
  421. pygeai/tests/organization/limits/test_clients.py +567 -0
  422. pygeai/tests/organization/limits/test_managers.py +298 -56
  423. pygeai/tests/organization/test_clients.py +600 -30
  424. pygeai/tests/organization/test_managers.py +424 -0
  425. pygeai/tests/organization/test_mappers.py +153 -0
  426. pygeai/tests/organization/test_responses.py +137 -0
  427. pygeai/tests/proxy/__init__.py +1 -0
  428. pygeai/tests/proxy/test_clients.py +397 -0
  429. pygeai/tests/proxy/test_config.py +171 -0
  430. pygeai/tests/proxy/test_integration.py +305 -0
  431. pygeai/tests/proxy/test_managers.py +312 -0
  432. pygeai/tests/proxy/test_servers.py +387 -0
  433. pygeai/tests/proxy/test_tool.py +176 -0
  434. pygeai/tests/snippets/analytics/__init__.py +0 -0
  435. pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
  436. pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
  437. pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
  438. pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
  439. pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
  440. pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
  441. pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
  442. pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
  443. pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
  444. pygeai/tests/snippets/auth/__init__.py +0 -0
  445. pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
  446. pygeai/tests/snippets/chat/get_response.py +15 -0
  447. pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
  448. pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
  449. pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
  450. pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
  451. pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
  452. pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
  453. pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
  454. pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
  455. pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
  456. pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
  457. pygeai/tests/snippets/dbg/__init__.py +0 -0
  458. pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
  459. pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
  460. pygeai/tests/snippets/dbg/file_debugging.py +72 -0
  461. pygeai/tests/snippets/dbg/module_debugging.py +61 -0
  462. pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
  463. pygeai/tests/snippets/dbg/stepping_example.py +40 -0
  464. pygeai/tests/snippets/embeddings/cache_example.py +31 -0
  465. pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
  466. pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
  467. pygeai/tests/snippets/embeddings/openai_example.py +30 -0
  468. pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
  469. pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
  470. pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
  471. pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
  472. pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
  473. pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
  474. pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
  475. pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
  476. pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
  477. pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
  478. pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
  479. pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
  480. pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
  481. pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
  482. pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
  483. pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
  484. pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
  485. pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
  486. pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
  487. pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
  488. pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
  489. pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
  490. pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
  491. pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
  492. pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
  493. pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
  494. pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
  495. pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
  496. pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
  497. pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
  498. pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
  499. pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
  500. pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
  501. pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
  502. pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
  503. pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
  504. pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
  505. pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
  506. pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
  507. pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
  508. pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
  509. pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
  510. pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
  511. pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
  512. pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
  513. pygeai/tests/snippets/files/delete_file.py +1 -4
  514. pygeai/tests/snippets/files/get_file_content.py +2 -4
  515. pygeai/tests/snippets/files/get_file_data.py +1 -4
  516. pygeai/tests/snippets/files/get_file_list.py +1 -6
  517. pygeai/tests/snippets/files/upload_file.py +1 -5
  518. pygeai/tests/snippets/gam/gam_access_token.py +87 -0
  519. pygeai/tests/snippets/lab/agentic_flow_example_1.py +25 -23
  520. pygeai/tests/snippets/lab/agentic_flow_example_4.py +23 -23
  521. pygeai/tests/snippets/lab/agents/create_agent.py +5 -8
  522. pygeai/tests/snippets/lab/agents/create_agent_2.py +1 -5
  523. pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +48 -0
  524. pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
  525. pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
  526. pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +48 -0
  527. pygeai/tests/snippets/lab/agents/delete_agent.py +1 -5
  528. pygeai/tests/snippets/lab/agents/get_agent.py +2 -11
  529. pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
  530. pygeai/tests/snippets/lab/agents/get_sharing_link.py +2 -7
  531. pygeai/tests/snippets/lab/agents/list_agents.py +4 -7
  532. pygeai/tests/snippets/lab/agents/publish_agent_revision.py +2 -6
  533. pygeai/tests/snippets/lab/agents/update_agent.py +1 -5
  534. pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
  535. pygeai/tests/snippets/lab/assistant_to_agent.py +191 -0
  536. pygeai/tests/snippets/lab/crud_ui.py +462 -0
  537. pygeai/tests/snippets/lab/processes/create_process.py +3 -5
  538. pygeai/tests/snippets/lab/processes/create_task.py +3 -5
  539. pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +10 -19
  540. pygeai/tests/snippets/lab/processes/kbs/create_kb.py +2 -5
  541. pygeai/tests/snippets/lab/processes/kbs/get_kb.py +10 -16
  542. pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +13 -20
  543. pygeai/tests/snippets/lab/processes/kbs/try_all.py +5 -7
  544. pygeai/tests/snippets/lab/processes/list_processes.py +5 -7
  545. pygeai/tests/snippets/lab/runner_1.py +1 -1
  546. pygeai/tests/snippets/lab/samples/summarize_files.py +3 -3
  547. pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +2 -5
  548. pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +2 -5
  549. pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +3 -6
  550. pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +2 -5
  551. pygeai/tests/snippets/lab/tools/create_tool.py +4 -10
  552. pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
  553. pygeai/tests/snippets/lab/tools/delete_tool.py +2 -6
  554. pygeai/tests/snippets/lab/tools/get_parameter.py +5 -7
  555. pygeai/tests/snippets/lab/tools/get_tool.py +5 -7
  556. pygeai/tests/snippets/lab/tools/list_tools.py +3 -7
  557. pygeai/tests/snippets/lab/tools/publish_tool_revision.py +3 -5
  558. pygeai/tests/snippets/lab/tools/set_parameters.py +4 -9
  559. pygeai/tests/snippets/lab/tools/update_tool.py +4 -8
  560. pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
  561. pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +1640 -0
  562. pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +4541 -0
  563. pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +133 -0
  564. pygeai/tests/snippets/lab/use_cases/create_web_designer.py +189 -0
  565. pygeai/tests/snippets/lab/use_cases/create_web_reader.py +185 -0
  566. pygeai/tests/snippets/lab/{file_summarizer_example.py → use_cases/file_summarizer_example.py} +3 -3
  567. pygeai/tests/snippets/lab/{file_summarizer_example_2.py → use_cases/file_summarizer_example_2.py} +12 -12
  568. pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +1773 -0
  569. pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +4541 -0
  570. pygeai/tests/snippets/lab/use_cases/update_web_designer.py +188 -0
  571. pygeai/tests/snippets/lab/use_cases/update_web_reader.py +195 -0
  572. pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +210 -0
  573. pygeai/tests/snippets/migrate/__init__.py +45 -0
  574. pygeai/tests/snippets/migrate/agent_migration.py +110 -0
  575. pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
  576. pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
  577. pygeai/tests/snippets/migrate/process_migration.py +64 -0
  578. pygeai/tests/snippets/migrate/project_migration.py +42 -0
  579. pygeai/tests/snippets/migrate/tool_migration.py +64 -0
  580. pygeai/tests/snippets/organization/add_project_member.py +10 -0
  581. pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
  582. pygeai/tests/snippets/organization/create_project.py +2 -2
  583. pygeai/tests/snippets/organization/get_memberships.py +12 -0
  584. pygeai/tests/snippets/organization/get_organization_members.py +6 -0
  585. pygeai/tests/snippets/organization/get_project_members.py +6 -0
  586. pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
  587. pygeai/tests/snippets/organization/get_project_roles.py +6 -0
  588. pygeai/vendor/a2a/__init__.py +1 -0
  589. pygeai/vendor/a2a/auth/__init__.py +0 -0
  590. pygeai/vendor/a2a/auth/user.py +31 -0
  591. pygeai/vendor/a2a/client/__init__.py +19 -0
  592. pygeai/vendor/a2a/client/client.py +425 -0
  593. pygeai/vendor/a2a/client/errors.py +33 -0
  594. pygeai/vendor/a2a/client/helpers.py +22 -0
  595. pygeai/vendor/a2a/py.typed +0 -0
  596. pygeai/vendor/a2a/server/__init__.py +1 -0
  597. pygeai/vendor/a2a/server/agent_execution/__init__.py +18 -0
  598. pygeai/vendor/a2a/server/agent_execution/agent_executor.py +44 -0
  599. pygeai/vendor/a2a/server/agent_execution/context.py +155 -0
  600. pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +20 -0
  601. pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +77 -0
  602. pygeai/vendor/a2a/server/apps/__init__.py +16 -0
  603. pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +16 -0
  604. pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +88 -0
  605. pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +426 -0
  606. pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +123 -0
  607. pygeai/vendor/a2a/server/context.py +23 -0
  608. pygeai/vendor/a2a/server/events/__init__.py +21 -0
  609. pygeai/vendor/a2a/server/events/event_consumer.py +149 -0
  610. pygeai/vendor/a2a/server/events/event_queue.py +156 -0
  611. pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +85 -0
  612. pygeai/vendor/a2a/server/events/queue_manager.py +35 -0
  613. pygeai/vendor/a2a/server/request_handlers/__init__.py +20 -0
  614. pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +435 -0
  615. pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +327 -0
  616. pygeai/vendor/a2a/server/request_handlers/request_handler.py +161 -0
  617. pygeai/vendor/a2a/server/request_handlers/response_helpers.py +133 -0
  618. pygeai/vendor/a2a/server/tasks/__init__.py +20 -0
  619. pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +62 -0
  620. pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +51 -0
  621. pygeai/vendor/a2a/server/tasks/push_notifier.py +25 -0
  622. pygeai/vendor/a2a/server/tasks/result_aggregator.py +151 -0
  623. pygeai/vendor/a2a/server/tasks/task_manager.py +253 -0
  624. pygeai/vendor/a2a/server/tasks/task_store.py +22 -0
  625. pygeai/vendor/a2a/server/tasks/task_updater.py +155 -0
  626. pygeai/vendor/a2a/types.py +1624 -0
  627. pygeai/vendor/a2a/utils/__init__.py +40 -0
  628. pygeai/vendor/a2a/utils/artifact.py +72 -0
  629. pygeai/vendor/a2a/utils/errors.py +69 -0
  630. pygeai/vendor/a2a/utils/helpers.py +176 -0
  631. pygeai/vendor/a2a/utils/message.py +83 -0
  632. pygeai/vendor/a2a/utils/task.py +57 -0
  633. pygeai/vendor/a2a/utils/telemetry.py +299 -0
  634. pygeai-0.6.0b15.dist-info/METADATA +205 -0
  635. pygeai-0.6.0b15.dist-info/RECORD +799 -0
  636. {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/WHEEL +1 -1
  637. {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/entry_points.txt +2 -1
  638. {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/licenses/LICENSE +13 -1
  639. pygeai-0.6.0b15.dist-info/top_level.txt +1 -0
  640. docs/geai-proxy/README.md +0 -145
  641. docs/source/conf.py +0 -45
  642. pygeai/tests/core/test_managers.py +0 -233
  643. pygeai-0.1.51b3.dist-info/METADATA +0 -130
  644. pygeai-0.1.51b3.dist-info/RECORD +0 -324
  645. pygeai-0.1.51b3.dist-info/top_level.txt +0 -3
  646. scripts/bump_beta_version.py +0 -56
  647. {scripts → pygeai/analytics}/__init__.py +0 -0
  648. /pygeai/tests/snippets/lab/{c_code_fixer_agent_flow.py → use_cases/c_code_fixer_agent_flow.py} +0 -0
@@ -1,5 +1,4 @@
1
1
  import json
2
- import sys
3
2
 
4
3
  from pygeai.cli.commands import Command, Option, ArgumentsEnum
5
4
  from pygeai.cli.commands.builders import build_help_text
@@ -7,6 +6,7 @@ from pygeai.cli.commands.common import get_boolean_value
7
6
  from pygeai.cli.commands.validators import validate_row_structure, validate_system_metric
8
7
  from pygeai.cli.texts.help import EVALUATION_HELP_TEXT
9
8
  from pygeai.core.common.exceptions import MissingRequirementException, WrongArgumentError
9
+ from pygeai.core.utils.console import Console
10
10
  from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
11
11
  from pygeai.evaluation.plan.clients import EvaluationPlanClient
12
12
  from pygeai.evaluation.result.clients import EvaluationResultClient
@@ -17,7 +17,7 @@ def show_help():
17
17
  Displays help text in stdout
18
18
  """
19
19
  help_text = build_help_text(evaluation_commands, EVALUATION_HELP_TEXT)
20
- sys.stdout.write(help_text)
20
+ Console.write_stdout(help_text)
21
21
 
22
22
 
23
23
  """
@@ -28,7 +28,7 @@ def show_help():
28
28
  def list_datasets():
29
29
  client = EvaluationDatasetClient()
30
30
  result = client.list_datasets()
31
- sys.stdout.write(f"Feedback detail: \n{result}\n")
31
+ Console.write_stdout(f"Feedback detail: \n{result}")
32
32
 
33
33
 
34
34
  def create_dataset(option_list: list):
@@ -91,7 +91,7 @@ def create_dataset(option_list: list):
91
91
  rows=rows
92
92
  )
93
93
 
94
- sys.stdout.write(f"New dataset detail: \n{result}\n")
94
+ Console.write_stdout(f"New dataset detail: \n{result}")
95
95
 
96
96
 
97
97
  create_dataset_options = [
@@ -149,7 +149,7 @@ def get_dataset(option_list: list):
149
149
  result = client.get_dataset(
150
150
  dataset_id=dataset_id
151
151
  )
152
- sys.stdout.write(f"Dataset detail: \n{result}\n")
152
+ Console.write_stdout(f"Dataset detail: \n{result}")
153
153
 
154
154
 
155
155
  get_dataset_options = [
@@ -217,7 +217,7 @@ def update_dataset(option_list: list):
217
217
  dataset_active=dataset_active,
218
218
  rows=rows,
219
219
  )
220
- sys.stdout.write(f"Updated dataset detail: \n{result}\n")
220
+ Console.write_stdout(f"Updated dataset detail: \n{result}")
221
221
 
222
222
 
223
223
  update_dataset_options = [
@@ -274,7 +274,7 @@ def delete_dataset(option_list: list):
274
274
  result = client.delete_dataset(
275
275
  dataset_id=dataset_id
276
276
  )
277
- sys.stdout.write(f"Deleted dataset detail: \n{result}\n")
277
+ Console.write_stdout(f"Deleted dataset detail: \n{result}")
278
278
 
279
279
 
280
280
  delete_dataset_options = [
@@ -323,7 +323,7 @@ def create_dataset_row(option_list: list):
323
323
  dataset_id=dataset_id,
324
324
  row=row
325
325
  )
326
- sys.stdout.write(f"Deleted dataset detail: \n{result}\n")
326
+ Console.write_stdout(f"Deleted dataset detail: \n{result}")
327
327
 
328
328
 
329
329
  create_dataset_row_options = [
@@ -356,7 +356,7 @@ def list_dataset_rows(option_list: list):
356
356
  result = client.list_dataset_rows(
357
357
  dataset_id=dataset_id
358
358
  )
359
- sys.stdout.write(f"Dataset rows: \n{result}\n")
359
+ Console.write_stdout(f"Dataset rows: \n{result}")
360
360
 
361
361
 
362
362
  list_dataset_rows_options = [
@@ -387,7 +387,7 @@ def get_dataset_row(option_list: list):
387
387
  dataset_id=dataset_id,
388
388
  dataset_row_id=row_id
389
389
  )
390
- sys.stdout.write(f"Row detail: \n{result}\n")
390
+ Console.write_stdout(f"Row detail: \n{result}")
391
391
 
392
392
 
393
393
  get_dataset_row_options = [
@@ -446,7 +446,7 @@ def update_dataset_row(option_list: list):
446
446
  dataset_row_id=row_id,
447
447
  row=row
448
448
  )
449
- sys.stdout.write(f"Row detail: \n{result}\n")
449
+ Console.write_stdout(f"Row detail: \n{result}")
450
450
 
451
451
 
452
452
  update_dataset_row_options = [
@@ -489,7 +489,7 @@ def delete_dataset_row(option_list: list):
489
489
  dataset_id=dataset_id,
490
490
  dataset_row_id=row_id
491
491
  )
492
- sys.stdout.write(f"Deleted row detail: \n{result}\n")
492
+ Console.write_stdout(f"Deleted row detail: \n{result}")
493
493
 
494
494
 
495
495
  delete_dataset_row_options = [
@@ -538,7 +538,7 @@ def create_dataset_row_expected_source(option_list: list):
538
538
  expected_source_value=value,
539
539
  expected_source_extension=extension,
540
540
  )
541
- sys.stdout.write(f"Extended source detail: \n{result}\n")
541
+ Console.write_stdout(f"Extended source detail: \n{result}")
542
542
 
543
543
 
544
544
  create_dataset_row_expected_source_options = [
@@ -593,7 +593,7 @@ def list_dataset_row_expected_sources(option_list: list):
593
593
  dataset_id=dataset_id,
594
594
  dataset_row_id=row_id
595
595
  )
596
- sys.stdout.write(f"Expected sources: \n{result}\n")
596
+ Console.write_stdout(f"Expected sources: \n{result}")
597
597
 
598
598
 
599
599
  list_dataset_row_expected_sources_options = [
@@ -634,7 +634,7 @@ def get_dataset_row_expected_source(option_list: list):
634
634
  dataset_row_id=row_id,
635
635
  expected_source_id=expected_source_id
636
636
  )
637
- sys.stdout.write(f"Expected source detail: \n{result}\n")
637
+ Console.write_stdout(f"Expected source detail: \n{result}")
638
638
 
639
639
 
640
640
  get_dataset_row_expected_source_options = [
@@ -694,7 +694,7 @@ def update_dataset_row_expected_source(option_list: list):
694
694
  expected_source_extension=extension,
695
695
 
696
696
  )
697
- sys.stdout.write(f"Updated expected source detail: \n{result}\n")
697
+ Console.write_stdout(f"Updated expected source detail: \n{result}")
698
698
 
699
699
 
700
700
  update_dataset_row_expected_source_options = [
@@ -759,7 +759,7 @@ def delete_dataset_row_expected_source(option_list: list):
759
759
  dataset_row_id=row_id,
760
760
  expected_source_id=expected_source_id
761
761
  )
762
- sys.stdout.write(f"Deleted expected source detail: \n{result}\n")
762
+ Console.write_stdout(f"Deleted expected source detail: \n{result}")
763
763
 
764
764
 
765
765
  delete_dataset_row_expected_source_options = [
@@ -818,7 +818,7 @@ def create_dataset_row_filter_variable(option_list: list):
818
818
  filter_variable_value=value,
819
819
  filter_variable_operator=operator,
820
820
  )
821
- sys.stdout.write(f"Filter variable detail: \n{result}\n")
821
+ Console.write_stdout(f"Filter variable detail: \n{result}")
822
822
 
823
823
 
824
824
  create_dataset_row_filter_variable_options = [
@@ -879,7 +879,7 @@ def list_dataset_row_filter_variables(option_list: list):
879
879
  dataset_id=dataset_id,
880
880
  dataset_row_id=row_id
881
881
  )
882
- sys.stdout.write(f"Filter variables: \n{result}\n")
882
+ Console.write_stdout(f"Filter variables: \n{result}")
883
883
 
884
884
 
885
885
  list_dataset_row_filter_variables_options = [
@@ -920,7 +920,7 @@ def get_dataset_row_filter_variable(option_list: list):
920
920
  dataset_row_id=row_id,
921
921
  filter_variable_id=filter_variable_id
922
922
  )
923
- sys.stdout.write(f"Filter variable detail: \n{result}\n")
923
+ Console.write_stdout(f"Filter variable detail: \n{result}")
924
924
 
925
925
 
926
926
  get_dataset_row_filter_variable_options = [
@@ -983,7 +983,7 @@ def update_dataset_row_filter_variable(option_list: list):
983
983
  filter_variable_value=value,
984
984
  filter_variable_operator=operator,
985
985
  )
986
- sys.stdout.write(f"Updated filter variable detail: \n{result}\n")
986
+ Console.write_stdout(f"Updated filter variable detail: \n{result}")
987
987
 
988
988
 
989
989
  update_dataset_row_filter_variable_options = [
@@ -1054,7 +1054,7 @@ def delete_dataset_row_filter_variable(option_list: list):
1054
1054
  dataset_row_id=row_id,
1055
1055
  filter_variable_id=filter_variable_id
1056
1056
  )
1057
- sys.stdout.write(f"Deleted filter variable detail: \n{result}\n")
1057
+ Console.write_stdout(f"Deleted filter variable detail: \n{result}")
1058
1058
 
1059
1059
 
1060
1060
  delete_dataset_row_filter_variable_options = [
@@ -1097,7 +1097,7 @@ def update_dataset_rows_file(option_list: list):
1097
1097
  dataset_id=dataset_id,
1098
1098
  file_path=dataset_rows_file
1099
1099
  )
1100
- sys.stdout.write(f"Dataset rows file detail: \n{result}\n")
1100
+ Console.write_stdout(f"Dataset rows file detail: \n{result}")
1101
1101
 
1102
1102
 
1103
1103
  update_dataset_rows_file_options = [
@@ -1124,7 +1124,7 @@ update_dataset_rows_file_options = [
1124
1124
  def list_evaluation_plans():
1125
1125
  client = EvaluationPlanClient()
1126
1126
  result = client.list_evaluation_plans()
1127
- sys.stdout.write(f"Evaluation plans: \n{result}\n")
1127
+ Console.write_stdout(f"Evaluation plans: \n{result}")
1128
1128
 
1129
1129
 
1130
1130
  def create_evaluation_plan(option_list: list):
@@ -1184,7 +1184,7 @@ def create_evaluation_plan(option_list: list):
1184
1184
  dataset_id=dataset_id,
1185
1185
  system_metrics=system_metrics,
1186
1186
  )
1187
- sys.stdout.write(f"New evaluation plan detail: \n{result}\n")
1187
+ Console.write_stdout(f"New evaluation plan detail: \n{result}")
1188
1188
 
1189
1189
 
1190
1190
  create_evaluation_plan_options = [
@@ -1254,7 +1254,7 @@ def get_evaluation_plan(option_list: list):
1254
1254
  result = client.get_evaluation_plan(
1255
1255
  evaluation_plan_id=evaluation_plan_id
1256
1256
  )
1257
- sys.stdout.write(f"Evaluation plan detail: \n{result}\n")
1257
+ Console.write_stdout(f"Evaluation plan detail: \n{result}")
1258
1258
 
1259
1259
 
1260
1260
  get_evaluation_plan_options = [
@@ -1327,7 +1327,7 @@ def update_evaluation_plan(option_list: list):
1327
1327
  dataset_id=dataset_id,
1328
1328
  system_metrics=system_metrics,
1329
1329
  )
1330
- sys.stdout.write(f"Updated evaluation plan: \n{result}\n")
1330
+ Console.write_stdout(f"Updated evaluation plan: \n{result}")
1331
1331
 
1332
1332
 
1333
1333
  update_evaluation_plan_options = [
@@ -1403,7 +1403,7 @@ def delete_evaluation_plan(option_list: list):
1403
1403
  result = client.delete_evaluation_plan(
1404
1404
  evaluation_plan_id=evaluation_plan_id
1405
1405
  )
1406
- sys.stdout.write(f"Deleted evaluation plan: \n{result}\n")
1406
+ Console.write_stdout(f"Deleted evaluation plan: \n{result}")
1407
1407
 
1408
1408
 
1409
1409
  delete_evaluation_plan_options = [
@@ -1430,7 +1430,7 @@ def list_evaluation_plan_system_metrics(option_list: list):
1430
1430
  result = client.list_evaluation_plan_system_metrics(
1431
1431
  evaluation_plan_id=evaluation_plan_id
1432
1432
  )
1433
- sys.stdout.write(f"Evaluation plan's system metrics: \n{result}\n")
1433
+ Console.write_stdout(f"Evaluation plan's system metrics: \n{result}")
1434
1434
 
1435
1435
 
1436
1436
  list_evaluation_plan_system_metrics_options = [
@@ -1466,7 +1466,7 @@ def add_evaluation_plan_system_metric(option_list: list):
1466
1466
  system_metric_weight=system_metric_weight
1467
1467
 
1468
1468
  )
1469
- sys.stdout.write(f"Evaluation plan's system metrics: \n{result}\n")
1469
+ Console.write_stdout(f"Evaluation plan's system metrics: \n{result}")
1470
1470
 
1471
1471
 
1472
1472
  add_evaluation_plan_system_metric_options = [
@@ -1509,7 +1509,7 @@ def get_evaluation_plan_system_metric(option_list: list):
1509
1509
  evaluation_plan_id=evaluation_plan_id,
1510
1510
  system_metric_id=system_metric_id
1511
1511
  )
1512
- sys.stdout.write(f"Evaluation plan's system metric: \n{result}\n")
1512
+ Console.write_stdout(f"Evaluation plan's system metric: \n{result}")
1513
1513
 
1514
1514
 
1515
1515
  get_evaluation_plan_system_metric_options = [
@@ -1551,7 +1551,7 @@ def update_evaluation_plan_system_metric(option_list: list):
1551
1551
  system_metric_weight=system_metric_weight
1552
1552
 
1553
1553
  )
1554
- sys.stdout.write(f"Evaluation plan's system metrics: \n{result}\n")
1554
+ Console.write_stdout(f"Evaluation plan's system metrics: \n{result}")
1555
1555
 
1556
1556
 
1557
1557
  update_evaluation_plan_system_metric_options = [
@@ -1594,7 +1594,7 @@ def delete_evaluation_plan_system_metric(option_list: list):
1594
1594
  evaluation_plan_id=evaluation_plan_id,
1595
1595
  system_metric_id=system_metric_id
1596
1596
  )
1597
- sys.stdout.write(f"Evaluation plan's system metric: \n{result}\n")
1597
+ Console.write_stdout(f"Evaluation plan's system metric: \n{result}")
1598
1598
 
1599
1599
 
1600
1600
  delete_evaluation_plan_system_metric_options = [
@@ -1616,7 +1616,7 @@ delete_evaluation_plan_system_metric_options = [
1616
1616
  def list_system_metrics():
1617
1617
  client = EvaluationPlanClient()
1618
1618
  result = client.list_system_metrics()
1619
- sys.stdout.write(f"Available system metrics: \n{result}\n")
1619
+ Console.write_stdout(f"Available system metrics: \n{result}")
1620
1620
 
1621
1621
 
1622
1622
  def get_system_metric(option_list: list):
@@ -1633,7 +1633,7 @@ def get_system_metric(option_list: list):
1633
1633
  result = client.get_system_metric(
1634
1634
  system_metric_id=system_metric_id
1635
1635
  )
1636
- sys.stdout.write(f"System metric: \n{result}\n")
1636
+ Console.write_stdout(f"System metric: \n{result}")
1637
1637
 
1638
1638
 
1639
1639
  get_system_metric_options = [
@@ -1660,7 +1660,7 @@ def execute_evaluation_plan(option_list: list):
1660
1660
  result = client.execute_evaluation_plan(
1661
1661
  evaluation_plan_id=evaluation_plan_id,
1662
1662
  )
1663
- sys.stdout.write(f"Evaluation plan execution: \n{result}\n")
1663
+ Console.write_stdout(f"Evaluation plan execution: \n{result}")
1664
1664
 
1665
1665
 
1666
1666
  execute_evaluation_plan_options = [
@@ -1691,7 +1691,7 @@ def list_evaluation_results(option_list: list):
1691
1691
  result = client.list_evaluation_results(
1692
1692
  evaluation_plan_id=evaluation_plan_id,
1693
1693
  )
1694
- sys.stdout.write(f"Evaluation results: \n{result}\n")
1694
+ Console.write_stdout(f"Evaluation results: \n{result}")
1695
1695
 
1696
1696
 
1697
1697
  list_evaluation_results_options = [
@@ -1718,7 +1718,7 @@ def get_evaluation_result(option_list: list):
1718
1718
  result = client.get_evaluation_result(
1719
1719
  evaluation_result_id=evaluation_result_id,
1720
1720
  )
1721
- sys.stdout.write(f"Evaluation result: \n{result}\n")
1721
+ Console.write_stdout(f"Evaluation result: \n{result}")
1722
1722
 
1723
1723
 
1724
1724
  get_evaluation_result_options = [
@@ -1,10 +1,9 @@
1
- import sys
2
-
3
1
  from pygeai.cli.commands import Command, Option, ArgumentsEnum
4
2
  from pygeai.cli.commands.builders import build_help_text
5
3
  from pygeai.cli.texts.help import FEEDBACK_HELP_TEXT
6
4
  from pygeai.core.common.exceptions import MissingRequirementException, WrongArgumentError
7
5
  from pygeai.core.feedback.clients import FeedbackClient
6
+ from pygeai.core.utils.console import Console
8
7
 
9
8
 
10
9
  def show_help():
@@ -12,7 +11,7 @@ def show_help():
12
11
  Displays help text in stdout
13
12
  """
14
13
  help_text = build_help_text(feedback_commands, FEEDBACK_HELP_TEXT)
15
- sys.stdout.write(help_text)
14
+ Console.write_stdout(help_text)
16
15
 
17
16
 
18
17
  def send_feedback(option_list: list):
@@ -41,7 +40,7 @@ def send_feedback(option_list: list):
41
40
  answer_score=answer_score,
42
41
  comments=comments
43
42
  )
44
- sys.stdout.write(f"Feedback detail: \n{result}\n")
43
+ Console.write_stdout(f"Feedback detail: \n{result}")
45
44
 
46
45
 
47
46
  send_feedback_options = [
@@ -1,10 +1,9 @@
1
- import sys
2
-
3
1
  from pygeai.cli.commands import Command, ArgumentsEnum, Option
4
2
  from pygeai.cli.commands.builders import build_help_text
5
3
  from pygeai.cli.texts.help import FILES_HELP_TEXT
6
4
  from pygeai.core.common.exceptions import MissingRequirementException
7
5
  from pygeai.core.files.clients import FileClient
6
+ from pygeai.core.utils.console import Console
8
7
 
9
8
 
10
9
  def show_help():
@@ -12,7 +11,7 @@ def show_help():
12
11
  Displays help text in stdout
13
12
  """
14
13
  help_text = build_help_text(files_commands, FILES_HELP_TEXT)
15
- sys.stdout.write(help_text)
14
+ Console.write_stdout(help_text)
16
15
 
17
16
 
18
17
  def upload_file(option_list: list):
@@ -45,7 +44,7 @@ def upload_file(option_list: list):
45
44
  file_name=file_name,
46
45
  folder=folder
47
46
  )
48
- sys.stdout.write(f"Uploaded file: \n{result}\n")
47
+ Console.write_stdout(f"Uploaded file: \n{result}")
49
48
 
50
49
 
51
50
  upload_file_options = [
@@ -103,7 +102,7 @@ def get_file(option_list: list):
103
102
  project=project,
104
103
  file_id=file_id,
105
104
  )
106
- sys.stdout.write(f"File: \n{result}\n")
105
+ Console.write_stdout(f"File: \n{result}")
107
106
 
108
107
 
109
108
  get_file_options = [
@@ -149,7 +148,7 @@ def delete_file(option_list: list):
149
148
  organization=organization,
150
149
  project=project
151
150
  )
152
- sys.stdout.write(f"Deleted file: \n{result}\n")
151
+ Console.write_stdout(f"Deleted file: \n{result}")
153
152
 
154
153
 
155
154
  delete_file_options = [
@@ -195,7 +194,7 @@ def get_file_content(option_list: list):
195
194
  organization=organization,
196
195
  project=project
197
196
  )
198
- sys.stdout.write(f"File content: \n{result}\n")
197
+ Console.write_stdout(f"File content: \n{result}")
199
198
 
200
199
 
201
200
  get_file_content_options = [
@@ -237,7 +236,7 @@ def get_file_list(option_list: list):
237
236
  organization=organization,
238
237
  project=project
239
238
  )
240
- sys.stdout.write(f"Files list: \n{result}\n")
239
+ Console.write_stdout(f"Files list: \n{result}")
241
240
 
242
241
 
243
242
  get_file_list_options = [
@@ -1,11 +1,8 @@
1
- import json
2
- import sys
3
-
4
1
  from pygeai.cli.commands import Command, Option, ArgumentsEnum
5
2
  from pygeai.cli.commands.builders import build_help_text
6
- from pygeai.cli.commands.common import get_messages, get_boolean_value, get_penalty_float_value
7
3
  from pygeai.cli.texts.help import GAM_HELP_TEXT
8
4
  from pygeai.core.common.exceptions import MissingRequirementException, WrongArgumentError
5
+ from pygeai.core.utils.console import Console
9
6
  from pygeai.gam.clients import GAMClient
10
7
 
11
8
 
@@ -14,7 +11,74 @@ def show_help():
14
11
  Displays help text in stdout
15
12
  """
16
13
  help_text = build_help_text(gam_commands, GAM_HELP_TEXT)
17
- sys.stdout.write(help_text)
14
+ Console.write_stdout(help_text)
15
+
16
+
17
+ def generate_signin_url(option_list: list):
18
+ client_id = None
19
+ redirect_uri = None
20
+ scope = "gam_user_data"
21
+ state = None
22
+ response_type = "code"
23
+
24
+ for option_flag, option_arg in option_list:
25
+ if option_flag.name == "client_id":
26
+ client_id = option_arg
27
+ if option_flag.name == "redirect_uri":
28
+ redirect_uri = option_arg
29
+ if option_flag.name == "scope":
30
+ scope = option_arg
31
+ if option_flag.name == "state":
32
+ state = option_arg
33
+ if option_flag.name == "response_type":
34
+ response_type = option_arg
35
+
36
+ if not all([client_id, redirect_uri, state]):
37
+ raise MissingRequirementException("client_id, redirect_uri, and state are required for generating signin URL")
38
+
39
+ client = GAMClient()
40
+ result = client.generate_signing_url(
41
+ client_id=client_id,
42
+ redirect_uri=redirect_uri,
43
+ scope=scope,
44
+ state=state,
45
+ response_type=response_type
46
+ )
47
+ Console.write_stdout(f"GAM Signin URL: \n{result}")
48
+
49
+
50
+ generate_signin_url_options = [
51
+ Option(
52
+ "client_id",
53
+ ["--client-id", "--cid"],
54
+ "Application Client ID.",
55
+ True
56
+ ),
57
+ Option(
58
+ "redirect_uri",
59
+ ["--redirect-uri", "--ru"],
60
+ "Callback URL configured in the application (must match the one in GAM).",
61
+ True
62
+ ),
63
+ Option(
64
+ "scope",
65
+ ["--scope", "-s"],
66
+ 'Scope of the user account to access. Default: "gam_user_data"',
67
+ True
68
+ ),
69
+ Option(
70
+ "state",
71
+ ["--state", "--st"],
72
+ "Random string to store the status before the request.",
73
+ True
74
+ ),
75
+ Option(
76
+ "response_type",
77
+ ["--response-type", "--rt"],
78
+ 'Response type for the signin request. Default: "code"',
79
+ True
80
+ )
81
+ ]
18
82
 
19
83
 
20
84
  def get_access_token(option_list: list):
@@ -67,7 +131,7 @@ def get_access_token(option_list: list):
67
131
  repository=repository,
68
132
  request_token_type=request_token_type,
69
133
  )
70
- sys.stdout.write(f"GAM Access Token: \n{result}\n")
134
+ Console.write_stdout(f"GAM Access Token: \n{result}")
71
135
 
72
136
 
73
137
  get_access_token_options = [
@@ -98,7 +162,9 @@ get_access_token_options = [
98
162
  Option(
99
163
  "scope",
100
164
  ["--scope", "-s"],
101
- 'Scope of the user account you want to access. gam_user_data+gam_user_roles. Default: "gam_user_data"',
165
+ 'Scope of the user account you want to access. gam_user_data+gam_user_roles. '
166
+ 'Valid scopes: gam_user_data, gam_user_additional_data, gam_user_roles, session_initial_prop, '
167
+ 'session_application_data, fullcontrol. Default: "gam_user_data"',
102
168
  True
103
169
  ),
104
170
  Option(
@@ -148,7 +214,7 @@ def get_user_info(option_list: list):
148
214
  result = client.get_user_info(
149
215
  access_token=access_token,
150
216
  )
151
- sys.stdout.write(f"GAM User info: \n{result}\n")
217
+ Console.write_stdout(f"GAM User info: \n{result}")
152
218
 
153
219
 
154
220
  get_user_info_options = [
@@ -187,7 +253,7 @@ def refresh_access_token(option_list: list):
187
253
  grant_type=grant_type,
188
254
  refresh_token=refresh_token,
189
255
  )
190
- sys.stdout.write(f"GAM Access Token: \n{result}\n")
256
+ Console.write_stdout(f"GAM Access Token: \n{result}")
191
257
 
192
258
 
193
259
  refresh_access_token_options = [
@@ -221,7 +287,7 @@ refresh_access_token_options = [
221
287
  def get_authentication_types():
222
288
  client = GAMClient()
223
289
  result = client.get_authentication_types()
224
- sys.stdout.write(f"GAM Authentication Types: \n{result}\n")
290
+ Console.write_stdout(f"GAM Authentication Types: \n{result}")
225
291
 
226
292
 
227
293
  gam_commands = [
@@ -261,6 +327,15 @@ gam_commands = [
261
327
  [],
262
328
  refresh_access_token_options
263
329
  ),
330
+ Command(
331
+ "generate_signin_url",
332
+ ["generate-signin-url", "gsu"],
333
+ "Generate signin URL for browser-based OAuth flow",
334
+ generate_signin_url,
335
+ ArgumentsEnum.REQUIRED,
336
+ [],
337
+ generate_signin_url_options
338
+ )
264
339
  # Command(
265
340
  # "get_authentication_types",
266
341
  # ["get-authentication-types", "get-auth-types"],