aimodelshare 0.1.27__tar.gz → 0.1.29__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 (158) hide show
  1. {aimodelshare-0.1.27/aimodelshare.egg-info → aimodelshare-0.1.29}/PKG-INFO +36 -26
  2. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/download_data.py +104 -80
  3. {aimodelshare-0.1.27 → aimodelshare-0.1.29/aimodelshare.egg-info}/PKG-INFO +36 -26
  4. aimodelshare-0.1.29/aimodelshare.egg-info/requires.txt +27 -0
  5. aimodelshare-0.1.29/setup.py +55 -0
  6. aimodelshare-0.1.27/aimodelshare.egg-info/requires.txt +0 -27
  7. aimodelshare-0.1.27/setup.py +0 -28
  8. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/LICENSE +0 -0
  9. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/MANIFEST.in +0 -0
  10. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/README.md +0 -0
  11. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/README.md +0 -0
  12. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/__init__.py +0 -0
  13. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/aimsonnx.py +0 -0
  14. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/api.py +0 -0
  15. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/aws.py +0 -0
  16. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/aws_client.py +0 -0
  17. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/base_image.py +0 -0
  18. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/bucketpolicy.py +0 -0
  19. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/color_mappings/color_mapping_keras.csv +0 -0
  20. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/color_mappings/color_mapping_pytorch.csv +0 -0
  21. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/containerisation.py +0 -0
  22. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/containerization.py +0 -0
  23. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/containerization_templates/Dockerfile.txt +0 -0
  24. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/containerization_templates/Dockerfile_PySpark.txt +0 -0
  25. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/containerization_templates/buildspec.txt +0 -0
  26. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/containerization_templates/lambda_function.txt +0 -0
  27. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/custom_approach/__init__.py +0 -0
  28. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/custom_approach/lambda_function.py +0 -0
  29. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/custom_eval_metrics.py +0 -0
  30. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/__init__.py +0 -0
  31. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/data_sharing_templates/Dockerfile.txt +0 -0
  32. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/data_sharing_templates/__init__.py +0 -0
  33. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/data_sharing_templates/buildspec.txt +0 -0
  34. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/data_sharing_templates/codebuild_policies.txt +0 -0
  35. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/data_sharing_templates/codebuild_trust_relationship.txt +0 -0
  36. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/share_data.py +0 -0
  37. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/data_sharing/utils.py +0 -0
  38. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/deploy_custom_lambda.py +0 -0
  39. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/Makefile +0 -0
  40. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/__init__.py +0 -0
  41. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/_version.py +0 -0
  42. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/breadcrumbs.html +0 -0
  43. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/layout.html +0 -0
  44. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/search.html +0 -0
  45. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/searchbox.html +0 -0
  46. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/css/custom.css +0 -0
  47. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/css/custom.css.map +0 -0
  48. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.css +0 -0
  49. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.css.map +0 -0
  50. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.min.css +0 -0
  51. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/css/theme.min.css.map +0 -0
  52. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.eot +0 -0
  53. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.svg +0 -0
  54. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.ttf +0 -0
  55. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.woff +0 -0
  56. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/font/fontello.woff2 +0 -0
  57. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/static/js/theme.js +0 -0
  58. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/karma_sphinx_theme/theme.conf +0 -0
  59. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/make.bat +0 -0
  60. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/requirements.txt +0 -0
  61. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/about.rst +0 -0
  62. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/advanced_features.rst +0 -0
  63. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/competition.rst +0 -0
  64. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/conf.py +0 -0
  65. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/create_credentials.rst +0 -0
  66. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/example_notebooks.rst +0 -0
  67. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/functions.rst +0 -0
  68. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/gettingstarted.rst +0 -0
  69. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/creds1.png +0 -0
  70. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/creds2.png +0 -0
  71. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/creds3.png +0 -0
  72. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/creds4.png +0 -0
  73. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/creds5.png +0 -0
  74. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/creds_file_example.png +0 -0
  75. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/images/predict_tab.png +0 -0
  76. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/index.rst +0 -0
  77. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/documentation/source/modelplayground.rst +0 -0
  78. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/exceptions.py +0 -0
  79. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/generatemodelapi.py +0 -0
  80. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/iam/codebuild_policy.txt +0 -0
  81. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/iam/codebuild_trust_relationship.txt +0 -0
  82. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/iam/lambda_policy.txt +0 -0
  83. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/iam/lambda_trust_relationship.txt +0 -0
  84. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/__init__.py +0 -0
  85. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/api_json.txt +0 -0
  86. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/auth/policy.txt +0 -0
  87. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/auth/role.txt +0 -0
  88. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/eval/policy.txt +0 -0
  89. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/eval/role.txt +0 -0
  90. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/function/policy.txt +0 -0
  91. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/function/role.txt +0 -0
  92. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/integration_response.txt +0 -0
  93. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/lambda_policy_1.txt +0 -0
  94. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/lambda_policy_2.txt +0 -0
  95. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/lambda_role_1.txt +0 -0
  96. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/json_templates/lambda_role_2.txt +0 -0
  97. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/leaderboard.py +0 -0
  98. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/1.txt +0 -0
  99. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/1B.txt +0 -0
  100. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/2.txt +0 -0
  101. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/3.txt +0 -0
  102. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/4.txt +0 -0
  103. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/5.txt +0 -0
  104. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/6.txt +0 -0
  105. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/7.txt +0 -0
  106. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/8.txt +0 -0
  107. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/__init__.py +0 -0
  108. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/authorization.txt +0 -0
  109. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/eval_classification.txt +0 -0
  110. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/eval_lambda.txt +0 -0
  111. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/eval_regression.txt +0 -0
  112. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/lambda_function.txt +0 -0
  113. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/main/nst.txt +0 -0
  114. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/model.py +0 -0
  115. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/modeluser.py +0 -0
  116. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/placeholders/model.onnx +0 -0
  117. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/placeholders/preprocessor.zip +0 -0
  118. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/playground.py +0 -0
  119. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/postprocessormodules.py +0 -0
  120. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/preprocessormodules.py +0 -0
  121. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/1.txt +0 -0
  122. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/1B.txt +0 -0
  123. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/2.txt +0 -0
  124. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/3.txt +0 -0
  125. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/4.txt +0 -0
  126. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/5.txt +0 -0
  127. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/6.txt +0 -0
  128. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/7.txt +0 -0
  129. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/8.txt +0 -0
  130. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/__init__.py +0 -0
  131. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/authorization.txt +0 -0
  132. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/eval_classification.txt +0 -0
  133. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/eval_lambda.txt +0 -0
  134. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/eval_regression.txt +0 -0
  135. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/lambda_function.txt +0 -0
  136. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/pyspark/nst.txt +0 -0
  137. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/python/my_preprocessor.py +0 -0
  138. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/readme.md +0 -0
  139. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/reproducibility.py +0 -0
  140. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/Dockerfile.txt +0 -0
  141. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/Dockerfile_PySpark.txt +0 -0
  142. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/__init__.py +0 -0
  143. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/buildspec.txt +0 -0
  144. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/codebuild_policies.txt +0 -0
  145. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/codebuild_trust_relationship.txt +0 -0
  146. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/codepipeline_policies.txt +0 -0
  147. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/codepipeline_trust_relationship.txt +0 -0
  148. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/spark-class.txt +0 -0
  149. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/sam/template.txt +0 -0
  150. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/tools.py +0 -0
  151. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare/utils.py +0 -0
  152. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare.egg-info/SOURCES.txt +0 -0
  153. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare.egg-info/dependency_links.txt +0 -0
  154. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/aimodelshare.egg-info/top_level.txt +0 -0
  155. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/setup.cfg +0 -0
  156. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/tests/__init__.py +0 -0
  157. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/tests/test_aimsonnx.py +0 -0
  158. {aimodelshare-0.1.27 → aimodelshare-0.1.29}/tests/test_playground.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: aimodelshare
3
- Version: 0.1.27
3
+ Version: 0.1.29
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
@@ -11,33 +11,43 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.7
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: boto3==1.26.69
15
- Requires-Dist: botocore==1.29.82
16
- Requires-Dist: scikit-learn==1.2.2
17
- Requires-Dist: onnx==1.13.1
18
- Requires-Dist: onnxconverter-common>=1.7.0
14
+ Requires-Dist: boto3==1.34.69
15
+ Requires-Dist: botocore==1.34.69
16
+ Requires-Dist: scikit-learn==1.6.0
17
+ Requires-Dist: onnx==1.14.1
18
+ Requires-Dist: onnxconverter-common==1.14.0
19
19
  Requires-Dist: regex
20
- Requires-Dist: keras2onnx>=1.7.0
21
- Requires-Dist: tensorflow>=2.12
22
- Requires-Dist: tf2onnx
23
- Requires-Dist: skl2onnx>=1.14.0
24
- Requires-Dist: onnxruntime>=1.7.0
25
- Requires-Dist: torch>=1.8.1
26
- Requires-Dist: pydot==1.3.0
27
- Requires-Dist: importlib-resources==5.10.0
28
- Requires-Dist: onnxmltools>=1.6.1
29
- Requires-Dist: Pympler==0.9
30
- Requires-Dist: docker==5.0.0
20
+ Requires-Dist: keras2onnx==1.7.0
21
+ Requires-Dist: tensorflow==2.18.0
22
+ Requires-Dist: tf2onnx==1.16.1
23
+ Requires-Dist: skl2onnx==1.18.0
24
+ Requires-Dist: onnxruntime==1.17.1
25
+ Requires-Dist: torch==2.6.0
26
+ Requires-Dist: pydot==1.4.2
27
+ Requires-Dist: importlib-resources==6.1.1
28
+ Requires-Dist: onnxmltools==1.11.0
29
+ Requires-Dist: Pympler==1.0.1
30
+ Requires-Dist: docker==6.1.3
31
31
  Requires-Dist: wget==3.2
32
- Requires-Dist: PyJWT>=2.4.0
33
- Requires-Dist: seaborn>=0.11.2
32
+ Requires-Dist: PyJWT==2.8.0
33
+ Requires-Dist: seaborn==0.13.2
34
34
  Requires-Dist: astunparse==1.6.3
35
- Requires-Dist: shortuuid>=1.0.8
36
- Requires-Dist: psutil>=5.9.1
37
- Requires-Dist: pathlib>=1.0.1
38
- Requires-Dist: protobuf>=3.20.1
39
- Requires-Dist: dill
40
- Requires-Dist: scikeras
35
+ Requires-Dist: shortuuid==1.0.11
36
+ Requires-Dist: psutil==5.9.5
37
+ Requires-Dist: pathlib
38
+ Requires-Dist: protobuf==3.20.3
39
+ Requires-Dist: dill==0.3.7
40
+ Requires-Dist: scikeras==0.11.0
41
+ Dynamic: author
42
+ Dynamic: author-email
43
+ Dynamic: classifier
44
+ Dynamic: description
45
+ Dynamic: description-content-type
46
+ Dynamic: home-page
47
+ Dynamic: license-file
48
+ Dynamic: requires-dist
49
+ Dynamic: requires-python
50
+ Dynamic: summary
41
51
 
42
52
 
43
53
  # aimodelshare
@@ -76,87 +76,111 @@ 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
183
 
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
- config = resp.json()['config']['digest']
93
- config_resp = requests.get('https://{}/v2/{}/blobs/{}'.format(registry, repository, config), headers=auth_head, verify=False)
94
-
95
- tmp_img_dir = tempfile.gettempdir() + '/' + 'tmp_{}_{}'.format(image, tag)
96
- os.mkdir(tmp_img_dir)
97
-
98
- file = open('{}/{}.json'.format(tmp_img_dir, config[7:]), 'wb')
99
- file.write(config_resp.content)
100
- file.close()
101
-
102
- content = [{
103
- 'Config': config[7:] + '.json',
104
- 'RepoTags': [],
105
- 'Layers': []
106
- }]
107
- content[0]['RepoTags'].append(image_uri)
108
-
109
- layer_count=0
110
- layers = resp.json()['layers'][6:]
111
-
112
- for layer in layers:
113
-
114
- layer_count += 1
115
-
116
- auth_head = get_auth_head(auth_url, registry, repository) # done to keep from expiring
117
- blobs_resp = requests.get('https://{}/v2/{}/blobs/{}'.format(registry, repository, layer['digest']), headers=auth_head, stream=True, verify=False)
118
-
119
- layer_id, layer_dir = download_layer(layer, layer_count, tmp_img_dir, blobs_resp)
120
- content[0]['Layers'].append(layer_id + '/layer.tar')
121
-
122
- # Creating json file
123
- file = open(layer_dir + '/json', 'w')
124
-
125
- # last layer = config manifest - history - rootfs
126
- if layers[-1]['digest'] == layer['digest']:
127
- json_obj = json.loads(config_resp.content)
128
- del json_obj['history']
129
- del json_obj['rootfs']
130
- else: # other layers json are empty
131
- json_obj = json.loads('{}')
132
-
133
- json_obj['id'] = layer_id
134
- file.write(json.dumps(json_obj))
135
- file.close()
136
-
137
- file = open(tmp_img_dir + '/manifest.json', 'w')
138
- file.write(json.dumps(content))
139
- file.close()
140
-
141
- content = {
142
- '/'.join(image_uri_parts[:-1]) + '/' + image : { tag : layer_id }
143
- }
144
-
145
- file = open(tmp_img_dir + '/repositories', 'w')
146
- file.write(json.dumps(content))
147
- file.close()
148
-
149
- # Create image tar and clean tmp folder
150
- docker_tar = tempfile.gettempdir() + '/' + '_'.join([repository.replace('/', '_'), tag]) + '.tar'
151
- sys.stdout.flush()
152
-
153
- tar = tarfile.open(docker_tar, "w")
154
- tar.add(tmp_img_dir, arcname=os.path.sep)
155
- tar.close()
156
-
157
- shutil.rmtree(tmp_img_dir, onerror=redo_with_write)
158
-
159
- return docker_tar
160
184
 
161
185
  def extract_data_from_image(image_name, file_name, location):
162
186
  tar = tarfile.open(image_name, 'r')
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: aimodelshare
3
- Version: 0.1.27
3
+ Version: 0.1.29
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
@@ -11,33 +11,43 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.7
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: boto3==1.26.69
15
- Requires-Dist: botocore==1.29.82
16
- Requires-Dist: scikit-learn==1.2.2
17
- Requires-Dist: onnx==1.13.1
18
- Requires-Dist: onnxconverter-common>=1.7.0
14
+ Requires-Dist: boto3==1.34.69
15
+ Requires-Dist: botocore==1.34.69
16
+ Requires-Dist: scikit-learn==1.6.0
17
+ Requires-Dist: onnx==1.14.1
18
+ Requires-Dist: onnxconverter-common==1.14.0
19
19
  Requires-Dist: regex
20
- Requires-Dist: keras2onnx>=1.7.0
21
- Requires-Dist: tensorflow>=2.12
22
- Requires-Dist: tf2onnx
23
- Requires-Dist: skl2onnx>=1.14.0
24
- Requires-Dist: onnxruntime>=1.7.0
25
- Requires-Dist: torch>=1.8.1
26
- Requires-Dist: pydot==1.3.0
27
- Requires-Dist: importlib-resources==5.10.0
28
- Requires-Dist: onnxmltools>=1.6.1
29
- Requires-Dist: Pympler==0.9
30
- Requires-Dist: docker==5.0.0
20
+ Requires-Dist: keras2onnx==1.7.0
21
+ Requires-Dist: tensorflow==2.18.0
22
+ Requires-Dist: tf2onnx==1.16.1
23
+ Requires-Dist: skl2onnx==1.18.0
24
+ Requires-Dist: onnxruntime==1.17.1
25
+ Requires-Dist: torch==2.6.0
26
+ Requires-Dist: pydot==1.4.2
27
+ Requires-Dist: importlib-resources==6.1.1
28
+ Requires-Dist: onnxmltools==1.11.0
29
+ Requires-Dist: Pympler==1.0.1
30
+ Requires-Dist: docker==6.1.3
31
31
  Requires-Dist: wget==3.2
32
- Requires-Dist: PyJWT>=2.4.0
33
- Requires-Dist: seaborn>=0.11.2
32
+ Requires-Dist: PyJWT==2.8.0
33
+ Requires-Dist: seaborn==0.13.2
34
34
  Requires-Dist: astunparse==1.6.3
35
- Requires-Dist: shortuuid>=1.0.8
36
- Requires-Dist: psutil>=5.9.1
37
- Requires-Dist: pathlib>=1.0.1
38
- Requires-Dist: protobuf>=3.20.1
39
- Requires-Dist: dill
40
- Requires-Dist: scikeras
35
+ Requires-Dist: shortuuid==1.0.11
36
+ Requires-Dist: psutil==5.9.5
37
+ Requires-Dist: pathlib
38
+ Requires-Dist: protobuf==3.20.3
39
+ Requires-Dist: dill==0.3.7
40
+ Requires-Dist: scikeras==0.11.0
41
+ Dynamic: author
42
+ Dynamic: author-email
43
+ Dynamic: classifier
44
+ Dynamic: description
45
+ Dynamic: description-content-type
46
+ Dynamic: home-page
47
+ Dynamic: license-file
48
+ Dynamic: requires-dist
49
+ Dynamic: requires-python
50
+ Dynamic: summary
41
51
 
42
52
 
43
53
  # aimodelshare
@@ -0,0 +1,27 @@
1
+ boto3==1.34.69
2
+ botocore==1.34.69
3
+ scikit-learn==1.6.0
4
+ onnx==1.14.1
5
+ onnxconverter-common==1.14.0
6
+ regex
7
+ keras2onnx==1.7.0
8
+ tensorflow==2.18.0
9
+ tf2onnx==1.16.1
10
+ skl2onnx==1.18.0
11
+ onnxruntime==1.17.1
12
+ torch==2.6.0
13
+ pydot==1.4.2
14
+ importlib-resources==6.1.1
15
+ onnxmltools==1.11.0
16
+ Pympler==1.0.1
17
+ docker==6.1.3
18
+ wget==3.2
19
+ PyJWT==2.8.0
20
+ seaborn==0.13.2
21
+ astunparse==1.6.3
22
+ shortuuid==1.0.11
23
+ psutil==5.9.5
24
+ pathlib
25
+ protobuf==3.20.3
26
+ dill==0.3.7
27
+ scikeras==0.11.0
@@ -0,0 +1,55 @@
1
+
2
+ import setuptools
3
+
4
+ with open("README.md", "r") as fh:
5
+ long_description = fh.read()
6
+
7
+ setuptools.setup(
8
+ name='aimodelshare', #TODO:update
9
+ version='0.1.29', #TODO:update
10
+ author="Michael Parrott",
11
+ author_email="mikedparrott@modelshare.org",
12
+ description="Deploy locally saved machine learning models to a live rest API and web-dashboard. Share it with the world via modelshare.org",
13
+ long_description=long_description,
14
+ long_description_content_type="text/markdown",
15
+ url="https://www.modelshare.org",
16
+ packages=setuptools.find_packages(),
17
+ install_requires=[
18
+ "boto3==1.34.69",
19
+ "botocore==1.34.69",
20
+ "scikit-learn==1.6.0",
21
+ "onnx==1.14.1",
22
+ "onnxconverter-common==1.14.0",
23
+ "regex",
24
+ "keras2onnx==1.7.0",
25
+ "tensorflow==2.18.0",
26
+ "tf2onnx==1.16.1",
27
+ "skl2onnx==1.18.0",
28
+ "onnxruntime==1.17.1",
29
+ "torch==2.6.0",
30
+ "pydot==1.4.2",
31
+ "importlib-resources==6.1.1",
32
+ "onnxmltools==1.11.0",
33
+ "Pympler==1.0.1",
34
+ "docker==6.1.3",
35
+ "wget==3.2",
36
+ "PyJWT==2.8.0",
37
+ "seaborn==0.13.2",
38
+ "astunparse==1.6.3",
39
+ "shortuuid==1.0.11",
40
+ "psutil==5.9.5",
41
+ "pathlib", # standard in Python 3.11
42
+ "protobuf==3.20.3",
43
+ "dill==0.3.7",
44
+ "scikeras==0.11.0"]
45
+
46
+
47
+ ,
48
+ classifiers=[
49
+ "Programming Language :: Python :: 3",
50
+ "License :: Other/Proprietary License",
51
+ "Operating System :: OS Independent",
52
+ ],
53
+ python_requires='>=3.7',
54
+ include_package_data=True)
55
+
@@ -1,27 +0,0 @@
1
- boto3==1.26.69
2
- botocore==1.29.82
3
- scikit-learn==1.2.2
4
- onnx==1.13.1
5
- onnxconverter-common>=1.7.0
6
- regex
7
- keras2onnx>=1.7.0
8
- tensorflow>=2.12
9
- tf2onnx
10
- skl2onnx>=1.14.0
11
- onnxruntime>=1.7.0
12
- torch>=1.8.1
13
- pydot==1.3.0
14
- importlib-resources==5.10.0
15
- onnxmltools>=1.6.1
16
- Pympler==0.9
17
- docker==5.0.0
18
- wget==3.2
19
- PyJWT>=2.4.0
20
- seaborn>=0.11.2
21
- astunparse==1.6.3
22
- shortuuid>=1.0.8
23
- psutil>=5.9.1
24
- pathlib>=1.0.1
25
- protobuf>=3.20.1
26
- dill
27
- scikeras
@@ -1,28 +0,0 @@
1
-
2
- import setuptools
3
-
4
- with open("README.md", "r") as fh:
5
- long_description = fh.read()
6
-
7
- setuptools.setup(
8
- name='aimodelshare', #TODO:update
9
- version='0.1.27', #TODO:update
10
- author="Michael Parrott",
11
- author_email="mikedparrott@modelshare.org",
12
- description="Deploy locally saved machine learning models to a live rest API and web-dashboard. Share it with the world via modelshare.org",
13
- long_description=long_description,
14
- long_description_content_type="text/markdown",
15
- url="https://www.modelshare.org",
16
- packages=setuptools.find_packages(),
17
- install_requires=["boto3==1.26.69", "botocore==1.29.82","scikit-learn==1.2.2","onnx==1.13.1","onnxconverter-common>=1.7.0", "regex",
18
- "keras2onnx>=1.7.0","tensorflow>=2.12","tf2onnx","skl2onnx>=1.14.0","onnxruntime>=1.7.0","torch>=1.8.1","pydot==1.3.0","importlib-resources==5.10.0",
19
- "onnxmltools>=1.6.1","Pympler==0.9","docker==5.0.0","wget==3.2","PyJWT>=2.4.0","seaborn>=0.11.2","astunparse==1.6.3","shortuuid>=1.0.8","psutil>=5.9.1","pathlib>=1.0.1",
20
- "protobuf>=3.20.1", "dill","scikeras"],
21
- classifiers=[
22
- "Programming Language :: Python :: 3",
23
- "License :: Other/Proprietary License",
24
- "Operating System :: OS Independent",
25
- ],
26
- python_requires='>=3.7',
27
- include_package_data=True)
28
-
File without changes
File without changes
File without changes
File without changes