ml-management 0.6.3rc16__tar.gz → 0.6.3rc17__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. ml_management-0.6.3rc17/ML_management/__init__.py +1 -0
  2. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/graphql/schema.py +69 -2
  3. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/batcher.py +8 -5
  4. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/log_api.py +12 -4
  5. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/job.py +1 -6
  6. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/PKG-INFO +1 -1
  7. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/pyproject.toml +1 -1
  8. ml_management-0.6.3rc16/ML_management/__init__.py +0 -1
  9. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/base_exceptions.py +0 -0
  10. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/__init__.py +0 -0
  11. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/collector_pattern.py +0 -0
  12. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/collector_pattern_to_methods_map.py +0 -0
  13. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/collectors.py +0 -0
  14. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/dummy/__init__.py +0 -0
  15. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/dummy/dummy_collector.py +0 -0
  16. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/s3/__init__.py +0 -0
  17. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/s3/s3collector.py +0 -0
  18. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/topic_markers/__init__.py +0 -0
  19. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/topic_markers/api_schema.py +0 -0
  20. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/collectors/topic_markers/topic_markers_collector.py +0 -0
  21. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/__init__.py +0 -0
  22. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/base_splits_dataset_loader.py +0 -0
  23. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/dataset_loader_pattern.py +0 -0
  24. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/dataset_loader_pattern_to_methods_map.py +0 -0
  25. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/poisoned_images_dataset_loader.py +0 -0
  26. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/templates/__init__.py +0 -0
  27. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/templates/dummy_dataset_loader/__init__.py +0 -0
  28. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/templates/dummy_dataset_loader/conda.yaml +0 -0
  29. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/templates/dummy_dataset_loader/dummy_dataset.py +0 -0
  30. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/dataset_loader/templates/upload.py +0 -0
  31. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/__init__.py +0 -0
  32. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/base_executor.py +0 -0
  33. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/executor_pattern.py +0 -0
  34. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/executor_pattern_to_methods_map.py +0 -0
  35. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/no_model_executor_pattern.py +0 -0
  36. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/patterns.py +0 -0
  37. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/__init__.py +0 -0
  38. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/eval/__init__.py +0 -0
  39. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/eval/conda.yaml +0 -0
  40. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/eval/eval_executor.py +0 -0
  41. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/finetune/__init__.py +0 -0
  42. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/finetune/conda.yaml +0 -0
  43. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/finetune/finetune_executor.py +0 -0
  44. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/train/__init__.py +0 -0
  45. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/train/conda.yaml +0 -0
  46. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/train/train_executor.py +0 -0
  47. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/templates/upload.py +0 -0
  48. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/executor/upload_model_mode.py +0 -0
  49. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/graphql/__init__.py +0 -0
  50. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/graphql/send_graphql_request.py +0 -0
  51. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/__init__.py +0 -0
  52. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/active_job.py +0 -0
  53. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/backend_api.py +0 -0
  54. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/jsonschema_exceptions.py +0 -0
  55. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/jsonschema_inference.py +0 -0
  56. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/load_api.py +0 -0
  57. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/model_type.py +0 -0
  58. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/module_finder.py +0 -0
  59. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/server_mlmanager_exceptions.py +0 -0
  60. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/utils.py +0 -0
  61. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/mlmanagement/visibility_options.py +0 -0
  62. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/__init__.py +0 -0
  63. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/model_type_to_methods_map.py +0 -0
  64. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/__init__.py +0 -0
  65. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/evaluatable_model.py +0 -0
  66. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/gradient_model.py +0 -0
  67. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/model_pattern.py +0 -0
  68. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/model_with_losses.py +0 -0
  69. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/model_with_metrics.py +0 -0
  70. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/preprocessor.py +0 -0
  71. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/retrainable_model.py +0 -0
  72. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/target_layer.py +0 -0
  73. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/torch_model.py +0 -0
  74. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/trainable_model.py +0 -0
  75. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/model/patterns/transformer.py +0 -0
  76. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/registry/__init__.py +0 -0
  77. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/registry/exceptions.py +0 -0
  78. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/s3/__init__.py +0 -0
  79. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/s3/manager.py +0 -0
  80. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/s3/utils.py +0 -0
  81. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/__init__.py +0 -0
  82. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/dataset_loader.py +0 -0
  83. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/executor.py +0 -0
  84. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/experiment.py +0 -0
  85. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/model.py +0 -0
  86. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/parameters.py +0 -0
  87. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/sdk/sdk.py +0 -0
  88. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/session.py +0 -0
  89. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/singleton_pattern.py +0 -0
  90. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/test_sdk/__init__.py +0 -0
  91. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/test_sdk/local_sdk_test.sh +0 -0
  92. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/test_sdk/mock_server.js +0 -0
  93. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/test_sdk/package.json +0 -0
  94. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/test_sdk/requirements.txt +0 -0
  95. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/test_sdk/test_sdk.py +0 -0
  96. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/tests/__init__.py +0 -0
  97. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/tests/requirements.txt +0 -0
  98. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/tests/run_all_tests.sh +0 -0
  99. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/tests/test_jsonschema_inference.py +0 -0
  100. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/uploader_data/__init__.py +0 -0
  101. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/uploader_data/s3_uploader.py +0 -0
  102. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/uploader_data/utils.py +0 -0
  103. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/ML_management/variables.py +0 -0
  104. {ml_management-0.6.3rc16 → ml_management-0.6.3rc17}/README.md +0 -0
@@ -0,0 +1 @@
1
+ __version__ = "0.6.3rc17"
@@ -215,11 +215,13 @@ class MethodParamsInput(sgqlc.types.Input):
215
215
 
216
216
  class MetricInput(sgqlc.types.Input):
217
217
  __schema__ = schema
218
- __field_names__ = ('key', 'step', 'value')
218
+ __field_names__ = ('key', 'step', 'timestamp', 'value')
219
219
  key = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name='key')
220
220
 
221
221
  step = sgqlc.types.Field(sgqlc.types.non_null(Int), graphql_name='step')
222
222
 
223
+ timestamp = sgqlc.types.Field(Long, graphql_name='timestamp')
224
+
223
225
  value = sgqlc.types.Field(sgqlc.types.non_null(Float), graphql_name='value')
224
226
 
225
227
 
@@ -1110,6 +1112,15 @@ class JobInfoResponse(sgqlc.types.Type):
1110
1112
 
1111
1113
 
1112
1114
 
1115
+ class JobMetric(sgqlc.types.Type):
1116
+ __schema__ = schema
1117
+ __field_names__ = ('job_name', 'metrics')
1118
+ job_name = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name='jobName')
1119
+
1120
+ metrics = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null('Metric'))), graphql_name='metrics')
1121
+
1122
+
1123
+
1113
1124
  class JobModelsSchema(sgqlc.types.Type):
1114
1125
  __schema__ = schema
1115
1126
  __field_names__ = ('list_role_model_method_schemas',)
@@ -1193,6 +1204,24 @@ class Metric(sgqlc.types.Type):
1193
1204
 
1194
1205
 
1195
1206
 
1207
+ class MetricToJobs(sgqlc.types.Type):
1208
+ __schema__ = schema
1209
+ __field_names__ = ('job_metrics', 'metric_name')
1210
+ job_metrics = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(JobMetric))), graphql_name='jobMetrics')
1211
+
1212
+ metric_name = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name='metricName')
1213
+
1214
+
1215
+
1216
+ class MetricToJson(sgqlc.types.Type):
1217
+ __schema__ = schema
1218
+ __field_names__ = ('job_metrics', 'metric_name')
1219
+ job_metrics = sgqlc.types.Field(sgqlc.types.non_null(JSON), graphql_name='jobMetrics')
1220
+
1221
+ metric_name = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name='metricName')
1222
+
1223
+
1224
+
1196
1225
  class ModelInfo(sgqlc.types.Type):
1197
1226
  __schema__ = schema
1198
1227
  __field_names__ = ('creation_timestamp', 'description', 'init_model_version', 'last_updated_timestamp', 'latest_model_version', 'list_model_version', 'name', 'owner', 'pagination_model_version', 'tags', 'visibility')
@@ -2093,7 +2122,7 @@ class Param(sgqlc.types.Type):
2093
2122
 
2094
2123
  class Query(sgqlc.types.Type):
2095
2124
  __schema__ = schema
2096
- __field_names__ = ('dataset_loader_from_name', 'dataset_loader_version_from_name_version', 'dataset_loader_version_from_obj_uuid', 'executor_from_name', 'executor_version_from_name_version', 'executor_version_from_obj_uuid', 'experiment_from_id', 'experiment_from_name', 'graph_node', 'is_inference_model_ready', 'job_from_name', 'list_artifacts_by_source_paths', 'list_build_job', 'list_dataset_loader', 'list_executor', 'list_experiment', 'list_graph_node', 'list_initial_executor_version', 'list_initial_model_version', 'list_job', 'list_model', 'list_subtree_graph_node', 'model_from_name', 'model_version_from_name_version', 'model_version_from_obj_uuid', 'pagination_dataset_loader', 'pagination_executor', 'pagination_experiment', 'pagination_initial_executor_version', 'pagination_initial_model_version', 'pagination_job', 'pagination_model', 'warning_delete_model_query')
2125
+ __field_names__ = ('dataset_loader_from_name', 'dataset_loader_version_from_name_version', 'dataset_loader_version_from_obj_uuid', 'executor_from_name', 'executor_version_from_name_version', 'executor_version_from_obj_uuid', 'experiment_from_id', 'experiment_from_name', 'graph_node', 'is_inference_model_ready', 'job_from_name', 'list_all_metric_names', 'list_artifacts_by_source_paths', 'list_build_job', 'list_dataset_loader', 'list_executor', 'list_experiment', 'list_graph_node', 'list_initial_executor_version', 'list_initial_model_version', 'list_job', 'list_latest_metric_jobs', 'list_latest_metric_jobs_json', 'list_metric_jobs', 'list_model', 'list_subtree_graph_node', 'model_from_name', 'model_version_from_name_version', 'model_version_from_obj_uuid', 'pagination_dataset_loader', 'pagination_executor', 'pagination_experiment', 'pagination_initial_executor_version', 'pagination_initial_model_version', 'pagination_job', 'pagination_model', 'warning_delete_model_query')
2097
2126
  dataset_loader_from_name = sgqlc.types.Field(sgqlc.types.non_null(DatasetLoaderInfo), graphql_name='datasetLoaderFromName', args=sgqlc.types.ArgDict((
2098
2127
  ('name', sgqlc.types.Arg(sgqlc.types.non_null(String), graphql_name='name', default=None)),
2099
2128
  ))
@@ -2193,6 +2222,15 @@ class Query(sgqlc.types.Type):
2193
2222
  * `name` (`String!`)None
2194
2223
  '''
2195
2224
 
2225
+ list_all_metric_names = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(String))), graphql_name='listAllMetricNames', args=sgqlc.types.ArgDict((
2226
+ ('job_names', sgqlc.types.Arg(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(String))), graphql_name='jobNames', default=None)),
2227
+ ))
2228
+ )
2229
+ '''Arguments:
2230
+
2231
+ * `job_names` (`[String!]!`)None
2232
+ '''
2233
+
2196
2234
  list_artifacts_by_source_paths = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(Artifacts))), graphql_name='listArtifactsBySourcePaths', args=sgqlc.types.ArgDict((
2197
2235
  ('source_paths', sgqlc.types.Arg(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(String))), graphql_name='sourcePaths', default=None)),
2198
2236
  ))
@@ -2239,6 +2277,35 @@ class Query(sgqlc.types.Type):
2239
2277
 
2240
2278
  list_job = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(ExecutionJob))), graphql_name='listJob')
2241
2279
 
2280
+ list_latest_metric_jobs = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(MetricToJobs))), graphql_name='listLatestMetricJobs', args=sgqlc.types.ArgDict((
2281
+ ('job_names', sgqlc.types.Arg(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(String))), graphql_name='jobNames', default=None)),
2282
+ ))
2283
+ )
2284
+ '''Arguments:
2285
+
2286
+ * `job_names` (`[String!]!`)None
2287
+ '''
2288
+
2289
+ list_latest_metric_jobs_json = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(MetricToJson))), graphql_name='listLatestMetricJobsJson', args=sgqlc.types.ArgDict((
2290
+ ('job_names', sgqlc.types.Arg(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(String))), graphql_name='jobNames', default=None)),
2291
+ ))
2292
+ )
2293
+ '''Arguments:
2294
+
2295
+ * `job_names` (`[String!]!`)None
2296
+ '''
2297
+
2298
+ list_metric_jobs = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(JobMetric))), graphql_name='listMetricJobs', args=sgqlc.types.ArgDict((
2299
+ ('job_names', sgqlc.types.Arg(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(String))), graphql_name='jobNames', default=None)),
2300
+ ('metric_name', sgqlc.types.Arg(sgqlc.types.non_null(String), graphql_name='metricName', default=None)),
2301
+ ))
2302
+ )
2303
+ '''Arguments:
2304
+
2305
+ * `job_names` (`[String!]!`)None
2306
+ * `metric_name` (`String!`)None
2307
+ '''
2308
+
2242
2309
  list_model = sgqlc.types.Field(sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(ModelInfo))), graphql_name='listModel', args=sgqlc.types.ArgDict((
2243
2310
  ('sorting', sgqlc.types.Arg(sgqlc.types.list_of(sgqlc.types.non_null(ObjectSortBySortingInput)), graphql_name='sorting', default=None)),
2244
2311
  ))
@@ -20,12 +20,12 @@ class Batcher(metaclass=Singleton):
20
20
  self.thread = None
21
21
  self.stop_event = Event()
22
22
 
23
- def log_metric(self, key: str, value: float, step: int):
24
- self.batch.append((key, value, step))
23
+ def log_metric(self, key: str, value: float, step: int, timestamp: int):
24
+ self.batch.append((key, value, step, timestamp))
25
25
  self._start_thread()
26
26
 
27
- def log_metrics(self, metrics: Dict[str, float], step: int):
28
- self.batch.extend((key, value, step) for key, value in metrics.items())
27
+ def log_metrics(self, metrics: Dict[str, float], step: int, timestamp: int):
28
+ self.batch.extend((key, value, step, timestamp) for key, value in metrics.items())
29
29
  self._start_thread()
30
30
 
31
31
  def _start_thread(self):
@@ -49,7 +49,10 @@ class Batcher(metaclass=Singleton):
49
49
  metrics_to_log = self.batch.copy()
50
50
  op = Operation(schema.Mutation)
51
51
  op.log_metrics(
52
- metrics=[MetricInput(key=key, value=value, step=step) for key, value, step in metrics_to_log],
52
+ metrics=[
53
+ MetricInput(key=key, value=value, step=step, timestamp=timestamp)
54
+ for key, value, step, timestamp in metrics_to_log
55
+ ],
53
56
  secret_uuid=variables.secret_uuid,
54
57
  )
55
58
  try:
@@ -5,6 +5,7 @@ import os
5
5
  import sys
6
6
  import tarfile
7
7
  import threading
8
+ import time
8
9
  import warnings
9
10
  from contextlib import _GeneratorContextManager
10
11
  from pathlib import Path
@@ -637,15 +638,18 @@ def log_metric(key: str, value: float, step: int = 0, no_wait=False):
637
638
  f"{key}: {value} is not log."
638
639
  )
639
640
  return
641
+ timestamp = int(time.time() * 10e6)
640
642
  if no_wait:
641
643
  op = Operation(schema.Mutation)
642
- op.log_metric(metric=MetricInput(key=key, value=value, step=step), secret_uuid=variables.secret_uuid)
644
+ op.log_metric(
645
+ metric=MetricInput(key=key, value=value, step=step, timestamp=timestamp), secret_uuid=variables.secret_uuid
646
+ )
643
647
  try:
644
648
  return send_graphql_request(op, json_response=False).log_metric
645
649
  except Exception as err:
646
650
  warnings.warn(str(err))
647
651
  else:
648
- Batcher().log_metric(key, value, step)
652
+ Batcher().log_metric(key, value, step, timestamp)
649
653
 
650
654
 
651
655
  def log_metrics(metrics: Dict[str, float], step: int = 0, no_wait=False):
@@ -689,10 +693,14 @@ def log_metrics(metrics: Dict[str, float], step: int = 0, no_wait=False):
689
693
  )
690
694
  continue
691
695
  metrics_to_log[key] = value
696
+ timestamp = int(time.time() * 10e6)
692
697
  if no_wait:
693
698
  op = Operation(schema.Mutation)
694
699
  op.log_metrics(
695
- metrics=[MetricInput(key=key, value=value, step=step) for key, value in metrics_to_log.items()],
700
+ metrics=[
701
+ MetricInput(key=key, value=value, step=step, timestamp=timestamp)
702
+ for key, value in metrics_to_log.items()
703
+ ],
696
704
  secret_uuid=variables.secret_uuid,
697
705
  )
698
706
  try:
@@ -700,7 +708,7 @@ def log_metrics(metrics: Dict[str, float], step: int = 0, no_wait=False):
700
708
  except Exception as err:
701
709
  warnings.warn(str(err))
702
710
  else:
703
- Batcher().log_metrics(metrics_to_log, step)
711
+ Batcher().log_metrics(metrics_to_log, step, timestamp)
704
712
 
705
713
 
706
714
  def _log_param(key: str, value: str):
@@ -5,7 +5,6 @@ from enum import Enum
5
5
  from typing import Any, Dict, List, Optional, Tuple, Union
6
6
  from urllib.parse import quote
7
7
 
8
- import numpy as np
9
8
  import pandas as pd
10
9
  import websocket
11
10
  from matplotlib import pyplot as plt
@@ -162,11 +161,7 @@ def metric_history(
162
161
  raise ValueError("x_axis value must be step or time")
163
162
  if x_axis == "step":
164
163
  x_values = [metric.step for metric in metrics]
165
- if np.nonzero(x_values)[0].size == 0:
166
- metrics = sorted(metrics, key=lambda x: x.timestamp)
167
- x_values = [step[0] for step in enumerate(metrics)]
168
- else:
169
- metrics = sorted(metrics, key=lambda x: x.step)
164
+ metrics = sorted(metrics, key=lambda x: x.step)
170
165
  elif x_axis == "time":
171
166
  metrics = sorted(metrics, key=lambda x: x.timestamp)
172
167
  start_timestamp = metrics[0].timestamp
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ml-management
3
- Version: 0.6.3rc16
3
+ Version: 0.6.3rc17
4
4
  Summary: Python implementation of model pattern, dataset
5
5
  Author-Email: ISPRAS MODIS <modis@ispras.ru>
6
6
  Maintainer: Maxim Ryndin
@@ -25,7 +25,7 @@ readme = "README.md"
25
25
  maintainers = [
26
26
  { name = "Maxim Ryndin" },
27
27
  ]
28
- version = "0.6.3rc16"
28
+ version = "0.6.3rc17"
29
29
 
30
30
  [build-system]
31
31
  requires = [
@@ -1 +0,0 @@
1
- __version__ = "0.6.3rc16"