aimodelshare 0.1.29__tar.gz → 0.1.30__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.

Potentially problematic release.


This version of aimodelshare might be problematic. Click here for more details.

Files changed (156) hide show
  1. {aimodelshare-0.1.29/aimodelshare.egg-info → aimodelshare-0.1.30}/PKG-INFO +1 -1
  2. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/aimsonnx.py +1 -1
  3. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/download_data.py +85 -106
  4. {aimodelshare-0.1.29 → aimodelshare-0.1.30/aimodelshare.egg-info}/PKG-INFO +1 -1
  5. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/setup.py +1 -1
  6. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/LICENSE +0 -0
  7. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/MANIFEST.in +0 -0
  8. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/README.md +0 -0
  9. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/README.md +0 -0
  10. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/__init__.py +0 -0
  11. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/api.py +0 -0
  12. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/aws.py +0 -0
  13. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/aws_client.py +0 -0
  14. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/base_image.py +0 -0
  15. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/bucketpolicy.py +0 -0
  16. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/color_mappings/color_mapping_keras.csv +0 -0
  17. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/color_mappings/color_mapping_pytorch.csv +0 -0
  18. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/containerisation.py +0 -0
  19. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/containerization.py +0 -0
  20. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/containerization_templates/Dockerfile.txt +0 -0
  21. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/containerization_templates/Dockerfile_PySpark.txt +0 -0
  22. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/containerization_templates/buildspec.txt +0 -0
  23. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/containerization_templates/lambda_function.txt +0 -0
  24. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/custom_approach/__init__.py +0 -0
  25. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/custom_approach/lambda_function.py +0 -0
  26. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/custom_eval_metrics.py +0 -0
  27. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/__init__.py +0 -0
  28. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/data_sharing_templates/Dockerfile.txt +0 -0
  29. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/data_sharing_templates/__init__.py +0 -0
  30. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/data_sharing_templates/buildspec.txt +0 -0
  31. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/data_sharing_templates/codebuild_policies.txt +0 -0
  32. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/data_sharing_templates/codebuild_trust_relationship.txt +0 -0
  33. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/share_data.py +0 -0
  34. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/data_sharing/utils.py +0 -0
  35. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/deploy_custom_lambda.py +0 -0
  36. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/Makefile +0 -0
  37. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/__init__.py +0 -0
  38. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/_version.py +0 -0
  39. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/breadcrumbs.html +0 -0
  40. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/layout.html +0 -0
  41. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/search.html +0 -0
  42. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/searchbox.html +0 -0
  43. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/css/custom.css +0 -0
  44. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/css/custom.css.map +0 -0
  45. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.css +0 -0
  46. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.css.map +0 -0
  47. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.min.css +0 -0
  48. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.min.css.map +0 -0
  49. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.eot +0 -0
  50. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.svg +0 -0
  51. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.ttf +0 -0
  52. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.woff +0 -0
  53. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.woff2 +0 -0
  54. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/static/js/theme.js +0 -0
  55. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/karma_sphinx_theme/theme.conf +0 -0
  56. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/make.bat +0 -0
  57. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/requirements.txt +0 -0
  58. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/about.rst +0 -0
  59. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/advanced_features.rst +0 -0
  60. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/competition.rst +0 -0
  61. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/conf.py +0 -0
  62. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/create_credentials.rst +0 -0
  63. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/example_notebooks.rst +0 -0
  64. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/functions.rst +0 -0
  65. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/gettingstarted.rst +0 -0
  66. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/creds1.png +0 -0
  67. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/creds2.png +0 -0
  68. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/creds3.png +0 -0
  69. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/creds4.png +0 -0
  70. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/creds5.png +0 -0
  71. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/creds_file_example.png +0 -0
  72. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/images/predict_tab.png +0 -0
  73. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/index.rst +0 -0
  74. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/documentation/source/modelplayground.rst +0 -0
  75. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/exceptions.py +0 -0
  76. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/generatemodelapi.py +0 -0
  77. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/iam/codebuild_policy.txt +0 -0
  78. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/iam/codebuild_trust_relationship.txt +0 -0
  79. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/iam/lambda_policy.txt +0 -0
  80. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/iam/lambda_trust_relationship.txt +0 -0
  81. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/__init__.py +0 -0
  82. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/api_json.txt +0 -0
  83. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/auth/policy.txt +0 -0
  84. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/auth/role.txt +0 -0
  85. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/eval/policy.txt +0 -0
  86. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/eval/role.txt +0 -0
  87. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/function/policy.txt +0 -0
  88. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/function/role.txt +0 -0
  89. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/integration_response.txt +0 -0
  90. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/lambda_policy_1.txt +0 -0
  91. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/lambda_policy_2.txt +0 -0
  92. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/lambda_role_1.txt +0 -0
  93. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/json_templates/lambda_role_2.txt +0 -0
  94. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/leaderboard.py +0 -0
  95. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/1.txt +0 -0
  96. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/1B.txt +0 -0
  97. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/2.txt +0 -0
  98. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/3.txt +0 -0
  99. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/4.txt +0 -0
  100. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/5.txt +0 -0
  101. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/6.txt +0 -0
  102. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/7.txt +0 -0
  103. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/8.txt +0 -0
  104. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/__init__.py +0 -0
  105. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/authorization.txt +0 -0
  106. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/eval_classification.txt +0 -0
  107. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/eval_lambda.txt +0 -0
  108. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/eval_regression.txt +0 -0
  109. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/lambda_function.txt +0 -0
  110. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/main/nst.txt +0 -0
  111. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/model.py +0 -0
  112. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/modeluser.py +0 -0
  113. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/placeholders/model.onnx +0 -0
  114. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/placeholders/preprocessor.zip +0 -0
  115. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/playground.py +0 -0
  116. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/postprocessormodules.py +0 -0
  117. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/preprocessormodules.py +0 -0
  118. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/1.txt +0 -0
  119. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/1B.txt +0 -0
  120. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/2.txt +0 -0
  121. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/3.txt +0 -0
  122. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/4.txt +0 -0
  123. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/5.txt +0 -0
  124. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/6.txt +0 -0
  125. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/7.txt +0 -0
  126. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/8.txt +0 -0
  127. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/__init__.py +0 -0
  128. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/authorization.txt +0 -0
  129. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/eval_classification.txt +0 -0
  130. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/eval_lambda.txt +0 -0
  131. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/eval_regression.txt +0 -0
  132. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/lambda_function.txt +0 -0
  133. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/pyspark/nst.txt +0 -0
  134. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/python/my_preprocessor.py +0 -0
  135. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/readme.md +0 -0
  136. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/reproducibility.py +0 -0
  137. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/Dockerfile.txt +0 -0
  138. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/Dockerfile_PySpark.txt +0 -0
  139. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/__init__.py +0 -0
  140. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/buildspec.txt +0 -0
  141. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/codebuild_policies.txt +0 -0
  142. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/codebuild_trust_relationship.txt +0 -0
  143. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/codepipeline_policies.txt +0 -0
  144. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/codepipeline_trust_relationship.txt +0 -0
  145. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/spark-class.txt +0 -0
  146. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/sam/template.txt +0 -0
  147. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/tools.py +0 -0
  148. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare/utils.py +0 -0
  149. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare.egg-info/SOURCES.txt +0 -0
  150. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare.egg-info/dependency_links.txt +0 -0
  151. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare.egg-info/requires.txt +0 -0
  152. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/aimodelshare.egg-info/top_level.txt +0 -0
  153. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/setup.cfg +0 -0
  154. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/tests/__init__.py +0 -0
  155. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/tests/test_aimsonnx.py +0 -0
  156. {aimodelshare-0.1.29 → aimodelshare-0.1.30}/tests/test_playground.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aimodelshare
3
- Version: 0.1.29
3
+ Version: 0.1.30
4
4
  Summary: Deploy locally saved machine learning models to a live rest API and web-dashboard. Share it with the world via modelshare.org
5
5
  Home-page: https://www.modelshare.org
6
6
  Author: Michael Parrott
@@ -579,7 +579,7 @@ def _keras_to_onnx(model, transfer_learning=None,
579
579
  output_path = os.path.join(temp_dir, 'temp.onnx')
580
580
 
581
581
 
582
- model.save(temp_dir)
582
+ tf.saved_model.save(model, temp_dir)
583
583
 
584
584
  # # Convert the model
585
585
  try:
@@ -76,110 +76,88 @@ def download_layer(layer, layer_count, tmp_img_dir, blobs_resp):
76
76
  return layer_id, layer_dir
77
77
 
78
78
  def pull_image(image_uri):
79
- import os
80
- import requests
81
- import tempfile
82
- import json
83
- import shutil
84
- import tarfile
85
- from aimodelshare.data_sharing.utils import redo_with_write
86
-
87
- image_uri_parts = image_uri.split('/')
88
-
89
- registry = image_uri_parts[0]
90
- image, tag = image_uri_parts[2].split(':')
91
- repository = '/'.join([image_uri_parts[1], image])
92
-
93
- auth_url = get_auth_url(registry)
94
-
95
- # Request manifest with correct Accept header
96
- auth_head = get_auth_head(auth_url, registry, repository)
97
- manifest_url = f'https://{registry}/v2/{repository}/manifests/{tag}'
98
- resp = requests.get(manifest_url, headers=auth_head, verify=False)
99
-
100
- # --- PATCH: Handle manifest list (multi-platform images) ---
101
- if resp.headers.get('Content-Type') == 'application/vnd.docker.distribution.manifest.list.v2+json':
102
- manifest_list = resp.json()
103
-
104
- # Find the first linux/amd64 image (or fallback to first available)
105
- target_manifest = next(
106
- (m for m in manifest_list['manifests']
107
- if m['platform'].get('architecture') == 'amd64' and m['platform'].get('os') == 'linux'),
108
- manifest_list['manifests'][0]
109
- )
110
- digest = target_manifest['digest']
111
-
112
- # Get the actual image manifest now
113
- resp = requests.get(
114
- f'https://{registry}/v2/{repository}/manifests/{digest}',
115
- headers=auth_head,
116
- verify=False
117
- )
118
- # -----------------------------------------------------------
119
-
120
- manifest = resp.json()
121
-
122
- # Safely check and fail early if config key is still missing
123
- if 'config' not in manifest:
124
- raise ValueError("Manifest response missing 'config'. This image may not follow Docker V2 manifest schema.")
125
-
126
- config = manifest['config']['digest']
127
- config_resp = requests.get(f'https://{registry}/v2/{repository}/blobs/{config}', headers=auth_head, verify=False)
128
-
129
- tmp_img_dir = os.path.join(tempfile.gettempdir(), f'tmp_{image}_{tag}')
130
- os.mkdir(tmp_img_dir)
131
-
132
- with open(f'{tmp_img_dir}/{config[7:]}.json', 'wb') as file:
133
- file.write(config_resp.content)
134
-
135
- content = [{
136
- 'Config': config[7:] + '.json',
137
- 'RepoTags': [image_uri],
138
- 'Layers': []
139
- }]
140
-
141
- # Skip first 6 layers? Keep original logic for compatibility
142
- layers = manifest['layers'][6:]
143
- layer_count = 0
144
-
145
- for layer in layers:
146
- layer_count += 1
147
- auth_head = get_auth_head(auth_url, registry, repository)
148
- blobs_resp = requests.get(
149
- f'https://{registry}/v2/{repository}/blobs/{layer["digest"]}',
150
- headers=auth_head,
151
- stream=True,
152
- verify=False
153
- )
154
-
155
- layer_id, layer_dir = download_layer(layer, layer_count, tmp_img_dir, blobs_resp)
156
- content[0]['Layers'].append(layer_id + '/layer.tar')
157
-
158
- json_path = os.path.join(layer_dir, 'json')
159
- with open(json_path, 'w') as file:
160
- if layers[-1]['digest'] == layer['digest']:
161
- json_obj = json.loads(config_resp.content)
162
- json_obj.pop('history', None)
163
- json_obj.pop('rootfs', None)
164
- else:
165
- json_obj = {}
166
- json_obj['id'] = layer_id
167
- file.write(json.dumps(json_obj))
168
-
169
- with open(os.path.join(tmp_img_dir, 'manifest.json'), 'w') as f:
170
- f.write(json.dumps(content))
171
-
172
- repo_dict = {'/'.join(image_uri_parts[:-1]) + '/' + image: {tag: layer_id}}
173
- with open(os.path.join(tmp_img_dir, 'repositories'), 'w') as f:
174
- f.write(json.dumps(repo_dict))
175
-
176
- # Create tar archive from temp image directory
177
- docker_tar = os.path.join(tempfile.gettempdir(), f'{repository.replace("/", "_")}_{tag}.tar')
178
- with tarfile.open(docker_tar, "w") as tar:
179
- tar.add(tmp_img_dir, arcname=os.path.sep)
180
-
181
- shutil.rmtree(tmp_img_dir, onerror=redo_with_write)
182
- return docker_tar
79
+
80
+ image_uri_parts = image_uri.split('/')
81
+
82
+ registry = image_uri_parts[0]
83
+ image, tag = image_uri_parts[2].split(':')
84
+ repository = '/'.join([image_uri_parts[1], image])
85
+
86
+ auth_url = get_auth_url(registry)
87
+
88
+ auth_head = get_auth_head(auth_url, registry, repository)
89
+
90
+ resp = requests.get('https://{}/v2/{}/manifests/{}'.format(registry, repository, tag), headers=auth_head, verify=False)
91
+
92
+ print(resp.json())
93
+ config = resp.json()['config']['digest']
94
+ config_resp = requests.get('https://{}/v2/{}/blobs/{}'.format(registry, repository, config), headers=auth_head, verify=False)
95
+
96
+ tmp_img_dir = tempfile.gettempdir() + '/' + 'tmp_{}_{}'.format(image, tag)
97
+ os.mkdir(tmp_img_dir)
98
+
99
+ file = open('{}/{}.json'.format(tmp_img_dir, config[7:]), 'wb')
100
+ file.write(config_resp.content)
101
+ file.close()
102
+
103
+ content = [{
104
+ 'Config': config[7:] + '.json',
105
+ 'RepoTags': [],
106
+ 'Layers': []
107
+ }]
108
+ content[0]['RepoTags'].append(image_uri)
109
+
110
+ layer_count=0
111
+ layers = resp.json()['layers'][6:]
112
+
113
+ for layer in layers:
114
+
115
+ layer_count += 1
116
+
117
+ auth_head = get_auth_head(auth_url, registry, repository) # done to keep from expiring
118
+ blobs_resp = requests.get('https://{}/v2/{}/blobs/{}'.format(registry, repository, layer['digest']), headers=auth_head, stream=True, verify=False)
119
+
120
+ layer_id, layer_dir = download_layer(layer, layer_count, tmp_img_dir, blobs_resp)
121
+ content[0]['Layers'].append(layer_id + '/layer.tar')
122
+
123
+ # Creating json file
124
+ file = open(layer_dir + '/json', 'w')
125
+
126
+ # last layer = config manifest - history - rootfs
127
+ if layers[-1]['digest'] == layer['digest']:
128
+ json_obj = json.loads(config_resp.content)
129
+ del json_obj['history']
130
+ del json_obj['rootfs']
131
+ else: # other layers json are empty
132
+ json_obj = json.loads('{}')
133
+
134
+ json_obj['id'] = layer_id
135
+ file.write(json.dumps(json_obj))
136
+ file.close()
137
+
138
+ file = open(tmp_img_dir + '/manifest.json', 'w')
139
+ file.write(json.dumps(content))
140
+ file.close()
141
+
142
+ content = {
143
+ '/'.join(image_uri_parts[:-1]) + '/' + image : { tag : layer_id }
144
+ }
145
+
146
+ file = open(tmp_img_dir + '/repositories', 'w')
147
+ file.write(json.dumps(content))
148
+ file.close()
149
+
150
+ # Create image tar and clean tmp folder
151
+ docker_tar = tempfile.gettempdir() + '/' + '_'.join([repository.replace('/', '_'), tag]) + '.tar'
152
+ sys.stdout.flush()
153
+
154
+ tar = tarfile.open(docker_tar, "w")
155
+ tar.add(tmp_img_dir, arcname=os.path.sep)
156
+ tar.close()
157
+
158
+ shutil.rmtree(tmp_img_dir, onerror=redo_with_write)
159
+
160
+ return docker_tar
183
161
 
184
162
 
185
163
  def extract_data_from_image(image_name, file_name, location):
@@ -219,10 +197,11 @@ def import_quickstart_data(tutorial, section="modelplayground"):
219
197
 
220
198
  #Download Quick Start materials
221
199
  if all([tutorial == "flowers", section == "modelplayground"]):
222
- quickstart_repository = "public.ecr.aws/y2e2a1d6/quickstart_materials-repository:latest"
200
+ quickstart_repository = "public.ecr.aws/z5w0c9e9/quickstart_materials-repository:latest"
223
201
  existing_folder = 'flower_competition_data'
202
+
224
203
  if all([tutorial == "flowers", section == "competition"]):
225
- quickstart_repository = "public.ecr.aws/y2e2a1d6/quickstart_flowers_competition-repository:latest"
204
+ quickstart_repository = "public.ecr.aws/z5w0c9e9/quickstart_flowers_competition-repository:latest"
226
205
  existing_folder = 'flower_competition_data'
227
206
 
228
207
  if all([tutorial == "mnist", section == "modelplayground"]):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aimodelshare
3
- Version: 0.1.29
3
+ Version: 0.1.30
4
4
  Summary: Deploy locally saved machine learning models to a live rest API and web-dashboard. Share it with the world via modelshare.org
5
5
  Home-page: https://www.modelshare.org
6
6
  Author: Michael Parrott
@@ -6,7 +6,7 @@ with open("README.md", "r") as fh:
6
6
 
7
7
  setuptools.setup(
8
8
  name='aimodelshare', #TODO:update
9
- version='0.1.29', #TODO:update
9
+ version='0.1.30', #TODO:update
10
10
  author="Michael Parrott",
11
11
  author_email="mikedparrott@modelshare.org",
12
12
  description="Deploy locally saved machine learning models to a live rest API and web-dashboard. Share it with the world via modelshare.org",
File without changes
File without changes
File without changes
File without changes