teradataml 17.20.0.7__py3-none-any.whl → 20.0.0.1__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 +1935 -1640
- teradataml/__init__.py +70 -60
- teradataml/_version.py +11 -11
- teradataml/analytics/Transformations.py +2995 -2995
- teradataml/analytics/__init__.py +81 -83
- teradataml/analytics/analytic_function_executor.py +2040 -2010
- teradataml/analytics/analytic_query_generator.py +958 -958
- teradataml/analytics/byom/H2OPredict.py +514 -514
- teradataml/analytics/byom/PMMLPredict.py +437 -437
- teradataml/analytics/byom/__init__.py +14 -14
- teradataml/analytics/json_parser/__init__.py +130 -130
- teradataml/analytics/json_parser/analytic_functions_argument.py +1707 -1707
- teradataml/analytics/json_parser/json_store.py +191 -191
- teradataml/analytics/json_parser/metadata.py +1637 -1637
- teradataml/analytics/json_parser/utils.py +798 -803
- teradataml/analytics/meta_class.py +196 -196
- teradataml/analytics/sqle/DecisionTreePredict.py +455 -470
- teradataml/analytics/sqle/NaiveBayesPredict.py +419 -428
- teradataml/analytics/sqle/__init__.py +97 -110
- teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -78
- teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -62
- teradataml/analytics/table_operator/__init__.py +10 -10
- teradataml/analytics/uaf/__init__.py +63 -63
- teradataml/analytics/utils.py +693 -692
- teradataml/analytics/valib.py +1603 -1600
- teradataml/automl/__init__.py +1683 -0
- teradataml/automl/custom_json_utils.py +1270 -0
- teradataml/automl/data_preparation.py +1011 -0
- teradataml/automl/data_transformation.py +789 -0
- teradataml/automl/feature_engineering.py +1580 -0
- teradataml/automl/feature_exploration.py +554 -0
- teradataml/automl/model_evaluation.py +151 -0
- teradataml/automl/model_training.py +1026 -0
- teradataml/catalog/__init__.py +1 -3
- teradataml/catalog/byom.py +1759 -1716
- teradataml/catalog/function_argument_mapper.py +859 -861
- teradataml/catalog/model_cataloging_utils.py +491 -1510
- teradataml/clients/auth_client.py +133 -0
- teradataml/clients/pkce_client.py +481 -481
- teradataml/common/aed_utils.py +7 -2
- teradataml/common/bulk_exposed_utils.py +111 -111
- teradataml/common/constants.py +1438 -1441
- teradataml/common/deprecations.py +160 -0
- teradataml/common/exceptions.py +73 -73
- teradataml/common/formula.py +742 -742
- teradataml/common/garbagecollector.py +597 -635
- teradataml/common/messagecodes.py +424 -431
- teradataml/common/messages.py +228 -231
- teradataml/common/sqlbundle.py +693 -693
- teradataml/common/td_coltype_code_to_tdtype.py +48 -48
- teradataml/common/utils.py +2424 -2500
- teradataml/common/warnings.py +25 -25
- teradataml/common/wrapper_utils.py +1 -110
- teradataml/config/dummy_file1.cfg +4 -4
- teradataml/config/dummy_file2.cfg +2 -2
- teradataml/config/sqlengine_alias_definitions_v1.0 +13 -13
- teradataml/config/sqlengine_alias_definitions_v1.1 +19 -19
- teradataml/config/sqlengine_alias_definitions_v1.3 +18 -18
- teradataml/context/aed_context.py +217 -217
- teradataml/context/context.py +1091 -999
- teradataml/data/A_loan.csv +19 -19
- teradataml/data/BINARY_REALS_LEFT.csv +11 -11
- teradataml/data/BINARY_REALS_RIGHT.csv +11 -11
- teradataml/data/B_loan.csv +49 -49
- teradataml/data/BuoyData2.csv +17 -17
- teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -5
- teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -5
- teradataml/data/Convolve2RealsLeft.csv +5 -5
- teradataml/data/Convolve2RealsRight.csv +5 -5
- teradataml/data/Convolve2ValidLeft.csv +11 -11
- teradataml/data/Convolve2ValidRight.csv +11 -11
- teradataml/data/DFFTConv_Real_8_8.csv +65 -65
- teradataml/data/Orders1_12mf.csv +24 -24
- teradataml/data/Pi_loan.csv +7 -7
- teradataml/data/SMOOTHED_DATA.csv +7 -7
- teradataml/data/TestDFFT8.csv +9 -9
- teradataml/data/TestRiver.csv +109 -109
- teradataml/data/Traindata.csv +28 -28
- teradataml/data/acf.csv +17 -17
- teradataml/data/adaboost_example.json +34 -34
- teradataml/data/adaboostpredict_example.json +24 -24
- teradataml/data/additional_table.csv +10 -10
- teradataml/data/admissions_test.csv +21 -21
- teradataml/data/admissions_train.csv +41 -41
- teradataml/data/admissions_train_nulls.csv +41 -41
- teradataml/data/advertising.csv +201 -0
- teradataml/data/ageandheight.csv +13 -13
- teradataml/data/ageandpressure.csv +31 -31
- teradataml/data/antiselect_example.json +36 -36
- teradataml/data/antiselect_input.csv +8 -8
- teradataml/data/antiselect_input_mixed_case.csv +8 -8
- teradataml/data/applicant_external.csv +6 -6
- teradataml/data/applicant_reference.csv +6 -6
- teradataml/data/arima_example.json +9 -9
- teradataml/data/assortedtext_input.csv +8 -8
- teradataml/data/attribution_example.json +33 -33
- teradataml/data/attribution_sample_table.csv +27 -27
- teradataml/data/attribution_sample_table1.csv +6 -6
- teradataml/data/attribution_sample_table2.csv +11 -11
- teradataml/data/bank_churn.csv +10001 -0
- teradataml/data/bank_marketing.csv +11163 -0
- teradataml/data/bank_web_clicks1.csv +42 -42
- teradataml/data/bank_web_clicks2.csv +91 -91
- teradataml/data/bank_web_url.csv +85 -85
- teradataml/data/barrier.csv +2 -2
- teradataml/data/barrier_new.csv +3 -3
- teradataml/data/betweenness_example.json +13 -13
- teradataml/data/bike_sharing.csv +732 -0
- teradataml/data/bin_breaks.csv +8 -8
- teradataml/data/bin_fit_ip.csv +3 -3
- teradataml/data/binary_complex_left.csv +11 -11
- teradataml/data/binary_complex_right.csv +11 -11
- teradataml/data/binary_matrix_complex_left.csv +21 -21
- teradataml/data/binary_matrix_complex_right.csv +21 -21
- teradataml/data/binary_matrix_real_left.csv +21 -21
- teradataml/data/binary_matrix_real_right.csv +21 -21
- teradataml/data/blood2ageandweight.csv +26 -26
- teradataml/data/bmi.csv +501 -0
- teradataml/data/boston.csv +507 -507
- teradataml/data/boston2cols.csv +721 -0
- teradataml/data/breast_cancer.csv +570 -0
- teradataml/data/buoydata_mix.csv +11 -11
- teradataml/data/burst_data.csv +5 -5
- teradataml/data/burst_example.json +20 -20
- teradataml/data/byom_example.json +17 -17
- teradataml/data/bytes_table.csv +3 -3
- teradataml/data/cal_housing_ex_raw.csv +70 -70
- teradataml/data/callers.csv +7 -7
- teradataml/data/calls.csv +10 -10
- teradataml/data/cars_hist.csv +33 -33
- teradataml/data/cat_table.csv +24 -24
- teradataml/data/ccm_example.json +31 -31
- teradataml/data/ccm_input.csv +91 -91
- teradataml/data/ccm_input2.csv +13 -13
- teradataml/data/ccmexample.csv +101 -101
- teradataml/data/ccmprepare_example.json +8 -8
- teradataml/data/ccmprepare_input.csv +91 -91
- teradataml/data/cfilter_example.json +12 -12
- teradataml/data/changepointdetection_example.json +18 -18
- teradataml/data/changepointdetectionrt_example.json +8 -8
- teradataml/data/chi_sq.csv +2 -2
- teradataml/data/churn_data.csv +14 -14
- teradataml/data/churn_emission.csv +35 -35
- teradataml/data/churn_initial.csv +3 -3
- teradataml/data/churn_state_transition.csv +5 -5
- teradataml/data/citedges_2.csv +745 -745
- teradataml/data/citvertices_2.csv +1210 -1210
- teradataml/data/clicks2.csv +16 -16
- teradataml/data/clickstream.csv +12 -12
- teradataml/data/clickstream1.csv +11 -11
- teradataml/data/closeness_example.json +15 -15
- teradataml/data/complaints.csv +21 -21
- teradataml/data/complaints_mini.csv +3 -3
- teradataml/data/complaints_testtoken.csv +224 -224
- teradataml/data/complaints_tokens_test.csv +353 -353
- teradataml/data/complaints_traintoken.csv +472 -472
- teradataml/data/computers_category.csv +1001 -1001
- teradataml/data/computers_test1.csv +1252 -1252
- teradataml/data/computers_train1.csv +5009 -5009
- teradataml/data/computers_train1_clustered.csv +5009 -5009
- teradataml/data/confusionmatrix_example.json +9 -9
- teradataml/data/conversion_event_table.csv +3 -3
- teradataml/data/corr_input.csv +17 -17
- teradataml/data/correlation_example.json +11 -11
- teradataml/data/coxhazardratio_example.json +39 -39
- teradataml/data/coxph_example.json +15 -15
- teradataml/data/coxsurvival_example.json +28 -28
- teradataml/data/cpt.csv +41 -41
- teradataml/data/credit_ex_merged.csv +45 -45
- teradataml/data/customer_loyalty.csv +301 -301
- teradataml/data/customer_loyalty_newseq.csv +31 -31
- teradataml/data/customer_segmentation_test.csv +2628 -0
- teradataml/data/customer_segmentation_train.csv +8069 -0
- teradataml/data/dataframe_example.json +146 -146
- teradataml/data/decisionforest_example.json +37 -37
- teradataml/data/decisionforestpredict_example.json +38 -38
- teradataml/data/decisiontree_example.json +21 -21
- teradataml/data/decisiontreepredict_example.json +45 -45
- teradataml/data/dfft2_size4_real.csv +17 -17
- teradataml/data/dfft2_test_matrix16.csv +17 -17
- teradataml/data/dfft2conv_real_4_4.csv +65 -65
- teradataml/data/diabetes.csv +443 -443
- teradataml/data/diabetes_test.csv +89 -89
- teradataml/data/dict_table.csv +5 -5
- teradataml/data/docperterm_table.csv +4 -4
- teradataml/data/docs/__init__.py +1 -1
- teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -180
- teradataml/data/docs/byom/docs/DataikuPredict.py +177 -177
- teradataml/data/docs/byom/docs/H2OPredict.py +324 -324
- teradataml/data/docs/byom/docs/ONNXPredict.py +283 -283
- teradataml/data/docs/byom/docs/PMMLPredict.py +277 -277
- teradataml/data/docs/sqle/docs_17_10/Antiselect.py +82 -82
- teradataml/data/docs/sqle/docs_17_10/Attribution.py +199 -199
- teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +171 -171
- teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -130
- teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -86
- teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -90
- teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +85 -85
- teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +95 -95
- teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -139
- teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +151 -151
- teradataml/data/docs/sqle/docs_17_10/FTest.py +160 -160
- teradataml/data/docs/sqle/docs_17_10/FillRowId.py +82 -82
- teradataml/data/docs/sqle/docs_17_10/Fit.py +87 -87
- teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -144
- teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +84 -84
- teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +81 -81
- teradataml/data/docs/sqle/docs_17_10/Histogram.py +164 -164
- teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -134
- teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +208 -208
- teradataml/data/docs/sqle/docs_17_10/NPath.py +265 -265
- teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -116
- teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -176
- teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -147
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +134 -132
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -103
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +165 -165
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -101
- teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -128
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +111 -111
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -102
- teradataml/data/docs/sqle/docs_17_10/QQNorm.py +104 -104
- teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +109 -109
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +117 -117
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -98
- teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +152 -152
- teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -197
- teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -98
- teradataml/data/docs/sqle/docs_17_10/Sessionize.py +113 -113
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -116
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -98
- teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -187
- teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +145 -145
- teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -104
- teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +141 -141
- teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -214
- teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -83
- teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -83
- teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -155
- teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -126
- teradataml/data/docs/sqle/docs_17_20/Antiselect.py +82 -82
- teradataml/data/docs/sqle/docs_17_20/Attribution.py +200 -200
- teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +171 -171
- teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -138
- teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -86
- teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -90
- teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -166
- teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +85 -85
- teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +245 -243
- teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -113
- teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +279 -279
- teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -144
- teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +135 -135
- teradataml/data/docs/sqle/docs_17_20/FTest.py +239 -160
- teradataml/data/docs/sqle/docs_17_20/FillRowId.py +82 -82
- teradataml/data/docs/sqle/docs_17_20/Fit.py +87 -87
- teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -380
- teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +414 -414
- teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -144
- teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -234
- teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -123
- teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +108 -108
- teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +105 -105
- teradataml/data/docs/sqle/docs_17_20/Histogram.py +223 -223
- teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -204
- teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -143
- teradataml/data/docs/sqle/docs_17_20/KNN.py +214 -214
- teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -134
- teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +208 -208
- teradataml/data/docs/sqle/docs_17_20/NPath.py +265 -265
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -116
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -176
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +126 -126
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +118 -117
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -112
- teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -147
- teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -307
- teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -184
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +230 -225
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -115
- teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +219 -219
- teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -127
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +189 -189
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -112
- teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -128
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +111 -111
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -111
- teradataml/data/docs/sqle/docs_17_20/QQNorm.py +104 -104
- teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -163
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +154 -154
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -106
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -120
- teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -211
- teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +108 -108
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +117 -117
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -110
- teradataml/data/docs/sqle/docs_17_20/SVM.py +413 -413
- teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -202
- teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +152 -152
- teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -197
- teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -109
- teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -206
- teradataml/data/docs/sqle/docs_17_20/Sessionize.py +113 -113
- teradataml/data/docs/sqle/docs_17_20/Silhouette.py +152 -152
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -116
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -108
- teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -187
- teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +145 -145
- teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -207
- teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -171
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +266 -266
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -140
- teradataml/data/docs/sqle/docs_17_20/TextParser.py +172 -172
- teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +159 -159
- teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -123
- teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +141 -141
- teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -214
- teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +168 -168
- teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -83
- teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -83
- teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +236 -236
- teradataml/data/docs/sqle/docs_17_20/XGBoost.py +361 -353
- teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -275
- teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -155
- teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +429 -429
- teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +429 -429
- teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +347 -347
- teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +428 -428
- teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +347 -347
- teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +439 -439
- teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +386 -386
- teradataml/data/docs/uaf/docs_17_20/ACF.py +195 -195
- teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +369 -369
- teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +142 -142
- teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +159 -159
- teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +247 -247
- teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -252
- teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +177 -177
- teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +174 -174
- teradataml/data/docs/uaf/docs_17_20/Convolve.py +226 -226
- teradataml/data/docs/uaf/docs_17_20/Convolve2.py +214 -214
- teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +183 -183
- teradataml/data/docs/uaf/docs_17_20/DFFT.py +203 -203
- teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -216
- teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +215 -215
- teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +191 -191
- teradataml/data/docs/uaf/docs_17_20/DTW.py +179 -179
- teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +144 -144
- teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +183 -183
- teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +184 -184
- teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -172
- teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +205 -205
- teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +142 -142
- teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +258 -258
- teradataml/data/docs/uaf/docs_17_20/IDFFT.py +164 -164
- teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +198 -198
- teradataml/data/docs/uaf/docs_17_20/InputValidator.py +120 -120
- teradataml/data/docs/uaf/docs_17_20/LineSpec.py +155 -155
- teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +214 -214
- teradataml/data/docs/uaf/docs_17_20/MAMean.py +173 -173
- teradataml/data/docs/uaf/docs_17_20/MInfo.py +133 -133
- teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +135 -135
- teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +190 -190
- teradataml/data/docs/uaf/docs_17_20/PACF.py +158 -158
- teradataml/data/docs/uaf/docs_17_20/Portman.py +216 -216
- teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +154 -154
- teradataml/data/docs/uaf/docs_17_20/Resample.py +228 -228
- teradataml/data/docs/uaf/docs_17_20/SInfo.py +122 -122
- teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +165 -165
- teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +173 -173
- teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +170 -170
- teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +163 -163
- teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +179 -179
- teradataml/data/docs/uaf/docs_17_20/Smoothma.py +207 -207
- teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +150 -150
- teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -171
- teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +201 -201
- teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +169 -169
- teradataml/data/dtw_example.json +17 -17
- teradataml/data/dtw_t1.csv +11 -11
- teradataml/data/dtw_t2.csv +4 -4
- teradataml/data/dwt2d_example.json +15 -15
- teradataml/data/dwt_example.json +14 -14
- teradataml/data/dwt_filter_dim.csv +5 -5
- teradataml/data/emission.csv +9 -9
- teradataml/data/emp_table_by_dept.csv +19 -19
- teradataml/data/employee_info.csv +4 -4
- teradataml/data/employee_table.csv +6 -6
- teradataml/data/excluding_event_table.csv +2 -2
- teradataml/data/finance_data.csv +6 -6
- teradataml/data/finance_data2.csv +61 -61
- teradataml/data/finance_data3.csv +93 -93
- teradataml/data/fish.csv +160 -0
- teradataml/data/fm_blood2ageandweight.csv +26 -26
- teradataml/data/fmeasure_example.json +11 -11
- teradataml/data/followers_leaders.csv +10 -10
- teradataml/data/fpgrowth_example.json +12 -12
- teradataml/data/frequentpaths_example.json +29 -29
- teradataml/data/friends.csv +9 -9
- teradataml/data/fs_input.csv +33 -33
- teradataml/data/fs_input1.csv +33 -33
- teradataml/data/genData.csv +513 -513
- teradataml/data/geodataframe_example.json +39 -39
- teradataml/data/glass_types.csv +215 -0
- teradataml/data/glm_admissions_model.csv +12 -12
- teradataml/data/glm_example.json +56 -29
- teradataml/data/glml1l2_example.json +28 -28
- teradataml/data/glml1l2predict_example.json +54 -54
- teradataml/data/glmpredict_example.json +54 -54
- teradataml/data/gq_t1.csv +21 -21
- teradataml/data/hconvolve_complex_right.csv +5 -5
- teradataml/data/hconvolve_complex_rightmulti.csv +5 -5
- teradataml/data/histogram_example.json +11 -11
- teradataml/data/hmmdecoder_example.json +78 -78
- teradataml/data/hmmevaluator_example.json +24 -24
- teradataml/data/hmmsupervised_example.json +10 -10
- teradataml/data/hmmunsupervised_example.json +7 -7
- teradataml/data/house_values.csv +12 -12
- teradataml/data/house_values2.csv +13 -13
- teradataml/data/housing_cat.csv +7 -7
- teradataml/data/housing_data.csv +9 -9
- teradataml/data/housing_test.csv +47 -47
- teradataml/data/housing_test_binary.csv +47 -47
- teradataml/data/housing_train.csv +493 -493
- teradataml/data/housing_train_attribute.csv +4 -4
- teradataml/data/housing_train_binary.csv +437 -437
- teradataml/data/housing_train_parameter.csv +2 -2
- teradataml/data/housing_train_response.csv +493 -493
- teradataml/data/housing_train_segment.csv +201 -0
- teradataml/data/ibm_stock.csv +370 -370
- teradataml/data/ibm_stock1.csv +370 -370
- teradataml/data/identitymatch_example.json +21 -21
- teradataml/data/idf_table.csv +4 -4
- teradataml/data/impressions.csv +101 -101
- teradataml/data/inflation.csv +21 -21
- teradataml/data/initial.csv +3 -3
- teradataml/data/insect2Cols.csv +61 -0
- teradataml/data/insect_sprays.csv +12 -12
- teradataml/data/insurance.csv +1339 -1339
- teradataml/data/interpolator_example.json +12 -12
- teradataml/data/iris_altinput.csv +481 -481
- teradataml/data/iris_attribute_output.csv +8 -8
- teradataml/data/iris_attribute_test.csv +121 -121
- teradataml/data/iris_attribute_train.csv +481 -481
- teradataml/data/iris_category_expect_predict.csv +31 -31
- teradataml/data/iris_data.csv +151 -0
- teradataml/data/iris_input.csv +151 -151
- teradataml/data/iris_response_train.csv +121 -121
- teradataml/data/iris_test.csv +31 -31
- teradataml/data/iris_train.csv +121 -121
- teradataml/data/join_table1.csv +4 -4
- teradataml/data/join_table2.csv +4 -4
- teradataml/data/jsons/anly_function_name.json +6 -6
- teradataml/data/jsons/byom/dataikupredict.json +147 -147
- teradataml/data/jsons/byom/datarobotpredict.json +146 -146
- teradataml/data/jsons/byom/h2opredict.json +194 -194
- teradataml/data/jsons/byom/onnxpredict.json +186 -186
- teradataml/data/jsons/byom/pmmlpredict.json +146 -146
- teradataml/data/jsons/paired_functions.json +435 -435
- teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -56
- teradataml/data/jsons/sqle/16.20/Attribution.json +249 -249
- teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -156
- teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -170
- teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -122
- teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -367
- teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -239
- teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -136
- teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -235
- teradataml/data/jsons/sqle/16.20/Pack.json +98 -98
- teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -162
- teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -105
- teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -86
- teradataml/data/jsons/sqle/16.20/Unpack.json +166 -166
- teradataml/data/jsons/sqle/16.20/nPath.json +269 -269
- teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -56
- teradataml/data/jsons/sqle/17.00/Attribution.json +249 -249
- teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -156
- teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -170
- teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -122
- teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -367
- teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -239
- teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -136
- teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -235
- teradataml/data/jsons/sqle/17.00/Pack.json +98 -98
- teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -162
- teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -105
- teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -86
- teradataml/data/jsons/sqle/17.00/Unpack.json +166 -166
- teradataml/data/jsons/sqle/17.00/nPath.json +269 -269
- teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -56
- teradataml/data/jsons/sqle/17.05/Attribution.json +249 -249
- teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -156
- teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -170
- teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -122
- teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -367
- teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -239
- teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -136
- teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -235
- teradataml/data/jsons/sqle/17.05/Pack.json +98 -98
- teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -162
- teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -105
- teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -86
- teradataml/data/jsons/sqle/17.05/Unpack.json +166 -166
- teradataml/data/jsons/sqle/17.05/nPath.json +269 -269
- teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -56
- teradataml/data/jsons/sqle/17.10/Attribution.json +249 -249
- teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -185
- teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +171 -171
- teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -151
- teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -368
- teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -239
- teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -149
- teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -288
- teradataml/data/jsons/sqle/17.10/Pack.json +133 -133
- teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -193
- teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -105
- teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -86
- teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -239
- teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -70
- teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +53 -53
- teradataml/data/jsons/sqle/17.10/TD_Chisq.json +67 -67
- teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +53 -53
- teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +68 -68
- teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -187
- teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +51 -51
- teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -46
- teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -71
- teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +52 -52
- teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +52 -52
- teradataml/data/jsons/sqle/17.10/TD_Histogram.json +132 -132
- teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -147
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +182 -182
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +65 -64
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +196 -196
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -47
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -114
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -71
- teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +111 -111
- teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -93
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +127 -127
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +70 -69
- teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +156 -156
- teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +70 -69
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +147 -147
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -47
- teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -240
- teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +118 -118
- teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +52 -52
- teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +52 -52
- teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -171
- teradataml/data/jsons/sqle/17.10/Unpack.json +188 -188
- teradataml/data/jsons/sqle/17.10/nPath.json +269 -269
- teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -56
- teradataml/data/jsons/sqle/17.20/Attribution.json +249 -249
- teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -185
- teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -172
- teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -151
- teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -367
- teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -239
- teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -149
- teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -287
- teradataml/data/jsons/sqle/17.20/Pack.json +133 -133
- teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -192
- teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -105
- teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -86
- teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +148 -76
- teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -239
- teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -71
- teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -53
- teradataml/data/jsons/sqle/17.20/TD_Chisq.json +67 -67
- teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +145 -145
- teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -53
- teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -218
- teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -92
- teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +259 -259
- teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -139
- teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -186
- teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -52
- teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -46
- teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -72
- teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -431
- teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -125
- teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -411
- teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -146
- teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -91
- teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -76
- teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -76
- teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -152
- teradataml/data/jsons/sqle/17.20/TD_KMeans.json +231 -211
- teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +86 -86
- teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -262
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -137
- teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -101
- teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -71
- teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -147
- teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +315 -315
- teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +123 -123
- teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -271
- teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -65
- teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -229
- teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -75
- teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -217
- teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -48
- teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -114
- teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -72
- teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -111
- teradataml/data/jsons/sqle/17.20/TD_ROC.json +178 -177
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +178 -178
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +73 -73
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -74
- teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +137 -137
- teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -93
- teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +127 -127
- teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +70 -70
- teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -389
- teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -124
- teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +309 -156
- teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +119 -70
- teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +193 -193
- teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +142 -142
- teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -147
- teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -48
- teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -240
- teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -248
- teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -75
- teradataml/data/jsons/sqle/17.20/TD_TextParser.json +192 -192
- teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -142
- teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -117
- teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +182 -182
- teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +52 -52
- teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +52 -52
- teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -241
- teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -312
- teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -182
- teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -170
- teradataml/data/jsons/sqle/17.20/Unpack.json +188 -188
- teradataml/data/jsons/sqle/17.20/nPath.json +269 -269
- teradataml/data/jsons/tableoperator/17.00/read_nos.json +197 -197
- teradataml/data/jsons/tableoperator/17.05/read_nos.json +197 -197
- teradataml/data/jsons/tableoperator/17.05/write_nos.json +194 -194
- teradataml/data/jsons/tableoperator/17.10/read_nos.json +183 -183
- teradataml/data/jsons/tableoperator/17.10/write_nos.json +194 -194
- teradataml/data/jsons/tableoperator/17.20/read_nos.json +182 -182
- teradataml/data/jsons/tableoperator/17.20/write_nos.json +223 -223
- teradataml/data/jsons/uaf/17.20/TD_ACF.json +149 -149
- teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +409 -409
- teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +79 -79
- teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +151 -151
- teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +109 -109
- teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +107 -107
- teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +87 -87
- teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +106 -106
- teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +80 -80
- teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +67 -67
- teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +91 -91
- teradataml/data/jsons/uaf/17.20/TD_DFFT.json +136 -136
- teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +148 -148
- teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -108
- teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +109 -109
- teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +86 -86
- teradataml/data/jsons/uaf/17.20/TD_DIFF.json +91 -91
- teradataml/data/jsons/uaf/17.20/TD_DTW.json +116 -116
- teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +100 -100
- teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +38 -38
- teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +100 -100
- teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +84 -84
- teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +70 -70
- teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +152 -152
- teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECAST.json +313 -313
- teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +57 -57
- teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +94 -94
- teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +63 -63
- teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +181 -181
- teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +102 -102
- teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +182 -182
- teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +67 -67
- teradataml/data/jsons/uaf/17.20/TD_MINFO.json +66 -66
- teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +178 -178
- teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -114
- teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +118 -118
- teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -175
- teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +97 -97
- teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +173 -173
- teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +136 -136
- teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +89 -89
- teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +79 -79
- teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +67 -67
- teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -184
- teradataml/data/jsons/uaf/17.20/TD_SINFO.json +57 -57
- teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +162 -162
- teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +100 -100
- teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +111 -111
- teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -95
- teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +77 -77
- teradataml/data/kmeans_example.json +22 -17
- teradataml/data/kmeans_table.csv +10 -0
- teradataml/data/kmeans_us_arrests_data.csv +0 -0
- teradataml/data/knn_example.json +18 -18
- teradataml/data/knnrecommender_example.json +6 -6
- teradataml/data/knnrecommenderpredict_example.json +12 -12
- teradataml/data/lar_example.json +17 -17
- teradataml/data/larpredict_example.json +30 -30
- teradataml/data/lc_new_predictors.csv +5 -5
- teradataml/data/lc_new_reference.csv +9 -9
- teradataml/data/lda_example.json +8 -8
- teradataml/data/ldainference_example.json +14 -14
- teradataml/data/ldatopicsummary_example.json +8 -8
- teradataml/data/levendist_input.csv +13 -13
- teradataml/data/levenshteindistance_example.json +10 -10
- teradataml/data/linreg_example.json +9 -9
- teradataml/data/load_example_data.py +326 -323
- teradataml/data/loan_prediction.csv +295 -295
- teradataml/data/lungcancer.csv +138 -138
- teradataml/data/mappingdata.csv +12 -12
- teradataml/data/milk_timeseries.csv +157 -157
- teradataml/data/min_max_titanic.csv +4 -4
- teradataml/data/minhash_example.json +6 -6
- teradataml/data/ml_ratings.csv +7547 -7547
- teradataml/data/ml_ratings_10.csv +2445 -2445
- teradataml/data/model1_table.csv +5 -5
- teradataml/data/model2_table.csv +5 -5
- teradataml/data/models/iris_db_glm_model.pmml +56 -56
- teradataml/data/models/iris_db_xgb_model.pmml +4471 -4471
- teradataml/data/modularity_example.json +12 -12
- teradataml/data/movavg_example.json +7 -7
- teradataml/data/mtx1.csv +7 -7
- teradataml/data/mtx2.csv +13 -13
- teradataml/data/multi_model_classification.csv +401 -0
- teradataml/data/multi_model_regression.csv +401 -0
- teradataml/data/mvdfft8.csv +9 -9
- teradataml/data/naivebayes_example.json +9 -9
- teradataml/data/naivebayespredict_example.json +19 -19
- teradataml/data/naivebayestextclassifier2_example.json +6 -6
- teradataml/data/naivebayestextclassifier_example.json +8 -8
- teradataml/data/naivebayestextclassifierpredict_example.json +20 -20
- teradataml/data/name_Find_configure.csv +10 -10
- teradataml/data/namedentityfinder_example.json +14 -14
- teradataml/data/namedentityfinderevaluator_example.json +10 -10
- teradataml/data/namedentityfindertrainer_example.json +6 -6
- teradataml/data/nb_iris_input_test.csv +31 -31
- teradataml/data/nb_iris_input_train.csv +121 -121
- teradataml/data/nbp_iris_model.csv +13 -13
- teradataml/data/ner_extractor_text.csv +2 -2
- teradataml/data/ner_sports_test2.csv +29 -29
- teradataml/data/ner_sports_train.csv +501 -501
- teradataml/data/nerevaluator_example.json +5 -5
- teradataml/data/nerextractor_example.json +18 -18
- teradataml/data/nermem_sports_test.csv +17 -17
- teradataml/data/nermem_sports_train.csv +50 -50
- teradataml/data/nertrainer_example.json +6 -6
- teradataml/data/ngrams_example.json +6 -6
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -1455
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -1993
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -1492
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -536
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -570
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -2559
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -2911
- teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -698
- teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -784
- teradataml/data/npath_example.json +23 -23
- teradataml/data/ntree_example.json +14 -14
- teradataml/data/numeric_strings.csv +4 -4
- teradataml/data/numerics.csv +4 -4
- teradataml/data/ocean_buoy.csv +17 -17
- teradataml/data/ocean_buoy2.csv +17 -17
- teradataml/data/ocean_buoys.csv +27 -27
- teradataml/data/ocean_buoys2.csv +10 -10
- teradataml/data/ocean_buoys_nonpti.csv +28 -28
- teradataml/data/ocean_buoys_seq.csv +29 -29
- teradataml/data/onehot_encoder_train.csv +4 -0
- teradataml/data/openml_example.json +92 -0
- teradataml/data/optional_event_table.csv +4 -4
- teradataml/data/orders1.csv +11 -11
- teradataml/data/orders1_12.csv +12 -12
- teradataml/data/orders_ex.csv +4 -4
- teradataml/data/pack_example.json +8 -8
- teradataml/data/package_tracking.csv +19 -19
- teradataml/data/package_tracking_pti.csv +18 -18
- teradataml/data/pagerank_example.json +13 -13
- teradataml/data/paragraphs_input.csv +6 -6
- teradataml/data/pathanalyzer_example.json +7 -7
- teradataml/data/pathgenerator_example.json +7 -7
- teradataml/data/phrases.csv +7 -7
- teradataml/data/pivot_example.json +8 -8
- teradataml/data/pivot_input.csv +22 -22
- teradataml/data/playerRating.csv +31 -31
- teradataml/data/postagger_example.json +6 -6
- teradataml/data/posttagger_output.csv +44 -44
- teradataml/data/production_data.csv +16 -16
- teradataml/data/production_data2.csv +7 -7
- teradataml/data/randomsample_example.json +31 -31
- teradataml/data/randomwalksample_example.json +8 -8
- teradataml/data/rank_table.csv +6 -6
- teradataml/data/ref_mobile_data.csv +4 -4
- teradataml/data/ref_mobile_data_dense.csv +2 -2
- teradataml/data/ref_url.csv +17 -17
- teradataml/data/restaurant_reviews.csv +7 -7
- teradataml/data/river_data.csv +145 -145
- teradataml/data/roc_example.json +7 -7
- teradataml/data/roc_input.csv +101 -101
- teradataml/data/rule_inputs.csv +6 -6
- teradataml/data/rule_table.csv +2 -2
- teradataml/data/sales.csv +7 -7
- teradataml/data/sales_transaction.csv +501 -501
- teradataml/data/salesdata.csv +342 -342
- teradataml/data/sample_cities.csv +2 -2
- teradataml/data/sample_shapes.csv +10 -10
- teradataml/data/sample_streets.csv +2 -2
- teradataml/data/sampling_example.json +15 -15
- teradataml/data/sax_example.json +8 -8
- teradataml/data/scale_attributes.csv +3 -0
- teradataml/data/scale_example.json +74 -23
- teradataml/data/scale_housing.csv +11 -11
- teradataml/data/scale_housing_test.csv +6 -6
- teradataml/data/scale_input_part_sparse.csv +31 -0
- teradataml/data/scale_input_partitioned.csv +16 -0
- teradataml/data/scale_input_sparse.csv +11 -0
- teradataml/data/scale_parameters.csv +3 -0
- teradataml/data/scale_stat.csv +11 -11
- teradataml/data/scalebypartition_example.json +13 -13
- teradataml/data/scalemap_example.json +13 -13
- teradataml/data/scalesummary_example.json +12 -12
- teradataml/data/score_category.csv +101 -101
- teradataml/data/score_summary.csv +4 -4
- teradataml/data/script_example.json +9 -9
- teradataml/data/scripts/deploy_script.py +84 -0
- teradataml/data/scripts/mapper.R +20 -0
- teradataml/data/scripts/mapper.py +15 -15
- teradataml/data/scripts/mapper_replace.py +15 -15
- teradataml/data/scripts/sklearn/__init__.py +0 -0
- teradataml/data/scripts/sklearn/sklearn_fit.py +171 -0
- teradataml/data/scripts/sklearn/sklearn_fit_predict.py +127 -0
- teradataml/data/scripts/sklearn/sklearn_function.template +108 -0
- teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +148 -0
- teradataml/data/scripts/sklearn/sklearn_neighbors.py +143 -0
- teradataml/data/scripts/sklearn/sklearn_score.py +119 -0
- teradataml/data/scripts/sklearn/sklearn_transform.py +171 -0
- teradataml/data/seeds.csv +10 -10
- teradataml/data/sentenceextractor_example.json +6 -6
- teradataml/data/sentiment_extract_input.csv +11 -11
- teradataml/data/sentiment_train.csv +16 -16
- teradataml/data/sentiment_word.csv +20 -20
- teradataml/data/sentiment_word_input.csv +19 -19
- teradataml/data/sentimentextractor_example.json +24 -24
- teradataml/data/sentimenttrainer_example.json +8 -8
- teradataml/data/sequence_table.csv +10 -10
- teradataml/data/seriessplitter_example.json +7 -7
- teradataml/data/sessionize_example.json +17 -17
- teradataml/data/sessionize_table.csv +116 -116
- teradataml/data/setop_test1.csv +24 -24
- teradataml/data/setop_test2.csv +22 -22
- teradataml/data/soc_nw_edges.csv +10 -10
- teradataml/data/soc_nw_vertices.csv +7 -7
- teradataml/data/souvenir_timeseries.csv +167 -167
- teradataml/data/sparse_iris_attribute.csv +5 -5
- teradataml/data/sparse_iris_test.csv +121 -121
- teradataml/data/sparse_iris_train.csv +601 -601
- teradataml/data/star1.csv +6 -6
- teradataml/data/state_transition.csv +5 -5
- teradataml/data/stock_data.csv +53 -53
- teradataml/data/stock_movement.csv +11 -11
- teradataml/data/stock_vol.csv +76 -76
- teradataml/data/stop_words.csv +8 -8
- teradataml/data/store_sales.csv +37 -37
- teradataml/data/stringsimilarity_example.json +7 -7
- teradataml/data/strsimilarity_input.csv +13 -13
- teradataml/data/students.csv +101 -101
- teradataml/data/svm_iris_input_test.csv +121 -121
- teradataml/data/svm_iris_input_train.csv +481 -481
- teradataml/data/svm_iris_model.csv +7 -7
- teradataml/data/svmdense_example.json +9 -9
- teradataml/data/svmdensepredict_example.json +18 -18
- teradataml/data/svmsparse_example.json +7 -7
- teradataml/data/svmsparsepredict_example.json +13 -13
- teradataml/data/svmsparsesummary_example.json +7 -7
- teradataml/data/target_mobile_data.csv +13 -13
- teradataml/data/target_mobile_data_dense.csv +5 -5
- teradataml/data/templatedata.csv +1201 -1201
- teradataml/data/templates/open_source_ml.json +9 -0
- teradataml/data/teradataml_example.json +150 -1
- teradataml/data/test_classification.csv +101 -0
- teradataml/data/test_loan_prediction.csv +53 -53
- teradataml/data/test_pacf_12.csv +37 -37
- teradataml/data/test_prediction.csv +101 -0
- teradataml/data/test_regression.csv +101 -0
- teradataml/data/test_river2.csv +109 -109
- teradataml/data/text_inputs.csv +6 -6
- teradataml/data/textchunker_example.json +7 -7
- teradataml/data/textclassifier_example.json +6 -6
- teradataml/data/textclassifier_input.csv +7 -7
- teradataml/data/textclassifiertrainer_example.json +6 -6
- teradataml/data/textmorph_example.json +5 -5
- teradataml/data/textparser_example.json +15 -15
- teradataml/data/texttagger_example.json +11 -11
- teradataml/data/texttokenizer_example.json +6 -6
- teradataml/data/texttrainer_input.csv +11 -11
- teradataml/data/tf_example.json +6 -6
- teradataml/data/tfidf_example.json +13 -13
- teradataml/data/tfidf_input1.csv +201 -201
- teradataml/data/tfidf_train.csv +6 -6
- teradataml/data/time_table1.csv +535 -535
- teradataml/data/time_table2.csv +14 -14
- teradataml/data/timeseriesdata.csv +1601 -1601
- teradataml/data/timeseriesdatasetsd4.csv +105 -105
- teradataml/data/titanic.csv +892 -892
- teradataml/data/token_table.csv +696 -696
- 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/train_tracking.csv +27 -27
- teradataml/data/transformation_table.csv +5 -5
- teradataml/data/transformation_table_new.csv +1 -1
- teradataml/data/tv_spots.csv +16 -16
- teradataml/data/twod_climate_data.csv +117 -117
- teradataml/data/uaf_example.json +475 -475
- teradataml/data/univariatestatistics_example.json +8 -8
- teradataml/data/unpack_example.json +9 -9
- teradataml/data/unpivot_example.json +9 -9
- teradataml/data/unpivot_input.csv +8 -8
- teradataml/data/us_air_pass.csv +36 -36
- teradataml/data/us_population.csv +624 -624
- teradataml/data/us_states_shapes.csv +52 -52
- teradataml/data/varmax_example.json +17 -17
- teradataml/data/vectordistance_example.json +25 -25
- teradataml/data/ville_climatedata.csv +121 -121
- teradataml/data/ville_tempdata.csv +12 -12
- teradataml/data/ville_tempdata1.csv +12 -12
- teradataml/data/ville_temperature.csv +11 -11
- teradataml/data/waveletTable.csv +1605 -1605
- teradataml/data/waveletTable2.csv +1605 -1605
- teradataml/data/weightedmovavg_example.json +8 -8
- teradataml/data/wft_testing.csv +5 -5
- teradataml/data/wine_data.csv +1600 -0
- teradataml/data/word_embed_input_table1.csv +5 -5
- teradataml/data/word_embed_input_table2.csv +4 -4
- teradataml/data/word_embed_model.csv +22 -22
- teradataml/data/words_input.csv +13 -13
- teradataml/data/xconvolve_complex_left.csv +6 -6
- teradataml/data/xconvolve_complex_leftmulti.csv +6 -6
- teradataml/data/xgboost_example.json +35 -35
- teradataml/data/xgboostpredict_example.json +31 -31
- teradataml/data/ztest_example.json +16 -0
- teradataml/dataframe/copy_to.py +1769 -1698
- teradataml/dataframe/data_transfer.py +2812 -2745
- teradataml/dataframe/dataframe.py +17630 -16946
- teradataml/dataframe/dataframe_utils.py +1875 -1740
- teradataml/dataframe/fastload.py +794 -603
- teradataml/dataframe/indexer.py +424 -424
- teradataml/dataframe/setop.py +1179 -1166
- teradataml/dataframe/sql.py +10174 -6432
- teradataml/dataframe/sql_function_parameters.py +439 -388
- teradataml/dataframe/sql_functions.py +652 -652
- teradataml/dataframe/sql_interfaces.py +220 -220
- teradataml/dataframe/vantage_function_types.py +674 -630
- teradataml/dataframe/window.py +693 -692
- teradataml/dbutils/__init__.py +3 -3
- teradataml/dbutils/dbutils.py +1167 -1150
- teradataml/dbutils/filemgr.py +267 -267
- teradataml/gen_ai/__init__.py +2 -2
- teradataml/gen_ai/convAI.py +472 -472
- teradataml/geospatial/__init__.py +3 -3
- teradataml/geospatial/geodataframe.py +1105 -1094
- teradataml/geospatial/geodataframecolumn.py +392 -387
- teradataml/geospatial/geometry_types.py +925 -925
- teradataml/hyperparameter_tuner/__init__.py +1 -1
- teradataml/hyperparameter_tuner/optimizer.py +3783 -2993
- teradataml/hyperparameter_tuner/utils.py +281 -187
- 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 +1715 -0
- teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
- teradataml/opensource/sklearn/constants.py +54 -0
- teradataml/options/__init__.py +130 -124
- teradataml/options/configure.py +358 -336
- teradataml/options/display.py +176 -176
- teradataml/plot/__init__.py +2 -2
- teradataml/plot/axis.py +1388 -1388
- teradataml/plot/constants.py +15 -15
- teradataml/plot/figure.py +398 -398
- teradataml/plot/plot.py +760 -760
- teradataml/plot/query_generator.py +83 -83
- teradataml/plot/subplot.py +216 -216
- teradataml/scriptmgmt/UserEnv.py +3791 -3761
- teradataml/scriptmgmt/__init__.py +3 -3
- teradataml/scriptmgmt/lls_utils.py +1719 -1604
- teradataml/series/series.py +532 -532
- teradataml/series/series_utils.py +71 -71
- teradataml/table_operators/Apply.py +949 -917
- teradataml/table_operators/Script.py +1718 -1982
- teradataml/table_operators/TableOperator.py +1255 -1616
- teradataml/table_operators/__init__.py +2 -3
- teradataml/table_operators/apply_query_generator.py +262 -262
- teradataml/table_operators/query_generator.py +507 -507
- teradataml/table_operators/table_operator_query_generator.py +460 -460
- teradataml/table_operators/table_operator_util.py +631 -639
- teradataml/table_operators/templates/dataframe_apply.template +184 -184
- teradataml/table_operators/templates/dataframe_map.template +176 -176
- teradataml/table_operators/templates/script_executor.template +170 -170
- teradataml/utils/dtypes.py +684 -684
- teradataml/utils/internal_buffer.py +84 -84
- teradataml/utils/print_versions.py +205 -205
- teradataml/utils/utils.py +410 -410
- teradataml/utils/validators.py +2277 -2115
- {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/METADATA +346 -45
- teradataml-20.0.0.1.dist-info/RECORD +1056 -0
- {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/WHEEL +1 -1
- {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/zip-safe +1 -1
- 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.7.dist-info/RECORD +0 -1280
- {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/top_level.txt +0 -0
teradataml/context/context.py
CHANGED
|
@@ -1,999 +1,1091 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
Unpublished work.
|
|
4
|
-
Copyright (c) 2018 by Teradata Corporation. All rights reserved.
|
|
5
|
-
TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
|
|
6
|
-
|
|
7
|
-
Primary Owner: rameshchandra.d@teradata.com
|
|
8
|
-
Secondary Owner:
|
|
9
|
-
|
|
10
|
-
teradataml context
|
|
11
|
-
----------
|
|
12
|
-
A teradataml context functions provide interface to Teradata Vantage. Provides functionality to get and set a global
|
|
13
|
-
context which can be used by other analytical functions to get the Teradata Vantage connection.
|
|
14
|
-
|
|
15
|
-
"""
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from teradataml.common.
|
|
20
|
-
from teradataml.common.
|
|
21
|
-
from teradataml.common.
|
|
22
|
-
from teradataml.common.
|
|
23
|
-
from teradataml.common.
|
|
24
|
-
from teradataml.
|
|
25
|
-
from teradataml.common.constants import
|
|
26
|
-
from teradataml.common.
|
|
27
|
-
from teradataml.
|
|
28
|
-
from teradataml.
|
|
29
|
-
from teradataml.
|
|
30
|
-
from teradataml.utils.
|
|
31
|
-
from
|
|
32
|
-
import
|
|
33
|
-
import
|
|
34
|
-
import
|
|
35
|
-
import
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
#
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
Types: str
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
>>> td_context = create_context(
|
|
359
|
-
|
|
360
|
-
# Example
|
|
361
|
-
>>> td_context = create_context(host = 'tdhost',
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
#
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
#
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
>>> td_context = create_context(host = 'tdhost',
|
|
374
|
-
|
|
375
|
-
# Example
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword',
|
|
394
|
-
'database_name')
|
|
395
|
-
|
|
396
|
-
# Example
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
None
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
#
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
"""
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
"""
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
Unpublished work.
|
|
4
|
+
Copyright (c) 2018 by Teradata Corporation. All rights reserved.
|
|
5
|
+
TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
|
|
6
|
+
|
|
7
|
+
Primary Owner: rameshchandra.d@teradata.com
|
|
8
|
+
Secondary Owner:
|
|
9
|
+
|
|
10
|
+
teradataml context
|
|
11
|
+
----------
|
|
12
|
+
A teradataml context functions provide interface to Teradata Vantage. Provides functionality to get and set a global
|
|
13
|
+
context which can be used by other analytical functions to get the Teradata Vantage connection.
|
|
14
|
+
|
|
15
|
+
"""
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
from sqlalchemy import create_engine
|
|
18
|
+
from teradatasqlalchemy.telemetry.queryband import collect_queryband
|
|
19
|
+
from teradataml.common.deprecations import argument_deprecation
|
|
20
|
+
from teradataml.common.exceptions import TeradataMlException
|
|
21
|
+
from teradataml.common.warnings import TeradataMlRuntimeWarning
|
|
22
|
+
from teradataml.common.messages import Messages
|
|
23
|
+
from teradataml.common.messagecodes import MessageCodes
|
|
24
|
+
from teradataml.common.sqlbundle import SQLBundle
|
|
25
|
+
from teradataml.common.constants import SQLConstants
|
|
26
|
+
from teradataml.common.garbagecollector import GarbageCollector
|
|
27
|
+
from teradataml.context.aed_context import AEDContext
|
|
28
|
+
from teradataml.common.constants import TeradataConstants, Query
|
|
29
|
+
from teradataml.options.configure import configure
|
|
30
|
+
from teradataml.utils.utils import execute_sql
|
|
31
|
+
from teradataml.utils.validators import _Validators
|
|
32
|
+
from teradataml.utils.internal_buffer import _InternalBuffer
|
|
33
|
+
from sqlalchemy.engine.base import Engine
|
|
34
|
+
from sqlalchemy.engine.url import URL
|
|
35
|
+
import os
|
|
36
|
+
import warnings
|
|
37
|
+
import atexit
|
|
38
|
+
import urllib.parse
|
|
39
|
+
|
|
40
|
+
# Store a global Teradata Vantage Connection.
|
|
41
|
+
# Right now user can only provide a single Vantage connection at any point of time.
|
|
42
|
+
td_connection = None
|
|
43
|
+
td_sqlalchemy_engine = None
|
|
44
|
+
temporary_database_name = None
|
|
45
|
+
user_specified_connection = False
|
|
46
|
+
python_packages_installed = False
|
|
47
|
+
td_user = None
|
|
48
|
+
|
|
49
|
+
function_alias_mappings = {}
|
|
50
|
+
|
|
51
|
+
# Current directory is context folder.
|
|
52
|
+
teradataml_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
53
|
+
config_folder = os.path.join(teradataml_folder, "config")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _get_current_databasename():
|
|
57
|
+
"""
|
|
58
|
+
Returns the database name associated with the current context.
|
|
59
|
+
|
|
60
|
+
PARAMETERS:
|
|
61
|
+
None.
|
|
62
|
+
|
|
63
|
+
RETURNS:
|
|
64
|
+
Database name associated with the current context
|
|
65
|
+
|
|
66
|
+
RAISES:
|
|
67
|
+
TeradataMlException - If Vantage connection can't be established using the engine.
|
|
68
|
+
|
|
69
|
+
EXAMPLES:
|
|
70
|
+
_get_current_databasename()
|
|
71
|
+
"""
|
|
72
|
+
if configure._current_database_name:
|
|
73
|
+
return configure._current_database_name
|
|
74
|
+
else:
|
|
75
|
+
if get_connection() is not None:
|
|
76
|
+
select_user_query = ""
|
|
77
|
+
try:
|
|
78
|
+
sqlbundle = SQLBundle()
|
|
79
|
+
select_user_query = sqlbundle._get_sql_query(SQLConstants.SQL_SELECT_DATABASE)
|
|
80
|
+
result = execute_sql(select_user_query)
|
|
81
|
+
configure._current_database_name = result.fetchall()[0][0]
|
|
82
|
+
return configure._current_database_name
|
|
83
|
+
except TeradataMlException:
|
|
84
|
+
raise
|
|
85
|
+
except Exception as err:
|
|
86
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, select_user_query),
|
|
87
|
+
MessageCodes.TDMLDF_EXEC_SQL_FAILED) from err
|
|
88
|
+
else:
|
|
89
|
+
return None
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def _get_database_username():
|
|
93
|
+
"""
|
|
94
|
+
Function to get the database user name.
|
|
95
|
+
|
|
96
|
+
PARAMETERS:
|
|
97
|
+
None.
|
|
98
|
+
|
|
99
|
+
RETURNS:
|
|
100
|
+
Database user name.
|
|
101
|
+
|
|
102
|
+
RAISES:
|
|
103
|
+
TeradataMlException - If "select user" query fails.
|
|
104
|
+
|
|
105
|
+
EXAMPLES:
|
|
106
|
+
_get_database_username()
|
|
107
|
+
"""
|
|
108
|
+
if configure._database_username:
|
|
109
|
+
return configure._database_username
|
|
110
|
+
else:
|
|
111
|
+
if get_connection() is not None:
|
|
112
|
+
select_query = ""
|
|
113
|
+
try:
|
|
114
|
+
sqlbundle = SQLBundle()
|
|
115
|
+
select_query = sqlbundle._get_sql_query(SQLConstants.SQL_SELECT_USER)
|
|
116
|
+
result = execute_sql(select_query)
|
|
117
|
+
configure._database_username = result.fetchall()[0][0]
|
|
118
|
+
return configure._database_username
|
|
119
|
+
except TeradataMlException:
|
|
120
|
+
raise
|
|
121
|
+
except Exception as err:
|
|
122
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, select_query),
|
|
123
|
+
MessageCodes.TDMLDF_EXEC_SQL_FAILED) from err
|
|
124
|
+
else:
|
|
125
|
+
return None
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def __cleanup_garbage_collection():
|
|
129
|
+
"""initiate the garbage collection."""
|
|
130
|
+
GarbageCollector._cleanup_garbage_collector()
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def _get_other_connection_parameters(logmech = None, logdata = None, database = None, **kwargs):
|
|
134
|
+
"""
|
|
135
|
+
DESCRIPTION:
|
|
136
|
+
Internal function to return the connection parameters.
|
|
137
|
+
|
|
138
|
+
PARAMETERS:
|
|
139
|
+
logmech:
|
|
140
|
+
Optional Argument.
|
|
141
|
+
Specifies the logon mechanism - TD2, LDAP, TDNEGO, KRB5 or JWT, to establish the connection.
|
|
142
|
+
Types: str
|
|
143
|
+
|
|
144
|
+
logdata:
|
|
145
|
+
Optional Argument.
|
|
146
|
+
Specifies additional connection information needed for the given logon mechanism.
|
|
147
|
+
Types: str
|
|
148
|
+
|
|
149
|
+
database:
|
|
150
|
+
Optional Argument.
|
|
151
|
+
Specifies the initial database to use after logon, instead of the user's default database.
|
|
152
|
+
Types: str
|
|
153
|
+
|
|
154
|
+
kwargs:
|
|
155
|
+
Optional Argument.
|
|
156
|
+
Specifies the keyword value pairs of other connection parameters to create the connection string.
|
|
157
|
+
|
|
158
|
+
RETURNS:
|
|
159
|
+
dict, needed to generate engine URL.
|
|
160
|
+
|
|
161
|
+
EXAMPLES:
|
|
162
|
+
__get_other_connection_parameters(logmech = "JWT", logdata = "<jwt_token>", database = "<database_name>",
|
|
163
|
+
kwargs)
|
|
164
|
+
"""
|
|
165
|
+
# Return empty string if there are no additional connection parameters.
|
|
166
|
+
if not logmech and not logdata and not database and len(kwargs) == 0:
|
|
167
|
+
return ""
|
|
168
|
+
|
|
169
|
+
result = {}
|
|
170
|
+
|
|
171
|
+
if logmech:
|
|
172
|
+
result['LOGMECH'] = logmech.upper()
|
|
173
|
+
if logdata:
|
|
174
|
+
result['LOGDATA'] = logdata
|
|
175
|
+
if database:
|
|
176
|
+
result['DATABASE'] = database
|
|
177
|
+
|
|
178
|
+
# Create connection parameters string.
|
|
179
|
+
other_params = []
|
|
180
|
+
for key, val in kwargs.items():
|
|
181
|
+
if isinstance(val, str):
|
|
182
|
+
# Value of TMODE connection parameter should be upper case (as per driver specification) i.e., ansi -> ANSI.
|
|
183
|
+
# Converting all string values to upper case.
|
|
184
|
+
if key != "LOGDATA":
|
|
185
|
+
val = val.upper()
|
|
186
|
+
else:
|
|
187
|
+
# Other type values like integer, boolean etc, are converted to string.
|
|
188
|
+
# For boolean values, the connection string should contain lower case values i.e., True -> true
|
|
189
|
+
val = str(val).lower()
|
|
190
|
+
result[key] = val
|
|
191
|
+
|
|
192
|
+
return result
|
|
193
|
+
|
|
194
|
+
@argument_deprecation("future", ["url_encode"], False, None)
|
|
195
|
+
@collect_queryband(queryband='CrtCxt')
|
|
196
|
+
def create_context(host = None, username = None, password = None, tdsqlengine = None, temp_database_name = None,
|
|
197
|
+
logmech = None, logdata = None, database = None, url_encode = True, **kwargs):
|
|
198
|
+
"""
|
|
199
|
+
DESCRIPTION:
|
|
200
|
+
Creates a connection to the Teradata Vantage using the teradatasql + teradatasqlalchemy DBAPI and dialect
|
|
201
|
+
combination. Users can pass all required parameters (host, username, password) for establishing a connection to
|
|
202
|
+
Vantage, or pass a sqlalchemy engine to the tdsqlengine parameter to override the default DBAPI and dialect
|
|
203
|
+
combination.
|
|
204
|
+
|
|
205
|
+
Note:
|
|
206
|
+
1. teradataml requires that the user has certain permissions on the user's default database or the initial
|
|
207
|
+
default database specified using the database argument, or the temporary database when specified using
|
|
208
|
+
temp_database_name. These permissions allow the user to:
|
|
209
|
+
a. Create tables and views to save results of teradataml analytic functions.
|
|
210
|
+
b. Create views in the background for results of DataFrame APIs such as assign(),
|
|
211
|
+
filter(), etc., whenever the result for these APIs are accessed using a print().
|
|
212
|
+
c. Create view in the background on the query passed to the DataFrame.from_query() API.
|
|
213
|
+
|
|
214
|
+
It is expected that the user has the correct permissions to create these objects in the database that
|
|
215
|
+
will be used.
|
|
216
|
+
The access to the views created may also require issuing additional GRANT SELECT ... WITH GRANT OPTION
|
|
217
|
+
permission depending on which database is used and which object the view being created is based on.
|
|
218
|
+
|
|
219
|
+
2. The temp_database_name and database parameters play a crucial role in determining which database
|
|
220
|
+
is used by default to lookup for tables/views while creating teradataml DataFrame using 'DataFrame()'
|
|
221
|
+
and 'DataFrame.from_table()' and which database is used to create all internal temporary objects.
|
|
222
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
223
|
+
| Scenario | teradataml behaviour |
|
|
224
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
225
|
+
| Both temp_database_name and database are provided | Internal temporary objects are created in |
|
|
226
|
+
| | temp_database_name, and database table/view |
|
|
227
|
+
| | lookup is done from database. |
|
|
228
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
229
|
+
| database is provided but temp_database_name is not | Database table/view lookup and internal |
|
|
230
|
+
| | temporary objects are created in database. |
|
|
231
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
232
|
+
| temp_database_name is provided but database is not | Internal temporary objects are created in |
|
|
233
|
+
| | temp_database_name, database table/view |
|
|
234
|
+
| | lookup from the users default database. |
|
|
235
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
236
|
+
| Neither temp_database_name nor database are provided | Database table/view lookup and internal |
|
|
237
|
+
| | temporary objects are created in users |
|
|
238
|
+
| | default database. |
|
|
239
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
240
|
+
|
|
241
|
+
PARAMETERS:
|
|
242
|
+
host:
|
|
243
|
+
Optional Argument.
|
|
244
|
+
Specifies the fully qualified domain name or IP address of the Teradata System.
|
|
245
|
+
Types: str
|
|
246
|
+
|
|
247
|
+
username:
|
|
248
|
+
Optional Argument.
|
|
249
|
+
Specifies the username for logging onto the Teradata Vantage.
|
|
250
|
+
Types: str
|
|
251
|
+
|
|
252
|
+
password:
|
|
253
|
+
Optional Argument.
|
|
254
|
+
Specifies the password required for the username.
|
|
255
|
+
Types: str
|
|
256
|
+
Note:
|
|
257
|
+
* Encrypted passwords can also be passed to this argument, using Stored Password Protection feature.
|
|
258
|
+
Examples section below demonstrates passing encrypted password to 'create_context'.
|
|
259
|
+
More details on Stored Password Protection and how to generate key and encrypted password file
|
|
260
|
+
can be found at https://pypi.org/project/teradatasql/#StoredPasswordProtection
|
|
261
|
+
* Special characters that may be used in the password are encoded by default, except '~'.
|
|
262
|
+
The encoding is done using urllib.parse library and can be
|
|
263
|
+
disabled by setting "url_encode" = False.
|
|
264
|
+
For example, if the password is: "kx%jj5/g", then this password is encoded as below:
|
|
265
|
+
"kx%25jj5%2Fg"
|
|
266
|
+
where,
|
|
267
|
+
%25 represents the '%' character and
|
|
268
|
+
%2F represents the '/' character
|
|
269
|
+
The details of how the special characters are replaced can be found in the below link:
|
|
270
|
+
"https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm".
|
|
271
|
+
Note:
|
|
272
|
+
When password contains a space:
|
|
273
|
+
* "url_encode" must be set to False.
|
|
274
|
+
* In addition to space, other special characters in this password should be manually encoded,
|
|
275
|
+
following the link: https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm
|
|
276
|
+
Refer Example 16 in examples section for a detailed demonstration.
|
|
277
|
+
|
|
278
|
+
When password contains unreserved characters like tilde("~"), dot("."), underscore("_"), hyphen("-"):
|
|
279
|
+
* Character is not URL encoded by default.
|
|
280
|
+
* If unreserved character in passed needs to be encoded then,
|
|
281
|
+
it must be encoded manually and encoded password must be passed, along with "url_encode" set to False.
|
|
282
|
+
* The unreserved characters differ from one Python version to another Python version.
|
|
283
|
+
For example, The encoding standards for Python version 3.7 found in the below link:
|
|
284
|
+
"https://docs.python.org/3/library/urllib.parse.html#url-quoting".
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
tdsqlengine:
|
|
288
|
+
Optional Argument.
|
|
289
|
+
Specifies Teradata Vantage sqlalchemy engine object that should be used to establish a Teradata Vantage
|
|
290
|
+
connection.
|
|
291
|
+
Types: str
|
|
292
|
+
|
|
293
|
+
temp_database_name:
|
|
294
|
+
Optional Argument.
|
|
295
|
+
Specifies the temporary database name where temporary tables, views will be created.
|
|
296
|
+
Types: str
|
|
297
|
+
|
|
298
|
+
logmech:
|
|
299
|
+
Optional Argument.
|
|
300
|
+
Specifies the type of logon mechanism to establish a connection to Teradata Vantage.
|
|
301
|
+
Permitted Values: As supported by the teradata driver.
|
|
302
|
+
Notes:
|
|
303
|
+
1. teradataml expects the client environments are already setup with appropriate
|
|
304
|
+
security mechanisms and are in working conditions.
|
|
305
|
+
2. User must have a valid ticket-granting ticket in order to use KRB5 (Kerberos) logon mechanism.
|
|
306
|
+
3. User must use logdata parameter when using 'JWT' as the logon mechanism.
|
|
307
|
+
4. Browser Authentication is supported for Windows and macOS.
|
|
308
|
+
For more information please refer Teradata Vantage™ - Advanced SQL Engine
|
|
309
|
+
Security Administration at https://www.info.teradata.com/
|
|
310
|
+
Types: str
|
|
311
|
+
|
|
312
|
+
logdata:
|
|
313
|
+
Optional Argument.
|
|
314
|
+
Specifies parameters to the LOGMECH command beyond those needed by the logon mechanism, such as
|
|
315
|
+
user ID, password and tokens (in case of JWT) to successfully authenticate the user.
|
|
316
|
+
Types: str
|
|
317
|
+
|
|
318
|
+
database:
|
|
319
|
+
Optional Argument.
|
|
320
|
+
Specifies the initial database to use after logon, instead of the user's default database.
|
|
321
|
+
Types: str
|
|
322
|
+
|
|
323
|
+
kwargs:
|
|
324
|
+
Specifies the keyword-value pairs of connection parameters that are passed to Teradata SQL Driver for
|
|
325
|
+
Python. Please refer to https://github.com/Teradata/python-driver#ConnectionParameters to get information
|
|
326
|
+
on connection parameters of the driver.
|
|
327
|
+
Note: When the type of a connection parameter is integer or boolean (eg: log, lob_support etc,.), pass
|
|
328
|
+
integer or boolean value, instead of quoted integer or quoted boolean as suggested in the
|
|
329
|
+
documentation. Please check the examples for usage.
|
|
330
|
+
|
|
331
|
+
RETURNS:
|
|
332
|
+
A Teradata sqlalchemy engine object.
|
|
333
|
+
|
|
334
|
+
RAISES:
|
|
335
|
+
TeradataMlException
|
|
336
|
+
|
|
337
|
+
EXAMPLES:
|
|
338
|
+
>>> from teradataml.context.context import *
|
|
339
|
+
|
|
340
|
+
# Example 1: Create context using hostname, username and password
|
|
341
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword')
|
|
342
|
+
|
|
343
|
+
# Example 2: Create context using already created sqlalchemy engine
|
|
344
|
+
>>> from sqlalchemy import create_engine
|
|
345
|
+
>>> sqlalchemy_engine = create_engine('teradatasql://'+ tduser +':' + tdpassword + '@'+tdhost)
|
|
346
|
+
>>> td_context = create_context(tdsqlengine = sqlalchemy_engine)
|
|
347
|
+
|
|
348
|
+
# Example 3: Creating context for Vantage with default logmech 'TD2'
|
|
349
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', logmech='TD2')
|
|
350
|
+
|
|
351
|
+
# Example 4: Creating context for Vantage with logmech as 'TDNEGO'
|
|
352
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', logmech='TDNEGO')
|
|
353
|
+
|
|
354
|
+
# Example 5: Creating context for Vantage with logmech as 'LDAP'
|
|
355
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', logmech='LDAP')
|
|
356
|
+
|
|
357
|
+
# Example 6: Creating context for Vantage with logmech as 'KRB5'
|
|
358
|
+
>>> td_context = create_context(host = 'tdhost', logmech='KRB5')
|
|
359
|
+
|
|
360
|
+
# Example 7: Creating context for Vantage with logmech as 'JWT'
|
|
361
|
+
>>> td_context = create_context(host = 'tdhost', logmech='JWT', logdata='token=eyJpc...h8dA')
|
|
362
|
+
|
|
363
|
+
# Example 8: Create context using encrypted password and key passed to 'password' parameter.
|
|
364
|
+
# The password should be specified in the format mentioned below:
|
|
365
|
+
# ENCRYPTED_PASSWORD(file:<PasswordEncryptionKeyFileName>, file:<EncryptedPasswordFileName>)
|
|
366
|
+
# The PasswordEncryptionKeyFileName specifies the name of a file that contains the password encryption key
|
|
367
|
+
# and associated information.
|
|
368
|
+
# The EncryptedPasswordFileName specifies the name of a file that contains the encrypted password and
|
|
369
|
+
# associated information.
|
|
370
|
+
# Each filename must be preceded by the 'file:' prefix. The PasswordEncryptionKeyFileName must be separated
|
|
371
|
+
# from the EncryptedPasswordFileName by a single comma.
|
|
372
|
+
>>> encrypted_password = "ENCRYPTED_PASSWORD(file:PassKey.properties, file:EncPass.properties)"
|
|
373
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = encrypted_password)
|
|
374
|
+
|
|
375
|
+
# Example 9: Create context using encrypted password in LDAP logon mechanism.
|
|
376
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = encrypted_password,
|
|
377
|
+
logmech='LDAP')
|
|
378
|
+
|
|
379
|
+
# Example 10: Create context using hostname, username, password and database parameters, and connect to a
|
|
380
|
+
# different initial database by setting the database parameter.
|
|
381
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', database =
|
|
382
|
+
'database_name')
|
|
383
|
+
|
|
384
|
+
# Example 11: Create context using already created sqlalchemy engine, and connect to a different initial
|
|
385
|
+
# database by setting the database parameter.
|
|
386
|
+
>>> from sqlalchemy import create_engine
|
|
387
|
+
>>> sqlalchemy_engine = create_engine('teradatasql://'+ tduser +':' + tdpassword + '@'+tdhost +
|
|
388
|
+
'/?DATABASE=database_name')
|
|
389
|
+
>>> td_context = create_context(tdsqlengine = sqlalchemy_engine)
|
|
390
|
+
|
|
391
|
+
# Example 12: Create context for Vantage with logmech as 'LDAP', and connect to a different initial
|
|
392
|
+
# database by setting the database parameter.
|
|
393
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', logmech='LDAP',
|
|
394
|
+
database = 'database_name')
|
|
395
|
+
|
|
396
|
+
# Example 13: Create context using 'tera' mode with log value set to 8 and lob_support disabled.
|
|
397
|
+
>>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', tmode = 'tera',
|
|
398
|
+
log = 8, lob_support = False)
|
|
399
|
+
|
|
400
|
+
"""
|
|
401
|
+
global td_connection
|
|
402
|
+
global td_sqlalchemy_engine
|
|
403
|
+
global temporary_database_name
|
|
404
|
+
global user_specified_connection
|
|
405
|
+
global python_packages_installed
|
|
406
|
+
global td_user
|
|
407
|
+
awu_matrix = []
|
|
408
|
+
awu_matrix.append(["host", host, True, (str), True])
|
|
409
|
+
awu_matrix.append(["username", username, True, (str), True])
|
|
410
|
+
awu_matrix.append(["password", password, True, (str), True])
|
|
411
|
+
awu_matrix.append(["tdsqlengine", tdsqlengine, True, (Engine)])
|
|
412
|
+
awu_matrix.append(["logmech", logmech, True, (str), True])
|
|
413
|
+
awu_matrix.append(["logdata", logdata, True, (str), True])
|
|
414
|
+
awu_matrix.append(["database", database, True, (str), True])
|
|
415
|
+
|
|
416
|
+
awu = _Validators()
|
|
417
|
+
awu._validate_function_arguments(awu_matrix)
|
|
418
|
+
|
|
419
|
+
# Clearing the internal buffer.
|
|
420
|
+
_InternalBuffer.clean()
|
|
421
|
+
|
|
422
|
+
if logmech == "JWT" and not logdata:
|
|
423
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
|
|
424
|
+
'logdata',
|
|
425
|
+
'logmech=JWT'),
|
|
426
|
+
MessageCodes.DEPENDENT_ARG_MISSING)
|
|
427
|
+
|
|
428
|
+
# Setting the filter to raise warning every time.
|
|
429
|
+
warnings.simplefilter("always", TeradataMlRuntimeWarning)
|
|
430
|
+
# Throwing warning and removing context if any.
|
|
431
|
+
if td_connection is not None:
|
|
432
|
+
warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT), stacklevel=2)
|
|
433
|
+
remove_context()
|
|
434
|
+
|
|
435
|
+
# Check if teradata sqlalchemy engine is provided by the user
|
|
436
|
+
if tdsqlengine:
|
|
437
|
+
try:
|
|
438
|
+
td_connection = tdsqlengine.connect()
|
|
439
|
+
td_sqlalchemy_engine = tdsqlengine
|
|
440
|
+
user_specified_connection = True
|
|
441
|
+
except TeradataMlException:
|
|
442
|
+
raise
|
|
443
|
+
except Exception as err:
|
|
444
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
|
|
445
|
+
MessageCodes.CONNECTION_FAILURE) from err
|
|
446
|
+
# Check if host and username and password are provided
|
|
447
|
+
elif host:
|
|
448
|
+
username = '' if username is None else username
|
|
449
|
+
|
|
450
|
+
if logmech and logmech.upper() in ['JWT', 'BROWSER']:
|
|
451
|
+
host_value = host
|
|
452
|
+
elif logmech and logmech.upper() == 'KRB5':
|
|
453
|
+
host_value = '{}:@{}'.format(username, host)
|
|
454
|
+
else:
|
|
455
|
+
host_value = '{}:{}@{}'.format(username, password, host)
|
|
456
|
+
|
|
457
|
+
url_object = URL.create(
|
|
458
|
+
"teradatasql",
|
|
459
|
+
username=username,
|
|
460
|
+
password=password, # plain (unescaped) text
|
|
461
|
+
host=host,
|
|
462
|
+
query=_get_other_connection_parameters(logmech, logdata, database, **kwargs)
|
|
463
|
+
)
|
|
464
|
+
|
|
465
|
+
try:
|
|
466
|
+
td_sqlalchemy_engine = create_engine(url_object)
|
|
467
|
+
td_connection = td_sqlalchemy_engine.connect()
|
|
468
|
+
td_user = username.upper()
|
|
469
|
+
|
|
470
|
+
# Masking senstive information - password, logmech and logdata.
|
|
471
|
+
if password:
|
|
472
|
+
try:
|
|
473
|
+
# Below statement raises an AttributeError with SQLAlchemy
|
|
474
|
+
# version 1.4.x
|
|
475
|
+
td_sqlalchemy_engine.url.password = "***"
|
|
476
|
+
except AttributeError:
|
|
477
|
+
# Masking the password should be different from above as SQLAlchemy
|
|
478
|
+
# converted _URL object to immutable object from version 1.4.x.
|
|
479
|
+
new_url = td_sqlalchemy_engine.url.set(password="***")
|
|
480
|
+
td_sqlalchemy_engine.url = new_url
|
|
481
|
+
except Exception:
|
|
482
|
+
pass
|
|
483
|
+
_mask_logmech_logdata()
|
|
484
|
+
|
|
485
|
+
user_specified_connection = False
|
|
486
|
+
|
|
487
|
+
except TeradataMlException:
|
|
488
|
+
raise
|
|
489
|
+
except Exception as err:
|
|
490
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
|
|
491
|
+
MessageCodes.CONNECTION_FAILURE) from err
|
|
492
|
+
|
|
493
|
+
# Load function aliases from config.
|
|
494
|
+
_load_function_aliases()
|
|
495
|
+
|
|
496
|
+
python_packages_installed = False
|
|
497
|
+
|
|
498
|
+
# Assign the tempdatabase name to global
|
|
499
|
+
if temp_database_name is None:
|
|
500
|
+
temporary_database_name = _get_current_databasename()
|
|
501
|
+
else:
|
|
502
|
+
temporary_database_name = temp_database_name
|
|
503
|
+
|
|
504
|
+
# Connection is established initiate the garbage collection
|
|
505
|
+
atexit.register(__cleanup_garbage_collection)
|
|
506
|
+
__cleanup_garbage_collection()
|
|
507
|
+
# Initialise Dag
|
|
508
|
+
__initalise_dag()
|
|
509
|
+
|
|
510
|
+
# Set database version.
|
|
511
|
+
_get_database_version()
|
|
512
|
+
# Set current database name.
|
|
513
|
+
_get_current_databasename()
|
|
514
|
+
# Set database user name.
|
|
515
|
+
_get_database_username()
|
|
516
|
+
|
|
517
|
+
# Process Analytic functions.
|
|
518
|
+
from teradataml.analytics import _process_analytic_functions
|
|
519
|
+
_process_analytic_functions()
|
|
520
|
+
|
|
521
|
+
# Return the connection by default
|
|
522
|
+
return td_sqlalchemy_engine
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
def _mask_logmech_logdata():
|
|
526
|
+
"""
|
|
527
|
+
Masks sensitive connection information LOGMECH, LOGDATA exposed by sqlalchemy engine object
|
|
528
|
+
"""
|
|
529
|
+
global td_sqlalchemy_engine
|
|
530
|
+
try:
|
|
531
|
+
# Below statement raises a TypeError with SQLAlchemy version 1.4.x
|
|
532
|
+
if ('LOGMECH' in td_sqlalchemy_engine.url.query):
|
|
533
|
+
td_sqlalchemy_engine.url.query['LOGMECH'] = "***"
|
|
534
|
+
if ('LOGDATA' in td_sqlalchemy_engine.url.query):
|
|
535
|
+
td_sqlalchemy_engine.url.query['LOGDATA'] = "***"
|
|
536
|
+
except TypeError:
|
|
537
|
+
# Masking the password should be different from above as SQLAlchemy
|
|
538
|
+
# converted _URL object to immutable object from version 1.4.x.
|
|
539
|
+
new_url = td_sqlalchemy_engine.url.update_query_dict({"LOGMECH": "***", "LOGDATA": "***"})
|
|
540
|
+
td_sqlalchemy_engine.url = new_url
|
|
541
|
+
except Exception:
|
|
542
|
+
pass
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
def get_context():
|
|
546
|
+
"""
|
|
547
|
+
DESCRIPTION:
|
|
548
|
+
Returns the Teradata Vantage connection associated with the current context.
|
|
549
|
+
|
|
550
|
+
PARAMETERS:
|
|
551
|
+
None
|
|
552
|
+
|
|
553
|
+
RETURNS:
|
|
554
|
+
A Teradata sqlalchemy engine object.
|
|
555
|
+
|
|
556
|
+
RAISES:
|
|
557
|
+
None.
|
|
558
|
+
|
|
559
|
+
EXAMPLES:
|
|
560
|
+
td_sqlalchemy_engine = get_context()
|
|
561
|
+
|
|
562
|
+
"""
|
|
563
|
+
global td_sqlalchemy_engine
|
|
564
|
+
return td_sqlalchemy_engine
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
def get_connection():
|
|
568
|
+
"""
|
|
569
|
+
DESCRIPTION:
|
|
570
|
+
Returns the Teradata Vantage connection associated with the current context.
|
|
571
|
+
|
|
572
|
+
PARAMETERS:
|
|
573
|
+
None
|
|
574
|
+
|
|
575
|
+
RETURNS:
|
|
576
|
+
A Teradata dbapi connection object.
|
|
577
|
+
|
|
578
|
+
RAISES:
|
|
579
|
+
None.
|
|
580
|
+
|
|
581
|
+
EXAMPLES:
|
|
582
|
+
tdconnection = get_connection()
|
|
583
|
+
|
|
584
|
+
"""
|
|
585
|
+
global td_connection
|
|
586
|
+
return td_connection
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
@collect_queryband(queryband='SetCxt')
|
|
590
|
+
def set_context(tdsqlengine, temp_database_name=None):
|
|
591
|
+
"""
|
|
592
|
+
DESCRIPTION:
|
|
593
|
+
Specifies a Teradata Vantage sqlalchemy engine as current context.
|
|
594
|
+
|
|
595
|
+
PARAMETERS:
|
|
596
|
+
tdsqlengine:
|
|
597
|
+
Required Argument.
|
|
598
|
+
Specifies Teradata Vantage sqlalchemy engine object that should be used to establish a Teradata Vantage
|
|
599
|
+
connection.
|
|
600
|
+
Types: str
|
|
601
|
+
|
|
602
|
+
temp_database_name:
|
|
603
|
+
Optional Argument.
|
|
604
|
+
Specifies the temporary database name where temporary tables, views will be created.
|
|
605
|
+
Types: str
|
|
606
|
+
|
|
607
|
+
RETURNS:
|
|
608
|
+
A Teradata Vantage connection object.
|
|
609
|
+
|
|
610
|
+
RAISES:
|
|
611
|
+
TeradataMlException
|
|
612
|
+
|
|
613
|
+
EXAMPLES:
|
|
614
|
+
set_context(tdsqlengine = td_sqlalchemy_engine)
|
|
615
|
+
|
|
616
|
+
"""
|
|
617
|
+
global td_connection
|
|
618
|
+
global td_sqlalchemy_engine
|
|
619
|
+
global temporary_database_name
|
|
620
|
+
global user_specified_connection
|
|
621
|
+
global python_packages_installed
|
|
622
|
+
if td_connection is not None:
|
|
623
|
+
warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT), stacklevel=2)
|
|
624
|
+
remove_context()
|
|
625
|
+
|
|
626
|
+
if tdsqlengine:
|
|
627
|
+
try:
|
|
628
|
+
td_connection = tdsqlengine.connect()
|
|
629
|
+
td_sqlalchemy_engine = tdsqlengine
|
|
630
|
+
# Assign the tempdatabase name to global
|
|
631
|
+
if temp_database_name is None:
|
|
632
|
+
temporary_database_name = _get_current_databasename()
|
|
633
|
+
else:
|
|
634
|
+
temporary_database_name = temp_database_name
|
|
635
|
+
|
|
636
|
+
user_specified_connection = True
|
|
637
|
+
except TeradataMlException:
|
|
638
|
+
raise
|
|
639
|
+
except Exception as err:
|
|
640
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
|
|
641
|
+
MessageCodes.CONNECTION_FAILURE) from err
|
|
642
|
+
else:
|
|
643
|
+
return None
|
|
644
|
+
|
|
645
|
+
# Load function aliases from config.
|
|
646
|
+
_load_function_aliases()
|
|
647
|
+
|
|
648
|
+
python_packages_installed = False
|
|
649
|
+
|
|
650
|
+
# Initialise Dag
|
|
651
|
+
__initalise_dag()
|
|
652
|
+
|
|
653
|
+
return td_connection
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
@collect_queryband(queryband='RmCxt')
|
|
657
|
+
def remove_context():
|
|
658
|
+
"""
|
|
659
|
+
DESCRIPTION:
|
|
660
|
+
Removes the current context associated with the Teradata Vantage connection.
|
|
661
|
+
|
|
662
|
+
PARAMETERS:
|
|
663
|
+
None.
|
|
664
|
+
|
|
665
|
+
RETURNS:
|
|
666
|
+
None.
|
|
667
|
+
|
|
668
|
+
RAISES:
|
|
669
|
+
None.
|
|
670
|
+
|
|
671
|
+
EXAMPLES:
|
|
672
|
+
remove_context()
|
|
673
|
+
|
|
674
|
+
"""
|
|
675
|
+
global td_connection
|
|
676
|
+
global td_sqlalchemy_engine
|
|
677
|
+
global user_specified_connection
|
|
678
|
+
global python_packages_installed
|
|
679
|
+
global td_user
|
|
680
|
+
|
|
681
|
+
# Initiate the garbage collection
|
|
682
|
+
__cleanup_garbage_collection()
|
|
683
|
+
|
|
684
|
+
if user_specified_connection is not True:
|
|
685
|
+
try:
|
|
686
|
+
# Close the connection if not user specified connection.
|
|
687
|
+
td_connection.close()
|
|
688
|
+
td_sqlalchemy_engine.engine.dispose()
|
|
689
|
+
except TeradataMlException:
|
|
690
|
+
raise
|
|
691
|
+
except Exception as err:
|
|
692
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.DISCONNECT_FAILURE),
|
|
693
|
+
MessageCodes.DISCONNECT_FAILURE) from err
|
|
694
|
+
td_connection = None
|
|
695
|
+
td_sqlalchemy_engine = None
|
|
696
|
+
python_packages_installed = False
|
|
697
|
+
td_user = None
|
|
698
|
+
configure._current_database_name = None
|
|
699
|
+
configure._database_username = None
|
|
700
|
+
configure.database_version = None
|
|
701
|
+
|
|
702
|
+
# Closing Dag
|
|
703
|
+
__close_dag()
|
|
704
|
+
return True
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
def _get_context_temp_databasename(table_type=TeradataConstants.TERADATA_VIEW):
|
|
708
|
+
"""
|
|
709
|
+
Returns the temporary database name associated with the current context.
|
|
710
|
+
|
|
711
|
+
PARAMETERS:
|
|
712
|
+
table_type:
|
|
713
|
+
Optional Argument.
|
|
714
|
+
Specifies the type of object - table or view.
|
|
715
|
+
Default value: TeradataConstants.TERADATA_VIEW
|
|
716
|
+
Types: TeradataConstant
|
|
717
|
+
|
|
718
|
+
RETURNS:
|
|
719
|
+
Database name associated with the current context
|
|
720
|
+
|
|
721
|
+
RAISES:
|
|
722
|
+
None.
|
|
723
|
+
|
|
724
|
+
EXAMPLES:
|
|
725
|
+
_get_context_temp_databasename()
|
|
726
|
+
_get_context_temp_databasename(table_type=TeradataConstants.TERADATA_TABLE)
|
|
727
|
+
"""
|
|
728
|
+
global temporary_database_name
|
|
729
|
+
if table_type == TeradataConstants.TERADATA_TABLE and \
|
|
730
|
+
configure.temp_table_database is not None:
|
|
731
|
+
return configure.temp_table_database
|
|
732
|
+
if table_type == TeradataConstants.TERADATA_VIEW and \
|
|
733
|
+
configure.temp_view_database is not None:
|
|
734
|
+
return configure.temp_view_database
|
|
735
|
+
# ELE-6710 - Use database user associated with the current context for volatile tables.
|
|
736
|
+
if table_type == TeradataConstants.TERADATA_VOLATILE_TABLE:
|
|
737
|
+
return _get_user()
|
|
738
|
+
return temporary_database_name
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
def __initalise_dag():
|
|
742
|
+
"""
|
|
743
|
+
Intialises the Dag
|
|
744
|
+
|
|
745
|
+
PARAMETERS:
|
|
746
|
+
None.
|
|
747
|
+
|
|
748
|
+
RETURNS:
|
|
749
|
+
None
|
|
750
|
+
|
|
751
|
+
RAISES:
|
|
752
|
+
None.
|
|
753
|
+
|
|
754
|
+
EXAMPLES:
|
|
755
|
+
__initalise_dag()
|
|
756
|
+
"""
|
|
757
|
+
aed_context = AEDContext()
|
|
758
|
+
# Closing the Dag if previous instance is still exists.
|
|
759
|
+
__close_dag()
|
|
760
|
+
# TODO: Need to add logLevel and log_file functionlaity once AED is implemented these functionalities
|
|
761
|
+
aed_context._init_dag(_get_database_username(), _get_context_temp_databasename(),
|
|
762
|
+
log_level=4, log_file="")
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
def __close_dag():
|
|
766
|
+
"""
|
|
767
|
+
Closes the Dag
|
|
768
|
+
|
|
769
|
+
PARAMETERS:
|
|
770
|
+
None.
|
|
771
|
+
|
|
772
|
+
RETURNS:
|
|
773
|
+
None
|
|
774
|
+
|
|
775
|
+
RAISES:
|
|
776
|
+
None.
|
|
777
|
+
|
|
778
|
+
EXAMPLES:
|
|
779
|
+
__close_dag()
|
|
780
|
+
"""
|
|
781
|
+
try:
|
|
782
|
+
AEDContext()._close_dag()
|
|
783
|
+
# Ignore if any exception occurs.
|
|
784
|
+
except TeradataMlException:
|
|
785
|
+
pass
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
def _load_function_aliases():
|
|
789
|
+
"""
|
|
790
|
+
Function to load function aliases for analytical functions
|
|
791
|
+
based on the vantage version from configuration file.
|
|
792
|
+
|
|
793
|
+
PARAMETERS:
|
|
794
|
+
None
|
|
795
|
+
|
|
796
|
+
RETURNS:
|
|
797
|
+
None
|
|
798
|
+
|
|
799
|
+
RAISES:
|
|
800
|
+
TeradataMLException
|
|
801
|
+
|
|
802
|
+
EXAMPLES:
|
|
803
|
+
_load_function_aliases()
|
|
804
|
+
"""
|
|
805
|
+
|
|
806
|
+
global function_alias_mappings
|
|
807
|
+
function_alias_mappings = {}
|
|
808
|
+
|
|
809
|
+
supported_engines = TeradataConstants.SUPPORTED_ENGINES.value
|
|
810
|
+
vantage_versions = TeradataConstants.SUPPORTED_VANTAGE_VERSIONS.value
|
|
811
|
+
|
|
812
|
+
__set_vantage_version()
|
|
813
|
+
|
|
814
|
+
for vv in vantage_versions.keys():
|
|
815
|
+
function_alias_mappings_by_engine = {}
|
|
816
|
+
for engine in supported_engines.keys():
|
|
817
|
+
alias_config_file = os.path.join(config_folder,
|
|
818
|
+
"{}_{}".format(supported_engines[engine]["file"], vantage_versions[vv]))
|
|
819
|
+
engine_name = supported_engines[engine]['name']
|
|
820
|
+
ContextUtilFuncs._check_alias_config_file_exists(vv, alias_config_file)
|
|
821
|
+
function_alias_mappings_by_engine[engine_name] = \
|
|
822
|
+
ContextUtilFuncs._get_function_mappings_from_config_file(alias_config_file)
|
|
823
|
+
function_alias_mappings[vv] = function_alias_mappings_by_engine
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
def _get_vantage_version():
|
|
827
|
+
"""
|
|
828
|
+
Function to determine the underlying Vantage version.
|
|
829
|
+
|
|
830
|
+
PARAMETERS:
|
|
831
|
+
None
|
|
832
|
+
|
|
833
|
+
RETURNS:
|
|
834
|
+
A string specifying the Vantage version, else None when not able to determine it.
|
|
835
|
+
|
|
836
|
+
RAISES:
|
|
837
|
+
Warning
|
|
838
|
+
|
|
839
|
+
EXAMPLES:
|
|
840
|
+
_get_vantage_version()
|
|
841
|
+
"""
|
|
842
|
+
if td_connection.dialect.has_table(td_connection, "versionInfo", schema="pm"):
|
|
843
|
+
|
|
844
|
+
# BTEQ -- Enter your SQL request or BTEQ command:
|
|
845
|
+
# select * from pm.versionInfo;
|
|
846
|
+
#
|
|
847
|
+
# select * from pm.versionInfo;
|
|
848
|
+
#
|
|
849
|
+
# *** Query completed. 2 rows found. 2 columns returned.
|
|
850
|
+
# *** Total elapsed time was 1 second.
|
|
851
|
+
#
|
|
852
|
+
# InfoKey InfoData
|
|
853
|
+
# ------------------------------ --------------------------------------------
|
|
854
|
+
# BUILD_VERSION 08.10.00.00-e84ce5f7
|
|
855
|
+
# RELEASE Vantage 1.1 GA
|
|
856
|
+
|
|
857
|
+
try:
|
|
858
|
+
vantage_ver_qry = "select InfoData from pm.versionInfo where InfoKey = 'RELEASE' (NOT CASESPECIFIC)"
|
|
859
|
+
res = execute_sql(vantage_ver_qry)
|
|
860
|
+
return res.fetchall()[0][0]
|
|
861
|
+
except:
|
|
862
|
+
return None
|
|
863
|
+
else:
|
|
864
|
+
# If "pm.versionInfo" does not exist, then vantage version is 1.0
|
|
865
|
+
return "vantage1.1"
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
def _get_database_version():
|
|
869
|
+
"""
|
|
870
|
+
DESCRIPTION:
|
|
871
|
+
An internal function to determine the underlying Vantage Database version.
|
|
872
|
+
|
|
873
|
+
PARAMETERS:
|
|
874
|
+
None
|
|
875
|
+
|
|
876
|
+
RETURNS:
|
|
877
|
+
A string specifying the Vantage Database version, else None when not able to determine it.
|
|
878
|
+
|
|
879
|
+
RAISES:
|
|
880
|
+
None
|
|
881
|
+
|
|
882
|
+
EXAMPLES:
|
|
883
|
+
_get_database_version()
|
|
884
|
+
"""
|
|
885
|
+
|
|
886
|
+
# BTEQ -- Enter your SQL request or BTEQ command:
|
|
887
|
+
# select * from DBC.DBCInfoV;
|
|
888
|
+
# *** Query completed. 3 rows found. 2 columns returned.
|
|
889
|
+
# *** Total elapsed time was 1 second.
|
|
890
|
+
#
|
|
891
|
+
# InfoKey InfoData
|
|
892
|
+
# ------------------------------ --------------------------------------------
|
|
893
|
+
# VERSION 17.05a.00.147
|
|
894
|
+
# LANGUAGE SUPPORT MODE Standard
|
|
895
|
+
# RELEASE 17.05a.00.147
|
|
896
|
+
|
|
897
|
+
try:
|
|
898
|
+
if configure.database_version is None:
|
|
899
|
+
configure.database_version = execute_sql(Query.VANTAGE_VERSION.value).fetchall()[0][0]
|
|
900
|
+
return configure.database_version
|
|
901
|
+
except:
|
|
902
|
+
return None
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
def __set_vantage_version():
|
|
906
|
+
"""
|
|
907
|
+
Function to set the configuration option vantage_version.
|
|
908
|
+
|
|
909
|
+
PARAMETERS:
|
|
910
|
+
None
|
|
911
|
+
|
|
912
|
+
RETURNS:
|
|
913
|
+
None
|
|
914
|
+
|
|
915
|
+
RAISES:
|
|
916
|
+
TeradataMLException
|
|
917
|
+
|
|
918
|
+
EXAMPLES:
|
|
919
|
+
__set_vantage_version()
|
|
920
|
+
"""
|
|
921
|
+
vantage_version = _get_vantage_version()
|
|
922
|
+
if vantage_version is None:
|
|
923
|
+
# Raise warning here.
|
|
924
|
+
warnings.warn(Messages.get_message(
|
|
925
|
+
MessageCodes.UNABLE_TO_GET_VANTAGE_VERSION).format("vantage_version", configure.vantage_version))
|
|
926
|
+
elif "vantage1.1" in vantage_version.lower().replace(" ", ""):
|
|
927
|
+
configure.vantage_version = "vantage1.1"
|
|
928
|
+
elif "mlengine9.0" in vantage_version.lower().replace(" ", ""):
|
|
929
|
+
configure.vantage_version = "vantage1.3"
|
|
930
|
+
elif "mlengine08.10" in vantage_version.lower().replace(" ", ""):
|
|
931
|
+
configure.vantage_version = "vantage2.0"
|
|
932
|
+
else:
|
|
933
|
+
# If "pm.versionInfo" does not exist, then vantage version is 1.0
|
|
934
|
+
configure.vantage_version = "vantage1.0"
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
def _get_function_mappings():
|
|
938
|
+
"""
|
|
939
|
+
Function to return function aliases for analytical functions.
|
|
940
|
+
|
|
941
|
+
PARAMETERS:
|
|
942
|
+
None
|
|
943
|
+
|
|
944
|
+
RETURNS:
|
|
945
|
+
Dict of function aliases of the format
|
|
946
|
+
{'mle' : {'func_name': "alias_name", ...},
|
|
947
|
+
'sqle' : {'func_name': "alias_name", ...}
|
|
948
|
+
......
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
RAISES:
|
|
952
|
+
None
|
|
953
|
+
|
|
954
|
+
EXAMPLES:
|
|
955
|
+
get_function_aliases()
|
|
956
|
+
"""
|
|
957
|
+
global function_alias_mappings
|
|
958
|
+
return function_alias_mappings
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
def _get_user():
|
|
962
|
+
"""
|
|
963
|
+
DESCRIPTION:
|
|
964
|
+
An internal function to get the database username associated with the current context.
|
|
965
|
+
|
|
966
|
+
PARAMETERS:
|
|
967
|
+
None.
|
|
968
|
+
|
|
969
|
+
RETURNS:
|
|
970
|
+
Database username associated with the current context.
|
|
971
|
+
|
|
972
|
+
RAISES:
|
|
973
|
+
TeradataMlException
|
|
974
|
+
|
|
975
|
+
EXAMPLES:
|
|
976
|
+
_get_user()
|
|
977
|
+
"""
|
|
978
|
+
global td_user
|
|
979
|
+
if not td_user:
|
|
980
|
+
td_user = _get_database_username()
|
|
981
|
+
return td_user
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
class ContextUtilFuncs():
|
|
985
|
+
@staticmethod
|
|
986
|
+
def _check_alias_config_file_exists(vantage_version, alias_config_file):
|
|
987
|
+
"""
|
|
988
|
+
Function to validate whether alias_config_file exists for the current vantage version.
|
|
989
|
+
|
|
990
|
+
PARAMETERS:
|
|
991
|
+
vantage_version:
|
|
992
|
+
Required Argument.
|
|
993
|
+
Specifies the current vantage version.
|
|
994
|
+
|
|
995
|
+
alias_config_file:
|
|
996
|
+
Required Argument.
|
|
997
|
+
Specifies the location of configuration file to be read.
|
|
998
|
+
|
|
999
|
+
RETURNS:
|
|
1000
|
+
True, if the file 'alias_config_file' is present in the
|
|
1001
|
+
teradataml/config directory for the current vantage version.
|
|
1002
|
+
|
|
1003
|
+
RAISES:
|
|
1004
|
+
TeradataMLException
|
|
1005
|
+
|
|
1006
|
+
EXAMPLES:
|
|
1007
|
+
ContextUtilFuncs._check_alias_config_file_exists("vantage1.0", "config_file_location")
|
|
1008
|
+
|
|
1009
|
+
"""
|
|
1010
|
+
# Raise exception if alias config file is not defined.
|
|
1011
|
+
if not Path(alias_config_file).exists():
|
|
1012
|
+
raise TeradataMlException(Messages.get_message(
|
|
1013
|
+
MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND).format(alias_config_file,
|
|
1014
|
+
vantage_version),
|
|
1015
|
+
MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND)
|
|
1016
|
+
return True
|
|
1017
|
+
|
|
1018
|
+
@staticmethod
|
|
1019
|
+
def _get_function_mappings_from_config_file(alias_config_file):
|
|
1020
|
+
"""
|
|
1021
|
+
Function to return the function mappings given the location of configuration file in
|
|
1022
|
+
argument 'alias_config_file'.
|
|
1023
|
+
|
|
1024
|
+
PARAMETERS:
|
|
1025
|
+
alias_config_file:
|
|
1026
|
+
Required Argument.
|
|
1027
|
+
Specifies the location of configuration file to be read.
|
|
1028
|
+
|
|
1029
|
+
RETURNS:
|
|
1030
|
+
Function mappings as a dictionary of function_names to alias_names.
|
|
1031
|
+
|
|
1032
|
+
RAISES:
|
|
1033
|
+
TeradataMLException
|
|
1034
|
+
|
|
1035
|
+
EXAMPLES:
|
|
1036
|
+
ContextUtilFuncs._get_function_mappings_from_config_file("config_file_location")
|
|
1037
|
+
|
|
1038
|
+
"""
|
|
1039
|
+
repeated_function_names = []
|
|
1040
|
+
function_mappings = {}
|
|
1041
|
+
invalid_function_mappings = []
|
|
1042
|
+
invalid_function_mappings_line_nos = []
|
|
1043
|
+
# Reading configuration files
|
|
1044
|
+
with open(alias_config_file, 'r') as fread:
|
|
1045
|
+
for line_no, line in enumerate(fread.readlines()):
|
|
1046
|
+
line = line.strip()
|
|
1047
|
+
|
|
1048
|
+
# Ignoring empty lines in the config files.
|
|
1049
|
+
if line == "":
|
|
1050
|
+
continue
|
|
1051
|
+
|
|
1052
|
+
# If the separator ":" is not present.
|
|
1053
|
+
if ':' not in line:
|
|
1054
|
+
invalid_function_mappings.append(line)
|
|
1055
|
+
invalid_function_mappings_line_nos.append(str(line_no + 1))
|
|
1056
|
+
else:
|
|
1057
|
+
func_name, alias_name = line.split(":")
|
|
1058
|
+
func_name = func_name.strip()
|
|
1059
|
+
alias_name = alias_name.strip()
|
|
1060
|
+
|
|
1061
|
+
# First line of 'alias_config_file' has header "functionName:aliasName".
|
|
1062
|
+
if line_no == 0 and func_name == "functionName" and alias_name == "aliasName":
|
|
1063
|
+
continue
|
|
1064
|
+
|
|
1065
|
+
if func_name == "" or alias_name == "":
|
|
1066
|
+
invalid_function_mappings.append(line)
|
|
1067
|
+
invalid_function_mappings_line_nos.append(str(line_no + 1))
|
|
1068
|
+
continue
|
|
1069
|
+
|
|
1070
|
+
if func_name.lower() in function_mappings:
|
|
1071
|
+
repeated_function_names.append(func_name.lower())
|
|
1072
|
+
|
|
1073
|
+
# Loading function maps with lower values for key.
|
|
1074
|
+
function_mappings[func_name.lower()] = alias_name
|
|
1075
|
+
|
|
1076
|
+
# Presence of Invalid function mappings in the 'alias_config_file'.
|
|
1077
|
+
if len(invalid_function_mappings) > 0:
|
|
1078
|
+
err_ = Messages.get_message(MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
|
|
1079
|
+
err_ = err_.format("', '".join(invalid_function_mappings),
|
|
1080
|
+
", ".join(invalid_function_mappings_line_nos),
|
|
1081
|
+
alias_config_file)
|
|
1082
|
+
raise TeradataMlException(err_, MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
|
|
1083
|
+
|
|
1084
|
+
# Raising teradataml exception if there are any duplicates in function names.
|
|
1085
|
+
if len(repeated_function_names) > 0:
|
|
1086
|
+
raise TeradataMlException(Messages.get_message(
|
|
1087
|
+
MessageCodes.CONFIG_ALIAS_DUPLICATES).format(alias_config_file,
|
|
1088
|
+
", ".join(repeated_function_names)),
|
|
1089
|
+
MessageCodes.CONFIG_ALIAS_DUPLICATES)
|
|
1090
|
+
|
|
1091
|
+
return function_mappings
|