teradataml 17.20.0.6__py3-none-any.whl → 20.0.0.0__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.
Potentially problematic release.
This version of teradataml might be problematic. Click here for more details.
- teradataml/LICENSE-3RD-PARTY.pdf +0 -0
- teradataml/LICENSE.pdf +0 -0
- teradataml/README.md +238 -1
- teradataml/__init__.py +13 -3
- teradataml/_version.py +1 -1
- teradataml/analytics/Transformations.py +4 -4
- teradataml/analytics/__init__.py +0 -2
- teradataml/analytics/analytic_function_executor.py +3 -0
- teradataml/analytics/json_parser/utils.py +13 -12
- teradataml/analytics/sqle/DecisionTreePredict.py +15 -30
- teradataml/analytics/sqle/NaiveBayesPredict.py +11 -20
- teradataml/analytics/sqle/__init__.py +0 -13
- teradataml/analytics/utils.py +1 -0
- teradataml/analytics/valib.py +3 -0
- teradataml/automl/__init__.py +1628 -0
- teradataml/automl/custom_json_utils.py +1270 -0
- teradataml/automl/data_preparation.py +993 -0
- teradataml/automl/data_transformation.py +727 -0
- teradataml/automl/feature_engineering.py +1648 -0
- teradataml/automl/feature_exploration.py +547 -0
- teradataml/automl/model_evaluation.py +163 -0
- teradataml/automl/model_training.py +887 -0
- teradataml/catalog/__init__.py +0 -2
- teradataml/catalog/byom.py +49 -6
- teradataml/catalog/function_argument_mapper.py +0 -2
- teradataml/catalog/model_cataloging_utils.py +2 -1021
- teradataml/common/aed_utils.py +6 -2
- teradataml/common/constants.py +50 -58
- teradataml/common/deprecations.py +160 -0
- teradataml/common/garbagecollector.py +61 -104
- teradataml/common/messagecodes.py +27 -36
- teradataml/common/messages.py +11 -15
- teradataml/common/utils.py +205 -287
- teradataml/common/wrapper_utils.py +1 -110
- teradataml/context/context.py +150 -78
- teradataml/data/bank_churn.csv +10001 -0
- teradataml/data/bmi.csv +501 -0
- teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +3 -3
- teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +6 -5
- teradataml/data/docs/sqle/docs_17_10/Fit.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +2 -2
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +2 -1
- teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +1 -0
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_10/Transform.py +2 -1
- teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +3 -3
- teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +6 -5
- teradataml/data/docs/sqle/docs_17_20/Fit.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/GLM.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +9 -10
- teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +3 -2
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +16 -15
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +2 -2
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +2 -2
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +8 -8
- teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +21 -20
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +8 -3
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +6 -5
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +6 -6
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +2 -1
- teradataml/data/docs/sqle/docs_17_20/SVM.py +1 -1
- teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +16 -16
- teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +1 -0
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +3 -2
- teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +4 -4
- teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +19 -19
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +5 -4
- teradataml/data/docs/sqle/docs_17_20/Transform.py +2 -2
- teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +9 -9
- teradataml/data/fish.csv +160 -0
- teradataml/data/glass_types.csv +215 -0
- teradataml/data/insurance.csv +1 -1
- teradataml/data/iris_data.csv +151 -0
- teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +1 -0
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +1 -0
- teradataml/data/load_example_data.py +3 -0
- teradataml/data/multi_model_classification.csv +401 -0
- teradataml/data/multi_model_regression.csv +401 -0
- teradataml/data/openml_example.json +63 -0
- teradataml/data/scripts/deploy_script.py +65 -0
- teradataml/data/scripts/mapper.R +20 -0
- teradataml/data/scripts/sklearn/__init__.py +0 -0
- teradataml/data/scripts/sklearn/sklearn_fit.py +175 -0
- teradataml/data/scripts/sklearn/sklearn_fit_predict.py +135 -0
- teradataml/data/scripts/sklearn/sklearn_function.template +113 -0
- teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +158 -0
- teradataml/data/scripts/sklearn/sklearn_neighbors.py +152 -0
- teradataml/data/scripts/sklearn/sklearn_score.py +128 -0
- teradataml/data/scripts/sklearn/sklearn_transform.py +179 -0
- teradataml/data/templates/open_source_ml.json +9 -0
- teradataml/data/teradataml_example.json +73 -1
- teradataml/data/test_classification.csv +101 -0
- teradataml/data/test_prediction.csv +101 -0
- teradataml/data/test_regression.csv +101 -0
- teradataml/data/train_multiclass.csv +101 -0
- teradataml/data/train_regression.csv +101 -0
- teradataml/data/train_regression_multiple_labels.csv +101 -0
- teradataml/data/wine_data.csv +1600 -0
- teradataml/dataframe/copy_to.py +79 -13
- teradataml/dataframe/data_transfer.py +8 -0
- teradataml/dataframe/dataframe.py +910 -311
- teradataml/dataframe/dataframe_utils.py +102 -5
- teradataml/dataframe/fastload.py +11 -3
- teradataml/dataframe/setop.py +15 -2
- teradataml/dataframe/sql.py +3735 -77
- teradataml/dataframe/sql_function_parameters.py +56 -5
- teradataml/dataframe/vantage_function_types.py +45 -1
- teradataml/dataframe/window.py +30 -29
- teradataml/dbutils/dbutils.py +18 -1
- teradataml/geospatial/geodataframe.py +18 -7
- teradataml/geospatial/geodataframecolumn.py +5 -0
- teradataml/hyperparameter_tuner/optimizer.py +910 -120
- teradataml/hyperparameter_tuner/utils.py +131 -37
- teradataml/lib/aed_0_1.dll +0 -0
- teradataml/lib/libaed_0_1.dylib +0 -0
- teradataml/lib/libaed_0_1.so +0 -0
- teradataml/libaed_0_1.dylib +0 -0
- teradataml/libaed_0_1.so +0 -0
- teradataml/opensource/__init__.py +1 -0
- teradataml/opensource/sklearn/__init__.py +1 -0
- teradataml/opensource/sklearn/_class.py +255 -0
- teradataml/opensource/sklearn/_sklearn_wrapper.py +1668 -0
- teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
- teradataml/opensource/sklearn/constants.py +54 -0
- teradataml/options/__init__.py +3 -6
- teradataml/options/configure.py +21 -20
- teradataml/scriptmgmt/UserEnv.py +61 -5
- teradataml/scriptmgmt/lls_utils.py +135 -53
- teradataml/table_operators/Apply.py +38 -6
- teradataml/table_operators/Script.py +45 -308
- teradataml/table_operators/TableOperator.py +182 -591
- teradataml/table_operators/__init__.py +0 -1
- teradataml/table_operators/table_operator_util.py +32 -40
- teradataml/utils/validators.py +127 -3
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/METADATA +243 -3
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/RECORD +147 -391
- teradataml/analytics/mle/AdaBoost.py +0 -651
- teradataml/analytics/mle/AdaBoostPredict.py +0 -564
- teradataml/analytics/mle/Antiselect.py +0 -342
- teradataml/analytics/mle/Arima.py +0 -641
- teradataml/analytics/mle/ArimaPredict.py +0 -477
- teradataml/analytics/mle/Attribution.py +0 -1070
- teradataml/analytics/mle/Betweenness.py +0 -658
- teradataml/analytics/mle/Burst.py +0 -711
- teradataml/analytics/mle/CCM.py +0 -600
- teradataml/analytics/mle/CCMPrepare.py +0 -324
- teradataml/analytics/mle/CFilter.py +0 -460
- teradataml/analytics/mle/ChangePointDetection.py +0 -572
- teradataml/analytics/mle/ChangePointDetectionRT.py +0 -477
- teradataml/analytics/mle/Closeness.py +0 -737
- teradataml/analytics/mle/ConfusionMatrix.py +0 -420
- teradataml/analytics/mle/Correlation.py +0 -477
- teradataml/analytics/mle/Correlation2.py +0 -573
- teradataml/analytics/mle/CoxHazardRatio.py +0 -679
- teradataml/analytics/mle/CoxPH.py +0 -556
- teradataml/analytics/mle/CoxSurvival.py +0 -478
- teradataml/analytics/mle/CumulativeMovAvg.py +0 -363
- teradataml/analytics/mle/DTW.py +0 -623
- teradataml/analytics/mle/DWT.py +0 -564
- teradataml/analytics/mle/DWT2D.py +0 -599
- teradataml/analytics/mle/DecisionForest.py +0 -716
- teradataml/analytics/mle/DecisionForestEvaluator.py +0 -363
- teradataml/analytics/mle/DecisionForestPredict.py +0 -561
- teradataml/analytics/mle/DecisionTree.py +0 -830
- teradataml/analytics/mle/DecisionTreePredict.py +0 -528
- teradataml/analytics/mle/ExponentialMovAvg.py +0 -418
- teradataml/analytics/mle/FMeasure.py +0 -402
- teradataml/analytics/mle/FPGrowth.py +0 -734
- teradataml/analytics/mle/FrequentPaths.py +0 -695
- teradataml/analytics/mle/GLM.py +0 -558
- teradataml/analytics/mle/GLML1L2.py +0 -547
- teradataml/analytics/mle/GLML1L2Predict.py +0 -519
- teradataml/analytics/mle/GLMPredict.py +0 -529
- teradataml/analytics/mle/HMMDecoder.py +0 -945
- teradataml/analytics/mle/HMMEvaluator.py +0 -901
- teradataml/analytics/mle/HMMSupervised.py +0 -521
- teradataml/analytics/mle/HMMUnsupervised.py +0 -572
- teradataml/analytics/mle/Histogram.py +0 -561
- teradataml/analytics/mle/IDWT.py +0 -476
- teradataml/analytics/mle/IDWT2D.py +0 -493
- teradataml/analytics/mle/IdentityMatch.py +0 -763
- teradataml/analytics/mle/Interpolator.py +0 -918
- teradataml/analytics/mle/KMeans.py +0 -485
- teradataml/analytics/mle/KNN.py +0 -627
- teradataml/analytics/mle/KNNRecommender.py +0 -488
- teradataml/analytics/mle/KNNRecommenderPredict.py +0 -581
- teradataml/analytics/mle/LAR.py +0 -439
- teradataml/analytics/mle/LARPredict.py +0 -478
- teradataml/analytics/mle/LDA.py +0 -548
- teradataml/analytics/mle/LDAInference.py +0 -492
- teradataml/analytics/mle/LDATopicSummary.py +0 -464
- teradataml/analytics/mle/LevenshteinDistance.py +0 -450
- teradataml/analytics/mle/LinReg.py +0 -433
- teradataml/analytics/mle/LinRegPredict.py +0 -438
- teradataml/analytics/mle/MinHash.py +0 -544
- teradataml/analytics/mle/Modularity.py +0 -587
- teradataml/analytics/mle/NEREvaluator.py +0 -410
- teradataml/analytics/mle/NERExtractor.py +0 -595
- teradataml/analytics/mle/NERTrainer.py +0 -458
- teradataml/analytics/mle/NGrams.py +0 -570
- teradataml/analytics/mle/NPath.py +0 -634
- teradataml/analytics/mle/NTree.py +0 -549
- teradataml/analytics/mle/NaiveBayes.py +0 -462
- teradataml/analytics/mle/NaiveBayesPredict.py +0 -513
- teradataml/analytics/mle/NaiveBayesTextClassifier.py +0 -607
- teradataml/analytics/mle/NaiveBayesTextClassifier2.py +0 -531
- teradataml/analytics/mle/NaiveBayesTextClassifierPredict.py +0 -799
- teradataml/analytics/mle/NamedEntityFinder.py +0 -529
- teradataml/analytics/mle/NamedEntityFinderEvaluator.py +0 -414
- teradataml/analytics/mle/NamedEntityFinderTrainer.py +0 -396
- teradataml/analytics/mle/POSTagger.py +0 -417
- teradataml/analytics/mle/Pack.py +0 -411
- teradataml/analytics/mle/PageRank.py +0 -535
- teradataml/analytics/mle/PathAnalyzer.py +0 -426
- teradataml/analytics/mle/PathGenerator.py +0 -367
- teradataml/analytics/mle/PathStart.py +0 -464
- teradataml/analytics/mle/PathSummarizer.py +0 -470
- teradataml/analytics/mle/Pivot.py +0 -471
- teradataml/analytics/mle/ROC.py +0 -425
- teradataml/analytics/mle/RandomSample.py +0 -637
- teradataml/analytics/mle/RandomWalkSample.py +0 -490
- teradataml/analytics/mle/SAX.py +0 -779
- teradataml/analytics/mle/SVMDense.py +0 -677
- teradataml/analytics/mle/SVMDensePredict.py +0 -536
- teradataml/analytics/mle/SVMDenseSummary.py +0 -437
- teradataml/analytics/mle/SVMSparse.py +0 -557
- teradataml/analytics/mle/SVMSparsePredict.py +0 -553
- teradataml/analytics/mle/SVMSparseSummary.py +0 -435
- teradataml/analytics/mle/Sampling.py +0 -549
- teradataml/analytics/mle/Scale.py +0 -565
- teradataml/analytics/mle/ScaleByPartition.py +0 -496
- teradataml/analytics/mle/ScaleMap.py +0 -378
- teradataml/analytics/mle/ScaleSummary.py +0 -320
- teradataml/analytics/mle/SentenceExtractor.py +0 -363
- teradataml/analytics/mle/SentimentEvaluator.py +0 -432
- teradataml/analytics/mle/SentimentExtractor.py +0 -578
- teradataml/analytics/mle/SentimentTrainer.py +0 -405
- teradataml/analytics/mle/SeriesSplitter.py +0 -641
- teradataml/analytics/mle/Sessionize.py +0 -475
- teradataml/analytics/mle/SimpleMovAvg.py +0 -397
- teradataml/analytics/mle/StringSimilarity.py +0 -425
- teradataml/analytics/mle/TF.py +0 -389
- teradataml/analytics/mle/TFIDF.py +0 -504
- teradataml/analytics/mle/TextChunker.py +0 -414
- teradataml/analytics/mle/TextClassifier.py +0 -399
- teradataml/analytics/mle/TextClassifierEvaluator.py +0 -413
- teradataml/analytics/mle/TextClassifierTrainer.py +0 -565
- teradataml/analytics/mle/TextMorph.py +0 -494
- teradataml/analytics/mle/TextParser.py +0 -623
- teradataml/analytics/mle/TextTagger.py +0 -530
- teradataml/analytics/mle/TextTokenizer.py +0 -502
- teradataml/analytics/mle/UnivariateStatistics.py +0 -488
- teradataml/analytics/mle/Unpack.py +0 -526
- teradataml/analytics/mle/Unpivot.py +0 -438
- teradataml/analytics/mle/VarMax.py +0 -776
- teradataml/analytics/mle/VectorDistance.py +0 -762
- teradataml/analytics/mle/WeightedMovAvg.py +0 -400
- teradataml/analytics/mle/XGBoost.py +0 -842
- teradataml/analytics/mle/XGBoostPredict.py +0 -627
- teradataml/analytics/mle/__init__.py +0 -123
- teradataml/analytics/mle/json/adaboost_mle.json +0 -135
- teradataml/analytics/mle/json/adaboostpredict_mle.json +0 -85
- teradataml/analytics/mle/json/antiselect_mle.json +0 -34
- teradataml/analytics/mle/json/antiselect_mle_mle.json +0 -34
- teradataml/analytics/mle/json/arima_mle.json +0 -172
- teradataml/analytics/mle/json/arimapredict_mle.json +0 -52
- teradataml/analytics/mle/json/attribution_mle_mle.json +0 -143
- teradataml/analytics/mle/json/betweenness_mle.json +0 -97
- teradataml/analytics/mle/json/burst_mle.json +0 -140
- teradataml/analytics/mle/json/ccm_mle.json +0 -124
- teradataml/analytics/mle/json/ccmprepare_mle.json +0 -14
- teradataml/analytics/mle/json/cfilter_mle.json +0 -93
- teradataml/analytics/mle/json/changepointdetection_mle.json +0 -92
- teradataml/analytics/mle/json/changepointdetectionrt_mle.json +0 -78
- teradataml/analytics/mle/json/closeness_mle.json +0 -104
- teradataml/analytics/mle/json/confusionmatrix_mle.json +0 -79
- teradataml/analytics/mle/json/correlation_mle.json +0 -86
- teradataml/analytics/mle/json/correlationreduce_mle.json +0 -49
- teradataml/analytics/mle/json/coxhazardratio_mle.json +0 -89
- teradataml/analytics/mle/json/coxph_mle.json +0 -98
- teradataml/analytics/mle/json/coxsurvival_mle.json +0 -79
- teradataml/analytics/mle/json/cumulativemovavg_mle.json +0 -34
- teradataml/analytics/mle/json/decisionforest_mle.json +0 -167
- teradataml/analytics/mle/json/decisionforestevaluator_mle.json +0 -33
- teradataml/analytics/mle/json/decisionforestpredict_mle_mle.json +0 -74
- teradataml/analytics/mle/json/decisiontree_mle.json +0 -194
- teradataml/analytics/mle/json/decisiontreepredict_mle_mle.json +0 -86
- teradataml/analytics/mle/json/dtw_mle.json +0 -97
- teradataml/analytics/mle/json/dwt2d_mle.json +0 -116
- teradataml/analytics/mle/json/dwt_mle.json +0 -101
- teradataml/analytics/mle/json/exponentialmovavg_mle.json +0 -55
- teradataml/analytics/mle/json/fmeasure_mle.json +0 -58
- teradataml/analytics/mle/json/fpgrowth_mle.json +0 -159
- teradataml/analytics/mle/json/frequentpaths_mle.json +0 -129
- teradataml/analytics/mle/json/glm_mle.json +0 -111
- teradataml/analytics/mle/json/glml1l2_mle.json +0 -106
- teradataml/analytics/mle/json/glml1l2predict_mle.json +0 -57
- teradataml/analytics/mle/json/glmpredict_mle_mle.json +0 -74
- teradataml/analytics/mle/json/histogram_mle.json +0 -100
- teradataml/analytics/mle/json/hmmdecoder_mle.json +0 -192
- teradataml/analytics/mle/json/hmmevaluator_mle.json +0 -206
- teradataml/analytics/mle/json/hmmsupervised_mle.json +0 -91
- teradataml/analytics/mle/json/hmmunsupervised_mle.json +0 -114
- teradataml/analytics/mle/json/identitymatch_mle.json +0 -88
- teradataml/analytics/mle/json/idwt2d_mle.json +0 -73
- teradataml/analytics/mle/json/idwt_mle.json +0 -66
- teradataml/analytics/mle/json/interpolator_mle.json +0 -151
- teradataml/analytics/mle/json/kmeans_mle.json +0 -97
- teradataml/analytics/mle/json/knn_mle.json +0 -141
- teradataml/analytics/mle/json/knnrecommender_mle.json +0 -111
- teradataml/analytics/mle/json/knnrecommenderpredict_mle.json +0 -75
- teradataml/analytics/mle/json/lar_mle.json +0 -78
- teradataml/analytics/mle/json/larpredict_mle.json +0 -69
- teradataml/analytics/mle/json/lda_mle.json +0 -130
- teradataml/analytics/mle/json/ldainference_mle.json +0 -78
- teradataml/analytics/mle/json/ldatopicsummary_mle.json +0 -64
- teradataml/analytics/mle/json/levenshteindistance_mle.json +0 -92
- teradataml/analytics/mle/json/linreg_mle.json +0 -42
- teradataml/analytics/mle/json/linregpredict_mle.json +0 -56
- teradataml/analytics/mle/json/minhash_mle.json +0 -113
- teradataml/analytics/mle/json/modularity_mle.json +0 -91
- teradataml/analytics/mle/json/naivebayespredict_mle_mle.json +0 -85
- teradataml/analytics/mle/json/naivebayesreduce_mle.json +0 -52
- teradataml/analytics/mle/json/naivebayestextclassifierpredict_mle_mle.json +0 -147
- teradataml/analytics/mle/json/naivebayestextclassifiertrainer2_mle.json +0 -108
- teradataml/analytics/mle/json/naivebayestextclassifiertrainer_mle.json +0 -102
- teradataml/analytics/mle/json/namedentityfinder_mle.json +0 -84
- teradataml/analytics/mle/json/namedentityfinderevaluatorreduce_mle.json +0 -43
- teradataml/analytics/mle/json/namedentityfindertrainer_mle.json +0 -64
- teradataml/analytics/mle/json/nerevaluator_mle.json +0 -54
- teradataml/analytics/mle/json/nerextractor_mle.json +0 -87
- teradataml/analytics/mle/json/nertrainer_mle.json +0 -89
- teradataml/analytics/mle/json/ngrams_mle.json +0 -137
- teradataml/analytics/mle/json/ngramsplitter_mle_mle.json +0 -137
- teradataml/analytics/mle/json/npath@coprocessor_mle.json +0 -73
- teradataml/analytics/mle/json/ntree@coprocessor_mle.json +0 -123
- teradataml/analytics/mle/json/pack_mle.json +0 -58
- teradataml/analytics/mle/json/pack_mle_mle.json +0 -58
- teradataml/analytics/mle/json/pagerank_mle.json +0 -81
- teradataml/analytics/mle/json/pathanalyzer_mle.json +0 -63
- teradataml/analytics/mle/json/pathgenerator_mle.json +0 -40
- teradataml/analytics/mle/json/pathstart_mle.json +0 -62
- teradataml/analytics/mle/json/pathsummarizer_mle.json +0 -72
- teradataml/analytics/mle/json/pivoting_mle.json +0 -71
- teradataml/analytics/mle/json/postagger_mle.json +0 -51
- teradataml/analytics/mle/json/randomsample_mle.json +0 -131
- teradataml/analytics/mle/json/randomwalksample_mle.json +0 -85
- teradataml/analytics/mle/json/roc_mle.json +0 -73
- teradataml/analytics/mle/json/sampling_mle.json +0 -75
- teradataml/analytics/mle/json/sax_mle.json +0 -154
- teradataml/analytics/mle/json/scale_mle.json +0 -93
- teradataml/analytics/mle/json/scalebypartition_mle.json +0 -89
- teradataml/analytics/mle/json/scalemap_mle.json +0 -44
- teradataml/analytics/mle/json/scalesummary_mle.json +0 -14
- teradataml/analytics/mle/json/sentenceextractor_mle.json +0 -41
- teradataml/analytics/mle/json/sentimentevaluator_mle.json +0 -43
- teradataml/analytics/mle/json/sentimentextractor_mle.json +0 -100
- teradataml/analytics/mle/json/sentimenttrainer_mle.json +0 -68
- teradataml/analytics/mle/json/seriessplitter_mle.json +0 -133
- teradataml/analytics/mle/json/sessionize_mle_mle.json +0 -62
- teradataml/analytics/mle/json/simplemovavg_mle.json +0 -48
- teradataml/analytics/mle/json/stringsimilarity_mle.json +0 -50
- teradataml/analytics/mle/json/stringsimilarity_mle_mle.json +0 -50
- teradataml/analytics/mle/json/svmdense_mle.json +0 -165
- teradataml/analytics/mle/json/svmdensepredict_mle.json +0 -95
- teradataml/analytics/mle/json/svmdensesummary_mle.json +0 -58
- teradataml/analytics/mle/json/svmsparse_mle.json +0 -148
- teradataml/analytics/mle/json/svmsparsepredict_mle_mle.json +0 -103
- teradataml/analytics/mle/json/svmsparsesummary_mle.json +0 -57
- teradataml/analytics/mle/json/textchunker_mle.json +0 -40
- teradataml/analytics/mle/json/textclassifier_mle.json +0 -51
- teradataml/analytics/mle/json/textclassifierevaluator_mle.json +0 -43
- teradataml/analytics/mle/json/textclassifiertrainer_mle.json +0 -103
- teradataml/analytics/mle/json/textmorph_mle.json +0 -63
- teradataml/analytics/mle/json/textparser_mle.json +0 -166
- teradataml/analytics/mle/json/texttagger_mle.json +0 -81
- teradataml/analytics/mle/json/texttokenizer_mle.json +0 -91
- teradataml/analytics/mle/json/tf_mle.json +0 -33
- teradataml/analytics/mle/json/tfidf_mle.json +0 -34
- teradataml/analytics/mle/json/univariatestatistics_mle.json +0 -81
- teradataml/analytics/mle/json/unpack_mle.json +0 -91
- teradataml/analytics/mle/json/unpack_mle_mle.json +0 -91
- teradataml/analytics/mle/json/unpivoting_mle.json +0 -63
- teradataml/analytics/mle/json/varmax_mle.json +0 -176
- teradataml/analytics/mle/json/vectordistance_mle.json +0 -179
- teradataml/analytics/mle/json/weightedmovavg_mle.json +0 -48
- teradataml/analytics/mle/json/xgboost_mle.json +0 -178
- teradataml/analytics/mle/json/xgboostpredict_mle.json +0 -104
- teradataml/analytics/sqle/Antiselect.py +0 -321
- teradataml/analytics/sqle/Attribution.py +0 -603
- teradataml/analytics/sqle/DecisionForestPredict.py +0 -408
- teradataml/analytics/sqle/GLMPredict.py +0 -430
- teradataml/analytics/sqle/MovingAverage.py +0 -543
- teradataml/analytics/sqle/NGramSplitter.py +0 -548
- teradataml/analytics/sqle/NPath.py +0 -632
- teradataml/analytics/sqle/NaiveBayesTextClassifierPredict.py +0 -515
- teradataml/analytics/sqle/Pack.py +0 -388
- teradataml/analytics/sqle/SVMSparsePredict.py +0 -464
- teradataml/analytics/sqle/Sessionize.py +0 -390
- teradataml/analytics/sqle/StringSimilarity.py +0 -400
- teradataml/analytics/sqle/Unpack.py +0 -503
- teradataml/analytics/sqle/json/antiselect_sqle.json +0 -21
- teradataml/analytics/sqle/json/attribution_sqle.json +0 -92
- teradataml/analytics/sqle/json/decisionforestpredict_sqle.json +0 -48
- teradataml/analytics/sqle/json/glmpredict_sqle.json +0 -48
- teradataml/analytics/sqle/json/h2opredict_sqle.json +0 -63
- teradataml/analytics/sqle/json/movingaverage_sqle.json +0 -58
- teradataml/analytics/sqle/json/naivebayestextclassifierpredict_sqle.json +0 -76
- teradataml/analytics/sqle/json/ngramsplitter_sqle.json +0 -126
- teradataml/analytics/sqle/json/npath_sqle.json +0 -67
- teradataml/analytics/sqle/json/pack_sqle.json +0 -47
- teradataml/analytics/sqle/json/pmmlpredict_sqle.json +0 -55
- teradataml/analytics/sqle/json/sessionize_sqle.json +0 -43
- teradataml/analytics/sqle/json/stringsimilarity_sqle.json +0 -39
- teradataml/analytics/sqle/json/svmsparsepredict_sqle.json +0 -74
- teradataml/analytics/sqle/json/unpack_sqle.json +0 -80
- teradataml/catalog/model_cataloging.py +0 -980
- teradataml/config/mlengine_alias_definitions_v1.0 +0 -118
- teradataml/config/mlengine_alias_definitions_v1.1 +0 -127
- teradataml/config/mlengine_alias_definitions_v1.3 +0 -129
- teradataml/table_operators/sandbox_container_util.py +0 -643
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/WHEEL +0 -0
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/top_level.txt +0 -0
- {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/zip-safe +0 -0
teradataml/common/utils.py
CHANGED
|
@@ -22,6 +22,8 @@ import sqlalchemy
|
|
|
22
22
|
from pathlib import Path
|
|
23
23
|
from numpy import number
|
|
24
24
|
from sqlalchemy import Column, MetaData, Table
|
|
25
|
+
from teradataml.context.context import get_connection
|
|
26
|
+
|
|
25
27
|
from teradataml import _version
|
|
26
28
|
from teradataml.context import context as tdmlctx
|
|
27
29
|
from teradataml.common.exceptions import TeradataMlException
|
|
@@ -37,7 +39,7 @@ from teradataml.common.constants import TeradataConstants, PTITableConstants, \
|
|
|
37
39
|
from teradataml.common.warnings import VantageRuntimeWarning
|
|
38
40
|
from teradataml.options.configure import configure
|
|
39
41
|
from teradataml.options.display import display
|
|
40
|
-
from teradataml.common.constants import TeradataReservedKeywords
|
|
42
|
+
from teradataml.common.constants import TeradataReservedKeywords, TeradataConstants
|
|
41
43
|
|
|
42
44
|
from teradatasqlalchemy.types import _TDType
|
|
43
45
|
from teradatasqlalchemy.types import (INTEGER, SMALLINT, BIGINT, BYTEINT,
|
|
@@ -45,162 +47,13 @@ from teradatasqlalchemy.types import (INTEGER, SMALLINT, BIGINT, BYTEINT,
|
|
|
45
47
|
from teradatasqlalchemy.types import (DATE, TIME, TIMESTAMP)
|
|
46
48
|
from teradatasqlalchemy.types import (BYTE, VARBYTE, BLOB)
|
|
47
49
|
from teradatasqlalchemy.types import (CHAR, VARCHAR, CLOB)
|
|
48
|
-
from functools import
|
|
50
|
+
from functools import reduce
|
|
49
51
|
import warnings
|
|
52
|
+
from teradatasqlalchemy.telemetry.queryband import set_queryband, collect_queryband, get_qb_query
|
|
50
53
|
from teradataml.utils.utils import execute_sql
|
|
51
54
|
from teradataml.utils.validators import _Validators
|
|
52
55
|
from sqlalchemy.exc import OperationalError as sqlachemyOperationalError
|
|
53
56
|
|
|
54
|
-
def package_deprecation(version, replacement=None, type="class"):
|
|
55
|
-
"""
|
|
56
|
-
Define a deprecation decorator.
|
|
57
|
-
|
|
58
|
-
PARAMETERS:
|
|
59
|
-
replacement:
|
|
60
|
-
Optional Argument.
|
|
61
|
-
`replacement` should refer to the new API to be used instead.
|
|
62
|
-
|
|
63
|
-
type:
|
|
64
|
-
Optional Argument.
|
|
65
|
-
Specifies the type of entity being deprecated.
|
|
66
|
-
For example,
|
|
67
|
-
class or function
|
|
68
|
-
|
|
69
|
-
EXAMPLES:
|
|
70
|
-
@package_deprecation('16.20.x.y')
|
|
71
|
-
def old_func(): ...
|
|
72
|
-
@package_deprecation('16.20.x.y', 'teradataml.analytics.mle')
|
|
73
|
-
def old_func(): ..."""
|
|
74
|
-
|
|
75
|
-
def decorator(func):
|
|
76
|
-
def wrapper(*args, **kwargs):
|
|
77
|
-
msg = "\nThe \"{}\" {} has moved to a new package in version {}."
|
|
78
|
-
if replacement:
|
|
79
|
-
msg += "\nImport from the teradataml package, or directly from the {} module." + \
|
|
80
|
-
"\nSee the teradataml {} User Guide for more information."
|
|
81
|
-
warnings.warn(msg.format('.'.join([func.__module__, func.__name__]), type, version,
|
|
82
|
-
replacement + '.' + func.__name__, version),
|
|
83
|
-
category=DeprecationWarning, stacklevel=2)
|
|
84
|
-
return func(*args, **kwargs)
|
|
85
|
-
|
|
86
|
-
return wraps(func)(wrapper)
|
|
87
|
-
|
|
88
|
-
return decorator
|
|
89
|
-
|
|
90
|
-
def argument_deprecation(tdml_version, deprecated_arguments, behaviour=False, alternatives=None):
|
|
91
|
-
"""
|
|
92
|
-
Decorator for deprecating of argument(s) for a function or class constructor.
|
|
93
|
-
|
|
94
|
-
PARAMETERS:
|
|
95
|
-
tdml_version:
|
|
96
|
-
Required Argument.
|
|
97
|
-
Specifies the teradataml version when the argument will be deprecated.
|
|
98
|
-
Types: str
|
|
99
|
-
|
|
100
|
-
deprecated_arguments:
|
|
101
|
-
Required Argument.
|
|
102
|
-
Specifies the name(s) of the argument(s) to be deprecated.
|
|
103
|
-
Types: str OR list of Strings (str)
|
|
104
|
-
|
|
105
|
-
behaviour:
|
|
106
|
-
Optional Argument.
|
|
107
|
-
Specifies whether behaviour of the argument is deprecated.
|
|
108
|
-
Types: bool
|
|
109
|
-
|
|
110
|
-
alternatives:
|
|
111
|
-
Optional Argument.
|
|
112
|
-
Specifies the name(s) of the argument(s) that are alternative
|
|
113
|
-
to the deprecate arguments.
|
|
114
|
-
Types: str OR list of Strings (str)
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
EXAMPLES:
|
|
118
|
-
# Example 1: Deprecate behavior of arguments "arg1" and "arg2".
|
|
119
|
-
@argument_deprecation("17.20.00.02", ["arg1", "arg2"], True)
|
|
120
|
-
def old_func(self): ...
|
|
121
|
-
|
|
122
|
-
# Example 2: Deprecate argument completely.
|
|
123
|
-
@argument_deprecation("17.20.00.02", "old_arg")
|
|
124
|
-
def old_func(self): ...
|
|
125
|
-
|
|
126
|
-
# Example 3: Deprecate arguments completely with alternative.
|
|
127
|
-
@argument_deprecation("17.20.00.02", ["arg1", "arg2"], False, ["new_arg"])
|
|
128
|
-
def old_func(self): ...
|
|
129
|
-
|
|
130
|
-
# Example 4: Deprecate behavior of arguments "old_arg1" and "old_arg2" and provide alternatives.
|
|
131
|
-
@argument_deprecation("17.20.00.02", ["arg1", "arg2"], True, ["alt_arg1", "alt_arg2"])
|
|
132
|
-
def old_func(self): ...
|
|
133
|
-
|
|
134
|
-
"""
|
|
135
|
-
def decorator(func):
|
|
136
|
-
def wrapper(*args, **kwargs):
|
|
137
|
-
msg = "\nThe argument(s) \"{}\" will be deprecated in {}."
|
|
138
|
-
if behaviour:
|
|
139
|
-
msg = "\nBehaviour of the argument(s) \"{}\" will change in {}."
|
|
140
|
-
msg = msg.format(deprecated_arguments, tdml_version)
|
|
141
|
-
if alternatives is not None:
|
|
142
|
-
msg += "\nUse argument(s) \"{}\" instead.".format(alternatives)
|
|
143
|
-
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
|
|
144
|
-
return func(*args, **kwargs)
|
|
145
|
-
|
|
146
|
-
return wraps(func)(wrapper)
|
|
147
|
-
return decorator
|
|
148
|
-
|
|
149
|
-
def function_deprecation(tdml_version, behaviour=False, alternatives=None):
|
|
150
|
-
"""
|
|
151
|
-
Decorator for deprecating a function.
|
|
152
|
-
|
|
153
|
-
PARAMETERS:
|
|
154
|
-
tdml_version:
|
|
155
|
-
Required Argument.
|
|
156
|
-
Specifies the teradataml version when the function will be deprecated.
|
|
157
|
-
Types: str
|
|
158
|
-
|
|
159
|
-
behaviour:
|
|
160
|
-
Optional Argument.
|
|
161
|
-
Specifies whether behaviour of the function is deprecated.
|
|
162
|
-
Default value: False
|
|
163
|
-
Types: bool
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
alternatives:
|
|
167
|
-
Optional Argument.
|
|
168
|
-
Specifies the name of the function that is alternative
|
|
169
|
-
to the deprecate function.
|
|
170
|
-
Default value: None
|
|
171
|
-
Types: str
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
EXAMPLES:
|
|
175
|
-
# Example 1: Deprecate behavior of function "old_func".
|
|
176
|
-
@function_deprecation("17.20.00.03", True)
|
|
177
|
-
def old_func(self): ...
|
|
178
|
-
|
|
179
|
-
# Example 2: Deprecate function "old_func" completely.
|
|
180
|
-
@function_deprecation("17.20.00.03")
|
|
181
|
-
def old_func(self): ...
|
|
182
|
-
|
|
183
|
-
# Example 3: Deprecate function "old_func" completely with alternative function "new_func".
|
|
184
|
-
@function_deprecation("17.20.00.03", False, "new_func")
|
|
185
|
-
def old_func(self): ...
|
|
186
|
-
|
|
187
|
-
# Example 4: Deprecate behavior of function "old_func".
|
|
188
|
-
@function_deprecation("17.20.00.03", True)
|
|
189
|
-
def old_func(self): ...
|
|
190
|
-
"""
|
|
191
|
-
def decorator(func):
|
|
192
|
-
def wrapper(*args, **kwargs):
|
|
193
|
-
msg = "\nThe function \"{}\" will be deprecated in {}."
|
|
194
|
-
if behaviour:
|
|
195
|
-
msg = "\nBehaviour of the function \"{}\" will change in {}."
|
|
196
|
-
msg = msg.format(func.__name__, tdml_version)
|
|
197
|
-
if alternatives is not None:
|
|
198
|
-
msg += "\nInstead, Use following function \"{}\".".format(alternatives)
|
|
199
|
-
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
|
|
200
|
-
return func(*args, **kwargs)
|
|
201
|
-
return wraps(func)(wrapper)
|
|
202
|
-
return decorator
|
|
203
|
-
|
|
204
57
|
|
|
205
58
|
class UtilFuncs():
|
|
206
59
|
def _get_numeric_datatypes(self):
|
|
@@ -467,7 +320,8 @@ class UtilFuncs():
|
|
|
467
320
|
@staticmethod
|
|
468
321
|
def _generate_temp_script_name(database_name=None, prefix=None, use_default_database=True,
|
|
469
322
|
gc_on_quit=True, quote=True,
|
|
470
|
-
script_type=TeradataConstants.TERADATA_SCRIPT
|
|
323
|
+
script_type=TeradataConstants.TERADATA_SCRIPT,
|
|
324
|
+
extension=None):
|
|
471
325
|
"""
|
|
472
326
|
DESCRIPTION:
|
|
473
327
|
Function to return the random string for temporary script names.
|
|
@@ -512,6 +366,12 @@ class UtilFuncs():
|
|
|
512
366
|
Default value: TeradataConstants.TERADATA_SCRIPT
|
|
513
367
|
Types: TeradataConstant
|
|
514
368
|
|
|
369
|
+
extension:
|
|
370
|
+
Optional Argument.
|
|
371
|
+
Specifies the extension of the script.
|
|
372
|
+
Default value: None
|
|
373
|
+
Types: str
|
|
374
|
+
|
|
515
375
|
RETURNS:
|
|
516
376
|
Temporary script name.
|
|
517
377
|
|
|
@@ -540,6 +400,9 @@ class UtilFuncs():
|
|
|
540
400
|
|
|
541
401
|
script_name = "{}_{}".format(script_name, random_string)
|
|
542
402
|
|
|
403
|
+
if extension is not None:
|
|
404
|
+
script_name = "{}.{}".format(script_name, extension)
|
|
405
|
+
|
|
543
406
|
dbname_to_use = tdmlctx._get_current_databasename()
|
|
544
407
|
if not use_default_database and database_name is not None:
|
|
545
408
|
dbname_to_use = database_name
|
|
@@ -634,6 +497,8 @@ class UtilFuncs():
|
|
|
634
497
|
UtilFuncs._execute_ddl_statement('create table mytab (col1 int, col2 varchar(20))')
|
|
635
498
|
|
|
636
499
|
"""
|
|
500
|
+
# Empty queryband buffer before SQL call.
|
|
501
|
+
UtilFuncs._set_queryband()
|
|
637
502
|
# Let's execute our DDL statement with escape function '{fn teradata_fake_result_sets}'
|
|
638
503
|
# offered by teradatasql driver. This function will allow us catch any warnings thrown
|
|
639
504
|
# from the Vantage. Hence, executing the DDL statement with this escape function.
|
|
@@ -719,6 +584,8 @@ class UtilFuncs():
|
|
|
719
584
|
UtilFuncs._execute_query("call SYSUIF.list_base_environments()", False, True)
|
|
720
585
|
|
|
721
586
|
"""
|
|
587
|
+
# Empty queryband buffer before SQL call.
|
|
588
|
+
UtilFuncs._set_queryband()
|
|
722
589
|
|
|
723
590
|
if fetchWarnings:
|
|
724
591
|
# Let's execute our DDL statement with escape function '{fn teradata_fake_result_sets}'
|
|
@@ -772,6 +639,7 @@ class UtilFuncs():
|
|
|
772
639
|
MessageCodes.CONNECTION_FAILURE)
|
|
773
640
|
|
|
774
641
|
@staticmethod
|
|
642
|
+
@collect_queryband(queryband='CreateView')
|
|
775
643
|
def _create_view(view_name, query):
|
|
776
644
|
"""
|
|
777
645
|
Create a view from the given query.
|
|
@@ -796,6 +664,7 @@ class UtilFuncs():
|
|
|
796
664
|
raise
|
|
797
665
|
|
|
798
666
|
@staticmethod
|
|
667
|
+
@collect_queryband(queryband='CreateTbl')
|
|
799
668
|
def _create_table(table_name, query, volatile=False):
|
|
800
669
|
"""
|
|
801
670
|
Create a table from the given query.
|
|
@@ -846,6 +715,7 @@ class UtilFuncs():
|
|
|
846
715
|
return [str(i) for i in result[0]]
|
|
847
716
|
|
|
848
717
|
@staticmethod
|
|
718
|
+
@collect_queryband(queryband='CreateVolaTbl')
|
|
849
719
|
def _get_volatile_table(query, with_data=False):
|
|
850
720
|
"""
|
|
851
721
|
Creates a volatile table as query.
|
|
@@ -944,7 +814,8 @@ class UtilFuncs():
|
|
|
944
814
|
return False
|
|
945
815
|
|
|
946
816
|
@staticmethod
|
|
947
|
-
def _delete_script(script_name,
|
|
817
|
+
def _delete_script(script_name, file_type=TeradataConstants.TERADATA_SCRIPT,
|
|
818
|
+
check_script_exist=True):
|
|
948
819
|
"""
|
|
949
820
|
DESCRIPTION:
|
|
950
821
|
Function to remove a user-installed file/script.
|
|
@@ -955,8 +826,18 @@ class UtilFuncs():
|
|
|
955
826
|
Specifies the name of the script to remove.
|
|
956
827
|
Types: str
|
|
957
828
|
|
|
829
|
+
file_type:
|
|
830
|
+
Optional Argument.
|
|
831
|
+
Specifies the type of the file to remove, whether it is from
|
|
832
|
+
Enterpise (TeradataConstants.TERADATA_SCRIPT) or from Lake
|
|
833
|
+
(TeradataConstants.TERADATA_APPLY).
|
|
834
|
+
Default value: TeradataConstants.TERADATA_SCRIPT
|
|
835
|
+
Permitted Values: TeradataConstants.TERADATA_SCRIPT, TeradataConstants.TERADATA_APPLY
|
|
836
|
+
Types: TeradataConstants
|
|
837
|
+
|
|
958
838
|
check_script_exist:
|
|
959
|
-
Required Argument.
|
|
839
|
+
Required Argument. Applicable only when "file_type" is
|
|
840
|
+
TeradataConstants.TERADATA_SCRIPT. Ignored otherwise.
|
|
960
841
|
Specifies whether to check if the script exists or not before removing it.
|
|
961
842
|
When 'True', the presence of the script will be check for.
|
|
962
843
|
Default value: True
|
|
@@ -980,30 +861,44 @@ class UtilFuncs():
|
|
|
980
861
|
quote='"')
|
|
981
862
|
current_db = tdmlctx._get_current_databasename()
|
|
982
863
|
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
864
|
+
if file_type == TeradataConstants.TERADATA_SCRIPT:
|
|
865
|
+
script_exists = False
|
|
866
|
+
if check_script_exist:
|
|
867
|
+
query = "select count(*) from dbc.tablesV " \
|
|
868
|
+
"where databasename = '{}' and tablename = '{}' " \
|
|
869
|
+
"and tablekind = 'Z'".format(dbname, script_alias)
|
|
870
|
+
|
|
871
|
+
script_exists = True if UtilFuncs._execute_query(query)[0][0] == 1 else False
|
|
872
|
+
|
|
873
|
+
if script_exists or not check_script_exist:
|
|
874
|
+
try:
|
|
875
|
+
# If the database is not the current/default database, we need to
|
|
876
|
+
# set that as the session database to be able to remove the file.
|
|
877
|
+
if dbname and dbname.lower() != current_db.lower():
|
|
878
|
+
execute_sql('database {}'.format(dbname))
|
|
879
|
+
|
|
880
|
+
# Strip off the file extension and extract the base name.
|
|
881
|
+
from pathlib import Path
|
|
882
|
+
script_base_name = Path(script_alias).stem
|
|
883
|
+
|
|
884
|
+
# Remove the file.
|
|
885
|
+
remove_file(script_base_name, force_remove=True, suppress_output=True)
|
|
886
|
+
return True
|
|
887
|
+
except:
|
|
888
|
+
raise
|
|
889
|
+
finally:
|
|
890
|
+
# Reset the database if it was set to something else.
|
|
891
|
+
if dbname and dbname.lower() != current_db.lower():
|
|
892
|
+
execute_sql('database {}'.format(current_db))
|
|
893
|
+
else:
|
|
894
|
+
# environment name and file name are separated by '::'
|
|
895
|
+
# like <user_env_name(str)>::<apply_script_name>
|
|
896
|
+
env_name, script_alias = script_alias.split('::')
|
|
997
897
|
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
raise
|
|
1003
|
-
finally:
|
|
1004
|
-
# Reset the database if it was set to something else.
|
|
1005
|
-
if dbname.lower() != current_db.lower():
|
|
1006
|
-
execute_sql('database {}'.format(current_db))
|
|
898
|
+
from teradataml.scriptmgmt.lls_utils import get_env
|
|
899
|
+
env = get_env(env_name)
|
|
900
|
+
env.remove_file(script_alias, suppress_output=True)
|
|
901
|
+
return True
|
|
1007
902
|
|
|
1008
903
|
@staticmethod
|
|
1009
904
|
def _get_help_vtablenames():
|
|
@@ -1697,114 +1592,6 @@ class UtilFuncs():
|
|
|
1697
1592
|
supported_engines = TeradataConstants.SUPPORTED_ENGINES.value
|
|
1698
1593
|
return supported_engines[engine]['name']
|
|
1699
1594
|
|
|
1700
|
-
@staticmethod
|
|
1701
|
-
def _get_function_mappings_from_config_file(alias_config_file):
|
|
1702
|
-
"""
|
|
1703
|
-
Function to return the function mappings given the location of configuration file in
|
|
1704
|
-
argument 'alias_config_file'.
|
|
1705
|
-
|
|
1706
|
-
PARAMETERS:
|
|
1707
|
-
alias_config_file:
|
|
1708
|
-
Required Argument.
|
|
1709
|
-
Specifies the location of configuration file to be read.
|
|
1710
|
-
|
|
1711
|
-
RETURNS:
|
|
1712
|
-
Function mappings as a dictionary of function_names to alias_names.
|
|
1713
|
-
|
|
1714
|
-
RAISES:
|
|
1715
|
-
TeradataMLException
|
|
1716
|
-
|
|
1717
|
-
EXAMPLES:
|
|
1718
|
-
UtilFuncs._get_function_mappings_from_config_file("config_file_location")
|
|
1719
|
-
|
|
1720
|
-
"""
|
|
1721
|
-
repeated_function_names = []
|
|
1722
|
-
function_mappings = {}
|
|
1723
|
-
invalid_function_mappings = []
|
|
1724
|
-
invalid_function_mappings_line_nos = []
|
|
1725
|
-
# Reading configuration files
|
|
1726
|
-
with open(alias_config_file, 'r') as fread:
|
|
1727
|
-
for line_no, line in enumerate(fread.readlines()):
|
|
1728
|
-
line = line.strip()
|
|
1729
|
-
|
|
1730
|
-
# Ignoring empty lines in the config files.
|
|
1731
|
-
if line == "":
|
|
1732
|
-
continue
|
|
1733
|
-
|
|
1734
|
-
# If the separator ":" is not present.
|
|
1735
|
-
if ':' not in line:
|
|
1736
|
-
invalid_function_mappings.append(line)
|
|
1737
|
-
invalid_function_mappings_line_nos.append(str(line_no + 1))
|
|
1738
|
-
else:
|
|
1739
|
-
func_name, alias_name = line.split(":")
|
|
1740
|
-
func_name = func_name.strip()
|
|
1741
|
-
alias_name = alias_name.strip()
|
|
1742
|
-
|
|
1743
|
-
# First line of 'alias_config_file' has header "functionName:aliasName".
|
|
1744
|
-
if line_no == 0 and func_name == "functionName" and alias_name == "aliasName":
|
|
1745
|
-
continue
|
|
1746
|
-
|
|
1747
|
-
if func_name == "" or alias_name == "":
|
|
1748
|
-
invalid_function_mappings.append(line)
|
|
1749
|
-
invalid_function_mappings_line_nos.append(str(line_no + 1))
|
|
1750
|
-
continue
|
|
1751
|
-
|
|
1752
|
-
if func_name.lower() in function_mappings:
|
|
1753
|
-
repeated_function_names.append(func_name.lower())
|
|
1754
|
-
|
|
1755
|
-
# Loading function maps with lower values for key.
|
|
1756
|
-
function_mappings[func_name.lower()] = alias_name
|
|
1757
|
-
|
|
1758
|
-
# Presence of Invalid function mappings in the 'alias_config_file'.
|
|
1759
|
-
if len(invalid_function_mappings) > 0:
|
|
1760
|
-
err_ = Messages.get_message(MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
|
|
1761
|
-
err_ = err_.format("', '".join(invalid_function_mappings),
|
|
1762
|
-
", ".join(invalid_function_mappings_line_nos),
|
|
1763
|
-
alias_config_file)
|
|
1764
|
-
raise TeradataMlException(err_, MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
|
|
1765
|
-
|
|
1766
|
-
# Raising teradataml exception if there are any duplicates in function names.
|
|
1767
|
-
if len(repeated_function_names) > 0:
|
|
1768
|
-
raise TeradataMlException(Messages.get_message(
|
|
1769
|
-
MessageCodes.CONFIG_ALIAS_DUPLICATES).format(alias_config_file,
|
|
1770
|
-
", ".join(repeated_function_names)),
|
|
1771
|
-
MessageCodes.CONFIG_ALIAS_DUPLICATES)
|
|
1772
|
-
|
|
1773
|
-
return function_mappings
|
|
1774
|
-
|
|
1775
|
-
@staticmethod
|
|
1776
|
-
def _check_alias_config_file_exists(vantage_version, alias_config_file):
|
|
1777
|
-
"""
|
|
1778
|
-
Function to validate whether alias_config_file exists for the current vantage version.
|
|
1779
|
-
|
|
1780
|
-
PARAMETERS:
|
|
1781
|
-
vantage_version:
|
|
1782
|
-
Required Argument.
|
|
1783
|
-
Specifies the current vantage version.
|
|
1784
|
-
|
|
1785
|
-
alias_config_file:
|
|
1786
|
-
Required Argument.
|
|
1787
|
-
Specifies the location of configuration file to be read.
|
|
1788
|
-
|
|
1789
|
-
RETURNS:
|
|
1790
|
-
True, if the file 'alias_config_file' is present in the
|
|
1791
|
-
teradataml/config directory for the current vantage version.
|
|
1792
|
-
|
|
1793
|
-
RAISES:
|
|
1794
|
-
TeradataMLException
|
|
1795
|
-
|
|
1796
|
-
EXAMPLES:
|
|
1797
|
-
UtilFuncs._check_alias_config_file_exists("vantage1.0", "config_file_location")
|
|
1798
|
-
|
|
1799
|
-
"""
|
|
1800
|
-
# Raise exception if alias config file is not defined.
|
|
1801
|
-
if not Path(alias_config_file).exists():
|
|
1802
|
-
raise TeradataMlException(Messages.get_message(
|
|
1803
|
-
MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND).format(alias_config_file,
|
|
1804
|
-
vantage_version),
|
|
1805
|
-
MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND)
|
|
1806
|
-
return True
|
|
1807
|
-
|
|
1808
1595
|
@staticmethod
|
|
1809
1596
|
def _as_list(obj):
|
|
1810
1597
|
"""
|
|
@@ -1856,7 +1643,7 @@ class UtilFuncs():
|
|
|
1856
1643
|
obj = UtilFuncs._get_all_columns(df, False)
|
|
1857
1644
|
"""
|
|
1858
1645
|
if is_object_type_tdml_column:
|
|
1859
|
-
return object
|
|
1646
|
+
return UtilFuncs._all_df_column_expressions(object)
|
|
1860
1647
|
# object._metaexpr.c extracts the data to a list. And, the caller of
|
|
1861
1648
|
# this function will again iterate through the list, to process the
|
|
1862
1649
|
# list i.e. object._metaexpr.c is being iterated twice. To avoid this,
|
|
@@ -2495,6 +2282,137 @@ class UtilFuncs():
|
|
|
2495
2282
|
return True
|
|
2496
2283
|
return False
|
|
2497
2284
|
|
|
2285
|
+
@staticmethod
|
|
2286
|
+
def _all_df_column_expressions(df_column):
|
|
2287
|
+
"""
|
|
2288
|
+
DESCRIPTION:
|
|
2289
|
+
A method to get all the SQLALchemy Columns involved in corresponding DataFrame.
|
|
2290
|
+
|
|
2291
|
+
PARAMETERS:
|
|
2292
|
+
df_column:
|
|
2293
|
+
Required Argument.
|
|
2294
|
+
Specifies teradataml DataFrame ColumnExpression.
|
|
2295
|
+
Types: teradataml DataFrame ColumnExpression
|
|
2296
|
+
|
|
2297
|
+
RAISES:
|
|
2298
|
+
None
|
|
2299
|
+
|
|
2300
|
+
RETURNS:
|
|
2301
|
+
list
|
|
2302
|
+
|
|
2303
|
+
EXAMPLES:
|
|
2304
|
+
>>> self._all_df_column_expressions
|
|
2305
|
+
"""
|
|
2306
|
+
cols = []
|
|
2307
|
+
for table_ in df_column._get_sqlalchemy_tables(df_column.expression):
|
|
2308
|
+
cols = cols + list(table_.columns)
|
|
2309
|
+
return cols
|
|
2310
|
+
|
|
2311
|
+
@staticmethod
|
|
2312
|
+
def _all_df_columns(df_column):
|
|
2313
|
+
"""
|
|
2314
|
+
DESCRIPTION:
|
|
2315
|
+
A method to get all the column names involved in corresponding DataFrame.
|
|
2316
|
+
|
|
2317
|
+
PARAMETERS:
|
|
2318
|
+
df_column:
|
|
2319
|
+
Required Argument.
|
|
2320
|
+
Specifies teradataml DataFrame ColumnExpression.
|
|
2321
|
+
Types: teradataml DataFrame ColumnExpression
|
|
2322
|
+
|
|
2323
|
+
RAISES:
|
|
2324
|
+
None
|
|
2325
|
+
|
|
2326
|
+
RETURNS:
|
|
2327
|
+
list
|
|
2328
|
+
|
|
2329
|
+
EXAMPLES:
|
|
2330
|
+
>>> self._all_df_columns
|
|
2331
|
+
"""
|
|
2332
|
+
return [col.name for col in UtilFuncs._all_df_column_expressions(df_column)]
|
|
2333
|
+
|
|
2334
|
+
@staticmethod
|
|
2335
|
+
def _is_lake():
|
|
2336
|
+
"""
|
|
2337
|
+
DESCRIPTION:
|
|
2338
|
+
An internal function to check whether system is Lake or enterprise.
|
|
2339
|
+
|
|
2340
|
+
PARAMETERS:
|
|
2341
|
+
None.
|
|
2342
|
+
|
|
2343
|
+
RAISES:
|
|
2344
|
+
None
|
|
2345
|
+
|
|
2346
|
+
RETURNS:
|
|
2347
|
+
bool
|
|
2348
|
+
|
|
2349
|
+
EXAMPLES:
|
|
2350
|
+
>>> self._is_lake()
|
|
2351
|
+
"""
|
|
2352
|
+
|
|
2353
|
+
from teradataml.context.context import _get_database_version
|
|
2354
|
+
return int(_get_database_version().split(".")[0]) >= 20
|
|
2355
|
+
|
|
2356
|
+
@staticmethod
|
|
2357
|
+
def _get_python_execution_path():
|
|
2358
|
+
"""
|
|
2359
|
+
DESCRIPTION:
|
|
2360
|
+
An internal function to get the python execution path.
|
|
2361
|
+
|
|
2362
|
+
PARAMETERS:
|
|
2363
|
+
None.
|
|
2364
|
+
|
|
2365
|
+
RAISES:
|
|
2366
|
+
None
|
|
2367
|
+
|
|
2368
|
+
RETURNS:
|
|
2369
|
+
bool
|
|
2370
|
+
|
|
2371
|
+
EXAMPLES:
|
|
2372
|
+
>>> self._get_python_execution_path()
|
|
2373
|
+
"""
|
|
2374
|
+
|
|
2375
|
+
if UtilFuncs._is_lake():
|
|
2376
|
+
return "python"
|
|
2377
|
+
else:
|
|
2378
|
+
if configure.indb_install_location == "/var/opt/teradata/languages/sles12sp3/Python/":
|
|
2379
|
+
return '{}bin/python3'.format(configure.indb_install_location)
|
|
2380
|
+
else:
|
|
2381
|
+
return configure.indb_install_location
|
|
2382
|
+
|
|
2383
|
+
def _is_view(tablename):
|
|
2384
|
+
"""
|
|
2385
|
+
DESCRIPTION:
|
|
2386
|
+
Internal function to check whether the object is view or not.
|
|
2387
|
+
PARAMETERS:
|
|
2388
|
+
tablename:
|
|
2389
|
+
Required Argument.
|
|
2390
|
+
Table name or view name to be checked.
|
|
2391
|
+
Types: str
|
|
2392
|
+
RAISES:
|
|
2393
|
+
None.
|
|
2394
|
+
RETURNS:
|
|
2395
|
+
True when the tablename is view, else false.
|
|
2396
|
+
EXAMPLES:
|
|
2397
|
+
>>> _is_view('"dbname"."tablename"')
|
|
2398
|
+
"""
|
|
2399
|
+
db_name = UtilFuncs._teradata_unquote_arg(UtilFuncs._extract_db_name(tablename), "\"")
|
|
2400
|
+
table_view_name = UtilFuncs._teradata_unquote_arg(UtilFuncs._extract_table_name(tablename), "\"")
|
|
2401
|
+
query = SQLBundle._build_select_table_kind(db_name, "{0}".format(table_view_name), "'V'")
|
|
2402
|
+
|
|
2403
|
+
df = UtilFuncs._execute_query(query)
|
|
2404
|
+
if len(df) > 0:
|
|
2405
|
+
return True
|
|
2406
|
+
else:
|
|
2407
|
+
return False
|
|
2408
|
+
@staticmethod
|
|
2409
|
+
def _set_queryband():
|
|
2410
|
+
try:
|
|
2411
|
+
qb_query = get_qb_query()
|
|
2412
|
+
execute_sql(qb_query)
|
|
2413
|
+
except Exception:
|
|
2414
|
+
pass
|
|
2415
|
+
|
|
2498
2416
|
|
|
2499
2417
|
from teradataml.common.aed_utils import AedUtils
|
|
2500
2418
|
from teradataml.dbutils.filemgr import remove_file
|