azureml-registry-tools 0.1.0a23__tar.gz → 0.1.0a25__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.
- {azureml_registry_tools-0.1.0a23/azureml_registry_tools.egg-info → azureml_registry_tools-0.1.0a25}/PKG-INFO +1 -1
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/model.schema.json +480 -4
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/asset_management.py +79 -9
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25/azureml_registry_tools.egg-info}/PKG-INFO +1 -1
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/setup.py +1 -1
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/LICENSE.txt +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/MANIFEST.in +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_cli/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_cli/registry_syndication_cli.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_cli/repo2registry_cli.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_rest_client/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_rest_client/arm_client.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_rest_client/base_rest_client.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_rest_client/registry_management_client.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/_rest_client/registry_model_client.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/asset.yaml.template +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/description.md.template +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/evaluation.md.template +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/model-variant.schema.json +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/model.yaml.template +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/notes.md.template +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/validate_model_schema.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/data/validate_model_variant_schema.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/create_asset_template.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/create_manifest.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/create_model_spec.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/model_management.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/mgmt/syndication_manifest.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/tools/__init__.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/tools/config.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/tools/create_or_update_assets.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/tools/registry_utils.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/tools/repo2registry_config.py +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml_registry_tools.egg-info/SOURCES.txt +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml_registry_tools.egg-info/dependency_links.txt +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml_registry_tools.egg-info/entry_points.txt +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml_registry_tools.egg-info/requires.txt +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml_registry_tools.egg-info/top_level.txt +0 -0
- {azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/setup.cfg +0 -0
|
@@ -275,12 +275,12 @@
|
|
|
275
275
|
"keywords": {
|
|
276
276
|
"description": "List of key words as a comma-separated string. Max 3 keywords",
|
|
277
277
|
"type": "string",
|
|
278
|
-
"pattern": "^(Agents|Audio|Coding|Conversation|Instruction|Large context|Low latency|Multilingual|Multimodal|Multipurpose|RAG|Reasoning|Summarization|Translation|Understanding|Vision|Atomistic generation
|
|
278
|
+
"pattern": "^(Agents|Audio|Coding|Conversation|Instruction|Large context|Low latency|Multilingual|Multimodal|Multipurpose|RAG|Reasoning|Summarization|Translation|Understanding|Vision|Atomistic generation)(?:\\s*,\\s*(Agents|Audio|Coding|Conversation|Instruction|Large context|Low latency|Multilingual|Multimodal|Multipurpose|RAG|Reasoning|Summarization|Translation|Understanding|Vision|Atomistic generation)){0,2}$"
|
|
279
279
|
},
|
|
280
280
|
"languages": {
|
|
281
281
|
"description": "Comma-separated list of supported languages (ISO 639-1 language codes)",
|
|
282
282
|
"type": "string",
|
|
283
|
-
"pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn
|
|
283
|
+
"pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|pt-br|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zh-cn|zu)(?:\\s*,\\s*(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|pt-br|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zh-cn|zu))*$"
|
|
284
284
|
},
|
|
285
285
|
"license": {
|
|
286
286
|
"description": "License type",
|
|
@@ -385,7 +385,7 @@
|
|
|
385
385
|
"task": {
|
|
386
386
|
"description": "Tasks supported by the model as a comma-separated string",
|
|
387
387
|
"type": "string",
|
|
388
|
-
"pattern": "^(audio-analysis|audio-classification|audio-generation|automatic-speech-recognition|chat-completion|completions|content-filters|content-safety|conversational-ai|custom-extraction|data-generation|document-analysis|document-ingestion|document-translation|embeddings|face-detection|fill-mask|forecasting|image-analysis|image-classification|image-feature-extraction|image-text-to-text|image-to-image|image-to-text|intelligent-content-processing|intelligent-document-processing|text-pii-extraction|conversation-pii-extraction|document-pii-extraction|detect-language|optical-character-recognition|protein-sequence-generation|protein-structure-prediction|responses|responsible-ai|retrosynthesis-prediction|summarization|text-analysis|text-analytics|text-classification|text-generation|text-to-image|text-to-speech|time-series-forecasting|translation|speech-to-text|speech-translation|video-analysis|video-generation|video-text-to-text|visual-question-answering|zero-shot-classification|zero-shot-image-classification|materials-design|atomistic-modelling|image-to-3D|text-to-3D|3D-generation|task-completion-verification|action-affordance|next-plausible-action-prediction|
|
|
388
|
+
"pattern": "^(audio-analysis|audio-classification|audio-generation|automatic-speech-recognition|chat-completion|completions|content-filters|content-safety|conversational-ai|custom-extraction|data-generation|document-analysis|document-ingestion|document-translation|embeddings|face-detection|fill-mask|forecasting|image-analysis|image-classification|image-feature-extraction|image-text-to-text|image-to-image|image-to-text|intelligent-content-processing|intelligent-document-processing|text-pii-extraction|conversation-pii-extraction|document-pii-extraction|detect-language|optical-character-recognition|protein-sequence-generation|protein-structure-prediction|responses|responsible-ai|retrosynthesis-prediction|summarization|text-analysis|text-analytics|text-classification|text-generation|text-to-image|text-to-speech|time-series-forecasting|translation|speech-to-text|speech-translation|video-analysis|video-generation|video-text-to-text|visual-question-answering|zero-shot-classification|zero-shot-image-classification|materials-design|atomistic-modelling|image-to-3D|text-to-3D|3D-generation|task-completion-verification|action-affordance|next-plausible-action-prediction|Structure-Prediction|Genomics)(?:\\s*,\\s*(audio-analysis|audio-classification|audio-generation|automatic-speech-recognition|chat-completion|completions|content-filters|content-safety|conversational-ai|custom-extraction|data-generation|document-analysis|document-ingestion|document-translation|embeddings|face-detection|fill-mask|forecasting|image-analysis|image-classification|image-feature-extraction|image-text-to-text|image-to-image|image-to-text|intelligent-content-processing|intelligent-document-processing|optical-character-recognition|protein-sequence-generation|protein-structure-prediction|responses|responsible-ai|summarization|text-analysis|text-analytics|text-classification|text-generation|text-pii-extraction|conversation-pii-extraction|document-pii-extraction|detect-language|text-to-image|text-to-speech|time-series-forecasting|translation|speech-to-text|speech-translation|video-analysis|video-generation|video-text-to-text|visual-question-answering|zero-shot-classification|zero-shot-image-classification|materials-design|atomistic-modelling|image-to-3D|text-to-3D|3D-generation|task-completion-verification|action-affordance|next-plausible-action-prediction|Structure-Prediction|Genomics))*$"
|
|
389
389
|
},
|
|
390
390
|
"textContextWindow": {
|
|
391
391
|
"description": "Context window size",
|
|
@@ -452,12 +452,488 @@
|
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
},
|
|
455
|
+
"system_metadata": {
|
|
456
|
+
"type": "object",
|
|
457
|
+
"description": "Model system metadata",
|
|
458
|
+
"additionalProperties": false,
|
|
459
|
+
"properties": {
|
|
460
|
+
"invisibleUntil": {
|
|
461
|
+
"type": "string",
|
|
462
|
+
"format": "date-time",
|
|
463
|
+
"description": "Date until which the model is invisible"
|
|
464
|
+
},
|
|
465
|
+
"playgroundRateLimitTier": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"description": "Rate limit tier for playground",
|
|
468
|
+
"enum": [
|
|
469
|
+
"high",
|
|
470
|
+
"low",
|
|
471
|
+
"custom",
|
|
472
|
+
"embeddings"
|
|
473
|
+
]
|
|
474
|
+
},
|
|
475
|
+
"publisher": {
|
|
476
|
+
"type": "string",
|
|
477
|
+
"description": "Model provider/author name"
|
|
478
|
+
},
|
|
479
|
+
"license": {
|
|
480
|
+
"type": "string",
|
|
481
|
+
"description": "License type",
|
|
482
|
+
"enum": [
|
|
483
|
+
"custom",
|
|
484
|
+
"other",
|
|
485
|
+
"llama2",
|
|
486
|
+
"apache-2.0",
|
|
487
|
+
"Llama 3.1 Community Licensed",
|
|
488
|
+
"MIT"
|
|
489
|
+
]
|
|
490
|
+
},
|
|
491
|
+
"licenseDescription": {
|
|
492
|
+
"type": "string",
|
|
493
|
+
"description": "Description of the license terms",
|
|
494
|
+
"format": "long-string"
|
|
495
|
+
},
|
|
496
|
+
"summary": {
|
|
497
|
+
"type": "string",
|
|
498
|
+
"description": "Brief description of the model",
|
|
499
|
+
"format": "long-string"
|
|
500
|
+
},
|
|
501
|
+
"displayName": {
|
|
502
|
+
"type": "string",
|
|
503
|
+
"description": "Display name for marketing materials"
|
|
504
|
+
},
|
|
505
|
+
"keywords": {
|
|
506
|
+
"type": "array",
|
|
507
|
+
"items": {
|
|
508
|
+
"$ref": "#/definitions/keywordsEnum"
|
|
509
|
+
},
|
|
510
|
+
"description": "List of key words. Max 3 keywords"
|
|
511
|
+
},
|
|
512
|
+
"languages": {
|
|
513
|
+
"type": "array",
|
|
514
|
+
"items": {
|
|
515
|
+
"type": "string",
|
|
516
|
+
"pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|pt-br|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zh-cn|zu)$"
|
|
517
|
+
},
|
|
518
|
+
"description": "Supported languages (ISO 639-1 language codes)"
|
|
519
|
+
},
|
|
520
|
+
"textContextWindow": {
|
|
521
|
+
"type": "integer",
|
|
522
|
+
"minimum": 1,
|
|
523
|
+
"description": "Context window size"
|
|
524
|
+
},
|
|
525
|
+
"maxOutputTokens": {
|
|
526
|
+
"type": "integer",
|
|
527
|
+
"minimum": 1,
|
|
528
|
+
"description": "Maximum number of output tokens"
|
|
529
|
+
},
|
|
530
|
+
"inputModalities": {
|
|
531
|
+
"type": "array",
|
|
532
|
+
"items": {
|
|
533
|
+
"$ref": "#/definitions/modalitiesEnum"
|
|
534
|
+
},
|
|
535
|
+
"description": "Input modalities supported (e.g., text, image, audio)"
|
|
536
|
+
},
|
|
537
|
+
"outputModalities": {
|
|
538
|
+
"type": "array",
|
|
539
|
+
"items": {
|
|
540
|
+
"type": "string",
|
|
541
|
+
"enum": [
|
|
542
|
+
"audio",
|
|
543
|
+
"csv",
|
|
544
|
+
"embeddings",
|
|
545
|
+
"image",
|
|
546
|
+
"json",
|
|
547
|
+
"pdf",
|
|
548
|
+
"text",
|
|
549
|
+
"video",
|
|
550
|
+
"3D-image"
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
"description": "Output modalities supported (e.g., text)"
|
|
554
|
+
},
|
|
555
|
+
"modelCapabilities": {
|
|
556
|
+
"type": "array",
|
|
557
|
+
"items": {
|
|
558
|
+
"type": "string",
|
|
559
|
+
"enum": [
|
|
560
|
+
"agents",
|
|
561
|
+
"assistants",
|
|
562
|
+
"routing",
|
|
563
|
+
"reasoning",
|
|
564
|
+
"streaming",
|
|
565
|
+
"tool-calling"
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
"description": "Model capabilities (e.g., agents, assistants)"
|
|
569
|
+
},
|
|
570
|
+
"playground_rate_limit_tier": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"description": "Rate limit tier for playground",
|
|
573
|
+
"enum": [
|
|
574
|
+
"high",
|
|
575
|
+
"low",
|
|
576
|
+
"custom",
|
|
577
|
+
"embeddings"
|
|
578
|
+
]
|
|
579
|
+
},
|
|
580
|
+
"azureOffers": {
|
|
581
|
+
"type": "array",
|
|
582
|
+
"items": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"enum": [
|
|
585
|
+
"standard-paygo",
|
|
586
|
+
"RestrictedAccess",
|
|
587
|
+
"PTU",
|
|
588
|
+
"batch-paygo",
|
|
589
|
+
"VM",
|
|
590
|
+
"VM-withSurcharge"
|
|
591
|
+
]
|
|
592
|
+
},
|
|
593
|
+
"description": "Supported azure offer types"
|
|
594
|
+
},
|
|
595
|
+
"baseModelWeightsVersion": {
|
|
596
|
+
"oneOf": [
|
|
597
|
+
{
|
|
598
|
+
"type": "string"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"type": "number",
|
|
602
|
+
"minimum": 1.0
|
|
603
|
+
}
|
|
604
|
+
]
|
|
605
|
+
},
|
|
606
|
+
"sharedComputeCapacityEnabled": {
|
|
607
|
+
"type": "boolean",
|
|
608
|
+
"description": "Whether shared compute capacity is enabled"
|
|
609
|
+
},
|
|
610
|
+
"freePlayground": {
|
|
611
|
+
"type": "boolean",
|
|
612
|
+
"description": "Whether the model is available in free playground"
|
|
613
|
+
},
|
|
614
|
+
"deploymentOptions": {
|
|
615
|
+
"type": "array",
|
|
616
|
+
"items": {
|
|
617
|
+
"type": "string",
|
|
618
|
+
"enum": [
|
|
619
|
+
"ServerlessMaaS",
|
|
620
|
+
"UnifiedEndpointMaaS",
|
|
621
|
+
"MaaP",
|
|
622
|
+
"AOAI",
|
|
623
|
+
"Restricted",
|
|
624
|
+
"MonetizedMaaP"
|
|
625
|
+
]
|
|
626
|
+
},
|
|
627
|
+
"description": "Which types of deployment are supported in the UI"
|
|
628
|
+
},
|
|
629
|
+
"inferenceSupportedEnvs": {
|
|
630
|
+
"type": "array",
|
|
631
|
+
"items": {
|
|
632
|
+
"type": "string",
|
|
633
|
+
"enum": [
|
|
634
|
+
"ds_mii",
|
|
635
|
+
"hf",
|
|
636
|
+
"vllm"
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
"description": "Supported inference environments"
|
|
640
|
+
},
|
|
641
|
+
"isDirectFromAzure": {
|
|
642
|
+
"type": "boolean",
|
|
643
|
+
"description": "If the model is an Azure Direct model"
|
|
644
|
+
},
|
|
645
|
+
"inferenceEnvironmentAssetId": {
|
|
646
|
+
"type": "string",
|
|
647
|
+
"pattern": "azureml://registries/([^/]+)/environments/([^/]+)/versions/([^/]+)"
|
|
648
|
+
},
|
|
649
|
+
"modelArchitecture": {
|
|
650
|
+
"type": "string",
|
|
651
|
+
"description": "Model architecture type"
|
|
652
|
+
},
|
|
653
|
+
"componentVersion": {
|
|
654
|
+
"type": "string",
|
|
655
|
+
"description": "Version of the model component"
|
|
656
|
+
},
|
|
657
|
+
"modelPath": {
|
|
658
|
+
"type": "string",
|
|
659
|
+
"description": "Path to the model files or artifacts"
|
|
660
|
+
},
|
|
661
|
+
"aotManifest": {
|
|
662
|
+
"type": "string",
|
|
663
|
+
"description": "Ahead-of-time compilation manifest for the model"
|
|
664
|
+
},
|
|
665
|
+
"hasDeltaWeights": {
|
|
666
|
+
"type": "boolean",
|
|
667
|
+
"description": "Whether the model uses delta weights"
|
|
668
|
+
},
|
|
669
|
+
"featured": {
|
|
670
|
+
"type": "boolean",
|
|
671
|
+
"description": "Whether the model is featured"
|
|
672
|
+
},
|
|
673
|
+
"preview": {
|
|
674
|
+
"type": "boolean",
|
|
675
|
+
"description": "Whether the model is in preview"
|
|
676
|
+
},
|
|
677
|
+
"benchmark": {
|
|
678
|
+
"type": "string",
|
|
679
|
+
"description": "Benchmark type",
|
|
680
|
+
"enum": [
|
|
681
|
+
"quality",
|
|
682
|
+
"embeddings"
|
|
683
|
+
]
|
|
684
|
+
},
|
|
685
|
+
"datasets": {
|
|
686
|
+
"type": "array",
|
|
687
|
+
"items": {
|
|
688
|
+
"type": "string",
|
|
689
|
+
"enum": [
|
|
690
|
+
"Publicly available sources",
|
|
691
|
+
"bookcorpus",
|
|
692
|
+
"wikipedia"
|
|
693
|
+
]
|
|
694
|
+
},
|
|
695
|
+
"description": "Where data was sourced for training"
|
|
696
|
+
},
|
|
697
|
+
"industry": {
|
|
698
|
+
"type": "string",
|
|
699
|
+
"description": "The industry for the model",
|
|
700
|
+
"enum": [
|
|
701
|
+
"consumer-goods",
|
|
702
|
+
"health-and-life-sciences",
|
|
703
|
+
"manufacturing",
|
|
704
|
+
"mobility",
|
|
705
|
+
"financial-services"
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
"trainingDataDate": {
|
|
709
|
+
"type": "string",
|
|
710
|
+
"description": "Training cutoff date",
|
|
711
|
+
"pattern": "^(January|February|March|April|May|June|July|August|September|October|November|December)\\s+\\d{4}$",
|
|
712
|
+
"format": "month-year"
|
|
713
|
+
},
|
|
714
|
+
"evaluation": {
|
|
715
|
+
"type": "string",
|
|
716
|
+
"description": "Reference to evaluation documentation"
|
|
717
|
+
},
|
|
718
|
+
"notes": {
|
|
719
|
+
"type": "string",
|
|
720
|
+
"description": "Reference to notes documentation"
|
|
721
|
+
},
|
|
722
|
+
"featureFlags": {
|
|
723
|
+
"type": "array",
|
|
724
|
+
"items": {
|
|
725
|
+
"type": "string",
|
|
726
|
+
"enum": [
|
|
727
|
+
"OpenAI.EAGatingTier",
|
|
728
|
+
"OpenAI.EnterpriseTier",
|
|
729
|
+
"OpenAI.1PGatingTier",
|
|
730
|
+
"OpenAI.OneVetGatingTier",
|
|
731
|
+
"OpenAI.1000CUGatingTier",
|
|
732
|
+
"OpenAI.computer-use-preview",
|
|
733
|
+
"OpenAI.Preview.202409",
|
|
734
|
+
"OpenAITest",
|
|
735
|
+
"AIServices.grok-4-code",
|
|
736
|
+
"AIServices.grok-4"
|
|
737
|
+
]
|
|
738
|
+
},
|
|
739
|
+
"description": "List of feature flags for the models to gate usage"
|
|
740
|
+
},
|
|
741
|
+
"tasks": {
|
|
742
|
+
"type": "object",
|
|
743
|
+
"description": "Tasks that the model can perform",
|
|
744
|
+
"additionalProperties": false,
|
|
745
|
+
"properties": {
|
|
746
|
+
"inferenceTasks": {
|
|
747
|
+
"type": "array",
|
|
748
|
+
"items": {
|
|
749
|
+
"$ref": "#/definitions/taskEnum"
|
|
750
|
+
},
|
|
751
|
+
"description": "Tasks supported by the model"
|
|
752
|
+
},
|
|
753
|
+
"fineTuningTasks": {
|
|
754
|
+
"type": "array",
|
|
755
|
+
"items": {
|
|
756
|
+
"$ref": "#/definitions/finetuningTasksEnum"
|
|
757
|
+
},
|
|
758
|
+
"description": "Tasks for which the model can be fine-tuned"
|
|
759
|
+
},
|
|
760
|
+
"fineTuningMethods": {
|
|
761
|
+
"type": "array",
|
|
762
|
+
"description": "Methods for finetuning the model",
|
|
763
|
+
"items": {
|
|
764
|
+
"type": "string"
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
},
|
|
769
|
+
"platformCapabilities": {
|
|
770
|
+
"type": "object",
|
|
771
|
+
"description": "Platform-specific capabilities and settings",
|
|
772
|
+
"additionalProperties": false,
|
|
773
|
+
"properties": {
|
|
774
|
+
"enableMaap": {
|
|
775
|
+
"type": "boolean",
|
|
776
|
+
"description": "Whether MAAP is enabled (inverse of disable-maap)"
|
|
777
|
+
},
|
|
778
|
+
"enableBatch": {
|
|
779
|
+
"type": "boolean",
|
|
780
|
+
"description": "Whether batch processing is enabled (inverse of disable-batch)"
|
|
781
|
+
},
|
|
782
|
+
"maasInference": {
|
|
783
|
+
"type": "boolean",
|
|
784
|
+
"description": "Whether MaaS inference is enabled"
|
|
785
|
+
},
|
|
786
|
+
"maasFineTuning": {
|
|
787
|
+
"type": "boolean",
|
|
788
|
+
"description": "Whether MaaS fine-tuning is enabled"
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
"supportedComputes": {
|
|
793
|
+
"type": "object",
|
|
794
|
+
"description": "Compute types supported for different operations",
|
|
795
|
+
"additionalProperties": false,
|
|
796
|
+
"properties": {
|
|
797
|
+
"evaluationComputes": {
|
|
798
|
+
"type": "array",
|
|
799
|
+
"items": {
|
|
800
|
+
"$ref": "#/definitions/skuEnum"
|
|
801
|
+
},
|
|
802
|
+
"description": "List of compute SKUs allowed for evaluation"
|
|
803
|
+
},
|
|
804
|
+
"finetuneComputes": {
|
|
805
|
+
"type": "array",
|
|
806
|
+
"items": {
|
|
807
|
+
"$ref": "#/definitions/skuEnum"
|
|
808
|
+
},
|
|
809
|
+
"description": "List of compute SKUs allowed for finetune with maap"
|
|
810
|
+
},
|
|
811
|
+
"inferenceComputes": {
|
|
812
|
+
"type": "array",
|
|
813
|
+
"items": {
|
|
814
|
+
"$ref": "#/definitions/skuEnum"
|
|
815
|
+
},
|
|
816
|
+
"description": "List of compute SKUs allowed for inference"
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
},
|
|
820
|
+
"sku": {
|
|
821
|
+
"type": "object",
|
|
822
|
+
"description": "SKU specifications for different operations",
|
|
823
|
+
"additionalProperties": false,
|
|
824
|
+
"properties": {
|
|
825
|
+
"finetuneRecommendedSku": {
|
|
826
|
+
"description": "Skus that can be used for finetune maap",
|
|
827
|
+
"$ref": "#/definitions/skuListDefinition"
|
|
828
|
+
},
|
|
829
|
+
"evaluationMinSkuSpec": {
|
|
830
|
+
"type": "string",
|
|
831
|
+
"description": "Minimum SKU specification for evaluation in the format of 'cores|GPUs|RAM(GB)|VRAM(GB)'",
|
|
832
|
+
"pattern": "^\\d+\\|\\d+\\|\\d+\\|\\d+$",
|
|
833
|
+
"format": "sku-spec"
|
|
834
|
+
},
|
|
835
|
+
"evaluationRecommendedSku": {
|
|
836
|
+
"description": "Evaluation recommended sku",
|
|
837
|
+
"$ref": "#/definitions/skuListDefinition"
|
|
838
|
+
},
|
|
839
|
+
"finetuneMinSkuSpec": {
|
|
840
|
+
"type": "string",
|
|
841
|
+
"description": "Minimum SKU specification for finetune in the format of 'cores|GPUs|RAM(GB)|VRAM(GB)'",
|
|
842
|
+
"pattern": "^\\d+\\|\\d+\\|\\d+\\|\\d+$",
|
|
843
|
+
"format": "sku-spec"
|
|
844
|
+
},
|
|
845
|
+
"inferenceMinSkuSpec": {
|
|
846
|
+
"type": "string",
|
|
847
|
+
"description": "Minimum SKU specification for inference in the format of 'cores|GPUs|RAM(GB)|VRAM(GB)'",
|
|
848
|
+
"pattern": "^\\d+\\|\\d+\\|\\d+\\|\\d+$",
|
|
849
|
+
"format": "sku-spec"
|
|
850
|
+
},
|
|
851
|
+
"inferenceRecommendedSku": {
|
|
852
|
+
"description": "A list of comma separated skus that the client should use to deploy the model",
|
|
853
|
+
"$ref": "#/definitions/skuListDefinition"
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
},
|
|
857
|
+
"maasFinetuning": {
|
|
858
|
+
"type": "object",
|
|
859
|
+
"description": "Model-as-a-Service fine-tuning configuration",
|
|
860
|
+
"additionalProperties": false,
|
|
861
|
+
"properties": {
|
|
862
|
+
"maasFinetuningTest": {
|
|
863
|
+
"type": "boolean",
|
|
864
|
+
"description": "Used for testing maas-finetuning in INT"
|
|
865
|
+
},
|
|
866
|
+
"maasFinetuningDeployRegions": {
|
|
867
|
+
"type": "array",
|
|
868
|
+
"items": {
|
|
869
|
+
"type": "string",
|
|
870
|
+
"enum": [
|
|
871
|
+
"eastus2",
|
|
872
|
+
"eastus",
|
|
873
|
+
"northcentralus",
|
|
874
|
+
"westus3",
|
|
875
|
+
"westus",
|
|
876
|
+
"southcentralus"
|
|
877
|
+
]
|
|
878
|
+
},
|
|
879
|
+
"description": "Regions where fine-tuned models can be deployed"
|
|
880
|
+
},
|
|
881
|
+
"maasFinetuningOffer": {
|
|
882
|
+
"type": "boolean",
|
|
883
|
+
"description": "Whether MaaS fine-tuning offer is available"
|
|
884
|
+
},
|
|
885
|
+
"maasFinetuningRegions": {
|
|
886
|
+
"type": "string",
|
|
887
|
+
"description": "Regions where fine-tuning is available as a comma-separated string",
|
|
888
|
+
"pattern": "^(westus3|eastus2|eastus|southcentralus|northcentralus|westus)(?:\\s*,\\s*(westus3|eastus2|eastus|southcentralus|northcentralus|westus))*$"
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
},
|
|
892
|
+
"deprecation": {
|
|
893
|
+
"type": "object",
|
|
894
|
+
"description": "Deprecation and retirement schedule information",
|
|
895
|
+
"additionalProperties": false,
|
|
896
|
+
"properties": {
|
|
897
|
+
"finetuneDeprecationDate": {
|
|
898
|
+
"type": "string",
|
|
899
|
+
"description": "The date that finetune will be deprecated. Date format yyyy-MM-dd. The deprecation will happen at midnight UTC",
|
|
900
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
901
|
+
"format": "date-time"
|
|
902
|
+
},
|
|
903
|
+
"finetuneRetirementDate": {
|
|
904
|
+
"type": "string",
|
|
905
|
+
"description": "The date that finetune will be retired. Date format yyyy-MM-dd. The retirement will happen at midnight UTC",
|
|
906
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
907
|
+
"format": "date-time"
|
|
908
|
+
},
|
|
909
|
+
"inferenceDeprecationDate": {
|
|
910
|
+
"type": "string",
|
|
911
|
+
"description": "The date that inference will be deprecated. Date format yyyy-MM-dd. The deprecation will happen at midnight UTC",
|
|
912
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
913
|
+
"format": "date-time"
|
|
914
|
+
},
|
|
915
|
+
"inferenceLegacyDate": {
|
|
916
|
+
"type": "string",
|
|
917
|
+
"description": "The date that inference will become legacy. Date format yyyy-MM-dd. The change will happen at midnight UTC",
|
|
918
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
919
|
+
"format": "date-time"
|
|
920
|
+
},
|
|
921
|
+
"inferenceRetirementDate": {
|
|
922
|
+
"type": "string",
|
|
923
|
+
"description": "The date that inference will be retired. Date format yyyy-MM-dd. The retirement will happen at midnight UTC",
|
|
924
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
925
|
+
"format": "date-time"
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
},
|
|
455
931
|
"version": {
|
|
456
932
|
"description": "Model version",
|
|
457
933
|
"oneOf": [{ "type": "string" }, { "type": "integer", "minimum": 1 }]
|
|
458
934
|
}
|
|
459
935
|
},
|
|
460
|
-
"required": ["$schema", "name", "path", "
|
|
936
|
+
"required": ["$schema", "name", "path", "version"],
|
|
461
937
|
"definitions": {
|
|
462
938
|
"skuListDefinition": {
|
|
463
939
|
"type": "string",
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# ---------------------------------------------------------
|
|
4
4
|
"""Asset management commands for registry-mgmt CLI."""
|
|
5
5
|
|
|
6
|
+
import requests
|
|
6
7
|
import sys
|
|
7
8
|
import shutil
|
|
8
9
|
import tempfile
|
|
@@ -16,6 +17,7 @@ from azure.identity import DefaultAzureCredential
|
|
|
16
17
|
|
|
17
18
|
from azureml.registry.data.validate_model_schema import validate_model_schema
|
|
18
19
|
from azureml.registry.data.validate_model_variant_schema import validate_model_variant_schema
|
|
20
|
+
from azureml.registry._rest_client.registry_management_client import RegistryManagementClient
|
|
19
21
|
|
|
20
22
|
# Windows compatibility patch - must be applied before importing azureml.assets
|
|
21
23
|
from subprocess import run
|
|
@@ -87,6 +89,52 @@ def validate_model(asset_path: Path, allow_additional_properties: bool = False)
|
|
|
87
89
|
return True
|
|
88
90
|
|
|
89
91
|
|
|
92
|
+
def put_system_metadata(ml_client: MLClient, asset: AssetConfig, registry: str, system_metadata: dict):
|
|
93
|
+
"""PUT system metadata for an asset.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
ml_client (MLClient): ML client.
|
|
97
|
+
asset (AssetConfig): Asset config.
|
|
98
|
+
registry (str): Name of registry.
|
|
99
|
+
system_metadata (dict): System metadata payload.
|
|
100
|
+
"""
|
|
101
|
+
# Use RegistryManagementClient for discovery
|
|
102
|
+
registry_mgmt_client = RegistryManagementClient(registry_name=registry)
|
|
103
|
+
discovery = registry_mgmt_client.discovery()
|
|
104
|
+
|
|
105
|
+
# Extract the needed components
|
|
106
|
+
base_url = discovery.get('registryFqdns', {}).get(discovery.get('primaryRegion', '').lower(), {}).get('uri')
|
|
107
|
+
subscription_id = discovery.get('subscriptionId')
|
|
108
|
+
resource_group = discovery.get('resourceGroup')
|
|
109
|
+
|
|
110
|
+
# Build the URL
|
|
111
|
+
mms_id = f"{asset.name}:{asset.version}"
|
|
112
|
+
url = (f"{base_url}/modelregistry/v1.0/subscriptions/{subscription_id}/resourceGroups/{resource_group}/"
|
|
113
|
+
f"providers/Microsoft.MachineLearningServices/registries/{registry}/models/{mms_id}/systemMetadata")
|
|
114
|
+
|
|
115
|
+
# Get token and make request
|
|
116
|
+
access_token = ml_client._credential.get_token("https://ml.azure.com").token
|
|
117
|
+
headers = {
|
|
118
|
+
"Content-Type": "application/json",
|
|
119
|
+
"Authorization": f"Bearer {access_token}"
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
print("Attempting to PUT system metadata")
|
|
123
|
+
print(f"Payload: {system_metadata}")
|
|
124
|
+
|
|
125
|
+
response = requests.put(url, headers=headers, json=system_metadata)
|
|
126
|
+
|
|
127
|
+
if response.status_code in [200, 201, 202]:
|
|
128
|
+
print("PUT request successful")
|
|
129
|
+
return response.json()
|
|
130
|
+
else:
|
|
131
|
+
print(f"PUT request failed: {url}")
|
|
132
|
+
print(f"Status Code: {response.status_code}")
|
|
133
|
+
print(f"Response: {response.reason}")
|
|
134
|
+
print(f"Content: {response.text}")
|
|
135
|
+
raise Exception(response.reason)
|
|
136
|
+
|
|
137
|
+
|
|
90
138
|
def build_mutable_asset(base_asset: AssetConfig, mutable_asset_dir: str, override_storage: bool = False) -> AssetConfig:
|
|
91
139
|
"""Build a mutable copy of the asset in a temporary directory.
|
|
92
140
|
|
|
@@ -97,6 +145,7 @@ def build_mutable_asset(base_asset: AssetConfig, mutable_asset_dir: str, overrid
|
|
|
97
145
|
|
|
98
146
|
Returns:
|
|
99
147
|
AssetConfig: Mutable asset configuration object
|
|
148
|
+
system_metadata_payload (dict): Extracted system metadata from asset spec
|
|
100
149
|
"""
|
|
101
150
|
common_dir, _ = util.find_common_directory(base_asset.release_paths)
|
|
102
151
|
|
|
@@ -114,20 +163,19 @@ def build_mutable_asset(base_asset: AssetConfig, mutable_asset_dir: str, overrid
|
|
|
114
163
|
spec_config_file = mutable_asset_dir / base_spec_file.relative_to(common_dir)
|
|
115
164
|
model_config_file = mutable_asset_dir / base_model_file.relative_to(common_dir)
|
|
116
165
|
|
|
166
|
+
with open(spec_config_file, "r") as f:
|
|
167
|
+
spec_config = yaml.safe_load(f)
|
|
168
|
+
|
|
117
169
|
# Override storage info for model card preview
|
|
118
170
|
if override_storage:
|
|
119
171
|
print("Model card preview - Default setting version and storage info")
|
|
120
172
|
|
|
121
173
|
# Autoincrement version for mutable asset
|
|
122
|
-
|
|
123
|
-
spec_config = yaml.safe_load(f)
|
|
124
|
-
spec_config["version"] = datetime.now().strftime("%Y%m%d%H%M%S")
|
|
174
|
+
spec_config["version"] = datetime.now().strftime("%Y%m%d%H%M%S")
|
|
125
175
|
|
|
126
176
|
# Remove intellectualPropertyPublisher if it exists in properties
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
with open(spec_config_file, "w") as f:
|
|
130
|
-
yaml.dump(spec_config, f)
|
|
177
|
+
if "properties" in spec_config:
|
|
178
|
+
spec_config["properties"].pop("intellectualPropertyPublisher", None)
|
|
131
179
|
|
|
132
180
|
# Create dummy file to upload to storage
|
|
133
181
|
with open(mutable_asset_dir / "dummy.txt", "w") as f:
|
|
@@ -147,9 +195,23 @@ def build_mutable_asset(base_asset: AssetConfig, mutable_asset_dir: str, overrid
|
|
|
147
195
|
with open(model_config_file, "w") as f:
|
|
148
196
|
yaml.dump(new_model_config, f)
|
|
149
197
|
|
|
198
|
+
# Extract system_metadata from model spec
|
|
199
|
+
# PUT request will be made after asset creation while the SDK update/PATCH logic is being updated
|
|
200
|
+
system_metadata_payload = spec_config.pop("system_metadata", {})
|
|
201
|
+
if system_metadata_payload:
|
|
202
|
+
print(f"system_metadata found in model spec. Extracted system_metadata and saved "
|
|
203
|
+
f"to system_metadata: {system_metadata_payload}")
|
|
204
|
+
else:
|
|
205
|
+
print(f"No system_metadata found in model spec. Using system metadata payload {system_metadata_payload}")
|
|
206
|
+
|
|
207
|
+
# Write updated spec config back to the file
|
|
208
|
+
if override_storage or system_metadata_payload:
|
|
209
|
+
with open(spec_config_file, "w") as f:
|
|
210
|
+
yaml.dump(spec_config, f)
|
|
211
|
+
|
|
150
212
|
mutable_asset = AssetConfig(asset_config_file)
|
|
151
213
|
|
|
152
|
-
return mutable_asset
|
|
214
|
+
return mutable_asset, system_metadata_payload
|
|
153
215
|
|
|
154
216
|
|
|
155
217
|
def create_or_update_asset(readonly_asset: AssetConfig, registry_name: str, subscription_id: str, resource_group: str, override_storage: bool = False):
|
|
@@ -174,7 +236,7 @@ def create_or_update_asset(readonly_asset: AssetConfig, registry_name: str, subs
|
|
|
174
236
|
)
|
|
175
237
|
|
|
176
238
|
with tempfile.TemporaryDirectory() as mutable_asset_dir:
|
|
177
|
-
mutable_asset = build_mutable_asset(base_asset=readonly_asset, mutable_asset_dir=mutable_asset_dir, override_storage=override_storage)
|
|
239
|
+
mutable_asset, system_metadata_payload = build_mutable_asset(base_asset=readonly_asset, mutable_asset_dir=mutable_asset_dir, override_storage=override_storage)
|
|
178
240
|
try:
|
|
179
241
|
success = create_asset(mutable_asset, registry_name, ml_client)
|
|
180
242
|
if not success:
|
|
@@ -183,6 +245,14 @@ def create_or_update_asset(readonly_asset: AssetConfig, registry_name: str, subs
|
|
|
183
245
|
print(f"Failed to create/update asset: {e}")
|
|
184
246
|
raise
|
|
185
247
|
|
|
248
|
+
# PUT system metadata after model creation
|
|
249
|
+
if success:
|
|
250
|
+
try:
|
|
251
|
+
put_system_metadata(ml_client, mutable_asset, registry_name, system_metadata_payload)
|
|
252
|
+
except Exception as e:
|
|
253
|
+
print(f"Failed to update {mutable_asset.name} with system metadata: {e}")
|
|
254
|
+
raise
|
|
255
|
+
|
|
186
256
|
print("\n[VALIDATE YOUR ASSET IN THE UI HERE]")
|
|
187
257
|
print(f" - Model Catalog link: https://ai.azure.com/explore/models/{mutable_asset.name}/version/{mutable_asset.version}/registry/{registry_name}")
|
|
188
258
|
print(f" - Azure Portal link: https://ml.azure.com/registries/{registry_name}/models/{mutable_asset.name}/version/{mutable_asset.version}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{azureml_registry_tools-0.1.0a23 → azureml_registry_tools-0.1.0a25}/azureml/registry/tools/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|