pybiolib 1.2.1036.dev1__tar.gz → 1.2.1045__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 (161) hide show
  1. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/PKG-INFO +1 -1
  2. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_runtime/runtime.py +6 -2
  3. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/biolib_app_api.py +9 -0
  4. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/init.py +37 -1
  5. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/pyproject.toml +1 -1
  6. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/LICENSE +0 -0
  7. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/PYPI_README.md +0 -0
  8. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/__init__.py +0 -0
  9. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_data_record/data_record.py +0 -0
  10. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/__init__.py +0 -0
  11. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/add_copilot_prompts.py +0 -0
  12. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/add_gui_files.py +0 -0
  13. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/data_record/__init__.py +0 -0
  14. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/data_record/data_record.py +0 -0
  15. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/data_record/push_data.py +0 -0
  16. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  17. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/errors.py +0 -0
  18. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/file_utils.py +0 -0
  19. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/fuse_mount/__init__.py +0 -0
  20. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  21. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/http_client.py +0 -0
  22. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/lfs/__init__.py +0 -0
  23. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/lfs/cache.py +0 -0
  24. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/libs/__init__.py +0 -0
  25. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  26. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/push_application.py +0 -0
  27. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/runtime.py +0 -0
  28. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/string_utils.py +0 -0
  29. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/__init__.py +0 -0
  30. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/instructions/general-app-knowledge.instructions.md +0 -0
  31. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/instructions/style-general.instructions.md +0 -0
  32. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/instructions/style-python.instructions.md +0 -0
  33. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/instructions/style-react-ts.instructions.md +0 -0
  34. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/prompts/biolib_app_inputs.prompt.md +0 -0
  35. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/prompts/biolib_onboard_repo.prompt.md +0 -0
  36. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/copilot_template/.github/prompts/biolib_run_apps.prompt.md +0 -0
  37. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/.yarnrc.yml +0 -0
  38. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/App.tsx +0 -0
  39. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/Dockerfile +0 -0
  40. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/index.css +0 -0
  41. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/index.html +0 -0
  42. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/index.tsx +0 -0
  43. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/package.json +0 -0
  44. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/tsconfig.json +0 -0
  45. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/gui_template/vite.config.mts +0 -0
  46. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/.biolib/config.yml +0 -0
  47. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/.github/workflows/biolib.yml +0 -0
  48. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/.gitignore +0 -0
  49. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/Dockerfile +0 -0
  50. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/requirements.txt +0 -0
  51. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/run.py +0 -0
  52. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/init_template/run.sh +0 -0
  53. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/templates/templates.py +0 -0
  54. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/tree_utils.py +0 -0
  55. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/__init__.py +0 -0
  56. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/account.py +0 -0
  57. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/account_member.py +0 -0
  58. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/app.py +0 -0
  59. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/data_record.py +0 -0
  60. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/experiment.py +0 -0
  61. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/file_node.py +0 -0
  62. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/push.py +0 -0
  63. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/resource.py +0 -0
  64. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/resource_permission.py +0 -0
  65. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/resource_version.py +0 -0
  66. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/result.py +0 -0
  67. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/typing.py +0 -0
  68. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/types/user.py +0 -0
  69. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/utils/__init__.py +0 -0
  70. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_internal/utils/multinode.py +0 -0
  71. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/_session/session.py +0 -0
  72. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/api/__init__.py +0 -0
  73. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/api/client.py +0 -0
  74. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/app/__init__.py +0 -0
  75. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/app/app.py +0 -0
  76. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/app/search_apps.py +0 -0
  77. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/__init__.py +0 -0
  78. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/api_client.py +0 -0
  79. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/app_types.py +0 -0
  80. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/auth.py +0 -0
  81. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  82. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/common_types.py +0 -0
  83. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/job_types.py +0 -0
  84. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/lfs_types.py +0 -0
  85. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_api_client/user_state.py +0 -0
  86. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/__init__.py +0 -0
  87. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  88. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/file_in_container.py +0 -0
  89. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/module_input.py +0 -0
  90. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  91. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  92. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  93. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/saved_job.py +0 -0
  94. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  95. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/system_exception.py +0 -0
  96. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/system_status_update.py +0 -0
  97. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_binary_format/utils.py +0 -0
  98. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_docker_client/__init__.py +0 -0
  99. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_download_container.py +0 -0
  100. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_errors.py +0 -0
  101. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/biolib_logging.py +0 -0
  102. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/__init__.py +0 -0
  103. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/auth.py +0 -0
  104. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/data_record.py +0 -0
  105. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/download_container.py +0 -0
  106. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/lfs.py +0 -0
  107. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/push.py +0 -0
  108. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/run.py +0 -0
  109. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/runtime.py +0 -0
  110. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/sdk.py +0 -0
  111. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/cli/start.py +0 -0
  112. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/.gitignore +0 -0
  113. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/__init__.py +0 -0
  114. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  115. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  116. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/__init__.py +0 -0
  117. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/cache_state.py +0 -0
  118. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/cache_types.py +0 -0
  119. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  120. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  121. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  122. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  123. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  124. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/executors/types.py +0 -0
  125. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  126. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  127. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/job_storage.py +0 -0
  128. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/job_worker.py +0 -0
  129. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  130. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/mappings.py +0 -0
  131. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  132. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/job_worker/utils.py +0 -0
  133. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/remote_host_proxy.py +0 -0
  134. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/socker_listener_thread.py +0 -0
  135. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/socket_sender_thread.py +0 -0
  136. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/utils.py +0 -0
  137. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/webserver/__init__.py +0 -0
  138. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  139. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/webserver/webserver.py +0 -0
  140. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/webserver/webserver_types.py +0 -0
  141. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  142. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/compute_node/webserver/worker_thread.py +0 -0
  143. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/experiments/__init__.py +0 -0
  144. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/experiments/experiment.py +0 -0
  145. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/jobs/__init__.py +0 -0
  146. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/jobs/job.py +0 -0
  147. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/jobs/job_result.py +0 -0
  148. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/jobs/types.py +0 -0
  149. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/py.typed +0 -0
  150. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/runtime/__init__.py +0 -0
  151. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/sdk/__init__.py +0 -0
  152. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/tables.py +0 -0
  153. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/typing_utils.py +0 -0
  154. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/user/__init__.py +0 -0
  155. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/user/sign_in.py +0 -0
  156. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/utils/__init__.py +0 -0
  157. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/utils/app_uri.py +0 -0
  158. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/utils/cache_state.py +0 -0
  159. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/utils/multipart_uploader.py +0 -0
  160. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/utils/seq_util.py +0 -0
  161. {pybiolib-1.2.1036.dev1 → pybiolib-1.2.1045}/biolib/utils/zip/remote_zip.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pybiolib
3
- Version: 1.2.1036.dev1
3
+ Version: 1.2.1045
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -30,8 +30,12 @@ class Runtime:
30
30
  return Runtime._get_job_data()['job_auth_token']
31
31
 
32
32
  @staticmethod
33
- def get_job_requested_machine() -> str:
34
- return Runtime._get_job_data()['job_requested_machine']
33
+ def get_job_requested_machine() -> Optional[str]:
34
+ job_data = Runtime._get_job_data()
35
+ job_requested_machine = job_data.get('job_requested_machine')
36
+ if not job_requested_machine:
37
+ return None
38
+ return job_requested_machine
35
39
 
36
40
  @staticmethod
37
41
  def get_app_uri() -> str:
@@ -99,6 +99,15 @@ class BiolibAppApi:
99
99
 
100
100
  raise error
101
101
 
102
+ @staticmethod
103
+ def create_app(uri: str):
104
+ uri = _get_app_uri_from_str(uri)
105
+ try:
106
+ response = biolib.api.client.post(path='/resources/apps/', data={'uri': uri})
107
+ return response.json()
108
+ except HttpError as error:
109
+ raise error
110
+
102
111
  @staticmethod
103
112
  def push_app_version(
104
113
  app_id,
@@ -4,11 +4,17 @@ import sys
4
4
 
5
5
  import click
6
6
 
7
- from biolib import utils # Import like this to let BASE_URL_IS_PUBLIC_BIOLIB be set correctly
7
+ from biolib import (
8
+ biolib_errors,
9
+ utils, # Import like this to let BASE_URL_IS_PUBLIC_BIOLIB be set correctly
10
+ )
8
11
  from biolib._internal.add_copilot_prompts import add_copilot_prompts
9
12
  from biolib._internal.add_gui_files import add_gui_files
10
13
  from biolib._internal.string_utils import normalize_for_docker_tag
11
14
  from biolib._internal.templates import templates
15
+ from biolib.biolib_api_client.api_client import BiolibApiClient
16
+ from biolib.biolib_api_client.biolib_app_api import BiolibAppApi
17
+ from biolib.user.sign_in import sign_in
12
18
  from biolib.utils import BIOLIB_PACKAGE_VERSION
13
19
 
14
20
 
@@ -19,6 +25,36 @@ def init() -> None:
19
25
  app_uri = input('What URI do you want to create the application under? (leave blank to skip): ')
20
26
  app_name = app_uri.split('/')[-1] if app_uri else None
21
27
  docker_tag = normalize_for_docker_tag(app_name) if app_name else None
28
+
29
+ if app_uri:
30
+ try:
31
+ if BiolibApiClient.is_reauthentication_needed():
32
+ sign_in_input = input('You need to sign in to validate/create apps. Would you like to sign in? [y/N]: ')
33
+ if sign_in_input.lower() in ['y', 'yes']:
34
+ sign_in()
35
+ else:
36
+ print('Skipping app validation and creation. You can set the URI in .biolib/config.yml later.')
37
+ return
38
+
39
+ BiolibAppApi.get_by_uri(app_uri)
40
+ print(f'App {app_uri} already exists.')
41
+ except biolib_errors.NotFound:
42
+ create_app_input = input(f'App {app_uri} does not exist. Would you like to create it? [y/N]: ')
43
+ if create_app_input.lower() in ['y', 'yes']:
44
+ try:
45
+ BiolibAppApi.create_app(app_uri)
46
+ print(f'Successfully created app {app_uri}')
47
+ except Exception as e:
48
+ print(f'Failed to create app {app_uri}: {str(e)}')
49
+ print('You can create the app manually later or set the URI in .biolib/config.yml')
50
+ else:
51
+ print(
52
+ 'App creation skipped. You can create the app manually later or set the URI in .biolib/config.yml'
53
+ )
54
+ except Exception as e:
55
+ print(f'Failed to validate app {app_uri}: {str(e)}')
56
+ print('Continuing with initialization...')
57
+
22
58
  if not app_uri:
23
59
  print(
24
60
  'Remember to set the app URI in the .biolib/config.yml file later, '
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.1036.dev1"
3
+ version = "1.2.1045"
4
4
  description = "BioLib Python Client"
5
5
  readme = "PYPI_README.md"
6
6
  license = "MIT"
File without changes