teradataml 17.20.0.6__py3-none-any.whl → 20.0.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of teradataml might be problematic. Click here for more details.

Files changed (432) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +238 -1
  4. teradataml/__init__.py +13 -3
  5. teradataml/_version.py +1 -1
  6. teradataml/analytics/Transformations.py +4 -4
  7. teradataml/analytics/__init__.py +0 -2
  8. teradataml/analytics/analytic_function_executor.py +3 -0
  9. teradataml/analytics/json_parser/utils.py +13 -12
  10. teradataml/analytics/sqle/DecisionTreePredict.py +15 -30
  11. teradataml/analytics/sqle/NaiveBayesPredict.py +11 -20
  12. teradataml/analytics/sqle/__init__.py +0 -13
  13. teradataml/analytics/utils.py +1 -0
  14. teradataml/analytics/valib.py +3 -0
  15. teradataml/automl/__init__.py +1628 -0
  16. teradataml/automl/custom_json_utils.py +1270 -0
  17. teradataml/automl/data_preparation.py +993 -0
  18. teradataml/automl/data_transformation.py +727 -0
  19. teradataml/automl/feature_engineering.py +1648 -0
  20. teradataml/automl/feature_exploration.py +547 -0
  21. teradataml/automl/model_evaluation.py +163 -0
  22. teradataml/automl/model_training.py +887 -0
  23. teradataml/catalog/__init__.py +0 -2
  24. teradataml/catalog/byom.py +49 -6
  25. teradataml/catalog/function_argument_mapper.py +0 -2
  26. teradataml/catalog/model_cataloging_utils.py +2 -1021
  27. teradataml/common/aed_utils.py +6 -2
  28. teradataml/common/constants.py +50 -58
  29. teradataml/common/deprecations.py +160 -0
  30. teradataml/common/garbagecollector.py +61 -104
  31. teradataml/common/messagecodes.py +27 -36
  32. teradataml/common/messages.py +11 -15
  33. teradataml/common/utils.py +205 -287
  34. teradataml/common/wrapper_utils.py +1 -110
  35. teradataml/context/context.py +150 -78
  36. teradataml/data/bank_churn.csv +10001 -0
  37. teradataml/data/bmi.csv +501 -0
  38. teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +3 -3
  39. teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +6 -5
  40. teradataml/data/docs/sqle/docs_17_10/Fit.py +1 -1
  41. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +1 -1
  42. teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +1 -1
  43. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +2 -2
  44. teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +2 -1
  45. teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +1 -0
  46. teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +1 -1
  47. teradataml/data/docs/sqle/docs_17_10/Transform.py +2 -1
  48. teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +3 -3
  49. teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +6 -5
  50. teradataml/data/docs/sqle/docs_17_20/Fit.py +1 -1
  51. teradataml/data/docs/sqle/docs_17_20/GLM.py +1 -1
  52. teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +9 -10
  53. teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +3 -2
  54. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +16 -15
  55. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +2 -2
  56. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +2 -2
  57. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +8 -8
  58. teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +21 -20
  59. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +1 -1
  60. teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +8 -3
  61. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +6 -5
  62. teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +6 -6
  63. teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +2 -1
  64. teradataml/data/docs/sqle/docs_17_20/SVM.py +1 -1
  65. teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +16 -16
  66. teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +1 -0
  67. teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +3 -2
  68. teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +4 -4
  69. teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +19 -19
  70. teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +5 -4
  71. teradataml/data/docs/sqle/docs_17_20/Transform.py +2 -2
  72. teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +9 -9
  73. teradataml/data/fish.csv +160 -0
  74. teradataml/data/glass_types.csv +215 -0
  75. teradataml/data/insurance.csv +1 -1
  76. teradataml/data/iris_data.csv +151 -0
  77. teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +1 -0
  78. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +1 -0
  79. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +1 -0
  80. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +1 -0
  81. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +1 -0
  82. teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +1 -0
  83. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +1 -0
  84. teradataml/data/load_example_data.py +3 -0
  85. teradataml/data/multi_model_classification.csv +401 -0
  86. teradataml/data/multi_model_regression.csv +401 -0
  87. teradataml/data/openml_example.json +63 -0
  88. teradataml/data/scripts/deploy_script.py +65 -0
  89. teradataml/data/scripts/mapper.R +20 -0
  90. teradataml/data/scripts/sklearn/__init__.py +0 -0
  91. teradataml/data/scripts/sklearn/sklearn_fit.py +175 -0
  92. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +135 -0
  93. teradataml/data/scripts/sklearn/sklearn_function.template +113 -0
  94. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +158 -0
  95. teradataml/data/scripts/sklearn/sklearn_neighbors.py +152 -0
  96. teradataml/data/scripts/sklearn/sklearn_score.py +128 -0
  97. teradataml/data/scripts/sklearn/sklearn_transform.py +179 -0
  98. teradataml/data/templates/open_source_ml.json +9 -0
  99. teradataml/data/teradataml_example.json +73 -1
  100. teradataml/data/test_classification.csv +101 -0
  101. teradataml/data/test_prediction.csv +101 -0
  102. teradataml/data/test_regression.csv +101 -0
  103. teradataml/data/train_multiclass.csv +101 -0
  104. teradataml/data/train_regression.csv +101 -0
  105. teradataml/data/train_regression_multiple_labels.csv +101 -0
  106. teradataml/data/wine_data.csv +1600 -0
  107. teradataml/dataframe/copy_to.py +79 -13
  108. teradataml/dataframe/data_transfer.py +8 -0
  109. teradataml/dataframe/dataframe.py +910 -311
  110. teradataml/dataframe/dataframe_utils.py +102 -5
  111. teradataml/dataframe/fastload.py +11 -3
  112. teradataml/dataframe/setop.py +15 -2
  113. teradataml/dataframe/sql.py +3735 -77
  114. teradataml/dataframe/sql_function_parameters.py +56 -5
  115. teradataml/dataframe/vantage_function_types.py +45 -1
  116. teradataml/dataframe/window.py +30 -29
  117. teradataml/dbutils/dbutils.py +18 -1
  118. teradataml/geospatial/geodataframe.py +18 -7
  119. teradataml/geospatial/geodataframecolumn.py +5 -0
  120. teradataml/hyperparameter_tuner/optimizer.py +910 -120
  121. teradataml/hyperparameter_tuner/utils.py +131 -37
  122. teradataml/lib/aed_0_1.dll +0 -0
  123. teradataml/lib/libaed_0_1.dylib +0 -0
  124. teradataml/lib/libaed_0_1.so +0 -0
  125. teradataml/libaed_0_1.dylib +0 -0
  126. teradataml/libaed_0_1.so +0 -0
  127. teradataml/opensource/__init__.py +1 -0
  128. teradataml/opensource/sklearn/__init__.py +1 -0
  129. teradataml/opensource/sklearn/_class.py +255 -0
  130. teradataml/opensource/sklearn/_sklearn_wrapper.py +1668 -0
  131. teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
  132. teradataml/opensource/sklearn/constants.py +54 -0
  133. teradataml/options/__init__.py +3 -6
  134. teradataml/options/configure.py +21 -20
  135. teradataml/scriptmgmt/UserEnv.py +61 -5
  136. teradataml/scriptmgmt/lls_utils.py +135 -53
  137. teradataml/table_operators/Apply.py +38 -6
  138. teradataml/table_operators/Script.py +45 -308
  139. teradataml/table_operators/TableOperator.py +182 -591
  140. teradataml/table_operators/__init__.py +0 -1
  141. teradataml/table_operators/table_operator_util.py +32 -40
  142. teradataml/utils/validators.py +127 -3
  143. {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/METADATA +243 -3
  144. {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/RECORD +147 -391
  145. teradataml/analytics/mle/AdaBoost.py +0 -651
  146. teradataml/analytics/mle/AdaBoostPredict.py +0 -564
  147. teradataml/analytics/mle/Antiselect.py +0 -342
  148. teradataml/analytics/mle/Arima.py +0 -641
  149. teradataml/analytics/mle/ArimaPredict.py +0 -477
  150. teradataml/analytics/mle/Attribution.py +0 -1070
  151. teradataml/analytics/mle/Betweenness.py +0 -658
  152. teradataml/analytics/mle/Burst.py +0 -711
  153. teradataml/analytics/mle/CCM.py +0 -600
  154. teradataml/analytics/mle/CCMPrepare.py +0 -324
  155. teradataml/analytics/mle/CFilter.py +0 -460
  156. teradataml/analytics/mle/ChangePointDetection.py +0 -572
  157. teradataml/analytics/mle/ChangePointDetectionRT.py +0 -477
  158. teradataml/analytics/mle/Closeness.py +0 -737
  159. teradataml/analytics/mle/ConfusionMatrix.py +0 -420
  160. teradataml/analytics/mle/Correlation.py +0 -477
  161. teradataml/analytics/mle/Correlation2.py +0 -573
  162. teradataml/analytics/mle/CoxHazardRatio.py +0 -679
  163. teradataml/analytics/mle/CoxPH.py +0 -556
  164. teradataml/analytics/mle/CoxSurvival.py +0 -478
  165. teradataml/analytics/mle/CumulativeMovAvg.py +0 -363
  166. teradataml/analytics/mle/DTW.py +0 -623
  167. teradataml/analytics/mle/DWT.py +0 -564
  168. teradataml/analytics/mle/DWT2D.py +0 -599
  169. teradataml/analytics/mle/DecisionForest.py +0 -716
  170. teradataml/analytics/mle/DecisionForestEvaluator.py +0 -363
  171. teradataml/analytics/mle/DecisionForestPredict.py +0 -561
  172. teradataml/analytics/mle/DecisionTree.py +0 -830
  173. teradataml/analytics/mle/DecisionTreePredict.py +0 -528
  174. teradataml/analytics/mle/ExponentialMovAvg.py +0 -418
  175. teradataml/analytics/mle/FMeasure.py +0 -402
  176. teradataml/analytics/mle/FPGrowth.py +0 -734
  177. teradataml/analytics/mle/FrequentPaths.py +0 -695
  178. teradataml/analytics/mle/GLM.py +0 -558
  179. teradataml/analytics/mle/GLML1L2.py +0 -547
  180. teradataml/analytics/mle/GLML1L2Predict.py +0 -519
  181. teradataml/analytics/mle/GLMPredict.py +0 -529
  182. teradataml/analytics/mle/HMMDecoder.py +0 -945
  183. teradataml/analytics/mle/HMMEvaluator.py +0 -901
  184. teradataml/analytics/mle/HMMSupervised.py +0 -521
  185. teradataml/analytics/mle/HMMUnsupervised.py +0 -572
  186. teradataml/analytics/mle/Histogram.py +0 -561
  187. teradataml/analytics/mle/IDWT.py +0 -476
  188. teradataml/analytics/mle/IDWT2D.py +0 -493
  189. teradataml/analytics/mle/IdentityMatch.py +0 -763
  190. teradataml/analytics/mle/Interpolator.py +0 -918
  191. teradataml/analytics/mle/KMeans.py +0 -485
  192. teradataml/analytics/mle/KNN.py +0 -627
  193. teradataml/analytics/mle/KNNRecommender.py +0 -488
  194. teradataml/analytics/mle/KNNRecommenderPredict.py +0 -581
  195. teradataml/analytics/mle/LAR.py +0 -439
  196. teradataml/analytics/mle/LARPredict.py +0 -478
  197. teradataml/analytics/mle/LDA.py +0 -548
  198. teradataml/analytics/mle/LDAInference.py +0 -492
  199. teradataml/analytics/mle/LDATopicSummary.py +0 -464
  200. teradataml/analytics/mle/LevenshteinDistance.py +0 -450
  201. teradataml/analytics/mle/LinReg.py +0 -433
  202. teradataml/analytics/mle/LinRegPredict.py +0 -438
  203. teradataml/analytics/mle/MinHash.py +0 -544
  204. teradataml/analytics/mle/Modularity.py +0 -587
  205. teradataml/analytics/mle/NEREvaluator.py +0 -410
  206. teradataml/analytics/mle/NERExtractor.py +0 -595
  207. teradataml/analytics/mle/NERTrainer.py +0 -458
  208. teradataml/analytics/mle/NGrams.py +0 -570
  209. teradataml/analytics/mle/NPath.py +0 -634
  210. teradataml/analytics/mle/NTree.py +0 -549
  211. teradataml/analytics/mle/NaiveBayes.py +0 -462
  212. teradataml/analytics/mle/NaiveBayesPredict.py +0 -513
  213. teradataml/analytics/mle/NaiveBayesTextClassifier.py +0 -607
  214. teradataml/analytics/mle/NaiveBayesTextClassifier2.py +0 -531
  215. teradataml/analytics/mle/NaiveBayesTextClassifierPredict.py +0 -799
  216. teradataml/analytics/mle/NamedEntityFinder.py +0 -529
  217. teradataml/analytics/mle/NamedEntityFinderEvaluator.py +0 -414
  218. teradataml/analytics/mle/NamedEntityFinderTrainer.py +0 -396
  219. teradataml/analytics/mle/POSTagger.py +0 -417
  220. teradataml/analytics/mle/Pack.py +0 -411
  221. teradataml/analytics/mle/PageRank.py +0 -535
  222. teradataml/analytics/mle/PathAnalyzer.py +0 -426
  223. teradataml/analytics/mle/PathGenerator.py +0 -367
  224. teradataml/analytics/mle/PathStart.py +0 -464
  225. teradataml/analytics/mle/PathSummarizer.py +0 -470
  226. teradataml/analytics/mle/Pivot.py +0 -471
  227. teradataml/analytics/mle/ROC.py +0 -425
  228. teradataml/analytics/mle/RandomSample.py +0 -637
  229. teradataml/analytics/mle/RandomWalkSample.py +0 -490
  230. teradataml/analytics/mle/SAX.py +0 -779
  231. teradataml/analytics/mle/SVMDense.py +0 -677
  232. teradataml/analytics/mle/SVMDensePredict.py +0 -536
  233. teradataml/analytics/mle/SVMDenseSummary.py +0 -437
  234. teradataml/analytics/mle/SVMSparse.py +0 -557
  235. teradataml/analytics/mle/SVMSparsePredict.py +0 -553
  236. teradataml/analytics/mle/SVMSparseSummary.py +0 -435
  237. teradataml/analytics/mle/Sampling.py +0 -549
  238. teradataml/analytics/mle/Scale.py +0 -565
  239. teradataml/analytics/mle/ScaleByPartition.py +0 -496
  240. teradataml/analytics/mle/ScaleMap.py +0 -378
  241. teradataml/analytics/mle/ScaleSummary.py +0 -320
  242. teradataml/analytics/mle/SentenceExtractor.py +0 -363
  243. teradataml/analytics/mle/SentimentEvaluator.py +0 -432
  244. teradataml/analytics/mle/SentimentExtractor.py +0 -578
  245. teradataml/analytics/mle/SentimentTrainer.py +0 -405
  246. teradataml/analytics/mle/SeriesSplitter.py +0 -641
  247. teradataml/analytics/mle/Sessionize.py +0 -475
  248. teradataml/analytics/mle/SimpleMovAvg.py +0 -397
  249. teradataml/analytics/mle/StringSimilarity.py +0 -425
  250. teradataml/analytics/mle/TF.py +0 -389
  251. teradataml/analytics/mle/TFIDF.py +0 -504
  252. teradataml/analytics/mle/TextChunker.py +0 -414
  253. teradataml/analytics/mle/TextClassifier.py +0 -399
  254. teradataml/analytics/mle/TextClassifierEvaluator.py +0 -413
  255. teradataml/analytics/mle/TextClassifierTrainer.py +0 -565
  256. teradataml/analytics/mle/TextMorph.py +0 -494
  257. teradataml/analytics/mle/TextParser.py +0 -623
  258. teradataml/analytics/mle/TextTagger.py +0 -530
  259. teradataml/analytics/mle/TextTokenizer.py +0 -502
  260. teradataml/analytics/mle/UnivariateStatistics.py +0 -488
  261. teradataml/analytics/mle/Unpack.py +0 -526
  262. teradataml/analytics/mle/Unpivot.py +0 -438
  263. teradataml/analytics/mle/VarMax.py +0 -776
  264. teradataml/analytics/mle/VectorDistance.py +0 -762
  265. teradataml/analytics/mle/WeightedMovAvg.py +0 -400
  266. teradataml/analytics/mle/XGBoost.py +0 -842
  267. teradataml/analytics/mle/XGBoostPredict.py +0 -627
  268. teradataml/analytics/mle/__init__.py +0 -123
  269. teradataml/analytics/mle/json/adaboost_mle.json +0 -135
  270. teradataml/analytics/mle/json/adaboostpredict_mle.json +0 -85
  271. teradataml/analytics/mle/json/antiselect_mle.json +0 -34
  272. teradataml/analytics/mle/json/antiselect_mle_mle.json +0 -34
  273. teradataml/analytics/mle/json/arima_mle.json +0 -172
  274. teradataml/analytics/mle/json/arimapredict_mle.json +0 -52
  275. teradataml/analytics/mle/json/attribution_mle_mle.json +0 -143
  276. teradataml/analytics/mle/json/betweenness_mle.json +0 -97
  277. teradataml/analytics/mle/json/burst_mle.json +0 -140
  278. teradataml/analytics/mle/json/ccm_mle.json +0 -124
  279. teradataml/analytics/mle/json/ccmprepare_mle.json +0 -14
  280. teradataml/analytics/mle/json/cfilter_mle.json +0 -93
  281. teradataml/analytics/mle/json/changepointdetection_mle.json +0 -92
  282. teradataml/analytics/mle/json/changepointdetectionrt_mle.json +0 -78
  283. teradataml/analytics/mle/json/closeness_mle.json +0 -104
  284. teradataml/analytics/mle/json/confusionmatrix_mle.json +0 -79
  285. teradataml/analytics/mle/json/correlation_mle.json +0 -86
  286. teradataml/analytics/mle/json/correlationreduce_mle.json +0 -49
  287. teradataml/analytics/mle/json/coxhazardratio_mle.json +0 -89
  288. teradataml/analytics/mle/json/coxph_mle.json +0 -98
  289. teradataml/analytics/mle/json/coxsurvival_mle.json +0 -79
  290. teradataml/analytics/mle/json/cumulativemovavg_mle.json +0 -34
  291. teradataml/analytics/mle/json/decisionforest_mle.json +0 -167
  292. teradataml/analytics/mle/json/decisionforestevaluator_mle.json +0 -33
  293. teradataml/analytics/mle/json/decisionforestpredict_mle_mle.json +0 -74
  294. teradataml/analytics/mle/json/decisiontree_mle.json +0 -194
  295. teradataml/analytics/mle/json/decisiontreepredict_mle_mle.json +0 -86
  296. teradataml/analytics/mle/json/dtw_mle.json +0 -97
  297. teradataml/analytics/mle/json/dwt2d_mle.json +0 -116
  298. teradataml/analytics/mle/json/dwt_mle.json +0 -101
  299. teradataml/analytics/mle/json/exponentialmovavg_mle.json +0 -55
  300. teradataml/analytics/mle/json/fmeasure_mle.json +0 -58
  301. teradataml/analytics/mle/json/fpgrowth_mle.json +0 -159
  302. teradataml/analytics/mle/json/frequentpaths_mle.json +0 -129
  303. teradataml/analytics/mle/json/glm_mle.json +0 -111
  304. teradataml/analytics/mle/json/glml1l2_mle.json +0 -106
  305. teradataml/analytics/mle/json/glml1l2predict_mle.json +0 -57
  306. teradataml/analytics/mle/json/glmpredict_mle_mle.json +0 -74
  307. teradataml/analytics/mle/json/histogram_mle.json +0 -100
  308. teradataml/analytics/mle/json/hmmdecoder_mle.json +0 -192
  309. teradataml/analytics/mle/json/hmmevaluator_mle.json +0 -206
  310. teradataml/analytics/mle/json/hmmsupervised_mle.json +0 -91
  311. teradataml/analytics/mle/json/hmmunsupervised_mle.json +0 -114
  312. teradataml/analytics/mle/json/identitymatch_mle.json +0 -88
  313. teradataml/analytics/mle/json/idwt2d_mle.json +0 -73
  314. teradataml/analytics/mle/json/idwt_mle.json +0 -66
  315. teradataml/analytics/mle/json/interpolator_mle.json +0 -151
  316. teradataml/analytics/mle/json/kmeans_mle.json +0 -97
  317. teradataml/analytics/mle/json/knn_mle.json +0 -141
  318. teradataml/analytics/mle/json/knnrecommender_mle.json +0 -111
  319. teradataml/analytics/mle/json/knnrecommenderpredict_mle.json +0 -75
  320. teradataml/analytics/mle/json/lar_mle.json +0 -78
  321. teradataml/analytics/mle/json/larpredict_mle.json +0 -69
  322. teradataml/analytics/mle/json/lda_mle.json +0 -130
  323. teradataml/analytics/mle/json/ldainference_mle.json +0 -78
  324. teradataml/analytics/mle/json/ldatopicsummary_mle.json +0 -64
  325. teradataml/analytics/mle/json/levenshteindistance_mle.json +0 -92
  326. teradataml/analytics/mle/json/linreg_mle.json +0 -42
  327. teradataml/analytics/mle/json/linregpredict_mle.json +0 -56
  328. teradataml/analytics/mle/json/minhash_mle.json +0 -113
  329. teradataml/analytics/mle/json/modularity_mle.json +0 -91
  330. teradataml/analytics/mle/json/naivebayespredict_mle_mle.json +0 -85
  331. teradataml/analytics/mle/json/naivebayesreduce_mle.json +0 -52
  332. teradataml/analytics/mle/json/naivebayestextclassifierpredict_mle_mle.json +0 -147
  333. teradataml/analytics/mle/json/naivebayestextclassifiertrainer2_mle.json +0 -108
  334. teradataml/analytics/mle/json/naivebayestextclassifiertrainer_mle.json +0 -102
  335. teradataml/analytics/mle/json/namedentityfinder_mle.json +0 -84
  336. teradataml/analytics/mle/json/namedentityfinderevaluatorreduce_mle.json +0 -43
  337. teradataml/analytics/mle/json/namedentityfindertrainer_mle.json +0 -64
  338. teradataml/analytics/mle/json/nerevaluator_mle.json +0 -54
  339. teradataml/analytics/mle/json/nerextractor_mle.json +0 -87
  340. teradataml/analytics/mle/json/nertrainer_mle.json +0 -89
  341. teradataml/analytics/mle/json/ngrams_mle.json +0 -137
  342. teradataml/analytics/mle/json/ngramsplitter_mle_mle.json +0 -137
  343. teradataml/analytics/mle/json/npath@coprocessor_mle.json +0 -73
  344. teradataml/analytics/mle/json/ntree@coprocessor_mle.json +0 -123
  345. teradataml/analytics/mle/json/pack_mle.json +0 -58
  346. teradataml/analytics/mle/json/pack_mle_mle.json +0 -58
  347. teradataml/analytics/mle/json/pagerank_mle.json +0 -81
  348. teradataml/analytics/mle/json/pathanalyzer_mle.json +0 -63
  349. teradataml/analytics/mle/json/pathgenerator_mle.json +0 -40
  350. teradataml/analytics/mle/json/pathstart_mle.json +0 -62
  351. teradataml/analytics/mle/json/pathsummarizer_mle.json +0 -72
  352. teradataml/analytics/mle/json/pivoting_mle.json +0 -71
  353. teradataml/analytics/mle/json/postagger_mle.json +0 -51
  354. teradataml/analytics/mle/json/randomsample_mle.json +0 -131
  355. teradataml/analytics/mle/json/randomwalksample_mle.json +0 -85
  356. teradataml/analytics/mle/json/roc_mle.json +0 -73
  357. teradataml/analytics/mle/json/sampling_mle.json +0 -75
  358. teradataml/analytics/mle/json/sax_mle.json +0 -154
  359. teradataml/analytics/mle/json/scale_mle.json +0 -93
  360. teradataml/analytics/mle/json/scalebypartition_mle.json +0 -89
  361. teradataml/analytics/mle/json/scalemap_mle.json +0 -44
  362. teradataml/analytics/mle/json/scalesummary_mle.json +0 -14
  363. teradataml/analytics/mle/json/sentenceextractor_mle.json +0 -41
  364. teradataml/analytics/mle/json/sentimentevaluator_mle.json +0 -43
  365. teradataml/analytics/mle/json/sentimentextractor_mle.json +0 -100
  366. teradataml/analytics/mle/json/sentimenttrainer_mle.json +0 -68
  367. teradataml/analytics/mle/json/seriessplitter_mle.json +0 -133
  368. teradataml/analytics/mle/json/sessionize_mle_mle.json +0 -62
  369. teradataml/analytics/mle/json/simplemovavg_mle.json +0 -48
  370. teradataml/analytics/mle/json/stringsimilarity_mle.json +0 -50
  371. teradataml/analytics/mle/json/stringsimilarity_mle_mle.json +0 -50
  372. teradataml/analytics/mle/json/svmdense_mle.json +0 -165
  373. teradataml/analytics/mle/json/svmdensepredict_mle.json +0 -95
  374. teradataml/analytics/mle/json/svmdensesummary_mle.json +0 -58
  375. teradataml/analytics/mle/json/svmsparse_mle.json +0 -148
  376. teradataml/analytics/mle/json/svmsparsepredict_mle_mle.json +0 -103
  377. teradataml/analytics/mle/json/svmsparsesummary_mle.json +0 -57
  378. teradataml/analytics/mle/json/textchunker_mle.json +0 -40
  379. teradataml/analytics/mle/json/textclassifier_mle.json +0 -51
  380. teradataml/analytics/mle/json/textclassifierevaluator_mle.json +0 -43
  381. teradataml/analytics/mle/json/textclassifiertrainer_mle.json +0 -103
  382. teradataml/analytics/mle/json/textmorph_mle.json +0 -63
  383. teradataml/analytics/mle/json/textparser_mle.json +0 -166
  384. teradataml/analytics/mle/json/texttagger_mle.json +0 -81
  385. teradataml/analytics/mle/json/texttokenizer_mle.json +0 -91
  386. teradataml/analytics/mle/json/tf_mle.json +0 -33
  387. teradataml/analytics/mle/json/tfidf_mle.json +0 -34
  388. teradataml/analytics/mle/json/univariatestatistics_mle.json +0 -81
  389. teradataml/analytics/mle/json/unpack_mle.json +0 -91
  390. teradataml/analytics/mle/json/unpack_mle_mle.json +0 -91
  391. teradataml/analytics/mle/json/unpivoting_mle.json +0 -63
  392. teradataml/analytics/mle/json/varmax_mle.json +0 -176
  393. teradataml/analytics/mle/json/vectordistance_mle.json +0 -179
  394. teradataml/analytics/mle/json/weightedmovavg_mle.json +0 -48
  395. teradataml/analytics/mle/json/xgboost_mle.json +0 -178
  396. teradataml/analytics/mle/json/xgboostpredict_mle.json +0 -104
  397. teradataml/analytics/sqle/Antiselect.py +0 -321
  398. teradataml/analytics/sqle/Attribution.py +0 -603
  399. teradataml/analytics/sqle/DecisionForestPredict.py +0 -408
  400. teradataml/analytics/sqle/GLMPredict.py +0 -430
  401. teradataml/analytics/sqle/MovingAverage.py +0 -543
  402. teradataml/analytics/sqle/NGramSplitter.py +0 -548
  403. teradataml/analytics/sqle/NPath.py +0 -632
  404. teradataml/analytics/sqle/NaiveBayesTextClassifierPredict.py +0 -515
  405. teradataml/analytics/sqle/Pack.py +0 -388
  406. teradataml/analytics/sqle/SVMSparsePredict.py +0 -464
  407. teradataml/analytics/sqle/Sessionize.py +0 -390
  408. teradataml/analytics/sqle/StringSimilarity.py +0 -400
  409. teradataml/analytics/sqle/Unpack.py +0 -503
  410. teradataml/analytics/sqle/json/antiselect_sqle.json +0 -21
  411. teradataml/analytics/sqle/json/attribution_sqle.json +0 -92
  412. teradataml/analytics/sqle/json/decisionforestpredict_sqle.json +0 -48
  413. teradataml/analytics/sqle/json/glmpredict_sqle.json +0 -48
  414. teradataml/analytics/sqle/json/h2opredict_sqle.json +0 -63
  415. teradataml/analytics/sqle/json/movingaverage_sqle.json +0 -58
  416. teradataml/analytics/sqle/json/naivebayestextclassifierpredict_sqle.json +0 -76
  417. teradataml/analytics/sqle/json/ngramsplitter_sqle.json +0 -126
  418. teradataml/analytics/sqle/json/npath_sqle.json +0 -67
  419. teradataml/analytics/sqle/json/pack_sqle.json +0 -47
  420. teradataml/analytics/sqle/json/pmmlpredict_sqle.json +0 -55
  421. teradataml/analytics/sqle/json/sessionize_sqle.json +0 -43
  422. teradataml/analytics/sqle/json/stringsimilarity_sqle.json +0 -39
  423. teradataml/analytics/sqle/json/svmsparsepredict_sqle.json +0 -74
  424. teradataml/analytics/sqle/json/unpack_sqle.json +0 -80
  425. teradataml/catalog/model_cataloging.py +0 -980
  426. teradataml/config/mlengine_alias_definitions_v1.0 +0 -118
  427. teradataml/config/mlengine_alias_definitions_v1.1 +0 -127
  428. teradataml/config/mlengine_alias_definitions_v1.3 +0 -129
  429. teradataml/table_operators/sandbox_container_util.py +0 -643
  430. {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/WHEEL +0 -0
  431. {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/top_level.txt +0 -0
  432. {teradataml-17.20.0.6.dist-info → teradataml-20.0.0.0.dist-info}/zip-safe +0 -0
@@ -27,87 +27,6 @@ import teradataml.dataframe as tdmldf
27
27
  from teradatasqlalchemy.types import INTEGER, SMALLINT, BIGINT, BYTEINT, FLOAT, NUMBER, VARCHAR, BYTE
28
28
 
29
29
  FUNCTION_PREDICTION_TYPE_MAPPER = {
30
- # MLE functions
31
- 'teradataml.analytics.mle.AdaBoost.AdaBoost':
32
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
33
- 'teradataml.analytics.mle.AdaBoostPredict.AdaBoostPredict':
34
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
35
- 'teradataml.analytics.mle.Arima.Arima':
36
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
37
- 'teradataml.analytics.mle.ArimaPredict.ArimaPredict':
38
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
39
- 'teradataml.analytics.mle.CoxHazardRatio.CoxHazardRatio':
40
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
41
- 'teradataml.analytics.mle.CoxPH.CoxPH':
42
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
43
- 'teradataml.analytics.mle.CoxSurvival.CoxSurvival':
44
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
45
- 'teradataml.analytics.mle.DecisionTree.DecisionTree':
46
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
47
- 'teradataml.analytics.mle.DecisionTreePredict.DecisionTreePredict':
48
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
49
- 'teradataml.analytics.mle.GLM.GLM':
50
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
51
- 'teradataml.analytics.mle.GLML1L2.GLML1L2':
52
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
53
- 'teradataml.analytics.mle.GLML1L2Predict.GLML1L2Predict':
54
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
55
- 'teradataml.analytics.mle.GLMPredict.GLMPredict':
56
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
57
- 'teradataml.analytics.mle.KMeans.KMeans':
58
- ModelCatalogingConstants.PREDICTION_TYPE_CLUSTERING.value,
59
- 'teradataml.analytics.mle.KNN.KNN':
60
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
61
- 'teradataml.analytics.mle.LAR.LAR':
62
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
63
- 'teradataml.analytics.mle.LARPredict.LARPredict':
64
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
65
- 'teradataml.analytics.mle.LDA.LDA':
66
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
67
- 'teradataml.analytics.mle.LDAInference.LDAInference':
68
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
69
- 'teradataml.analytics.mle.LDATopicSummary.LDATopicSummary':
70
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
71
- 'teradataml.analytics.mle.LinReg.LinReg':
72
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
73
- 'teradataml.analytics.mle.LinRegPredict.LinRegPredict':
74
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
75
- 'teradataml.analytics.mle.MinHash.MinHash':
76
- ModelCatalogingConstants.PREDICTION_TYPE_CLUSTERING.value,
77
- 'teradataml.analytics.mle.NaiveBayes.NaiveBayes':
78
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
79
- 'teradataml.analytics.mle.NaiveBayesPredict.NaiveBayesPredict':
80
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
81
- 'teradataml.analytics.mle.NaiveBayesTextClassifier.NaiveBayesTextClassifier':
82
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
83
- 'teradataml.analytics.mle.NaiveBayesTextClassifier2.NaiveBayesTextClassifier2':
84
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
85
- 'teradataml.analytics.mle.NaiveBayesTextClassifierPredict.NaiveBayesTextClassifierPredict':
86
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
87
- 'teradataml.analytics.mle.SVMDense.SVMDense':
88
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
89
- 'teradataml.analytics.mle.SVMDensePredict.SVMDensePredict':
90
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
91
- 'teradataml.analytics.mle.SVMDenseSummary.SVMDenseSummary':
92
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
93
- 'teradataml.analytics.mle.SVMSparse.SVMSparse':
94
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
95
- 'teradataml.analytics.mle.SVMSparsePredict.SVMSparsePredict':
96
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
97
- 'teradataml.analytics.mle.SVMSparseSummary.SVMSparseSummary':
98
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
99
- 'teradataml.analytics.mle.TextClassifierTrainer.TextClassifierTrainer':
100
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
101
- 'teradataml.analytics.mle.TextClassifier.TextClassifier':
102
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
103
- 'teradataml.analytics.mle.TextClassifierTrainerEvaluator.TextClassifierTrainerEvaluator':
104
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
105
- 'teradataml.analytics.mle.VarMax.VarMax':
106
- ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value,
107
- 'teradataml.analytics.mle.XGBoost.XGBoost':
108
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
109
- 'teradataml.analytics.mle.XGBoostPredict.XGBoostPredict':
110
- ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
111
30
  # SQLE functions
112
31
  'teradataml.analytics.sqle.DecisionTreePredict.DecisionTreePredict':
113
32
  ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value,
@@ -121,11 +40,6 @@ FUNCTION_PREDICTION_TYPE_MAPPER = {
121
40
  ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value
122
41
  }
123
42
 
124
- # List of functions having the prediction dependent on the inputs
125
- INPUT_DEPENDENT_PREDICTION_TYPE_FUNCTION_LIST = [
126
- 'teradataml.analytics.mle.DecisionForest.DecisionForest'
127
- ]
128
-
129
43
 
130
44
  class AnalyticsWrapperUtils:
131
45
 
@@ -673,24 +587,6 @@ class AnalyticsWrapperUtils:
673
587
  # This list serves as a quick lookup.
674
588
  function_name_with_module = '{}.{}'.format(function_obj.__class__.__module__, function_obj.__class__.__name__)
675
589
 
676
- if function_name_with_module == 'teradataml.analytics.mle.DecisionForest.DecisionForest':
677
- # Check the tree_type argument to the function
678
- if function_obj.tree_type is not None:
679
- # The tree_type argument can be either 'regression' or 'classification'.
680
- # We can return it as is.
681
- return function_obj.tree_type.upper()
682
- else:
683
- # Since tree_type was not used, we will have to check the type of the response column used with formula
684
- formula_object = self._validate_formula_notation(function_obj.formula, input_data, "formula")
685
- # response variable
686
- response = formula_object._get_dependent_vars()
687
-
688
- common_util = UtilFuncs()
689
- if response in formula_object.get_all_columns(common_util._get_numeric_datatypes()):
690
- # The response column is numeric, so the prediction type is REGRESSION
691
- return ModelCatalogingConstants.PREDICTION_TYPE_REGRESSION.value
692
- else:
693
- return ModelCatalogingConstants.PREDICTION_TYPE_CLASSIFICATION.value
694
590
 
695
591
  def _get_function_prediction_type(self, function_obj, input_data=None):
696
592
  """
@@ -726,9 +622,4 @@ class AnalyticsWrapperUtils:
726
622
  try:
727
623
  return FUNCTION_PREDICTION_TYPE_MAPPER[function_name_with_module]
728
624
  except KeyError:
729
- # If we are here, it means that the functions prediction type is either dependent
730
- # in its input, or must default to OTHER
731
- if function_name_with_module not in INPUT_DEPENDENT_PREDICTION_TYPE_FUNCTION_LIST:
732
- return ModelCatalogingConstants.PREDICTION_TYPE_OTHER.value
733
- else:
734
- return self.__get_input_dependent_prediction_type(function_obj, input_data)
625
+ return self.__get_input_dependent_prediction_type(function_obj, input_data)
@@ -13,7 +13,10 @@ A teradataml context functions provide interface to Teradata Vantage. Provides f
13
13
  context which can be used by other analytical functions to get the Teradata Vantage connection.
14
14
 
15
15
  """
16
+ from pathlib import Path
16
17
  from sqlalchemy import create_engine
18
+ from teradatasqlalchemy.telemetry.queryband import collect_queryband
19
+ from teradataml.common.deprecations import argument_deprecation
17
20
  from teradataml.common.exceptions import TeradataMlException
18
21
  from teradataml.common.warnings import TeradataMlRuntimeWarning
19
22
  from teradataml.common.messages import Messages
@@ -23,12 +26,12 @@ from teradataml.common.constants import SQLConstants
23
26
  from teradataml.common.garbagecollector import GarbageCollector
24
27
  from teradataml.context.aed_context import AEDContext
25
28
  from teradataml.common.constants import TeradataConstants, Query
26
- from teradataml.common.utils import UtilFuncs
27
29
  from teradataml.options.configure import configure
28
30
  from teradataml.utils.utils import execute_sql
29
31
  from teradataml.utils.validators import _Validators
30
32
  from teradataml.utils.internal_buffer import _InternalBuffer
31
33
  from sqlalchemy.engine.base import Engine
34
+ from sqlalchemy.engine.url import URL
32
35
  import os
33
36
  import warnings
34
37
  import atexit
@@ -122,7 +125,7 @@ def __cleanup_garbage_collection():
122
125
  def _get_other_connection_parameters(logmech = None, logdata = None, database = None, **kwargs):
123
126
  """
124
127
  DESCRIPTION:
125
- Function to generate and return the string for connection parameters.
128
+ Internal function to return the connection parameters.
126
129
 
127
130
  PARAMETERS:
128
131
  logmech:
@@ -145,7 +148,7 @@ def _get_other_connection_parameters(logmech = None, logdata = None, database =
145
148
  Specifies the keyword value pairs of other connection parameters to create the connection string.
146
149
 
147
150
  RETURNS:
148
- String containing connection parameters, needed to generate engine URL.
151
+ dict, needed to generate engine URL.
149
152
 
150
153
  EXAMPLES:
151
154
  __get_other_connection_parameters(logmech = "JWT", logdata = "<jwt_token>", database = "<database_name>",
@@ -155,12 +158,14 @@ def _get_other_connection_parameters(logmech = None, logdata = None, database =
155
158
  if not logmech and not logdata and not database and len(kwargs) == 0:
156
159
  return ""
157
160
 
161
+ result = {}
162
+
158
163
  if logmech:
159
- kwargs['LOGMECH'] = logmech.upper()
164
+ result['LOGMECH'] = logmech.upper()
160
165
  if logdata:
161
- kwargs['LOGDATA'] = logdata
166
+ result['LOGDATA'] = logdata
162
167
  if database:
163
- kwargs['DATABASE'] = database
168
+ result['DATABASE'] = database
164
169
 
165
170
  # Create connection parameters string.
166
171
  other_params = []
@@ -174,11 +179,12 @@ def _get_other_connection_parameters(logmech = None, logdata = None, database =
174
179
  # Other type values like integer, boolean etc, are converted to string.
175
180
  # For boolean values, the connection string should contain lower case values i.e., True -> true
176
181
  val = str(val).lower()
177
- other_params.append("{}={}".format(key.upper(), val))
178
-
179
- return "/?{}".format("&".join(other_params))
182
+ result[key] = val
180
183
 
184
+ return result
181
185
 
186
+ @argument_deprecation("future", ["url_encode"], False, None)
187
+ @collect_queryband(queryband='CrtCxt')
182
188
  def create_context(host = None, username = None, password = None, tdsqlengine = None, temp_database_name = None,
183
189
  logmech = None, logdata = None, database = None, url_encode = True, **kwargs):
184
190
  """
@@ -284,36 +290,17 @@ def create_context(host = None, username = None, password = None, tdsqlengine =
284
290
  logmech:
285
291
  Optional Argument.
286
292
  Specifies the type of logon mechanism to establish a connection to Teradata Vantage.
287
- Permitted Values: 'TD2', 'TDNEGO', 'LDAP', 'KRB5' & 'JWT'.
288
- TD2:
289
- The Teradata 2 (TD2) mechanism provides authentication using a
290
- Vantage username and password. This is the default logon mechanism
291
- using which the connection is established to Vantage.
292
- TDNEGO:
293
- A security mechanism that automatically determines the actual
294
- mechanism required, based on policy, without user's involvement.
295
- The actual mechanism is determined by the TDGSS server configuration
296
- and by the security policy's mechanism restrictions.
297
- LDAP:
298
- A directory-based user logon to Vantage with a directory username
299
- and password and is authenticated by the directory.
300
- KRB5 (Kerberos):
301
- A directory-based user logon to Vantage with a domain username
302
- and password and is authenticated by Kerberos (KRB5 mechanism).
303
- Note: User must have a valid ticket-granting ticket in order to use this logon mechanism.
304
- JWT:
305
- The JSON Web Token (JWT) authentication mechanism enables single
306
- sign-on (SSO) to the Vantage after the user successfully authenticates
307
- to Teradata UDA User Service.
308
- Note: User must use logdata parameter when using 'JWT' as the logon mechanism.
309
- Types: str
310
-
311
- Note:
312
- teradataml expects the client environments are already setup with appropriate
313
- security mechanisms and are in working conditions.
293
+ Permitted Values: As supported by the teradata driver.
294
+ Notes:
295
+ 1. teradataml expects the client environments are already setup with appropriate
296
+ security mechanisms and are in working conditions.
297
+ 2. User must have a valid ticket-granting ticket in order to use KRB5 (Kerberos) logon mechanism.
298
+ 3. User must use logdata parameter when using 'JWT' as the logon mechanism.
299
+ 4. Browser Authentication is supported for Windows and macOS.
314
300
  For more information please refer Teradata Vantage™ - Advanced SQL Engine
315
301
  Security Administration at https://www.info.teradata.com/
316
-
302
+ Types: str
303
+
317
304
  logdata:
318
305
  Optional Argument.
319
306
  Specifies parameters to the LOGMECH command beyond those needed by the logon mechanism, such as
@@ -325,13 +312,6 @@ def create_context(host = None, username = None, password = None, tdsqlengine =
325
312
  Specifies the initial database to use after logon, instead of the user's default database.
326
313
  Types: str
327
314
 
328
- url_encode:
329
- Optional Argument.
330
- Specifies whether the password should be URL encoded or not.
331
- When set to True, passwords are URL encoded, otherwise not.
332
- Default Value: True
333
- Types: bool
334
-
335
315
  kwargs:
336
316
  Specifies the keyword-value pairs of connection parameters that are passed to Teradata SQL Driver for
337
317
  Python. Please refer to https://github.com/Teradata/python-driver#ConnectionParameters to get information
@@ -409,22 +389,6 @@ def create_context(host = None, username = None, password = None, tdsqlengine =
409
389
  >>> td_context = create_context(host = 'tdhost', username='tduser', password = 'tdpassword', tmode = 'tera',
410
390
  log = 8, lob_support = False)
411
391
 
412
- # Example 14: Create context when password has special characters.
413
- # In this example password "alice@pass" is encoded by default.
414
- >>> td_context = create_context(host = 'tdhost', username='alice_pass', password = 'alice@pass')
415
- UserWarning: Warning: Password is URL encoded.
416
-
417
- # Example 15: Create context when password contains space and special characters.
418
- # "url_encode" must be set to False and special characters should be manually encoded in the password.
419
- # For example, let's say password is: "kx%jj5/ g"
420
- # then password should be manually encoded as: "kx%25jj5%2F g"
421
- # where,
422
- # %25 represents the '%' character and
423
- # %2F represents the '/' character
424
- # space is not encoded.
425
- >>> td_context = create_context(host = 'tdhost', username='alice_pass', password = 'kx%25jj5%2F g',
426
- url_encode=False)
427
-
428
392
  """
429
393
  global td_connection
430
394
  global td_sqlalchemy_engine
@@ -432,16 +396,14 @@ def create_context(host = None, username = None, password = None, tdsqlengine =
432
396
  global user_specified_connection
433
397
  global python_packages_installed
434
398
  global td_user
435
- logmech_valid_values = ['TD2', 'TDNEGO', 'LDAP', 'KRB5', 'JWT']
436
399
  awu_matrix = []
437
400
  awu_matrix.append(["host", host, True, (str), True])
438
401
  awu_matrix.append(["username", username, True, (str), True])
439
402
  awu_matrix.append(["password", password, True, (str), True])
440
403
  awu_matrix.append(["tdsqlengine", tdsqlengine, True, (Engine)])
441
- awu_matrix.append(["logmech", logmech, True, (str), True, logmech_valid_values])
404
+ awu_matrix.append(["logmech", logmech, True, (str), True])
442
405
  awu_matrix.append(["logdata", logdata, True, (str), True])
443
406
  awu_matrix.append(["database", database, True, (str), True])
444
- awu_matrix.append(["url_encode", url_encode, True, (bool), True])
445
407
 
446
408
  awu = _Validators()
447
409
  awu._validate_function_arguments(awu_matrix)
@@ -459,7 +421,7 @@ def create_context(host = None, username = None, password = None, tdsqlengine =
459
421
  warnings.simplefilter("always", TeradataMlRuntimeWarning)
460
422
  # Throwing warning and removing context if any.
461
423
  if td_connection is not None:
462
- warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT))
424
+ warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT), stacklevel=2)
463
425
  remove_context()
464
426
 
465
427
  # Check if teradata sqlalchemy engine is provided by the user
@@ -477,25 +439,23 @@ def create_context(host = None, username = None, password = None, tdsqlengine =
477
439
  elif host:
478
440
  username = '' if username is None else username
479
441
 
480
- # Encode the password if authentication is through username/password and url_encode is True.
481
- if password and url_encode:
482
- encoded_password = urllib.parse.quote_plus(password)
483
- if encoded_password != password:
484
- warnings.warn("Warning: Password is URL encoded.", category=TeradataMlRuntimeWarning)
485
- password = encoded_password
486
-
487
- if logmech and logmech.upper() == 'JWT':
442
+ if logmech and logmech.upper() in ['JWT', 'BROWSER']:
488
443
  host_value = host
489
444
  elif logmech and logmech.upper() == 'KRB5':
490
445
  host_value = '{}:@{}'.format(username, host)
491
446
  else:
492
447
  host_value = '{}:{}@{}'.format(username, password, host)
493
448
 
494
- other_connection_parameters = _get_other_connection_parameters(logmech, logdata, database, **kwargs)
449
+ url_object = URL.create(
450
+ "teradatasql",
451
+ username=username,
452
+ password=password, # plain (unescaped) text
453
+ host=host,
454
+ query=_get_other_connection_parameters(logmech, logdata, database, **kwargs)
455
+ )
495
456
 
496
457
  try:
497
- engine_url = "teradatasql://{}{}"
498
- td_sqlalchemy_engine = create_engine(engine_url.format(host_value, other_connection_parameters))
458
+ td_sqlalchemy_engine = create_engine(url_object)
499
459
  td_connection = td_sqlalchemy_engine.connect()
500
460
  td_user = username.upper()
501
461
 
@@ -614,6 +574,7 @@ def get_connection():
614
574
  return td_connection
615
575
 
616
576
 
577
+ @collect_queryband(queryband='SetCxt')
617
578
  def set_context(tdsqlengine, temp_database_name=None):
618
579
  """
619
580
  DESCRIPTION:
@@ -647,7 +608,7 @@ def set_context(tdsqlengine, temp_database_name=None):
647
608
  global user_specified_connection
648
609
  global python_packages_installed
649
610
  if td_connection is not None:
650
- warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT))
611
+ warnings.warn(Messages.get_message(MessageCodes.OVERWRITE_CONTEXT), stacklevel=2)
651
612
  remove_context()
652
613
 
653
614
  if tdsqlengine:
@@ -680,6 +641,7 @@ def set_context(tdsqlengine, temp_database_name=None):
680
641
  return td_connection
681
642
 
682
643
 
644
+ @collect_queryband(queryband='RmCxt')
683
645
  def remove_context():
684
646
  """
685
647
  DESCRIPTION:
@@ -837,9 +799,9 @@ def _load_function_aliases():
837
799
  alias_config_file = os.path.join(config_folder,
838
800
  "{}_{}".format(supported_engines[engine]["file"], vantage_versions[vv]))
839
801
  engine_name = supported_engines[engine]['name']
840
- UtilFuncs._check_alias_config_file_exists(vv, alias_config_file)
802
+ ContextUtilFuncs._check_alias_config_file_exists(vv, alias_config_file)
841
803
  function_alias_mappings_by_engine[engine_name] = \
842
- UtilFuncs._get_function_mappings_from_config_file(alias_config_file)
804
+ ContextUtilFuncs._get_function_mappings_from_config_file(alias_config_file)
843
805
  function_alias_mappings[vv] = function_alias_mappings_by_engine
844
806
 
845
807
 
@@ -997,3 +959,113 @@ def _get_user():
997
959
  if not td_user:
998
960
  td_user = _get_database_username()
999
961
  return td_user
962
+
963
+
964
+ class ContextUtilFuncs():
965
+ @staticmethod
966
+ def _check_alias_config_file_exists(vantage_version, alias_config_file):
967
+ """
968
+ Function to validate whether alias_config_file exists for the current vantage version.
969
+
970
+ PARAMETERS:
971
+ vantage_version:
972
+ Required Argument.
973
+ Specifies the current vantage version.
974
+
975
+ alias_config_file:
976
+ Required Argument.
977
+ Specifies the location of configuration file to be read.
978
+
979
+ RETURNS:
980
+ True, if the file 'alias_config_file' is present in the
981
+ teradataml/config directory for the current vantage version.
982
+
983
+ RAISES:
984
+ TeradataMLException
985
+
986
+ EXAMPLES:
987
+ ContextUtilFuncs._check_alias_config_file_exists("vantage1.0", "config_file_location")
988
+
989
+ """
990
+ # Raise exception if alias config file is not defined.
991
+ if not Path(alias_config_file).exists():
992
+ raise TeradataMlException(Messages.get_message(
993
+ MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND).format(alias_config_file,
994
+ vantage_version),
995
+ MessageCodes.CONFIG_ALIAS_CONFIG_FILE_NOT_FOUND)
996
+ return True
997
+
998
+ @staticmethod
999
+ def _get_function_mappings_from_config_file(alias_config_file):
1000
+ """
1001
+ Function to return the function mappings given the location of configuration file in
1002
+ argument 'alias_config_file'.
1003
+
1004
+ PARAMETERS:
1005
+ alias_config_file:
1006
+ Required Argument.
1007
+ Specifies the location of configuration file to be read.
1008
+
1009
+ RETURNS:
1010
+ Function mappings as a dictionary of function_names to alias_names.
1011
+
1012
+ RAISES:
1013
+ TeradataMLException
1014
+
1015
+ EXAMPLES:
1016
+ ContextUtilFuncs._get_function_mappings_from_config_file("config_file_location")
1017
+
1018
+ """
1019
+ repeated_function_names = []
1020
+ function_mappings = {}
1021
+ invalid_function_mappings = []
1022
+ invalid_function_mappings_line_nos = []
1023
+ # Reading configuration files
1024
+ with open(alias_config_file, 'r') as fread:
1025
+ for line_no, line in enumerate(fread.readlines()):
1026
+ line = line.strip()
1027
+
1028
+ # Ignoring empty lines in the config files.
1029
+ if line == "":
1030
+ continue
1031
+
1032
+ # If the separator ":" is not present.
1033
+ if ':' not in line:
1034
+ invalid_function_mappings.append(line)
1035
+ invalid_function_mappings_line_nos.append(str(line_no + 1))
1036
+ else:
1037
+ func_name, alias_name = line.split(":")
1038
+ func_name = func_name.strip()
1039
+ alias_name = alias_name.strip()
1040
+
1041
+ # First line of 'alias_config_file' has header "functionName:aliasName".
1042
+ if line_no == 0 and func_name == "functionName" and alias_name == "aliasName":
1043
+ continue
1044
+
1045
+ if func_name == "" or alias_name == "":
1046
+ invalid_function_mappings.append(line)
1047
+ invalid_function_mappings_line_nos.append(str(line_no + 1))
1048
+ continue
1049
+
1050
+ if func_name.lower() in function_mappings:
1051
+ repeated_function_names.append(func_name.lower())
1052
+
1053
+ # Loading function maps with lower values for key.
1054
+ function_mappings[func_name.lower()] = alias_name
1055
+
1056
+ # Presence of Invalid function mappings in the 'alias_config_file'.
1057
+ if len(invalid_function_mappings) > 0:
1058
+ err_ = Messages.get_message(MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
1059
+ err_ = err_.format("', '".join(invalid_function_mappings),
1060
+ ", ".join(invalid_function_mappings_line_nos),
1061
+ alias_config_file)
1062
+ raise TeradataMlException(err_, MessageCodes.CONFIG_ALIAS_INVALID_FUNC_MAPPING)
1063
+
1064
+ # Raising teradataml exception if there are any duplicates in function names.
1065
+ if len(repeated_function_names) > 0:
1066
+ raise TeradataMlException(Messages.get_message(
1067
+ MessageCodes.CONFIG_ALIAS_DUPLICATES).format(alias_config_file,
1068
+ ", ".join(repeated_function_names)),
1069
+ MessageCodes.CONFIG_ALIAS_DUPLICATES)
1070
+
1071
+ return function_mappings