teradataml 20.0.0.8__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.
- teradataml/LICENSE-3RD-PARTY.pdf +0 -0
- teradataml/LICENSE.pdf +0 -0
- teradataml/README.md +2762 -0
- teradataml/__init__.py +78 -0
- teradataml/_version.py +11 -0
- teradataml/analytics/Transformations.py +2996 -0
- teradataml/analytics/__init__.py +82 -0
- teradataml/analytics/analytic_function_executor.py +2416 -0
- teradataml/analytics/analytic_query_generator.py +1050 -0
- teradataml/analytics/byom/H2OPredict.py +514 -0
- teradataml/analytics/byom/PMMLPredict.py +437 -0
- teradataml/analytics/byom/__init__.py +16 -0
- teradataml/analytics/json_parser/__init__.py +133 -0
- teradataml/analytics/json_parser/analytic_functions_argument.py +1805 -0
- teradataml/analytics/json_parser/json_store.py +191 -0
- teradataml/analytics/json_parser/metadata.py +1666 -0
- teradataml/analytics/json_parser/utils.py +805 -0
- teradataml/analytics/meta_class.py +236 -0
- teradataml/analytics/sqle/DecisionTreePredict.py +456 -0
- teradataml/analytics/sqle/NaiveBayesPredict.py +420 -0
- teradataml/analytics/sqle/__init__.py +128 -0
- teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -0
- teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -0
- teradataml/analytics/table_operator/__init__.py +11 -0
- teradataml/analytics/uaf/__init__.py +82 -0
- teradataml/analytics/utils.py +828 -0
- teradataml/analytics/valib.py +1617 -0
- teradataml/automl/__init__.py +5835 -0
- teradataml/automl/autodataprep/__init__.py +493 -0
- teradataml/automl/custom_json_utils.py +1625 -0
- teradataml/automl/data_preparation.py +1384 -0
- teradataml/automl/data_transformation.py +1254 -0
- teradataml/automl/feature_engineering.py +2273 -0
- teradataml/automl/feature_exploration.py +1873 -0
- teradataml/automl/model_evaluation.py +488 -0
- teradataml/automl/model_training.py +1407 -0
- teradataml/catalog/__init__.py +2 -0
- teradataml/catalog/byom.py +1759 -0
- teradataml/catalog/function_argument_mapper.py +859 -0
- teradataml/catalog/model_cataloging_utils.py +491 -0
- teradataml/clients/__init__.py +0 -0
- teradataml/clients/auth_client.py +137 -0
- teradataml/clients/keycloak_client.py +165 -0
- teradataml/clients/pkce_client.py +481 -0
- teradataml/common/__init__.py +1 -0
- teradataml/common/aed_utils.py +2078 -0
- teradataml/common/bulk_exposed_utils.py +113 -0
- teradataml/common/constants.py +1669 -0
- teradataml/common/deprecations.py +166 -0
- teradataml/common/exceptions.py +147 -0
- teradataml/common/formula.py +743 -0
- teradataml/common/garbagecollector.py +666 -0
- teradataml/common/logger.py +1261 -0
- teradataml/common/messagecodes.py +518 -0
- teradataml/common/messages.py +262 -0
- teradataml/common/pylogger.py +67 -0
- teradataml/common/sqlbundle.py +764 -0
- teradataml/common/td_coltype_code_to_tdtype.py +48 -0
- teradataml/common/utils.py +3166 -0
- teradataml/common/warnings.py +36 -0
- teradataml/common/wrapper_utils.py +625 -0
- teradataml/config/__init__.py +0 -0
- teradataml/config/dummy_file1.cfg +5 -0
- teradataml/config/dummy_file2.cfg +3 -0
- teradataml/config/sqlengine_alias_definitions_v1.0 +14 -0
- teradataml/config/sqlengine_alias_definitions_v1.1 +20 -0
- teradataml/config/sqlengine_alias_definitions_v1.3 +19 -0
- teradataml/context/__init__.py +0 -0
- teradataml/context/aed_context.py +223 -0
- teradataml/context/context.py +1462 -0
- teradataml/data/A_loan.csv +19 -0
- teradataml/data/BINARY_REALS_LEFT.csv +11 -0
- teradataml/data/BINARY_REALS_RIGHT.csv +11 -0
- teradataml/data/B_loan.csv +49 -0
- teradataml/data/BuoyData2.csv +17 -0
- teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -0
- teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -0
- teradataml/data/Convolve2RealsLeft.csv +5 -0
- teradataml/data/Convolve2RealsRight.csv +5 -0
- teradataml/data/Convolve2ValidLeft.csv +11 -0
- teradataml/data/Convolve2ValidRight.csv +11 -0
- teradataml/data/DFFTConv_Real_8_8.csv +65 -0
- teradataml/data/Employee.csv +5 -0
- teradataml/data/Employee_Address.csv +4 -0
- teradataml/data/Employee_roles.csv +5 -0
- teradataml/data/JulesBelvezeDummyData.csv +100 -0
- teradataml/data/Mall_customer_data.csv +201 -0
- teradataml/data/Orders1_12mf.csv +25 -0
- teradataml/data/Pi_loan.csv +7 -0
- teradataml/data/SMOOTHED_DATA.csv +7 -0
- teradataml/data/TestDFFT8.csv +9 -0
- teradataml/data/TestRiver.csv +109 -0
- teradataml/data/Traindata.csv +28 -0
- teradataml/data/__init__.py +0 -0
- teradataml/data/acf.csv +17 -0
- teradataml/data/adaboost_example.json +34 -0
- teradataml/data/adaboostpredict_example.json +24 -0
- teradataml/data/additional_table.csv +11 -0
- teradataml/data/admissions_test.csv +21 -0
- teradataml/data/admissions_train.csv +41 -0
- teradataml/data/admissions_train_nulls.csv +41 -0
- teradataml/data/advertising.csv +201 -0
- teradataml/data/ageandheight.csv +13 -0
- teradataml/data/ageandpressure.csv +31 -0
- teradataml/data/amazon_reviews_25.csv +26 -0
- teradataml/data/antiselect_example.json +36 -0
- teradataml/data/antiselect_input.csv +8 -0
- teradataml/data/antiselect_input_mixed_case.csv +8 -0
- teradataml/data/applicant_external.csv +7 -0
- teradataml/data/applicant_reference.csv +7 -0
- teradataml/data/apriori_example.json +22 -0
- teradataml/data/arima_example.json +9 -0
- teradataml/data/assortedtext_input.csv +8 -0
- teradataml/data/attribution_example.json +34 -0
- teradataml/data/attribution_sample_table.csv +27 -0
- teradataml/data/attribution_sample_table1.csv +6 -0
- teradataml/data/attribution_sample_table2.csv +11 -0
- teradataml/data/bank_churn.csv +10001 -0
- teradataml/data/bank_marketing.csv +11163 -0
- teradataml/data/bank_web_clicks1.csv +43 -0
- teradataml/data/bank_web_clicks2.csv +91 -0
- teradataml/data/bank_web_url.csv +85 -0
- teradataml/data/barrier.csv +2 -0
- teradataml/data/barrier_new.csv +3 -0
- teradataml/data/betweenness_example.json +14 -0
- teradataml/data/bike_sharing.csv +732 -0
- teradataml/data/bin_breaks.csv +8 -0
- teradataml/data/bin_fit_ip.csv +4 -0
- teradataml/data/binary_complex_left.csv +11 -0
- teradataml/data/binary_complex_right.csv +11 -0
- teradataml/data/binary_matrix_complex_left.csv +21 -0
- teradataml/data/binary_matrix_complex_right.csv +21 -0
- teradataml/data/binary_matrix_real_left.csv +21 -0
- teradataml/data/binary_matrix_real_right.csv +21 -0
- teradataml/data/blood2ageandweight.csv +26 -0
- teradataml/data/bmi.csv +501 -0
- teradataml/data/boston.csv +507 -0
- teradataml/data/boston2cols.csv +721 -0
- teradataml/data/breast_cancer.csv +570 -0
- teradataml/data/buoydata_mix.csv +11 -0
- teradataml/data/burst_data.csv +5 -0
- teradataml/data/burst_example.json +21 -0
- teradataml/data/byom_example.json +34 -0
- teradataml/data/bytes_table.csv +4 -0
- teradataml/data/cal_housing_ex_raw.csv +70 -0
- teradataml/data/callers.csv +7 -0
- teradataml/data/calls.csv +10 -0
- teradataml/data/cars_hist.csv +33 -0
- teradataml/data/cat_table.csv +25 -0
- teradataml/data/ccm_example.json +32 -0
- teradataml/data/ccm_input.csv +91 -0
- teradataml/data/ccm_input2.csv +13 -0
- teradataml/data/ccmexample.csv +101 -0
- teradataml/data/ccmprepare_example.json +9 -0
- teradataml/data/ccmprepare_input.csv +91 -0
- teradataml/data/cfilter_example.json +12 -0
- teradataml/data/changepointdetection_example.json +18 -0
- teradataml/data/changepointdetectionrt_example.json +8 -0
- teradataml/data/chi_sq.csv +3 -0
- teradataml/data/churn_data.csv +14 -0
- teradataml/data/churn_emission.csv +35 -0
- teradataml/data/churn_initial.csv +3 -0
- teradataml/data/churn_state_transition.csv +5 -0
- teradataml/data/citedges_2.csv +745 -0
- teradataml/data/citvertices_2.csv +1210 -0
- teradataml/data/clicks2.csv +16 -0
- teradataml/data/clickstream.csv +13 -0
- teradataml/data/clickstream1.csv +11 -0
- teradataml/data/closeness_example.json +16 -0
- teradataml/data/complaints.csv +21 -0
- teradataml/data/complaints_mini.csv +3 -0
- teradataml/data/complaints_test_tokenized.csv +353 -0
- teradataml/data/complaints_testtoken.csv +224 -0
- teradataml/data/complaints_tokens_model.csv +348 -0
- teradataml/data/complaints_tokens_test.csv +353 -0
- teradataml/data/complaints_traintoken.csv +472 -0
- teradataml/data/computers_category.csv +1001 -0
- teradataml/data/computers_test1.csv +1252 -0
- teradataml/data/computers_train1.csv +5009 -0
- teradataml/data/computers_train1_clustered.csv +5009 -0
- teradataml/data/confusionmatrix_example.json +9 -0
- teradataml/data/conversion_event_table.csv +3 -0
- teradataml/data/corr_input.csv +17 -0
- teradataml/data/correlation_example.json +11 -0
- teradataml/data/covid_confirm_sd.csv +83 -0
- teradataml/data/coxhazardratio_example.json +39 -0
- teradataml/data/coxph_example.json +15 -0
- teradataml/data/coxsurvival_example.json +28 -0
- teradataml/data/cpt.csv +41 -0
- teradataml/data/credit_ex_merged.csv +45 -0
- teradataml/data/creditcard_data.csv +1001 -0
- teradataml/data/customer_loyalty.csv +301 -0
- teradataml/data/customer_loyalty_newseq.csv +31 -0
- teradataml/data/customer_segmentation_test.csv +2628 -0
- teradataml/data/customer_segmentation_train.csv +8069 -0
- teradataml/data/dataframe_example.json +173 -0
- teradataml/data/decisionforest_example.json +37 -0
- teradataml/data/decisionforestpredict_example.json +38 -0
- teradataml/data/decisiontree_example.json +21 -0
- teradataml/data/decisiontreepredict_example.json +45 -0
- teradataml/data/dfft2_size4_real.csv +17 -0
- teradataml/data/dfft2_test_matrix16.csv +17 -0
- teradataml/data/dfft2conv_real_4_4.csv +65 -0
- teradataml/data/diabetes.csv +443 -0
- teradataml/data/diabetes_test.csv +89 -0
- teradataml/data/dict_table.csv +5 -0
- teradataml/data/docperterm_table.csv +4 -0
- teradataml/data/docs/__init__.py +1 -0
- teradataml/data/docs/byom/__init__.py +0 -0
- teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -0
- teradataml/data/docs/byom/docs/DataikuPredict.py +217 -0
- teradataml/data/docs/byom/docs/H2OPredict.py +325 -0
- teradataml/data/docs/byom/docs/ONNXEmbeddings.py +242 -0
- teradataml/data/docs/byom/docs/ONNXPredict.py +283 -0
- teradataml/data/docs/byom/docs/ONNXSeq2Seq.py +255 -0
- teradataml/data/docs/byom/docs/PMMLPredict.py +278 -0
- teradataml/data/docs/byom/docs/__init__.py +0 -0
- teradataml/data/docs/sqle/__init__.py +0 -0
- teradataml/data/docs/sqle/docs_17_10/Antiselect.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/Attribution.py +200 -0
- teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +172 -0
- teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -0
- teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -0
- teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +96 -0
- teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -0
- teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +152 -0
- teradataml/data/docs/sqle/docs_17_10/FTest.py +161 -0
- teradataml/data/docs/sqle/docs_17_10/FillRowId.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/Fit.py +88 -0
- teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +85 -0
- teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +82 -0
- teradataml/data/docs/sqle/docs_17_10/Histogram.py +165 -0
- teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -0
- teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +209 -0
- teradataml/data/docs/sqle/docs_17_10/NPath.py +266 -0
- teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -0
- teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -0
- teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -0
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +135 -0
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -0
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +166 -0
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -0
- teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -0
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +112 -0
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -0
- teradataml/data/docs/sqle/docs_17_10/QQNorm.py +105 -0
- teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +110 -0
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +118 -0
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -0
- teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +153 -0
- teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -0
- teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -0
- teradataml/data/docs/sqle/docs_17_10/Sessionize.py +114 -0
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -0
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -0
- teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -0
- teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +146 -0
- teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -0
- teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +142 -0
- teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -0
- teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -0
- teradataml/data/docs/sqle/docs_17_10/__init__.py +0 -0
- teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -0
- teradataml/data/docs/sqle/docs_17_20/Antiselect.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/Apriori.py +138 -0
- teradataml/data/docs/sqle/docs_17_20/Attribution.py +201 -0
- teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +172 -0
- teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -0
- teradataml/data/docs/sqle/docs_17_20/CFilter.py +132 -0
- teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -0
- teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -0
- teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +246 -0
- teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -0
- teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +280 -0
- teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +136 -0
- teradataml/data/docs/sqle/docs_17_20/FTest.py +240 -0
- teradataml/data/docs/sqle/docs_17_20/FillRowId.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/Fit.py +88 -0
- teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -0
- teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +415 -0
- teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -0
- teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -0
- teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +109 -0
- teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +106 -0
- teradataml/data/docs/sqle/docs_17_20/Histogram.py +224 -0
- teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -0
- teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_20/KNN.py +215 -0
- teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -0
- teradataml/data/docs/sqle/docs_17_20/NERExtractor.py +121 -0
- teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +209 -0
- teradataml/data/docs/sqle/docs_17_20/NPath.py +266 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayes.py +162 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +127 -0
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +119 -0
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -0
- teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -0
- teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -0
- teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -0
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +231 -0
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -0
- teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +220 -0
- teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -0
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +191 -0
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -0
- teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -0
- teradataml/data/docs/sqle/docs_17_20/Pivoting.py +279 -0
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +112 -0
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -0
- teradataml/data/docs/sqle/docs_17_20/QQNorm.py +105 -0
- teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -0
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +155 -0
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -0
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -0
- teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -0
- teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +109 -0
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +118 -0
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -0
- teradataml/data/docs/sqle/docs_17_20/SMOTE.py +212 -0
- teradataml/data/docs/sqle/docs_17_20/SVM.py +414 -0
- teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -0
- teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +153 -0
- teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -0
- teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -0
- teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -0
- teradataml/data/docs/sqle/docs_17_20/Sessionize.py +114 -0
- teradataml/data/docs/sqle/docs_17_20/Shap.py +225 -0
- teradataml/data/docs/sqle/docs_17_20/Silhouette.py +153 -0
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -0
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -0
- teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -0
- teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +146 -0
- teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -0
- teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -0
- teradataml/data/docs/sqle/docs_17_20/TDNaiveBayesPredict.py +189 -0
- teradataml/data/docs/sqle/docs_17_20/TFIDF.py +142 -0
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +267 -0
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -0
- teradataml/data/docs/sqle/docs_17_20/TextMorph.py +119 -0
- teradataml/data/docs/sqle/docs_17_20/TextParser.py +224 -0
- teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +160 -0
- teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -0
- teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +142 -0
- teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -0
- teradataml/data/docs/sqle/docs_17_20/Unpivoting.py +216 -0
- teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +169 -0
- teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +237 -0
- teradataml/data/docs/sqle/docs_17_20/XGBoost.py +362 -0
- teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -0
- teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -0
- teradataml/data/docs/sqle/docs_17_20/__init__.py +0 -0
- teradataml/data/docs/tableoperator/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +430 -0
- teradataml/data/docs/tableoperator/docs_17_00/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +430 -0
- teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +348 -0
- teradataml/data/docs/tableoperator/docs_17_05/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +429 -0
- teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +348 -0
- teradataml/data/docs/tableoperator/docs_17_10/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_20/Image2Matrix.py +118 -0
- teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +440 -0
- teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +387 -0
- teradataml/data/docs/tableoperator/docs_17_20/__init__.py +0 -0
- teradataml/data/docs/uaf/__init__.py +0 -0
- teradataml/data/docs/uaf/docs_17_20/ACF.py +186 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +370 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +172 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +161 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaXEstimate.py +293 -0
- teradataml/data/docs/uaf/docs_17_20/AutoArima.py +354 -0
- teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +248 -0
- teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -0
- teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +178 -0
- teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +175 -0
- teradataml/data/docs/uaf/docs_17_20/Convolve.py +230 -0
- teradataml/data/docs/uaf/docs_17_20/Convolve2.py +218 -0
- teradataml/data/docs/uaf/docs_17_20/CopyArt.py +145 -0
- teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +185 -0
- teradataml/data/docs/uaf/docs_17_20/DFFT.py +204 -0
- teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -0
- teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +216 -0
- teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +192 -0
- teradataml/data/docs/uaf/docs_17_20/DIFF.py +175 -0
- teradataml/data/docs/uaf/docs_17_20/DTW.py +180 -0
- teradataml/data/docs/uaf/docs_17_20/DWT.py +235 -0
- teradataml/data/docs/uaf/docs_17_20/DWT2D.py +217 -0
- teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +142 -0
- teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +184 -0
- teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +185 -0
- teradataml/data/docs/uaf/docs_17_20/FilterFactory1d.py +160 -0
- teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -0
- teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +206 -0
- teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +143 -0
- teradataml/data/docs/uaf/docs_17_20/GoldfeldQuandt.py +198 -0
- teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +260 -0
- teradataml/data/docs/uaf/docs_17_20/IDFFT.py +165 -0
- teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +191 -0
- teradataml/data/docs/uaf/docs_17_20/IDWT.py +236 -0
- teradataml/data/docs/uaf/docs_17_20/IDWT2D.py +226 -0
- teradataml/data/docs/uaf/docs_17_20/IQR.py +134 -0
- teradataml/data/docs/uaf/docs_17_20/InputValidator.py +121 -0
- teradataml/data/docs/uaf/docs_17_20/LineSpec.py +156 -0
- teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +215 -0
- teradataml/data/docs/uaf/docs_17_20/MAMean.py +174 -0
- teradataml/data/docs/uaf/docs_17_20/MInfo.py +134 -0
- teradataml/data/docs/uaf/docs_17_20/Matrix2Image.py +297 -0
- teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +145 -0
- teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +191 -0
- teradataml/data/docs/uaf/docs_17_20/PACF.py +157 -0
- teradataml/data/docs/uaf/docs_17_20/Portman.py +217 -0
- teradataml/data/docs/uaf/docs_17_20/PowerSpec.py +203 -0
- teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +155 -0
- teradataml/data/docs/uaf/docs_17_20/Resample.py +237 -0
- teradataml/data/docs/uaf/docs_17_20/SAX.py +246 -0
- teradataml/data/docs/uaf/docs_17_20/SInfo.py +123 -0
- teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +173 -0
- teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +174 -0
- teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +171 -0
- teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +164 -0
- teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +180 -0
- teradataml/data/docs/uaf/docs_17_20/Smoothma.py +208 -0
- teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +151 -0
- teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -0
- teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +202 -0
- teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +171 -0
- teradataml/data/docs/uaf/docs_17_20/WindowDFFT.py +368 -0
- teradataml/data/docs/uaf/docs_17_20/__init__.py +0 -0
- teradataml/data/dtw_example.json +18 -0
- teradataml/data/dtw_t1.csv +11 -0
- teradataml/data/dtw_t2.csv +4 -0
- teradataml/data/dwt2d_dataTable.csv +65 -0
- teradataml/data/dwt2d_example.json +16 -0
- teradataml/data/dwt_dataTable.csv +8 -0
- teradataml/data/dwt_example.json +15 -0
- teradataml/data/dwt_filterTable.csv +3 -0
- teradataml/data/dwt_filter_dim.csv +5 -0
- teradataml/data/emission.csv +9 -0
- teradataml/data/emp_table_by_dept.csv +19 -0
- teradataml/data/employee_info.csv +4 -0
- teradataml/data/employee_table.csv +6 -0
- teradataml/data/excluding_event_table.csv +2 -0
- teradataml/data/finance_data.csv +6 -0
- teradataml/data/finance_data2.csv +61 -0
- teradataml/data/finance_data3.csv +93 -0
- teradataml/data/finance_data4.csv +13 -0
- teradataml/data/fish.csv +160 -0
- teradataml/data/fm_blood2ageandweight.csv +26 -0
- teradataml/data/fmeasure_example.json +12 -0
- teradataml/data/followers_leaders.csv +10 -0
- teradataml/data/fpgrowth_example.json +12 -0
- teradataml/data/frequentpaths_example.json +29 -0
- teradataml/data/friends.csv +9 -0
- teradataml/data/fs_input.csv +33 -0
- teradataml/data/fs_input1.csv +33 -0
- teradataml/data/genData.csv +513 -0
- teradataml/data/geodataframe_example.json +40 -0
- teradataml/data/glass_types.csv +215 -0
- teradataml/data/glm_admissions_model.csv +12 -0
- teradataml/data/glm_example.json +56 -0
- teradataml/data/glml1l2_example.json +28 -0
- teradataml/data/glml1l2predict_example.json +54 -0
- teradataml/data/glmpredict_example.json +54 -0
- teradataml/data/gq_t1.csv +21 -0
- teradataml/data/grocery_transaction.csv +19 -0
- teradataml/data/hconvolve_complex_right.csv +5 -0
- teradataml/data/hconvolve_complex_rightmulti.csv +5 -0
- teradataml/data/histogram_example.json +12 -0
- teradataml/data/hmmdecoder_example.json +79 -0
- teradataml/data/hmmevaluator_example.json +25 -0
- teradataml/data/hmmsupervised_example.json +10 -0
- teradataml/data/hmmunsupervised_example.json +8 -0
- teradataml/data/hnsw_alter_data.csv +5 -0
- teradataml/data/hnsw_data.csv +10 -0
- teradataml/data/house_values.csv +12 -0
- teradataml/data/house_values2.csv +13 -0
- teradataml/data/housing_cat.csv +7 -0
- teradataml/data/housing_data.csv +9 -0
- teradataml/data/housing_test.csv +47 -0
- teradataml/data/housing_test_binary.csv +47 -0
- teradataml/data/housing_train.csv +493 -0
- teradataml/data/housing_train_attribute.csv +5 -0
- teradataml/data/housing_train_binary.csv +437 -0
- teradataml/data/housing_train_parameter.csv +2 -0
- teradataml/data/housing_train_response.csv +493 -0
- teradataml/data/housing_train_segment.csv +201 -0
- teradataml/data/ibm_stock.csv +370 -0
- teradataml/data/ibm_stock1.csv +370 -0
- teradataml/data/identitymatch_example.json +22 -0
- teradataml/data/idf_table.csv +4 -0
- teradataml/data/idwt2d_dataTable.csv +5 -0
- teradataml/data/idwt_dataTable.csv +8 -0
- teradataml/data/idwt_filterTable.csv +3 -0
- teradataml/data/impressions.csv +101 -0
- teradataml/data/inflation.csv +21 -0
- teradataml/data/initial.csv +3 -0
- teradataml/data/insect2Cols.csv +61 -0
- teradataml/data/insect_sprays.csv +13 -0
- teradataml/data/insurance.csv +1339 -0
- teradataml/data/interpolator_example.json +13 -0
- teradataml/data/interval_data.csv +5 -0
- teradataml/data/iris_altinput.csv +481 -0
- teradataml/data/iris_attribute_output.csv +8 -0
- teradataml/data/iris_attribute_test.csv +121 -0
- teradataml/data/iris_attribute_train.csv +481 -0
- teradataml/data/iris_category_expect_predict.csv +31 -0
- teradataml/data/iris_data.csv +151 -0
- teradataml/data/iris_input.csv +151 -0
- teradataml/data/iris_response_train.csv +121 -0
- teradataml/data/iris_test.csv +31 -0
- teradataml/data/iris_train.csv +121 -0
- teradataml/data/join_table1.csv +4 -0
- teradataml/data/join_table2.csv +4 -0
- teradataml/data/jsons/anly_function_name.json +7 -0
- teradataml/data/jsons/byom/ONNXSeq2Seq.json +287 -0
- teradataml/data/jsons/byom/dataikupredict.json +148 -0
- teradataml/data/jsons/byom/datarobotpredict.json +147 -0
- teradataml/data/jsons/byom/h2opredict.json +195 -0
- teradataml/data/jsons/byom/onnxembeddings.json +267 -0
- teradataml/data/jsons/byom/onnxpredict.json +187 -0
- teradataml/data/jsons/byom/pmmlpredict.json +147 -0
- teradataml/data/jsons/paired_functions.json +450 -0
- teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/16.20/Attribution.json +249 -0
- teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -0
- teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -0
- teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -0
- teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -0
- teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -0
- teradataml/data/jsons/sqle/16.20/Pack.json +98 -0
- teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -0
- teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/16.20/Unpack.json +166 -0
- teradataml/data/jsons/sqle/16.20/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.00/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -0
- teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -0
- teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -0
- teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -0
- teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -0
- teradataml/data/jsons/sqle/17.00/Pack.json +98 -0
- teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -0
- teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.00/Unpack.json +166 -0
- teradataml/data/jsons/sqle/17.00/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.05/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -0
- teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -0
- teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -0
- teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -0
- teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -0
- teradataml/data/jsons/sqle/17.05/Pack.json +98 -0
- teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -0
- teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.05/Unpack.json +166 -0
- teradataml/data/jsons/sqle/17.05/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.10/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -0
- teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +172 -0
- teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -0
- teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -0
- teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -0
- teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -0
- teradataml/data/jsons/sqle/17.10/Pack.json +133 -0
- teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -0
- teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -0
- teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -0
- teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +54 -0
- teradataml/data/jsons/sqle/17.10/TD_Chisq.json +68 -0
- teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +54 -0
- teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +69 -0
- teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -0
- teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +52 -0
- teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -0
- teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -0
- teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_Histogram.json +133 -0
- teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -0
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +183 -0
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +66 -0
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +197 -0
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -0
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -0
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -0
- teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +112 -0
- teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -0
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +128 -0
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +71 -0
- teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +157 -0
- teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +71 -0
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +148 -0
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -0
- teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -0
- teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +119 -0
- teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -0
- teradataml/data/jsons/sqle/17.10/Unpack.json +188 -0
- teradataml/data/jsons/sqle/17.10/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.20/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -0
- teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -0
- teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -0
- teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -0
- teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -0
- teradataml/data/jsons/sqle/17.20/Pack.json +133 -0
- teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -0
- teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +149 -0
- teradataml/data/jsons/sqle/17.20/TD_Apriori.json +181 -0
- teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -0
- teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -0
- teradataml/data/jsons/sqle/17.20/TD_CFilter.json +118 -0
- teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_Chisq.json +68 -0
- teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +146 -0
- teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -0
- teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -0
- teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +260 -0
- teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -0
- teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -0
- teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -0
- teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -0
- teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -0
- teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -0
- teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -0
- teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -0
- teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -0
- teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -0
- teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -0
- teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -0
- teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -0
- teradataml/data/jsons/sqle/17.20/TD_KMeans.json +232 -0
- teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +87 -0
- teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -0
- teradataml/data/jsons/sqle/17.20/TD_NERExtractor.json +145 -0
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayes.json +193 -0
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayesPredict.json +212 -0
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -0
- teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -0
- teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -0
- teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -0
- teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +316 -0
- teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +124 -0
- teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -0
- teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -0
- teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -0
- teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -0
- teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -0
- teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -0
- teradataml/data/jsons/sqle/17.20/TD_Pivoting.json +280 -0
- teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -0
- teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -0
- teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -0
- teradataml/data/jsons/sqle/17.20/TD_ROC.json +179 -0
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +179 -0
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +74 -0
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -0
- teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +138 -0
- teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -0
- teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +128 -0
- teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +71 -0
- teradataml/data/jsons/sqle/17.20/TD_SMOTE.json +267 -0
- teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -0
- teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -0
- teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +310 -0
- teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +120 -0
- teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +194 -0
- teradataml/data/jsons/sqle/17.20/TD_Shap.json +221 -0
- teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +143 -0
- teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -0
- teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -0
- teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -0
- teradataml/data/jsons/sqle/17.20/TD_TFIDF.json +162 -0
- teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -0
- teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -0
- teradataml/data/jsons/sqle/17.20/TD_TextMorph.json +134 -0
- teradataml/data/jsons/sqle/17.20/TD_TextParser.json +297 -0
- teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -0
- teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -0
- teradataml/data/jsons/sqle/17.20/TD_Unpivoting.json +235 -0
- teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +183 -0
- teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -0
- teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -0
- teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -0
- teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -0
- teradataml/data/jsons/sqle/17.20/Unpack.json +188 -0
- teradataml/data/jsons/sqle/17.20/nPath.json +269 -0
- teradataml/data/jsons/sqle/20.00/AI_AnalyzeSentiment.json +370 -0
- teradataml/data/jsons/sqle/20.00/AI_AskLLM.json +460 -0
- teradataml/data/jsons/sqle/20.00/AI_DetectLanguage.json +385 -0
- teradataml/data/jsons/sqle/20.00/AI_ExtractKeyPhrases.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_MaskPII.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_RecognizeEntities.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_RecognizePIIEntities.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_TextClassifier.json +400 -0
- teradataml/data/jsons/sqle/20.00/AI_TextEmbeddings.json +401 -0
- teradataml/data/jsons/sqle/20.00/AI_TextSummarize.json +384 -0
- teradataml/data/jsons/sqle/20.00/AI_TextTranslate.json +384 -0
- teradataml/data/jsons/sqle/20.00/TD_API_AzureML.json +151 -0
- teradataml/data/jsons/sqle/20.00/TD_API_Sagemaker.json +182 -0
- teradataml/data/jsons/sqle/20.00/TD_API_VertexAI.json +183 -0
- teradataml/data/jsons/sqle/20.00/TD_HNSW.json +296 -0
- teradataml/data/jsons/sqle/20.00/TD_HNSWPredict.json +206 -0
- teradataml/data/jsons/sqle/20.00/TD_HNSWSummary.json +32 -0
- teradataml/data/jsons/sqle/20.00/TD_KMeans.json +250 -0
- teradataml/data/jsons/sqle/20.00/TD_SMOTE.json +266 -0
- teradataml/data/jsons/sqle/20.00/TD_VectorDistance.json +278 -0
- teradataml/data/jsons/storedprocedure/17.20/TD_COPYART.json +71 -0
- teradataml/data/jsons/storedprocedure/17.20/TD_FILTERFACTORY1D.json +150 -0
- teradataml/data/jsons/tableoperator/17.00/read_nos.json +198 -0
- teradataml/data/jsons/tableoperator/17.05/read_nos.json +198 -0
- teradataml/data/jsons/tableoperator/17.05/write_nos.json +195 -0
- teradataml/data/jsons/tableoperator/17.10/read_nos.json +184 -0
- teradataml/data/jsons/tableoperator/17.10/write_nos.json +195 -0
- teradataml/data/jsons/tableoperator/17.20/IMAGE2MATRIX.json +53 -0
- teradataml/data/jsons/tableoperator/17.20/read_nos.json +183 -0
- teradataml/data/jsons/tableoperator/17.20/write_nos.json +224 -0
- teradataml/data/jsons/uaf/17.20/TD_ACF.json +132 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +396 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +77 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +153 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAXESTIMATE.json +362 -0
- teradataml/data/jsons/uaf/17.20/TD_AUTOARIMA.json +469 -0
- teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +107 -0
- teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +106 -0
- teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +89 -0
- teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +104 -0
- teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +78 -0
- teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +66 -0
- teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +87 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFT.json +134 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +144 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +108 -0
- teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +78 -0
- teradataml/data/jsons/uaf/17.20/TD_DIFF.json +92 -0
- teradataml/data/jsons/uaf/17.20/TD_DTW.json +114 -0
- teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +101 -0
- teradataml/data/jsons/uaf/17.20/TD_DWT.json +173 -0
- teradataml/data/jsons/uaf/17.20/TD_DWT2D.json +160 -0
- teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +39 -0
- teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +101 -0
- teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +85 -0
- teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +71 -0
- teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +139 -0
- teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECASTER.json +313 -0
- teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +58 -0
- teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +81 -0
- teradataml/data/jsons/uaf/17.20/TD_IDWT.json +162 -0
- teradataml/data/jsons/uaf/17.20/TD_IDWT2D.json +149 -0
- teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +64 -0
- teradataml/data/jsons/uaf/17.20/TD_IQR.json +117 -0
- teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +182 -0
- teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +103 -0
- teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +181 -0
- teradataml/data/jsons/uaf/17.20/TD_MATRIX2IMAGE.json +209 -0
- teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +68 -0
- teradataml/data/jsons/uaf/17.20/TD_MINFO.json +67 -0
- teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +179 -0
- teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -0
- teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +119 -0
- teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -0
- teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +98 -0
- teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +194 -0
- teradataml/data/jsons/uaf/17.20/TD_SAX.json +210 -0
- teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +143 -0
- teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +90 -0
- teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +80 -0
- teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +68 -0
- teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -0
- teradataml/data/jsons/uaf/17.20/TD_SINFO.json +58 -0
- teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +163 -0
- teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +101 -0
- teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +112 -0
- teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -0
- teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +78 -0
- teradataml/data/jsons/uaf/17.20/TD_WINDOWDFFT.json +410 -0
- teradataml/data/kmeans_example.json +23 -0
- teradataml/data/kmeans_table.csv +10 -0
- teradataml/data/kmeans_us_arrests_data.csv +51 -0
- teradataml/data/knn_example.json +19 -0
- teradataml/data/knnrecommender_example.json +7 -0
- teradataml/data/knnrecommenderpredict_example.json +12 -0
- teradataml/data/lar_example.json +17 -0
- teradataml/data/larpredict_example.json +30 -0
- teradataml/data/lc_new_predictors.csv +5 -0
- teradataml/data/lc_new_reference.csv +9 -0
- teradataml/data/lda_example.json +9 -0
- teradataml/data/ldainference_example.json +15 -0
- teradataml/data/ldatopicsummary_example.json +9 -0
- teradataml/data/levendist_input.csv +13 -0
- teradataml/data/levenshteindistance_example.json +10 -0
- teradataml/data/linreg_example.json +10 -0
- teradataml/data/load_example_data.py +350 -0
- teradataml/data/loan_prediction.csv +295 -0
- teradataml/data/lungcancer.csv +138 -0
- teradataml/data/mappingdata.csv +12 -0
- teradataml/data/medical_readings.csv +101 -0
- teradataml/data/milk_timeseries.csv +157 -0
- teradataml/data/min_max_titanic.csv +4 -0
- teradataml/data/minhash_example.json +6 -0
- teradataml/data/ml_ratings.csv +7547 -0
- teradataml/data/ml_ratings_10.csv +2445 -0
- teradataml/data/mobile_data.csv +13 -0
- teradataml/data/model1_table.csv +5 -0
- teradataml/data/model2_table.csv +5 -0
- teradataml/data/models/License_file.txt +1 -0
- teradataml/data/models/License_file_empty.txt +0 -0
- teradataml/data/models/dataiku_iris_data_ann_thin +0 -0
- teradataml/data/models/dr_iris_rf +0 -0
- teradataml/data/models/iris_db_dt_model_sklearn.onnx +0 -0
- teradataml/data/models/iris_db_dt_model_sklearn_floattensor.onnx +0 -0
- teradataml/data/models/iris_db_glm_model.pmml +57 -0
- teradataml/data/models/iris_db_xgb_model.pmml +4471 -0
- teradataml/data/models/iris_kmeans_model +0 -0
- teradataml/data/models/iris_mojo_glm_h2o_model +0 -0
- teradataml/data/models/iris_mojo_xgb_h2o_model +0 -0
- teradataml/data/modularity_example.json +12 -0
- teradataml/data/movavg_example.json +8 -0
- teradataml/data/mtx1.csv +7 -0
- teradataml/data/mtx2.csv +13 -0
- teradataml/data/multi_model_classification.csv +401 -0
- teradataml/data/multi_model_regression.csv +401 -0
- teradataml/data/mvdfft8.csv +9 -0
- teradataml/data/naivebayes_example.json +10 -0
- teradataml/data/naivebayespredict_example.json +19 -0
- teradataml/data/naivebayestextclassifier2_example.json +7 -0
- teradataml/data/naivebayestextclassifier_example.json +8 -0
- teradataml/data/naivebayestextclassifierpredict_example.json +32 -0
- teradataml/data/name_Find_configure.csv +10 -0
- teradataml/data/namedentityfinder_example.json +14 -0
- teradataml/data/namedentityfinderevaluator_example.json +10 -0
- teradataml/data/namedentityfindertrainer_example.json +6 -0
- teradataml/data/nb_iris_input_test.csv +31 -0
- teradataml/data/nb_iris_input_train.csv +121 -0
- teradataml/data/nbp_iris_model.csv +13 -0
- teradataml/data/ner_dict.csv +8 -0
- teradataml/data/ner_extractor_text.csv +2 -0
- teradataml/data/ner_input_eng.csv +7 -0
- teradataml/data/ner_rule.csv +5 -0
- teradataml/data/ner_sports_test2.csv +29 -0
- teradataml/data/ner_sports_train.csv +501 -0
- teradataml/data/nerevaluator_example.json +6 -0
- teradataml/data/nerextractor_example.json +18 -0
- teradataml/data/nermem_sports_test.csv +18 -0
- teradataml/data/nermem_sports_train.csv +51 -0
- teradataml/data/nertrainer_example.json +7 -0
- teradataml/data/ngrams_example.json +7 -0
- teradataml/data/notebooks/__init__.py +0 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -0
- teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -0
- teradataml/data/notebooks/sqlalchemy/__init__.py +0 -0
- teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -0
- teradataml/data/npath_example.json +23 -0
- teradataml/data/ntree_example.json +14 -0
- teradataml/data/numeric_strings.csv +5 -0
- teradataml/data/numerics.csv +4 -0
- teradataml/data/ocean_buoy.csv +17 -0
- teradataml/data/ocean_buoy2.csv +17 -0
- teradataml/data/ocean_buoys.csv +28 -0
- teradataml/data/ocean_buoys2.csv +10 -0
- teradataml/data/ocean_buoys_nonpti.csv +28 -0
- teradataml/data/ocean_buoys_seq.csv +29 -0
- teradataml/data/onehot_encoder_train.csv +4 -0
- teradataml/data/openml_example.json +92 -0
- teradataml/data/optional_event_table.csv +4 -0
- teradataml/data/orders1.csv +11 -0
- teradataml/data/orders1_12.csv +13 -0
- teradataml/data/orders_ex.csv +4 -0
- teradataml/data/pack_example.json +9 -0
- teradataml/data/package_tracking.csv +19 -0
- teradataml/data/package_tracking_pti.csv +19 -0
- teradataml/data/pagerank_example.json +13 -0
- teradataml/data/paragraphs_input.csv +6 -0
- teradataml/data/pathanalyzer_example.json +8 -0
- teradataml/data/pathgenerator_example.json +8 -0
- teradataml/data/patient_profile.csv +101 -0
- teradataml/data/pattern_matching_data.csv +11 -0
- teradataml/data/payment_fraud_dataset.csv +10001 -0
- teradataml/data/peppers.png +0 -0
- teradataml/data/phrases.csv +7 -0
- teradataml/data/pivot_example.json +9 -0
- teradataml/data/pivot_input.csv +22 -0
- teradataml/data/playerRating.csv +31 -0
- teradataml/data/pos_input.csv +40 -0
- teradataml/data/postagger_example.json +7 -0
- teradataml/data/posttagger_output.csv +44 -0
- teradataml/data/production_data.csv +17 -0
- teradataml/data/production_data2.csv +7 -0
- teradataml/data/randomsample_example.json +32 -0
- teradataml/data/randomwalksample_example.json +9 -0
- teradataml/data/rank_table.csv +6 -0
- teradataml/data/real_values.csv +14 -0
- teradataml/data/ref_mobile_data.csv +4 -0
- teradataml/data/ref_mobile_data_dense.csv +2 -0
- teradataml/data/ref_url.csv +17 -0
- teradataml/data/restaurant_reviews.csv +7 -0
- teradataml/data/retail_churn_table.csv +27772 -0
- teradataml/data/river_data.csv +145 -0
- teradataml/data/roc_example.json +8 -0
- teradataml/data/roc_input.csv +101 -0
- teradataml/data/rule_inputs.csv +6 -0
- teradataml/data/rule_table.csv +2 -0
- teradataml/data/sales.csv +7 -0
- teradataml/data/sales_transaction.csv +501 -0
- teradataml/data/salesdata.csv +342 -0
- teradataml/data/sample_cities.csv +3 -0
- teradataml/data/sample_shapes.csv +11 -0
- teradataml/data/sample_streets.csv +3 -0
- teradataml/data/sampling_example.json +16 -0
- teradataml/data/sax_example.json +17 -0
- teradataml/data/scale_attributes.csv +3 -0
- teradataml/data/scale_example.json +74 -0
- teradataml/data/scale_housing.csv +11 -0
- teradataml/data/scale_housing_test.csv +6 -0
- 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 -0
- teradataml/data/scalebypartition_example.json +13 -0
- teradataml/data/scalemap_example.json +13 -0
- teradataml/data/scalesummary_example.json +12 -0
- teradataml/data/score_category.csv +101 -0
- teradataml/data/score_summary.csv +4 -0
- teradataml/data/script_example.json +10 -0
- teradataml/data/scripts/deploy_script.py +84 -0
- teradataml/data/scripts/lightgbm/dataset.template +175 -0
- teradataml/data/scripts/lightgbm/lightgbm_class_functions.template +264 -0
- teradataml/data/scripts/lightgbm/lightgbm_function.template +234 -0
- teradataml/data/scripts/lightgbm/lightgbm_sklearn.template +177 -0
- teradataml/data/scripts/mapper.R +20 -0
- teradataml/data/scripts/mapper.py +16 -0
- teradataml/data/scripts/mapper_replace.py +16 -0
- teradataml/data/scripts/sklearn/__init__.py +0 -0
- teradataml/data/scripts/sklearn/sklearn_fit.py +205 -0
- teradataml/data/scripts/sklearn/sklearn_fit_predict.py +148 -0
- teradataml/data/scripts/sklearn/sklearn_function.template +144 -0
- teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +166 -0
- teradataml/data/scripts/sklearn/sklearn_neighbors.py +161 -0
- teradataml/data/scripts/sklearn/sklearn_score.py +145 -0
- teradataml/data/scripts/sklearn/sklearn_transform.py +327 -0
- teradataml/data/sdk/modelops/modelops_spec.json +101737 -0
- teradataml/data/seeds.csv +10 -0
- teradataml/data/sentenceextractor_example.json +7 -0
- teradataml/data/sentiment_extract_input.csv +11 -0
- teradataml/data/sentiment_train.csv +16 -0
- teradataml/data/sentiment_word.csv +20 -0
- teradataml/data/sentiment_word_input.csv +20 -0
- teradataml/data/sentimentextractor_example.json +24 -0
- teradataml/data/sentimenttrainer_example.json +8 -0
- teradataml/data/sequence_table.csv +10 -0
- teradataml/data/seriessplitter_example.json +8 -0
- teradataml/data/sessionize_example.json +17 -0
- teradataml/data/sessionize_table.csv +116 -0
- teradataml/data/setop_test1.csv +24 -0
- teradataml/data/setop_test2.csv +22 -0
- teradataml/data/soc_nw_edges.csv +11 -0
- teradataml/data/soc_nw_vertices.csv +8 -0
- teradataml/data/souvenir_timeseries.csv +168 -0
- teradataml/data/sparse_iris_attribute.csv +5 -0
- teradataml/data/sparse_iris_test.csv +121 -0
- teradataml/data/sparse_iris_train.csv +601 -0
- teradataml/data/star1.csv +6 -0
- teradataml/data/star_pivot.csv +8 -0
- teradataml/data/state_transition.csv +5 -0
- teradataml/data/stock_data.csv +53 -0
- teradataml/data/stock_movement.csv +11 -0
- teradataml/data/stock_vol.csv +76 -0
- teradataml/data/stop_words.csv +8 -0
- teradataml/data/store_sales.csv +37 -0
- teradataml/data/stringsimilarity_example.json +8 -0
- teradataml/data/strsimilarity_input.csv +13 -0
- teradataml/data/students.csv +101 -0
- teradataml/data/svm_iris_input_test.csv +121 -0
- teradataml/data/svm_iris_input_train.csv +481 -0
- teradataml/data/svm_iris_model.csv +7 -0
- teradataml/data/svmdense_example.json +10 -0
- teradataml/data/svmdensepredict_example.json +19 -0
- teradataml/data/svmsparse_example.json +8 -0
- teradataml/data/svmsparsepredict_example.json +14 -0
- teradataml/data/svmsparsesummary_example.json +8 -0
- teradataml/data/target_mobile_data.csv +13 -0
- teradataml/data/target_mobile_data_dense.csv +5 -0
- teradataml/data/target_udt_data.csv +8 -0
- teradataml/data/tdnerextractor_example.json +14 -0
- teradataml/data/templatedata.csv +1201 -0
- teradataml/data/templates/open_source_ml.json +11 -0
- teradataml/data/teradata_icon.ico +0 -0
- teradataml/data/teradataml_example.json +1473 -0
- teradataml/data/test_classification.csv +101 -0
- teradataml/data/test_loan_prediction.csv +53 -0
- teradataml/data/test_pacf_12.csv +37 -0
- teradataml/data/test_prediction.csv +101 -0
- teradataml/data/test_regression.csv +101 -0
- teradataml/data/test_river2.csv +109 -0
- teradataml/data/text_inputs.csv +6 -0
- teradataml/data/textchunker_example.json +8 -0
- teradataml/data/textclassifier_example.json +7 -0
- teradataml/data/textclassifier_input.csv +7 -0
- teradataml/data/textclassifiertrainer_example.json +7 -0
- teradataml/data/textmorph_example.json +11 -0
- teradataml/data/textparser_example.json +15 -0
- teradataml/data/texttagger_example.json +12 -0
- teradataml/data/texttokenizer_example.json +7 -0
- teradataml/data/texttrainer_input.csv +11 -0
- teradataml/data/tf_example.json +7 -0
- teradataml/data/tfidf_example.json +14 -0
- teradataml/data/tfidf_input1.csv +201 -0
- teradataml/data/tfidf_train.csv +6 -0
- teradataml/data/time_table1.csv +535 -0
- teradataml/data/time_table2.csv +14 -0
- teradataml/data/timeseriesdata.csv +1601 -0
- teradataml/data/timeseriesdatasetsd4.csv +105 -0
- teradataml/data/timestamp_data.csv +4 -0
- teradataml/data/titanic.csv +892 -0
- teradataml/data/titanic_dataset_unpivoted.csv +19 -0
- teradataml/data/to_num_data.csv +4 -0
- teradataml/data/tochar_data.csv +5 -0
- teradataml/data/token_table.csv +696 -0
- teradataml/data/train_multiclass.csv +101 -0
- teradataml/data/train_regression.csv +101 -0
- teradataml/data/train_regression_multiple_labels.csv +101 -0
- teradataml/data/train_tracking.csv +28 -0
- teradataml/data/trans_dense.csv +16 -0
- teradataml/data/trans_sparse.csv +55 -0
- teradataml/data/transformation_table.csv +6 -0
- teradataml/data/transformation_table_new.csv +2 -0
- teradataml/data/tv_spots.csv +16 -0
- teradataml/data/twod_climate_data.csv +117 -0
- teradataml/data/uaf_example.json +529 -0
- teradataml/data/univariatestatistics_example.json +9 -0
- teradataml/data/unpack_example.json +10 -0
- teradataml/data/unpivot_example.json +25 -0
- teradataml/data/unpivot_input.csv +8 -0
- teradataml/data/url_data.csv +10 -0
- teradataml/data/us_air_pass.csv +37 -0
- teradataml/data/us_population.csv +624 -0
- teradataml/data/us_states_shapes.csv +52 -0
- teradataml/data/varmax_example.json +18 -0
- teradataml/data/vectordistance_example.json +30 -0
- teradataml/data/ville_climatedata.csv +121 -0
- teradataml/data/ville_tempdata.csv +12 -0
- teradataml/data/ville_tempdata1.csv +12 -0
- teradataml/data/ville_temperature.csv +11 -0
- teradataml/data/waveletTable.csv +1605 -0
- teradataml/data/waveletTable2.csv +1605 -0
- teradataml/data/weightedmovavg_example.json +9 -0
- teradataml/data/wft_testing.csv +5 -0
- teradataml/data/windowdfft.csv +16 -0
- teradataml/data/wine_data.csv +1600 -0
- teradataml/data/word_embed_input_table1.csv +6 -0
- teradataml/data/word_embed_input_table2.csv +5 -0
- teradataml/data/word_embed_model.csv +23 -0
- teradataml/data/words_input.csv +13 -0
- teradataml/data/xconvolve_complex_left.csv +6 -0
- teradataml/data/xconvolve_complex_leftmulti.csv +6 -0
- teradataml/data/xgboost_example.json +36 -0
- teradataml/data/xgboostpredict_example.json +32 -0
- teradataml/data/ztest_example.json +16 -0
- teradataml/dataframe/__init__.py +0 -0
- teradataml/dataframe/copy_to.py +2446 -0
- teradataml/dataframe/data_transfer.py +2840 -0
- teradataml/dataframe/dataframe.py +20908 -0
- teradataml/dataframe/dataframe_utils.py +2114 -0
- teradataml/dataframe/fastload.py +794 -0
- teradataml/dataframe/functions.py +2110 -0
- teradataml/dataframe/indexer.py +424 -0
- teradataml/dataframe/row.py +160 -0
- teradataml/dataframe/setop.py +1171 -0
- teradataml/dataframe/sql.py +10904 -0
- teradataml/dataframe/sql_function_parameters.py +440 -0
- teradataml/dataframe/sql_functions.py +652 -0
- teradataml/dataframe/sql_interfaces.py +220 -0
- teradataml/dataframe/vantage_function_types.py +675 -0
- teradataml/dataframe/window.py +694 -0
- teradataml/dbutils/__init__.py +3 -0
- teradataml/dbutils/dbutils.py +2871 -0
- teradataml/dbutils/filemgr.py +318 -0
- teradataml/gen_ai/__init__.py +2 -0
- teradataml/gen_ai/convAI.py +473 -0
- teradataml/geospatial/__init__.py +4 -0
- teradataml/geospatial/geodataframe.py +1105 -0
- teradataml/geospatial/geodataframecolumn.py +392 -0
- teradataml/geospatial/geometry_types.py +926 -0
- teradataml/hyperparameter_tuner/__init__.py +1 -0
- teradataml/hyperparameter_tuner/optimizer.py +4115 -0
- teradataml/hyperparameter_tuner/utils.py +303 -0
- teradataml/lib/__init__.py +0 -0
- 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/lib/libaed_0_1_aarch64.so +0 -0
- teradataml/lib/libaed_0_1_ppc64le.so +0 -0
- teradataml/opensource/__init__.py +1 -0
- teradataml/opensource/_base.py +1321 -0
- teradataml/opensource/_class.py +464 -0
- teradataml/opensource/_constants.py +61 -0
- teradataml/opensource/_lightgbm.py +949 -0
- teradataml/opensource/_sklearn.py +1008 -0
- teradataml/opensource/_wrapper_utils.py +267 -0
- teradataml/options/__init__.py +148 -0
- teradataml/options/configure.py +489 -0
- teradataml/options/display.py +187 -0
- teradataml/plot/__init__.py +3 -0
- teradataml/plot/axis.py +1427 -0
- teradataml/plot/constants.py +15 -0
- teradataml/plot/figure.py +431 -0
- teradataml/plot/plot.py +810 -0
- teradataml/plot/query_generator.py +83 -0
- teradataml/plot/subplot.py +216 -0
- teradataml/scriptmgmt/UserEnv.py +4273 -0
- teradataml/scriptmgmt/__init__.py +3 -0
- teradataml/scriptmgmt/lls_utils.py +2157 -0
- teradataml/sdk/README.md +79 -0
- teradataml/sdk/__init__.py +4 -0
- teradataml/sdk/_auth_modes.py +422 -0
- teradataml/sdk/_func_params.py +487 -0
- teradataml/sdk/_json_parser.py +453 -0
- teradataml/sdk/_openapi_spec_constants.py +249 -0
- teradataml/sdk/_utils.py +236 -0
- teradataml/sdk/api_client.py +900 -0
- teradataml/sdk/constants.py +62 -0
- teradataml/sdk/modelops/__init__.py +98 -0
- teradataml/sdk/modelops/_client.py +409 -0
- teradataml/sdk/modelops/_constants.py +304 -0
- teradataml/sdk/modelops/models.py +2308 -0
- teradataml/sdk/spinner.py +107 -0
- teradataml/series/__init__.py +0 -0
- teradataml/series/series.py +537 -0
- teradataml/series/series_utils.py +71 -0
- teradataml/store/__init__.py +12 -0
- teradataml/store/feature_store/__init__.py +0 -0
- teradataml/store/feature_store/constants.py +658 -0
- teradataml/store/feature_store/feature_store.py +4814 -0
- teradataml/store/feature_store/mind_map.py +639 -0
- teradataml/store/feature_store/models.py +7330 -0
- teradataml/store/feature_store/utils.py +390 -0
- teradataml/table_operators/Apply.py +979 -0
- teradataml/table_operators/Script.py +1739 -0
- teradataml/table_operators/TableOperator.py +1343 -0
- teradataml/table_operators/__init__.py +2 -0
- teradataml/table_operators/apply_query_generator.py +262 -0
- teradataml/table_operators/query_generator.py +493 -0
- teradataml/table_operators/table_operator_query_generator.py +462 -0
- teradataml/table_operators/table_operator_util.py +726 -0
- teradataml/table_operators/templates/dataframe_apply.template +184 -0
- teradataml/table_operators/templates/dataframe_map.template +176 -0
- teradataml/table_operators/templates/dataframe_register.template +73 -0
- teradataml/table_operators/templates/dataframe_udf.template +67 -0
- teradataml/table_operators/templates/script_executor.template +170 -0
- teradataml/telemetry_utils/__init__.py +0 -0
- teradataml/telemetry_utils/queryband.py +53 -0
- teradataml/utils/__init__.py +0 -0
- teradataml/utils/docstring.py +527 -0
- teradataml/utils/dtypes.py +943 -0
- teradataml/utils/internal_buffer.py +122 -0
- teradataml/utils/print_versions.py +206 -0
- teradataml/utils/utils.py +451 -0
- teradataml/utils/validators.py +3305 -0
- teradataml-20.0.0.8.dist-info/METADATA +2804 -0
- teradataml-20.0.0.8.dist-info/RECORD +1208 -0
- teradataml-20.0.0.8.dist-info/WHEEL +5 -0
- teradataml-20.0.0.8.dist-info/top_level.txt +1 -0
- teradataml-20.0.0.8.dist-info/zip-safe +1 -0
|
@@ -0,0 +1,1462 @@
|
|
|
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
|
+
import atexit
|
|
17
|
+
import ipaddress
|
|
18
|
+
import os
|
|
19
|
+
import socket
|
|
20
|
+
import sys
|
|
21
|
+
import threading
|
|
22
|
+
import warnings
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
from dotenv import dotenv_values
|
|
26
|
+
from sqlalchemy import create_engine
|
|
27
|
+
from sqlalchemy.engine.base import Engine
|
|
28
|
+
from sqlalchemy.engine.url import URL
|
|
29
|
+
|
|
30
|
+
from teradataml.common.constants import Query, SQLConstants, TeradataConstants
|
|
31
|
+
from teradataml.common.exceptions import TeradataMlException
|
|
32
|
+
from teradataml.common.garbagecollector import GarbageCollector
|
|
33
|
+
from teradataml.common.messagecodes import MessageCodes
|
|
34
|
+
from teradataml.common.messages import Messages
|
|
35
|
+
from teradataml.common.sqlbundle import SQLBundle
|
|
36
|
+
from teradataml.common.warnings import TeradataMlRuntimeWarning
|
|
37
|
+
from teradataml.context.aed_context import AEDContext
|
|
38
|
+
from teradataml.options.configure import configure
|
|
39
|
+
from teradataml.telemetry_utils.queryband import collect_queryband
|
|
40
|
+
from teradataml.utils.internal_buffer import _InternalBuffer
|
|
41
|
+
from teradataml.utils.utils import execute_sql
|
|
42
|
+
from teradataml.utils.validators import _Validators
|
|
43
|
+
|
|
44
|
+
# Store a global Teradata Vantage Connection.
|
|
45
|
+
# Right now user can only provide a single Vantage connection at any point of time.
|
|
46
|
+
td_connection = None
|
|
47
|
+
td_sqlalchemy_engine = None
|
|
48
|
+
temporary_database_name = None
|
|
49
|
+
user_specified_connection = False
|
|
50
|
+
python_packages_installed = False
|
|
51
|
+
python_version_vantage = None
|
|
52
|
+
python_version_local = None
|
|
53
|
+
td_user = None
|
|
54
|
+
|
|
55
|
+
function_alias_mappings = {}
|
|
56
|
+
|
|
57
|
+
# Current directory is context folder.
|
|
58
|
+
teradataml_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
59
|
+
config_folder = os.path.join(teradataml_folder, "config")
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _get_current_databasename():
|
|
63
|
+
"""
|
|
64
|
+
Returns the database name associated with the current context.
|
|
65
|
+
|
|
66
|
+
PARAMETERS:
|
|
67
|
+
None.
|
|
68
|
+
|
|
69
|
+
RETURNS:
|
|
70
|
+
Database name associated with the current context
|
|
71
|
+
|
|
72
|
+
RAISES:
|
|
73
|
+
TeradataMlException - If Vantage connection can't be established using the engine.
|
|
74
|
+
|
|
75
|
+
EXAMPLES:
|
|
76
|
+
_get_current_databasename()
|
|
77
|
+
"""
|
|
78
|
+
if configure._current_database_name:
|
|
79
|
+
return configure._current_database_name
|
|
80
|
+
else:
|
|
81
|
+
if get_connection() is not None:
|
|
82
|
+
select_user_query = ""
|
|
83
|
+
try:
|
|
84
|
+
sqlbundle = SQLBundle()
|
|
85
|
+
select_user_query = sqlbundle._get_sql_query(SQLConstants.SQL_SELECT_DATABASE)
|
|
86
|
+
result = execute_sql(select_user_query)
|
|
87
|
+
configure._current_database_name = result.fetchall()[0][0]
|
|
88
|
+
return configure._current_database_name
|
|
89
|
+
except TeradataMlException:
|
|
90
|
+
raise
|
|
91
|
+
except Exception as err:
|
|
92
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, select_user_query),
|
|
93
|
+
MessageCodes.TDMLDF_EXEC_SQL_FAILED) from err
|
|
94
|
+
else:
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _get_database_username():
|
|
99
|
+
"""
|
|
100
|
+
Function to get the database user name.
|
|
101
|
+
|
|
102
|
+
PARAMETERS:
|
|
103
|
+
None.
|
|
104
|
+
|
|
105
|
+
RETURNS:
|
|
106
|
+
Database user name.
|
|
107
|
+
|
|
108
|
+
RAISES:
|
|
109
|
+
TeradataMlException - If "select user" query fails.
|
|
110
|
+
|
|
111
|
+
EXAMPLES:
|
|
112
|
+
_get_database_username()
|
|
113
|
+
"""
|
|
114
|
+
if configure._database_username:
|
|
115
|
+
return configure._database_username
|
|
116
|
+
else:
|
|
117
|
+
if get_connection() is not None:
|
|
118
|
+
select_query = ""
|
|
119
|
+
try:
|
|
120
|
+
sqlbundle = SQLBundle()
|
|
121
|
+
select_query = sqlbundle._get_sql_query(SQLConstants.SQL_SELECT_USER)
|
|
122
|
+
result = execute_sql(select_query)
|
|
123
|
+
configure._database_username = result.fetchall()[0][0]
|
|
124
|
+
return configure._database_username
|
|
125
|
+
except TeradataMlException:
|
|
126
|
+
raise
|
|
127
|
+
except Exception as err:
|
|
128
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, select_query),
|
|
129
|
+
MessageCodes.TDMLDF_EXEC_SQL_FAILED) from err
|
|
130
|
+
else:
|
|
131
|
+
return None
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def __cleanup_garbage_collection():
|
|
135
|
+
"""initiate the garbage collection."""
|
|
136
|
+
GarbageCollector._empty_queryband()
|
|
137
|
+
GarbageCollector._cleanup_garbage_collector()
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def _get_other_connection_parameters(logmech=None, logdata=None, database=None, **kwargs):
|
|
141
|
+
"""
|
|
142
|
+
DESCRIPTION:
|
|
143
|
+
Internal function to return the connection parameters.
|
|
144
|
+
|
|
145
|
+
PARAMETERS:
|
|
146
|
+
logmech:
|
|
147
|
+
Optional Argument.
|
|
148
|
+
Specifies the logon mechanism - TD2, LDAP, TDNEGO, KRB5 or JWT, to establish the connection.
|
|
149
|
+
Types: str
|
|
150
|
+
|
|
151
|
+
logdata:
|
|
152
|
+
Optional Argument.
|
|
153
|
+
Specifies additional connection information needed for the given logon mechanism.
|
|
154
|
+
Types: str
|
|
155
|
+
|
|
156
|
+
database:
|
|
157
|
+
Optional Argument.
|
|
158
|
+
Specifies the initial database to use after logon, instead of the user's default database.
|
|
159
|
+
Types: str
|
|
160
|
+
|
|
161
|
+
kwargs:
|
|
162
|
+
Optional Argument.
|
|
163
|
+
Specifies the keyword value pairs of other connection parameters to create the connection string.
|
|
164
|
+
|
|
165
|
+
RETURNS:
|
|
166
|
+
dict, needed to generate engine URL.
|
|
167
|
+
|
|
168
|
+
EXAMPLES:
|
|
169
|
+
__get_other_connection_parameters(logmech = "JWT", logdata = "<jwt_token>", database = "<database_name>",
|
|
170
|
+
kwargs)
|
|
171
|
+
"""
|
|
172
|
+
# Return empty string if there are no additional connection parameters.
|
|
173
|
+
if not logmech and not logdata and not database and len(kwargs) == 0:
|
|
174
|
+
return ""
|
|
175
|
+
|
|
176
|
+
result = {}
|
|
177
|
+
|
|
178
|
+
if logmech:
|
|
179
|
+
result['LOGMECH'] = logmech.upper()
|
|
180
|
+
if logdata:
|
|
181
|
+
result['LOGDATA'] = logdata
|
|
182
|
+
if database:
|
|
183
|
+
result['DATABASE'] = database
|
|
184
|
+
|
|
185
|
+
# Create connection parameters string.
|
|
186
|
+
other_params = []
|
|
187
|
+
for key, val in kwargs.items():
|
|
188
|
+
if isinstance(val, str):
|
|
189
|
+
# Value of TMODE connection parameter should be upper case (as per driver specification) i.e., ansi -> ANSI.
|
|
190
|
+
# Converting all string values to upper case.
|
|
191
|
+
if key != "LOGDATA":
|
|
192
|
+
val = val.upper()
|
|
193
|
+
else:
|
|
194
|
+
# Other type values like integer, boolean etc, are converted to string.
|
|
195
|
+
# For boolean values, the connection string should contain lower case values i.e., True -> true
|
|
196
|
+
val = str(val).lower()
|
|
197
|
+
result[key] = val
|
|
198
|
+
|
|
199
|
+
return result
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
@collect_queryband(queryband='CrtCxt')
|
|
203
|
+
def create_context(host=None, username=None, password=None, tdsqlengine=None, temp_database_name=None,
|
|
204
|
+
logmech=None, logdata=None, database=None, **kwargs):
|
|
205
|
+
"""
|
|
206
|
+
DESCRIPTION:
|
|
207
|
+
Creates a connection to the Teradata Vantage using the teradatasql + teradatasqlalchemy DBAPI and dialect
|
|
208
|
+
combination.
|
|
209
|
+
Users can create a connection by passing the connection parameters using any one of the following methods:
|
|
210
|
+
1. Pass all required parameters (host, username, password) directly to the function.
|
|
211
|
+
2. Set the connection parameters in a configuration file (.cfg or .env) and
|
|
212
|
+
pass the configuration file.
|
|
213
|
+
3. Set the connection parameters in environment variables and create_context() reads from
|
|
214
|
+
environment variables.
|
|
215
|
+
|
|
216
|
+
Alternatively, users can pass a SQLAlchemy engine object to the `tdsqlengine` parameter to override the default DBAPI
|
|
217
|
+
and dialect combination.
|
|
218
|
+
|
|
219
|
+
Function also enables user to set the authentication token which is required to access services running
|
|
220
|
+
on Teradata Vantage.
|
|
221
|
+
|
|
222
|
+
Note:
|
|
223
|
+
1. teradataml requires that the user has certain permissions on the user's default database or the initial
|
|
224
|
+
default database specified using the database argument, or the temporary database when specified using
|
|
225
|
+
temp_database_name. These permissions allow the user to:
|
|
226
|
+
a. Create tables and views to save results of teradataml analytic functions.
|
|
227
|
+
b. Create views in the background for results of DataFrame APIs such as assign(),
|
|
228
|
+
filter(), etc., whenever the result for these APIs are accessed using a print().
|
|
229
|
+
c. Create view in the background on the query passed to the DataFrame.from_query() API.
|
|
230
|
+
|
|
231
|
+
It is expected that the user has the correct permissions to create these objects in the database that
|
|
232
|
+
will be used.
|
|
233
|
+
The access to the views created may also require issuing additional GRANT SELECT ... WITH GRANT OPTION
|
|
234
|
+
permission depending on which database is used and which object the view being created is based on.
|
|
235
|
+
|
|
236
|
+
2. The temp_database_name and database parameters play a crucial role in determining which database
|
|
237
|
+
is used by default to lookup for tables/views while creating teradataml DataFrame using 'DataFrame()'
|
|
238
|
+
and 'DataFrame.from_table()' and which database is used to create all internal temporary objects.
|
|
239
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
240
|
+
| Scenario | teradataml behaviour |
|
|
241
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
242
|
+
| Both temp_database_name and database are provided | Internal temporary objects are created in |
|
|
243
|
+
| | temp_database_name, and database table/view |
|
|
244
|
+
| | lookup is done from database. |
|
|
245
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
246
|
+
| database is provided but temp_database_name is not | Database table/view lookup and internal |
|
|
247
|
+
| | temporary objects are created in database. |
|
|
248
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
249
|
+
| temp_database_name is provided but database is not | Internal temporary objects are created in |
|
|
250
|
+
| | temp_database_name, database table/view |
|
|
251
|
+
| | lookup from the users default database. |
|
|
252
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
253
|
+
| Neither temp_database_name nor database are provided | Database table/view lookup and internal |
|
|
254
|
+
| | temporary objects are created in users |
|
|
255
|
+
| | default database. |
|
|
256
|
+
+------------------------------------------------------+---------------------------------------------+
|
|
257
|
+
|
|
258
|
+
3. The function prioritizes parameters in the following order:
|
|
259
|
+
1. Explicitly passed arguments (host, username, password).
|
|
260
|
+
2. Environment variables (TD_HOST, TD_USERNAME, TD_PASSWORD, etc.).
|
|
261
|
+
Note:
|
|
262
|
+
* The environment variables should start with 'TD_' and all must be in upper case.
|
|
263
|
+
Example:
|
|
264
|
+
os.environ['TD_HOST'] = 'tdhost'
|
|
265
|
+
os.environ['TD_USERNAME'] = 'tduser'
|
|
266
|
+
os.environ['TD_PASSWORD'] = 'tdpassword'
|
|
267
|
+
3. A configuration file if provided (such as a .env file).
|
|
268
|
+
|
|
269
|
+
4. Points to note when user sets authentication token with create_context():
|
|
270
|
+
* The username provided in create_context() is not case-sensitive. For example,
|
|
271
|
+
if a user is created with the username xyz, create_context() still establishes
|
|
272
|
+
a connection if user passes the username as XyZ. However, authentication token
|
|
273
|
+
generation requires the username to be in the same case as when it was created.
|
|
274
|
+
Therefore, Teradata recommends to pass the username with the same case as when
|
|
275
|
+
it was created.
|
|
276
|
+
* User must have a privilege to login with a NULL password to use set_auth_token().
|
|
277
|
+
Refer to GRANT LOGON section in Teradata Documentation for more details.
|
|
278
|
+
* When "auth_mech" is not specified, arguments are used in the following combination
|
|
279
|
+
to derive authentication mechanism.
|
|
280
|
+
* If "base_url" and "client_id" are specified then token generation is done through OAuth.
|
|
281
|
+
* If "base_url", "pat_token", "pem_file" are specified then token generation is done using PAT.
|
|
282
|
+
* If "base_url" and "auth_token" are specified then value provided for "auth_token" is used.
|
|
283
|
+
* If only "base_url" is specified then token generation is done through OAuth.
|
|
284
|
+
* If Basic authentication mechanism is to be used then user must specify argument
|
|
285
|
+
"auth_mech" as "BASIC" along with "username" and "password".
|
|
286
|
+
* Refresh token works only for OAuth authentication.
|
|
287
|
+
* Use the argument "kid" only when key used during the pem file generation is different
|
|
288
|
+
from pem file name. For example, if you use the key as 'key1' while generating pem file
|
|
289
|
+
and the name of the pem file is `key1(1).pem`, then pass value 'key1' to the argument "kid".
|
|
290
|
+
|
|
291
|
+
PARAMETERS:
|
|
292
|
+
host:
|
|
293
|
+
Optional Argument.
|
|
294
|
+
Specifies the fully qualified domain name or IP address of the Teradata System.
|
|
295
|
+
Types: str
|
|
296
|
+
|
|
297
|
+
username:
|
|
298
|
+
Optional Argument.
|
|
299
|
+
Specifies the username for logging onto the Teradata Vantage.
|
|
300
|
+
Types: str
|
|
301
|
+
|
|
302
|
+
password:
|
|
303
|
+
Optional Argument.
|
|
304
|
+
Specifies the password required for the "username".
|
|
305
|
+
Types: str
|
|
306
|
+
Note:
|
|
307
|
+
* Encrypted passwords can also be passed to this argument, using Stored Password Protection feature.
|
|
308
|
+
Examples section below demonstrates passing encrypted password to 'create_context'.
|
|
309
|
+
More details on Stored Password Protection and how to generate key and encrypted password file
|
|
310
|
+
can be found at https://pypi.org/project/teradatasql/#StoredPasswordProtection
|
|
311
|
+
* Special characters used in the password are encoded by default.
|
|
312
|
+
|
|
313
|
+
tdsqlengine:
|
|
314
|
+
Optional Argument.
|
|
315
|
+
Specifies Teradata Vantage sqlalchemy engine object that should be used to establish a Teradata Vantage
|
|
316
|
+
connection.
|
|
317
|
+
Types: str
|
|
318
|
+
|
|
319
|
+
temp_database_name:
|
|
320
|
+
Optional Argument.
|
|
321
|
+
Specifies the temporary database name where temporary tables, views will be created.
|
|
322
|
+
Types: str
|
|
323
|
+
|
|
324
|
+
logmech:
|
|
325
|
+
Optional Argument.
|
|
326
|
+
Specifies the type of logon mechanism to establish a connection to Teradata Vantage.
|
|
327
|
+
Permitted Values: As supported by the teradata driver.
|
|
328
|
+
Notes:
|
|
329
|
+
1. teradataml expects the client environments are already setup with appropriate
|
|
330
|
+
security mechanisms and are in working conditions.
|
|
331
|
+
2. User must have a valid ticket-granting ticket in order to use KRB5 (Kerberos) logon mechanism.
|
|
332
|
+
3. User must use logdata parameter when using 'JWT' as the logon mechanism.
|
|
333
|
+
4. Browser Authentication is supported for Windows and macOS.
|
|
334
|
+
For more information please refer Teradata Vantage™ - Advanced SQL Engine
|
|
335
|
+
Security Administration at https://www.info.teradata.com/
|
|
336
|
+
Types: str
|
|
337
|
+
|
|
338
|
+
logdata:
|
|
339
|
+
Optional Argument.
|
|
340
|
+
Specifies parameters to the LOGMECH command beyond those needed by the logon mechanism, such as
|
|
341
|
+
user ID, password and tokens (in case of JWT) to successfully authenticate the user.
|
|
342
|
+
Types: str
|
|
343
|
+
|
|
344
|
+
database:
|
|
345
|
+
Optional Argument.
|
|
346
|
+
Specifies the initial database to use after logon, instead of the user's default database.
|
|
347
|
+
Types: str
|
|
348
|
+
|
|
349
|
+
kwargs:
|
|
350
|
+
Specifies optional keyword arguments accepted by create_context().
|
|
351
|
+
Below are the supported keyword arguments:
|
|
352
|
+
|
|
353
|
+
Connection parameters for Teradata SQL Driver:
|
|
354
|
+
Specifies the keyword-value pairs of connection parameters that are passed to Teradata SQL Driver for
|
|
355
|
+
Python. Please refer to https://github.com/Teradata/python-driver#ConnectionParameters to get information
|
|
356
|
+
on connection parameters of the driver.
|
|
357
|
+
Note:
|
|
358
|
+
* When type of a connection parameter is integer or boolean (eg: log, lob_support etc,.), pass
|
|
359
|
+
integer or boolean value, instead of quoted integer or quoted boolean as suggested in the
|
|
360
|
+
documentation. Please check the examples for usage.
|
|
361
|
+
* "sql_timeout" represents "request_timeout" connection parameter.
|
|
362
|
+
|
|
363
|
+
config_file:
|
|
364
|
+
Specifies the name of the configuration file to read the connection parameters.
|
|
365
|
+
Notes:
|
|
366
|
+
* If user does not specify full path of file, then file look up is done at current working directory.
|
|
367
|
+
* The content of the file must be in '.env' format.
|
|
368
|
+
* Use parameters of create_context() as key in the configuration file.
|
|
369
|
+
Example:
|
|
370
|
+
host=tdhost
|
|
371
|
+
username=tduser
|
|
372
|
+
password=tdpassword
|
|
373
|
+
temp_database_name=tdtemp_database_name
|
|
374
|
+
logmech=tdlogmech
|
|
375
|
+
logdata=tdlogdata
|
|
376
|
+
database=tddatabase
|
|
377
|
+
* For more information please refer examples section.
|
|
378
|
+
Default Value : td_properties.cfg
|
|
379
|
+
Types: str
|
|
380
|
+
|
|
381
|
+
base_url:
|
|
382
|
+
Specifies the endpoint URL for a given environment on Teradata Vantage.
|
|
383
|
+
Types: str
|
|
384
|
+
|
|
385
|
+
client_id:
|
|
386
|
+
Specifies the id of the application that requests the access token from
|
|
387
|
+
VantageCloud Lake.
|
|
388
|
+
Types: str
|
|
389
|
+
|
|
390
|
+
pat_token:
|
|
391
|
+
Specifies the PAT token generated from VantageCloud Lake Console.
|
|
392
|
+
Types: str
|
|
393
|
+
|
|
394
|
+
pem_file:
|
|
395
|
+
Specifies the path to private key file which is generated from VantageCloud Lake Console.
|
|
396
|
+
Types: str
|
|
397
|
+
|
|
398
|
+
auth_token:
|
|
399
|
+
Specifies the authentication token required to access services running
|
|
400
|
+
on Teradata Vantage.
|
|
401
|
+
|
|
402
|
+
expiration_time:
|
|
403
|
+
Specifies the expiration time of the token in seconds. After expiry time JWT token expires and
|
|
404
|
+
UserEnv methods does not work, user should regenerate the token.
|
|
405
|
+
Note:
|
|
406
|
+
This option is used only for PAT and not for OAuth.
|
|
407
|
+
Default Value: 31536000
|
|
408
|
+
Types: int
|
|
409
|
+
|
|
410
|
+
kid:
|
|
411
|
+
Specifies the name of the key which is used while generating 'pem_file'.
|
|
412
|
+
Note:
|
|
413
|
+
* Use the argument "kid" only when key used during the pem file generation is different
|
|
414
|
+
from pem file name. For example, if you use the key as 'key1' while generating pem file
|
|
415
|
+
and the name of the pem file is `key1(1).pem`, then pass value 'key1' to the argument "kid".
|
|
416
|
+
Types: str
|
|
417
|
+
|
|
418
|
+
auth_url:
|
|
419
|
+
Optional Argument.
|
|
420
|
+
Specifies the endpoint URL for a keycloak server.
|
|
421
|
+
Types: str
|
|
422
|
+
|
|
423
|
+
rest_client:
|
|
424
|
+
Optional Argument.
|
|
425
|
+
Specifies the service for which keycloak token is to be generated.
|
|
426
|
+
Permitted values: "VECTORSTORE"
|
|
427
|
+
Default value: "VECTORSTORE"
|
|
428
|
+
Types: str
|
|
429
|
+
|
|
430
|
+
auth_mech:
|
|
431
|
+
Specifies the mechanism to be used for generating authentication token.
|
|
432
|
+
Notes:
|
|
433
|
+
* User must use this argument if Basic authentication is to be used.
|
|
434
|
+
* When "auth_mech" is provided, other arguments are used in the following
|
|
435
|
+
combination as per value of "auth_mech":
|
|
436
|
+
* OAuth: Token generation is done through OAuth by using client id
|
|
437
|
+
which can be sepcified by user in "client_id" argument or
|
|
438
|
+
can be derived internally from "base_url".
|
|
439
|
+
* PAT : Token generation is done using "pat_token" and "pem_file".
|
|
440
|
+
* BASIC: Authentication is done via Basic authentication mechanism
|
|
441
|
+
using user credentials passed in "username" and "password"
|
|
442
|
+
arguments.
|
|
443
|
+
* JWT : Readily available token in "auth_token" argument is used.
|
|
444
|
+
* KEYCLOAK: Token generation is done using keycloak.
|
|
445
|
+
Permitted Values: "OAuth", "PAT", "BASIC", "JWT", "KEYCLOAK".
|
|
446
|
+
Types: str
|
|
447
|
+
|
|
448
|
+
RETURNS:
|
|
449
|
+
A Teradata sqlalchemy engine object.
|
|
450
|
+
|
|
451
|
+
RAISES:
|
|
452
|
+
TeradataMlException
|
|
453
|
+
|
|
454
|
+
EXAMPLES:
|
|
455
|
+
>>> from teradataml.context.context import *
|
|
456
|
+
|
|
457
|
+
# Example 1: Create context using hostname, username and password
|
|
458
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword')
|
|
459
|
+
|
|
460
|
+
# Example 2: Create context using already created sqlalchemy engine
|
|
461
|
+
>>> from sqlalchemy import create_engine
|
|
462
|
+
>>> sqlalchemy_engine = create_engine('teradatasql://'+ tduser +':' + tdpassword + '@'+tdhost)
|
|
463
|
+
>>> td_context = create_context(tdsqlengine = sqlalchemy_engine)
|
|
464
|
+
|
|
465
|
+
# Example 3: Creating context for Vantage with default logmech 'TD2'
|
|
466
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', logmech = 'TD2')
|
|
467
|
+
|
|
468
|
+
# Example 4: Creating context for Vantage with logmech as 'TDNEGO'
|
|
469
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', logmech = 'TDNEGO')
|
|
470
|
+
|
|
471
|
+
# Example 5: Creating context for Vantage with logmech as 'LDAP'
|
|
472
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', logmech = 'LDAP')
|
|
473
|
+
|
|
474
|
+
# Example 6: Creating context for Vantage with logmech as 'KRB5'
|
|
475
|
+
>>> td_context = create_context(host = 'tdhost', logmech = 'KRB5')
|
|
476
|
+
|
|
477
|
+
# Example 7: Creating context for Vantage with logmech as 'JWT'
|
|
478
|
+
>>> td_context = create_context(host = 'tdhost', logmech = 'JWT', logdata = 'token=eyJpc...h8dA')
|
|
479
|
+
|
|
480
|
+
# Example 8: Create context using encrypted password and key passed to 'password' parameter.
|
|
481
|
+
# The password should be specified in the format mentioned below:
|
|
482
|
+
# ENCRYPTED_PASSWORD(file:<PasswordEncryptionKeyFileName>, file:<EncryptedPasswordFileName>)
|
|
483
|
+
# The PasswordEncryptionKeyFileName specifies the name of a file that contains the password encryption key
|
|
484
|
+
# and associated information.
|
|
485
|
+
# The EncryptedPasswordFileName specifies the name of a file that contains the encrypted password and
|
|
486
|
+
# associated information.
|
|
487
|
+
# Each filename must be preceded by the 'file:' prefix. The PasswordEncryptionKeyFileName must be separated
|
|
488
|
+
# from the EncryptedPasswordFileName by a single comma.
|
|
489
|
+
>>> encrypted_password = "ENCRYPTED_PASSWORD(file:PassKey.properties, file:EncPass.properties)"
|
|
490
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = encrypted_password)
|
|
491
|
+
|
|
492
|
+
# Example 9: Create context using encrypted password in LDAP logon mechanism.
|
|
493
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = encrypted_password,
|
|
494
|
+
... logmech = 'LDAP')
|
|
495
|
+
|
|
496
|
+
# Example 10: Create context using hostname, username, password and database parameters, and connect to a
|
|
497
|
+
# different initial database by setting the database parameter.
|
|
498
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', database =
|
|
499
|
+
... 'database_name')
|
|
500
|
+
|
|
501
|
+
# Example 11: Create context using already created sqlalchemy engine, and connect to a different initial
|
|
502
|
+
# database by setting the database parameter.
|
|
503
|
+
>>> from sqlalchemy import create_engine
|
|
504
|
+
>>> sqlalchemy_engine = create_engine('teradatasql://'+ tduser +':' + tdpassword + '@'+tdhost +
|
|
505
|
+
... '/?DATABASE=database_name')
|
|
506
|
+
>>> td_context = create_context(tdsqlengine = sqlalchemy_engine)
|
|
507
|
+
|
|
508
|
+
# Example 12: Create context for Vantage with logmech as 'LDAP', and connect to a different initial
|
|
509
|
+
# database by setting the database parameter.
|
|
510
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', logmech = 'LDAP',
|
|
511
|
+
... database = 'database_name')
|
|
512
|
+
|
|
513
|
+
# Example 13: Create context using 'tera' mode with log value set to 8 and lob_support disabled.
|
|
514
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', tmode = 'tera',
|
|
515
|
+
... log = 8, lob_support = False)
|
|
516
|
+
|
|
517
|
+
# Example 14: Create context from config file with name 'td_properties.cfg'
|
|
518
|
+
# available under current working directory.
|
|
519
|
+
# td_properties.cfg content:
|
|
520
|
+
# host=tdhost
|
|
521
|
+
# username=tduser
|
|
522
|
+
# password=tdpassword
|
|
523
|
+
# temp_database_name=tdtemp_database_name
|
|
524
|
+
# logmech=tdlogmech
|
|
525
|
+
# logdata=tdlogdata
|
|
526
|
+
# database=tddatabase
|
|
527
|
+
>>> td_context = create_context()
|
|
528
|
+
|
|
529
|
+
# Example 15: Create context using the file specified in user's home directory
|
|
530
|
+
# with name user_td_properties.cfg.
|
|
531
|
+
# user_td_properties.cfg content:
|
|
532
|
+
# host=tdhost
|
|
533
|
+
# username=tduser
|
|
534
|
+
# password=tdpassword
|
|
535
|
+
# temp_database_name=tdtemp_database_name
|
|
536
|
+
# logmech=tdlogmech
|
|
537
|
+
# logdata=tdlogdata
|
|
538
|
+
# database=tddatabase
|
|
539
|
+
>>> td_context = create_context(config_file = "user_td_properties.cfg")
|
|
540
|
+
|
|
541
|
+
# Example 16: Create context using environment variables.
|
|
542
|
+
# Set these using os.environ and then run the example:
|
|
543
|
+
# os.environ['TD_HOST'] = 'tdhost'
|
|
544
|
+
# os.environ['TD_USERNAME'] = 'tduser'
|
|
545
|
+
# os.environ['TD_PASSWORD'] = 'tdpassword'
|
|
546
|
+
# os.environ['TD_TEMP_DATABASE_NAME'] = 'tdtemp_database_name'
|
|
547
|
+
# os.environ['TD_LOGMECH'] = 'tdlogmech'
|
|
548
|
+
# os.environ['TD_LOGDATA'] = 'tdlogdata'
|
|
549
|
+
# os.environ['TD_DATABASE'] = 'tddatabase'
|
|
550
|
+
>>> td_context = create_context()
|
|
551
|
+
|
|
552
|
+
# Example 17: Create a context by providing username and password. Along with it,
|
|
553
|
+
# set authentication token by providing the pem file and pat token.
|
|
554
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword',
|
|
555
|
+
... base_url = 'base_url', pat_token = 'pat_token', pem_file = 'pem_file')
|
|
556
|
+
|
|
557
|
+
# Example 18: Create a context by providing username and password. Along with it,
|
|
558
|
+
# generate authentication token by providing the client id.
|
|
559
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword',
|
|
560
|
+
... base_url = 'base_url', client_id = 'client_id')
|
|
561
|
+
|
|
562
|
+
# Example 19: Create context and set authentication token by providing all the details in a config file.
|
|
563
|
+
# td_properties.cfg content:
|
|
564
|
+
# host=tdhost
|
|
565
|
+
# username=tduser
|
|
566
|
+
# password=tdpassword
|
|
567
|
+
# base_url=base_url
|
|
568
|
+
# pat_token=pat_token
|
|
569
|
+
# pem_file=pem_file
|
|
570
|
+
>>> td_context = create_context()
|
|
571
|
+
|
|
572
|
+
# Example 20: Create context and set authentication token by providing all the details in environment variables.
|
|
573
|
+
# Set these using os.environ and then run the example:
|
|
574
|
+
# os.environ['TD_HOST'] = 'tdhost'
|
|
575
|
+
# os.environ['TD_USERNAME'] = 'tduser'
|
|
576
|
+
# os.environ['TD_PASSWORD'] = 'tdpassword'
|
|
577
|
+
# os.environ['TD_BASE_URL'] = 'base_url'
|
|
578
|
+
# os.environ['TD_PAT_TOKEN'] = 'pat_token'
|
|
579
|
+
# os.environ['TD_PEM_FILE'] = 'pem_file'
|
|
580
|
+
>>> td_context = create_context()
|
|
581
|
+
|
|
582
|
+
# Example 21: Create context with sql_timeout set to 3.
|
|
583
|
+
>>> td_context = create_context(host = 'tdhost', username = 'tduser', password = 'tdpassword', sql_timeout = 3)
|
|
584
|
+
|
|
585
|
+
# Example 22: Create context and set authentication token via Basic authentication mechanism
|
|
586
|
+
# using username and password.
|
|
587
|
+
>>> import getpass
|
|
588
|
+
>>> create_context(host="host",
|
|
589
|
+
... username=getpass.getpass("username : "),
|
|
590
|
+
... password=getpass.getpass("password : "),
|
|
591
|
+
... base_url=getpass.getpass("base_url : "),
|
|
592
|
+
... auth_mech="BASIC")
|
|
593
|
+
|
|
594
|
+
# Example 23: Create context and set authentication token by providing auth_mech argument.
|
|
595
|
+
>>> import getpass
|
|
596
|
+
>>> create_context(host="vcl_host",
|
|
597
|
+
... username=getpass.getpass("username : "),
|
|
598
|
+
... password=getpass.getpass("password : "),
|
|
599
|
+
... base_url=getpass.getpass("base_url : "),
|
|
600
|
+
... auth_mech="OAuth")
|
|
601
|
+
|
|
602
|
+
# Example 24: Create context and set authentication token by providing auth_url and
|
|
603
|
+
# rest_client arguments.
|
|
604
|
+
>>> import getpass
|
|
605
|
+
>>> create_context(host="host",
|
|
606
|
+
... username=getpass.getpass("username : "),
|
|
607
|
+
... password=getpass.getpass("password : "),
|
|
608
|
+
... base_url=getpass.getpass("base_url : "),
|
|
609
|
+
... auth_url=getpass.getpass("auth_url : "),
|
|
610
|
+
... rest_client=getpass.getpass("rest_client : "))
|
|
611
|
+
"""
|
|
612
|
+
global td_connection
|
|
613
|
+
global td_sqlalchemy_engine
|
|
614
|
+
global temporary_database_name
|
|
615
|
+
global user_specified_connection
|
|
616
|
+
global python_packages_installed
|
|
617
|
+
global python_version_vantage
|
|
618
|
+
global python_version_local
|
|
619
|
+
global td_user
|
|
620
|
+
|
|
621
|
+
# Check if the user has provided the connection parameters or tdsqlengine.
|
|
622
|
+
# If not, check if the user has provided the connection parameters in the environment variables.
|
|
623
|
+
# If not, check if the user has provided the connection parameters in the config file.
|
|
624
|
+
if not (host or tdsqlengine) and host != "":
|
|
625
|
+
return _load_context_from_env_config(kwargs.pop('config_file', 'td_properties.cfg'))
|
|
626
|
+
|
|
627
|
+
awu_matrix = []
|
|
628
|
+
awu_matrix.append(["host", host, True, (str), True])
|
|
629
|
+
awu_matrix.append(["username", username, True, (str), True])
|
|
630
|
+
awu_matrix.append(["password", password, True, (str), True])
|
|
631
|
+
awu_matrix.append(["tdsqlengine", tdsqlengine, True, (Engine)])
|
|
632
|
+
awu_matrix.append(["logmech", logmech, True, (str), True])
|
|
633
|
+
awu_matrix.append(["logdata", logdata, True, (str), True])
|
|
634
|
+
awu_matrix.append(["database", database, True, (str), True])
|
|
635
|
+
# set_auth_token parameters
|
|
636
|
+
_set_auth_token_params = {}
|
|
637
|
+
auth_mech = kwargs.get('auth_mech', None)
|
|
638
|
+
for param in ['base_url', 'pat_token', 'pem_file', 'client_id', 'auth_token', 'expiration_time',
|
|
639
|
+
'kid', 'auth_mech', 'auth_url', 'rest_client']:
|
|
640
|
+
if param in kwargs:
|
|
641
|
+
_set_auth_token_params[param] = kwargs.pop(param)
|
|
642
|
+
|
|
643
|
+
# Set the "sql_timeout" parameter to "request_timeout" which is consumed by teradatasql.
|
|
644
|
+
if kwargs.get('sql_timeout'):
|
|
645
|
+
awu_matrix.append(["sql_timeout", kwargs.get('sql_timeout'), True, (int), True])
|
|
646
|
+
kwargs['request_timeout'] = kwargs.pop('sql_timeout')
|
|
647
|
+
|
|
648
|
+
awu = _Validators()
|
|
649
|
+
awu._validate_function_arguments(awu_matrix)
|
|
650
|
+
|
|
651
|
+
# Clearing the internal buffer.
|
|
652
|
+
_InternalBuffer.clean()
|
|
653
|
+
if logmech == "JWT" and not logdata:
|
|
654
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
|
|
655
|
+
'logdata',
|
|
656
|
+
'logmech=JWT'),
|
|
657
|
+
MessageCodes.DEPENDENT_ARG_MISSING)
|
|
658
|
+
|
|
659
|
+
# Setting the filter to raise warning every time.
|
|
660
|
+
warnings.simplefilter("always", TeradataMlRuntimeWarning)
|
|
661
|
+
# Throwing warning and removing context if any.
|
|
662
|
+
if td_connection is not None:
|
|
663
|
+
warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT), stacklevel=2)
|
|
664
|
+
remove_context()
|
|
665
|
+
|
|
666
|
+
# Check if teradata sqlalchemy engine is provided by the user
|
|
667
|
+
if tdsqlengine:
|
|
668
|
+
try:
|
|
669
|
+
td_connection = tdsqlengine.connect()
|
|
670
|
+
td_sqlalchemy_engine = tdsqlengine
|
|
671
|
+
user_specified_connection = True
|
|
672
|
+
except TeradataMlException:
|
|
673
|
+
raise
|
|
674
|
+
except Exception as err:
|
|
675
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
|
|
676
|
+
MessageCodes.CONNECTION_FAILURE) from err
|
|
677
|
+
# Check if host and username and password are provided
|
|
678
|
+
elif host:
|
|
679
|
+
username = '' if username is None else username
|
|
680
|
+
|
|
681
|
+
if logmech and logmech.upper() in ['JWT', 'BROWSER']:
|
|
682
|
+
host_value = host
|
|
683
|
+
elif logmech and logmech.upper() == 'KRB5':
|
|
684
|
+
host_value = '{}:@{}'.format(username, host)
|
|
685
|
+
else:
|
|
686
|
+
host_value = '{}:{}@{}'.format(username, password, host)
|
|
687
|
+
url_object = URL.create(
|
|
688
|
+
"teradatasql",
|
|
689
|
+
username=username,
|
|
690
|
+
password=password, # plain (unescaped) text
|
|
691
|
+
host=host,
|
|
692
|
+
query=_get_other_connection_parameters(logmech, logdata, database, **kwargs)
|
|
693
|
+
)
|
|
694
|
+
|
|
695
|
+
try:
|
|
696
|
+
td_sqlalchemy_engine = create_engine(url_object)
|
|
697
|
+
td_connection = td_sqlalchemy_engine.connect()
|
|
698
|
+
td_user = username.upper()
|
|
699
|
+
|
|
700
|
+
# Masking sensitive information - password, logmech and logdata.
|
|
701
|
+
if password:
|
|
702
|
+
try:
|
|
703
|
+
# Below statement raises an AttributeError with SQLAlchemy
|
|
704
|
+
# version 1.4.x
|
|
705
|
+
td_sqlalchemy_engine.url.password = "***"
|
|
706
|
+
except AttributeError:
|
|
707
|
+
# Masking the password should be different from above as SQLAlchemy
|
|
708
|
+
# converted _URL object to immutable object from version 1.4.x.
|
|
709
|
+
new_url = td_sqlalchemy_engine.url.set(password="***")
|
|
710
|
+
td_sqlalchemy_engine.url = new_url
|
|
711
|
+
except Exception:
|
|
712
|
+
pass
|
|
713
|
+
_mask_logmech_logdata()
|
|
714
|
+
|
|
715
|
+
user_specified_connection = False
|
|
716
|
+
|
|
717
|
+
except TeradataMlException:
|
|
718
|
+
raise
|
|
719
|
+
except Exception as err:
|
|
720
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
|
|
721
|
+
MessageCodes.CONNECTION_FAILURE) from err
|
|
722
|
+
|
|
723
|
+
python_packages_installed = False
|
|
724
|
+
python_version_vantage = None
|
|
725
|
+
python_version_local = sys.version.split(" ")[0].strip()
|
|
726
|
+
|
|
727
|
+
# Assign the tempdatabase name to global
|
|
728
|
+
if temp_database_name is None:
|
|
729
|
+
temporary_database_name = _get_current_databasename()
|
|
730
|
+
else:
|
|
731
|
+
temporary_database_name = temp_database_name
|
|
732
|
+
|
|
733
|
+
# Connection is established initiate the garbage collection
|
|
734
|
+
atexit.register(__cleanup_garbage_collection)
|
|
735
|
+
__cleanup_garbage_collection()
|
|
736
|
+
# Initialise Dag
|
|
737
|
+
__initalise_dag()
|
|
738
|
+
|
|
739
|
+
# Set database version.
|
|
740
|
+
_get_database_version()
|
|
741
|
+
# Set current database name.
|
|
742
|
+
_get_current_databasename()
|
|
743
|
+
# Set database user name.
|
|
744
|
+
_get_database_username()
|
|
745
|
+
|
|
746
|
+
# Process Analytic functions.
|
|
747
|
+
from teradataml.analytics import _process_analytic_functions
|
|
748
|
+
_process_analytic_functions()
|
|
749
|
+
|
|
750
|
+
if _set_auth_token_params.get('base_url'):
|
|
751
|
+
from teradataml.scriptmgmt.lls_utils import set_auth_token
|
|
752
|
+
try:
|
|
753
|
+
# password needs to be passed to set_auth_token only when any of the following is True:
|
|
754
|
+
# 1. auth_mech is set to either 'basic' or 'keycloak'
|
|
755
|
+
# 2. 'auth_url' argument is passed which represents 'keycloak' authentication mechanism.
|
|
756
|
+
if ((auth_mech and auth_mech.lower() in ['basic', 'keycloak']) or
|
|
757
|
+
_set_auth_token_params.get('auth_url'))\
|
|
758
|
+
and password:
|
|
759
|
+
_set_auth_token_params['password'] = password
|
|
760
|
+
set_auth_token(**_set_auth_token_params)
|
|
761
|
+
except Exception as err:
|
|
762
|
+
print("Connection to Vantage established successfully.")
|
|
763
|
+
mssg = f"Failed to set authentication token. Rerun \"set_auth_token()\" again to set the authentication token." \
|
|
764
|
+
f" Reason for failure: {err.args[0]}"
|
|
765
|
+
warnings.warn(mssg, stacklevel=2)
|
|
766
|
+
|
|
767
|
+
# Add global lock to internal buffer
|
|
768
|
+
_InternalBuffer.add(global_lock=threading.Lock())
|
|
769
|
+
|
|
770
|
+
# Set _check_py_version to True to check the python version between local and Vantage.
|
|
771
|
+
_InternalBuffer.add(_check_py_version=True)
|
|
772
|
+
|
|
773
|
+
# Return the connection by default
|
|
774
|
+
return td_sqlalchemy_engine
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
def _load_context_from_env_config(config_file=None):
|
|
778
|
+
"""
|
|
779
|
+
DESCRIPTION:
|
|
780
|
+
Reads the connection parameters from the configuration file or environment variables.
|
|
781
|
+
|
|
782
|
+
PARAMETERS:
|
|
783
|
+
config_file:
|
|
784
|
+
Optional Argument.
|
|
785
|
+
Specifies the name of the configuration file to read the connection parameters.
|
|
786
|
+
Types: str
|
|
787
|
+
|
|
788
|
+
RETURNS:
|
|
789
|
+
A Teradata sqlalchemy engine object.
|
|
790
|
+
|
|
791
|
+
RAISES:
|
|
792
|
+
TeradataMlException
|
|
793
|
+
"""
|
|
794
|
+
host = os.environ.get('TD_HOST')
|
|
795
|
+
if host:
|
|
796
|
+
connection_params_from_env = {key[3:].lower(): value for key, value in os.environ.items()
|
|
797
|
+
if key.startswith('TD_')}
|
|
798
|
+
return create_context(**connection_params_from_env)
|
|
799
|
+
elif config_file is not None:
|
|
800
|
+
connection_params_from_file = dotenv_values(config_file)
|
|
801
|
+
if connection_params_from_file.get('host'):
|
|
802
|
+
return create_context(**connection_params_from_file)
|
|
803
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_PARAMS),
|
|
804
|
+
MessageCodes.MISSING_ARGS)
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
def _mask_logmech_logdata():
|
|
808
|
+
"""
|
|
809
|
+
Masks sensitive connection information LOGMECH, LOGDATA exposed by sqlalchemy engine object
|
|
810
|
+
"""
|
|
811
|
+
global td_sqlalchemy_engine
|
|
812
|
+
try:
|
|
813
|
+
# Below statement raises a TypeError with SQLAlchemy version 1.4.x
|
|
814
|
+
if ('LOGMECH' in td_sqlalchemy_engine.url.query):
|
|
815
|
+
td_sqlalchemy_engine.url.query['LOGMECH'] = "***"
|
|
816
|
+
if ('LOGDATA' in td_sqlalchemy_engine.url.query):
|
|
817
|
+
td_sqlalchemy_engine.url.query['LOGDATA'] = "***"
|
|
818
|
+
except TypeError:
|
|
819
|
+
# Masking the password should be different from above as SQLAlchemy
|
|
820
|
+
# converted _URL object to immutable object from version 1.4.x.
|
|
821
|
+
new_url = td_sqlalchemy_engine.url.update_query_dict({"LOGMECH": "***", "LOGDATA": "***"})
|
|
822
|
+
td_sqlalchemy_engine.url = new_url
|
|
823
|
+
except Exception:
|
|
824
|
+
pass
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
def get_context():
|
|
828
|
+
"""
|
|
829
|
+
DESCRIPTION:
|
|
830
|
+
Returns the Teradata Vantage connection associated with the current context.
|
|
831
|
+
|
|
832
|
+
PARAMETERS:
|
|
833
|
+
None
|
|
834
|
+
|
|
835
|
+
RETURNS:
|
|
836
|
+
A Teradata sqlalchemy engine object.
|
|
837
|
+
|
|
838
|
+
RAISES:
|
|
839
|
+
None.
|
|
840
|
+
|
|
841
|
+
EXAMPLES:
|
|
842
|
+
td_sqlalchemy_engine = get_context()
|
|
843
|
+
|
|
844
|
+
"""
|
|
845
|
+
global td_sqlalchemy_engine
|
|
846
|
+
return td_sqlalchemy_engine
|
|
847
|
+
|
|
848
|
+
|
|
849
|
+
def get_connection():
|
|
850
|
+
"""
|
|
851
|
+
DESCRIPTION:
|
|
852
|
+
Returns the Teradata Vantage connection associated with the current context.
|
|
853
|
+
|
|
854
|
+
PARAMETERS:
|
|
855
|
+
None
|
|
856
|
+
|
|
857
|
+
RETURNS:
|
|
858
|
+
A Teradata dbapi connection object.
|
|
859
|
+
|
|
860
|
+
RAISES:
|
|
861
|
+
None.
|
|
862
|
+
|
|
863
|
+
EXAMPLES:
|
|
864
|
+
tdconnection = get_connection()
|
|
865
|
+
|
|
866
|
+
"""
|
|
867
|
+
global td_connection
|
|
868
|
+
return td_connection
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
@collect_queryband(queryband='SetCxt')
|
|
872
|
+
def set_context(tdsqlengine, temp_database_name=None):
|
|
873
|
+
"""
|
|
874
|
+
DESCRIPTION:
|
|
875
|
+
Specifies a Teradata Vantage sqlalchemy engine as current context.
|
|
876
|
+
|
|
877
|
+
PARAMETERS:
|
|
878
|
+
tdsqlengine:
|
|
879
|
+
Required Argument.
|
|
880
|
+
Specifies Teradata Vantage sqlalchemy engine object that should be used to establish a Teradata Vantage
|
|
881
|
+
connection.
|
|
882
|
+
Types: str
|
|
883
|
+
|
|
884
|
+
temp_database_name:
|
|
885
|
+
Optional Argument.
|
|
886
|
+
Specifies the temporary database name where temporary tables, views will be created.
|
|
887
|
+
Types: str
|
|
888
|
+
|
|
889
|
+
RETURNS:
|
|
890
|
+
A Teradata Vantage connection object.
|
|
891
|
+
|
|
892
|
+
RAISES:
|
|
893
|
+
TeradataMlException
|
|
894
|
+
|
|
895
|
+
EXAMPLES:
|
|
896
|
+
set_context(tdsqlengine = td_sqlalchemy_engine)
|
|
897
|
+
|
|
898
|
+
"""
|
|
899
|
+
global td_connection
|
|
900
|
+
global td_sqlalchemy_engine
|
|
901
|
+
global temporary_database_name
|
|
902
|
+
global user_specified_connection
|
|
903
|
+
global python_packages_installed
|
|
904
|
+
global python_version_local
|
|
905
|
+
global python_version_vantage
|
|
906
|
+
if td_connection is not None:
|
|
907
|
+
# Clearing the internal buffer.
|
|
908
|
+
_InternalBuffer.clean()
|
|
909
|
+
warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT), stacklevel=2)
|
|
910
|
+
remove_context()
|
|
911
|
+
|
|
912
|
+
if tdsqlengine:
|
|
913
|
+
try:
|
|
914
|
+
td_connection = tdsqlengine.connect()
|
|
915
|
+
td_sqlalchemy_engine = tdsqlengine
|
|
916
|
+
# Assign the tempdatabase name to global
|
|
917
|
+
if temp_database_name is None:
|
|
918
|
+
temporary_database_name = _get_current_databasename()
|
|
919
|
+
else:
|
|
920
|
+
temporary_database_name = temp_database_name
|
|
921
|
+
|
|
922
|
+
user_specified_connection = True
|
|
923
|
+
except TeradataMlException:
|
|
924
|
+
raise
|
|
925
|
+
except Exception as err:
|
|
926
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
|
|
927
|
+
MessageCodes.CONNECTION_FAILURE) from err
|
|
928
|
+
else:
|
|
929
|
+
return None
|
|
930
|
+
|
|
931
|
+
python_packages_installed = False
|
|
932
|
+
python_version_vantage = None
|
|
933
|
+
python_version_local = sys.version.split(" ")[0].strip()
|
|
934
|
+
|
|
935
|
+
# Initialise Dag
|
|
936
|
+
__initalise_dag()
|
|
937
|
+
|
|
938
|
+
# Add global lock to internal buffer
|
|
939
|
+
_InternalBuffer.add(global_lock=threading.Lock())
|
|
940
|
+
|
|
941
|
+
# Set _check_py_version to True to check the python version between local and Vantage.
|
|
942
|
+
_InternalBuffer.add(_check_py_version=True)
|
|
943
|
+
|
|
944
|
+
return td_connection
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
@collect_queryband(queryband='RmCxt')
|
|
948
|
+
def remove_context():
|
|
949
|
+
"""
|
|
950
|
+
DESCRIPTION:
|
|
951
|
+
Removes the current context associated with the Teradata Vantage connection.
|
|
952
|
+
|
|
953
|
+
PARAMETERS:
|
|
954
|
+
None.
|
|
955
|
+
|
|
956
|
+
RETURNS:
|
|
957
|
+
None.
|
|
958
|
+
|
|
959
|
+
RAISES:
|
|
960
|
+
None.
|
|
961
|
+
|
|
962
|
+
EXAMPLES:
|
|
963
|
+
remove_context()
|
|
964
|
+
|
|
965
|
+
"""
|
|
966
|
+
global td_connection
|
|
967
|
+
global td_sqlalchemy_engine
|
|
968
|
+
global user_specified_connection
|
|
969
|
+
global python_packages_installed
|
|
970
|
+
global python_version_vantage
|
|
971
|
+
global python_version_local
|
|
972
|
+
global td_user
|
|
973
|
+
|
|
974
|
+
# Initiate the garbage collection
|
|
975
|
+
__cleanup_garbage_collection()
|
|
976
|
+
|
|
977
|
+
# Clearing the internal buffer.
|
|
978
|
+
_InternalBuffer.clean()
|
|
979
|
+
|
|
980
|
+
# Check if connection is established or not.
|
|
981
|
+
if user_specified_connection is not True:
|
|
982
|
+
try:
|
|
983
|
+
# Close the connection if not user specified connection.
|
|
984
|
+
td_connection.close()
|
|
985
|
+
td_sqlalchemy_engine.engine.dispose()
|
|
986
|
+
except TeradataMlException:
|
|
987
|
+
raise
|
|
988
|
+
except Exception as err:
|
|
989
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.DISCONNECT_FAILURE),
|
|
990
|
+
MessageCodes.DISCONNECT_FAILURE) from err
|
|
991
|
+
td_connection = None
|
|
992
|
+
td_sqlalchemy_engine = None
|
|
993
|
+
python_packages_installed = False
|
|
994
|
+
python_version_local = None
|
|
995
|
+
python_version_vantage = None
|
|
996
|
+
td_user = None
|
|
997
|
+
configure._current_database_name = None
|
|
998
|
+
configure._database_username = None
|
|
999
|
+
configure.database_version = None
|
|
1000
|
+
configure.indb_install_location = ''
|
|
1001
|
+
|
|
1002
|
+
# Closing Dag
|
|
1003
|
+
__close_dag()
|
|
1004
|
+
return True
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
def _get_context_temp_databasename(table_type=TeradataConstants.TERADATA_VIEW):
|
|
1008
|
+
"""
|
|
1009
|
+
Returns the temporary database name associated with the current context.
|
|
1010
|
+
|
|
1011
|
+
PARAMETERS:
|
|
1012
|
+
table_type:
|
|
1013
|
+
Optional Argument.
|
|
1014
|
+
Specifies the type of object - table or view.
|
|
1015
|
+
Default value: TeradataConstants.TERADATA_VIEW
|
|
1016
|
+
Types: TeradataConstant
|
|
1017
|
+
|
|
1018
|
+
RETURNS:
|
|
1019
|
+
Database name associated with the current context
|
|
1020
|
+
|
|
1021
|
+
RAISES:
|
|
1022
|
+
None.
|
|
1023
|
+
|
|
1024
|
+
EXAMPLES:
|
|
1025
|
+
_get_context_temp_databasename()
|
|
1026
|
+
_get_context_temp_databasename(table_type=TeradataConstants.TERADATA_TABLE)
|
|
1027
|
+
"""
|
|
1028
|
+
global temporary_database_name
|
|
1029
|
+
if table_type == TeradataConstants.TERADATA_TABLE and \
|
|
1030
|
+
configure.temp_table_database is not None:
|
|
1031
|
+
return configure.temp_table_database
|
|
1032
|
+
if table_type == TeradataConstants.TERADATA_VIEW and \
|
|
1033
|
+
configure.temp_view_database is not None:
|
|
1034
|
+
return configure.temp_view_database
|
|
1035
|
+
# ELE-6710 - Use database user associated with the current context for volatile tables.
|
|
1036
|
+
if table_type == TeradataConstants.TERADATA_VOLATILE_TABLE:
|
|
1037
|
+
return _get_user()
|
|
1038
|
+
return temporary_database_name
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
def __initalise_dag():
|
|
1042
|
+
"""
|
|
1043
|
+
Intialises the Dag
|
|
1044
|
+
|
|
1045
|
+
PARAMETERS:
|
|
1046
|
+
None.
|
|
1047
|
+
|
|
1048
|
+
RETURNS:
|
|
1049
|
+
None
|
|
1050
|
+
|
|
1051
|
+
RAISES:
|
|
1052
|
+
None.
|
|
1053
|
+
|
|
1054
|
+
EXAMPLES:
|
|
1055
|
+
__initalise_dag()
|
|
1056
|
+
"""
|
|
1057
|
+
aed_context = AEDContext()
|
|
1058
|
+
# Closing the Dag if previous instance is still exists.
|
|
1059
|
+
__close_dag()
|
|
1060
|
+
# TODO: Need to add logLevel and log_file functionlaity once AED is implemented these functionalities
|
|
1061
|
+
aed_context._init_dag(_get_database_username(), _get_context_temp_databasename(),
|
|
1062
|
+
log_level=4, log_file="")
|
|
1063
|
+
|
|
1064
|
+
|
|
1065
|
+
def __close_dag():
|
|
1066
|
+
"""
|
|
1067
|
+
Closes the Dag
|
|
1068
|
+
|
|
1069
|
+
PARAMETERS:
|
|
1070
|
+
None.
|
|
1071
|
+
|
|
1072
|
+
RETURNS:
|
|
1073
|
+
None
|
|
1074
|
+
|
|
1075
|
+
RAISES:
|
|
1076
|
+
None.
|
|
1077
|
+
|
|
1078
|
+
EXAMPLES:
|
|
1079
|
+
__close_dag()
|
|
1080
|
+
"""
|
|
1081
|
+
try:
|
|
1082
|
+
AEDContext()._close_dag()
|
|
1083
|
+
# Ignore if any exception occurs.
|
|
1084
|
+
except TeradataMlException:
|
|
1085
|
+
pass
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
def _load_function_aliases():
|
|
1089
|
+
"""
|
|
1090
|
+
Function to load function aliases for analytical functions
|
|
1091
|
+
based on the vantage version from configuration file.
|
|
1092
|
+
|
|
1093
|
+
PARAMETERS:
|
|
1094
|
+
None
|
|
1095
|
+
|
|
1096
|
+
RETURNS:
|
|
1097
|
+
None
|
|
1098
|
+
|
|
1099
|
+
RAISES:
|
|
1100
|
+
TeradataMLException
|
|
1101
|
+
|
|
1102
|
+
EXAMPLES:
|
|
1103
|
+
_load_function_aliases()
|
|
1104
|
+
"""
|
|
1105
|
+
|
|
1106
|
+
global function_alias_mappings
|
|
1107
|
+
function_alias_mappings = {}
|
|
1108
|
+
|
|
1109
|
+
supported_engines = TeradataConstants.SUPPORTED_ENGINES.value
|
|
1110
|
+
vantage_versions = TeradataConstants.SUPPORTED_VANTAGE_VERSIONS.value
|
|
1111
|
+
|
|
1112
|
+
__set_vantage_version()
|
|
1113
|
+
|
|
1114
|
+
for vv in vantage_versions.keys():
|
|
1115
|
+
function_alias_mappings_by_engine = {}
|
|
1116
|
+
for engine in supported_engines.keys():
|
|
1117
|
+
alias_config_file = os.path.join(config_folder,
|
|
1118
|
+
"{}_{}".format(supported_engines[engine]["file"], vantage_versions[vv]))
|
|
1119
|
+
engine_name = supported_engines[engine]['name']
|
|
1120
|
+
ContextUtilFuncs._check_alias_config_file_exists(vv, alias_config_file)
|
|
1121
|
+
function_alias_mappings_by_engine[engine_name] = \
|
|
1122
|
+
ContextUtilFuncs._get_function_mappings_from_config_file(alias_config_file)
|
|
1123
|
+
function_alias_mappings[vv] = function_alias_mappings_by_engine
|
|
1124
|
+
|
|
1125
|
+
|
|
1126
|
+
def _get_vantage_version():
|
|
1127
|
+
"""
|
|
1128
|
+
Function to determine the underlying Vantage version.
|
|
1129
|
+
|
|
1130
|
+
PARAMETERS:
|
|
1131
|
+
None
|
|
1132
|
+
|
|
1133
|
+
RETURNS:
|
|
1134
|
+
A string specifying the Vantage version, else None when not able to determine it.
|
|
1135
|
+
|
|
1136
|
+
RAISES:
|
|
1137
|
+
Warning
|
|
1138
|
+
|
|
1139
|
+
EXAMPLES:
|
|
1140
|
+
_get_vantage_version()
|
|
1141
|
+
"""
|
|
1142
|
+
if td_connection.dialect.has_table(td_connection, "versionInfo", schema="pm",
|
|
1143
|
+
table_only=True):
|
|
1144
|
+
|
|
1145
|
+
# BTEQ -- Enter your SQL request or BTEQ command:
|
|
1146
|
+
# select * from pm.versionInfo;
|
|
1147
|
+
#
|
|
1148
|
+
# select * from pm.versionInfo;
|
|
1149
|
+
#
|
|
1150
|
+
# *** Query completed. 2 rows found. 2 columns returned.
|
|
1151
|
+
# *** Total elapsed time was 1 second.
|
|
1152
|
+
#
|
|
1153
|
+
# InfoKey InfoData
|
|
1154
|
+
# ------------------------------ --------------------------------------------
|
|
1155
|
+
# BUILD_VERSION 08.10.00.00-e84ce5f7
|
|
1156
|
+
# RELEASE Vantage 1.1 GA
|
|
1157
|
+
|
|
1158
|
+
try:
|
|
1159
|
+
vantage_ver_qry = "select InfoData from pm.versionInfo where InfoKey = 'RELEASE' (NOT CASESPECIFIC)"
|
|
1160
|
+
res = execute_sql(vantage_ver_qry)
|
|
1161
|
+
return res.fetchall()[0][0]
|
|
1162
|
+
except:
|
|
1163
|
+
return None
|
|
1164
|
+
else:
|
|
1165
|
+
# If "pm.versionInfo" does not exist, then vantage version is 1.0
|
|
1166
|
+
return "vantage1.1"
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
def _get_database_version():
|
|
1170
|
+
"""
|
|
1171
|
+
DESCRIPTION:
|
|
1172
|
+
An internal function to determine the underlying Vantage Database version.
|
|
1173
|
+
|
|
1174
|
+
PARAMETERS:
|
|
1175
|
+
None
|
|
1176
|
+
|
|
1177
|
+
RETURNS:
|
|
1178
|
+
A string specifying the Vantage Database version, else None when not able to determine it.
|
|
1179
|
+
|
|
1180
|
+
RAISES:
|
|
1181
|
+
None
|
|
1182
|
+
|
|
1183
|
+
EXAMPLES:
|
|
1184
|
+
_get_database_version()
|
|
1185
|
+
"""
|
|
1186
|
+
|
|
1187
|
+
# BTEQ -- Enter your SQL request or BTEQ command:
|
|
1188
|
+
# select * from DBC.DBCInfoV;
|
|
1189
|
+
# *** Query completed. 3 rows found. 2 columns returned.
|
|
1190
|
+
# *** Total elapsed time was 1 second.
|
|
1191
|
+
#
|
|
1192
|
+
# InfoKey InfoData
|
|
1193
|
+
# ------------------------------ --------------------------------------------
|
|
1194
|
+
# VERSION 17.05a.00.147
|
|
1195
|
+
# LANGUAGE SUPPORT MODE Standard
|
|
1196
|
+
# RELEASE 17.05a.00.147
|
|
1197
|
+
|
|
1198
|
+
try:
|
|
1199
|
+
if configure.database_version is None:
|
|
1200
|
+
configure.database_version = execute_sql(Query.VANTAGE_VERSION.value).fetchall()[0][0]
|
|
1201
|
+
return configure.database_version
|
|
1202
|
+
except:
|
|
1203
|
+
return None
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
def __set_vantage_version():
|
|
1207
|
+
"""
|
|
1208
|
+
Function to set the configuration option vantage_version.
|
|
1209
|
+
|
|
1210
|
+
PARAMETERS:
|
|
1211
|
+
None
|
|
1212
|
+
|
|
1213
|
+
RETURNS:
|
|
1214
|
+
None
|
|
1215
|
+
|
|
1216
|
+
RAISES:
|
|
1217
|
+
TeradataMLException
|
|
1218
|
+
|
|
1219
|
+
EXAMPLES:
|
|
1220
|
+
__set_vantage_version()
|
|
1221
|
+
"""
|
|
1222
|
+
vantage_version = _get_vantage_version()
|
|
1223
|
+
if vantage_version is None:
|
|
1224
|
+
# Raise warning here.
|
|
1225
|
+
warnings.warn(Messages.get_message(
|
|
1226
|
+
MessageCodes.UNABLE_TO_GET_VANTAGE_VERSION).format("vantage_version", configure.vantage_version))
|
|
1227
|
+
elif "vantage1.1" in vantage_version.lower().replace(" ", ""):
|
|
1228
|
+
configure.vantage_version = "vantage1.1"
|
|
1229
|
+
elif "mlengine9.0" in vantage_version.lower().replace(" ", ""):
|
|
1230
|
+
configure.vantage_version = "vantage1.3"
|
|
1231
|
+
elif "mlengine08.10" in vantage_version.lower().replace(" ", ""):
|
|
1232
|
+
configure.vantage_version = "vantage2.0"
|
|
1233
|
+
else:
|
|
1234
|
+
# If "pm.versionInfo" does not exist, then vantage version is 1.0
|
|
1235
|
+
configure.vantage_version = "vantage1.0"
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
def _get_function_mappings():
|
|
1239
|
+
"""
|
|
1240
|
+
Function to return function aliases for analytical functions.
|
|
1241
|
+
|
|
1242
|
+
PARAMETERS:
|
|
1243
|
+
None
|
|
1244
|
+
|
|
1245
|
+
RETURNS:
|
|
1246
|
+
Dict of function aliases of the format
|
|
1247
|
+
{'mle' : {'func_name': "alias_name", ...},
|
|
1248
|
+
'sqle' : {'func_name': "alias_name", ...}
|
|
1249
|
+
......
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
RAISES:
|
|
1253
|
+
None
|
|
1254
|
+
|
|
1255
|
+
EXAMPLES:
|
|
1256
|
+
get_function_aliases()
|
|
1257
|
+
"""
|
|
1258
|
+
global function_alias_mappings
|
|
1259
|
+
return function_alias_mappings
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
def _get_user():
|
|
1263
|
+
"""
|
|
1264
|
+
DESCRIPTION:
|
|
1265
|
+
An internal function to get the database username associated with the current context.
|
|
1266
|
+
|
|
1267
|
+
PARAMETERS:
|
|
1268
|
+
None.
|
|
1269
|
+
|
|
1270
|
+
RETURNS:
|
|
1271
|
+
Database username associated with the current context.
|
|
1272
|
+
|
|
1273
|
+
RAISES:
|
|
1274
|
+
TeradataMlException
|
|
1275
|
+
|
|
1276
|
+
EXAMPLES:
|
|
1277
|
+
_get_user()
|
|
1278
|
+
"""
|
|
1279
|
+
global td_user
|
|
1280
|
+
if not td_user:
|
|
1281
|
+
td_user = _get_database_username()
|
|
1282
|
+
return td_user
|
|
1283
|
+
|
|
1284
|
+
|
|
1285
|
+
def _get_host():
|
|
1286
|
+
"""
|
|
1287
|
+
DESCRIPTION:
|
|
1288
|
+
An internal function to get the host associated with the current context.
|
|
1289
|
+
|
|
1290
|
+
PARAMETERS:
|
|
1291
|
+
None.
|
|
1292
|
+
|
|
1293
|
+
RETURNS:
|
|
1294
|
+
Host associated with the current context.
|
|
1295
|
+
|
|
1296
|
+
RAISES:
|
|
1297
|
+
None.
|
|
1298
|
+
|
|
1299
|
+
EXAMPLES:
|
|
1300
|
+
_get_host()
|
|
1301
|
+
"""
|
|
1302
|
+
if td_connection is None:
|
|
1303
|
+
return None
|
|
1304
|
+
else:
|
|
1305
|
+
return td_sqlalchemy_engine.url.host
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
def _get_host_ip():
|
|
1309
|
+
"""
|
|
1310
|
+
DESCRIPTION:
|
|
1311
|
+
Function to return the host IP address or host name associated with the current context.
|
|
1312
|
+
|
|
1313
|
+
PARAMETERS:
|
|
1314
|
+
None.
|
|
1315
|
+
|
|
1316
|
+
RETURNS:
|
|
1317
|
+
Host IP address or host name associated with the current context.
|
|
1318
|
+
|
|
1319
|
+
RAISES:
|
|
1320
|
+
None.
|
|
1321
|
+
|
|
1322
|
+
EXAMPLES:
|
|
1323
|
+
GarbageCollector._get_host_ip()
|
|
1324
|
+
"""
|
|
1325
|
+
# Return None if connection is not established.
|
|
1326
|
+
if td_connection is None:
|
|
1327
|
+
return None
|
|
1328
|
+
|
|
1329
|
+
host = _get_host()
|
|
1330
|
+
try:
|
|
1331
|
+
# Validate if host_ip is a valid IP address (IPv4 or IPv6)
|
|
1332
|
+
ipaddress.ip_address(host)
|
|
1333
|
+
return host
|
|
1334
|
+
except ValueError:
|
|
1335
|
+
# If host is not an IP address, get the IP address by DNS name from _InternalBuffer.
|
|
1336
|
+
dns_host_ip = _InternalBuffer.get('dns_host_ip')
|
|
1337
|
+
if dns_host_ip:
|
|
1338
|
+
return dns_host_ip
|
|
1339
|
+
|
|
1340
|
+
# If DNS host ip not found, resolve the host name to get the IP address.
|
|
1341
|
+
# If there is issue in resolving the host name, it will proceed with DNS host as it is.
|
|
1342
|
+
try:
|
|
1343
|
+
# Get the list of addresses(compatible for both IPv4 and IPv6)
|
|
1344
|
+
addr_info = socket.getaddrinfo(host, None)
|
|
1345
|
+
# Pick the first address from the list
|
|
1346
|
+
host_ip = addr_info[0][4][0]
|
|
1347
|
+
# Add the DNS host IP to the _InternalBuffer.
|
|
1348
|
+
_InternalBuffer.add(dns_host_ip=host_ip)
|
|
1349
|
+
except socket.gaierror:
|
|
1350
|
+
# Use dns host as it is
|
|
1351
|
+
host_ip = host
|
|
1352
|
+
return host_ip
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
class ContextUtilFuncs():
|
|
1356
|
+
@staticmethod
|
|
1357
|
+
def _check_alias_config_file_exists(vantage_version, alias_config_file):
|
|
1358
|
+
"""
|
|
1359
|
+
Function to validate whether alias_config_file exists for the current vantage version.
|
|
1360
|
+
|
|
1361
|
+
PARAMETERS:
|
|
1362
|
+
vantage_version:
|
|
1363
|
+
Required Argument.
|
|
1364
|
+
Specifies the current vantage version.
|
|
1365
|
+
|
|
1366
|
+
alias_config_file:
|
|
1367
|
+
Required Argument.
|
|
1368
|
+
Specifies the location of configuration file to be read.
|
|
1369
|
+
|
|
1370
|
+
RETURNS:
|
|
1371
|
+
True, if the file 'alias_config_file' is present in the
|
|
1372
|
+
teradataml/config directory for the current vantage version.
|
|
1373
|
+
|
|
1374
|
+
RAISES:
|
|
1375
|
+
TeradataMLException
|
|
1376
|
+
|
|
1377
|
+
EXAMPLES:
|
|
1378
|
+
ContextUtilFuncs._check_alias_config_file_exists("vantage1.0", "config_file_location")
|
|
1379
|
+
|
|
1380
|
+
"""
|
|
1381
|
+
# Raise exception if alias config file is not defined.
|
|
1382
|
+
if not Path(alias_config_file).exists():
|
|
1383
|
+
raise TeradataMlException(Messages.get_message(
|
|
1384
|
+
MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND).format(alias_config_file,
|
|
1385
|
+
vantage_version),
|
|
1386
|
+
MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND)
|
|
1387
|
+
return True
|
|
1388
|
+
|
|
1389
|
+
@staticmethod
|
|
1390
|
+
def _get_function_mappings_from_config_file(alias_config_file):
|
|
1391
|
+
"""
|
|
1392
|
+
Function to return the function mappings given the location of configuration file in
|
|
1393
|
+
argument 'alias_config_file'.
|
|
1394
|
+
|
|
1395
|
+
PARAMETERS:
|
|
1396
|
+
alias_config_file:
|
|
1397
|
+
Required Argument.
|
|
1398
|
+
Specifies the location of configuration file to be read.
|
|
1399
|
+
|
|
1400
|
+
RETURNS:
|
|
1401
|
+
Function mappings as a dictionary of function_names to alias_names.
|
|
1402
|
+
|
|
1403
|
+
RAISES:
|
|
1404
|
+
TeradataMLException
|
|
1405
|
+
|
|
1406
|
+
EXAMPLES:
|
|
1407
|
+
ContextUtilFuncs._get_function_mappings_from_config_file("config_file_location")
|
|
1408
|
+
|
|
1409
|
+
"""
|
|
1410
|
+
repeated_function_names = []
|
|
1411
|
+
function_mappings = {}
|
|
1412
|
+
invalid_function_mappings = []
|
|
1413
|
+
invalid_function_mappings_line_nos = []
|
|
1414
|
+
# Reading configuration files
|
|
1415
|
+
with open(alias_config_file, 'r') as fread:
|
|
1416
|
+
for line_no, line in enumerate(fread.readlines()):
|
|
1417
|
+
line = line.strip()
|
|
1418
|
+
|
|
1419
|
+
# Ignoring empty lines in the config files.
|
|
1420
|
+
if line == "":
|
|
1421
|
+
continue
|
|
1422
|
+
|
|
1423
|
+
# If the separator ":" is not present.
|
|
1424
|
+
if ':' not in line:
|
|
1425
|
+
invalid_function_mappings.append(line)
|
|
1426
|
+
invalid_function_mappings_line_nos.append(str(line_no + 1))
|
|
1427
|
+
else:
|
|
1428
|
+
func_name, alias_name = line.split(":")
|
|
1429
|
+
func_name = func_name.strip()
|
|
1430
|
+
alias_name = alias_name.strip()
|
|
1431
|
+
|
|
1432
|
+
# First line of 'alias_config_file' has header "functionName:aliasName".
|
|
1433
|
+
if line_no == 0 and func_name == "functionName" and alias_name == "aliasName":
|
|
1434
|
+
continue
|
|
1435
|
+
|
|
1436
|
+
if func_name == "" or alias_name == "":
|
|
1437
|
+
invalid_function_mappings.append(line)
|
|
1438
|
+
invalid_function_mappings_line_nos.append(str(line_no + 1))
|
|
1439
|
+
continue
|
|
1440
|
+
|
|
1441
|
+
if func_name.lower() in function_mappings:
|
|
1442
|
+
repeated_function_names.append(func_name.lower())
|
|
1443
|
+
|
|
1444
|
+
# Loading function maps with lower values for key.
|
|
1445
|
+
function_mappings[func_name.lower()] = alias_name
|
|
1446
|
+
|
|
1447
|
+
# Presence of Invalid function mappings in the 'alias_config_file'.
|
|
1448
|
+
if len(invalid_function_mappings) > 0:
|
|
1449
|
+
err_ = Messages.get_message(MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
|
|
1450
|
+
err_ = err_.format("', '".join(invalid_function_mappings),
|
|
1451
|
+
", ".join(invalid_function_mappings_line_nos),
|
|
1452
|
+
alias_config_file)
|
|
1453
|
+
raise TeradataMlException(err_, MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
|
|
1454
|
+
|
|
1455
|
+
# Raising teradataml exception if there are any duplicates in function names.
|
|
1456
|
+
if len(repeated_function_names) > 0:
|
|
1457
|
+
raise TeradataMlException(Messages.get_message(
|
|
1458
|
+
MessageCodes.CONFIG_ALIAS_DUPLICATES).format(alias_config_file,
|
|
1459
|
+
", ".join(repeated_function_names)),
|
|
1460
|
+
MessageCodes.CONFIG_ALIAS_DUPLICATES)
|
|
1461
|
+
|
|
1462
|
+
return function_mappings
|