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.
Files changed (1208) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +2762 -0
  4. teradataml/__init__.py +78 -0
  5. teradataml/_version.py +11 -0
  6. teradataml/analytics/Transformations.py +2996 -0
  7. teradataml/analytics/__init__.py +82 -0
  8. teradataml/analytics/analytic_function_executor.py +2416 -0
  9. teradataml/analytics/analytic_query_generator.py +1050 -0
  10. teradataml/analytics/byom/H2OPredict.py +514 -0
  11. teradataml/analytics/byom/PMMLPredict.py +437 -0
  12. teradataml/analytics/byom/__init__.py +16 -0
  13. teradataml/analytics/json_parser/__init__.py +133 -0
  14. teradataml/analytics/json_parser/analytic_functions_argument.py +1805 -0
  15. teradataml/analytics/json_parser/json_store.py +191 -0
  16. teradataml/analytics/json_parser/metadata.py +1666 -0
  17. teradataml/analytics/json_parser/utils.py +805 -0
  18. teradataml/analytics/meta_class.py +236 -0
  19. teradataml/analytics/sqle/DecisionTreePredict.py +456 -0
  20. teradataml/analytics/sqle/NaiveBayesPredict.py +420 -0
  21. teradataml/analytics/sqle/__init__.py +128 -0
  22. teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -0
  23. teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -0
  24. teradataml/analytics/table_operator/__init__.py +11 -0
  25. teradataml/analytics/uaf/__init__.py +82 -0
  26. teradataml/analytics/utils.py +828 -0
  27. teradataml/analytics/valib.py +1617 -0
  28. teradataml/automl/__init__.py +5835 -0
  29. teradataml/automl/autodataprep/__init__.py +493 -0
  30. teradataml/automl/custom_json_utils.py +1625 -0
  31. teradataml/automl/data_preparation.py +1384 -0
  32. teradataml/automl/data_transformation.py +1254 -0
  33. teradataml/automl/feature_engineering.py +2273 -0
  34. teradataml/automl/feature_exploration.py +1873 -0
  35. teradataml/automl/model_evaluation.py +488 -0
  36. teradataml/automl/model_training.py +1407 -0
  37. teradataml/catalog/__init__.py +2 -0
  38. teradataml/catalog/byom.py +1759 -0
  39. teradataml/catalog/function_argument_mapper.py +859 -0
  40. teradataml/catalog/model_cataloging_utils.py +491 -0
  41. teradataml/clients/__init__.py +0 -0
  42. teradataml/clients/auth_client.py +137 -0
  43. teradataml/clients/keycloak_client.py +165 -0
  44. teradataml/clients/pkce_client.py +481 -0
  45. teradataml/common/__init__.py +1 -0
  46. teradataml/common/aed_utils.py +2078 -0
  47. teradataml/common/bulk_exposed_utils.py +113 -0
  48. teradataml/common/constants.py +1669 -0
  49. teradataml/common/deprecations.py +166 -0
  50. teradataml/common/exceptions.py +147 -0
  51. teradataml/common/formula.py +743 -0
  52. teradataml/common/garbagecollector.py +666 -0
  53. teradataml/common/logger.py +1261 -0
  54. teradataml/common/messagecodes.py +518 -0
  55. teradataml/common/messages.py +262 -0
  56. teradataml/common/pylogger.py +67 -0
  57. teradataml/common/sqlbundle.py +764 -0
  58. teradataml/common/td_coltype_code_to_tdtype.py +48 -0
  59. teradataml/common/utils.py +3166 -0
  60. teradataml/common/warnings.py +36 -0
  61. teradataml/common/wrapper_utils.py +625 -0
  62. teradataml/config/__init__.py +0 -0
  63. teradataml/config/dummy_file1.cfg +5 -0
  64. teradataml/config/dummy_file2.cfg +3 -0
  65. teradataml/config/sqlengine_alias_definitions_v1.0 +14 -0
  66. teradataml/config/sqlengine_alias_definitions_v1.1 +20 -0
  67. teradataml/config/sqlengine_alias_definitions_v1.3 +19 -0
  68. teradataml/context/__init__.py +0 -0
  69. teradataml/context/aed_context.py +223 -0
  70. teradataml/context/context.py +1462 -0
  71. teradataml/data/A_loan.csv +19 -0
  72. teradataml/data/BINARY_REALS_LEFT.csv +11 -0
  73. teradataml/data/BINARY_REALS_RIGHT.csv +11 -0
  74. teradataml/data/B_loan.csv +49 -0
  75. teradataml/data/BuoyData2.csv +17 -0
  76. teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -0
  77. teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -0
  78. teradataml/data/Convolve2RealsLeft.csv +5 -0
  79. teradataml/data/Convolve2RealsRight.csv +5 -0
  80. teradataml/data/Convolve2ValidLeft.csv +11 -0
  81. teradataml/data/Convolve2ValidRight.csv +11 -0
  82. teradataml/data/DFFTConv_Real_8_8.csv +65 -0
  83. teradataml/data/Employee.csv +5 -0
  84. teradataml/data/Employee_Address.csv +4 -0
  85. teradataml/data/Employee_roles.csv +5 -0
  86. teradataml/data/JulesBelvezeDummyData.csv +100 -0
  87. teradataml/data/Mall_customer_data.csv +201 -0
  88. teradataml/data/Orders1_12mf.csv +25 -0
  89. teradataml/data/Pi_loan.csv +7 -0
  90. teradataml/data/SMOOTHED_DATA.csv +7 -0
  91. teradataml/data/TestDFFT8.csv +9 -0
  92. teradataml/data/TestRiver.csv +109 -0
  93. teradataml/data/Traindata.csv +28 -0
  94. teradataml/data/__init__.py +0 -0
  95. teradataml/data/acf.csv +17 -0
  96. teradataml/data/adaboost_example.json +34 -0
  97. teradataml/data/adaboostpredict_example.json +24 -0
  98. teradataml/data/additional_table.csv +11 -0
  99. teradataml/data/admissions_test.csv +21 -0
  100. teradataml/data/admissions_train.csv +41 -0
  101. teradataml/data/admissions_train_nulls.csv +41 -0
  102. teradataml/data/advertising.csv +201 -0
  103. teradataml/data/ageandheight.csv +13 -0
  104. teradataml/data/ageandpressure.csv +31 -0
  105. teradataml/data/amazon_reviews_25.csv +26 -0
  106. teradataml/data/antiselect_example.json +36 -0
  107. teradataml/data/antiselect_input.csv +8 -0
  108. teradataml/data/antiselect_input_mixed_case.csv +8 -0
  109. teradataml/data/applicant_external.csv +7 -0
  110. teradataml/data/applicant_reference.csv +7 -0
  111. teradataml/data/apriori_example.json +22 -0
  112. teradataml/data/arima_example.json +9 -0
  113. teradataml/data/assortedtext_input.csv +8 -0
  114. teradataml/data/attribution_example.json +34 -0
  115. teradataml/data/attribution_sample_table.csv +27 -0
  116. teradataml/data/attribution_sample_table1.csv +6 -0
  117. teradataml/data/attribution_sample_table2.csv +11 -0
  118. teradataml/data/bank_churn.csv +10001 -0
  119. teradataml/data/bank_marketing.csv +11163 -0
  120. teradataml/data/bank_web_clicks1.csv +43 -0
  121. teradataml/data/bank_web_clicks2.csv +91 -0
  122. teradataml/data/bank_web_url.csv +85 -0
  123. teradataml/data/barrier.csv +2 -0
  124. teradataml/data/barrier_new.csv +3 -0
  125. teradataml/data/betweenness_example.json +14 -0
  126. teradataml/data/bike_sharing.csv +732 -0
  127. teradataml/data/bin_breaks.csv +8 -0
  128. teradataml/data/bin_fit_ip.csv +4 -0
  129. teradataml/data/binary_complex_left.csv +11 -0
  130. teradataml/data/binary_complex_right.csv +11 -0
  131. teradataml/data/binary_matrix_complex_left.csv +21 -0
  132. teradataml/data/binary_matrix_complex_right.csv +21 -0
  133. teradataml/data/binary_matrix_real_left.csv +21 -0
  134. teradataml/data/binary_matrix_real_right.csv +21 -0
  135. teradataml/data/blood2ageandweight.csv +26 -0
  136. teradataml/data/bmi.csv +501 -0
  137. teradataml/data/boston.csv +507 -0
  138. teradataml/data/boston2cols.csv +721 -0
  139. teradataml/data/breast_cancer.csv +570 -0
  140. teradataml/data/buoydata_mix.csv +11 -0
  141. teradataml/data/burst_data.csv +5 -0
  142. teradataml/data/burst_example.json +21 -0
  143. teradataml/data/byom_example.json +34 -0
  144. teradataml/data/bytes_table.csv +4 -0
  145. teradataml/data/cal_housing_ex_raw.csv +70 -0
  146. teradataml/data/callers.csv +7 -0
  147. teradataml/data/calls.csv +10 -0
  148. teradataml/data/cars_hist.csv +33 -0
  149. teradataml/data/cat_table.csv +25 -0
  150. teradataml/data/ccm_example.json +32 -0
  151. teradataml/data/ccm_input.csv +91 -0
  152. teradataml/data/ccm_input2.csv +13 -0
  153. teradataml/data/ccmexample.csv +101 -0
  154. teradataml/data/ccmprepare_example.json +9 -0
  155. teradataml/data/ccmprepare_input.csv +91 -0
  156. teradataml/data/cfilter_example.json +12 -0
  157. teradataml/data/changepointdetection_example.json +18 -0
  158. teradataml/data/changepointdetectionrt_example.json +8 -0
  159. teradataml/data/chi_sq.csv +3 -0
  160. teradataml/data/churn_data.csv +14 -0
  161. teradataml/data/churn_emission.csv +35 -0
  162. teradataml/data/churn_initial.csv +3 -0
  163. teradataml/data/churn_state_transition.csv +5 -0
  164. teradataml/data/citedges_2.csv +745 -0
  165. teradataml/data/citvertices_2.csv +1210 -0
  166. teradataml/data/clicks2.csv +16 -0
  167. teradataml/data/clickstream.csv +13 -0
  168. teradataml/data/clickstream1.csv +11 -0
  169. teradataml/data/closeness_example.json +16 -0
  170. teradataml/data/complaints.csv +21 -0
  171. teradataml/data/complaints_mini.csv +3 -0
  172. teradataml/data/complaints_test_tokenized.csv +353 -0
  173. teradataml/data/complaints_testtoken.csv +224 -0
  174. teradataml/data/complaints_tokens_model.csv +348 -0
  175. teradataml/data/complaints_tokens_test.csv +353 -0
  176. teradataml/data/complaints_traintoken.csv +472 -0
  177. teradataml/data/computers_category.csv +1001 -0
  178. teradataml/data/computers_test1.csv +1252 -0
  179. teradataml/data/computers_train1.csv +5009 -0
  180. teradataml/data/computers_train1_clustered.csv +5009 -0
  181. teradataml/data/confusionmatrix_example.json +9 -0
  182. teradataml/data/conversion_event_table.csv +3 -0
  183. teradataml/data/corr_input.csv +17 -0
  184. teradataml/data/correlation_example.json +11 -0
  185. teradataml/data/covid_confirm_sd.csv +83 -0
  186. teradataml/data/coxhazardratio_example.json +39 -0
  187. teradataml/data/coxph_example.json +15 -0
  188. teradataml/data/coxsurvival_example.json +28 -0
  189. teradataml/data/cpt.csv +41 -0
  190. teradataml/data/credit_ex_merged.csv +45 -0
  191. teradataml/data/creditcard_data.csv +1001 -0
  192. teradataml/data/customer_loyalty.csv +301 -0
  193. teradataml/data/customer_loyalty_newseq.csv +31 -0
  194. teradataml/data/customer_segmentation_test.csv +2628 -0
  195. teradataml/data/customer_segmentation_train.csv +8069 -0
  196. teradataml/data/dataframe_example.json +173 -0
  197. teradataml/data/decisionforest_example.json +37 -0
  198. teradataml/data/decisionforestpredict_example.json +38 -0
  199. teradataml/data/decisiontree_example.json +21 -0
  200. teradataml/data/decisiontreepredict_example.json +45 -0
  201. teradataml/data/dfft2_size4_real.csv +17 -0
  202. teradataml/data/dfft2_test_matrix16.csv +17 -0
  203. teradataml/data/dfft2conv_real_4_4.csv +65 -0
  204. teradataml/data/diabetes.csv +443 -0
  205. teradataml/data/diabetes_test.csv +89 -0
  206. teradataml/data/dict_table.csv +5 -0
  207. teradataml/data/docperterm_table.csv +4 -0
  208. teradataml/data/docs/__init__.py +1 -0
  209. teradataml/data/docs/byom/__init__.py +0 -0
  210. teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -0
  211. teradataml/data/docs/byom/docs/DataikuPredict.py +217 -0
  212. teradataml/data/docs/byom/docs/H2OPredict.py +325 -0
  213. teradataml/data/docs/byom/docs/ONNXEmbeddings.py +242 -0
  214. teradataml/data/docs/byom/docs/ONNXPredict.py +283 -0
  215. teradataml/data/docs/byom/docs/ONNXSeq2Seq.py +255 -0
  216. teradataml/data/docs/byom/docs/PMMLPredict.py +278 -0
  217. teradataml/data/docs/byom/docs/__init__.py +0 -0
  218. teradataml/data/docs/sqle/__init__.py +0 -0
  219. teradataml/data/docs/sqle/docs_17_10/Antiselect.py +83 -0
  220. teradataml/data/docs/sqle/docs_17_10/Attribution.py +200 -0
  221. teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +172 -0
  222. teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -0
  223. teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -0
  224. teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -0
  225. teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +86 -0
  226. teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +96 -0
  227. teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -0
  228. teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +152 -0
  229. teradataml/data/docs/sqle/docs_17_10/FTest.py +161 -0
  230. teradataml/data/docs/sqle/docs_17_10/FillRowId.py +83 -0
  231. teradataml/data/docs/sqle/docs_17_10/Fit.py +88 -0
  232. teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -0
  233. teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +85 -0
  234. teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +82 -0
  235. teradataml/data/docs/sqle/docs_17_10/Histogram.py +165 -0
  236. teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -0
  237. teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +209 -0
  238. teradataml/data/docs/sqle/docs_17_10/NPath.py +266 -0
  239. teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -0
  240. teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -0
  241. teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -0
  242. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +135 -0
  243. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -0
  244. teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +166 -0
  245. teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -0
  246. teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -0
  247. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +112 -0
  248. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -0
  249. teradataml/data/docs/sqle/docs_17_10/QQNorm.py +105 -0
  250. teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +110 -0
  251. teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +118 -0
  252. teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -0
  253. teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +153 -0
  254. teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -0
  255. teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -0
  256. teradataml/data/docs/sqle/docs_17_10/Sessionize.py +114 -0
  257. teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -0
  258. teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -0
  259. teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -0
  260. teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +146 -0
  261. teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -0
  262. teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +142 -0
  263. teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -0
  264. teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -0
  265. teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -0
  266. teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -0
  267. teradataml/data/docs/sqle/docs_17_10/__init__.py +0 -0
  268. teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -0
  269. teradataml/data/docs/sqle/docs_17_20/Antiselect.py +83 -0
  270. teradataml/data/docs/sqle/docs_17_20/Apriori.py +138 -0
  271. teradataml/data/docs/sqle/docs_17_20/Attribution.py +201 -0
  272. teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +172 -0
  273. teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -0
  274. teradataml/data/docs/sqle/docs_17_20/CFilter.py +132 -0
  275. teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -0
  276. teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -0
  277. teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -0
  278. teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +86 -0
  279. teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +246 -0
  280. teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -0
  281. teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +280 -0
  282. teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -0
  283. teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +136 -0
  284. teradataml/data/docs/sqle/docs_17_20/FTest.py +240 -0
  285. teradataml/data/docs/sqle/docs_17_20/FillRowId.py +83 -0
  286. teradataml/data/docs/sqle/docs_17_20/Fit.py +88 -0
  287. teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -0
  288. teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +415 -0
  289. teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -0
  290. teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -0
  291. teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -0
  292. teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +109 -0
  293. teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +106 -0
  294. teradataml/data/docs/sqle/docs_17_20/Histogram.py +224 -0
  295. teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -0
  296. teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -0
  297. teradataml/data/docs/sqle/docs_17_20/KNN.py +215 -0
  298. teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -0
  299. teradataml/data/docs/sqle/docs_17_20/NERExtractor.py +121 -0
  300. teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +209 -0
  301. teradataml/data/docs/sqle/docs_17_20/NPath.py +266 -0
  302. teradataml/data/docs/sqle/docs_17_20/NaiveBayes.py +162 -0
  303. teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -0
  304. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -0
  305. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +127 -0
  306. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +119 -0
  307. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -0
  308. teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -0
  309. teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -0
  310. teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -0
  311. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +231 -0
  312. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -0
  313. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +220 -0
  314. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -0
  315. teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +191 -0
  316. teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -0
  317. teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -0
  318. teradataml/data/docs/sqle/docs_17_20/Pivoting.py +279 -0
  319. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +112 -0
  320. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -0
  321. teradataml/data/docs/sqle/docs_17_20/QQNorm.py +105 -0
  322. teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -0
  323. teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +155 -0
  324. teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -0
  325. teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -0
  326. teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -0
  327. teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +109 -0
  328. teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +118 -0
  329. teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -0
  330. teradataml/data/docs/sqle/docs_17_20/SMOTE.py +212 -0
  331. teradataml/data/docs/sqle/docs_17_20/SVM.py +414 -0
  332. teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -0
  333. teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +153 -0
  334. teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -0
  335. teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -0
  336. teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -0
  337. teradataml/data/docs/sqle/docs_17_20/Sessionize.py +114 -0
  338. teradataml/data/docs/sqle/docs_17_20/Shap.py +225 -0
  339. teradataml/data/docs/sqle/docs_17_20/Silhouette.py +153 -0
  340. teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -0
  341. teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -0
  342. teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -0
  343. teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +146 -0
  344. teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -0
  345. teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -0
  346. teradataml/data/docs/sqle/docs_17_20/TDNaiveBayesPredict.py +189 -0
  347. teradataml/data/docs/sqle/docs_17_20/TFIDF.py +142 -0
  348. teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +267 -0
  349. teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -0
  350. teradataml/data/docs/sqle/docs_17_20/TextMorph.py +119 -0
  351. teradataml/data/docs/sqle/docs_17_20/TextParser.py +224 -0
  352. teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +160 -0
  353. teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -0
  354. teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +142 -0
  355. teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -0
  356. teradataml/data/docs/sqle/docs_17_20/Unpivoting.py +216 -0
  357. teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +169 -0
  358. teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -0
  359. teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -0
  360. teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +237 -0
  361. teradataml/data/docs/sqle/docs_17_20/XGBoost.py +362 -0
  362. teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -0
  363. teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -0
  364. teradataml/data/docs/sqle/docs_17_20/__init__.py +0 -0
  365. teradataml/data/docs/tableoperator/__init__.py +0 -0
  366. teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +430 -0
  367. teradataml/data/docs/tableoperator/docs_17_00/__init__.py +0 -0
  368. teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +430 -0
  369. teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +348 -0
  370. teradataml/data/docs/tableoperator/docs_17_05/__init__.py +0 -0
  371. teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +429 -0
  372. teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +348 -0
  373. teradataml/data/docs/tableoperator/docs_17_10/__init__.py +0 -0
  374. teradataml/data/docs/tableoperator/docs_17_20/Image2Matrix.py +118 -0
  375. teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +440 -0
  376. teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +387 -0
  377. teradataml/data/docs/tableoperator/docs_17_20/__init__.py +0 -0
  378. teradataml/data/docs/uaf/__init__.py +0 -0
  379. teradataml/data/docs/uaf/docs_17_20/ACF.py +186 -0
  380. teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +370 -0
  381. teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +172 -0
  382. teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +161 -0
  383. teradataml/data/docs/uaf/docs_17_20/ArimaXEstimate.py +293 -0
  384. teradataml/data/docs/uaf/docs_17_20/AutoArima.py +354 -0
  385. teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +248 -0
  386. teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -0
  387. teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +178 -0
  388. teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +175 -0
  389. teradataml/data/docs/uaf/docs_17_20/Convolve.py +230 -0
  390. teradataml/data/docs/uaf/docs_17_20/Convolve2.py +218 -0
  391. teradataml/data/docs/uaf/docs_17_20/CopyArt.py +145 -0
  392. teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +185 -0
  393. teradataml/data/docs/uaf/docs_17_20/DFFT.py +204 -0
  394. teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -0
  395. teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +216 -0
  396. teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +192 -0
  397. teradataml/data/docs/uaf/docs_17_20/DIFF.py +175 -0
  398. teradataml/data/docs/uaf/docs_17_20/DTW.py +180 -0
  399. teradataml/data/docs/uaf/docs_17_20/DWT.py +235 -0
  400. teradataml/data/docs/uaf/docs_17_20/DWT2D.py +217 -0
  401. teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +142 -0
  402. teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +184 -0
  403. teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +185 -0
  404. teradataml/data/docs/uaf/docs_17_20/FilterFactory1d.py +160 -0
  405. teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -0
  406. teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +206 -0
  407. teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +143 -0
  408. teradataml/data/docs/uaf/docs_17_20/GoldfeldQuandt.py +198 -0
  409. teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +260 -0
  410. teradataml/data/docs/uaf/docs_17_20/IDFFT.py +165 -0
  411. teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +191 -0
  412. teradataml/data/docs/uaf/docs_17_20/IDWT.py +236 -0
  413. teradataml/data/docs/uaf/docs_17_20/IDWT2D.py +226 -0
  414. teradataml/data/docs/uaf/docs_17_20/IQR.py +134 -0
  415. teradataml/data/docs/uaf/docs_17_20/InputValidator.py +121 -0
  416. teradataml/data/docs/uaf/docs_17_20/LineSpec.py +156 -0
  417. teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +215 -0
  418. teradataml/data/docs/uaf/docs_17_20/MAMean.py +174 -0
  419. teradataml/data/docs/uaf/docs_17_20/MInfo.py +134 -0
  420. teradataml/data/docs/uaf/docs_17_20/Matrix2Image.py +297 -0
  421. teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +145 -0
  422. teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +191 -0
  423. teradataml/data/docs/uaf/docs_17_20/PACF.py +157 -0
  424. teradataml/data/docs/uaf/docs_17_20/Portman.py +217 -0
  425. teradataml/data/docs/uaf/docs_17_20/PowerSpec.py +203 -0
  426. teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +155 -0
  427. teradataml/data/docs/uaf/docs_17_20/Resample.py +237 -0
  428. teradataml/data/docs/uaf/docs_17_20/SAX.py +246 -0
  429. teradataml/data/docs/uaf/docs_17_20/SInfo.py +123 -0
  430. teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +173 -0
  431. teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +174 -0
  432. teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +171 -0
  433. teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +164 -0
  434. teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +180 -0
  435. teradataml/data/docs/uaf/docs_17_20/Smoothma.py +208 -0
  436. teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +151 -0
  437. teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -0
  438. teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +202 -0
  439. teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +171 -0
  440. teradataml/data/docs/uaf/docs_17_20/WindowDFFT.py +368 -0
  441. teradataml/data/docs/uaf/docs_17_20/__init__.py +0 -0
  442. teradataml/data/dtw_example.json +18 -0
  443. teradataml/data/dtw_t1.csv +11 -0
  444. teradataml/data/dtw_t2.csv +4 -0
  445. teradataml/data/dwt2d_dataTable.csv +65 -0
  446. teradataml/data/dwt2d_example.json +16 -0
  447. teradataml/data/dwt_dataTable.csv +8 -0
  448. teradataml/data/dwt_example.json +15 -0
  449. teradataml/data/dwt_filterTable.csv +3 -0
  450. teradataml/data/dwt_filter_dim.csv +5 -0
  451. teradataml/data/emission.csv +9 -0
  452. teradataml/data/emp_table_by_dept.csv +19 -0
  453. teradataml/data/employee_info.csv +4 -0
  454. teradataml/data/employee_table.csv +6 -0
  455. teradataml/data/excluding_event_table.csv +2 -0
  456. teradataml/data/finance_data.csv +6 -0
  457. teradataml/data/finance_data2.csv +61 -0
  458. teradataml/data/finance_data3.csv +93 -0
  459. teradataml/data/finance_data4.csv +13 -0
  460. teradataml/data/fish.csv +160 -0
  461. teradataml/data/fm_blood2ageandweight.csv +26 -0
  462. teradataml/data/fmeasure_example.json +12 -0
  463. teradataml/data/followers_leaders.csv +10 -0
  464. teradataml/data/fpgrowth_example.json +12 -0
  465. teradataml/data/frequentpaths_example.json +29 -0
  466. teradataml/data/friends.csv +9 -0
  467. teradataml/data/fs_input.csv +33 -0
  468. teradataml/data/fs_input1.csv +33 -0
  469. teradataml/data/genData.csv +513 -0
  470. teradataml/data/geodataframe_example.json +40 -0
  471. teradataml/data/glass_types.csv +215 -0
  472. teradataml/data/glm_admissions_model.csv +12 -0
  473. teradataml/data/glm_example.json +56 -0
  474. teradataml/data/glml1l2_example.json +28 -0
  475. teradataml/data/glml1l2predict_example.json +54 -0
  476. teradataml/data/glmpredict_example.json +54 -0
  477. teradataml/data/gq_t1.csv +21 -0
  478. teradataml/data/grocery_transaction.csv +19 -0
  479. teradataml/data/hconvolve_complex_right.csv +5 -0
  480. teradataml/data/hconvolve_complex_rightmulti.csv +5 -0
  481. teradataml/data/histogram_example.json +12 -0
  482. teradataml/data/hmmdecoder_example.json +79 -0
  483. teradataml/data/hmmevaluator_example.json +25 -0
  484. teradataml/data/hmmsupervised_example.json +10 -0
  485. teradataml/data/hmmunsupervised_example.json +8 -0
  486. teradataml/data/hnsw_alter_data.csv +5 -0
  487. teradataml/data/hnsw_data.csv +10 -0
  488. teradataml/data/house_values.csv +12 -0
  489. teradataml/data/house_values2.csv +13 -0
  490. teradataml/data/housing_cat.csv +7 -0
  491. teradataml/data/housing_data.csv +9 -0
  492. teradataml/data/housing_test.csv +47 -0
  493. teradataml/data/housing_test_binary.csv +47 -0
  494. teradataml/data/housing_train.csv +493 -0
  495. teradataml/data/housing_train_attribute.csv +5 -0
  496. teradataml/data/housing_train_binary.csv +437 -0
  497. teradataml/data/housing_train_parameter.csv +2 -0
  498. teradataml/data/housing_train_response.csv +493 -0
  499. teradataml/data/housing_train_segment.csv +201 -0
  500. teradataml/data/ibm_stock.csv +370 -0
  501. teradataml/data/ibm_stock1.csv +370 -0
  502. teradataml/data/identitymatch_example.json +22 -0
  503. teradataml/data/idf_table.csv +4 -0
  504. teradataml/data/idwt2d_dataTable.csv +5 -0
  505. teradataml/data/idwt_dataTable.csv +8 -0
  506. teradataml/data/idwt_filterTable.csv +3 -0
  507. teradataml/data/impressions.csv +101 -0
  508. teradataml/data/inflation.csv +21 -0
  509. teradataml/data/initial.csv +3 -0
  510. teradataml/data/insect2Cols.csv +61 -0
  511. teradataml/data/insect_sprays.csv +13 -0
  512. teradataml/data/insurance.csv +1339 -0
  513. teradataml/data/interpolator_example.json +13 -0
  514. teradataml/data/interval_data.csv +5 -0
  515. teradataml/data/iris_altinput.csv +481 -0
  516. teradataml/data/iris_attribute_output.csv +8 -0
  517. teradataml/data/iris_attribute_test.csv +121 -0
  518. teradataml/data/iris_attribute_train.csv +481 -0
  519. teradataml/data/iris_category_expect_predict.csv +31 -0
  520. teradataml/data/iris_data.csv +151 -0
  521. teradataml/data/iris_input.csv +151 -0
  522. teradataml/data/iris_response_train.csv +121 -0
  523. teradataml/data/iris_test.csv +31 -0
  524. teradataml/data/iris_train.csv +121 -0
  525. teradataml/data/join_table1.csv +4 -0
  526. teradataml/data/join_table2.csv +4 -0
  527. teradataml/data/jsons/anly_function_name.json +7 -0
  528. teradataml/data/jsons/byom/ONNXSeq2Seq.json +287 -0
  529. teradataml/data/jsons/byom/dataikupredict.json +148 -0
  530. teradataml/data/jsons/byom/datarobotpredict.json +147 -0
  531. teradataml/data/jsons/byom/h2opredict.json +195 -0
  532. teradataml/data/jsons/byom/onnxembeddings.json +267 -0
  533. teradataml/data/jsons/byom/onnxpredict.json +187 -0
  534. teradataml/data/jsons/byom/pmmlpredict.json +147 -0
  535. teradataml/data/jsons/paired_functions.json +450 -0
  536. teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -0
  537. teradataml/data/jsons/sqle/16.20/Attribution.json +249 -0
  538. teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -0
  539. teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -0
  540. teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -0
  541. teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -0
  542. teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -0
  543. teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -0
  544. teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -0
  545. teradataml/data/jsons/sqle/16.20/Pack.json +98 -0
  546. teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -0
  547. teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -0
  548. teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -0
  549. teradataml/data/jsons/sqle/16.20/Unpack.json +166 -0
  550. teradataml/data/jsons/sqle/16.20/nPath.json +269 -0
  551. teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -0
  552. teradataml/data/jsons/sqle/17.00/Attribution.json +249 -0
  553. teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -0
  554. teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -0
  555. teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -0
  556. teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -0
  557. teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -0
  558. teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -0
  559. teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -0
  560. teradataml/data/jsons/sqle/17.00/Pack.json +98 -0
  561. teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -0
  562. teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -0
  563. teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -0
  564. teradataml/data/jsons/sqle/17.00/Unpack.json +166 -0
  565. teradataml/data/jsons/sqle/17.00/nPath.json +269 -0
  566. teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -0
  567. teradataml/data/jsons/sqle/17.05/Attribution.json +249 -0
  568. teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -0
  569. teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -0
  570. teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -0
  571. teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -0
  572. teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -0
  573. teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -0
  574. teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -0
  575. teradataml/data/jsons/sqle/17.05/Pack.json +98 -0
  576. teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -0
  577. teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -0
  578. teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -0
  579. teradataml/data/jsons/sqle/17.05/Unpack.json +166 -0
  580. teradataml/data/jsons/sqle/17.05/nPath.json +269 -0
  581. teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -0
  582. teradataml/data/jsons/sqle/17.10/Attribution.json +249 -0
  583. teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -0
  584. teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +172 -0
  585. teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -0
  586. teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -0
  587. teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -0
  588. teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -0
  589. teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -0
  590. teradataml/data/jsons/sqle/17.10/Pack.json +133 -0
  591. teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -0
  592. teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -0
  593. teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -0
  594. teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -0
  595. teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -0
  596. teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +54 -0
  597. teradataml/data/jsons/sqle/17.10/TD_Chisq.json +68 -0
  598. teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +54 -0
  599. teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +69 -0
  600. teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -0
  601. teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +52 -0
  602. teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -0
  603. teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -0
  604. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +53 -0
  605. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +53 -0
  606. teradataml/data/jsons/sqle/17.10/TD_Histogram.json +133 -0
  607. teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -0
  608. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +183 -0
  609. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +66 -0
  610. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +197 -0
  611. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -0
  612. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -0
  613. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -0
  614. teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +112 -0
  615. teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -0
  616. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +128 -0
  617. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +71 -0
  618. teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +157 -0
  619. teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +71 -0
  620. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +148 -0
  621. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -0
  622. teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -0
  623. teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +119 -0
  624. teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +53 -0
  625. teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +53 -0
  626. teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -0
  627. teradataml/data/jsons/sqle/17.10/Unpack.json +188 -0
  628. teradataml/data/jsons/sqle/17.10/nPath.json +269 -0
  629. teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -0
  630. teradataml/data/jsons/sqle/17.20/Attribution.json +249 -0
  631. teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -0
  632. teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -0
  633. teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -0
  634. teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -0
  635. teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -0
  636. teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -0
  637. teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -0
  638. teradataml/data/jsons/sqle/17.20/Pack.json +133 -0
  639. teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -0
  640. teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -0
  641. teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -0
  642. teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +149 -0
  643. teradataml/data/jsons/sqle/17.20/TD_Apriori.json +181 -0
  644. teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -0
  645. teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -0
  646. teradataml/data/jsons/sqle/17.20/TD_CFilter.json +118 -0
  647. teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -0
  648. teradataml/data/jsons/sqle/17.20/TD_Chisq.json +68 -0
  649. teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +146 -0
  650. teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -0
  651. teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -0
  652. teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -0
  653. teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +260 -0
  654. teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -0
  655. teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -0
  656. teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -0
  657. teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -0
  658. teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -0
  659. teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -0
  660. teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -0
  661. teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -0
  662. teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -0
  663. teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -0
  664. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -0
  665. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -0
  666. teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -0
  667. teradataml/data/jsons/sqle/17.20/TD_KMeans.json +232 -0
  668. teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +87 -0
  669. teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -0
  670. teradataml/data/jsons/sqle/17.20/TD_NERExtractor.json +145 -0
  671. teradataml/data/jsons/sqle/17.20/TD_NaiveBayes.json +193 -0
  672. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesPredict.json +212 -0
  673. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -0
  674. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -0
  675. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -0
  676. teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -0
  677. teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +316 -0
  678. teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +124 -0
  679. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -0
  680. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -0
  681. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -0
  682. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -0
  683. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -0
  684. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -0
  685. teradataml/data/jsons/sqle/17.20/TD_Pivoting.json +280 -0
  686. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -0
  687. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -0
  688. teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -0
  689. teradataml/data/jsons/sqle/17.20/TD_ROC.json +179 -0
  690. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +179 -0
  691. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +74 -0
  692. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -0
  693. teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +138 -0
  694. teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -0
  695. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +128 -0
  696. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +71 -0
  697. teradataml/data/jsons/sqle/17.20/TD_SMOTE.json +267 -0
  698. teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -0
  699. teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -0
  700. teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +310 -0
  701. teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +120 -0
  702. teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +194 -0
  703. teradataml/data/jsons/sqle/17.20/TD_Shap.json +221 -0
  704. teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +143 -0
  705. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -0
  706. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -0
  707. teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -0
  708. teradataml/data/jsons/sqle/17.20/TD_TFIDF.json +162 -0
  709. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -0
  710. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -0
  711. teradataml/data/jsons/sqle/17.20/TD_TextMorph.json +134 -0
  712. teradataml/data/jsons/sqle/17.20/TD_TextParser.json +297 -0
  713. teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -0
  714. teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -0
  715. teradataml/data/jsons/sqle/17.20/TD_Unpivoting.json +235 -0
  716. teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +183 -0
  717. teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +53 -0
  718. teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +53 -0
  719. teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -0
  720. teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -0
  721. teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -0
  722. teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -0
  723. teradataml/data/jsons/sqle/17.20/Unpack.json +188 -0
  724. teradataml/data/jsons/sqle/17.20/nPath.json +269 -0
  725. teradataml/data/jsons/sqle/20.00/AI_AnalyzeSentiment.json +370 -0
  726. teradataml/data/jsons/sqle/20.00/AI_AskLLM.json +460 -0
  727. teradataml/data/jsons/sqle/20.00/AI_DetectLanguage.json +385 -0
  728. teradataml/data/jsons/sqle/20.00/AI_ExtractKeyPhrases.json +369 -0
  729. teradataml/data/jsons/sqle/20.00/AI_MaskPII.json +369 -0
  730. teradataml/data/jsons/sqle/20.00/AI_RecognizeEntities.json +369 -0
  731. teradataml/data/jsons/sqle/20.00/AI_RecognizePIIEntities.json +369 -0
  732. teradataml/data/jsons/sqle/20.00/AI_TextClassifier.json +400 -0
  733. teradataml/data/jsons/sqle/20.00/AI_TextEmbeddings.json +401 -0
  734. teradataml/data/jsons/sqle/20.00/AI_TextSummarize.json +384 -0
  735. teradataml/data/jsons/sqle/20.00/AI_TextTranslate.json +384 -0
  736. teradataml/data/jsons/sqle/20.00/TD_API_AzureML.json +151 -0
  737. teradataml/data/jsons/sqle/20.00/TD_API_Sagemaker.json +182 -0
  738. teradataml/data/jsons/sqle/20.00/TD_API_VertexAI.json +183 -0
  739. teradataml/data/jsons/sqle/20.00/TD_HNSW.json +296 -0
  740. teradataml/data/jsons/sqle/20.00/TD_HNSWPredict.json +206 -0
  741. teradataml/data/jsons/sqle/20.00/TD_HNSWSummary.json +32 -0
  742. teradataml/data/jsons/sqle/20.00/TD_KMeans.json +250 -0
  743. teradataml/data/jsons/sqle/20.00/TD_SMOTE.json +266 -0
  744. teradataml/data/jsons/sqle/20.00/TD_VectorDistance.json +278 -0
  745. teradataml/data/jsons/storedprocedure/17.20/TD_COPYART.json +71 -0
  746. teradataml/data/jsons/storedprocedure/17.20/TD_FILTERFACTORY1D.json +150 -0
  747. teradataml/data/jsons/tableoperator/17.00/read_nos.json +198 -0
  748. teradataml/data/jsons/tableoperator/17.05/read_nos.json +198 -0
  749. teradataml/data/jsons/tableoperator/17.05/write_nos.json +195 -0
  750. teradataml/data/jsons/tableoperator/17.10/read_nos.json +184 -0
  751. teradataml/data/jsons/tableoperator/17.10/write_nos.json +195 -0
  752. teradataml/data/jsons/tableoperator/17.20/IMAGE2MATRIX.json +53 -0
  753. teradataml/data/jsons/tableoperator/17.20/read_nos.json +183 -0
  754. teradataml/data/jsons/tableoperator/17.20/write_nos.json +224 -0
  755. teradataml/data/jsons/uaf/17.20/TD_ACF.json +132 -0
  756. teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +396 -0
  757. teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +77 -0
  758. teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +153 -0
  759. teradataml/data/jsons/uaf/17.20/TD_ARIMAXESTIMATE.json +362 -0
  760. teradataml/data/jsons/uaf/17.20/TD_AUTOARIMA.json +469 -0
  761. teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +107 -0
  762. teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +106 -0
  763. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +89 -0
  764. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +104 -0
  765. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +78 -0
  766. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +66 -0
  767. teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +87 -0
  768. teradataml/data/jsons/uaf/17.20/TD_DFFT.json +134 -0
  769. teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +144 -0
  770. teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -0
  771. teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +108 -0
  772. teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +78 -0
  773. teradataml/data/jsons/uaf/17.20/TD_DIFF.json +92 -0
  774. teradataml/data/jsons/uaf/17.20/TD_DTW.json +114 -0
  775. teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +101 -0
  776. teradataml/data/jsons/uaf/17.20/TD_DWT.json +173 -0
  777. teradataml/data/jsons/uaf/17.20/TD_DWT2D.json +160 -0
  778. teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +39 -0
  779. teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +101 -0
  780. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +85 -0
  781. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +71 -0
  782. teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +139 -0
  783. teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECASTER.json +313 -0
  784. teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +58 -0
  785. teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +81 -0
  786. teradataml/data/jsons/uaf/17.20/TD_IDWT.json +162 -0
  787. teradataml/data/jsons/uaf/17.20/TD_IDWT2D.json +149 -0
  788. teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +64 -0
  789. teradataml/data/jsons/uaf/17.20/TD_IQR.json +117 -0
  790. teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +182 -0
  791. teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +103 -0
  792. teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +181 -0
  793. teradataml/data/jsons/uaf/17.20/TD_MATRIX2IMAGE.json +209 -0
  794. teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +68 -0
  795. teradataml/data/jsons/uaf/17.20/TD_MINFO.json +67 -0
  796. teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +179 -0
  797. teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -0
  798. teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +119 -0
  799. teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -0
  800. teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +98 -0
  801. teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +194 -0
  802. teradataml/data/jsons/uaf/17.20/TD_SAX.json +210 -0
  803. teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +143 -0
  804. teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +90 -0
  805. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +80 -0
  806. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +68 -0
  807. teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -0
  808. teradataml/data/jsons/uaf/17.20/TD_SINFO.json +58 -0
  809. teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +163 -0
  810. teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +101 -0
  811. teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +112 -0
  812. teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -0
  813. teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +78 -0
  814. teradataml/data/jsons/uaf/17.20/TD_WINDOWDFFT.json +410 -0
  815. teradataml/data/kmeans_example.json +23 -0
  816. teradataml/data/kmeans_table.csv +10 -0
  817. teradataml/data/kmeans_us_arrests_data.csv +51 -0
  818. teradataml/data/knn_example.json +19 -0
  819. teradataml/data/knnrecommender_example.json +7 -0
  820. teradataml/data/knnrecommenderpredict_example.json +12 -0
  821. teradataml/data/lar_example.json +17 -0
  822. teradataml/data/larpredict_example.json +30 -0
  823. teradataml/data/lc_new_predictors.csv +5 -0
  824. teradataml/data/lc_new_reference.csv +9 -0
  825. teradataml/data/lda_example.json +9 -0
  826. teradataml/data/ldainference_example.json +15 -0
  827. teradataml/data/ldatopicsummary_example.json +9 -0
  828. teradataml/data/levendist_input.csv +13 -0
  829. teradataml/data/levenshteindistance_example.json +10 -0
  830. teradataml/data/linreg_example.json +10 -0
  831. teradataml/data/load_example_data.py +350 -0
  832. teradataml/data/loan_prediction.csv +295 -0
  833. teradataml/data/lungcancer.csv +138 -0
  834. teradataml/data/mappingdata.csv +12 -0
  835. teradataml/data/medical_readings.csv +101 -0
  836. teradataml/data/milk_timeseries.csv +157 -0
  837. teradataml/data/min_max_titanic.csv +4 -0
  838. teradataml/data/minhash_example.json +6 -0
  839. teradataml/data/ml_ratings.csv +7547 -0
  840. teradataml/data/ml_ratings_10.csv +2445 -0
  841. teradataml/data/mobile_data.csv +13 -0
  842. teradataml/data/model1_table.csv +5 -0
  843. teradataml/data/model2_table.csv +5 -0
  844. teradataml/data/models/License_file.txt +1 -0
  845. teradataml/data/models/License_file_empty.txt +0 -0
  846. teradataml/data/models/dataiku_iris_data_ann_thin +0 -0
  847. teradataml/data/models/dr_iris_rf +0 -0
  848. teradataml/data/models/iris_db_dt_model_sklearn.onnx +0 -0
  849. teradataml/data/models/iris_db_dt_model_sklearn_floattensor.onnx +0 -0
  850. teradataml/data/models/iris_db_glm_model.pmml +57 -0
  851. teradataml/data/models/iris_db_xgb_model.pmml +4471 -0
  852. teradataml/data/models/iris_kmeans_model +0 -0
  853. teradataml/data/models/iris_mojo_glm_h2o_model +0 -0
  854. teradataml/data/models/iris_mojo_xgb_h2o_model +0 -0
  855. teradataml/data/modularity_example.json +12 -0
  856. teradataml/data/movavg_example.json +8 -0
  857. teradataml/data/mtx1.csv +7 -0
  858. teradataml/data/mtx2.csv +13 -0
  859. teradataml/data/multi_model_classification.csv +401 -0
  860. teradataml/data/multi_model_regression.csv +401 -0
  861. teradataml/data/mvdfft8.csv +9 -0
  862. teradataml/data/naivebayes_example.json +10 -0
  863. teradataml/data/naivebayespredict_example.json +19 -0
  864. teradataml/data/naivebayestextclassifier2_example.json +7 -0
  865. teradataml/data/naivebayestextclassifier_example.json +8 -0
  866. teradataml/data/naivebayestextclassifierpredict_example.json +32 -0
  867. teradataml/data/name_Find_configure.csv +10 -0
  868. teradataml/data/namedentityfinder_example.json +14 -0
  869. teradataml/data/namedentityfinderevaluator_example.json +10 -0
  870. teradataml/data/namedentityfindertrainer_example.json +6 -0
  871. teradataml/data/nb_iris_input_test.csv +31 -0
  872. teradataml/data/nb_iris_input_train.csv +121 -0
  873. teradataml/data/nbp_iris_model.csv +13 -0
  874. teradataml/data/ner_dict.csv +8 -0
  875. teradataml/data/ner_extractor_text.csv +2 -0
  876. teradataml/data/ner_input_eng.csv +7 -0
  877. teradataml/data/ner_rule.csv +5 -0
  878. teradataml/data/ner_sports_test2.csv +29 -0
  879. teradataml/data/ner_sports_train.csv +501 -0
  880. teradataml/data/nerevaluator_example.json +6 -0
  881. teradataml/data/nerextractor_example.json +18 -0
  882. teradataml/data/nermem_sports_test.csv +18 -0
  883. teradataml/data/nermem_sports_train.csv +51 -0
  884. teradataml/data/nertrainer_example.json +7 -0
  885. teradataml/data/ngrams_example.json +7 -0
  886. teradataml/data/notebooks/__init__.py +0 -0
  887. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -0
  888. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -0
  889. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -0
  890. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -0
  891. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -0
  892. teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -0
  893. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -0
  894. teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -0
  895. teradataml/data/notebooks/sqlalchemy/__init__.py +0 -0
  896. teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -0
  897. teradataml/data/npath_example.json +23 -0
  898. teradataml/data/ntree_example.json +14 -0
  899. teradataml/data/numeric_strings.csv +5 -0
  900. teradataml/data/numerics.csv +4 -0
  901. teradataml/data/ocean_buoy.csv +17 -0
  902. teradataml/data/ocean_buoy2.csv +17 -0
  903. teradataml/data/ocean_buoys.csv +28 -0
  904. teradataml/data/ocean_buoys2.csv +10 -0
  905. teradataml/data/ocean_buoys_nonpti.csv +28 -0
  906. teradataml/data/ocean_buoys_seq.csv +29 -0
  907. teradataml/data/onehot_encoder_train.csv +4 -0
  908. teradataml/data/openml_example.json +92 -0
  909. teradataml/data/optional_event_table.csv +4 -0
  910. teradataml/data/orders1.csv +11 -0
  911. teradataml/data/orders1_12.csv +13 -0
  912. teradataml/data/orders_ex.csv +4 -0
  913. teradataml/data/pack_example.json +9 -0
  914. teradataml/data/package_tracking.csv +19 -0
  915. teradataml/data/package_tracking_pti.csv +19 -0
  916. teradataml/data/pagerank_example.json +13 -0
  917. teradataml/data/paragraphs_input.csv +6 -0
  918. teradataml/data/pathanalyzer_example.json +8 -0
  919. teradataml/data/pathgenerator_example.json +8 -0
  920. teradataml/data/patient_profile.csv +101 -0
  921. teradataml/data/pattern_matching_data.csv +11 -0
  922. teradataml/data/payment_fraud_dataset.csv +10001 -0
  923. teradataml/data/peppers.png +0 -0
  924. teradataml/data/phrases.csv +7 -0
  925. teradataml/data/pivot_example.json +9 -0
  926. teradataml/data/pivot_input.csv +22 -0
  927. teradataml/data/playerRating.csv +31 -0
  928. teradataml/data/pos_input.csv +40 -0
  929. teradataml/data/postagger_example.json +7 -0
  930. teradataml/data/posttagger_output.csv +44 -0
  931. teradataml/data/production_data.csv +17 -0
  932. teradataml/data/production_data2.csv +7 -0
  933. teradataml/data/randomsample_example.json +32 -0
  934. teradataml/data/randomwalksample_example.json +9 -0
  935. teradataml/data/rank_table.csv +6 -0
  936. teradataml/data/real_values.csv +14 -0
  937. teradataml/data/ref_mobile_data.csv +4 -0
  938. teradataml/data/ref_mobile_data_dense.csv +2 -0
  939. teradataml/data/ref_url.csv +17 -0
  940. teradataml/data/restaurant_reviews.csv +7 -0
  941. teradataml/data/retail_churn_table.csv +27772 -0
  942. teradataml/data/river_data.csv +145 -0
  943. teradataml/data/roc_example.json +8 -0
  944. teradataml/data/roc_input.csv +101 -0
  945. teradataml/data/rule_inputs.csv +6 -0
  946. teradataml/data/rule_table.csv +2 -0
  947. teradataml/data/sales.csv +7 -0
  948. teradataml/data/sales_transaction.csv +501 -0
  949. teradataml/data/salesdata.csv +342 -0
  950. teradataml/data/sample_cities.csv +3 -0
  951. teradataml/data/sample_shapes.csv +11 -0
  952. teradataml/data/sample_streets.csv +3 -0
  953. teradataml/data/sampling_example.json +16 -0
  954. teradataml/data/sax_example.json +17 -0
  955. teradataml/data/scale_attributes.csv +3 -0
  956. teradataml/data/scale_example.json +74 -0
  957. teradataml/data/scale_housing.csv +11 -0
  958. teradataml/data/scale_housing_test.csv +6 -0
  959. teradataml/data/scale_input_part_sparse.csv +31 -0
  960. teradataml/data/scale_input_partitioned.csv +16 -0
  961. teradataml/data/scale_input_sparse.csv +11 -0
  962. teradataml/data/scale_parameters.csv +3 -0
  963. teradataml/data/scale_stat.csv +11 -0
  964. teradataml/data/scalebypartition_example.json +13 -0
  965. teradataml/data/scalemap_example.json +13 -0
  966. teradataml/data/scalesummary_example.json +12 -0
  967. teradataml/data/score_category.csv +101 -0
  968. teradataml/data/score_summary.csv +4 -0
  969. teradataml/data/script_example.json +10 -0
  970. teradataml/data/scripts/deploy_script.py +84 -0
  971. teradataml/data/scripts/lightgbm/dataset.template +175 -0
  972. teradataml/data/scripts/lightgbm/lightgbm_class_functions.template +264 -0
  973. teradataml/data/scripts/lightgbm/lightgbm_function.template +234 -0
  974. teradataml/data/scripts/lightgbm/lightgbm_sklearn.template +177 -0
  975. teradataml/data/scripts/mapper.R +20 -0
  976. teradataml/data/scripts/mapper.py +16 -0
  977. teradataml/data/scripts/mapper_replace.py +16 -0
  978. teradataml/data/scripts/sklearn/__init__.py +0 -0
  979. teradataml/data/scripts/sklearn/sklearn_fit.py +205 -0
  980. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +148 -0
  981. teradataml/data/scripts/sklearn/sklearn_function.template +144 -0
  982. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +166 -0
  983. teradataml/data/scripts/sklearn/sklearn_neighbors.py +161 -0
  984. teradataml/data/scripts/sklearn/sklearn_score.py +145 -0
  985. teradataml/data/scripts/sklearn/sklearn_transform.py +327 -0
  986. teradataml/data/sdk/modelops/modelops_spec.json +101737 -0
  987. teradataml/data/seeds.csv +10 -0
  988. teradataml/data/sentenceextractor_example.json +7 -0
  989. teradataml/data/sentiment_extract_input.csv +11 -0
  990. teradataml/data/sentiment_train.csv +16 -0
  991. teradataml/data/sentiment_word.csv +20 -0
  992. teradataml/data/sentiment_word_input.csv +20 -0
  993. teradataml/data/sentimentextractor_example.json +24 -0
  994. teradataml/data/sentimenttrainer_example.json +8 -0
  995. teradataml/data/sequence_table.csv +10 -0
  996. teradataml/data/seriessplitter_example.json +8 -0
  997. teradataml/data/sessionize_example.json +17 -0
  998. teradataml/data/sessionize_table.csv +116 -0
  999. teradataml/data/setop_test1.csv +24 -0
  1000. teradataml/data/setop_test2.csv +22 -0
  1001. teradataml/data/soc_nw_edges.csv +11 -0
  1002. teradataml/data/soc_nw_vertices.csv +8 -0
  1003. teradataml/data/souvenir_timeseries.csv +168 -0
  1004. teradataml/data/sparse_iris_attribute.csv +5 -0
  1005. teradataml/data/sparse_iris_test.csv +121 -0
  1006. teradataml/data/sparse_iris_train.csv +601 -0
  1007. teradataml/data/star1.csv +6 -0
  1008. teradataml/data/star_pivot.csv +8 -0
  1009. teradataml/data/state_transition.csv +5 -0
  1010. teradataml/data/stock_data.csv +53 -0
  1011. teradataml/data/stock_movement.csv +11 -0
  1012. teradataml/data/stock_vol.csv +76 -0
  1013. teradataml/data/stop_words.csv +8 -0
  1014. teradataml/data/store_sales.csv +37 -0
  1015. teradataml/data/stringsimilarity_example.json +8 -0
  1016. teradataml/data/strsimilarity_input.csv +13 -0
  1017. teradataml/data/students.csv +101 -0
  1018. teradataml/data/svm_iris_input_test.csv +121 -0
  1019. teradataml/data/svm_iris_input_train.csv +481 -0
  1020. teradataml/data/svm_iris_model.csv +7 -0
  1021. teradataml/data/svmdense_example.json +10 -0
  1022. teradataml/data/svmdensepredict_example.json +19 -0
  1023. teradataml/data/svmsparse_example.json +8 -0
  1024. teradataml/data/svmsparsepredict_example.json +14 -0
  1025. teradataml/data/svmsparsesummary_example.json +8 -0
  1026. teradataml/data/target_mobile_data.csv +13 -0
  1027. teradataml/data/target_mobile_data_dense.csv +5 -0
  1028. teradataml/data/target_udt_data.csv +8 -0
  1029. teradataml/data/tdnerextractor_example.json +14 -0
  1030. teradataml/data/templatedata.csv +1201 -0
  1031. teradataml/data/templates/open_source_ml.json +11 -0
  1032. teradataml/data/teradata_icon.ico +0 -0
  1033. teradataml/data/teradataml_example.json +1473 -0
  1034. teradataml/data/test_classification.csv +101 -0
  1035. teradataml/data/test_loan_prediction.csv +53 -0
  1036. teradataml/data/test_pacf_12.csv +37 -0
  1037. teradataml/data/test_prediction.csv +101 -0
  1038. teradataml/data/test_regression.csv +101 -0
  1039. teradataml/data/test_river2.csv +109 -0
  1040. teradataml/data/text_inputs.csv +6 -0
  1041. teradataml/data/textchunker_example.json +8 -0
  1042. teradataml/data/textclassifier_example.json +7 -0
  1043. teradataml/data/textclassifier_input.csv +7 -0
  1044. teradataml/data/textclassifiertrainer_example.json +7 -0
  1045. teradataml/data/textmorph_example.json +11 -0
  1046. teradataml/data/textparser_example.json +15 -0
  1047. teradataml/data/texttagger_example.json +12 -0
  1048. teradataml/data/texttokenizer_example.json +7 -0
  1049. teradataml/data/texttrainer_input.csv +11 -0
  1050. teradataml/data/tf_example.json +7 -0
  1051. teradataml/data/tfidf_example.json +14 -0
  1052. teradataml/data/tfidf_input1.csv +201 -0
  1053. teradataml/data/tfidf_train.csv +6 -0
  1054. teradataml/data/time_table1.csv +535 -0
  1055. teradataml/data/time_table2.csv +14 -0
  1056. teradataml/data/timeseriesdata.csv +1601 -0
  1057. teradataml/data/timeseriesdatasetsd4.csv +105 -0
  1058. teradataml/data/timestamp_data.csv +4 -0
  1059. teradataml/data/titanic.csv +892 -0
  1060. teradataml/data/titanic_dataset_unpivoted.csv +19 -0
  1061. teradataml/data/to_num_data.csv +4 -0
  1062. teradataml/data/tochar_data.csv +5 -0
  1063. teradataml/data/token_table.csv +696 -0
  1064. teradataml/data/train_multiclass.csv +101 -0
  1065. teradataml/data/train_regression.csv +101 -0
  1066. teradataml/data/train_regression_multiple_labels.csv +101 -0
  1067. teradataml/data/train_tracking.csv +28 -0
  1068. teradataml/data/trans_dense.csv +16 -0
  1069. teradataml/data/trans_sparse.csv +55 -0
  1070. teradataml/data/transformation_table.csv +6 -0
  1071. teradataml/data/transformation_table_new.csv +2 -0
  1072. teradataml/data/tv_spots.csv +16 -0
  1073. teradataml/data/twod_climate_data.csv +117 -0
  1074. teradataml/data/uaf_example.json +529 -0
  1075. teradataml/data/univariatestatistics_example.json +9 -0
  1076. teradataml/data/unpack_example.json +10 -0
  1077. teradataml/data/unpivot_example.json +25 -0
  1078. teradataml/data/unpivot_input.csv +8 -0
  1079. teradataml/data/url_data.csv +10 -0
  1080. teradataml/data/us_air_pass.csv +37 -0
  1081. teradataml/data/us_population.csv +624 -0
  1082. teradataml/data/us_states_shapes.csv +52 -0
  1083. teradataml/data/varmax_example.json +18 -0
  1084. teradataml/data/vectordistance_example.json +30 -0
  1085. teradataml/data/ville_climatedata.csv +121 -0
  1086. teradataml/data/ville_tempdata.csv +12 -0
  1087. teradataml/data/ville_tempdata1.csv +12 -0
  1088. teradataml/data/ville_temperature.csv +11 -0
  1089. teradataml/data/waveletTable.csv +1605 -0
  1090. teradataml/data/waveletTable2.csv +1605 -0
  1091. teradataml/data/weightedmovavg_example.json +9 -0
  1092. teradataml/data/wft_testing.csv +5 -0
  1093. teradataml/data/windowdfft.csv +16 -0
  1094. teradataml/data/wine_data.csv +1600 -0
  1095. teradataml/data/word_embed_input_table1.csv +6 -0
  1096. teradataml/data/word_embed_input_table2.csv +5 -0
  1097. teradataml/data/word_embed_model.csv +23 -0
  1098. teradataml/data/words_input.csv +13 -0
  1099. teradataml/data/xconvolve_complex_left.csv +6 -0
  1100. teradataml/data/xconvolve_complex_leftmulti.csv +6 -0
  1101. teradataml/data/xgboost_example.json +36 -0
  1102. teradataml/data/xgboostpredict_example.json +32 -0
  1103. teradataml/data/ztest_example.json +16 -0
  1104. teradataml/dataframe/__init__.py +0 -0
  1105. teradataml/dataframe/copy_to.py +2446 -0
  1106. teradataml/dataframe/data_transfer.py +2840 -0
  1107. teradataml/dataframe/dataframe.py +20908 -0
  1108. teradataml/dataframe/dataframe_utils.py +2114 -0
  1109. teradataml/dataframe/fastload.py +794 -0
  1110. teradataml/dataframe/functions.py +2110 -0
  1111. teradataml/dataframe/indexer.py +424 -0
  1112. teradataml/dataframe/row.py +160 -0
  1113. teradataml/dataframe/setop.py +1171 -0
  1114. teradataml/dataframe/sql.py +10904 -0
  1115. teradataml/dataframe/sql_function_parameters.py +440 -0
  1116. teradataml/dataframe/sql_functions.py +652 -0
  1117. teradataml/dataframe/sql_interfaces.py +220 -0
  1118. teradataml/dataframe/vantage_function_types.py +675 -0
  1119. teradataml/dataframe/window.py +694 -0
  1120. teradataml/dbutils/__init__.py +3 -0
  1121. teradataml/dbutils/dbutils.py +2871 -0
  1122. teradataml/dbutils/filemgr.py +318 -0
  1123. teradataml/gen_ai/__init__.py +2 -0
  1124. teradataml/gen_ai/convAI.py +473 -0
  1125. teradataml/geospatial/__init__.py +4 -0
  1126. teradataml/geospatial/geodataframe.py +1105 -0
  1127. teradataml/geospatial/geodataframecolumn.py +392 -0
  1128. teradataml/geospatial/geometry_types.py +926 -0
  1129. teradataml/hyperparameter_tuner/__init__.py +1 -0
  1130. teradataml/hyperparameter_tuner/optimizer.py +4115 -0
  1131. teradataml/hyperparameter_tuner/utils.py +303 -0
  1132. teradataml/lib/__init__.py +0 -0
  1133. teradataml/lib/aed_0_1.dll +0 -0
  1134. teradataml/lib/libaed_0_1.dylib +0 -0
  1135. teradataml/lib/libaed_0_1.so +0 -0
  1136. teradataml/lib/libaed_0_1_aarch64.so +0 -0
  1137. teradataml/lib/libaed_0_1_ppc64le.so +0 -0
  1138. teradataml/opensource/__init__.py +1 -0
  1139. teradataml/opensource/_base.py +1321 -0
  1140. teradataml/opensource/_class.py +464 -0
  1141. teradataml/opensource/_constants.py +61 -0
  1142. teradataml/opensource/_lightgbm.py +949 -0
  1143. teradataml/opensource/_sklearn.py +1008 -0
  1144. teradataml/opensource/_wrapper_utils.py +267 -0
  1145. teradataml/options/__init__.py +148 -0
  1146. teradataml/options/configure.py +489 -0
  1147. teradataml/options/display.py +187 -0
  1148. teradataml/plot/__init__.py +3 -0
  1149. teradataml/plot/axis.py +1427 -0
  1150. teradataml/plot/constants.py +15 -0
  1151. teradataml/plot/figure.py +431 -0
  1152. teradataml/plot/plot.py +810 -0
  1153. teradataml/plot/query_generator.py +83 -0
  1154. teradataml/plot/subplot.py +216 -0
  1155. teradataml/scriptmgmt/UserEnv.py +4273 -0
  1156. teradataml/scriptmgmt/__init__.py +3 -0
  1157. teradataml/scriptmgmt/lls_utils.py +2157 -0
  1158. teradataml/sdk/README.md +79 -0
  1159. teradataml/sdk/__init__.py +4 -0
  1160. teradataml/sdk/_auth_modes.py +422 -0
  1161. teradataml/sdk/_func_params.py +487 -0
  1162. teradataml/sdk/_json_parser.py +453 -0
  1163. teradataml/sdk/_openapi_spec_constants.py +249 -0
  1164. teradataml/sdk/_utils.py +236 -0
  1165. teradataml/sdk/api_client.py +900 -0
  1166. teradataml/sdk/constants.py +62 -0
  1167. teradataml/sdk/modelops/__init__.py +98 -0
  1168. teradataml/sdk/modelops/_client.py +409 -0
  1169. teradataml/sdk/modelops/_constants.py +304 -0
  1170. teradataml/sdk/modelops/models.py +2308 -0
  1171. teradataml/sdk/spinner.py +107 -0
  1172. teradataml/series/__init__.py +0 -0
  1173. teradataml/series/series.py +537 -0
  1174. teradataml/series/series_utils.py +71 -0
  1175. teradataml/store/__init__.py +12 -0
  1176. teradataml/store/feature_store/__init__.py +0 -0
  1177. teradataml/store/feature_store/constants.py +658 -0
  1178. teradataml/store/feature_store/feature_store.py +4814 -0
  1179. teradataml/store/feature_store/mind_map.py +639 -0
  1180. teradataml/store/feature_store/models.py +7330 -0
  1181. teradataml/store/feature_store/utils.py +390 -0
  1182. teradataml/table_operators/Apply.py +979 -0
  1183. teradataml/table_operators/Script.py +1739 -0
  1184. teradataml/table_operators/TableOperator.py +1343 -0
  1185. teradataml/table_operators/__init__.py +2 -0
  1186. teradataml/table_operators/apply_query_generator.py +262 -0
  1187. teradataml/table_operators/query_generator.py +493 -0
  1188. teradataml/table_operators/table_operator_query_generator.py +462 -0
  1189. teradataml/table_operators/table_operator_util.py +726 -0
  1190. teradataml/table_operators/templates/dataframe_apply.template +184 -0
  1191. teradataml/table_operators/templates/dataframe_map.template +176 -0
  1192. teradataml/table_operators/templates/dataframe_register.template +73 -0
  1193. teradataml/table_operators/templates/dataframe_udf.template +67 -0
  1194. teradataml/table_operators/templates/script_executor.template +170 -0
  1195. teradataml/telemetry_utils/__init__.py +0 -0
  1196. teradataml/telemetry_utils/queryband.py +53 -0
  1197. teradataml/utils/__init__.py +0 -0
  1198. teradataml/utils/docstring.py +527 -0
  1199. teradataml/utils/dtypes.py +943 -0
  1200. teradataml/utils/internal_buffer.py +122 -0
  1201. teradataml/utils/print_versions.py +206 -0
  1202. teradataml/utils/utils.py +451 -0
  1203. teradataml/utils/validators.py +3305 -0
  1204. teradataml-20.0.0.8.dist-info/METADATA +2804 -0
  1205. teradataml-20.0.0.8.dist-info/RECORD +1208 -0
  1206. teradataml-20.0.0.8.dist-info/WHEEL +5 -0
  1207. teradataml-20.0.0.8.dist-info/top_level.txt +1 -0
  1208. 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