oracle-ads 2.13.7__py3-none-any.whl → 2.13.9rc0__py3-none-any.whl
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.
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/METADATA +151 -151
- oracle_ads-2.13.9rc0.dist-info/RECORD +9 -0
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/WHEEL +2 -1
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/entry_points.txt +1 -2
- oracle_ads-2.13.9rc0.dist-info/top_level.txt +1 -0
- ads/aqua/__init__.py +0 -40
- ads/aqua/app.py +0 -506
- ads/aqua/cli.py +0 -96
- ads/aqua/client/__init__.py +0 -3
- ads/aqua/client/client.py +0 -836
- ads/aqua/client/openai_client.py +0 -305
- ads/aqua/common/__init__.py +0 -5
- ads/aqua/common/decorator.py +0 -125
- ads/aqua/common/entities.py +0 -266
- ads/aqua/common/enums.py +0 -122
- ads/aqua/common/errors.py +0 -109
- ads/aqua/common/utils.py +0 -1285
- ads/aqua/config/__init__.py +0 -4
- ads/aqua/config/container_config.py +0 -248
- ads/aqua/config/evaluation/__init__.py +0 -4
- ads/aqua/config/evaluation/evaluation_service_config.py +0 -147
- ads/aqua/config/utils/__init__.py +0 -4
- ads/aqua/config/utils/serializer.py +0 -339
- ads/aqua/constants.py +0 -114
- ads/aqua/data.py +0 -14
- ads/aqua/dummy_data/icon.txt +0 -1
- ads/aqua/dummy_data/oci_model_deployments.json +0 -56
- ads/aqua/dummy_data/oci_models.json +0 -1
- ads/aqua/dummy_data/readme.md +0 -26
- ads/aqua/evaluation/__init__.py +0 -8
- ads/aqua/evaluation/constants.py +0 -53
- ads/aqua/evaluation/entities.py +0 -186
- ads/aqua/evaluation/errors.py +0 -70
- ads/aqua/evaluation/evaluation.py +0 -1814
- ads/aqua/extension/__init__.py +0 -42
- ads/aqua/extension/aqua_ws_msg_handler.py +0 -76
- ads/aqua/extension/base_handler.py +0 -90
- ads/aqua/extension/common_handler.py +0 -121
- ads/aqua/extension/common_ws_msg_handler.py +0 -36
- ads/aqua/extension/deployment_handler.py +0 -298
- ads/aqua/extension/deployment_ws_msg_handler.py +0 -54
- ads/aqua/extension/errors.py +0 -30
- ads/aqua/extension/evaluation_handler.py +0 -129
- ads/aqua/extension/evaluation_ws_msg_handler.py +0 -61
- ads/aqua/extension/finetune_handler.py +0 -96
- ads/aqua/extension/model_handler.py +0 -390
- ads/aqua/extension/models/__init__.py +0 -0
- ads/aqua/extension/models/ws_models.py +0 -145
- ads/aqua/extension/models_ws_msg_handler.py +0 -50
- ads/aqua/extension/ui_handler.py +0 -282
- ads/aqua/extension/ui_websocket_handler.py +0 -130
- ads/aqua/extension/utils.py +0 -133
- ads/aqua/finetuning/__init__.py +0 -7
- ads/aqua/finetuning/constants.py +0 -23
- ads/aqua/finetuning/entities.py +0 -181
- ads/aqua/finetuning/finetuning.py +0 -731
- ads/aqua/model/__init__.py +0 -8
- ads/aqua/model/constants.py +0 -60
- ads/aqua/model/entities.py +0 -306
- ads/aqua/model/enums.py +0 -30
- ads/aqua/model/model.py +0 -2079
- ads/aqua/modeldeployment/__init__.py +0 -8
- ads/aqua/modeldeployment/constants.py +0 -10
- ads/aqua/modeldeployment/deployment.py +0 -1324
- ads/aqua/modeldeployment/entities.py +0 -653
- ads/aqua/modeldeployment/inference.py +0 -74
- ads/aqua/modeldeployment/utils.py +0 -543
- ads/aqua/resources/gpu_shapes_index.json +0 -94
- ads/aqua/server/__init__.py +0 -4
- ads/aqua/server/__main__.py +0 -24
- ads/aqua/server/app.py +0 -47
- ads/aqua/server/aqua_spec.yml +0 -1291
- ads/aqua/training/__init__.py +0 -4
- ads/aqua/training/exceptions.py +0 -476
- ads/aqua/ui.py +0 -499
- ads/automl/__init__.py +0 -9
- ads/automl/driver.py +0 -330
- ads/automl/provider.py +0 -975
- ads/bds/__init__.py +0 -5
- ads/bds/auth.py +0 -127
- ads/bds/big_data_service.py +0 -255
- ads/catalog/__init__.py +0 -19
- ads/catalog/model.py +0 -1576
- ads/catalog/notebook.py +0 -461
- ads/catalog/project.py +0 -468
- ads/catalog/summary.py +0 -178
- ads/common/__init__.py +0 -11
- ads/common/analyzer.py +0 -65
- ads/common/artifact/.model-ignore +0 -63
- ads/common/artifact/__init__.py +0 -10
- ads/common/auth.py +0 -1122
- ads/common/card_identifier.py +0 -83
- ads/common/config.py +0 -647
- ads/common/data.py +0 -165
- ads/common/decorator/__init__.py +0 -9
- ads/common/decorator/argument_to_case.py +0 -88
- ads/common/decorator/deprecate.py +0 -69
- ads/common/decorator/require_nonempty_arg.py +0 -65
- ads/common/decorator/runtime_dependency.py +0 -178
- ads/common/decorator/threaded.py +0 -97
- ads/common/decorator/utils.py +0 -35
- ads/common/dsc_file_system.py +0 -303
- ads/common/error.py +0 -14
- ads/common/extended_enum.py +0 -81
- ads/common/function/__init__.py +0 -5
- ads/common/function/fn_util.py +0 -142
- ads/common/function/func_conf.yaml +0 -25
- ads/common/ipython.py +0 -76
- ads/common/model.py +0 -679
- ads/common/model_artifact.py +0 -1759
- ads/common/model_artifact_schema.json +0 -107
- ads/common/model_export_util.py +0 -664
- ads/common/model_metadata.py +0 -24
- ads/common/object_storage_details.py +0 -296
- ads/common/oci_client.py +0 -175
- ads/common/oci_datascience.py +0 -46
- ads/common/oci_logging.py +0 -1144
- ads/common/oci_mixin.py +0 -957
- ads/common/oci_resource.py +0 -136
- ads/common/serializer.py +0 -559
- ads/common/utils.py +0 -1852
- ads/common/word_lists.py +0 -1491
- ads/common/work_request.py +0 -189
- ads/data_labeling/__init__.py +0 -13
- ads/data_labeling/boundingbox.py +0 -253
- ads/data_labeling/constants.py +0 -47
- ads/data_labeling/data_labeling_service.py +0 -244
- ads/data_labeling/interface/__init__.py +0 -5
- ads/data_labeling/interface/loader.py +0 -16
- ads/data_labeling/interface/parser.py +0 -16
- ads/data_labeling/interface/reader.py +0 -23
- ads/data_labeling/loader/__init__.py +0 -5
- ads/data_labeling/loader/file_loader.py +0 -241
- ads/data_labeling/metadata.py +0 -110
- ads/data_labeling/mixin/__init__.py +0 -5
- ads/data_labeling/mixin/data_labeling.py +0 -232
- ads/data_labeling/ner.py +0 -129
- ads/data_labeling/parser/__init__.py +0 -5
- ads/data_labeling/parser/dls_record_parser.py +0 -388
- ads/data_labeling/parser/export_metadata_parser.py +0 -94
- ads/data_labeling/parser/export_record_parser.py +0 -473
- ads/data_labeling/reader/__init__.py +0 -5
- ads/data_labeling/reader/dataset_reader.py +0 -574
- ads/data_labeling/reader/dls_record_reader.py +0 -121
- ads/data_labeling/reader/export_record_reader.py +0 -62
- ads/data_labeling/reader/jsonl_reader.py +0 -75
- ads/data_labeling/reader/metadata_reader.py +0 -203
- ads/data_labeling/reader/record_reader.py +0 -263
- ads/data_labeling/record.py +0 -52
- ads/data_labeling/visualizer/__init__.py +0 -5
- ads/data_labeling/visualizer/image_visualizer.py +0 -525
- ads/data_labeling/visualizer/text_visualizer.py +0 -357
- ads/database/__init__.py +0 -5
- ads/database/connection.py +0 -338
- ads/dataset/__init__.py +0 -10
- ads/dataset/capabilities.md +0 -51
- ads/dataset/classification_dataset.py +0 -339
- ads/dataset/correlation.py +0 -226
- ads/dataset/correlation_plot.py +0 -563
- ads/dataset/dask_series.py +0 -173
- ads/dataset/dataframe_transformer.py +0 -110
- ads/dataset/dataset.py +0 -1979
- ads/dataset/dataset_browser.py +0 -360
- ads/dataset/dataset_with_target.py +0 -995
- ads/dataset/exception.py +0 -25
- ads/dataset/factory.py +0 -987
- ads/dataset/feature_engineering_transformer.py +0 -35
- ads/dataset/feature_selection.py +0 -107
- ads/dataset/forecasting_dataset.py +0 -26
- ads/dataset/helper.py +0 -1450
- ads/dataset/label_encoder.py +0 -99
- ads/dataset/mixin/__init__.py +0 -5
- ads/dataset/mixin/dataset_accessor.py +0 -134
- ads/dataset/pipeline.py +0 -58
- ads/dataset/plot.py +0 -710
- ads/dataset/progress.py +0 -86
- ads/dataset/recommendation.py +0 -297
- ads/dataset/recommendation_transformer.py +0 -502
- ads/dataset/regression_dataset.py +0 -14
- ads/dataset/sampled_dataset.py +0 -1050
- ads/dataset/target.py +0 -98
- ads/dataset/timeseries.py +0 -18
- ads/dbmixin/__init__.py +0 -5
- ads/dbmixin/db_pandas_accessor.py +0 -153
- ads/environment/__init__.py +0 -9
- ads/environment/ml_runtime.py +0 -66
- ads/evaluations/README.md +0 -14
- ads/evaluations/__init__.py +0 -109
- ads/evaluations/evaluation_plot.py +0 -983
- ads/evaluations/evaluator.py +0 -1334
- ads/evaluations/statistical_metrics.py +0 -543
- ads/experiments/__init__.py +0 -9
- ads/experiments/capabilities.md +0 -0
- ads/explanations/__init__.py +0 -21
- ads/explanations/base_explainer.py +0 -142
- ads/explanations/capabilities.md +0 -83
- ads/explanations/explainer.py +0 -190
- ads/explanations/mlx_global_explainer.py +0 -1050
- ads/explanations/mlx_interface.py +0 -386
- ads/explanations/mlx_local_explainer.py +0 -287
- ads/explanations/mlx_whatif_explainer.py +0 -201
- ads/feature_engineering/__init__.py +0 -20
- ads/feature_engineering/accessor/__init__.py +0 -5
- ads/feature_engineering/accessor/dataframe_accessor.py +0 -535
- ads/feature_engineering/accessor/mixin/__init__.py +0 -5
- ads/feature_engineering/accessor/mixin/correlation.py +0 -166
- ads/feature_engineering/accessor/mixin/eda_mixin.py +0 -266
- ads/feature_engineering/accessor/mixin/eda_mixin_series.py +0 -85
- ads/feature_engineering/accessor/mixin/feature_types_mixin.py +0 -211
- ads/feature_engineering/accessor/mixin/utils.py +0 -65
- ads/feature_engineering/accessor/series_accessor.py +0 -431
- ads/feature_engineering/adsimage/__init__.py +0 -5
- ads/feature_engineering/adsimage/image.py +0 -192
- ads/feature_engineering/adsimage/image_reader.py +0 -170
- ads/feature_engineering/adsimage/interface/__init__.py +0 -5
- ads/feature_engineering/adsimage/interface/reader.py +0 -19
- ads/feature_engineering/adsstring/__init__.py +0 -7
- ads/feature_engineering/adsstring/oci_language/__init__.py +0 -8
- ads/feature_engineering/adsstring/string/__init__.py +0 -8
- ads/feature_engineering/data_schema.json +0 -57
- ads/feature_engineering/dataset/__init__.py +0 -5
- ads/feature_engineering/dataset/zip_code_data.py +0 -42062
- ads/feature_engineering/exceptions.py +0 -40
- ads/feature_engineering/feature_type/__init__.py +0 -133
- ads/feature_engineering/feature_type/address.py +0 -184
- ads/feature_engineering/feature_type/adsstring/__init__.py +0 -5
- ads/feature_engineering/feature_type/adsstring/common_regex_mixin.py +0 -164
- ads/feature_engineering/feature_type/adsstring/oci_language.py +0 -93
- ads/feature_engineering/feature_type/adsstring/parsers/__init__.py +0 -5
- ads/feature_engineering/feature_type/adsstring/parsers/base.py +0 -47
- ads/feature_engineering/feature_type/adsstring/parsers/nltk_parser.py +0 -96
- ads/feature_engineering/feature_type/adsstring/parsers/spacy_parser.py +0 -221
- ads/feature_engineering/feature_type/adsstring/string.py +0 -258
- ads/feature_engineering/feature_type/base.py +0 -58
- ads/feature_engineering/feature_type/boolean.py +0 -183
- ads/feature_engineering/feature_type/category.py +0 -146
- ads/feature_engineering/feature_type/constant.py +0 -137
- ads/feature_engineering/feature_type/continuous.py +0 -151
- ads/feature_engineering/feature_type/creditcard.py +0 -314
- ads/feature_engineering/feature_type/datetime.py +0 -190
- ads/feature_engineering/feature_type/discrete.py +0 -134
- ads/feature_engineering/feature_type/document.py +0 -43
- ads/feature_engineering/feature_type/gis.py +0 -251
- ads/feature_engineering/feature_type/handler/__init__.py +0 -5
- ads/feature_engineering/feature_type/handler/feature_validator.py +0 -524
- ads/feature_engineering/feature_type/handler/feature_warning.py +0 -319
- ads/feature_engineering/feature_type/handler/warnings.py +0 -128
- ads/feature_engineering/feature_type/integer.py +0 -142
- ads/feature_engineering/feature_type/ip_address.py +0 -144
- ads/feature_engineering/feature_type/ip_address_v4.py +0 -138
- ads/feature_engineering/feature_type/ip_address_v6.py +0 -138
- ads/feature_engineering/feature_type/lat_long.py +0 -256
- ads/feature_engineering/feature_type/object.py +0 -43
- ads/feature_engineering/feature_type/ordinal.py +0 -132
- ads/feature_engineering/feature_type/phone_number.py +0 -135
- ads/feature_engineering/feature_type/string.py +0 -171
- ads/feature_engineering/feature_type/text.py +0 -93
- ads/feature_engineering/feature_type/unknown.py +0 -43
- ads/feature_engineering/feature_type/zip_code.py +0 -164
- ads/feature_engineering/feature_type_manager.py +0 -406
- ads/feature_engineering/schema.py +0 -795
- ads/feature_engineering/utils.py +0 -245
- ads/feature_store/.readthedocs.yaml +0 -19
- ads/feature_store/README.md +0 -65
- ads/feature_store/__init__.py +0 -9
- ads/feature_store/common/__init__.py +0 -0
- ads/feature_store/common/enums.py +0 -339
- ads/feature_store/common/exceptions.py +0 -18
- ads/feature_store/common/spark_session_singleton.py +0 -125
- ads/feature_store/common/utils/__init__.py +0 -0
- ads/feature_store/common/utils/base64_encoder_decoder.py +0 -72
- ads/feature_store/common/utils/feature_schema_mapper.py +0 -283
- ads/feature_store/common/utils/transformation_utils.py +0 -82
- ads/feature_store/common/utils/utility.py +0 -403
- ads/feature_store/data_validation/__init__.py +0 -0
- ads/feature_store/data_validation/great_expectation.py +0 -129
- ads/feature_store/dataset.py +0 -1230
- ads/feature_store/dataset_job.py +0 -530
- ads/feature_store/docs/Dockerfile +0 -7
- ads/feature_store/docs/Makefile +0 -44
- ads/feature_store/docs/conf.py +0 -28
- ads/feature_store/docs/requirements.txt +0 -14
- ads/feature_store/docs/source/ads.feature_store.query.rst +0 -20
- ads/feature_store/docs/source/cicd.rst +0 -137
- ads/feature_store/docs/source/conf.py +0 -86
- ads/feature_store/docs/source/data_versioning.rst +0 -33
- ads/feature_store/docs/source/dataset.rst +0 -388
- ads/feature_store/docs/source/dataset_job.rst +0 -27
- ads/feature_store/docs/source/demo.rst +0 -70
- ads/feature_store/docs/source/entity.rst +0 -78
- ads/feature_store/docs/source/feature_group.rst +0 -624
- ads/feature_store/docs/source/feature_group_job.rst +0 -29
- ads/feature_store/docs/source/feature_store.rst +0 -122
- ads/feature_store/docs/source/feature_store_class.rst +0 -123
- ads/feature_store/docs/source/feature_validation.rst +0 -66
- ads/feature_store/docs/source/figures/cicd.png +0 -0
- ads/feature_store/docs/source/figures/data_validation.png +0 -0
- ads/feature_store/docs/source/figures/data_versioning.png +0 -0
- ads/feature_store/docs/source/figures/dataset.gif +0 -0
- ads/feature_store/docs/source/figures/dataset.png +0 -0
- ads/feature_store/docs/source/figures/dataset_lineage.png +0 -0
- ads/feature_store/docs/source/figures/dataset_statistics.png +0 -0
- ads/feature_store/docs/source/figures/dataset_statistics_viz.png +0 -0
- ads/feature_store/docs/source/figures/dataset_validation_results.png +0 -0
- ads/feature_store/docs/source/figures/dataset_validation_summary.png +0 -0
- ads/feature_store/docs/source/figures/drift_monitoring.png +0 -0
- ads/feature_store/docs/source/figures/entity.png +0 -0
- ads/feature_store/docs/source/figures/feature_group.png +0 -0
- ads/feature_store/docs/source/figures/feature_group_lineage.png +0 -0
- ads/feature_store/docs/source/figures/feature_group_statistics_viz.png +0 -0
- ads/feature_store/docs/source/figures/feature_store_deployment.png +0 -0
- ads/feature_store/docs/source/figures/feature_store_overview.png +0 -0
- ads/feature_store/docs/source/figures/featuregroup.gif +0 -0
- ads/feature_store/docs/source/figures/lineage_d1.png +0 -0
- ads/feature_store/docs/source/figures/lineage_d2.png +0 -0
- ads/feature_store/docs/source/figures/lineage_fg.png +0 -0
- ads/feature_store/docs/source/figures/logo-dark-mode.png +0 -0
- ads/feature_store/docs/source/figures/logo-light-mode.png +0 -0
- ads/feature_store/docs/source/figures/overview.png +0 -0
- ads/feature_store/docs/source/figures/resource_manager.png +0 -0
- ads/feature_store/docs/source/figures/resource_manager_feature_store_stack.png +0 -0
- ads/feature_store/docs/source/figures/resource_manager_home.png +0 -0
- ads/feature_store/docs/source/figures/stats_1.png +0 -0
- ads/feature_store/docs/source/figures/stats_2.png +0 -0
- ads/feature_store/docs/source/figures/stats_d.png +0 -0
- ads/feature_store/docs/source/figures/stats_fg.png +0 -0
- ads/feature_store/docs/source/figures/transformation.png +0 -0
- ads/feature_store/docs/source/figures/transformations.gif +0 -0
- ads/feature_store/docs/source/figures/validation.png +0 -0
- ads/feature_store/docs/source/figures/validation_fg.png +0 -0
- ads/feature_store/docs/source/figures/validation_results.png +0 -0
- ads/feature_store/docs/source/figures/validation_summary.png +0 -0
- ads/feature_store/docs/source/index.rst +0 -81
- ads/feature_store/docs/source/module.rst +0 -8
- ads/feature_store/docs/source/notebook.rst +0 -94
- ads/feature_store/docs/source/overview.rst +0 -47
- ads/feature_store/docs/source/quickstart.rst +0 -176
- ads/feature_store/docs/source/release_notes.rst +0 -194
- ads/feature_store/docs/source/setup_feature_store.rst +0 -81
- ads/feature_store/docs/source/statistics.rst +0 -58
- ads/feature_store/docs/source/transformation.rst +0 -199
- ads/feature_store/docs/source/ui.rst +0 -65
- ads/feature_store/docs/source/user_guides.setup.feature_store_operator.rst +0 -66
- ads/feature_store/docs/source/user_guides.setup.helm_chart.rst +0 -192
- ads/feature_store/docs/source/user_guides.setup.terraform.rst +0 -338
- ads/feature_store/entity.py +0 -718
- ads/feature_store/execution_strategy/__init__.py +0 -0
- ads/feature_store/execution_strategy/delta_lake/__init__.py +0 -0
- ads/feature_store/execution_strategy/delta_lake/delta_lake_service.py +0 -375
- ads/feature_store/execution_strategy/engine/__init__.py +0 -0
- ads/feature_store/execution_strategy/engine/spark_engine.py +0 -316
- ads/feature_store/execution_strategy/execution_strategy.py +0 -113
- ads/feature_store/execution_strategy/execution_strategy_provider.py +0 -47
- ads/feature_store/execution_strategy/spark/__init__.py +0 -0
- ads/feature_store/execution_strategy/spark/spark_execution.py +0 -618
- ads/feature_store/feature.py +0 -192
- ads/feature_store/feature_group.py +0 -1494
- ads/feature_store/feature_group_expectation.py +0 -346
- ads/feature_store/feature_group_job.py +0 -602
- ads/feature_store/feature_lineage/__init__.py +0 -0
- ads/feature_store/feature_lineage/graphviz_service.py +0 -180
- ads/feature_store/feature_option_details.py +0 -50
- ads/feature_store/feature_statistics/__init__.py +0 -0
- ads/feature_store/feature_statistics/statistics_service.py +0 -99
- ads/feature_store/feature_store.py +0 -699
- ads/feature_store/feature_store_registrar.py +0 -518
- ads/feature_store/input_feature_detail.py +0 -149
- ads/feature_store/mixin/__init__.py +0 -4
- ads/feature_store/mixin/oci_feature_store.py +0 -145
- ads/feature_store/model_details.py +0 -73
- ads/feature_store/query/__init__.py +0 -0
- ads/feature_store/query/filter.py +0 -266
- ads/feature_store/query/generator/__init__.py +0 -0
- ads/feature_store/query/generator/query_generator.py +0 -298
- ads/feature_store/query/join.py +0 -161
- ads/feature_store/query/query.py +0 -403
- ads/feature_store/query/validator/__init__.py +0 -0
- ads/feature_store/query/validator/query_validator.py +0 -57
- ads/feature_store/response/__init__.py +0 -0
- ads/feature_store/response/response_builder.py +0 -68
- ads/feature_store/service/__init__.py +0 -0
- ads/feature_store/service/oci_dataset.py +0 -139
- ads/feature_store/service/oci_dataset_job.py +0 -199
- ads/feature_store/service/oci_entity.py +0 -125
- ads/feature_store/service/oci_feature_group.py +0 -164
- ads/feature_store/service/oci_feature_group_job.py +0 -214
- ads/feature_store/service/oci_feature_store.py +0 -182
- ads/feature_store/service/oci_lineage.py +0 -87
- ads/feature_store/service/oci_transformation.py +0 -104
- ads/feature_store/statistics/__init__.py +0 -0
- ads/feature_store/statistics/abs_feature_value.py +0 -49
- ads/feature_store/statistics/charts/__init__.py +0 -0
- ads/feature_store/statistics/charts/abstract_feature_plot.py +0 -37
- ads/feature_store/statistics/charts/box_plot.py +0 -148
- ads/feature_store/statistics/charts/frequency_distribution.py +0 -65
- ads/feature_store/statistics/charts/probability_distribution.py +0 -68
- ads/feature_store/statistics/charts/top_k_frequent_elements.py +0 -98
- ads/feature_store/statistics/feature_stat.py +0 -126
- ads/feature_store/statistics/generic_feature_value.py +0 -33
- ads/feature_store/statistics/statistics.py +0 -41
- ads/feature_store/statistics_config.py +0 -101
- ads/feature_store/templates/feature_store_template.yaml +0 -45
- ads/feature_store/transformation.py +0 -499
- ads/feature_store/validation_output.py +0 -57
- ads/hpo/__init__.py +0 -9
- ads/hpo/_imports.py +0 -91
- ads/hpo/ads_search_space.py +0 -439
- ads/hpo/distributions.py +0 -325
- ads/hpo/objective.py +0 -280
- ads/hpo/search_cv.py +0 -1657
- ads/hpo/stopping_criterion.py +0 -75
- ads/hpo/tuner_artifact.py +0 -413
- ads/hpo/utils.py +0 -91
- ads/hpo/validation.py +0 -140
- ads/hpo/visualization/__init__.py +0 -5
- ads/hpo/visualization/_contour.py +0 -23
- ads/hpo/visualization/_edf.py +0 -20
- ads/hpo/visualization/_intermediate_values.py +0 -21
- ads/hpo/visualization/_optimization_history.py +0 -25
- ads/hpo/visualization/_parallel_coordinate.py +0 -169
- ads/hpo/visualization/_param_importances.py +0 -26
- ads/jobs/__init__.py +0 -53
- ads/jobs/ads_job.py +0 -663
- ads/jobs/builders/__init__.py +0 -5
- ads/jobs/builders/base.py +0 -156
- ads/jobs/builders/infrastructure/__init__.py +0 -6
- ads/jobs/builders/infrastructure/base.py +0 -165
- ads/jobs/builders/infrastructure/dataflow.py +0 -1252
- ads/jobs/builders/infrastructure/dsc_job.py +0 -1894
- ads/jobs/builders/infrastructure/dsc_job_runtime.py +0 -1233
- ads/jobs/builders/infrastructure/utils.py +0 -65
- ads/jobs/builders/runtimes/__init__.py +0 -5
- ads/jobs/builders/runtimes/artifact.py +0 -338
- ads/jobs/builders/runtimes/base.py +0 -325
- ads/jobs/builders/runtimes/container_runtime.py +0 -242
- ads/jobs/builders/runtimes/python_runtime.py +0 -1016
- ads/jobs/builders/runtimes/pytorch_runtime.py +0 -204
- ads/jobs/cli.py +0 -104
- ads/jobs/env_var_parser.py +0 -131
- ads/jobs/extension.py +0 -160
- ads/jobs/schema/__init__.py +0 -5
- ads/jobs/schema/infrastructure_schema.json +0 -116
- ads/jobs/schema/job_schema.json +0 -42
- ads/jobs/schema/runtime_schema.json +0 -183
- ads/jobs/schema/validator.py +0 -141
- ads/jobs/serializer.py +0 -296
- ads/jobs/templates/__init__.py +0 -5
- ads/jobs/templates/container.py +0 -6
- ads/jobs/templates/driver_notebook.py +0 -177
- ads/jobs/templates/driver_oci.py +0 -500
- ads/jobs/templates/driver_python.py +0 -48
- ads/jobs/templates/driver_pytorch.py +0 -852
- ads/jobs/templates/driver_utils.py +0 -615
- ads/jobs/templates/hostname_from_env.c +0 -55
- ads/jobs/templates/oci_metrics.py +0 -181
- ads/jobs/utils.py +0 -104
- ads/llm/__init__.py +0 -28
- ads/llm/autogen/__init__.py +0 -2
- ads/llm/autogen/constants.py +0 -15
- ads/llm/autogen/reports/__init__.py +0 -2
- ads/llm/autogen/reports/base.py +0 -67
- ads/llm/autogen/reports/data.py +0 -103
- ads/llm/autogen/reports/session.py +0 -526
- ads/llm/autogen/reports/templates/chat_box.html +0 -13
- ads/llm/autogen/reports/templates/chat_box_lt.html +0 -5
- ads/llm/autogen/reports/templates/chat_box_rt.html +0 -6
- ads/llm/autogen/reports/utils.py +0 -56
- ads/llm/autogen/v02/__init__.py +0 -4
- ads/llm/autogen/v02/client.py +0 -295
- ads/llm/autogen/v02/log_handlers/__init__.py +0 -2
- ads/llm/autogen/v02/log_handlers/oci_file_handler.py +0 -83
- ads/llm/autogen/v02/loggers/__init__.py +0 -6
- ads/llm/autogen/v02/loggers/metric_logger.py +0 -320
- ads/llm/autogen/v02/loggers/session_logger.py +0 -580
- ads/llm/autogen/v02/loggers/utils.py +0 -86
- ads/llm/autogen/v02/runtime_logging.py +0 -163
- ads/llm/chain.py +0 -268
- ads/llm/chat_template.py +0 -31
- ads/llm/deploy.py +0 -63
- ads/llm/guardrails/__init__.py +0 -5
- ads/llm/guardrails/base.py +0 -442
- ads/llm/guardrails/huggingface.py +0 -44
- ads/llm/langchain/__init__.py +0 -5
- ads/llm/langchain/plugins/__init__.py +0 -5
- ads/llm/langchain/plugins/chat_models/__init__.py +0 -5
- ads/llm/langchain/plugins/chat_models/oci_data_science.py +0 -1027
- ads/llm/langchain/plugins/embeddings/__init__.py +0 -4
- ads/llm/langchain/plugins/embeddings/oci_data_science_model_deployment_endpoint.py +0 -184
- ads/llm/langchain/plugins/llms/__init__.py +0 -5
- ads/llm/langchain/plugins/llms/oci_data_science_model_deployment_endpoint.py +0 -979
- ads/llm/requirements.txt +0 -3
- ads/llm/serialize.py +0 -219
- ads/llm/serializers/__init__.py +0 -0
- ads/llm/serializers/retrieval_qa.py +0 -153
- ads/llm/serializers/runnable_parallel.py +0 -27
- ads/llm/templates/score_chain.jinja2 +0 -155
- ads/llm/templates/tool_chat_template_hermes.jinja +0 -130
- ads/llm/templates/tool_chat_template_mistral_parallel.jinja +0 -94
- ads/model/__init__.py +0 -52
- ads/model/artifact.py +0 -573
- ads/model/artifact_downloader.py +0 -254
- ads/model/artifact_uploader.py +0 -267
- ads/model/base_properties.py +0 -238
- ads/model/common/.model-ignore +0 -66
- ads/model/common/__init__.py +0 -5
- ads/model/common/utils.py +0 -142
- ads/model/datascience_model.py +0 -2635
- ads/model/deployment/__init__.py +0 -20
- ads/model/deployment/common/__init__.py +0 -5
- ads/model/deployment/common/utils.py +0 -308
- ads/model/deployment/model_deployer.py +0 -466
- ads/model/deployment/model_deployment.py +0 -1846
- ads/model/deployment/model_deployment_infrastructure.py +0 -671
- ads/model/deployment/model_deployment_properties.py +0 -493
- ads/model/deployment/model_deployment_runtime.py +0 -838
- ads/model/extractor/__init__.py +0 -5
- ads/model/extractor/automl_extractor.py +0 -74
- ads/model/extractor/embedding_onnx_extractor.py +0 -80
- ads/model/extractor/huggingface_extractor.py +0 -88
- ads/model/extractor/keras_extractor.py +0 -84
- ads/model/extractor/lightgbm_extractor.py +0 -93
- ads/model/extractor/model_info_extractor.py +0 -114
- ads/model/extractor/model_info_extractor_factory.py +0 -105
- ads/model/extractor/pytorch_extractor.py +0 -87
- ads/model/extractor/sklearn_extractor.py +0 -112
- ads/model/extractor/spark_extractor.py +0 -89
- ads/model/extractor/tensorflow_extractor.py +0 -85
- ads/model/extractor/xgboost_extractor.py +0 -94
- ads/model/framework/__init__.py +0 -5
- ads/model/framework/automl_model.py +0 -178
- ads/model/framework/embedding_onnx_model.py +0 -438
- ads/model/framework/huggingface_model.py +0 -399
- ads/model/framework/lightgbm_model.py +0 -266
- ads/model/framework/pytorch_model.py +0 -266
- ads/model/framework/sklearn_model.py +0 -250
- ads/model/framework/spark_model.py +0 -326
- ads/model/framework/tensorflow_model.py +0 -254
- ads/model/framework/xgboost_model.py +0 -258
- ads/model/generic_model.py +0 -3518
- ads/model/model_artifact_boilerplate/README.md +0 -381
- ads/model/model_artifact_boilerplate/__init__.py +0 -5
- ads/model/model_artifact_boilerplate/artifact_introspection_test/__init__.py +0 -5
- ads/model/model_artifact_boilerplate/artifact_introspection_test/model_artifact_validate.py +0 -427
- ads/model/model_artifact_boilerplate/artifact_introspection_test/requirements.txt +0 -2
- ads/model/model_artifact_boilerplate/runtime.yaml +0 -7
- ads/model/model_artifact_boilerplate/score.py +0 -61
- ads/model/model_file_description_schema.json +0 -68
- ads/model/model_introspect.py +0 -331
- ads/model/model_metadata.py +0 -1810
- ads/model/model_metadata_mixin.py +0 -460
- ads/model/model_properties.py +0 -63
- ads/model/model_version_set.py +0 -739
- ads/model/runtime/__init__.py +0 -5
- ads/model/runtime/env_info.py +0 -306
- ads/model/runtime/model_deployment_details.py +0 -37
- ads/model/runtime/model_provenance_details.py +0 -58
- ads/model/runtime/runtime_info.py +0 -81
- ads/model/runtime/schemas/inference_env_info_schema.yaml +0 -16
- ads/model/runtime/schemas/model_provenance_schema.yaml +0 -36
- ads/model/runtime/schemas/training_env_info_schema.yaml +0 -16
- ads/model/runtime/utils.py +0 -201
- ads/model/serde/__init__.py +0 -5
- ads/model/serde/common.py +0 -40
- ads/model/serde/model_input.py +0 -547
- ads/model/serde/model_serializer.py +0 -1184
- ads/model/service/__init__.py +0 -5
- ads/model/service/oci_datascience_model.py +0 -1076
- ads/model/service/oci_datascience_model_deployment.py +0 -500
- ads/model/service/oci_datascience_model_version_set.py +0 -176
- ads/model/transformer/__init__.py +0 -5
- ads/model/transformer/onnx_transformer.py +0 -324
- ads/mysqldb/__init__.py +0 -5
- ads/mysqldb/mysql_db.py +0 -227
- ads/opctl/__init__.py +0 -18
- ads/opctl/anomaly_detection.py +0 -11
- ads/opctl/backend/__init__.py +0 -5
- ads/opctl/backend/ads_dataflow.py +0 -353
- ads/opctl/backend/ads_ml_job.py +0 -710
- ads/opctl/backend/ads_ml_pipeline.py +0 -164
- ads/opctl/backend/ads_model_deployment.py +0 -209
- ads/opctl/backend/base.py +0 -146
- ads/opctl/backend/local.py +0 -1053
- ads/opctl/backend/marketplace/__init__.py +0 -9
- ads/opctl/backend/marketplace/helm_helper.py +0 -173
- ads/opctl/backend/marketplace/local_marketplace.py +0 -271
- ads/opctl/backend/marketplace/marketplace_backend_runner.py +0 -71
- ads/opctl/backend/marketplace/marketplace_operator_interface.py +0 -44
- ads/opctl/backend/marketplace/marketplace_operator_runner.py +0 -24
- ads/opctl/backend/marketplace/marketplace_utils.py +0 -212
- ads/opctl/backend/marketplace/models/__init__.py +0 -5
- ads/opctl/backend/marketplace/models/bearer_token.py +0 -94
- ads/opctl/backend/marketplace/models/marketplace_type.py +0 -70
- ads/opctl/backend/marketplace/models/ocir_details.py +0 -56
- ads/opctl/backend/marketplace/prerequisite_checker.py +0 -238
- ads/opctl/cli.py +0 -707
- ads/opctl/cmds.py +0 -869
- ads/opctl/conda/__init__.py +0 -5
- ads/opctl/conda/cli.py +0 -193
- ads/opctl/conda/cmds.py +0 -749
- ads/opctl/conda/config.yaml +0 -34
- ads/opctl/conda/manifest_template.yaml +0 -13
- ads/opctl/conda/multipart_uploader.py +0 -188
- ads/opctl/conda/pack.py +0 -89
- ads/opctl/config/__init__.py +0 -5
- ads/opctl/config/base.py +0 -57
- ads/opctl/config/diagnostics/__init__.py +0 -5
- ads/opctl/config/diagnostics/distributed/default_requirements_config.yaml +0 -62
- ads/opctl/config/merger.py +0 -255
- ads/opctl/config/resolver.py +0 -297
- ads/opctl/config/utils.py +0 -79
- ads/opctl/config/validator.py +0 -17
- ads/opctl/config/versioner.py +0 -68
- ads/opctl/config/yaml_parsers/__init__.py +0 -7
- ads/opctl/config/yaml_parsers/base.py +0 -58
- ads/opctl/config/yaml_parsers/distributed/__init__.py +0 -7
- ads/opctl/config/yaml_parsers/distributed/yaml_parser.py +0 -201
- ads/opctl/constants.py +0 -66
- ads/opctl/decorator/__init__.py +0 -5
- ads/opctl/decorator/common.py +0 -129
- ads/opctl/diagnostics/__init__.py +0 -5
- ads/opctl/diagnostics/__main__.py +0 -25
- ads/opctl/diagnostics/check_distributed_job_requirements.py +0 -212
- ads/opctl/diagnostics/check_requirements.py +0 -144
- ads/opctl/diagnostics/requirement_exception.py +0 -9
- ads/opctl/distributed/README.md +0 -109
- ads/opctl/distributed/__init__.py +0 -5
- ads/opctl/distributed/certificates.py +0 -32
- ads/opctl/distributed/cli.py +0 -207
- ads/opctl/distributed/cmds.py +0 -731
- ads/opctl/distributed/common/__init__.py +0 -5
- ads/opctl/distributed/common/abstract_cluster_provider.py +0 -449
- ads/opctl/distributed/common/abstract_framework_spec_builder.py +0 -88
- ads/opctl/distributed/common/cluster_config_helper.py +0 -103
- ads/opctl/distributed/common/cluster_provider_factory.py +0 -21
- ads/opctl/distributed/common/cluster_runner.py +0 -54
- ads/opctl/distributed/common/framework_factory.py +0 -29
- ads/opctl/docker/Dockerfile.job +0 -103
- ads/opctl/docker/Dockerfile.job.arm +0 -107
- ads/opctl/docker/Dockerfile.job.gpu +0 -175
- ads/opctl/docker/base-env.yaml +0 -13
- ads/opctl/docker/cuda.repo +0 -6
- ads/opctl/docker/operator/.dockerignore +0 -0
- ads/opctl/docker/operator/Dockerfile +0 -41
- ads/opctl/docker/operator/Dockerfile.gpu +0 -85
- ads/opctl/docker/operator/cuda.repo +0 -6
- ads/opctl/docker/operator/environment.yaml +0 -8
- ads/opctl/forecast.py +0 -11
- ads/opctl/index.yaml +0 -3
- ads/opctl/model/__init__.py +0 -5
- ads/opctl/model/cli.py +0 -65
- ads/opctl/model/cmds.py +0 -73
- ads/opctl/operator/README.md +0 -4
- ads/opctl/operator/__init__.py +0 -31
- ads/opctl/operator/cli.py +0 -344
- ads/opctl/operator/cmd.py +0 -596
- ads/opctl/operator/common/__init__.py +0 -5
- ads/opctl/operator/common/backend_factory.py +0 -460
- ads/opctl/operator/common/const.py +0 -27
- ads/opctl/operator/common/data/synthetic.csv +0 -16001
- ads/opctl/operator/common/dictionary_merger.py +0 -148
- ads/opctl/operator/common/errors.py +0 -42
- ads/opctl/operator/common/operator_config.py +0 -99
- ads/opctl/operator/common/operator_loader.py +0 -811
- ads/opctl/operator/common/operator_schema.yaml +0 -130
- ads/opctl/operator/common/operator_yaml_generator.py +0 -152
- ads/opctl/operator/common/utils.py +0 -208
- ads/opctl/operator/lowcode/__init__.py +0 -5
- ads/opctl/operator/lowcode/anomaly/MLoperator +0 -16
- ads/opctl/operator/lowcode/anomaly/README.md +0 -207
- ads/opctl/operator/lowcode/anomaly/__init__.py +0 -5
- ads/opctl/operator/lowcode/anomaly/__main__.py +0 -103
- ads/opctl/operator/lowcode/anomaly/cmd.py +0 -35
- ads/opctl/operator/lowcode/anomaly/const.py +0 -167
- ads/opctl/operator/lowcode/anomaly/environment.yaml +0 -10
- ads/opctl/operator/lowcode/anomaly/model/__init__.py +0 -5
- ads/opctl/operator/lowcode/anomaly/model/anomaly_dataset.py +0 -146
- ads/opctl/operator/lowcode/anomaly/model/anomaly_merlion.py +0 -162
- ads/opctl/operator/lowcode/anomaly/model/automlx.py +0 -99
- ads/opctl/operator/lowcode/anomaly/model/autots.py +0 -115
- ads/opctl/operator/lowcode/anomaly/model/base_model.py +0 -404
- ads/opctl/operator/lowcode/anomaly/model/factory.py +0 -110
- ads/opctl/operator/lowcode/anomaly/model/isolationforest.py +0 -78
- ads/opctl/operator/lowcode/anomaly/model/oneclasssvm.py +0 -78
- ads/opctl/operator/lowcode/anomaly/model/randomcutforest.py +0 -120
- ads/opctl/operator/lowcode/anomaly/model/tods.py +0 -119
- ads/opctl/operator/lowcode/anomaly/operator_config.py +0 -127
- ads/opctl/operator/lowcode/anomaly/schema.yaml +0 -401
- ads/opctl/operator/lowcode/anomaly/utils.py +0 -88
- ads/opctl/operator/lowcode/common/__init__.py +0 -5
- ads/opctl/operator/lowcode/common/const.py +0 -10
- ads/opctl/operator/lowcode/common/data.py +0 -116
- ads/opctl/operator/lowcode/common/errors.py +0 -47
- ads/opctl/operator/lowcode/common/transformations.py +0 -296
- ads/opctl/operator/lowcode/common/utils.py +0 -293
- ads/opctl/operator/lowcode/feature_store_marketplace/MLoperator +0 -13
- ads/opctl/operator/lowcode/feature_store_marketplace/README.md +0 -30
- ads/opctl/operator/lowcode/feature_store_marketplace/__init__.py +0 -5
- ads/opctl/operator/lowcode/feature_store_marketplace/__main__.py +0 -116
- ads/opctl/operator/lowcode/feature_store_marketplace/cmd.py +0 -85
- ads/opctl/operator/lowcode/feature_store_marketplace/const.py +0 -15
- ads/opctl/operator/lowcode/feature_store_marketplace/environment.yaml +0 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/__init__.py +0 -4
- ads/opctl/operator/lowcode/feature_store_marketplace/models/apigw_config.py +0 -32
- ads/opctl/operator/lowcode/feature_store_marketplace/models/db_config.py +0 -43
- ads/opctl/operator/lowcode/feature_store_marketplace/models/mysql_config.py +0 -120
- ads/opctl/operator/lowcode/feature_store_marketplace/models/serializable_yaml_model.py +0 -34
- ads/opctl/operator/lowcode/feature_store_marketplace/operator_utils.py +0 -386
- ads/opctl/operator/lowcode/feature_store_marketplace/schema.yaml +0 -160
- ads/opctl/operator/lowcode/forecast/MLoperator +0 -25
- ads/opctl/operator/lowcode/forecast/README.md +0 -209
- ads/opctl/operator/lowcode/forecast/__init__.py +0 -5
- ads/opctl/operator/lowcode/forecast/__main__.py +0 -89
- ads/opctl/operator/lowcode/forecast/cmd.py +0 -40
- ads/opctl/operator/lowcode/forecast/const.py +0 -92
- ads/opctl/operator/lowcode/forecast/environment.yaml +0 -20
- ads/opctl/operator/lowcode/forecast/errors.py +0 -26
- ads/opctl/operator/lowcode/forecast/model/__init__.py +0 -5
- ads/opctl/operator/lowcode/forecast/model/arima.py +0 -279
- ads/opctl/operator/lowcode/forecast/model/automlx.py +0 -542
- ads/opctl/operator/lowcode/forecast/model/autots.py +0 -312
- ads/opctl/operator/lowcode/forecast/model/base_model.py +0 -863
- ads/opctl/operator/lowcode/forecast/model/factory.py +0 -106
- ads/opctl/operator/lowcode/forecast/model/forecast_datasets.py +0 -492
- ads/opctl/operator/lowcode/forecast/model/ml_forecast.py +0 -243
- ads/opctl/operator/lowcode/forecast/model/neuralprophet.py +0 -486
- ads/opctl/operator/lowcode/forecast/model/prophet.py +0 -445
- ads/opctl/operator/lowcode/forecast/model_evaluator.py +0 -244
- ads/opctl/operator/lowcode/forecast/operator_config.py +0 -234
- ads/opctl/operator/lowcode/forecast/schema.yaml +0 -506
- ads/opctl/operator/lowcode/forecast/utils.py +0 -413
- ads/opctl/operator/lowcode/forecast/whatifserve/__init__.py +0 -7
- ads/opctl/operator/lowcode/forecast/whatifserve/deployment_manager.py +0 -285
- ads/opctl/operator/lowcode/forecast/whatifserve/score.py +0 -246
- ads/opctl/operator/lowcode/pii/MLoperator +0 -17
- ads/opctl/operator/lowcode/pii/README.md +0 -208
- ads/opctl/operator/lowcode/pii/__init__.py +0 -5
- ads/opctl/operator/lowcode/pii/__main__.py +0 -78
- ads/opctl/operator/lowcode/pii/cmd.py +0 -39
- ads/opctl/operator/lowcode/pii/constant.py +0 -84
- ads/opctl/operator/lowcode/pii/environment.yaml +0 -17
- ads/opctl/operator/lowcode/pii/errors.py +0 -27
- ads/opctl/operator/lowcode/pii/model/__init__.py +0 -5
- ads/opctl/operator/lowcode/pii/model/factory.py +0 -82
- ads/opctl/operator/lowcode/pii/model/guardrails.py +0 -167
- ads/opctl/operator/lowcode/pii/model/pii.py +0 -145
- ads/opctl/operator/lowcode/pii/model/processor/__init__.py +0 -34
- ads/opctl/operator/lowcode/pii/model/processor/email_replacer.py +0 -34
- ads/opctl/operator/lowcode/pii/model/processor/mbi_replacer.py +0 -35
- ads/opctl/operator/lowcode/pii/model/processor/name_replacer.py +0 -225
- ads/opctl/operator/lowcode/pii/model/processor/number_replacer.py +0 -73
- ads/opctl/operator/lowcode/pii/model/processor/remover.py +0 -26
- ads/opctl/operator/lowcode/pii/model/report.py +0 -487
- ads/opctl/operator/lowcode/pii/operator_config.py +0 -95
- ads/opctl/operator/lowcode/pii/schema.yaml +0 -108
- ads/opctl/operator/lowcode/pii/utils.py +0 -43
- ads/opctl/operator/lowcode/recommender/MLoperator +0 -16
- ads/opctl/operator/lowcode/recommender/README.md +0 -206
- ads/opctl/operator/lowcode/recommender/__init__.py +0 -5
- ads/opctl/operator/lowcode/recommender/__main__.py +0 -82
- ads/opctl/operator/lowcode/recommender/cmd.py +0 -33
- ads/opctl/operator/lowcode/recommender/constant.py +0 -30
- ads/opctl/operator/lowcode/recommender/environment.yaml +0 -11
- ads/opctl/operator/lowcode/recommender/model/base_model.py +0 -212
- ads/opctl/operator/lowcode/recommender/model/factory.py +0 -56
- ads/opctl/operator/lowcode/recommender/model/recommender_dataset.py +0 -25
- ads/opctl/operator/lowcode/recommender/model/svd.py +0 -106
- ads/opctl/operator/lowcode/recommender/operator_config.py +0 -81
- ads/opctl/operator/lowcode/recommender/schema.yaml +0 -265
- ads/opctl/operator/lowcode/recommender/utils.py +0 -13
- ads/opctl/operator/runtime/__init__.py +0 -5
- ads/opctl/operator/runtime/const.py +0 -17
- ads/opctl/operator/runtime/container_runtime_schema.yaml +0 -50
- ads/opctl/operator/runtime/marketplace_runtime.py +0 -50
- ads/opctl/operator/runtime/python_marketplace_runtime_schema.yaml +0 -21
- ads/opctl/operator/runtime/python_runtime_schema.yaml +0 -21
- ads/opctl/operator/runtime/runtime.py +0 -115
- ads/opctl/schema.yaml.yml +0 -36
- ads/opctl/script.py +0 -40
- ads/opctl/spark/__init__.py +0 -5
- ads/opctl/spark/cli.py +0 -43
- ads/opctl/spark/cmds.py +0 -147
- ads/opctl/templates/diagnostic_report_template.jinja2 +0 -102
- ads/opctl/utils.py +0 -344
- ads/oracledb/__init__.py +0 -5
- ads/oracledb/oracle_db.py +0 -346
- ads/pipeline/__init__.py +0 -39
- ads/pipeline/ads_pipeline.py +0 -2279
- ads/pipeline/ads_pipeline_run.py +0 -772
- ads/pipeline/ads_pipeline_step.py +0 -605
- ads/pipeline/builders/__init__.py +0 -5
- ads/pipeline/builders/infrastructure/__init__.py +0 -5
- ads/pipeline/builders/infrastructure/custom_script.py +0 -32
- ads/pipeline/cli.py +0 -119
- ads/pipeline/extension.py +0 -291
- ads/pipeline/schema/__init__.py +0 -5
- ads/pipeline/schema/cs_step_schema.json +0 -35
- ads/pipeline/schema/ml_step_schema.json +0 -31
- ads/pipeline/schema/pipeline_schema.json +0 -71
- ads/pipeline/visualizer/__init__.py +0 -5
- ads/pipeline/visualizer/base.py +0 -570
- ads/pipeline/visualizer/graph_renderer.py +0 -272
- ads/pipeline/visualizer/text_renderer.py +0 -84
- ads/secrets/__init__.py +0 -11
- ads/secrets/adb.py +0 -386
- ads/secrets/auth_token.py +0 -86
- ads/secrets/big_data_service.py +0 -365
- ads/secrets/mysqldb.py +0 -149
- ads/secrets/oracledb.py +0 -160
- ads/secrets/secrets.py +0 -407
- ads/telemetry/__init__.py +0 -7
- ads/telemetry/base.py +0 -69
- ads/telemetry/client.py +0 -125
- ads/telemetry/telemetry.py +0 -257
- ads/templates/dataflow_pyspark.jinja2 +0 -13
- ads/templates/dataflow_sparksql.jinja2 +0 -22
- ads/templates/func.jinja2 +0 -20
- ads/templates/schemas/openapi.json +0 -1740
- ads/templates/score-pkl.jinja2 +0 -173
- ads/templates/score.jinja2 +0 -322
- ads/templates/score_embedding_onnx.jinja2 +0 -202
- ads/templates/score_generic.jinja2 +0 -165
- ads/templates/score_huggingface_pipeline.jinja2 +0 -217
- ads/templates/score_lightgbm.jinja2 +0 -185
- ads/templates/score_onnx.jinja2 +0 -407
- ads/templates/score_onnx_new.jinja2 +0 -473
- ads/templates/score_oracle_automl.jinja2 +0 -185
- ads/templates/score_pyspark.jinja2 +0 -154
- ads/templates/score_pytorch.jinja2 +0 -219
- ads/templates/score_scikit-learn.jinja2 +0 -184
- ads/templates/score_tensorflow.jinja2 +0 -184
- ads/templates/score_xgboost.jinja2 +0 -178
- ads/text_dataset/__init__.py +0 -5
- ads/text_dataset/backends.py +0 -211
- ads/text_dataset/dataset.py +0 -445
- ads/text_dataset/extractor.py +0 -207
- ads/text_dataset/options.py +0 -53
- ads/text_dataset/udfs.py +0 -22
- ads/text_dataset/utils.py +0 -49
- ads/type_discovery/__init__.py +0 -9
- ads/type_discovery/abstract_detector.py +0 -21
- ads/type_discovery/constant_detector.py +0 -41
- ads/type_discovery/continuous_detector.py +0 -54
- ads/type_discovery/credit_card_detector.py +0 -99
- ads/type_discovery/datetime_detector.py +0 -92
- ads/type_discovery/discrete_detector.py +0 -118
- ads/type_discovery/document_detector.py +0 -146
- ads/type_discovery/ip_detector.py +0 -68
- ads/type_discovery/latlon_detector.py +0 -90
- ads/type_discovery/phone_number_detector.py +0 -63
- ads/type_discovery/type_discovery_driver.py +0 -87
- ads/type_discovery/typed_feature.py +0 -594
- ads/type_discovery/unknown_detector.py +0 -41
- ads/type_discovery/zipcode_detector.py +0 -48
- ads/vault/__init__.py +0 -7
- ads/vault/vault.py +0 -237
- oracle_ads-2.13.7.dist-info/RECORD +0 -858
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,811 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# -*- coding: utf-8; -*-
|
3
|
-
|
4
|
-
# Copyright (c) 2023 Oracle and/or its affiliates.
|
5
|
-
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
|
-
|
7
|
-
import glob
|
8
|
-
import importlib
|
9
|
-
import inspect
|
10
|
-
import os
|
11
|
-
import re
|
12
|
-
import shutil
|
13
|
-
import sys
|
14
|
-
import tempfile
|
15
|
-
from abc import ABC, abstractmethod
|
16
|
-
from dataclasses import dataclass, field
|
17
|
-
from typing import Any, Dict, List
|
18
|
-
from urllib.parse import urlparse
|
19
|
-
|
20
|
-
from yaml import SafeLoader as loader
|
21
|
-
|
22
|
-
from ads.opctl.operator.common.utils import default_signer
|
23
|
-
from ads.common.decorator.runtime_dependency import runtime_dependency
|
24
|
-
from ads.common.serializer import DataClassSerializable
|
25
|
-
from ads.common.utils import copy_from_uri
|
26
|
-
from ads.opctl import logger
|
27
|
-
from ads.opctl.constants import OPERATOR_MODULE_PATH
|
28
|
-
from ads.opctl.operator import __operators__
|
29
|
-
|
30
|
-
from .const import ARCH_TYPE, PACK_TYPE
|
31
|
-
from .errors import OperatorNotFoundError
|
32
|
-
|
33
|
-
LOCAL_SCHEME = "local"
|
34
|
-
MAIN_BRANCH = "main"
|
35
|
-
|
36
|
-
DEFAULT_SHAPE = "VM.Standard.E4.Flex"
|
37
|
-
DEFAULT_OCPUS = 32
|
38
|
-
DEFAULT_MEMORY_IN_GBS = 512
|
39
|
-
DEFAULT_BLOCK_STORAGE_SIZE_IN_GBS = 512
|
40
|
-
DEFAULT_SPARK_VERSION = "3.2.1"
|
41
|
-
DEFAULT_NUM_OF_EXECUTORS = 1
|
42
|
-
|
43
|
-
|
44
|
-
@dataclass(repr=True)
|
45
|
-
class JobsDefaultParams(DataClassSerializable):
|
46
|
-
"""Class representing the default params for the DataScience Job.
|
47
|
-
|
48
|
-
Attributes
|
49
|
-
----------
|
50
|
-
shape_name (str)
|
51
|
-
The name of the shape.
|
52
|
-
ocpus (int)
|
53
|
-
The OCPUs count.
|
54
|
-
memory_in_gbs (int)
|
55
|
-
The size of the memory in GBs.
|
56
|
-
block_storage_size_in_GBs (int)
|
57
|
-
Size of the block storage drive.
|
58
|
-
"""
|
59
|
-
|
60
|
-
shape_name: str = DEFAULT_SHAPE
|
61
|
-
ocpus: int = DEFAULT_OCPUS
|
62
|
-
memory_in_gbs: int = DEFAULT_MEMORY_IN_GBS
|
63
|
-
block_storage_size_in_GBs: int = DEFAULT_BLOCK_STORAGE_SIZE_IN_GBS
|
64
|
-
|
65
|
-
@classmethod
|
66
|
-
def from_dict(cls, *args, **kwargs: Dict) -> "JobsDefaultParams":
|
67
|
-
return super().from_dict(*args, **{**kwargs, **{"side_effect": None}})
|
68
|
-
|
69
|
-
|
70
|
-
@dataclass(repr=True)
|
71
|
-
class DataFlowDefaultParams(DataClassSerializable):
|
72
|
-
"""Class representing the default params for the Data Flow Application.
|
73
|
-
|
74
|
-
Attributes
|
75
|
-
----------
|
76
|
-
driver_shape (str)
|
77
|
-
The name of the driver shape.
|
78
|
-
driver_shape_ocpus (int)
|
79
|
-
The OCPUs count for the driver shape.
|
80
|
-
driver_shape_memory_in_gbs (int)
|
81
|
-
The size of the memory in GBs for the driver shape.
|
82
|
-
executor_shape (str)
|
83
|
-
The name of the executor shape.
|
84
|
-
executor_shape_ocpus (int)
|
85
|
-
The OCPUs count for the executor shape.
|
86
|
-
executor_shape_memory_in_gbs (int)
|
87
|
-
The size of the memory in GBs for the executor shape.
|
88
|
-
num_executors (int)
|
89
|
-
The number of executors.
|
90
|
-
spark_version (str)
|
91
|
-
The version of the SPARK.
|
92
|
-
"""
|
93
|
-
|
94
|
-
spark_version: str = DEFAULT_SPARK_VERSION
|
95
|
-
driver_shape: str = DEFAULT_SHAPE
|
96
|
-
driver_shape_ocpus: int = DEFAULT_OCPUS
|
97
|
-
driver_shape_memory_in_gbs: int = DEFAULT_MEMORY_IN_GBS
|
98
|
-
|
99
|
-
num_executors: int = DEFAULT_NUM_OF_EXECUTORS
|
100
|
-
executor_shape: str = DEFAULT_SHAPE
|
101
|
-
executor_shape_ocpus: int = DEFAULT_OCPUS
|
102
|
-
executor_shape_memory_in_gbs: int = DEFAULT_MEMORY_IN_GBS
|
103
|
-
|
104
|
-
|
105
|
-
@dataclass(repr=True)
|
106
|
-
class OperatorInfo(DataClassSerializable):
|
107
|
-
"""Class representing brief information about the operator.
|
108
|
-
|
109
|
-
Attributes
|
110
|
-
----------
|
111
|
-
type (str)
|
112
|
-
The type of the operator.
|
113
|
-
name (str)
|
114
|
-
The name of the operator.
|
115
|
-
gpu (bool)
|
116
|
-
Whether the operator supports GPU.
|
117
|
-
short_description (str)
|
118
|
-
A short description of the operator.
|
119
|
-
description (str)
|
120
|
-
A detailed description of the operator.
|
121
|
-
version (str)
|
122
|
-
The version of the operator.
|
123
|
-
conda (str)
|
124
|
-
The conda environment required to run the operator.
|
125
|
-
conda_type (str)
|
126
|
-
The type of conda pack (e.g., PACK_TYPE.CUSTOM).
|
127
|
-
path (str)
|
128
|
-
The physical location of the operator.
|
129
|
-
keywords (List[str])
|
130
|
-
Keywords associated with the operator.
|
131
|
-
backends (List[str])
|
132
|
-
List of supported backends.
|
133
|
-
jobs_default_params (JobsDefaultParams)
|
134
|
-
The default params for the Jobs service.
|
135
|
-
Will be used when operator run on the Jobs service.
|
136
|
-
dataflow_default_params (DataFlowDefaultParams)
|
137
|
-
The default params for the DataFlow service.
|
138
|
-
Will be used when operator run on the DataFlow service.
|
139
|
-
logo: str
|
140
|
-
The logo of the operator.
|
141
|
-
Needs to be attached in the "svg+xml;base64" format.
|
142
|
-
|
143
|
-
Properties
|
144
|
-
----------
|
145
|
-
conda_prefix (str)
|
146
|
-
Generates the conda prefix for the custom conda pack.
|
147
|
-
"""
|
148
|
-
|
149
|
-
type: str = ""
|
150
|
-
name: str = ""
|
151
|
-
gpu: bool = False
|
152
|
-
description: str = ""
|
153
|
-
version: str = ""
|
154
|
-
conda: str = ""
|
155
|
-
conda_type: str = ""
|
156
|
-
path: str = ""
|
157
|
-
keywords: List[str] = None
|
158
|
-
backends: List[str] = None
|
159
|
-
jobs_default_params: JobsDefaultParams = field(default_factory=JobsDefaultParams)
|
160
|
-
dataflow_default_params: DataFlowDefaultParams = field(
|
161
|
-
default_factory=DataFlowDefaultParams
|
162
|
-
)
|
163
|
-
logo: str = ""
|
164
|
-
|
165
|
-
@property
|
166
|
-
def conda_prefix(self) -> str:
|
167
|
-
"""
|
168
|
-
Generates conda prefix for the custom conda pack.
|
169
|
-
|
170
|
-
Example
|
171
|
-
-------
|
172
|
-
conda = "forecast_v1"
|
173
|
-
conda_prefix == "cpu/forecast/1/forecast_v1"
|
174
|
-
|
175
|
-
Returns
|
176
|
-
-------
|
177
|
-
str
|
178
|
-
The conda prefix for the custom conda pack.
|
179
|
-
"""
|
180
|
-
return os.path.join(
|
181
|
-
f"{ARCH_TYPE.GPU if self.gpu else ARCH_TYPE.CPU}",
|
182
|
-
self.name or self.type,
|
183
|
-
re.sub("[^0-9.]", "", self.version),
|
184
|
-
self.conda or f"{self.type}_{self.version}",
|
185
|
-
)
|
186
|
-
|
187
|
-
def __post_init__(self):
|
188
|
-
self.gpu = self.gpu == True or self.gpu == "yes"
|
189
|
-
self.version = self.version or "v1"
|
190
|
-
self.conda_type = self.conda_type or PACK_TYPE.CUSTOM
|
191
|
-
self.conda = self.conda or f"{self.type}_{self.version}"
|
192
|
-
self.jobs_default_params = self.jobs_default_params or JobsDefaultParams()
|
193
|
-
self.dataflow_default_params = (
|
194
|
-
self.dataflow_default_params or DataFlowDefaultParams()
|
195
|
-
)
|
196
|
-
|
197
|
-
@classmethod
|
198
|
-
def from_yaml(
|
199
|
-
cls,
|
200
|
-
yaml_string: str = None,
|
201
|
-
uri: str = None,
|
202
|
-
loader: callable = loader,
|
203
|
-
**kwargs,
|
204
|
-
) -> "OperatorInfo":
|
205
|
-
"""Creates an object from YAML string provided or from URI location containing YAML string
|
206
|
-
|
207
|
-
Parameters
|
208
|
-
----------
|
209
|
-
yaml_string (string, optional): YAML string. Defaults to None.
|
210
|
-
uri (string, optional): URI location of file containing YAML string. Defaults to None.
|
211
|
-
loader (callable, optional): Custom YAML loader. Defaults to CLoader/SafeLoader.
|
212
|
-
kwargs (dict): keyword arguments to be passed into fsspec.open().
|
213
|
-
For OCI object storage, this should be config="path/to/.oci/config".
|
214
|
-
For other storage connections consider e.g. host, port, username, password, etc.
|
215
|
-
|
216
|
-
Raises
|
217
|
-
------
|
218
|
-
ValueError
|
219
|
-
Raised if neither string nor uri is provided
|
220
|
-
|
221
|
-
Returns
|
222
|
-
-------
|
223
|
-
cls
|
224
|
-
Returns instance of the class
|
225
|
-
"""
|
226
|
-
obj: OperatorInfo = super().from_yaml(
|
227
|
-
yaml_string=yaml_string, uri=uri, loader=loader, **kwargs
|
228
|
-
)
|
229
|
-
|
230
|
-
if uri:
|
231
|
-
obj.path = os.path.dirname(uri)
|
232
|
-
return obj
|
233
|
-
|
234
|
-
|
235
|
-
class Loader(ABC):
|
236
|
-
"""Operator Loader Interface.
|
237
|
-
|
238
|
-
Attributes
|
239
|
-
----------
|
240
|
-
uri (str)
|
241
|
-
The operator's location (e.g., local path, HTTP path, OCI path, GIT path).
|
242
|
-
uri_dst (str)
|
243
|
-
The local folder where the operator can be downloaded from the remote location.
|
244
|
-
A temporary folder will be generated if not provided.
|
245
|
-
auth (Dict, optional)
|
246
|
-
Default authentication settings.
|
247
|
-
|
248
|
-
Methods
|
249
|
-
-------
|
250
|
-
load (**kwargs)
|
251
|
-
Downloads the operator's source code to the local folder.
|
252
|
-
cleanup (**kwargs)
|
253
|
-
Cleans up all temporary files and folders created during operator loading.
|
254
|
-
"""
|
255
|
-
|
256
|
-
def __init__(self, uri: str, uri_dst: str = None, auth: Dict = None) -> None:
|
257
|
-
"""
|
258
|
-
Instantiates Loader.
|
259
|
-
|
260
|
-
Parameters
|
261
|
-
----------
|
262
|
-
uri (str)
|
263
|
-
The operator's location.
|
264
|
-
uri_dst (str)
|
265
|
-
The local folder where the operator can be downloaded from the remote location.
|
266
|
-
A temporary folder will be generated if not provided.
|
267
|
-
auth (Dict, optional)
|
268
|
-
Default authentication settings.
|
269
|
-
"""
|
270
|
-
self.uri = uri
|
271
|
-
self.uri_dst = uri_dst
|
272
|
-
self.auth = auth
|
273
|
-
|
274
|
-
@abstractmethod
|
275
|
-
def _load(self, **kwargs: Dict) -> OperatorInfo:
|
276
|
-
"""
|
277
|
-
Downloads the operator's source code to the local folder.
|
278
|
-
This method needs to be implemented on the child level.
|
279
|
-
|
280
|
-
Parameters
|
281
|
-
------------
|
282
|
-
**kwargs (Dict)
|
283
|
-
Additional optional attributes.
|
284
|
-
|
285
|
-
Returns
|
286
|
-
-------
|
287
|
-
OperatorInfo
|
288
|
-
Information about the operator.
|
289
|
-
"""
|
290
|
-
pass
|
291
|
-
|
292
|
-
def load(self, **kwargs: Dict) -> OperatorInfo:
|
293
|
-
"""
|
294
|
-
Downloads the operator's source code to the local folder.
|
295
|
-
|
296
|
-
Parameters
|
297
|
-
------------
|
298
|
-
**kwargs (Dict)
|
299
|
-
Additional optional attributes.
|
300
|
-
|
301
|
-
Returns
|
302
|
-
-------
|
303
|
-
OperatorInfo
|
304
|
-
Information about the operator.
|
305
|
-
"""
|
306
|
-
operator_info = self._load(**kwargs)
|
307
|
-
# Adds the operators path to the system path.
|
308
|
-
# This will allow to execute the operator via runpy.run_module()
|
309
|
-
sys.path.insert(0, "/".join(operator_info.path.split("/")[0:-1]))
|
310
|
-
return operator_info
|
311
|
-
|
312
|
-
def cleanup(self, **kwargs: Dict) -> None:
|
313
|
-
"""
|
314
|
-
Cleans up all temporary files and folders created during the loading of the operator.
|
315
|
-
|
316
|
-
Parameters
|
317
|
-
------------
|
318
|
-
**kwargs (Dict)
|
319
|
-
Additional optional attributes.
|
320
|
-
"""
|
321
|
-
pass
|
322
|
-
|
323
|
-
@classmethod
|
324
|
-
@abstractmethod
|
325
|
-
def compatible(cls, uri: str, **kwargs: Dict) -> bool:
|
326
|
-
"""
|
327
|
-
Checks if the loader is compatible with the given URI.
|
328
|
-
|
329
|
-
Parameters
|
330
|
-
------------
|
331
|
-
uri (str)
|
332
|
-
The operator's location.
|
333
|
-
**kwargs (Dict)
|
334
|
-
Additional optional attributes.
|
335
|
-
Returns
|
336
|
-
-------
|
337
|
-
bool
|
338
|
-
Whether the loader is compatible with the given URI.
|
339
|
-
"""
|
340
|
-
pass
|
341
|
-
|
342
|
-
|
343
|
-
class OperatorLoader:
|
344
|
-
"""
|
345
|
-
The operator loader class.
|
346
|
-
Helps to download the operator's source code to the local folder.
|
347
|
-
|
348
|
-
Attributes
|
349
|
-
----------
|
350
|
-
loader (Loader)
|
351
|
-
The specific operator's loader.
|
352
|
-
"""
|
353
|
-
|
354
|
-
def __init__(self, loader: Loader):
|
355
|
-
"""
|
356
|
-
Initializes OperatorLoader.
|
357
|
-
|
358
|
-
Parameters
|
359
|
-
----------
|
360
|
-
loader (Loader)
|
361
|
-
The particular operator loader.
|
362
|
-
"""
|
363
|
-
self.loader = loader
|
364
|
-
|
365
|
-
def load(self, **kwargs: Dict) -> OperatorInfo:
|
366
|
-
"""
|
367
|
-
Downloads the operator's source code to the local folder.
|
368
|
-
|
369
|
-
Parameters
|
370
|
-
------------
|
371
|
-
**kwargs (Dict)
|
372
|
-
Additional optional attributes.
|
373
|
-
|
374
|
-
Returns
|
375
|
-
-------
|
376
|
-
OperatorInfo
|
377
|
-
Detailed information about the operator.
|
378
|
-
"""
|
379
|
-
return self.loader.load(**kwargs)
|
380
|
-
|
381
|
-
@classmethod
|
382
|
-
def from_uri(
|
383
|
-
cls, uri: str, uri_dst: str = None, auth: Dict = None
|
384
|
-
) -> "OperatorLoader":
|
385
|
-
"""
|
386
|
-
Constructs the operator's loader instance.
|
387
|
-
|
388
|
-
Parameters
|
389
|
-
----------
|
390
|
-
uri (str)
|
391
|
-
The operator's location.
|
392
|
-
uri_dst (str)
|
393
|
-
The local folder where the operator can be downloaded from the remote location.
|
394
|
-
A temporary folder will be generated if not provided.
|
395
|
-
auth (Dict, optional)
|
396
|
-
Default authentication settings.
|
397
|
-
|
398
|
-
Returns
|
399
|
-
-------
|
400
|
-
OperatorLoader
|
401
|
-
An instance of OperatorLoader.
|
402
|
-
"""
|
403
|
-
if not uri:
|
404
|
-
raise ValueError("The `uri` attribute must be provided.")
|
405
|
-
|
406
|
-
uri = os.path.expanduser(uri)
|
407
|
-
|
408
|
-
for loader in (
|
409
|
-
ServiceOperatorLoader,
|
410
|
-
LocalOperatorLoader,
|
411
|
-
GitOperatorLoader,
|
412
|
-
RemoteOperatorLoader,
|
413
|
-
):
|
414
|
-
if loader.compatible(uri=uri, auth=auth):
|
415
|
-
return cls(loader=loader(uri=uri, uri_dst=uri_dst, auth=auth))
|
416
|
-
|
417
|
-
raise ValueError(f"The operator cannot be loaded from the given source: {uri}.")
|
418
|
-
|
419
|
-
|
420
|
-
class ServiceOperatorLoader(Loader):
|
421
|
-
"""
|
422
|
-
Class to load a service operator.
|
423
|
-
|
424
|
-
Attributes
|
425
|
-
----------
|
426
|
-
uri (str)
|
427
|
-
The operator's location (e.g., local path, HTTP path, OCI path, GIT path).
|
428
|
-
uri_dst (str)
|
429
|
-
The local folder where the operator can be downloaded from the remote location.
|
430
|
-
A temporary folder will be generated if not provided.
|
431
|
-
auth (Dict, optional)
|
432
|
-
Default authentication settings.
|
433
|
-
"""
|
434
|
-
|
435
|
-
def _load(self, **kwargs: Dict) -> OperatorInfo:
|
436
|
-
"""
|
437
|
-
Loads the service operator info.
|
438
|
-
|
439
|
-
Parameters
|
440
|
-
----------
|
441
|
-
**kwargs (Dict)
|
442
|
-
Additional optional attributes.
|
443
|
-
|
444
|
-
Returns
|
445
|
-
-------
|
446
|
-
OperatorInfo
|
447
|
-
Detailed information about the operator.
|
448
|
-
"""
|
449
|
-
return _operator_info(name=self.uri)
|
450
|
-
|
451
|
-
@classmethod
|
452
|
-
def compatible(cls, uri: str, **kwargs: Dict) -> bool:
|
453
|
-
"""
|
454
|
-
Checks if the loader is compatible with the given URI.
|
455
|
-
|
456
|
-
Parameters
|
457
|
-
----------
|
458
|
-
uri (str)
|
459
|
-
The operator's location.
|
460
|
-
**kwargs (Dict)
|
461
|
-
Additional optional attributes.
|
462
|
-
|
463
|
-
Returns
|
464
|
-
-------
|
465
|
-
bool
|
466
|
-
Whether the loader is compatible with the given URI.
|
467
|
-
"""
|
468
|
-
return uri.lower() in __operators__
|
469
|
-
|
470
|
-
|
471
|
-
class LocalOperatorLoader(Loader):
|
472
|
-
"""
|
473
|
-
Class to load a local operator.
|
474
|
-
|
475
|
-
Attributes
|
476
|
-
----------
|
477
|
-
uri (str)
|
478
|
-
The operator's location (e.g., local path, HTTP path, OCI path, GIT path).
|
479
|
-
uri_dst (str)
|
480
|
-
The local folder where the operator can be downloaded from the remote location.
|
481
|
-
A temporary folder will be generated if not provided.
|
482
|
-
auth (Dict, optional)
|
483
|
-
Default authentication settings.
|
484
|
-
"""
|
485
|
-
|
486
|
-
def _load(self, **kwargs: Dict) -> OperatorInfo:
|
487
|
-
"""
|
488
|
-
Loads the local operator info.
|
489
|
-
|
490
|
-
Parameters
|
491
|
-
----------
|
492
|
-
**kwargs (Dict)
|
493
|
-
Additional optional attributes.
|
494
|
-
|
495
|
-
Returns
|
496
|
-
-------
|
497
|
-
OperatorInfo
|
498
|
-
Detailed information about the operator.
|
499
|
-
"""
|
500
|
-
return _operator_info(path=self.uri)
|
501
|
-
|
502
|
-
@classmethod
|
503
|
-
def compatible(cls, uri: str, **kwargs: Dict) -> bool:
|
504
|
-
"""Checks if the loader is compatible with the given URI.
|
505
|
-
|
506
|
-
Parameters
|
507
|
-
----------
|
508
|
-
uri (str)
|
509
|
-
The operator's location.
|
510
|
-
**kwargs (Dict)
|
511
|
-
Additional optional attributes.
|
512
|
-
|
513
|
-
Returns
|
514
|
-
-------
|
515
|
-
bool
|
516
|
-
Whether the loader is compatible with the given URI.
|
517
|
-
"""
|
518
|
-
return not urlparse(uri).scheme
|
519
|
-
|
520
|
-
|
521
|
-
class RemoteOperatorLoader(Loader):
|
522
|
-
"""
|
523
|
-
Class to load an operator from a remote location (OCI Object Storage).
|
524
|
-
|
525
|
-
Attributes
|
526
|
-
----------
|
527
|
-
uri (str)
|
528
|
-
The operator's location (e.g., local path, HTTP path, OCI path, GIT path).
|
529
|
-
uri_dst (str)
|
530
|
-
The local folder where the operator can be downloaded from the remote location.
|
531
|
-
A temporary folder will be generated if not provided.
|
532
|
-
auth (Dict, optional)
|
533
|
-
Default authentication settings.
|
534
|
-
"""
|
535
|
-
|
536
|
-
def __init__(self, uri: str, uri_dst: str = None, auth: Dict = None) -> None:
|
537
|
-
"""
|
538
|
-
Instantiates Loader.
|
539
|
-
|
540
|
-
Parameters
|
541
|
-
----------
|
542
|
-
uri (str)
|
543
|
-
The operator's location.
|
544
|
-
uri_dst (str)
|
545
|
-
The local folder where the operator can be downloaded from the remote location.
|
546
|
-
A temporary folder will be generated if not provided.
|
547
|
-
auth (Dict, optional)
|
548
|
-
Default authentication settings.
|
549
|
-
"""
|
550
|
-
super().__init__(uri=uri, uri_dst=uri_dst, auth=auth or default_signer())
|
551
|
-
|
552
|
-
def _load(self, **kwargs: Dict) -> OperatorInfo:
|
553
|
-
"""Downloads the operator's source code to the local folder.
|
554
|
-
|
555
|
-
Parameters
|
556
|
-
----------
|
557
|
-
**kwargs (Dict)
|
558
|
-
Additional optional attributes.
|
559
|
-
|
560
|
-
Returns
|
561
|
-
-------
|
562
|
-
OperatorInfo
|
563
|
-
Detailed information about the operator.
|
564
|
-
"""
|
565
|
-
self.tmp_dir = tempfile.mkdtemp() if not self.uri_dst else None
|
566
|
-
uri_dst = os.path.join(
|
567
|
-
(self.uri_dst or self.tmp_dir).rstrip(),
|
568
|
-
os.path.splitext(os.path.basename(self.uri.rstrip()))[0],
|
569
|
-
)
|
570
|
-
|
571
|
-
logger.info(f"Downloading operator from `{self.uri}` to `{uri_dst}`.")
|
572
|
-
copy_from_uri(
|
573
|
-
self.uri, uri_dst, force_overwrite=True, auth=self.auth, unpack=True
|
574
|
-
)
|
575
|
-
|
576
|
-
return _operator_info(path=uri_dst)
|
577
|
-
|
578
|
-
def cleanup(self, **kwargs: Dict) -> None:
|
579
|
-
"""Cleans up all temporary files and folders created during operator loading.
|
580
|
-
|
581
|
-
Parameters
|
582
|
-
----------
|
583
|
-
**kwargs (Dict)
|
584
|
-
Additional optional attributes.
|
585
|
-
"""
|
586
|
-
super().cleanup(**kwargs)
|
587
|
-
try:
|
588
|
-
shutil.rmtree(self.tmp_dir)
|
589
|
-
except Exception as ex:
|
590
|
-
logger.debug(ex)
|
591
|
-
|
592
|
-
@classmethod
|
593
|
-
def compatible(cls, uri: str, **kwargs: Dict) -> bool:
|
594
|
-
"""Checks if the loader is compatible with the given URI.
|
595
|
-
|
596
|
-
Parameters
|
597
|
-
----------
|
598
|
-
uri (str)
|
599
|
-
The operator's location.
|
600
|
-
**kwargs (Dict)
|
601
|
-
Additional optional attributes.
|
602
|
-
Returns
|
603
|
-
-------
|
604
|
-
bool
|
605
|
-
Whether the loader is compatible with the given URI.
|
606
|
-
"""
|
607
|
-
return urlparse(uri).scheme.lower() == "oci"
|
608
|
-
|
609
|
-
|
610
|
-
class GitOperatorLoader(Loader):
|
611
|
-
"""
|
612
|
-
Class to load an operator from a GIT repository.
|
613
|
-
Supported URI format: https://github.com/<repository>@<branch-nane>#<path/to/the/operator>
|
614
|
-
Examples:
|
615
|
-
- https://github.com/my-operator-repository.git@feature-branch#forecasting
|
616
|
-
- https://github.com/my-operator-repository#forecasting
|
617
|
-
- https://github.com/my-operator-repository
|
618
|
-
|
619
|
-
Attributes
|
620
|
-
----------
|
621
|
-
uri (str)
|
622
|
-
The operator's location (e.g., local path, HTTP path, OCI path, GIT path).
|
623
|
-
uri_dst (str)
|
624
|
-
The local folder where the operator can be downloaded from the remote location.
|
625
|
-
A temporary folder will be generated if not provided.
|
626
|
-
auth (Dict, optional)
|
627
|
-
Default authentication settings.
|
628
|
-
"""
|
629
|
-
|
630
|
-
@runtime_dependency(
|
631
|
-
module="git",
|
632
|
-
err_msg=(
|
633
|
-
"The `git` library is required. "
|
634
|
-
"Use `pip install git` to install the `git` library."
|
635
|
-
),
|
636
|
-
)
|
637
|
-
def _load(self, **kwargs: Dict) -> OperatorInfo:
|
638
|
-
"""
|
639
|
-
Downloads the operator's source code to the local folder.
|
640
|
-
|
641
|
-
Parameters
|
642
|
-
----------
|
643
|
-
**kwargs (Dict)
|
644
|
-
Additional optional attributes.
|
645
|
-
|
646
|
-
Returns
|
647
|
-
-------
|
648
|
-
OperatorInfo
|
649
|
-
Detailed information about the operator.
|
650
|
-
"""
|
651
|
-
import git
|
652
|
-
|
653
|
-
self.tmp_dir = tempfile.mkdtemp() if not self.uri_dst else None
|
654
|
-
uri_dst = self.uri_dst or self.tmp_dir
|
655
|
-
|
656
|
-
uri_dst = os.path.join(
|
657
|
-
(self.uri_dst or self.tmp_dir).rstrip(),
|
658
|
-
os.path.splitext(os.path.basename(self.uri.rstrip()))[0],
|
659
|
-
)
|
660
|
-
|
661
|
-
logger.info(f"Fetching operator from `{self.uri}` to `{uri_dst}`.")
|
662
|
-
|
663
|
-
# Parse the GitHub URL
|
664
|
-
parsed_url = urlparse(self.uri)
|
665
|
-
logger.debug(parsed_url)
|
666
|
-
|
667
|
-
branch = "main" # Default branch
|
668
|
-
repo_name = parsed_url.path
|
669
|
-
|
670
|
-
if "@" in parsed_url.path:
|
671
|
-
# Extract the branch if provided in the URL
|
672
|
-
branch = parsed_url.path.split("@")[1]
|
673
|
-
repo_name = parsed_url.path.split("@")[0]
|
674
|
-
|
675
|
-
# Construct the repository URL
|
676
|
-
repo_url = f"https://{parsed_url.netloc}{repo_name}"
|
677
|
-
logger.debug(repo_url)
|
678
|
-
|
679
|
-
# Clone the GitHub repository to a temporary directory
|
680
|
-
with tempfile.TemporaryDirectory() as tmp_git_dir:
|
681
|
-
repo = git.Repo.clone_from(repo_url, tmp_git_dir, branch=branch)
|
682
|
-
|
683
|
-
# Find the folder to download
|
684
|
-
if parsed_url.fragment:
|
685
|
-
folder_to_download = parsed_url.fragment
|
686
|
-
folder_path = os.path.join(tmp_git_dir, folder_to_download)
|
687
|
-
|
688
|
-
if not os.path.exists(folder_path):
|
689
|
-
raise ValueError(
|
690
|
-
f"Folder '{folder_to_download}' not found in the repository."
|
691
|
-
)
|
692
|
-
|
693
|
-
# Move the folder to the desired local path
|
694
|
-
for item in glob.glob(os.path.join(folder_path, "**"), recursive=True):
|
695
|
-
destination_item = os.path.join(
|
696
|
-
uri_dst, os.path.relpath(item, folder_path)
|
697
|
-
)
|
698
|
-
if os.path.isdir(item):
|
699
|
-
# If it's a directory, create it in the destination directory
|
700
|
-
if not os.path.exists(destination_item):
|
701
|
-
os.makedirs(destination_item)
|
702
|
-
else:
|
703
|
-
# If it's a file, move it to the destination directory
|
704
|
-
shutil.move(item, destination_item)
|
705
|
-
|
706
|
-
# Clean up the temporary directory
|
707
|
-
repo.close()
|
708
|
-
return _operator_info(path=uri_dst)
|
709
|
-
|
710
|
-
def cleanup(self, **kwargs: Dict) -> None:
|
711
|
-
"""Cleans up all temporary files and folders created during operator loading.
|
712
|
-
|
713
|
-
Parameters
|
714
|
-
----------
|
715
|
-
**kwargs (Dict)
|
716
|
-
Additional optional attributes.
|
717
|
-
"""
|
718
|
-
super().cleanup(**kwargs)
|
719
|
-
try:
|
720
|
-
shutil.rmtree(self.tmp_dir)
|
721
|
-
except Exception as ex:
|
722
|
-
logger.debug(ex)
|
723
|
-
|
724
|
-
@classmethod
|
725
|
-
def compatible(cls, uri: str, **kwargs: Dict) -> bool:
|
726
|
-
"""Checks if the loader is compatible with the given URI.
|
727
|
-
|
728
|
-
Parameters
|
729
|
-
----------
|
730
|
-
uri (str)
|
731
|
-
The operator's location.
|
732
|
-
**kwargs (Dict)
|
733
|
-
Additional optional attributes.
|
734
|
-
|
735
|
-
Returns
|
736
|
-
-------
|
737
|
-
bool
|
738
|
-
Whether the loader is compatible with the given URI.
|
739
|
-
"""
|
740
|
-
return any(element in uri.lower() for element in ("github", ".git"))
|
741
|
-
|
742
|
-
|
743
|
-
def _module_from_file(module_name: str, module_path: str) -> Any:
|
744
|
-
"""
|
745
|
-
Loads module by it's location.
|
746
|
-
|
747
|
-
Parameters
|
748
|
-
----------
|
749
|
-
module_name (str)
|
750
|
-
The name of the module to be imported.
|
751
|
-
module_path (str)
|
752
|
-
The physical path of the module.
|
753
|
-
|
754
|
-
Returns
|
755
|
-
-------
|
756
|
-
Loaded module.
|
757
|
-
"""
|
758
|
-
spec = importlib.util.spec_from_file_location(module_name, module_path)
|
759
|
-
module = importlib.util.module_from_spec(spec)
|
760
|
-
spec.loader.exec_module(module)
|
761
|
-
return module
|
762
|
-
|
763
|
-
|
764
|
-
def _operator_info(path: str = None, name: str = None) -> OperatorInfo:
|
765
|
-
"""
|
766
|
-
Extracts operator's details by given path.
|
767
|
-
The expectation is that the operator has an init file where all details are placed.
|
768
|
-
|
769
|
-
Parameters
|
770
|
-
------------
|
771
|
-
path (str, optional)
|
772
|
-
The path to the operator.
|
773
|
-
name (str, optional)
|
774
|
-
The name of the service operator.
|
775
|
-
|
776
|
-
Returns
|
777
|
-
-------
|
778
|
-
OperatorInfo
|
779
|
-
The operator details.
|
780
|
-
"""
|
781
|
-
try:
|
782
|
-
if name:
|
783
|
-
path = os.path.dirname(
|
784
|
-
inspect.getfile(
|
785
|
-
importlib.import_module(f"{OPERATOR_MODULE_PATH}.{name}")
|
786
|
-
)
|
787
|
-
)
|
788
|
-
return OperatorInfo.from_yaml(uri=os.path.join(path, "MLoperator"))
|
789
|
-
except Exception as ex:
|
790
|
-
logger.debug(ex)
|
791
|
-
raise OperatorNotFoundError(name or path)
|
792
|
-
|
793
|
-
|
794
|
-
def _operator_info_list() -> List[OperatorInfo]:
|
795
|
-
"""Returns the list of registered operators.
|
796
|
-
|
797
|
-
Returns
|
798
|
-
-------
|
799
|
-
List[OperatorInfo]
|
800
|
-
The list of registered operators.
|
801
|
-
"""
|
802
|
-
result = []
|
803
|
-
|
804
|
-
for operator_name in __operators__:
|
805
|
-
try:
|
806
|
-
result.append(_operator_info(name=operator_name))
|
807
|
-
except OperatorNotFoundError:
|
808
|
-
logger.debug(f"Operator `{operator_name}` is not registered.")
|
809
|
-
continue
|
810
|
-
|
811
|
-
return result
|