teradataml 17.20.0.7__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 (1285) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +1864 -1640
  4. teradataml/__init__.py +70 -60
  5. teradataml/_version.py +11 -11
  6. teradataml/analytics/Transformations.py +2995 -2995
  7. teradataml/analytics/__init__.py +81 -83
  8. teradataml/analytics/analytic_function_executor.py +2013 -2010
  9. teradataml/analytics/analytic_query_generator.py +958 -958
  10. teradataml/analytics/byom/H2OPredict.py +514 -514
  11. teradataml/analytics/byom/PMMLPredict.py +437 -437
  12. teradataml/analytics/byom/__init__.py +14 -14
  13. teradataml/analytics/json_parser/__init__.py +130 -130
  14. teradataml/analytics/json_parser/analytic_functions_argument.py +1707 -1707
  15. teradataml/analytics/json_parser/json_store.py +191 -191
  16. teradataml/analytics/json_parser/metadata.py +1637 -1637
  17. teradataml/analytics/json_parser/utils.py +804 -803
  18. teradataml/analytics/meta_class.py +196 -196
  19. teradataml/analytics/sqle/DecisionTreePredict.py +455 -470
  20. teradataml/analytics/sqle/NaiveBayesPredict.py +419 -428
  21. teradataml/analytics/sqle/__init__.py +97 -110
  22. teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -78
  23. teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -62
  24. teradataml/analytics/table_operator/__init__.py +10 -10
  25. teradataml/analytics/uaf/__init__.py +63 -63
  26. teradataml/analytics/utils.py +693 -692
  27. teradataml/analytics/valib.py +1603 -1600
  28. teradataml/automl/__init__.py +1628 -0
  29. teradataml/automl/custom_json_utils.py +1270 -0
  30. teradataml/automl/data_preparation.py +993 -0
  31. teradataml/automl/data_transformation.py +727 -0
  32. teradataml/automl/feature_engineering.py +1648 -0
  33. teradataml/automl/feature_exploration.py +547 -0
  34. teradataml/automl/model_evaluation.py +163 -0
  35. teradataml/automl/model_training.py +887 -0
  36. teradataml/catalog/__init__.py +1 -3
  37. teradataml/catalog/byom.py +1759 -1716
  38. teradataml/catalog/function_argument_mapper.py +859 -861
  39. teradataml/catalog/model_cataloging_utils.py +491 -1510
  40. teradataml/clients/pkce_client.py +481 -481
  41. teradataml/common/aed_utils.py +6 -2
  42. teradataml/common/bulk_exposed_utils.py +111 -111
  43. teradataml/common/constants.py +1433 -1441
  44. teradataml/common/deprecations.py +160 -0
  45. teradataml/common/exceptions.py +73 -73
  46. teradataml/common/formula.py +742 -742
  47. teradataml/common/garbagecollector.py +592 -635
  48. teradataml/common/messagecodes.py +422 -431
  49. teradataml/common/messages.py +227 -231
  50. teradataml/common/sqlbundle.py +693 -693
  51. teradataml/common/td_coltype_code_to_tdtype.py +48 -48
  52. teradataml/common/utils.py +2418 -2500
  53. teradataml/common/warnings.py +25 -25
  54. teradataml/common/wrapper_utils.py +1 -110
  55. teradataml/config/dummy_file1.cfg +4 -4
  56. teradataml/config/dummy_file2.cfg +2 -2
  57. teradataml/config/sqlengine_alias_definitions_v1.0 +13 -13
  58. teradataml/config/sqlengine_alias_definitions_v1.1 +19 -19
  59. teradataml/config/sqlengine_alias_definitions_v1.3 +18 -18
  60. teradataml/context/aed_context.py +217 -217
  61. teradataml/context/context.py +1071 -999
  62. teradataml/data/A_loan.csv +19 -19
  63. teradataml/data/BINARY_REALS_LEFT.csv +11 -11
  64. teradataml/data/BINARY_REALS_RIGHT.csv +11 -11
  65. teradataml/data/B_loan.csv +49 -49
  66. teradataml/data/BuoyData2.csv +17 -17
  67. teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -5
  68. teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -5
  69. teradataml/data/Convolve2RealsLeft.csv +5 -5
  70. teradataml/data/Convolve2RealsRight.csv +5 -5
  71. teradataml/data/Convolve2ValidLeft.csv +11 -11
  72. teradataml/data/Convolve2ValidRight.csv +11 -11
  73. teradataml/data/DFFTConv_Real_8_8.csv +65 -65
  74. teradataml/data/Orders1_12mf.csv +24 -24
  75. teradataml/data/Pi_loan.csv +7 -7
  76. teradataml/data/SMOOTHED_DATA.csv +7 -7
  77. teradataml/data/TestDFFT8.csv +9 -9
  78. teradataml/data/TestRiver.csv +109 -109
  79. teradataml/data/Traindata.csv +28 -28
  80. teradataml/data/acf.csv +17 -17
  81. teradataml/data/adaboost_example.json +34 -34
  82. teradataml/data/adaboostpredict_example.json +24 -24
  83. teradataml/data/additional_table.csv +10 -10
  84. teradataml/data/admissions_test.csv +21 -21
  85. teradataml/data/admissions_train.csv +41 -41
  86. teradataml/data/admissions_train_nulls.csv +41 -41
  87. teradataml/data/ageandheight.csv +13 -13
  88. teradataml/data/ageandpressure.csv +31 -31
  89. teradataml/data/antiselect_example.json +36 -36
  90. teradataml/data/antiselect_input.csv +8 -8
  91. teradataml/data/antiselect_input_mixed_case.csv +8 -8
  92. teradataml/data/applicant_external.csv +6 -6
  93. teradataml/data/applicant_reference.csv +6 -6
  94. teradataml/data/arima_example.json +9 -9
  95. teradataml/data/assortedtext_input.csv +8 -8
  96. teradataml/data/attribution_example.json +33 -33
  97. teradataml/data/attribution_sample_table.csv +27 -27
  98. teradataml/data/attribution_sample_table1.csv +6 -6
  99. teradataml/data/attribution_sample_table2.csv +11 -11
  100. teradataml/data/bank_churn.csv +10001 -0
  101. teradataml/data/bank_web_clicks1.csv +42 -42
  102. teradataml/data/bank_web_clicks2.csv +91 -91
  103. teradataml/data/bank_web_url.csv +85 -85
  104. teradataml/data/barrier.csv +2 -2
  105. teradataml/data/barrier_new.csv +3 -3
  106. teradataml/data/betweenness_example.json +13 -13
  107. teradataml/data/bin_breaks.csv +8 -8
  108. teradataml/data/bin_fit_ip.csv +3 -3
  109. teradataml/data/binary_complex_left.csv +11 -11
  110. teradataml/data/binary_complex_right.csv +11 -11
  111. teradataml/data/binary_matrix_complex_left.csv +21 -21
  112. teradataml/data/binary_matrix_complex_right.csv +21 -21
  113. teradataml/data/binary_matrix_real_left.csv +21 -21
  114. teradataml/data/binary_matrix_real_right.csv +21 -21
  115. teradataml/data/blood2ageandweight.csv +26 -26
  116. teradataml/data/bmi.csv +501 -0
  117. teradataml/data/boston.csv +507 -507
  118. teradataml/data/buoydata_mix.csv +11 -11
  119. teradataml/data/burst_data.csv +5 -5
  120. teradataml/data/burst_example.json +20 -20
  121. teradataml/data/byom_example.json +17 -17
  122. teradataml/data/bytes_table.csv +3 -3
  123. teradataml/data/cal_housing_ex_raw.csv +70 -70
  124. teradataml/data/callers.csv +7 -7
  125. teradataml/data/calls.csv +10 -10
  126. teradataml/data/cars_hist.csv +33 -33
  127. teradataml/data/cat_table.csv +24 -24
  128. teradataml/data/ccm_example.json +31 -31
  129. teradataml/data/ccm_input.csv +91 -91
  130. teradataml/data/ccm_input2.csv +13 -13
  131. teradataml/data/ccmexample.csv +101 -101
  132. teradataml/data/ccmprepare_example.json +8 -8
  133. teradataml/data/ccmprepare_input.csv +91 -91
  134. teradataml/data/cfilter_example.json +12 -12
  135. teradataml/data/changepointdetection_example.json +18 -18
  136. teradataml/data/changepointdetectionrt_example.json +8 -8
  137. teradataml/data/chi_sq.csv +2 -2
  138. teradataml/data/churn_data.csv +14 -14
  139. teradataml/data/churn_emission.csv +35 -35
  140. teradataml/data/churn_initial.csv +3 -3
  141. teradataml/data/churn_state_transition.csv +5 -5
  142. teradataml/data/citedges_2.csv +745 -745
  143. teradataml/data/citvertices_2.csv +1210 -1210
  144. teradataml/data/clicks2.csv +16 -16
  145. teradataml/data/clickstream.csv +12 -12
  146. teradataml/data/clickstream1.csv +11 -11
  147. teradataml/data/closeness_example.json +15 -15
  148. teradataml/data/complaints.csv +21 -21
  149. teradataml/data/complaints_mini.csv +3 -3
  150. teradataml/data/complaints_testtoken.csv +224 -224
  151. teradataml/data/complaints_tokens_test.csv +353 -353
  152. teradataml/data/complaints_traintoken.csv +472 -472
  153. teradataml/data/computers_category.csv +1001 -1001
  154. teradataml/data/computers_test1.csv +1252 -1252
  155. teradataml/data/computers_train1.csv +5009 -5009
  156. teradataml/data/computers_train1_clustered.csv +5009 -5009
  157. teradataml/data/confusionmatrix_example.json +9 -9
  158. teradataml/data/conversion_event_table.csv +3 -3
  159. teradataml/data/corr_input.csv +17 -17
  160. teradataml/data/correlation_example.json +11 -11
  161. teradataml/data/coxhazardratio_example.json +39 -39
  162. teradataml/data/coxph_example.json +15 -15
  163. teradataml/data/coxsurvival_example.json +28 -28
  164. teradataml/data/cpt.csv +41 -41
  165. teradataml/data/credit_ex_merged.csv +45 -45
  166. teradataml/data/customer_loyalty.csv +301 -301
  167. teradataml/data/customer_loyalty_newseq.csv +31 -31
  168. teradataml/data/dataframe_example.json +146 -146
  169. teradataml/data/decisionforest_example.json +37 -37
  170. teradataml/data/decisionforestpredict_example.json +38 -38
  171. teradataml/data/decisiontree_example.json +21 -21
  172. teradataml/data/decisiontreepredict_example.json +45 -45
  173. teradataml/data/dfft2_size4_real.csv +17 -17
  174. teradataml/data/dfft2_test_matrix16.csv +17 -17
  175. teradataml/data/dfft2conv_real_4_4.csv +65 -65
  176. teradataml/data/diabetes.csv +443 -443
  177. teradataml/data/diabetes_test.csv +89 -89
  178. teradataml/data/dict_table.csv +5 -5
  179. teradataml/data/docperterm_table.csv +4 -4
  180. teradataml/data/docs/__init__.py +1 -1
  181. teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -180
  182. teradataml/data/docs/byom/docs/DataikuPredict.py +177 -177
  183. teradataml/data/docs/byom/docs/H2OPredict.py +324 -324
  184. teradataml/data/docs/byom/docs/ONNXPredict.py +283 -283
  185. teradataml/data/docs/byom/docs/PMMLPredict.py +277 -277
  186. teradataml/data/docs/sqle/docs_17_10/Antiselect.py +82 -82
  187. teradataml/data/docs/sqle/docs_17_10/Attribution.py +199 -199
  188. teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +171 -171
  189. teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -130
  190. teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -86
  191. teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -90
  192. teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +85 -85
  193. teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +95 -95
  194. teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -139
  195. teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +151 -151
  196. teradataml/data/docs/sqle/docs_17_10/FTest.py +160 -160
  197. teradataml/data/docs/sqle/docs_17_10/FillRowId.py +82 -82
  198. teradataml/data/docs/sqle/docs_17_10/Fit.py +87 -87
  199. teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -144
  200. teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +84 -84
  201. teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +81 -81
  202. teradataml/data/docs/sqle/docs_17_10/Histogram.py +164 -164
  203. teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -134
  204. teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +208 -208
  205. teradataml/data/docs/sqle/docs_17_10/NPath.py +265 -265
  206. teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -116
  207. teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -176
  208. teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -147
  209. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +132 -132
  210. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +103 -103
  211. teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +165 -165
  212. teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +101 -101
  213. teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -128
  214. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +111 -111
  215. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -102
  216. teradataml/data/docs/sqle/docs_17_10/QQNorm.py +104 -104
  217. teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +109 -109
  218. teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +117 -117
  219. teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -98
  220. teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +152 -152
  221. teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -197
  222. teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -98
  223. teradataml/data/docs/sqle/docs_17_10/Sessionize.py +113 -113
  224. teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -116
  225. teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -98
  226. teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -187
  227. teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +145 -145
  228. teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -104
  229. teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +141 -141
  230. teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -214
  231. teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -83
  232. teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -83
  233. teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -155
  234. teradataml/data/docs/sqle/docs_17_20/ANOVA.py +126 -126
  235. teradataml/data/docs/sqle/docs_17_20/Antiselect.py +82 -82
  236. teradataml/data/docs/sqle/docs_17_20/Attribution.py +200 -200
  237. teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +171 -171
  238. teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -138
  239. teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -86
  240. teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -90
  241. teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -166
  242. teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +85 -85
  243. teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +243 -243
  244. teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -113
  245. teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +279 -279
  246. teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -144
  247. teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +135 -135
  248. teradataml/data/docs/sqle/docs_17_20/FTest.py +160 -160
  249. teradataml/data/docs/sqle/docs_17_20/FillRowId.py +82 -82
  250. teradataml/data/docs/sqle/docs_17_20/Fit.py +87 -87
  251. teradataml/data/docs/sqle/docs_17_20/GLM.py +380 -380
  252. teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +414 -414
  253. teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -144
  254. teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -234
  255. teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +123 -123
  256. teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +108 -108
  257. teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +105 -105
  258. teradataml/data/docs/sqle/docs_17_20/Histogram.py +223 -223
  259. teradataml/data/docs/sqle/docs_17_20/KMeans.py +204 -204
  260. teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -143
  261. teradataml/data/docs/sqle/docs_17_20/KNN.py +214 -214
  262. teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -134
  263. teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +208 -208
  264. teradataml/data/docs/sqle/docs_17_20/NPath.py +265 -265
  265. teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -116
  266. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -176
  267. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +126 -126
  268. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +117 -117
  269. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -112
  270. teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -147
  271. teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -307
  272. teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -184
  273. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +225 -225
  274. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +115 -115
  275. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +219 -219
  276. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -127
  277. teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +189 -189
  278. teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -112
  279. teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -128
  280. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +111 -111
  281. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -111
  282. teradataml/data/docs/sqle/docs_17_20/QQNorm.py +104 -104
  283. teradataml/data/docs/sqle/docs_17_20/ROC.py +163 -163
  284. teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +154 -154
  285. teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -106
  286. teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -120
  287. teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -211
  288. teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +108 -108
  289. teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +117 -117
  290. teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -110
  291. teradataml/data/docs/sqle/docs_17_20/SVM.py +413 -413
  292. teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +202 -202
  293. teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +152 -152
  294. teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +197 -197
  295. teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +110 -109
  296. teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -206
  297. teradataml/data/docs/sqle/docs_17_20/Sessionize.py +113 -113
  298. teradataml/data/docs/sqle/docs_17_20/Silhouette.py +152 -152
  299. teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -116
  300. teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -108
  301. teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -187
  302. teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +145 -145
  303. teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -207
  304. teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +171 -171
  305. teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +266 -266
  306. teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -140
  307. teradataml/data/docs/sqle/docs_17_20/TextParser.py +172 -172
  308. teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +159 -159
  309. teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -123
  310. teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +141 -141
  311. teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -214
  312. teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +168 -168
  313. teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -83
  314. teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -83
  315. teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +236 -236
  316. teradataml/data/docs/sqle/docs_17_20/XGBoost.py +353 -353
  317. teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +275 -275
  318. teradataml/data/docs/sqle/docs_17_20/ZTest.py +155 -155
  319. teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +429 -429
  320. teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +429 -429
  321. teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +347 -347
  322. teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +428 -428
  323. teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +347 -347
  324. teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +439 -439
  325. teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +386 -386
  326. teradataml/data/docs/uaf/docs_17_20/ACF.py +195 -195
  327. teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +369 -369
  328. teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +142 -142
  329. teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +159 -159
  330. teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +247 -247
  331. teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -252
  332. teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +177 -177
  333. teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +174 -174
  334. teradataml/data/docs/uaf/docs_17_20/Convolve.py +226 -226
  335. teradataml/data/docs/uaf/docs_17_20/Convolve2.py +214 -214
  336. teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +183 -183
  337. teradataml/data/docs/uaf/docs_17_20/DFFT.py +203 -203
  338. teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -216
  339. teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +215 -215
  340. teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +191 -191
  341. teradataml/data/docs/uaf/docs_17_20/DTW.py +179 -179
  342. teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +144 -144
  343. teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +183 -183
  344. teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +184 -184
  345. teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -172
  346. teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +205 -205
  347. teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +142 -142
  348. teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +258 -258
  349. teradataml/data/docs/uaf/docs_17_20/IDFFT.py +164 -164
  350. teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +198 -198
  351. teradataml/data/docs/uaf/docs_17_20/InputValidator.py +120 -120
  352. teradataml/data/docs/uaf/docs_17_20/LineSpec.py +155 -155
  353. teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +214 -214
  354. teradataml/data/docs/uaf/docs_17_20/MAMean.py +173 -173
  355. teradataml/data/docs/uaf/docs_17_20/MInfo.py +133 -133
  356. teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +135 -135
  357. teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +190 -190
  358. teradataml/data/docs/uaf/docs_17_20/PACF.py +158 -158
  359. teradataml/data/docs/uaf/docs_17_20/Portman.py +216 -216
  360. teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +154 -154
  361. teradataml/data/docs/uaf/docs_17_20/Resample.py +228 -228
  362. teradataml/data/docs/uaf/docs_17_20/SInfo.py +122 -122
  363. teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +165 -165
  364. teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +173 -173
  365. teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +170 -170
  366. teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +163 -163
  367. teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +179 -179
  368. teradataml/data/docs/uaf/docs_17_20/Smoothma.py +207 -207
  369. teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +150 -150
  370. teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -171
  371. teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +201 -201
  372. teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +169 -169
  373. teradataml/data/dtw_example.json +17 -17
  374. teradataml/data/dtw_t1.csv +11 -11
  375. teradataml/data/dtw_t2.csv +4 -4
  376. teradataml/data/dwt2d_example.json +15 -15
  377. teradataml/data/dwt_example.json +14 -14
  378. teradataml/data/dwt_filter_dim.csv +5 -5
  379. teradataml/data/emission.csv +9 -9
  380. teradataml/data/emp_table_by_dept.csv +19 -19
  381. teradataml/data/employee_info.csv +4 -4
  382. teradataml/data/employee_table.csv +6 -6
  383. teradataml/data/excluding_event_table.csv +2 -2
  384. teradataml/data/finance_data.csv +6 -6
  385. teradataml/data/finance_data2.csv +61 -61
  386. teradataml/data/finance_data3.csv +93 -93
  387. teradataml/data/fish.csv +160 -0
  388. teradataml/data/fm_blood2ageandweight.csv +26 -26
  389. teradataml/data/fmeasure_example.json +11 -11
  390. teradataml/data/followers_leaders.csv +10 -10
  391. teradataml/data/fpgrowth_example.json +12 -12
  392. teradataml/data/frequentpaths_example.json +29 -29
  393. teradataml/data/friends.csv +9 -9
  394. teradataml/data/fs_input.csv +33 -33
  395. teradataml/data/fs_input1.csv +33 -33
  396. teradataml/data/genData.csv +513 -513
  397. teradataml/data/geodataframe_example.json +39 -39
  398. teradataml/data/glass_types.csv +215 -0
  399. teradataml/data/glm_admissions_model.csv +12 -12
  400. teradataml/data/glm_example.json +29 -29
  401. teradataml/data/glml1l2_example.json +28 -28
  402. teradataml/data/glml1l2predict_example.json +54 -54
  403. teradataml/data/glmpredict_example.json +54 -54
  404. teradataml/data/gq_t1.csv +21 -21
  405. teradataml/data/hconvolve_complex_right.csv +5 -5
  406. teradataml/data/hconvolve_complex_rightmulti.csv +5 -5
  407. teradataml/data/histogram_example.json +11 -11
  408. teradataml/data/hmmdecoder_example.json +78 -78
  409. teradataml/data/hmmevaluator_example.json +24 -24
  410. teradataml/data/hmmsupervised_example.json +10 -10
  411. teradataml/data/hmmunsupervised_example.json +7 -7
  412. teradataml/data/house_values.csv +12 -12
  413. teradataml/data/house_values2.csv +13 -13
  414. teradataml/data/housing_cat.csv +7 -7
  415. teradataml/data/housing_data.csv +9 -9
  416. teradataml/data/housing_test.csv +47 -47
  417. teradataml/data/housing_test_binary.csv +47 -47
  418. teradataml/data/housing_train.csv +493 -493
  419. teradataml/data/housing_train_attribute.csv +4 -4
  420. teradataml/data/housing_train_binary.csv +437 -437
  421. teradataml/data/housing_train_parameter.csv +2 -2
  422. teradataml/data/housing_train_response.csv +493 -493
  423. teradataml/data/ibm_stock.csv +370 -370
  424. teradataml/data/ibm_stock1.csv +370 -370
  425. teradataml/data/identitymatch_example.json +21 -21
  426. teradataml/data/idf_table.csv +4 -4
  427. teradataml/data/impressions.csv +101 -101
  428. teradataml/data/inflation.csv +21 -21
  429. teradataml/data/initial.csv +3 -3
  430. teradataml/data/insect_sprays.csv +12 -12
  431. teradataml/data/insurance.csv +1339 -1339
  432. teradataml/data/interpolator_example.json +12 -12
  433. teradataml/data/iris_altinput.csv +481 -481
  434. teradataml/data/iris_attribute_output.csv +8 -8
  435. teradataml/data/iris_attribute_test.csv +121 -121
  436. teradataml/data/iris_attribute_train.csv +481 -481
  437. teradataml/data/iris_category_expect_predict.csv +31 -31
  438. teradataml/data/iris_data.csv +151 -0
  439. teradataml/data/iris_input.csv +151 -151
  440. teradataml/data/iris_response_train.csv +121 -121
  441. teradataml/data/iris_test.csv +31 -31
  442. teradataml/data/iris_train.csv +121 -121
  443. teradataml/data/join_table1.csv +4 -4
  444. teradataml/data/join_table2.csv +4 -4
  445. teradataml/data/jsons/anly_function_name.json +6 -6
  446. teradataml/data/jsons/byom/dataikupredict.json +147 -147
  447. teradataml/data/jsons/byom/datarobotpredict.json +146 -146
  448. teradataml/data/jsons/byom/h2opredict.json +194 -194
  449. teradataml/data/jsons/byom/onnxpredict.json +186 -186
  450. teradataml/data/jsons/byom/pmmlpredict.json +146 -146
  451. teradataml/data/jsons/paired_functions.json +435 -435
  452. teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -56
  453. teradataml/data/jsons/sqle/16.20/Attribution.json +249 -249
  454. teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -156
  455. teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -170
  456. teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -122
  457. teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -367
  458. teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -239
  459. teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -136
  460. teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -235
  461. teradataml/data/jsons/sqle/16.20/Pack.json +98 -98
  462. teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -162
  463. teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -105
  464. teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -86
  465. teradataml/data/jsons/sqle/16.20/Unpack.json +166 -166
  466. teradataml/data/jsons/sqle/16.20/nPath.json +269 -269
  467. teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -56
  468. teradataml/data/jsons/sqle/17.00/Attribution.json +249 -249
  469. teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -156
  470. teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -170
  471. teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -122
  472. teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -367
  473. teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -239
  474. teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -136
  475. teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -235
  476. teradataml/data/jsons/sqle/17.00/Pack.json +98 -98
  477. teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -162
  478. teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -105
  479. teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -86
  480. teradataml/data/jsons/sqle/17.00/Unpack.json +166 -166
  481. teradataml/data/jsons/sqle/17.00/nPath.json +269 -269
  482. teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -56
  483. teradataml/data/jsons/sqle/17.05/Attribution.json +249 -249
  484. teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -156
  485. teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -170
  486. teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -122
  487. teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -367
  488. teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -239
  489. teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -136
  490. teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -235
  491. teradataml/data/jsons/sqle/17.05/Pack.json +98 -98
  492. teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -162
  493. teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -105
  494. teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -86
  495. teradataml/data/jsons/sqle/17.05/Unpack.json +166 -166
  496. teradataml/data/jsons/sqle/17.05/nPath.json +269 -269
  497. teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -56
  498. teradataml/data/jsons/sqle/17.10/Attribution.json +249 -249
  499. teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -185
  500. teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +171 -171
  501. teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -151
  502. teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -368
  503. teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -239
  504. teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -149
  505. teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -288
  506. teradataml/data/jsons/sqle/17.10/Pack.json +133 -133
  507. teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -193
  508. teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -105
  509. teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -86
  510. teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -239
  511. teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -70
  512. teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +53 -53
  513. teradataml/data/jsons/sqle/17.10/TD_Chisq.json +67 -67
  514. teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +53 -53
  515. teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +68 -68
  516. teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -187
  517. teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +51 -51
  518. teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -46
  519. teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -71
  520. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +52 -52
  521. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +52 -52
  522. teradataml/data/jsons/sqle/17.10/TD_Histogram.json +132 -132
  523. teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -147
  524. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +182 -182
  525. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +65 -64
  526. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +196 -196
  527. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -47
  528. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -114
  529. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -71
  530. teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +111 -111
  531. teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -93
  532. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +127 -127
  533. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +70 -69
  534. teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +156 -156
  535. teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +70 -69
  536. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +147 -147
  537. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -47
  538. teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -240
  539. teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +118 -118
  540. teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +52 -52
  541. teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +52 -52
  542. teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -171
  543. teradataml/data/jsons/sqle/17.10/Unpack.json +188 -188
  544. teradataml/data/jsons/sqle/17.10/nPath.json +269 -269
  545. teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -56
  546. teradataml/data/jsons/sqle/17.20/Attribution.json +249 -249
  547. teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -185
  548. teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -172
  549. teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -151
  550. teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -367
  551. teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -239
  552. teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -149
  553. teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -287
  554. teradataml/data/jsons/sqle/17.20/Pack.json +133 -133
  555. teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -192
  556. teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -105
  557. teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -86
  558. teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +76 -76
  559. teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -239
  560. teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -71
  561. teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -53
  562. teradataml/data/jsons/sqle/17.20/TD_Chisq.json +67 -67
  563. teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +145 -145
  564. teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -53
  565. teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -218
  566. teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -92
  567. teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +259 -259
  568. teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -139
  569. teradataml/data/jsons/sqle/17.20/TD_FTest.json +186 -186
  570. teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -52
  571. teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -46
  572. teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -72
  573. teradataml/data/jsons/sqle/17.20/TD_GLM.json +431 -431
  574. teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +125 -125
  575. teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -411
  576. teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -146
  577. teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +91 -91
  578. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -76
  579. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -76
  580. teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -152
  581. teradataml/data/jsons/sqle/17.20/TD_KMeans.json +211 -211
  582. teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +86 -86
  583. teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -262
  584. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -137
  585. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +101 -101
  586. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -71
  587. teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -147
  588. teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +315 -315
  589. teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +123 -123
  590. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -271
  591. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -65
  592. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -229
  593. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -75
  594. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -217
  595. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -48
  596. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -114
  597. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -72
  598. teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -111
  599. teradataml/data/jsons/sqle/17.20/TD_ROC.json +177 -177
  600. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +178 -178
  601. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +73 -73
  602. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -74
  603. teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +137 -137
  604. teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -93
  605. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +127 -127
  606. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +70 -70
  607. teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -389
  608. teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +124 -124
  609. teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +156 -156
  610. teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +70 -70
  611. teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +193 -193
  612. teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +142 -142
  613. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -147
  614. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -48
  615. teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -240
  616. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -248
  617. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -75
  618. teradataml/data/jsons/sqle/17.20/TD_TextParser.json +192 -192
  619. teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -142
  620. teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -117
  621. teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +182 -182
  622. teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +52 -52
  623. teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +52 -52
  624. teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -241
  625. teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +312 -312
  626. teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +182 -182
  627. teradataml/data/jsons/sqle/17.20/TD_ZTest.json +170 -170
  628. teradataml/data/jsons/sqle/17.20/Unpack.json +188 -188
  629. teradataml/data/jsons/sqle/17.20/nPath.json +269 -269
  630. teradataml/data/jsons/tableoperator/17.00/read_nos.json +197 -197
  631. teradataml/data/jsons/tableoperator/17.05/read_nos.json +197 -197
  632. teradataml/data/jsons/tableoperator/17.05/write_nos.json +194 -194
  633. teradataml/data/jsons/tableoperator/17.10/read_nos.json +183 -183
  634. teradataml/data/jsons/tableoperator/17.10/write_nos.json +194 -194
  635. teradataml/data/jsons/tableoperator/17.20/read_nos.json +182 -182
  636. teradataml/data/jsons/tableoperator/17.20/write_nos.json +223 -223
  637. teradataml/data/jsons/uaf/17.20/TD_ACF.json +149 -149
  638. teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +409 -409
  639. teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +79 -79
  640. teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +151 -151
  641. teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +109 -109
  642. teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +107 -107
  643. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +87 -87
  644. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +106 -106
  645. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +80 -80
  646. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +67 -67
  647. teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +91 -91
  648. teradataml/data/jsons/uaf/17.20/TD_DFFT.json +136 -136
  649. teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +148 -148
  650. teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -108
  651. teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +109 -109
  652. teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +86 -86
  653. teradataml/data/jsons/uaf/17.20/TD_DIFF.json +91 -91
  654. teradataml/data/jsons/uaf/17.20/TD_DTW.json +116 -116
  655. teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +100 -100
  656. teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +38 -38
  657. teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +100 -100
  658. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +84 -84
  659. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +70 -70
  660. teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +152 -152
  661. teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECAST.json +313 -313
  662. teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +57 -57
  663. teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +94 -94
  664. teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +63 -63
  665. teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +181 -181
  666. teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +102 -102
  667. teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +182 -182
  668. teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +67 -67
  669. teradataml/data/jsons/uaf/17.20/TD_MINFO.json +66 -66
  670. teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +178 -178
  671. teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -114
  672. teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +118 -118
  673. teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -175
  674. teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +97 -97
  675. teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +173 -173
  676. teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +136 -136
  677. teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +89 -89
  678. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +79 -79
  679. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +67 -67
  680. teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -184
  681. teradataml/data/jsons/uaf/17.20/TD_SINFO.json +57 -57
  682. teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +162 -162
  683. teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +100 -100
  684. teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +111 -111
  685. teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -95
  686. teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +77 -77
  687. teradataml/data/kmeans_example.json +17 -17
  688. teradataml/data/kmeans_us_arrests_data.csv +0 -0
  689. teradataml/data/knn_example.json +18 -18
  690. teradataml/data/knnrecommender_example.json +6 -6
  691. teradataml/data/knnrecommenderpredict_example.json +12 -12
  692. teradataml/data/lar_example.json +17 -17
  693. teradataml/data/larpredict_example.json +30 -30
  694. teradataml/data/lc_new_predictors.csv +5 -5
  695. teradataml/data/lc_new_reference.csv +9 -9
  696. teradataml/data/lda_example.json +8 -8
  697. teradataml/data/ldainference_example.json +14 -14
  698. teradataml/data/ldatopicsummary_example.json +8 -8
  699. teradataml/data/levendist_input.csv +13 -13
  700. teradataml/data/levenshteindistance_example.json +10 -10
  701. teradataml/data/linreg_example.json +9 -9
  702. teradataml/data/load_example_data.py +326 -323
  703. teradataml/data/loan_prediction.csv +295 -295
  704. teradataml/data/lungcancer.csv +138 -138
  705. teradataml/data/mappingdata.csv +12 -12
  706. teradataml/data/milk_timeseries.csv +157 -157
  707. teradataml/data/min_max_titanic.csv +4 -4
  708. teradataml/data/minhash_example.json +6 -6
  709. teradataml/data/ml_ratings.csv +7547 -7547
  710. teradataml/data/ml_ratings_10.csv +2445 -2445
  711. teradataml/data/model1_table.csv +5 -5
  712. teradataml/data/model2_table.csv +5 -5
  713. teradataml/data/models/iris_db_glm_model.pmml +56 -56
  714. teradataml/data/models/iris_db_xgb_model.pmml +4471 -4471
  715. teradataml/data/modularity_example.json +12 -12
  716. teradataml/data/movavg_example.json +7 -7
  717. teradataml/data/mtx1.csv +7 -7
  718. teradataml/data/mtx2.csv +13 -13
  719. teradataml/data/multi_model_classification.csv +401 -0
  720. teradataml/data/multi_model_regression.csv +401 -0
  721. teradataml/data/mvdfft8.csv +9 -9
  722. teradataml/data/naivebayes_example.json +9 -9
  723. teradataml/data/naivebayespredict_example.json +19 -19
  724. teradataml/data/naivebayestextclassifier2_example.json +6 -6
  725. teradataml/data/naivebayestextclassifier_example.json +8 -8
  726. teradataml/data/naivebayestextclassifierpredict_example.json +20 -20
  727. teradataml/data/name_Find_configure.csv +10 -10
  728. teradataml/data/namedentityfinder_example.json +14 -14
  729. teradataml/data/namedentityfinderevaluator_example.json +10 -10
  730. teradataml/data/namedentityfindertrainer_example.json +6 -6
  731. teradataml/data/nb_iris_input_test.csv +31 -31
  732. teradataml/data/nb_iris_input_train.csv +121 -121
  733. teradataml/data/nbp_iris_model.csv +13 -13
  734. teradataml/data/ner_extractor_text.csv +2 -2
  735. teradataml/data/ner_sports_test2.csv +29 -29
  736. teradataml/data/ner_sports_train.csv +501 -501
  737. teradataml/data/nerevaluator_example.json +5 -5
  738. teradataml/data/nerextractor_example.json +18 -18
  739. teradataml/data/nermem_sports_test.csv +17 -17
  740. teradataml/data/nermem_sports_train.csv +50 -50
  741. teradataml/data/nertrainer_example.json +6 -6
  742. teradataml/data/ngrams_example.json +6 -6
  743. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -1455
  744. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -1993
  745. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -1492
  746. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -536
  747. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -570
  748. teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -2559
  749. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -2911
  750. teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -698
  751. teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -784
  752. teradataml/data/npath_example.json +23 -23
  753. teradataml/data/ntree_example.json +14 -14
  754. teradataml/data/numeric_strings.csv +4 -4
  755. teradataml/data/numerics.csv +4 -4
  756. teradataml/data/ocean_buoy.csv +17 -17
  757. teradataml/data/ocean_buoy2.csv +17 -17
  758. teradataml/data/ocean_buoys.csv +27 -27
  759. teradataml/data/ocean_buoys2.csv +10 -10
  760. teradataml/data/ocean_buoys_nonpti.csv +28 -28
  761. teradataml/data/ocean_buoys_seq.csv +29 -29
  762. teradataml/data/openml_example.json +63 -0
  763. teradataml/data/optional_event_table.csv +4 -4
  764. teradataml/data/orders1.csv +11 -11
  765. teradataml/data/orders1_12.csv +12 -12
  766. teradataml/data/orders_ex.csv +4 -4
  767. teradataml/data/pack_example.json +8 -8
  768. teradataml/data/package_tracking.csv +19 -19
  769. teradataml/data/package_tracking_pti.csv +18 -18
  770. teradataml/data/pagerank_example.json +13 -13
  771. teradataml/data/paragraphs_input.csv +6 -6
  772. teradataml/data/pathanalyzer_example.json +7 -7
  773. teradataml/data/pathgenerator_example.json +7 -7
  774. teradataml/data/phrases.csv +7 -7
  775. teradataml/data/pivot_example.json +8 -8
  776. teradataml/data/pivot_input.csv +22 -22
  777. teradataml/data/playerRating.csv +31 -31
  778. teradataml/data/postagger_example.json +6 -6
  779. teradataml/data/posttagger_output.csv +44 -44
  780. teradataml/data/production_data.csv +16 -16
  781. teradataml/data/production_data2.csv +7 -7
  782. teradataml/data/randomsample_example.json +31 -31
  783. teradataml/data/randomwalksample_example.json +8 -8
  784. teradataml/data/rank_table.csv +6 -6
  785. teradataml/data/ref_mobile_data.csv +4 -4
  786. teradataml/data/ref_mobile_data_dense.csv +2 -2
  787. teradataml/data/ref_url.csv +17 -17
  788. teradataml/data/restaurant_reviews.csv +7 -7
  789. teradataml/data/river_data.csv +145 -145
  790. teradataml/data/roc_example.json +7 -7
  791. teradataml/data/roc_input.csv +101 -101
  792. teradataml/data/rule_inputs.csv +6 -6
  793. teradataml/data/rule_table.csv +2 -2
  794. teradataml/data/sales.csv +7 -7
  795. teradataml/data/sales_transaction.csv +501 -501
  796. teradataml/data/salesdata.csv +342 -342
  797. teradataml/data/sample_cities.csv +2 -2
  798. teradataml/data/sample_shapes.csv +10 -10
  799. teradataml/data/sample_streets.csv +2 -2
  800. teradataml/data/sampling_example.json +15 -15
  801. teradataml/data/sax_example.json +8 -8
  802. teradataml/data/scale_example.json +23 -23
  803. teradataml/data/scale_housing.csv +11 -11
  804. teradataml/data/scale_housing_test.csv +6 -6
  805. teradataml/data/scale_stat.csv +11 -11
  806. teradataml/data/scalebypartition_example.json +13 -13
  807. teradataml/data/scalemap_example.json +13 -13
  808. teradataml/data/scalesummary_example.json +12 -12
  809. teradataml/data/score_category.csv +101 -101
  810. teradataml/data/score_summary.csv +4 -4
  811. teradataml/data/script_example.json +9 -9
  812. teradataml/data/scripts/deploy_script.py +65 -0
  813. teradataml/data/scripts/mapper.R +20 -0
  814. teradataml/data/scripts/mapper.py +15 -15
  815. teradataml/data/scripts/mapper_replace.py +15 -15
  816. teradataml/data/scripts/sklearn/__init__.py +0 -0
  817. teradataml/data/scripts/sklearn/sklearn_fit.py +175 -0
  818. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +135 -0
  819. teradataml/data/scripts/sklearn/sklearn_function.template +113 -0
  820. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +158 -0
  821. teradataml/data/scripts/sklearn/sklearn_neighbors.py +152 -0
  822. teradataml/data/scripts/sklearn/sklearn_score.py +128 -0
  823. teradataml/data/scripts/sklearn/sklearn_transform.py +179 -0
  824. teradataml/data/seeds.csv +10 -10
  825. teradataml/data/sentenceextractor_example.json +6 -6
  826. teradataml/data/sentiment_extract_input.csv +11 -11
  827. teradataml/data/sentiment_train.csv +16 -16
  828. teradataml/data/sentiment_word.csv +20 -20
  829. teradataml/data/sentiment_word_input.csv +19 -19
  830. teradataml/data/sentimentextractor_example.json +24 -24
  831. teradataml/data/sentimenttrainer_example.json +8 -8
  832. teradataml/data/sequence_table.csv +10 -10
  833. teradataml/data/seriessplitter_example.json +7 -7
  834. teradataml/data/sessionize_example.json +17 -17
  835. teradataml/data/sessionize_table.csv +116 -116
  836. teradataml/data/setop_test1.csv +24 -24
  837. teradataml/data/setop_test2.csv +22 -22
  838. teradataml/data/soc_nw_edges.csv +10 -10
  839. teradataml/data/soc_nw_vertices.csv +7 -7
  840. teradataml/data/souvenir_timeseries.csv +167 -167
  841. teradataml/data/sparse_iris_attribute.csv +5 -5
  842. teradataml/data/sparse_iris_test.csv +121 -121
  843. teradataml/data/sparse_iris_train.csv +601 -601
  844. teradataml/data/star1.csv +6 -6
  845. teradataml/data/state_transition.csv +5 -5
  846. teradataml/data/stock_data.csv +53 -53
  847. teradataml/data/stock_movement.csv +11 -11
  848. teradataml/data/stock_vol.csv +76 -76
  849. teradataml/data/stop_words.csv +8 -8
  850. teradataml/data/store_sales.csv +37 -37
  851. teradataml/data/stringsimilarity_example.json +7 -7
  852. teradataml/data/strsimilarity_input.csv +13 -13
  853. teradataml/data/students.csv +101 -101
  854. teradataml/data/svm_iris_input_test.csv +121 -121
  855. teradataml/data/svm_iris_input_train.csv +481 -481
  856. teradataml/data/svm_iris_model.csv +7 -7
  857. teradataml/data/svmdense_example.json +9 -9
  858. teradataml/data/svmdensepredict_example.json +18 -18
  859. teradataml/data/svmsparse_example.json +7 -7
  860. teradataml/data/svmsparsepredict_example.json +13 -13
  861. teradataml/data/svmsparsesummary_example.json +7 -7
  862. teradataml/data/target_mobile_data.csv +13 -13
  863. teradataml/data/target_mobile_data_dense.csv +5 -5
  864. teradataml/data/templatedata.csv +1201 -1201
  865. teradataml/data/templates/open_source_ml.json +9 -0
  866. teradataml/data/teradataml_example.json +73 -1
  867. teradataml/data/test_classification.csv +101 -0
  868. teradataml/data/test_loan_prediction.csv +53 -53
  869. teradataml/data/test_pacf_12.csv +37 -37
  870. teradataml/data/test_prediction.csv +101 -0
  871. teradataml/data/test_regression.csv +101 -0
  872. teradataml/data/test_river2.csv +109 -109
  873. teradataml/data/text_inputs.csv +6 -6
  874. teradataml/data/textchunker_example.json +7 -7
  875. teradataml/data/textclassifier_example.json +6 -6
  876. teradataml/data/textclassifier_input.csv +7 -7
  877. teradataml/data/textclassifiertrainer_example.json +6 -6
  878. teradataml/data/textmorph_example.json +5 -5
  879. teradataml/data/textparser_example.json +15 -15
  880. teradataml/data/texttagger_example.json +11 -11
  881. teradataml/data/texttokenizer_example.json +6 -6
  882. teradataml/data/texttrainer_input.csv +11 -11
  883. teradataml/data/tf_example.json +6 -6
  884. teradataml/data/tfidf_example.json +13 -13
  885. teradataml/data/tfidf_input1.csv +201 -201
  886. teradataml/data/tfidf_train.csv +6 -6
  887. teradataml/data/time_table1.csv +535 -535
  888. teradataml/data/time_table2.csv +14 -14
  889. teradataml/data/timeseriesdata.csv +1601 -1601
  890. teradataml/data/timeseriesdatasetsd4.csv +105 -105
  891. teradataml/data/titanic.csv +892 -892
  892. teradataml/data/token_table.csv +696 -696
  893. teradataml/data/train_multiclass.csv +101 -0
  894. teradataml/data/train_regression.csv +101 -0
  895. teradataml/data/train_regression_multiple_labels.csv +101 -0
  896. teradataml/data/train_tracking.csv +27 -27
  897. teradataml/data/transformation_table.csv +5 -5
  898. teradataml/data/transformation_table_new.csv +1 -1
  899. teradataml/data/tv_spots.csv +16 -16
  900. teradataml/data/twod_climate_data.csv +117 -117
  901. teradataml/data/uaf_example.json +475 -475
  902. teradataml/data/univariatestatistics_example.json +8 -8
  903. teradataml/data/unpack_example.json +9 -9
  904. teradataml/data/unpivot_example.json +9 -9
  905. teradataml/data/unpivot_input.csv +8 -8
  906. teradataml/data/us_air_pass.csv +36 -36
  907. teradataml/data/us_population.csv +624 -624
  908. teradataml/data/us_states_shapes.csv +52 -52
  909. teradataml/data/varmax_example.json +17 -17
  910. teradataml/data/vectordistance_example.json +25 -25
  911. teradataml/data/ville_climatedata.csv +121 -121
  912. teradataml/data/ville_tempdata.csv +12 -12
  913. teradataml/data/ville_tempdata1.csv +12 -12
  914. teradataml/data/ville_temperature.csv +11 -11
  915. teradataml/data/waveletTable.csv +1605 -1605
  916. teradataml/data/waveletTable2.csv +1605 -1605
  917. teradataml/data/weightedmovavg_example.json +8 -8
  918. teradataml/data/wft_testing.csv +5 -5
  919. teradataml/data/wine_data.csv +1600 -0
  920. teradataml/data/word_embed_input_table1.csv +5 -5
  921. teradataml/data/word_embed_input_table2.csv +4 -4
  922. teradataml/data/word_embed_model.csv +22 -22
  923. teradataml/data/words_input.csv +13 -13
  924. teradataml/data/xconvolve_complex_left.csv +6 -6
  925. teradataml/data/xconvolve_complex_leftmulti.csv +6 -6
  926. teradataml/data/xgboost_example.json +35 -35
  927. teradataml/data/xgboostpredict_example.json +31 -31
  928. teradataml/dataframe/copy_to.py +1764 -1698
  929. teradataml/dataframe/data_transfer.py +2753 -2745
  930. teradataml/dataframe/dataframe.py +17545 -16946
  931. teradataml/dataframe/dataframe_utils.py +1837 -1740
  932. teradataml/dataframe/fastload.py +611 -603
  933. teradataml/dataframe/indexer.py +424 -424
  934. teradataml/dataframe/setop.py +1179 -1166
  935. teradataml/dataframe/sql.py +10090 -6432
  936. teradataml/dataframe/sql_function_parameters.py +439 -388
  937. teradataml/dataframe/sql_functions.py +652 -652
  938. teradataml/dataframe/sql_interfaces.py +220 -220
  939. teradataml/dataframe/vantage_function_types.py +674 -630
  940. teradataml/dataframe/window.py +693 -692
  941. teradataml/dbutils/__init__.py +3 -3
  942. teradataml/dbutils/dbutils.py +1167 -1150
  943. teradataml/dbutils/filemgr.py +267 -267
  944. teradataml/gen_ai/__init__.py +2 -2
  945. teradataml/gen_ai/convAI.py +472 -472
  946. teradataml/geospatial/__init__.py +3 -3
  947. teradataml/geospatial/geodataframe.py +1105 -1094
  948. teradataml/geospatial/geodataframecolumn.py +392 -387
  949. teradataml/geospatial/geometry_types.py +925 -925
  950. teradataml/hyperparameter_tuner/__init__.py +1 -1
  951. teradataml/hyperparameter_tuner/optimizer.py +3783 -2993
  952. teradataml/hyperparameter_tuner/utils.py +281 -187
  953. teradataml/lib/aed_0_1.dll +0 -0
  954. teradataml/lib/libaed_0_1.dylib +0 -0
  955. teradataml/lib/libaed_0_1.so +0 -0
  956. teradataml/libaed_0_1.dylib +0 -0
  957. teradataml/libaed_0_1.so +0 -0
  958. teradataml/opensource/__init__.py +1 -0
  959. teradataml/opensource/sklearn/__init__.py +1 -0
  960. teradataml/opensource/sklearn/_class.py +255 -0
  961. teradataml/opensource/sklearn/_sklearn_wrapper.py +1668 -0
  962. teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
  963. teradataml/opensource/sklearn/constants.py +54 -0
  964. teradataml/options/__init__.py +121 -124
  965. teradataml/options/configure.py +337 -336
  966. teradataml/options/display.py +176 -176
  967. teradataml/plot/__init__.py +2 -2
  968. teradataml/plot/axis.py +1388 -1388
  969. teradataml/plot/constants.py +15 -15
  970. teradataml/plot/figure.py +398 -398
  971. teradataml/plot/plot.py +760 -760
  972. teradataml/plot/query_generator.py +83 -83
  973. teradataml/plot/subplot.py +216 -216
  974. teradataml/scriptmgmt/UserEnv.py +3788 -3761
  975. teradataml/scriptmgmt/__init__.py +3 -3
  976. teradataml/scriptmgmt/lls_utils.py +1616 -1604
  977. teradataml/series/series.py +532 -532
  978. teradataml/series/series_utils.py +71 -71
  979. teradataml/table_operators/Apply.py +949 -917
  980. teradataml/table_operators/Script.py +1719 -1982
  981. teradataml/table_operators/TableOperator.py +1207 -1616
  982. teradataml/table_operators/__init__.py +2 -3
  983. teradataml/table_operators/apply_query_generator.py +262 -262
  984. teradataml/table_operators/query_generator.py +507 -507
  985. teradataml/table_operators/table_operator_query_generator.py +460 -460
  986. teradataml/table_operators/table_operator_util.py +631 -639
  987. teradataml/table_operators/templates/dataframe_apply.template +184 -184
  988. teradataml/table_operators/templates/dataframe_map.template +176 -176
  989. teradataml/table_operators/templates/script_executor.template +170 -170
  990. teradataml/utils/dtypes.py +684 -684
  991. teradataml/utils/internal_buffer.py +84 -84
  992. teradataml/utils/print_versions.py +205 -205
  993. teradataml/utils/utils.py +410 -410
  994. teradataml/utils/validators.py +2239 -2115
  995. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.0.dist-info}/METADATA +270 -41
  996. teradataml-20.0.0.0.dist-info/RECORD +1038 -0
  997. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.0.dist-info}/WHEEL +1 -1
  998. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.0.dist-info}/zip-safe +1 -1
  999. teradataml/analytics/mle/AdaBoost.py +0 -651
  1000. teradataml/analytics/mle/AdaBoostPredict.py +0 -564
  1001. teradataml/analytics/mle/Antiselect.py +0 -342
  1002. teradataml/analytics/mle/Arima.py +0 -641
  1003. teradataml/analytics/mle/ArimaPredict.py +0 -477
  1004. teradataml/analytics/mle/Attribution.py +0 -1070
  1005. teradataml/analytics/mle/Betweenness.py +0 -658
  1006. teradataml/analytics/mle/Burst.py +0 -711
  1007. teradataml/analytics/mle/CCM.py +0 -600
  1008. teradataml/analytics/mle/CCMPrepare.py +0 -324
  1009. teradataml/analytics/mle/CFilter.py +0 -460
  1010. teradataml/analytics/mle/ChangePointDetection.py +0 -572
  1011. teradataml/analytics/mle/ChangePointDetectionRT.py +0 -477
  1012. teradataml/analytics/mle/Closeness.py +0 -737
  1013. teradataml/analytics/mle/ConfusionMatrix.py +0 -420
  1014. teradataml/analytics/mle/Correlation.py +0 -477
  1015. teradataml/analytics/mle/Correlation2.py +0 -573
  1016. teradataml/analytics/mle/CoxHazardRatio.py +0 -679
  1017. teradataml/analytics/mle/CoxPH.py +0 -556
  1018. teradataml/analytics/mle/CoxSurvival.py +0 -478
  1019. teradataml/analytics/mle/CumulativeMovAvg.py +0 -363
  1020. teradataml/analytics/mle/DTW.py +0 -623
  1021. teradataml/analytics/mle/DWT.py +0 -564
  1022. teradataml/analytics/mle/DWT2D.py +0 -599
  1023. teradataml/analytics/mle/DecisionForest.py +0 -716
  1024. teradataml/analytics/mle/DecisionForestEvaluator.py +0 -363
  1025. teradataml/analytics/mle/DecisionForestPredict.py +0 -561
  1026. teradataml/analytics/mle/DecisionTree.py +0 -830
  1027. teradataml/analytics/mle/DecisionTreePredict.py +0 -528
  1028. teradataml/analytics/mle/ExponentialMovAvg.py +0 -418
  1029. teradataml/analytics/mle/FMeasure.py +0 -402
  1030. teradataml/analytics/mle/FPGrowth.py +0 -734
  1031. teradataml/analytics/mle/FrequentPaths.py +0 -695
  1032. teradataml/analytics/mle/GLM.py +0 -558
  1033. teradataml/analytics/mle/GLML1L2.py +0 -547
  1034. teradataml/analytics/mle/GLML1L2Predict.py +0 -519
  1035. teradataml/analytics/mle/GLMPredict.py +0 -529
  1036. teradataml/analytics/mle/HMMDecoder.py +0 -945
  1037. teradataml/analytics/mle/HMMEvaluator.py +0 -901
  1038. teradataml/analytics/mle/HMMSupervised.py +0 -521
  1039. teradataml/analytics/mle/HMMUnsupervised.py +0 -572
  1040. teradataml/analytics/mle/Histogram.py +0 -561
  1041. teradataml/analytics/mle/IDWT.py +0 -476
  1042. teradataml/analytics/mle/IDWT2D.py +0 -493
  1043. teradataml/analytics/mle/IdentityMatch.py +0 -763
  1044. teradataml/analytics/mle/Interpolator.py +0 -918
  1045. teradataml/analytics/mle/KMeans.py +0 -485
  1046. teradataml/analytics/mle/KNN.py +0 -627
  1047. teradataml/analytics/mle/KNNRecommender.py +0 -488
  1048. teradataml/analytics/mle/KNNRecommenderPredict.py +0 -581
  1049. teradataml/analytics/mle/LAR.py +0 -439
  1050. teradataml/analytics/mle/LARPredict.py +0 -478
  1051. teradataml/analytics/mle/LDA.py +0 -548
  1052. teradataml/analytics/mle/LDAInference.py +0 -492
  1053. teradataml/analytics/mle/LDATopicSummary.py +0 -464
  1054. teradataml/analytics/mle/LevenshteinDistance.py +0 -450
  1055. teradataml/analytics/mle/LinReg.py +0 -433
  1056. teradataml/analytics/mle/LinRegPredict.py +0 -438
  1057. teradataml/analytics/mle/MinHash.py +0 -544
  1058. teradataml/analytics/mle/Modularity.py +0 -587
  1059. teradataml/analytics/mle/NEREvaluator.py +0 -410
  1060. teradataml/analytics/mle/NERExtractor.py +0 -595
  1061. teradataml/analytics/mle/NERTrainer.py +0 -458
  1062. teradataml/analytics/mle/NGrams.py +0 -570
  1063. teradataml/analytics/mle/NPath.py +0 -634
  1064. teradataml/analytics/mle/NTree.py +0 -549
  1065. teradataml/analytics/mle/NaiveBayes.py +0 -462
  1066. teradataml/analytics/mle/NaiveBayesPredict.py +0 -513
  1067. teradataml/analytics/mle/NaiveBayesTextClassifier.py +0 -607
  1068. teradataml/analytics/mle/NaiveBayesTextClassifier2.py +0 -531
  1069. teradataml/analytics/mle/NaiveBayesTextClassifierPredict.py +0 -799
  1070. teradataml/analytics/mle/NamedEntityFinder.py +0 -529
  1071. teradataml/analytics/mle/NamedEntityFinderEvaluator.py +0 -414
  1072. teradataml/analytics/mle/NamedEntityFinderTrainer.py +0 -396
  1073. teradataml/analytics/mle/POSTagger.py +0 -417
  1074. teradataml/analytics/mle/Pack.py +0 -411
  1075. teradataml/analytics/mle/PageRank.py +0 -535
  1076. teradataml/analytics/mle/PathAnalyzer.py +0 -426
  1077. teradataml/analytics/mle/PathGenerator.py +0 -367
  1078. teradataml/analytics/mle/PathStart.py +0 -464
  1079. teradataml/analytics/mle/PathSummarizer.py +0 -470
  1080. teradataml/analytics/mle/Pivot.py +0 -471
  1081. teradataml/analytics/mle/ROC.py +0 -425
  1082. teradataml/analytics/mle/RandomSample.py +0 -637
  1083. teradataml/analytics/mle/RandomWalkSample.py +0 -490
  1084. teradataml/analytics/mle/SAX.py +0 -779
  1085. teradataml/analytics/mle/SVMDense.py +0 -677
  1086. teradataml/analytics/mle/SVMDensePredict.py +0 -536
  1087. teradataml/analytics/mle/SVMDenseSummary.py +0 -437
  1088. teradataml/analytics/mle/SVMSparse.py +0 -557
  1089. teradataml/analytics/mle/SVMSparsePredict.py +0 -553
  1090. teradataml/analytics/mle/SVMSparseSummary.py +0 -435
  1091. teradataml/analytics/mle/Sampling.py +0 -549
  1092. teradataml/analytics/mle/Scale.py +0 -565
  1093. teradataml/analytics/mle/ScaleByPartition.py +0 -496
  1094. teradataml/analytics/mle/ScaleMap.py +0 -378
  1095. teradataml/analytics/mle/ScaleSummary.py +0 -320
  1096. teradataml/analytics/mle/SentenceExtractor.py +0 -363
  1097. teradataml/analytics/mle/SentimentEvaluator.py +0 -432
  1098. teradataml/analytics/mle/SentimentExtractor.py +0 -578
  1099. teradataml/analytics/mle/SentimentTrainer.py +0 -405
  1100. teradataml/analytics/mle/SeriesSplitter.py +0 -641
  1101. teradataml/analytics/mle/Sessionize.py +0 -475
  1102. teradataml/analytics/mle/SimpleMovAvg.py +0 -397
  1103. teradataml/analytics/mle/StringSimilarity.py +0 -425
  1104. teradataml/analytics/mle/TF.py +0 -389
  1105. teradataml/analytics/mle/TFIDF.py +0 -504
  1106. teradataml/analytics/mle/TextChunker.py +0 -414
  1107. teradataml/analytics/mle/TextClassifier.py +0 -399
  1108. teradataml/analytics/mle/TextClassifierEvaluator.py +0 -413
  1109. teradataml/analytics/mle/TextClassifierTrainer.py +0 -565
  1110. teradataml/analytics/mle/TextMorph.py +0 -494
  1111. teradataml/analytics/mle/TextParser.py +0 -623
  1112. teradataml/analytics/mle/TextTagger.py +0 -530
  1113. teradataml/analytics/mle/TextTokenizer.py +0 -502
  1114. teradataml/analytics/mle/UnivariateStatistics.py +0 -488
  1115. teradataml/analytics/mle/Unpack.py +0 -526
  1116. teradataml/analytics/mle/Unpivot.py +0 -438
  1117. teradataml/analytics/mle/VarMax.py +0 -776
  1118. teradataml/analytics/mle/VectorDistance.py +0 -762
  1119. teradataml/analytics/mle/WeightedMovAvg.py +0 -400
  1120. teradataml/analytics/mle/XGBoost.py +0 -842
  1121. teradataml/analytics/mle/XGBoostPredict.py +0 -627
  1122. teradataml/analytics/mle/__init__.py +0 -123
  1123. teradataml/analytics/mle/json/adaboost_mle.json +0 -135
  1124. teradataml/analytics/mle/json/adaboostpredict_mle.json +0 -85
  1125. teradataml/analytics/mle/json/antiselect_mle.json +0 -34
  1126. teradataml/analytics/mle/json/antiselect_mle_mle.json +0 -34
  1127. teradataml/analytics/mle/json/arima_mle.json +0 -172
  1128. teradataml/analytics/mle/json/arimapredict_mle.json +0 -52
  1129. teradataml/analytics/mle/json/attribution_mle_mle.json +0 -143
  1130. teradataml/analytics/mle/json/betweenness_mle.json +0 -97
  1131. teradataml/analytics/mle/json/burst_mle.json +0 -140
  1132. teradataml/analytics/mle/json/ccm_mle.json +0 -124
  1133. teradataml/analytics/mle/json/ccmprepare_mle.json +0 -14
  1134. teradataml/analytics/mle/json/cfilter_mle.json +0 -93
  1135. teradataml/analytics/mle/json/changepointdetection_mle.json +0 -92
  1136. teradataml/analytics/mle/json/changepointdetectionrt_mle.json +0 -78
  1137. teradataml/analytics/mle/json/closeness_mle.json +0 -104
  1138. teradataml/analytics/mle/json/confusionmatrix_mle.json +0 -79
  1139. teradataml/analytics/mle/json/correlation_mle.json +0 -86
  1140. teradataml/analytics/mle/json/correlationreduce_mle.json +0 -49
  1141. teradataml/analytics/mle/json/coxhazardratio_mle.json +0 -89
  1142. teradataml/analytics/mle/json/coxph_mle.json +0 -98
  1143. teradataml/analytics/mle/json/coxsurvival_mle.json +0 -79
  1144. teradataml/analytics/mle/json/cumulativemovavg_mle.json +0 -34
  1145. teradataml/analytics/mle/json/decisionforest_mle.json +0 -167
  1146. teradataml/analytics/mle/json/decisionforestevaluator_mle.json +0 -33
  1147. teradataml/analytics/mle/json/decisionforestpredict_mle_mle.json +0 -74
  1148. teradataml/analytics/mle/json/decisiontree_mle.json +0 -194
  1149. teradataml/analytics/mle/json/decisiontreepredict_mle_mle.json +0 -86
  1150. teradataml/analytics/mle/json/dtw_mle.json +0 -97
  1151. teradataml/analytics/mle/json/dwt2d_mle.json +0 -116
  1152. teradataml/analytics/mle/json/dwt_mle.json +0 -101
  1153. teradataml/analytics/mle/json/exponentialmovavg_mle.json +0 -55
  1154. teradataml/analytics/mle/json/fmeasure_mle.json +0 -58
  1155. teradataml/analytics/mle/json/fpgrowth_mle.json +0 -159
  1156. teradataml/analytics/mle/json/frequentpaths_mle.json +0 -129
  1157. teradataml/analytics/mle/json/glm_mle.json +0 -111
  1158. teradataml/analytics/mle/json/glml1l2_mle.json +0 -106
  1159. teradataml/analytics/mle/json/glml1l2predict_mle.json +0 -57
  1160. teradataml/analytics/mle/json/glmpredict_mle_mle.json +0 -74
  1161. teradataml/analytics/mle/json/histogram_mle.json +0 -100
  1162. teradataml/analytics/mle/json/hmmdecoder_mle.json +0 -192
  1163. teradataml/analytics/mle/json/hmmevaluator_mle.json +0 -206
  1164. teradataml/analytics/mle/json/hmmsupervised_mle.json +0 -91
  1165. teradataml/analytics/mle/json/hmmunsupervised_mle.json +0 -114
  1166. teradataml/analytics/mle/json/identitymatch_mle.json +0 -88
  1167. teradataml/analytics/mle/json/idwt2d_mle.json +0 -73
  1168. teradataml/analytics/mle/json/idwt_mle.json +0 -66
  1169. teradataml/analytics/mle/json/interpolator_mle.json +0 -151
  1170. teradataml/analytics/mle/json/kmeans_mle.json +0 -97
  1171. teradataml/analytics/mle/json/knn_mle.json +0 -141
  1172. teradataml/analytics/mle/json/knnrecommender_mle.json +0 -111
  1173. teradataml/analytics/mle/json/knnrecommenderpredict_mle.json +0 -75
  1174. teradataml/analytics/mle/json/lar_mle.json +0 -78
  1175. teradataml/analytics/mle/json/larpredict_mle.json +0 -69
  1176. teradataml/analytics/mle/json/lda_mle.json +0 -130
  1177. teradataml/analytics/mle/json/ldainference_mle.json +0 -78
  1178. teradataml/analytics/mle/json/ldatopicsummary_mle.json +0 -64
  1179. teradataml/analytics/mle/json/levenshteindistance_mle.json +0 -92
  1180. teradataml/analytics/mle/json/linreg_mle.json +0 -42
  1181. teradataml/analytics/mle/json/linregpredict_mle.json +0 -56
  1182. teradataml/analytics/mle/json/minhash_mle.json +0 -113
  1183. teradataml/analytics/mle/json/modularity_mle.json +0 -91
  1184. teradataml/analytics/mle/json/naivebayespredict_mle_mle.json +0 -85
  1185. teradataml/analytics/mle/json/naivebayesreduce_mle.json +0 -52
  1186. teradataml/analytics/mle/json/naivebayestextclassifierpredict_mle_mle.json +0 -147
  1187. teradataml/analytics/mle/json/naivebayestextclassifiertrainer2_mle.json +0 -108
  1188. teradataml/analytics/mle/json/naivebayestextclassifiertrainer_mle.json +0 -102
  1189. teradataml/analytics/mle/json/namedentityfinder_mle.json +0 -84
  1190. teradataml/analytics/mle/json/namedentityfinderevaluatorreduce_mle.json +0 -43
  1191. teradataml/analytics/mle/json/namedentityfindertrainer_mle.json +0 -64
  1192. teradataml/analytics/mle/json/nerevaluator_mle.json +0 -54
  1193. teradataml/analytics/mle/json/nerextractor_mle.json +0 -87
  1194. teradataml/analytics/mle/json/nertrainer_mle.json +0 -89
  1195. teradataml/analytics/mle/json/ngrams_mle.json +0 -137
  1196. teradataml/analytics/mle/json/ngramsplitter_mle_mle.json +0 -137
  1197. teradataml/analytics/mle/json/npath@coprocessor_mle.json +0 -73
  1198. teradataml/analytics/mle/json/ntree@coprocessor_mle.json +0 -123
  1199. teradataml/analytics/mle/json/pack_mle.json +0 -58
  1200. teradataml/analytics/mle/json/pack_mle_mle.json +0 -58
  1201. teradataml/analytics/mle/json/pagerank_mle.json +0 -81
  1202. teradataml/analytics/mle/json/pathanalyzer_mle.json +0 -63
  1203. teradataml/analytics/mle/json/pathgenerator_mle.json +0 -40
  1204. teradataml/analytics/mle/json/pathstart_mle.json +0 -62
  1205. teradataml/analytics/mle/json/pathsummarizer_mle.json +0 -72
  1206. teradataml/analytics/mle/json/pivoting_mle.json +0 -71
  1207. teradataml/analytics/mle/json/postagger_mle.json +0 -51
  1208. teradataml/analytics/mle/json/randomsample_mle.json +0 -131
  1209. teradataml/analytics/mle/json/randomwalksample_mle.json +0 -85
  1210. teradataml/analytics/mle/json/roc_mle.json +0 -73
  1211. teradataml/analytics/mle/json/sampling_mle.json +0 -75
  1212. teradataml/analytics/mle/json/sax_mle.json +0 -154
  1213. teradataml/analytics/mle/json/scale_mle.json +0 -93
  1214. teradataml/analytics/mle/json/scalebypartition_mle.json +0 -89
  1215. teradataml/analytics/mle/json/scalemap_mle.json +0 -44
  1216. teradataml/analytics/mle/json/scalesummary_mle.json +0 -14
  1217. teradataml/analytics/mle/json/sentenceextractor_mle.json +0 -41
  1218. teradataml/analytics/mle/json/sentimentevaluator_mle.json +0 -43
  1219. teradataml/analytics/mle/json/sentimentextractor_mle.json +0 -100
  1220. teradataml/analytics/mle/json/sentimenttrainer_mle.json +0 -68
  1221. teradataml/analytics/mle/json/seriessplitter_mle.json +0 -133
  1222. teradataml/analytics/mle/json/sessionize_mle_mle.json +0 -62
  1223. teradataml/analytics/mle/json/simplemovavg_mle.json +0 -48
  1224. teradataml/analytics/mle/json/stringsimilarity_mle.json +0 -50
  1225. teradataml/analytics/mle/json/stringsimilarity_mle_mle.json +0 -50
  1226. teradataml/analytics/mle/json/svmdense_mle.json +0 -165
  1227. teradataml/analytics/mle/json/svmdensepredict_mle.json +0 -95
  1228. teradataml/analytics/mle/json/svmdensesummary_mle.json +0 -58
  1229. teradataml/analytics/mle/json/svmsparse_mle.json +0 -148
  1230. teradataml/analytics/mle/json/svmsparsepredict_mle_mle.json +0 -103
  1231. teradataml/analytics/mle/json/svmsparsesummary_mle.json +0 -57
  1232. teradataml/analytics/mle/json/textchunker_mle.json +0 -40
  1233. teradataml/analytics/mle/json/textclassifier_mle.json +0 -51
  1234. teradataml/analytics/mle/json/textclassifierevaluator_mle.json +0 -43
  1235. teradataml/analytics/mle/json/textclassifiertrainer_mle.json +0 -103
  1236. teradataml/analytics/mle/json/textmorph_mle.json +0 -63
  1237. teradataml/analytics/mle/json/textparser_mle.json +0 -166
  1238. teradataml/analytics/mle/json/texttagger_mle.json +0 -81
  1239. teradataml/analytics/mle/json/texttokenizer_mle.json +0 -91
  1240. teradataml/analytics/mle/json/tf_mle.json +0 -33
  1241. teradataml/analytics/mle/json/tfidf_mle.json +0 -34
  1242. teradataml/analytics/mle/json/univariatestatistics_mle.json +0 -81
  1243. teradataml/analytics/mle/json/unpack_mle.json +0 -91
  1244. teradataml/analytics/mle/json/unpack_mle_mle.json +0 -91
  1245. teradataml/analytics/mle/json/unpivoting_mle.json +0 -63
  1246. teradataml/analytics/mle/json/varmax_mle.json +0 -176
  1247. teradataml/analytics/mle/json/vectordistance_mle.json +0 -179
  1248. teradataml/analytics/mle/json/weightedmovavg_mle.json +0 -48
  1249. teradataml/analytics/mle/json/xgboost_mle.json +0 -178
  1250. teradataml/analytics/mle/json/xgboostpredict_mle.json +0 -104
  1251. teradataml/analytics/sqle/Antiselect.py +0 -321
  1252. teradataml/analytics/sqle/Attribution.py +0 -603
  1253. teradataml/analytics/sqle/DecisionForestPredict.py +0 -408
  1254. teradataml/analytics/sqle/GLMPredict.py +0 -430
  1255. teradataml/analytics/sqle/MovingAverage.py +0 -543
  1256. teradataml/analytics/sqle/NGramSplitter.py +0 -548
  1257. teradataml/analytics/sqle/NPath.py +0 -632
  1258. teradataml/analytics/sqle/NaiveBayesTextClassifierPredict.py +0 -515
  1259. teradataml/analytics/sqle/Pack.py +0 -388
  1260. teradataml/analytics/sqle/SVMSparsePredict.py +0 -464
  1261. teradataml/analytics/sqle/Sessionize.py +0 -390
  1262. teradataml/analytics/sqle/StringSimilarity.py +0 -400
  1263. teradataml/analytics/sqle/Unpack.py +0 -503
  1264. teradataml/analytics/sqle/json/antiselect_sqle.json +0 -21
  1265. teradataml/analytics/sqle/json/attribution_sqle.json +0 -92
  1266. teradataml/analytics/sqle/json/decisionforestpredict_sqle.json +0 -48
  1267. teradataml/analytics/sqle/json/glmpredict_sqle.json +0 -48
  1268. teradataml/analytics/sqle/json/h2opredict_sqle.json +0 -63
  1269. teradataml/analytics/sqle/json/movingaverage_sqle.json +0 -58
  1270. teradataml/analytics/sqle/json/naivebayestextclassifierpredict_sqle.json +0 -76
  1271. teradataml/analytics/sqle/json/ngramsplitter_sqle.json +0 -126
  1272. teradataml/analytics/sqle/json/npath_sqle.json +0 -67
  1273. teradataml/analytics/sqle/json/pack_sqle.json +0 -47
  1274. teradataml/analytics/sqle/json/pmmlpredict_sqle.json +0 -55
  1275. teradataml/analytics/sqle/json/sessionize_sqle.json +0 -43
  1276. teradataml/analytics/sqle/json/stringsimilarity_sqle.json +0 -39
  1277. teradataml/analytics/sqle/json/svmsparsepredict_sqle.json +0 -74
  1278. teradataml/analytics/sqle/json/unpack_sqle.json +0 -80
  1279. teradataml/catalog/model_cataloging.py +0 -980
  1280. teradataml/config/mlengine_alias_definitions_v1.0 +0 -118
  1281. teradataml/config/mlengine_alias_definitions_v1.1 +0 -127
  1282. teradataml/config/mlengine_alias_definitions_v1.3 +0 -129
  1283. teradataml/table_operators/sandbox_container_util.py +0 -643
  1284. teradataml-17.20.0.7.dist-info/RECORD +0 -1280
  1285. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.0.dist-info}/top_level.txt +0 -0
@@ -1,1150 +1,1167 @@
1
- """
2
- Copyright (c) 2018 by Teradata Corporation. All rights reserved.
3
- TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
4
-
5
- Primary Owner: rameshchandra.d@teradata.com
6
- Secondary Owner: sanath.vobilisetty@teradata.com
7
-
8
- teradataml db utilities
9
- ----------
10
- A teradataml database utility functions provide interface to Teradata Vantage common tasks such as drop_table, drop_view, create_table etc.
11
- """
12
- import concurrent.futures, json, os, tempfile, shutil
13
- from datetime import datetime
14
- import pandas as pd
15
- from sqlalchemy.sql.functions import Function
16
- from teradataml.context import context as tdmlctx
17
- from teradataml.common.utils import UtilFuncs
18
- from teradataml.common.messages import Messages
19
- from teradataml.common.messagecodes import MessageCodes
20
- from teradataml.common.exceptions import TeradataMlException
21
- from teradataml.common.constants import TeradataTableKindConstants
22
- from teradataml.common.sqlbundle import SQLBundle
23
- from teradataml.common.constants import SQLConstants
24
- from teradataml.common.constants import TableOperatorConstants
25
- import teradataml.dataframe as tdmldf
26
- from teradataml.options.configure import configure
27
- from teradataml.utils.utils import execute_sql
28
- from teradataml.utils.validators import _Validators
29
- from teradatasql import OperationalError
30
- from teradatasqlalchemy.dialect import preparer, dialect as td_dialect
31
- from teradatasqlalchemy.dialect import TDCreateTablePost as post
32
- from sqlalchemy import Table, Column, MetaData, CheckConstraint, \
33
- PrimaryKeyConstraint, ForeignKeyConstraint, UniqueConstraint
34
-
35
-
36
- def db_drop_table(table_name, schema_name=None):
37
- """
38
- DESCRIPTION:
39
- Drops the table from the given schema.
40
-
41
- PARAMETERS:
42
- table_name:
43
- Required Argument
44
- Specifies the table name to be dropped.
45
- Types: str
46
-
47
- schema_name:
48
- Optional Argument
49
- Specifies schema of the table to be dropped. If schema is not specified, function drops table from the
50
- current database.
51
- Default Value: None
52
- Types: str
53
-
54
- RETURNS:
55
- True - if the operation is successful.
56
-
57
- RAISES:
58
- TeradataMlException - If the table doesn't exist.
59
-
60
- EXAMPLES:
61
- >>> load_example_data("dataframe", "admissions_train")
62
-
63
- # Drop table in current database
64
- >>> db_drop_table(table_name = 'admissions_train')
65
-
66
- # Drop table from the given schema
67
- >>> db_drop_table(table_name = 'admissions_train', schema_name = 'alice')
68
- """
69
- # Argument validations
70
- awu_matrix = []
71
- awu_matrix.append(["schema_name", schema_name, True, (str), True])
72
- awu_matrix.append(["table_name", table_name, False, (str), True])
73
-
74
- # Validate argument types
75
- _Validators._validate_function_arguments(awu_matrix)
76
-
77
- # Joining view and schema names in the format "schema_name"."view_name"
78
- table_name = _get_quoted_object_name(schema_name, table_name)
79
-
80
- try:
81
- return UtilFuncs._drop_table(table_name)
82
- except TeradataMlException:
83
- raise
84
- except OperationalError:
85
- raise
86
- except Exception as err:
87
- raise TeradataMlException(Messages.get_message(MessageCodes.DROP_FAILED, "table",
88
- table_name),
89
- MessageCodes.DROP_FAILED) from err
90
-
91
- def db_drop_view(view_name, schema_name=None):
92
- """
93
- DESCRIPTION:
94
- Drops the view from the given schema.
95
-
96
- PARAMETERS:
97
- view_name:
98
- Required Argument
99
- Specifies view name to be dropped.
100
- Types: str
101
-
102
- schema_name:
103
- Optional Argument
104
- Specifies schema of the view to be dropped. If schema is not specified, function drops view from the current
105
- database.
106
- Default Value: None
107
- Types: str
108
-
109
- RETURNS:
110
- True - if the operation is successful.
111
-
112
- RAISES:
113
- TeradataMlException - If the view doesn't exist.
114
-
115
- EXAMPLES:
116
- # Create a view
117
- >>> execute_sql("create view temporary_view as (select 1 as dummy_col1, 2 as dummy_col2);")
118
-
119
- # Drop view in current schema
120
- >>> db_drop_view(view_name = 'temporary_view')
121
-
122
- # Drop view from the given schema
123
- >>> db_drop_view(view_name = 'temporary_view', schema_name = 'alice')
124
- """
125
- # Argument validations
126
- awu_matrix = []
127
- awu_matrix.append(["schema_name", schema_name, True, (str), True])
128
- awu_matrix.append(["view_name", view_name, False, (str), True])
129
-
130
- # Validate argument types
131
- _Validators._validate_function_arguments(awu_matrix)
132
-
133
- # Joining view and schema names in the format "schema_name"."view_name"
134
- view_name = _get_quoted_object_name(schema_name, view_name)
135
-
136
- try:
137
- return UtilFuncs._drop_view(view_name)
138
- except TeradataMlException:
139
- raise
140
- except OperationalError:
141
- raise
142
- except Exception as err:
143
- raise TeradataMlException(Messages.get_message(MessageCodes.DROP_FAILED, "view",
144
- view_name),
145
- MessageCodes.DROP_FAILED) from err
146
-
147
- def db_list_tables(schema_name=None, object_name=None, object_type='all'):
148
- """
149
- DESCRIPTION:
150
- Lists the Vantage objects(table/view) names for the specified schema name.
151
-
152
- PARAMETERS:
153
- schema_name:
154
- Optional Argument.
155
- Specifies the name of schema in the database. If schema is not specified, function lists tables/views from
156
- the current database.
157
- Default Value: None
158
- Types: str
159
-
160
- object_name:
161
- Optional Argument.
162
- Specifies a table/view name or pattern to be used for filtering them from the database.
163
- Pattern may contain '%' or '_' as pattern matching characters.
164
- A '%' represents any string of zero or more arbitrary characters. Any string of characters is acceptable as
165
- a replacement for the percent.
166
- A '_' represents exactly one arbitrary character. Any single character is acceptable in the position in
167
- which the underscore character appears.
168
- Default Value: None
169
- Types: str
170
- Example:
171
- 1. '%abc' will return all table/view object names starting with any character and ending with abc.
172
- 2. 'a_c' will return all table/view object names starting with 'a', ending with 'c' and has length of 3.
173
-
174
- object_type:
175
- Optional Argument.
176
- Specifies object type to apply the filter. Valid values for this argument are 'all','table','view',
177
- 'volatile','temp'.
178
- * all - List all the object types.
179
- * table - List only tables.
180
- * view - List only views.
181
- * volatile - List only volatile tables.
182
- * temp - List all teradataml temporary objects created in the specified database.
183
- Default Value: 'all'
184
- Types: str
185
-
186
- RETURNS:
187
- Pandas DataFrame
188
-
189
- RAISES:
190
- TeradataMlException - If the object_type argument is provided with invalid values.
191
- OperationalError - If any errors are raised from Vantage.
192
-
193
- EXAMPLES:
194
- # Example 1 - List all object types in the default schema
195
- >>> load_example_data("dataframe", "admissions_train")
196
- >>> db_list_tables()
197
-
198
- # Example 2 - List all the views in the default schema
199
- >>> execute_sql("create view temporary_view as (select 1 as dummy_col1, 2 as dummy_col2);")
200
- >>> db_list_tables(None , None, 'view')
201
-
202
- # Example 3 - List all the object types in the default schema whose names begin with 'abc' followed by one
203
- # arbitrary character and any number of characters in the end.
204
- >>> execute_sql("create view abcd123 as (select 1 as dummy_col1, 2 as dummy_col2);")
205
- >>> db_list_tables(None, 'abc_%', None)
206
-
207
- # Example 4 - List all the tables in the default schema whose names begin with 'adm_%' followed by one
208
- # arbitrary character and any number of characters in the end.
209
- >>> load_example_data("dataframe", "admissions_train")
210
- >>> db_list_tables(None, 'adm_%', 'table')
211
-
212
- # Example 5 - List all the views in the default schema whose names begin with any character but ends with 'abc'
213
- >>> execute_sql("create view view_abc as (select 1 as dummy_col1, 2 as dummy_col2);")
214
- >>> db_list_tables(None, '%abc', 'view')
215
-
216
- # Example 6 - List all the volatile tables in the default schema whose names begin with 'abc' and ends with any
217
- # arbitrary character and has a length of 4
218
- >>> execute_sql("CREATE volatile TABLE abcd(col0 int, col1 float) NO PRIMARY INDEX;")
219
- >>> db_list_tables(None, 'abc_', 'volatile')
220
-
221
- # Example 7 - List all the temporary objects created by teradataml in the default schema whose names begins and
222
- # ends with any number of arbitrary characters but contains 'filter' in between.
223
- >>> db_list_tables(None, '%filter%', 'temp')
224
- """
225
-
226
- if tdmlctx.get_connection() is None:
227
- raise TeradataMlException(Messages.get_message(MessageCodes.INVALID_CONTEXT_CONNECTION),
228
- MessageCodes.INVALID_CONTEXT_CONNECTION)
229
-
230
- # Argument validations
231
- awu_matrix = []
232
- awu_matrix.append(["schema_name", schema_name, True, (str), True])
233
- awu_matrix.append(["object_name", object_name, True, (str), True])
234
- permitted_object_types = [TeradataTableKindConstants.ALL.value,
235
- TeradataTableKindConstants.TABLE.value,
236
- TeradataTableKindConstants.VIEW.value,
237
- TeradataTableKindConstants.VOLATILE.value,
238
- TeradataTableKindConstants.TEMP.value]
239
- awu_matrix.append(["object_type", object_type, True, (str), True, permitted_object_types])
240
-
241
- # Validate argument types
242
- _Validators._validate_function_arguments(awu_matrix)
243
-
244
- try:
245
- return _get_select_table_kind(schema_name, object_name, object_type)
246
- except TeradataMlException:
247
- raise
248
- except OperationalError:
249
- raise
250
- except Exception as err:
251
- raise TeradataMlException(Messages.get_message(MessageCodes.LIST_DB_TABLES_FAILED),
252
- MessageCodes.LIST_DB_TABLES_FAILED) from err
253
-
254
- def _get_select_table_kind(schema_name, table_name, table_kind):
255
- """
256
- Get the list of the table names from the specified schema name.
257
-
258
- PARAMETERS:
259
- schema_name - The Name of schema in the database. The default value is the current database name.
260
- table_name - The pattern to be used to filtering the table names from the database.
261
- The table name argument can contain '%' as pattern matching charecter.For example '%abc'
262
- will return all table names starting with any charecters and ending with abc.
263
- table_kind - The table kind to apply the filter. The valid values are 'all','table','view','volatile','temp'.
264
- all - list the all the table kinds.
265
- table - list only tables.
266
- view - list only views.
267
- volatile - list only volatile temp.
268
- temp - list all teradata ml temporary objects created in the specified database.
269
- RETURNS:
270
- Panda's DataFrame - if the operation is successful.
271
-
272
- RAISES:
273
- Database error if an error occurred while executing query.
274
-
275
- EXAMPLES:
276
- _get_select_table_kind("schema_name", "table_name", "all")
277
- """
278
- object_name_str = None
279
- if table_name is not None:
280
- object_name_str = "'{0}'".format(table_name)
281
- object_table_kind = None
282
-
283
- # Check the schema name.
284
- if schema_name is None:
285
- schema_name = tdmlctx._get_current_databasename()
286
-
287
- # Check the table kind.
288
- if (table_kind == TeradataTableKindConstants.VOLATILE.value):
289
- query = SQLBundle._build_help_volatile_table()
290
- else:
291
- # Tablekind:
292
- # 'O' - stands for Table with no primary index and no partitioning
293
- # 'Q' - stands for Queue table
294
- # 'T' - stands for a Table with a primary index or primary AMP index, partitioning, or both.
295
- # Or a partitioned table with NoPI
296
- # 'V' - stands for View
297
- if (table_kind == TeradataTableKindConstants.TABLE.value):
298
- object_table_kind = "'{0}','{1}','{2}'".format('O', 'Q', 'T')
299
- elif (table_kind == TeradataTableKindConstants.VIEW.value):
300
- object_table_kind = "'{0}'".format('V')
301
- elif (table_kind == TeradataTableKindConstants.TEMP.value):
302
- if table_name is None:
303
- object_name_str = "'{0}'".format(TeradataTableKindConstants.ML_PATTERN.value)
304
- else:
305
- object_name_str = "'{0}','{1}'".format(table_name,
306
- TeradataTableKindConstants.ML_PATTERN.value)
307
- else:
308
- object_table_kind = "'{0}','{1}','{2}','{3}'".format('O', 'Q', 'T', 'V')
309
- query = SQLBundle._build_select_table_kind(schema_name, object_name_str, object_table_kind)
310
-
311
- try:
312
- pddf = pd.read_sql(query, tdmlctx.td_connection.connection)
313
- # Check if all table kind is requested and add also volatile tables to the pdf.
314
- if (table_kind == TeradataTableKindConstants.ALL.value):
315
- try:
316
- # Add volatile tables to all dataframe.
317
- vtquery = SQLBundle._build_help_volatile_table()
318
- vtdf = pd.read_sql(vtquery, tdmlctx.td_connection.connection)
319
- if not vtdf.empty:
320
- columns_dict = {TeradataTableKindConstants.VOLATILE_TABLE_NAME.value:
321
- TeradataTableKindConstants.REGULAR_TABLE_NAME.value}
322
- vtdf.rename(columns=columns_dict, inplace=True)
323
- frames = [pddf, vtdf[[TeradataTableKindConstants.REGULAR_TABLE_NAME.value]]]
324
- pddf = pd.concat(frames)
325
- pddf.reset_index(drop=True, inplace=True)
326
- except Exception as err:
327
- # No volatle tables exist.
328
- pass
329
- if (table_kind == TeradataTableKindConstants.VOLATILE.value):
330
- columns_dict = {TeradataTableKindConstants.VOLATILE_TABLE_NAME.value:
331
- TeradataTableKindConstants.REGULAR_TABLE_NAME.value}
332
- pddf.rename(columns=columns_dict, inplace=True)
333
- return pddf[[TeradataTableKindConstants.REGULAR_TABLE_NAME.value]]
334
- else:
335
- return pddf
336
- except Exception as err:
337
- return pd.DataFrame()
338
-
339
- def _execute_transaction(queries):
340
- """
341
- Internal function to execute the query or list of queries passed, as one transaction.
342
-
343
- PARAMETERS:
344
- queries:
345
- Required argument.
346
- Specifies a query or a list of queries to be executed as a single transaction.
347
- Types: str or list of str
348
-
349
- RAISES:
350
- Exception
351
-
352
- RETURNS:
353
- None.
354
-
355
- EXAMPLES:
356
- >>> _execute_transaction([query1, query2])
357
- """
358
- auto_commit_off = "{fn teradata_nativesql}{fn teradata_autocommit_off}"
359
- auto_commit_on = "{fn teradata_nativesql}{fn teradata_autocommit_on}"
360
- con = None
361
- cur = None
362
-
363
- if queries is not None:
364
- if isinstance(queries, str):
365
- queries = [queries]
366
-
367
- # Check if we have any queries to execute
368
- if len(queries) == 0:
369
- return
370
-
371
- try:
372
- con = tdmlctx.td_connection
373
- if con is None:
374
- raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
375
- MessageCodes.CONNECTION_FAILURE)
376
- con = con.connection
377
- cur = con.cursor()
378
- # Set auto_commit to OFF
379
- cur.execute(auto_commit_off)
380
- for query in queries:
381
- cur.execute(query)
382
-
383
- # Try committing the the transaction
384
- con.commit()
385
- except Exception:
386
- # Let's first rollback
387
- con.rollback()
388
- # Now, let's raise the error as is
389
- raise
390
- finally:
391
- # Finally, we must set auto_commit to ON
392
- cur.execute(auto_commit_on)
393
-
394
- def _execute_stored_procedure(function_call, fetchWarnings=True, expect_none_result=False):
395
- """
396
- DESCRIPTION:
397
- Executes the specified function call of the stored procedure which contains
398
- function name and parameters used by the function.
399
-
400
- PARAMETERS:
401
- function_call:
402
- Required argument.
403
- Specifies Function object for the stored procedure to be executed.
404
- This function object contains stored procedure name along with its arguments.
405
- Types: sqlalchemy.sql.functions.Function
406
-
407
- fetchWarnings:
408
- Optional Argument.
409
- Specifies a flag that decides whether to raise warnings thrown from Vantage or not.
410
- This will be the ideal behaviour for most of the stored procedures to fetch the warnings.
411
- Default Values: True
412
- Types: bool
413
-
414
- expect_none_result:
415
- Optional Argument.
416
- When set to True, warnings will be ignored, and only result set is returned.
417
- Returns None if query does not produce a result set.
418
- This option is ignored when fetchWarnings is set to True.
419
- Default Values: False
420
- Types: bool
421
-
422
- RETURNS:
423
- Results received from Vantage after the execution.
424
-
425
- RAISES:
426
- Exception thrown by the Vantage.
427
-
428
- EXAMPLES:
429
- # No parameter needed by stored procedure.
430
- functioncall = func.SYSUIF.list_base_environments()
431
- _execute_stored_procedure(functioncall)
432
-
433
- # Parameters are passed to the stored procedure in a list.
434
- functioncall = func.SYSUIF.install_file('myfile','mapper.py','cz!/documents/mapper.py')
435
- _execute_stored_procedure("SYSUIF.install_file(functioncall)", fetchWarnings=True)
436
- """
437
- __arg_info_matrix = []
438
- __arg_info_matrix.append(["function_call", function_call, False, (Function)])
439
- __arg_info_matrix.append(["fetchWarnings", fetchWarnings, True, (bool)])
440
- __arg_info_matrix.append(["expect_none_result", expect_none_result, True, (bool)])
441
-
442
- # Validate arguments
443
- _Validators._validate_function_arguments(__arg_info_matrix)
444
-
445
- sqlbundle = SQLBundle()
446
-
447
- # Get the query for running stored procedure.
448
- exec_sp_stmt = sqlbundle._get_sql_query(SQLConstants.SQL_EXEC_STORED_PROCEDURE)
449
- exec_sp_stmt = exec_sp_stmt.format(_get_function_call_as_string(function_call))
450
-
451
- return UtilFuncs._execute_query(exec_sp_stmt, fetchWarnings, expect_none_result)
452
-
453
- def _get_function_call_as_string(sqlcFuncObj):
454
- """
455
- DESCRIPTION:
456
- This function returns string representation for the sqlalchemy.sql.functions.Function object
457
- which will be used to create a query to be used to execute the function.
458
-
459
- PARAMETERS:
460
- sqlcFuncObj:
461
- Required Argument.
462
- Specifies function object representing the SQL function call to be executed.
463
-
464
- RAISES:
465
- None
466
-
467
- RETURNS:
468
- String representation of the input Function.
469
-
470
- EXAMPLES:
471
- functioncall = func.SYSUIF.install_file("tdml_testfile", "test_script", "/root/test_script.py")
472
- _get_function_call_as_string(functioncall)
473
-
474
- Output:
475
- "SYSUIF.install_file('tdml_testfile', 'test_script', '/root/test_script.py')"
476
- """
477
- # This is done by _exec_stored_procedure
478
- from teradatasqlalchemy.dialect import dialect as td_dialect
479
- kw = dict({'dialect': td_dialect(),
480
- 'compile_kwargs':
481
- {
482
- 'include_table': False,
483
- 'literal_binds': True
484
- }
485
- })
486
-
487
- return str(sqlcFuncObj.compile(**kw))
488
-
489
- def _get_quoted_object_name(schema_name, object_name):
490
- """
491
- DESCRIPTION:
492
- This function quotes and joins schema name to the object name which can either be table or a view.
493
-
494
- PARAMETERS:
495
- schema_name
496
- Required Argument.
497
- Specifies the schema name.
498
- Types: str
499
-
500
- object_name
501
- Required Argument.
502
- Specifies the object name either table or view.
503
- Types: str
504
-
505
- RAISES:
506
- None
507
-
508
- RETURNS:
509
- Quoted and joined string of schema and object name.
510
-
511
- EXAMPLES:
512
- _get_quoted_object_name(schema_name = "alice", object_name = "admissions_train")
513
-
514
- OUTPUT:
515
- '"alice"."admissions_train"'
516
- """
517
- tdp = preparer(td_dialect)
518
-
519
- if schema_name is not None:
520
- schema_name = tdp.quote(schema_name)
521
- else:
522
- schema_name = tdp.quote(tdmlctx._get_current_databasename())
523
-
524
- quoted_object_name = "{0}.{1}".format(schema_name, tdp.quote(object_name))
525
- return quoted_object_name
526
-
527
- def view_log(log_type="script", num_lines=1000, query_id=None, log_dir=None):
528
- """
529
- DESCRIPTION:
530
- Function for viewing script, apply or byom log on Vantage.
531
- Logs are pulled from 'script_log' or 'byom.log' file on database node.
532
- When log_type is "script", logs are pulled from 'scriptlog' file on database node.
533
- This is useful when Script.execute() is executed to run user scripts in Vantage.
534
- When log_type is set to "apply", function downloads the log files to a folder.
535
- Notes:
536
- * Logs files will be downloaded based on "log_dir".
537
- * teradataml creates a sub directory with the name as "query_id"
538
- and downloads the logs to the sub directory.
539
- * files generated from "query_id" requires few seconds to generate,
540
- provide "query_id" to function view_log() after few seconds else
541
- it will return empty sub directory.
542
-
543
- PARAMETERS:
544
- log_type:
545
- Optional Argument.
546
- Specifies which logs to view.
547
- If set to 'script', script log is pulled from database node.
548
- If set to 'byom', byom log is pulled from database node.
549
- If set to 'apply' logs are pulled from kubernetes container.
550
- Permitted Values: 'script', 'apply', 'byom'
551
- Default Value: 'script'
552
- Types: str
553
-
554
- num_lines:
555
- Optional Argument.
556
- Specifies the number of lines to be read and displayed from log.
557
- Note:
558
- This argument is applicable when log_type is 'script' otherwise ignored.
559
- Default Value: 1000
560
- Types: int
561
-
562
- query_id:
563
- Required Argument when log_type is 'apply', otherwise ignored.
564
- Specifies the id of the query for which logs are to be retrieved.
565
- This query id is part of the error message received when Apply class
566
- or Dataframe apply method calls fail to execute the Apply table operator
567
- query.
568
- Types: str
569
-
570
- log_dir:
571
- Optional Argument.
572
- Specifies the directory path to store all the log files for "query_id".
573
- Notes:
574
- * This argument is applicable when log_type is 'apply' otherwise ignored.
575
- * when "log_dir" is not provided, function creates temporary folder
576
- and store the log files in the temp folder.
577
- Types: str
578
-
579
- RETURNS:
580
- when log_type="apply" returns log files, otherwise teradataml dataframe.
581
-
582
- RAISES:
583
- TeradataMLException.
584
-
585
- EXAMPLES:
586
- # Example 1: View script log.
587
- >>> view_log(log_type="script", num_lines=200)
588
- >>> view_log(log_type="byom", num_lines=200)
589
-
590
- # Example 2: Download the Apply query logs to a default temp folder.
591
- # Use query id from the error messages returned by Apply class.
592
- >>> view_log(log_type="apply", query_id='307161028465226056')
593
- Logs for query_id "307191028465562578" is stored at "C:\\local_repo\\AppData\\Local\\Temp\\tmp00kuxlgu\\307161028465226056"
594
-
595
- # Example 3: Download the Apply query logs to a specific folder.
596
- # Use query id from the error messages returned by Apply class.
597
- >>> view_log(log_type="apply", query_id='307161028465226056',log_dir='C:\\local_repo\\workspace')
598
- Logs for query_id "307191028465562578" is stored at "C:\\local_repo\\workspace\\307161028465226056"
599
- """
600
- awu_matrix_test = []
601
- awu_matrix_test.append((["num_lines", num_lines, True, (int), True]))
602
- awu_matrix_test.append(("log_type", log_type, True, (str), True,
603
- [TableOperatorConstants.SCRIPT_LOG.value,
604
- TableOperatorConstants.APPLY_LOG.value,
605
- TableOperatorConstants.BYOM_LOG.value]))
606
- # Validate argument type.
607
- _Validators._validate_function_arguments(awu_matrix_test)
608
-
609
- # Validate num_lines is a positive integer.
610
- _Validators._validate_positive_int(num_lines, "num_lines")
611
-
612
- awu_matrix_test.append(["query_id", query_id, True, (str), True])
613
- awu_matrix_test.append(["log_dir", log_dir, True, (str), True])
614
-
615
- # Validate argument type.
616
- _Validators._validate_function_arguments(awu_matrix_test)
617
-
618
- # log_type is script.
619
- if log_type.upper() in [TableOperatorConstants.SCRIPT_LOG.value, TableOperatorConstants.BYOM_LOG.value]:
620
- # Validate num_lines is a positive integer.
621
- _Validators._validate_positive_int(num_lines, "num_lines")
622
-
623
-
624
- # Query for viewing last n lines of script log.
625
- view_log_query = TableOperatorConstants.SCRIPT_LOG_QUERY.value \
626
- .format(num_lines, configure.default_varchar_size)
627
-
628
- # log_type is apply.
629
- else:
630
- if query_id is None:
631
- raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
632
- "query_id",
633
- "log_type=\"apply\""),
634
- MessageCodes.DEPENDENT_ARG_MISSING)
635
- if log_dir is not None:
636
- if not os.path.exists(log_dir):
637
- err_msg = 'The path \'{}\' does not exist.'.format(
638
- log_dir)
639
- raise TeradataMlException(err_msg, MessageCodes.INPUT_FILE_NOT_FOUND)
640
- if not os.path.isdir(log_dir):
641
- err_msg = 'Please provide directory path instead of file path.'.format(
642
- log_dir)
643
- raise TeradataMlException(err_msg, MessageCodes.INPUT_FILE_NOT_FOUND)
644
- from teradataml.scriptmgmt.UserEnv import _get_auth_token, _get_ues_url, \
645
- _process_ues_response
646
- ues_url = _get_ues_url(logs=True, query_id=query_id)
647
- response = UtilFuncs._http_request(ues_url, headers=_get_auth_token())
648
- resp = _process_ues_response(api_name="view_log", response=response)
649
- resp = resp.content.decode('utf-8')
650
- jsons = json.loads(resp)
651
- if log_dir is None:
652
- log_dir = tempfile.mkdtemp()
653
- log_dir = os.path.join(log_dir, query_id)
654
- if os.path.exists(log_dir):
655
- shutil.rmtree(log_dir)
656
- os.mkdir(log_dir)
657
- urls_and_files = [(log['url'], os.path.join(log_dir, log['name'])) for log in jsons['logs']]
658
- failed_files = []
659
- with concurrent.futures.ThreadPoolExecutor() as executor:
660
- results = {executor.submit(_fetch_url_and_save, url, file_path):
661
- (os.path.basename(file_path)) for url, file_path in urls_and_files}
662
- for future in concurrent.futures.as_completed(results):
663
- try:
664
- file_name = results[future]
665
- future.result()
666
- except (TeradataMlException, RuntimeError, Exception) as emsg:
667
- failed_files.append((file_name, emsg))
668
- if len(failed_files) > 0:
669
- emsg = ""
670
- for msg in failed_files:
671
- emsg += "\nUnable to download the file - {}. Reason: {}" \
672
- .format(msg[0], msg[1].args[0])
673
- msg_code = MessageCodes.FUNC_EXECUTION_FAILED
674
- error_msg = Messages.get_message(msg_code, "view_log()", emsg)
675
- raise TeradataMlException(error_msg, msg_code)
676
- else:
677
- print("Logs for query_id \"{}\" is stored at \"{}\"".format(query_id, log_dir))
678
- # Return a teradataml dataframe from query.
679
- if log_type != 'apply':
680
- return tdmldf.dataframe.DataFrame.from_query(view_log_query)
681
-
682
-
683
- def _fetch_url_and_save(url, file_path):
684
- """
685
- DESCRIPTION:
686
- Download file from specifed url and update files at specified path.
687
-
688
- PARAMETERS:
689
- url:
690
- Specifies the url from where file needs to be downloaded.
691
-
692
- file_path:
693
- Specifies the path of file where downloaded file needs to be updated.
694
-
695
- Returns:
696
- None
697
-
698
- """
699
- from teradataml.scriptmgmt.UserEnv import _process_ues_response
700
- response = UtilFuncs._http_request(url)
701
- resp = _process_ues_response(api_name="view_log", response=response)
702
- with open(file_path, 'w') as file:
703
- file.write(resp.content.decode('utf-8'))
704
-
705
-
706
-
707
- def _check_if_python_packages_installed():
708
- """
709
- DESCRIPTION:
710
- Function to set global variable 'python_packages_installed' to True
711
- or False based on whether the Vantage node has Python and add-on
712
- packages including pip3 installed.
713
-
714
- PARAMETERS:
715
- None.
716
-
717
- RETURNS:
718
- None.
719
-
720
- RAISES:
721
- Exception.
722
-
723
- EXAMPLES:
724
- _check_if_python_packages_installed()
725
- """
726
- # Check if Python interpreter and add-ons packages are installed or not.
727
- try:
728
- query = TableOperatorConstants.CHECK_PYTHON_INSTALLED.value
729
- UtilFuncs._execute_query(query=query)
730
-
731
- # If query execution is successful, then Python and add-on packages are
732
- # present.
733
- tdmlctx.python_packages_installed = True
734
- except Exception as err:
735
- # Raise Exception if the error message does not contain
736
- # "bash: pip3: command not found".
737
- # Default value of the global variable "python_packages_installed" remains
738
- # same which was set during create_context/set_context.
739
- if "bash: pip3: command not found" not in str(err):
740
- raise
741
-
742
- def db_python_package_details(names=None):
743
- """
744
- DESCRIPTION:
745
- Function to get the Python packages, installed on Vantage, and their corresponding
746
- versions.
747
- Note:
748
- Using this function is valid only when Python interpreter and add-on packages
749
- are installed on the Vantage node.
750
-
751
- PARAMETERS:
752
- names:
753
- Optional Argument.
754
- Specifies the name(s)/pattern(s) of the Python package(s) for which version
755
- information is to be fetched from Vantage. If this argument is not specified
756
- or None, versions of all installed Python packages are returned.
757
- Default Value: None
758
- Types: str
759
-
760
- RETURNS:
761
- teradataml DataFrame, if package(s) is/are present in the Vantage.
762
-
763
- RAISES:
764
- TeradataMlException.
765
-
766
- EXAMPLES:
767
- # Note:
768
- # These examples will work only when the Python packages are installed on Vantage.
769
-
770
- # Example 1: Get the details of a Python package 'dill' from Vantage.
771
- >>> db_python_package_details("dill")
772
- package version
773
- 0 dill 0.2.8.2
774
-
775
- # Example 2: Get the details of Python packages, having string 'mpy', installed on Vantage.
776
- >>> db_python_package_details(names = "mpy")
777
- package version
778
- 0 simpy 3.0.11
779
- 1 numpy 1.16.1
780
- 2 gmpy2 2.0.8
781
- 3 msgpack-numpy 0.4.3.2
782
- 4 sympy 1.3
783
-
784
- # Example 3: Get the details of Python packages, having string 'numpy' and 'learn',
785
- # installed on Vantage.
786
- >>> db_python_package_details(["numpy", "learn"])
787
- package version
788
- 0 scikit-learn 0.20.3
789
- 1 numpy 1.16.1
790
- 2 msgpack-numpy 0.4.3.2
791
-
792
- # Example 4: Get the details of all Python packages installed on Vantage.
793
- >>> db_python_package_details()
794
- package version
795
- 0 packaging 18.0
796
- 1 cycler 0.10.0
797
- 2 simpy 3.0.11
798
- 3 more-itertools 4.3.0
799
- 4 mpmath 1.0.0
800
- 5 toolz 0.9.0
801
- 6 wordcloud 1.5.0
802
- 7 mistune 0.8.4
803
- 8 singledispatch 3.4.0.3
804
- 9 attrs 18.2.0
805
-
806
- """
807
- # Validate arguments.
808
- __arg_info_matrix = []
809
- __arg_info_matrix.append(["names", names, True, (str, list), True])
810
-
811
- _Validators._validate_function_arguments(arg_list=__arg_info_matrix)
812
-
813
- # Check if Python interpretor and add-on packages are installed or not.
814
- _check_if_python_packages_installed()
815
-
816
- # Raise error if Python and add-on packages are not installed.
817
- if not tdmlctx.python_packages_installed:
818
- raise TeradataMlException(Messages.get_message(MessageCodes.PYTHON_NOT_INSTALLED),
819
- MessageCodes.PYTHON_NOT_INSTALLED)
820
-
821
- package_str = ""
822
- # Adding "grep ..." only when the argument "name" is mentioned.
823
- # Otherwise, all the package details are fetched.
824
- if names is not None:
825
- names = UtilFuncs._as_list(names)
826
- package_str = "|".join(names)
827
- package_str = "grep -E \"{0}\" | ".format(package_str)
828
-
829
- query = TableOperatorConstants.PACKAGE_VERSION_QUERY.value. \
830
- format(package_str, configure.default_varchar_size)
831
-
832
- ret_val = tdmldf.dataframe.DataFrame.from_query(query)
833
-
834
- if ret_val.shape[0] == 0:
835
- msg_str = "No Python package(s) found based on given search criteria : names = {}"
836
- print(msg_str.format(names))
837
- ret_val = None
838
-
839
- return ret_val
840
-
841
-
842
- def _create_table(table_name,
843
- columns,
844
- primary_index=None,
845
- unique=True,
846
- temporary=False,
847
- schema_name=None,
848
- set_table=True,
849
- **kwargs):
850
- """
851
- DESCRIPTION:
852
- This is an internal function used to construct a SQLAlchemy Table Object.
853
- This function checks appropriate flags and supports creation of Teradata
854
- specific Table constructs such as Volatile/Primary Index tables and constraints.
855
-
856
- PARAMETERS:
857
- table_name:
858
- Required Argument.
859
- Specifies the name of SQL table.
860
- Types: str
861
-
862
- columns:
863
- Required Argument.
864
- Specifies a python dictionary with column-name(key) to column-type(value) mapping
865
- to create table.
866
- Types: dict
867
-
868
- primary_index:
869
- Optional Argument.
870
- Specifies the column name(s) on which primary index needs to be created.
871
- Default Value: None
872
- Types: str OR list of Strings (str)
873
-
874
- unique:
875
- Optional Argument.
876
- Specifies whether index is unique primary index or not i.e.,
877
- if True, index column(s) does not accepts duplicate values,
878
- if False, index column(s) accepts duplicate values.
879
- Default Value: True
880
- Types: bool
881
-
882
- temporary:
883
- Optional Argument.
884
- Specifies whether SQL table to be created is Volatile or not.
885
- Default Value: False
886
- Types: bool
887
-
888
- schema_name:
889
- Optional Argument.
890
- Specifies the name of the SQL schema in the database to write to.
891
- If not specified, table is created in default schema.
892
- Default Value: None
893
- Types: str
894
-
895
- set_table:
896
- Optional Argument.
897
- A flag specifying whether to create a SET table or a MULTISET table.
898
- When True, an attempt to create a SET table is made.
899
- When False, an attempt to create a MULTISET table is made.
900
- Default Value: True
901
- Types: bool
902
-
903
- **kwargs:
904
- Optional Argument.
905
- Specifies table_level constraints as keyword arguments.
906
- Each constraint argument can accept a string or a list of strings.
907
- Notes:
908
- * If the same constraint is to be applied multiple times,
909
- conditions or columns should be mentioned as individual
910
- elements in the list.
911
- * If the constraint is to be applied on multiple columns,
912
- it should be mentioned in a tuple inside the list.
913
- * For foreign_key_constraint, value should be a list
914
- containing 3 elements, constrained columns,
915
- referenced columns and referenced table name.
916
- * If multiple foreign_key_constraint constraints are
917
- to be specified, then a list of tuples containing
918
- the 3 elements should be specified.
919
- Permitted values:check_constraint, primary_key_constraint,
920
- foreign_key_constraint, unique_key_constraint.
921
-
922
- RETURNS:
923
- None
924
-
925
- RAISES:
926
- None
927
-
928
- EXAMPLES:
929
- # Example 1: Create a table with primary key constraint.
930
- >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
931
- primary_key_constraint='column_name', set_table=False)
932
-
933
- # Example 2: Create a table with multiple check constraints.
934
- >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
935
- check_constraint=['column_name > value', 'column_name > value2'], set_table=False)
936
-
937
- # Example 3: Create a table with multiple columns as primary key in primary constraint.
938
- >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
939
- primary_key_constraint=[('column_name','column_name')], set_table=False)
940
-
941
- # Example 4: Create a table with no constraint and no primary key.
942
- >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
943
- set_table=False)
944
-
945
- """
946
- try:
947
- prefix = []
948
- pti = post(opts={})
949
-
950
- if temporary is True:
951
- pti = pti.on_commit(option='preserve')
952
- prefix.append('VOLATILE')
953
-
954
- if set_table:
955
- prefix.append('set')
956
- else:
957
- prefix.append('multiset')
958
-
959
- meta = MetaData()
960
- meta.bind = tdmlctx.get_context()
961
-
962
- if primary_index is not None:
963
- if isinstance(primary_index, list):
964
- pti = pti.primary_index(unique=unique, cols=primary_index)
965
- elif isinstance(primary_index, str):
966
- pti = pti.primary_index(unique=unique, cols=[primary_index])
967
- else:
968
- pti = pti.no_primary_index()
969
-
970
- con_form=[]
971
- for c_name, parameters in kwargs.items():
972
- _Validators._validate_function_arguments([["constraint_type", c_name, True, str,
973
- True, SQLConstants.CONSTRAINT.value]])
974
- if c_name in 'check_constraint':
975
- parameters = UtilFuncs._as_list(parameters)
976
- [con_form.append("{}('{}')".format("CheckConstraint", col)) for col in parameters]
977
- if c_name in 'foreign_key_constraint':
978
- parameters = parameters if isinstance(parameters[0], tuple) else [tuple(parameters)]
979
- for col in parameters:
980
- meta.reflect(bind=tdmlctx.get_context(), only=[col[2]])
981
- con_form.append("{}({},{})".format("ForeignKeyConstraint", col[0], col[1]))
982
- if c_name in ['primary_key_constraint', 'unique_key_constraint']:
983
- c_name = "UniqueConstraint" if c_name in 'unique_key_constraint' else 'PrimaryKeyConstraint'
984
- parameters = UtilFuncs._as_list(parameters)
985
- [con_form.append("{}('{}')".format(c_name, "','".join(col))) if type(col) == tuple else con_form.append(
986
- "{}('{}')".format(c_name, col)) for col in parameters]
987
- con_form.append("")
988
-
989
- # Create default Table construct with parameter dictionary
990
- table_str = "Table(table_name, meta,*(Column(c_name, c_type) for c_name,c_type in" \
991
- " columns.items()),{} teradatasql_post_create=pti,prefixes=prefix," \
992
- "schema=schema_name)".format("" if con_form is None else ",".join(con_form))
993
-
994
- table=eval(table_str)
995
- table.create(bind=tdmlctx.get_context())
996
-
997
- except Exception as err:
998
- msg_code = MessageCodes.EXECUTION_FAILED
999
- raise TeradataMlException(Messages.get_message(msg_code, "create table", str(err)), msg_code)
1000
-
1001
-
1002
- def list_td_reserved_keywords(key=None, raise_error=False):
1003
- """
1004
- DESCRIPTION:
1005
- Function validates if the specified string is Teradata reserved keyword or not.
1006
- If key is not specified, list all the Teradata reserved keywords.
1007
-
1008
- PARAMETERS:
1009
- key:
1010
- Optional Argument.
1011
- Specifies a string to validate for Teradata reserved keyword.
1012
- Types: string
1013
-
1014
- raise_error:
1015
- Optional Argument.
1016
- Specifies whether to raise exception or not.
1017
- When set to True, an exception is raised,
1018
- if specified "key" is a Teradata reserved keyword, otherwise not.
1019
- Default Value: False
1020
- Types: bool
1021
-
1022
- RETURNS:
1023
- teradataml DataFrame, if "key" is None.
1024
- True, if "key" is Teradata reserved keyword, False otherwise.
1025
-
1026
- RAISES:
1027
- TeradataMlException.
1028
-
1029
- EXAMPLES:
1030
- >>> from teradataml import list_td_reserved_keywords
1031
- >>> # Example 1: List all available Teradata reserved keywords.
1032
- >>> list_td_reserved_keywords()
1033
- restricted_word
1034
- 0 ABS
1035
- 1 ACCOUNT
1036
- 2 ACOS
1037
- 3 ACOSH
1038
- 4 ADD_MONTHS
1039
- 5 ADMIN
1040
- 6 ADD
1041
- 7 ACCESS_LOCK
1042
- 8 ABORTSESSION
1043
- 9 ABORT
1044
- >>>
1045
-
1046
- >>> # Example 2: Validate if keyword "account" is a Teradata reserved keyword or not.
1047
- >>> list_td_reserved_keywords("account")
1048
- True
1049
- >>>
1050
-
1051
- >>> # Example 3: Validate and raise exception if keyword "account" is a Teradata reserved keyword.
1052
- >>> list_td_reserved_keywords("account", raise_error=True)
1053
- TeradataMlException: [Teradata][teradataml](TDML_2121) 'account' is a Teradata reserved keyword.
1054
- """
1055
- from teradataml.dataframe.dataframe import DataFrame, in_schema
1056
- # Get the reserved keywords from the table
1057
- reserved_keys = DataFrame(in_schema("SYSLIB", "SQLRestrictedWords"))
1058
-
1059
- # If key is not passed, return the list of Teradata reserved keywords.
1060
- if key is None:
1061
- return reserved_keys.select(['restricted_word'])
1062
-
1063
- # Check if key is a Teradata reserved keyword or not.
1064
- num_rows = reserved_keys[reserved_keys.restricted_word == key.upper()].shape[0]
1065
- if num_rows > 0:
1066
- if raise_error:
1067
- raise TeradataMlException(Messages.get_message(MessageCodes.RESERVED_KEYWORD, key),
1068
- MessageCodes.RESERVED_KEYWORD)
1069
- return True
1070
- return False
1071
-
1072
-
1073
- def _rename_table(old_table_name, new_table_name):
1074
- """
1075
- This function renames the existing table present in the database.
1076
-
1077
- PARAMETERS:
1078
- old_table_name:
1079
- Required Argument.
1080
- Specifies the name of the existing table in vantage.
1081
- Types : String
1082
-
1083
- new_table_name:
1084
- Required Argument.
1085
- Specifies the the new name for the existing table.
1086
- Types : String
1087
-
1088
- RETURNS:
1089
- None
1090
-
1091
- RAISES:
1092
- None
1093
-
1094
- EXAMPLES:
1095
- >>> load_example_data("dataframe", "sales")
1096
- >>> _rename_table("sales", "new_sales")
1097
- """
1098
- # Query to rename existing table.
1099
- query = "RENAME TABLE {} TO {};".format(old_table_name, new_table_name)
1100
- # Execute rename query.
1101
- UtilFuncs._execute_ddl_statement(query)
1102
-
1103
-
1104
- def _execute_query_and_generate_pandas_df(query, index=None, **kwargs):
1105
- """
1106
- DESCRIPTION:
1107
- Function executes the provided query and returns a pandas DataFrame.
1108
-
1109
- PARAMETERS:
1110
- query:
1111
- Required Argument.
1112
- Specifies the query that needs to be executed to form Pandas
1113
- DataFrame.
1114
- Type: str
1115
-
1116
- index
1117
- Optional Argument.
1118
- Specifies column(s) to be used as Pandas index.
1119
- Types: str OR list of Strings (str)
1120
-
1121
- RETURNS:
1122
- Pandas DataFrame.
1123
-
1124
- RAISES:
1125
- TeradataMlException.
1126
-
1127
- EXAMPLES:
1128
- pdf = _execute_query_and_generate_pandas_df("SELECT * from t1", "col1")
1129
- """
1130
- cur = execute_sql(query)
1131
- columns = kwargs.pop('columns', [col[0] for col in cur.description])
1132
- rows = cur.fetchall()
1133
- if cur is not None:
1134
- cur.close()
1135
-
1136
- try:
1137
- pandas_df = pd.DataFrame.from_records(data=list(tuple(row) for row in rows),
1138
- columns=columns,
1139
- index=index,
1140
- **kwargs)
1141
- except KeyError:
1142
- raise TeradataMlException(
1143
- Messages.get_message(MessageCodes.INVALID_PRIMARY_INDEX),
1144
- MessageCodes.INVALID_PRIMARY_INDEX)
1145
- except:
1146
- raise TeradataMlException(
1147
- Messages.get_message(MessageCodes.TDMLDF_SELECT_DF_FAIL),
1148
- MessageCodes.TDMLDF_SELECT_DF_FAIL)
1149
-
1150
- return pandas_df
1
+ """
2
+ Copyright (c) 2018 by Teradata Corporation. All rights reserved.
3
+ TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
4
+
5
+ Primary Owner: rameshchandra.d@teradata.com
6
+ Secondary Owner: sanath.vobilisetty@teradata.com
7
+
8
+ teradataml db utilities
9
+ ----------
10
+ A teradataml database utility functions provide interface to Teradata Vantage common tasks such as drop_table, drop_view, create_table etc.
11
+ """
12
+ import concurrent.futures, json, os, tempfile, shutil
13
+ from datetime import datetime
14
+ import pandas as pd
15
+ from sqlalchemy.sql.functions import Function
16
+ from teradataml.context import context as tdmlctx
17
+ from teradataml.common.utils import UtilFuncs
18
+ from teradataml.common.messages import Messages
19
+ from teradataml.common.messagecodes import MessageCodes
20
+ from teradataml.common.exceptions import TeradataMlException
21
+ from teradataml.common.constants import TeradataTableKindConstants
22
+ from teradataml.common.sqlbundle import SQLBundle
23
+ from teradataml.common.constants import SQLConstants
24
+ from teradataml.common.constants import TableOperatorConstants
25
+ import teradataml.dataframe as tdmldf
26
+ from teradataml.options.configure import configure
27
+ from teradataml.utils.utils import execute_sql
28
+ from teradataml.utils.validators import _Validators
29
+ from teradatasql import OperationalError
30
+ from teradatasqlalchemy.dialect import preparer, dialect as td_dialect
31
+ from teradatasqlalchemy.dialect import TDCreateTablePost as post
32
+ from teradatasqlalchemy.telemetry.queryband import collect_queryband
33
+ from sqlalchemy import Table, Column, MetaData, CheckConstraint, \
34
+ PrimaryKeyConstraint, ForeignKeyConstraint, UniqueConstraint
35
+
36
+
37
+ @collect_queryband(queryband='DrpTbl')
38
+ def db_drop_table(table_name, schema_name=None):
39
+ """
40
+ DESCRIPTION:
41
+ Drops the table from the given schema.
42
+
43
+ PARAMETERS:
44
+ table_name:
45
+ Required Argument
46
+ Specifies the table name to be dropped.
47
+ Types: str
48
+
49
+ schema_name:
50
+ Optional Argument
51
+ Specifies schema of the table to be dropped. If schema is not specified, function drops table from the
52
+ current database.
53
+ Default Value: None
54
+ Types: str
55
+
56
+ RETURNS:
57
+ True - if the operation is successful.
58
+
59
+ RAISES:
60
+ TeradataMlException - If the table doesn't exist.
61
+
62
+ EXAMPLES:
63
+ >>> load_example_data("dataframe", "admissions_train")
64
+
65
+ # Drop table in current database
66
+ >>> db_drop_table(table_name = 'admissions_train')
67
+
68
+ # Drop table from the given schema
69
+ >>> db_drop_table(table_name = 'admissions_train', schema_name = 'alice')
70
+ """
71
+ # Argument validations
72
+ awu_matrix = []
73
+ awu_matrix.append(["schema_name", schema_name, True, (str), True])
74
+ awu_matrix.append(["table_name", table_name, False, (str), True])
75
+
76
+ # Validate argument types
77
+ _Validators._validate_function_arguments(awu_matrix)
78
+
79
+ # Joining view and schema names in the format "schema_name"."view_name"
80
+ table_name = _get_quoted_object_name(schema_name, table_name)
81
+
82
+ try:
83
+ return UtilFuncs._drop_table(table_name)
84
+ except TeradataMlException:
85
+ raise
86
+ except OperationalError:
87
+ raise
88
+ except Exception as err:
89
+ raise TeradataMlException(Messages.get_message(MessageCodes.DROP_FAILED, "table",
90
+ table_name),
91
+ MessageCodes.DROP_FAILED) from err
92
+
93
+
94
+ @collect_queryband(queryband='DrpVw')
95
+ def db_drop_view(view_name, schema_name=None):
96
+ """
97
+ DESCRIPTION:
98
+ Drops the view from the given schema.
99
+
100
+ PARAMETERS:
101
+ view_name:
102
+ Required Argument
103
+ Specifies view name to be dropped.
104
+ Types: str
105
+
106
+ schema_name:
107
+ Optional Argument
108
+ Specifies schema of the view to be dropped. If schema is not specified, function drops view from the current
109
+ database.
110
+ Default Value: None
111
+ Types: str
112
+
113
+ RETURNS:
114
+ True - if the operation is successful.
115
+
116
+ RAISES:
117
+ TeradataMlException - If the view doesn't exist.
118
+
119
+ EXAMPLES:
120
+ # Create a view
121
+ >>> execute_sql("create view temporary_view as (select 1 as dummy_col1, 2 as dummy_col2);")
122
+
123
+ # Drop view in current schema
124
+ >>> db_drop_view(view_name = 'temporary_view')
125
+
126
+ # Drop view from the given schema
127
+ >>> db_drop_view(view_name = 'temporary_view', schema_name = 'alice')
128
+ """
129
+ # Argument validations
130
+ awu_matrix = []
131
+ awu_matrix.append(["schema_name", schema_name, True, (str), True])
132
+ awu_matrix.append(["view_name", view_name, False, (str), True])
133
+
134
+ # Validate argument types
135
+ _Validators._validate_function_arguments(awu_matrix)
136
+
137
+ # Joining view and schema names in the format "schema_name"."view_name"
138
+ view_name = _get_quoted_object_name(schema_name, view_name)
139
+
140
+ try:
141
+ return UtilFuncs._drop_view(view_name)
142
+ except TeradataMlException:
143
+ raise
144
+ except OperationalError:
145
+ raise
146
+ except Exception as err:
147
+ raise TeradataMlException(Messages.get_message(MessageCodes.DROP_FAILED, "view",
148
+ view_name),
149
+ MessageCodes.DROP_FAILED) from err
150
+
151
+
152
+ @collect_queryband(queryband='LstTbls')
153
+ def db_list_tables(schema_name=None, object_name=None, object_type='all'):
154
+ """
155
+ DESCRIPTION:
156
+ Lists the Vantage objects(table/view) names for the specified schema name.
157
+
158
+ PARAMETERS:
159
+ schema_name:
160
+ Optional Argument.
161
+ Specifies the name of schema in the database. If schema is not specified, function lists tables/views from
162
+ the current database.
163
+ Default Value: None
164
+ Types: str
165
+
166
+ object_name:
167
+ Optional Argument.
168
+ Specifies a table/view name or pattern to be used for filtering them from the database.
169
+ Pattern may contain '%' or '_' as pattern matching characters.
170
+ A '%' represents any string of zero or more arbitrary characters. Any string of characters is acceptable as
171
+ a replacement for the percent.
172
+ A '_' represents exactly one arbitrary character. Any single character is acceptable in the position in
173
+ which the underscore character appears.
174
+ Default Value: None
175
+ Types: str
176
+ Example:
177
+ 1. '%abc' will return all table/view object names starting with any character and ending with abc.
178
+ 2. 'a_c' will return all table/view object names starting with 'a', ending with 'c' and has length of 3.
179
+
180
+ object_type:
181
+ Optional Argument.
182
+ Specifies object type to apply the filter. Valid values for this argument are 'all','table','view',
183
+ 'volatile','temp'.
184
+ * all - List all the object types.
185
+ * table - List only tables.
186
+ * view - List only views.
187
+ * volatile - List only volatile tables.
188
+ * temp - List all teradataml temporary objects created in the specified database.
189
+ Default Value: 'all'
190
+ Types: str
191
+
192
+ RETURNS:
193
+ Pandas DataFrame
194
+
195
+ RAISES:
196
+ TeradataMlException - If the object_type argument is provided with invalid values.
197
+ OperationalError - If any errors are raised from Vantage.
198
+
199
+ EXAMPLES:
200
+ # Example 1 - List all object types in the default schema
201
+ >>> load_example_data("dataframe", "admissions_train")
202
+ >>> db_list_tables()
203
+
204
+ # Example 2 - List all the views in the default schema
205
+ >>> execute_sql("create view temporary_view as (select 1 as dummy_col1, 2 as dummy_col2);")
206
+ >>> db_list_tables(None , None, 'view')
207
+
208
+ # Example 3 - List all the object types in the default schema whose names begin with 'abc' followed by one
209
+ # arbitrary character and any number of characters in the end.
210
+ >>> execute_sql("create view abcd123 as (select 1 as dummy_col1, 2 as dummy_col2);")
211
+ >>> db_list_tables(None, 'abc_%', None)
212
+
213
+ # Example 4 - List all the tables in the default schema whose names begin with 'adm_%' followed by one
214
+ # arbitrary character and any number of characters in the end.
215
+ >>> load_example_data("dataframe", "admissions_train")
216
+ >>> db_list_tables(None, 'adm_%', 'table')
217
+
218
+ # Example 5 - List all the views in the default schema whose names begin with any character but ends with 'abc'
219
+ >>> execute_sql("create view view_abc as (select 1 as dummy_col1, 2 as dummy_col2);")
220
+ >>> db_list_tables(None, '%abc', 'view')
221
+
222
+ # Example 6 - List all the volatile tables in the default schema whose names begin with 'abc' and ends with any
223
+ # arbitrary character and has a length of 4
224
+ >>> execute_sql("CREATE volatile TABLE abcd(col0 int, col1 float) NO PRIMARY INDEX;")
225
+ >>> db_list_tables(None, 'abc_', 'volatile')
226
+
227
+ # Example 7 - List all the temporary objects created by teradataml in the default schema whose names begins and
228
+ # ends with any number of arbitrary characters but contains 'filter' in between.
229
+ >>> db_list_tables(None, '%filter%', 'temp')
230
+ """
231
+
232
+ if tdmlctx.get_connection() is None:
233
+ raise TeradataMlException(Messages.get_message(MessageCodes.INVALID_CONTEXT_CONNECTION),
234
+ MessageCodes.INVALID_CONTEXT_CONNECTION)
235
+
236
+ # Argument validations
237
+ awu_matrix = []
238
+ awu_matrix.append(["schema_name", schema_name, True, (str), True])
239
+ awu_matrix.append(["object_name", object_name, True, (str), True])
240
+ permitted_object_types = [TeradataTableKindConstants.ALL.value,
241
+ TeradataTableKindConstants.TABLE.value,
242
+ TeradataTableKindConstants.VIEW.value,
243
+ TeradataTableKindConstants.VOLATILE.value,
244
+ TeradataTableKindConstants.TEMP.value]
245
+ awu_matrix.append(["object_type", object_type, True, (str), True, permitted_object_types])
246
+
247
+ # Validate argument types
248
+ _Validators._validate_function_arguments(awu_matrix)
249
+
250
+ try:
251
+ return _get_select_table_kind(schema_name, object_name, object_type)
252
+ except TeradataMlException:
253
+ raise
254
+ except OperationalError:
255
+ raise
256
+ except Exception as err:
257
+ raise TeradataMlException(Messages.get_message(MessageCodes.LIST_DB_TABLES_FAILED),
258
+ MessageCodes.LIST_DB_TABLES_FAILED) from err
259
+
260
+
261
+ def _get_select_table_kind(schema_name, table_name, table_kind):
262
+ """
263
+ Get the list of the table names from the specified schema name.
264
+
265
+ PARAMETERS:
266
+ schema_name - The Name of schema in the database. The default value is the current database name.
267
+ table_name - The pattern to be used to filtering the table names from the database.
268
+ The table name argument can contain '%' as pattern matching charecter.For example '%abc'
269
+ will return all table names starting with any charecters and ending with abc.
270
+ table_kind - The table kind to apply the filter. The valid values are 'all','table','view','volatile','temp'.
271
+ all - list the all the table kinds.
272
+ table - list only tables.
273
+ view - list only views.
274
+ volatile - list only volatile temp.
275
+ temp - list all teradata ml temporary objects created in the specified database.
276
+ RETURNS:
277
+ Panda's DataFrame - if the operation is successful.
278
+
279
+ RAISES:
280
+ Database error if an error occurred while executing query.
281
+
282
+ EXAMPLES:
283
+ _get_select_table_kind("schema_name", "table_name", "all")
284
+ """
285
+ object_name_str = None
286
+ if table_name is not None:
287
+ object_name_str = "'{0}'".format(table_name)
288
+ object_table_kind = None
289
+
290
+ # Check the schema name.
291
+ if schema_name is None:
292
+ schema_name = tdmlctx._get_current_databasename()
293
+
294
+ # Check the table kind.
295
+ if (table_kind == TeradataTableKindConstants.VOLATILE.value):
296
+ query = SQLBundle._build_help_volatile_table()
297
+ else:
298
+ # Tablekind:
299
+ # 'O' - stands for Table with no primary index and no partitioning
300
+ # 'Q' - stands for Queue table
301
+ # 'T' - stands for a Table with a primary index or primary AMP index, partitioning, or both.
302
+ # Or a partitioned table with NoPI
303
+ # 'V' - stands for View
304
+ if (table_kind == TeradataTableKindConstants.TABLE.value):
305
+ object_table_kind = "'{0}','{1}','{2}'".format('O', 'Q', 'T')
306
+ elif (table_kind == TeradataTableKindConstants.VIEW.value):
307
+ object_table_kind = "'{0}'".format('V')
308
+ elif (table_kind == TeradataTableKindConstants.TEMP.value):
309
+ if table_name is None:
310
+ object_name_str = "'{0}'".format(TeradataTableKindConstants.ML_PATTERN.value)
311
+ else:
312
+ object_name_str = "'{0}','{1}'".format(table_name,
313
+ TeradataTableKindConstants.ML_PATTERN.value)
314
+ else:
315
+ object_table_kind = "'{0}','{1}','{2}','{3}'".format('O', 'Q', 'T', 'V')
316
+ query = SQLBundle._build_select_table_kind(schema_name, object_name_str, object_table_kind)
317
+
318
+ try:
319
+ pddf = pd.read_sql(query, tdmlctx.td_connection.connection)
320
+ # Check if all table kind is requested and add also volatile tables to the pdf.
321
+ if (table_kind == TeradataTableKindConstants.ALL.value):
322
+ try:
323
+ # Add volatile tables to all dataframe.
324
+ vtquery = SQLBundle._build_help_volatile_table()
325
+ vtdf = pd.read_sql(vtquery, tdmlctx.td_connection.connection)
326
+ if not vtdf.empty:
327
+ columns_dict = {TeradataTableKindConstants.VOLATILE_TABLE_NAME.value:
328
+ TeradataTableKindConstants.REGULAR_TABLE_NAME.value}
329
+ vtdf.rename(columns=columns_dict, inplace=True)
330
+ frames = [pddf, vtdf[[TeradataTableKindConstants.REGULAR_TABLE_NAME.value]]]
331
+ pddf = pd.concat(frames)
332
+ pddf.reset_index(drop=True, inplace=True)
333
+ except Exception as err:
334
+ # No volatle tables exist.
335
+ pass
336
+ if (table_kind == TeradataTableKindConstants.VOLATILE.value):
337
+ columns_dict = {TeradataTableKindConstants.VOLATILE_TABLE_NAME.value:
338
+ TeradataTableKindConstants.REGULAR_TABLE_NAME.value}
339
+ pddf.rename(columns=columns_dict, inplace=True)
340
+ return pddf[[TeradataTableKindConstants.REGULAR_TABLE_NAME.value]]
341
+ else:
342
+ return pddf
343
+ except Exception as err:
344
+ return pd.DataFrame()
345
+
346
+
347
+ def _execute_transaction(queries):
348
+ """
349
+ Internal function to execute the query or list of queries passed, as one transaction.
350
+
351
+ PARAMETERS:
352
+ queries:
353
+ Required argument.
354
+ Specifies a query or a list of queries to be executed as a single transaction.
355
+ Types: str or list of str
356
+
357
+ RAISES:
358
+ Exception
359
+
360
+ RETURNS:
361
+ None.
362
+
363
+ EXAMPLES:
364
+ >>> _execute_transaction([query1, query2])
365
+ """
366
+ auto_commit_off = "{fn teradata_nativesql}{fn teradata_autocommit_off}"
367
+ auto_commit_on = "{fn teradata_nativesql}{fn teradata_autocommit_on}"
368
+ con = None
369
+ cur = None
370
+
371
+ if queries is not None:
372
+ if isinstance(queries, str):
373
+ queries = [queries]
374
+
375
+ # Check if we have any queries to execute
376
+ if len(queries) == 0:
377
+ return
378
+
379
+ try:
380
+ con = tdmlctx.td_connection
381
+ if con is None:
382
+ raise TeradataMlException(Messages.get_message(MessageCodes.CONNECTION_FAILURE),
383
+ MessageCodes.CONNECTION_FAILURE)
384
+ con = con.connection
385
+ cur = con.cursor()
386
+ # Set auto_commit to OFF
387
+ cur.execute(auto_commit_off)
388
+ for query in queries:
389
+ cur.execute(query)
390
+
391
+ # Try committing the the transaction
392
+ con.commit()
393
+ except Exception:
394
+ # Let's first rollback
395
+ con.rollback()
396
+ # Now, let's raise the error as is
397
+ raise
398
+ finally:
399
+ # Finally, we must set auto_commit to ON
400
+ cur.execute(auto_commit_on)
401
+
402
+
403
+ def _execute_stored_procedure(function_call, fetchWarnings=True, expect_none_result=False):
404
+ """
405
+ DESCRIPTION:
406
+ Executes the specified function call of the stored procedure which contains
407
+ function name and parameters used by the function.
408
+
409
+ PARAMETERS:
410
+ function_call:
411
+ Required argument.
412
+ Specifies Function object for the stored procedure to be executed.
413
+ This function object contains stored procedure name along with its arguments.
414
+ Types: sqlalchemy.sql.functions.Function
415
+
416
+ fetchWarnings:
417
+ Optional Argument.
418
+ Specifies a flag that decides whether to raise warnings thrown from Vantage or not.
419
+ This will be the ideal behaviour for most of the stored procedures to fetch the warnings.
420
+ Default Values: True
421
+ Types: bool
422
+
423
+ expect_none_result:
424
+ Optional Argument.
425
+ When set to True, warnings will be ignored, and only result set is returned.
426
+ Returns None if query does not produce a result set.
427
+ This option is ignored when fetchWarnings is set to True.
428
+ Default Values: False
429
+ Types: bool
430
+
431
+ RETURNS:
432
+ Results received from Vantage after the execution.
433
+
434
+ RAISES:
435
+ Exception thrown by the Vantage.
436
+
437
+ EXAMPLES:
438
+ # No parameter needed by stored procedure.
439
+ functioncall = func.SYSUIF.list_base_environments()
440
+ _execute_stored_procedure(functioncall)
441
+
442
+ # Parameters are passed to the stored procedure in a list.
443
+ functioncall = func.SYSUIF.install_file('myfile','mapper.py','cz!/documents/mapper.py')
444
+ _execute_stored_procedure("SYSUIF.install_file(functioncall)", fetchWarnings=True)
445
+ """
446
+ __arg_info_matrix = []
447
+ __arg_info_matrix.append(["function_call", function_call, False, (Function)])
448
+ __arg_info_matrix.append(["fetchWarnings", fetchWarnings, True, (bool)])
449
+ __arg_info_matrix.append(["expect_none_result", expect_none_result, True, (bool)])
450
+
451
+ # Validate arguments
452
+ _Validators._validate_function_arguments(__arg_info_matrix)
453
+
454
+ sqlbundle = SQLBundle()
455
+
456
+ # Get the query for running stored procedure.
457
+ exec_sp_stmt = sqlbundle._get_sql_query(SQLConstants.SQL_EXEC_STORED_PROCEDURE)
458
+ exec_sp_stmt = exec_sp_stmt.format(_get_function_call_as_string(function_call))
459
+
460
+ return UtilFuncs._execute_query(exec_sp_stmt, fetchWarnings, expect_none_result)
461
+
462
+
463
+ def _get_function_call_as_string(sqlcFuncObj):
464
+ """
465
+ DESCRIPTION:
466
+ This function returns string representation for the sqlalchemy.sql.functions.Function object
467
+ which will be used to create a query to be used to execute the function.
468
+
469
+ PARAMETERS:
470
+ sqlcFuncObj:
471
+ Required Argument.
472
+ Specifies function object representing the SQL function call to be executed.
473
+
474
+ RAISES:
475
+ None
476
+
477
+ RETURNS:
478
+ String representation of the input Function.
479
+
480
+ EXAMPLES:
481
+ functioncall = func.SYSUIF.install_file("tdml_testfile", "test_script", "/root/test_script.py")
482
+ _get_function_call_as_string(functioncall)
483
+
484
+ Output:
485
+ "SYSUIF.install_file('tdml_testfile', 'test_script', '/root/test_script.py')"
486
+ """
487
+ # This is done by _exec_stored_procedure
488
+ from teradatasqlalchemy.dialect import dialect as td_dialect
489
+ kw = dict({'dialect': td_dialect(),
490
+ 'compile_kwargs':
491
+ {
492
+ 'include_table': False,
493
+ 'literal_binds': True
494
+ }
495
+ })
496
+
497
+ return str(sqlcFuncObj.compile(**kw))
498
+
499
+
500
+ def _get_quoted_object_name(schema_name, object_name):
501
+ """
502
+ DESCRIPTION:
503
+ This function quotes and joins schema name to the object name which can either be table or a view.
504
+
505
+ PARAMETERS:
506
+ schema_name
507
+ Required Argument.
508
+ Specifies the schema name.
509
+ Types: str
510
+
511
+ object_name
512
+ Required Argument.
513
+ Specifies the object name either table or view.
514
+ Types: str
515
+
516
+ RAISES:
517
+ None
518
+
519
+ RETURNS:
520
+ Quoted and joined string of schema and object name.
521
+
522
+ EXAMPLES:
523
+ _get_quoted_object_name(schema_name = "alice", object_name = "admissions_train")
524
+
525
+ OUTPUT:
526
+ '"alice"."admissions_train"'
527
+ """
528
+ tdp = preparer(td_dialect)
529
+
530
+ if schema_name is not None:
531
+ schema_name = tdp.quote(schema_name)
532
+ else:
533
+ schema_name = tdp.quote(tdmlctx._get_current_databasename())
534
+
535
+ quoted_object_name = "{0}.{1}".format(schema_name, tdp.quote(object_name))
536
+ return quoted_object_name
537
+
538
+
539
+ @collect_queryband(queryband='VwLg')
540
+ def view_log(log_type="script", num_lines=1000, query_id=None, log_dir=None):
541
+ """
542
+ DESCRIPTION:
543
+ Function for viewing script, apply or byom log on Vantage.
544
+ Logs are pulled from 'script_log' or 'byom.log' file on database node.
545
+ When log_type is "script", logs are pulled from 'scriptlog' file on database node.
546
+ This is useful when Script.execute() is executed to run user scripts in Vantage.
547
+ When log_type is set to "apply", function downloads the log files to a folder.
548
+ Notes:
549
+ * Logs files will be downloaded based on "log_dir".
550
+ * teradataml creates a sub directory with the name as "query_id"
551
+ and downloads the logs to the sub directory.
552
+ * files generated from "query_id" requires few seconds to generate,
553
+ provide "query_id" to function view_log() after few seconds else
554
+ it will return empty sub directory.
555
+
556
+ PARAMETERS:
557
+ log_type:
558
+ Optional Argument.
559
+ Specifies which logs to view.
560
+ If set to 'script', script log is pulled from database node.
561
+ If set to 'byom', byom log is pulled from database node.
562
+ If set to 'apply' logs are pulled from kubernetes container.
563
+ Permitted Values: 'script', 'apply', 'byom'
564
+ Default Value: 'script'
565
+ Types: str
566
+
567
+ num_lines:
568
+ Optional Argument.
569
+ Specifies the number of lines to be read and displayed from log.
570
+ Note:
571
+ This argument is applicable when log_type is 'script' otherwise ignored.
572
+ Default Value: 1000
573
+ Types: int
574
+
575
+ query_id:
576
+ Required Argument when log_type is 'apply', otherwise ignored.
577
+ Specifies the id of the query for which logs are to be retrieved.
578
+ This query id is part of the error message received when Apply class
579
+ or Dataframe apply method calls fail to execute the Apply table operator
580
+ query.
581
+ Types: str
582
+
583
+ log_dir:
584
+ Optional Argument.
585
+ Specifies the directory path to store all the log files for "query_id".
586
+ Notes:
587
+ * This argument is applicable when log_type is 'apply' otherwise ignored.
588
+ * when "log_dir" is not provided, function creates temporary folder
589
+ and store the log files in the temp folder.
590
+ Types: str
591
+
592
+ RETURNS:
593
+ when log_type="apply" returns log files, otherwise teradataml dataframe.
594
+
595
+ RAISES:
596
+ TeradataMLException.
597
+
598
+ EXAMPLES:
599
+ # Example 1: View script log.
600
+ >>> view_log(log_type="script", num_lines=200)
601
+ >>> view_log(log_type="byom", num_lines=200)
602
+
603
+ # Example 2: Download the Apply query logs to a default temp folder.
604
+ # Use query id from the error messages returned by Apply class.
605
+ >>> view_log(log_type="apply", query_id='307161028465226056')
606
+ Logs for query_id "307191028465562578" is stored at "C:\\local_repo\\AppData\\Local\\Temp\\tmp00kuxlgu\\307161028465226056"
607
+
608
+ # Example 3: Download the Apply query logs to a specific folder.
609
+ # Use query id from the error messages returned by Apply class.
610
+ >>> view_log(log_type="apply", query_id='307161028465226056',log_dir='C:\\local_repo\\workspace')
611
+ Logs for query_id "307191028465562578" is stored at "C:\\local_repo\\workspace\\307161028465226056"
612
+ """
613
+ awu_matrix_test = []
614
+ awu_matrix_test.append((["num_lines", num_lines, True, (int), True]))
615
+ awu_matrix_test.append(("log_type", log_type, True, (str), True,
616
+ [TableOperatorConstants.SCRIPT_LOG.value,
617
+ TableOperatorConstants.APPLY_LOG.value,
618
+ TableOperatorConstants.BYOM_LOG.value]))
619
+ # Validate argument type.
620
+ _Validators._validate_function_arguments(awu_matrix_test)
621
+
622
+ # Validate num_lines is a positive integer.
623
+ _Validators._validate_positive_int(num_lines, "num_lines")
624
+
625
+ awu_matrix_test.append(["query_id", query_id, True, (str), True])
626
+ awu_matrix_test.append(["log_dir", log_dir, True, (str), True])
627
+
628
+ # Validate argument type.
629
+ _Validators._validate_function_arguments(awu_matrix_test)
630
+
631
+ # log_type is script.
632
+ if log_type.upper() in [TableOperatorConstants.SCRIPT_LOG.value, TableOperatorConstants.BYOM_LOG.value]:
633
+ # Validate num_lines is a positive integer.
634
+ _Validators._validate_positive_int(num_lines, "num_lines")
635
+
636
+
637
+ # Query for viewing last n lines of script log.
638
+ view_log_query = TableOperatorConstants.SCRIPT_LOG_QUERY.value \
639
+ .format(num_lines, configure.default_varchar_size)
640
+
641
+ # log_type is apply.
642
+ else:
643
+ if query_id is None:
644
+ raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
645
+ "query_id",
646
+ "log_type=\"apply\""),
647
+ MessageCodes.DEPENDENT_ARG_MISSING)
648
+ if log_dir is not None:
649
+ if not os.path.exists(log_dir):
650
+ err_msg = 'The path \'{}\' does not exist.'.format(
651
+ log_dir)
652
+ raise TeradataMlException(err_msg, MessageCodes.INPUT_FILE_NOT_FOUND)
653
+ if not os.path.isdir(log_dir):
654
+ err_msg = 'Please provide directory path instead of file path.'.format(
655
+ log_dir)
656
+ raise TeradataMlException(err_msg, MessageCodes.INPUT_FILE_NOT_FOUND)
657
+ from teradataml.scriptmgmt.UserEnv import _get_auth_token, _get_ues_url, \
658
+ _process_ues_response
659
+ ues_url = _get_ues_url(logs=True, query_id=query_id)
660
+ response = UtilFuncs._http_request(ues_url, headers=_get_auth_token())
661
+ resp = _process_ues_response(api_name="view_log", response=response)
662
+ resp = resp.content.decode('utf-8')
663
+ jsons = json.loads(resp)
664
+ if log_dir is None:
665
+ log_dir = tempfile.mkdtemp()
666
+ log_dir = os.path.join(log_dir, query_id)
667
+ if os.path.exists(log_dir):
668
+ shutil.rmtree(log_dir)
669
+ os.mkdir(log_dir)
670
+ urls_and_files = [(log['url'], os.path.join(log_dir, log['name'])) for log in jsons['logs']]
671
+ failed_files = []
672
+ with concurrent.futures.ThreadPoolExecutor() as executor:
673
+ results = {executor.submit(_fetch_url_and_save, url, file_path):
674
+ (os.path.basename(file_path)) for url, file_path in urls_and_files}
675
+ for future in concurrent.futures.as_completed(results):
676
+ try:
677
+ file_name = results[future]
678
+ future.result()
679
+ except (TeradataMlException, RuntimeError, Exception) as emsg:
680
+ failed_files.append((file_name, emsg))
681
+ if len(failed_files) > 0:
682
+ emsg = ""
683
+ for msg in failed_files:
684
+ emsg += "\nUnable to download the file - {}. Reason: {}" \
685
+ .format(msg[0], msg[1].args[0])
686
+ msg_code = MessageCodes.FUNC_EXECUTION_FAILED
687
+ error_msg = Messages.get_message(msg_code, "view_log()", emsg)
688
+ raise TeradataMlException(error_msg, msg_code)
689
+ else:
690
+ print("Logs for query_id \"{}\" is stored at \"{}\"".format(query_id, log_dir))
691
+ # Return a teradataml dataframe from query.
692
+ if log_type != 'apply':
693
+ return tdmldf.dataframe.DataFrame.from_query(view_log_query)
694
+
695
+
696
+ def _fetch_url_and_save(url, file_path):
697
+ """
698
+ DESCRIPTION:
699
+ Download file from specifed url and update files at specified path.
700
+
701
+ PARAMETERS:
702
+ url:
703
+ Specifies the url from where file needs to be downloaded.
704
+
705
+ file_path:
706
+ Specifies the path of file where downloaded file needs to be updated.
707
+
708
+ Returns:
709
+ None
710
+
711
+ """
712
+ from teradataml.scriptmgmt.UserEnv import _process_ues_response
713
+ response = UtilFuncs._http_request(url)
714
+ resp = _process_ues_response(api_name="view_log", response=response)
715
+ with open(file_path, 'w') as file:
716
+ file.write(resp.content.decode('utf-8'))
717
+
718
+
719
+ def _check_if_python_packages_installed():
720
+ """
721
+ DESCRIPTION:
722
+ Function to set global variable 'python_packages_installed' to True
723
+ or False based on whether the Vantage node has Python and add-on
724
+ packages including pip3 installed.
725
+
726
+ PARAMETERS:
727
+ None.
728
+
729
+ RETURNS:
730
+ None.
731
+
732
+ RAISES:
733
+ Exception.
734
+
735
+ EXAMPLES:
736
+ _check_if_python_packages_installed()
737
+ """
738
+ # Check if Python interpreter and add-ons packages are installed or not.
739
+ try:
740
+ query = TableOperatorConstants.CHECK_PYTHON_INSTALLED.value
741
+ UtilFuncs._execute_query(query=query)
742
+
743
+ # If query execution is successful, then Python and add-on packages are
744
+ # present.
745
+ tdmlctx.python_packages_installed = True
746
+ except Exception as err:
747
+ # Raise Exception if the error message does not contain
748
+ # "bash: pip3: command not found".
749
+ # Default value of the global variable "python_packages_installed" remains
750
+ # same which was set during create_context/set_context.
751
+ if "bash: pip3: command not found" not in str(err):
752
+ raise
753
+
754
+
755
+ @collect_queryband(queryband='PkgDtls')
756
+ def db_python_package_details(names=None):
757
+ """
758
+ DESCRIPTION:
759
+ Function to get the Python packages, installed on Vantage, and their corresponding
760
+ versions.
761
+ Note:
762
+ Using this function is valid only when Python interpreter and add-on packages
763
+ are installed on the Vantage node.
764
+
765
+ PARAMETERS:
766
+ names:
767
+ Optional Argument.
768
+ Specifies the name(s)/pattern(s) of the Python package(s) for which version
769
+ information is to be fetched from Vantage. If this argument is not specified
770
+ or None, versions of all installed Python packages are returned.
771
+ Default Value: None
772
+ Types: str
773
+
774
+ RETURNS:
775
+ teradataml DataFrame, if package(s) is/are present in the Vantage.
776
+
777
+ RAISES:
778
+ TeradataMlException.
779
+
780
+ EXAMPLES:
781
+ # Note:
782
+ # These examples will work only when the Python packages are installed on Vantage.
783
+
784
+ # Example 1: Get the details of a Python package 'dill' from Vantage.
785
+ >>> db_python_package_details("dill")
786
+ package version
787
+ 0 dill 0.2.8.2
788
+
789
+ # Example 2: Get the details of Python packages, having string 'mpy', installed on Vantage.
790
+ >>> db_python_package_details(names = "mpy")
791
+ package version
792
+ 0 simpy 3.0.11
793
+ 1 numpy 1.16.1
794
+ 2 gmpy2 2.0.8
795
+ 3 msgpack-numpy 0.4.3.2
796
+ 4 sympy 1.3
797
+
798
+ # Example 3: Get the details of Python packages, having string 'numpy' and 'learn',
799
+ # installed on Vantage.
800
+ >>> db_python_package_details(["numpy", "learn"])
801
+ package version
802
+ 0 scikit-learn 0.20.3
803
+ 1 numpy 1.16.1
804
+ 2 msgpack-numpy 0.4.3.2
805
+
806
+ # Example 4: Get the details of all Python packages installed on Vantage.
807
+ >>> db_python_package_details()
808
+ package version
809
+ 0 packaging 18.0
810
+ 1 cycler 0.10.0
811
+ 2 simpy 3.0.11
812
+ 3 more-itertools 4.3.0
813
+ 4 mpmath 1.0.0
814
+ 5 toolz 0.9.0
815
+ 6 wordcloud 1.5.0
816
+ 7 mistune 0.8.4
817
+ 8 singledispatch 3.4.0.3
818
+ 9 attrs 18.2.0
819
+
820
+ """
821
+ # Validate arguments.
822
+ __arg_info_matrix = []
823
+ __arg_info_matrix.append(["names", names, True, (str, list), True])
824
+
825
+ _Validators._validate_function_arguments(arg_list=__arg_info_matrix)
826
+
827
+ # Check if Python interpretor and add-on packages are installed or not.
828
+ _check_if_python_packages_installed()
829
+
830
+ # Raise error if Python and add-on packages are not installed.
831
+ if not tdmlctx.python_packages_installed:
832
+ raise TeradataMlException(Messages.get_message(MessageCodes.PYTHON_NOT_INSTALLED),
833
+ MessageCodes.PYTHON_NOT_INSTALLED)
834
+
835
+ package_str = ""
836
+ # Adding "grep ..." only when the argument "name" is mentioned.
837
+ # Otherwise, all the package details are fetched.
838
+ if names is not None:
839
+ names = UtilFuncs._as_list(names)
840
+ package_str = "|".join(names)
841
+ package_str = "grep -E \"{0}\" | ".format(package_str)
842
+
843
+ query = TableOperatorConstants.PACKAGE_VERSION_QUERY.value. \
844
+ format(package_str, configure.default_varchar_size)
845
+
846
+ ret_val = tdmldf.dataframe.DataFrame.from_query(query)
847
+
848
+ if ret_val.shape[0] == 0:
849
+ msg_str = "No Python package(s) found based on given search criteria : names = {}"
850
+ print(msg_str.format(names))
851
+ ret_val = None
852
+
853
+ return ret_val
854
+
855
+
856
+ def _create_table(table_name,
857
+ columns,
858
+ primary_index=None,
859
+ unique=True,
860
+ temporary=False,
861
+ schema_name=None,
862
+ set_table=True,
863
+ **kwargs):
864
+ """
865
+ DESCRIPTION:
866
+ This is an internal function used to construct a SQLAlchemy Table Object.
867
+ This function checks appropriate flags and supports creation of Teradata
868
+ specific Table constructs such as Volatile/Primary Index tables and constraints.
869
+
870
+ PARAMETERS:
871
+ table_name:
872
+ Required Argument.
873
+ Specifies the name of SQL table.
874
+ Types: str
875
+
876
+ columns:
877
+ Required Argument.
878
+ Specifies a python dictionary with column-name(key) to column-type(value) mapping
879
+ to create table.
880
+ Types: dict
881
+
882
+ primary_index:
883
+ Optional Argument.
884
+ Specifies the column name(s) on which primary index needs to be created.
885
+ Default Value: None
886
+ Types: str OR list of Strings (str)
887
+
888
+ unique:
889
+ Optional Argument.
890
+ Specifies whether index is unique primary index or not i.e.,
891
+ if True, index column(s) does not accepts duplicate values,
892
+ if False, index column(s) accepts duplicate values.
893
+ Default Value: True
894
+ Types: bool
895
+
896
+ temporary:
897
+ Optional Argument.
898
+ Specifies whether SQL table to be created is Volatile or not.
899
+ Default Value: False
900
+ Types: bool
901
+
902
+ schema_name:
903
+ Optional Argument.
904
+ Specifies the name of the SQL schema in the database to write to.
905
+ If not specified, table is created in default schema.
906
+ Default Value: None
907
+ Types: str
908
+
909
+ set_table:
910
+ Optional Argument.
911
+ A flag specifying whether to create a SET table or a MULTISET table.
912
+ When True, an attempt to create a SET table is made.
913
+ When False, an attempt to create a MULTISET table is made.
914
+ Default Value: True
915
+ Types: bool
916
+
917
+ **kwargs:
918
+ Optional Argument.
919
+ Specifies table_level constraints as keyword arguments.
920
+ Each constraint argument can accept a string or a list of strings.
921
+ Notes:
922
+ * If the same constraint is to be applied multiple times,
923
+ conditions or columns should be mentioned as individual
924
+ elements in the list.
925
+ * If the constraint is to be applied on multiple columns,
926
+ it should be mentioned in a tuple inside the list.
927
+ * For foreign_key_constraint, value should be a list
928
+ containing 3 elements, constrained columns,
929
+ referenced columns and referenced table name.
930
+ * If multiple foreign_key_constraint constraints are
931
+ to be specified, then a list of tuples containing
932
+ the 3 elements should be specified.
933
+ Permitted values:check_constraint, primary_key_constraint,
934
+ foreign_key_constraint, unique_key_constraint.
935
+
936
+ RETURNS:
937
+ None
938
+
939
+ RAISES:
940
+ None
941
+
942
+ EXAMPLES:
943
+ # Example 1: Create a table with primary key constraint.
944
+ >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
945
+ primary_key_constraint='column_name', set_table=False)
946
+
947
+ # Example 2: Create a table with multiple check constraints.
948
+ >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
949
+ check_constraint=['column_name > value', 'column_name > value2'], set_table=False)
950
+
951
+ # Example 3: Create a table with multiple columns as primary key in primary constraint.
952
+ >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
953
+ primary_key_constraint=[('column_name','column_name')], set_table=False)
954
+
955
+ # Example 4: Create a table with no constraint and no primary key.
956
+ >>> _create_table(table_name=table_name, columns=columns_to_create, schema_name = schema_name,
957
+ set_table=False)
958
+
959
+ """
960
+ try:
961
+ prefix = []
962
+ pti = post(opts={})
963
+
964
+ if temporary is True:
965
+ pti = pti.on_commit(option='preserve')
966
+ prefix.append('VOLATILE')
967
+
968
+ if set_table:
969
+ prefix.append('set')
970
+ else:
971
+ prefix.append('multiset')
972
+
973
+ meta = MetaData()
974
+ meta.bind = tdmlctx.get_context()
975
+
976
+ if primary_index is not None:
977
+ if isinstance(primary_index, list):
978
+ pti = pti.primary_index(unique=unique, cols=primary_index)
979
+ elif isinstance(primary_index, str):
980
+ pti = pti.primary_index(unique=unique, cols=[primary_index])
981
+ else:
982
+ pti = pti.no_primary_index()
983
+
984
+ con_form=[]
985
+ for c_name, parameters in kwargs.items():
986
+ _Validators._validate_function_arguments([["constraint_type", c_name, True, str,
987
+ True, SQLConstants.CONSTRAINT.value]])
988
+ if c_name in 'check_constraint':
989
+ parameters = UtilFuncs._as_list(parameters)
990
+ [con_form.append("{}('{}')".format("CheckConstraint", col)) for col in parameters]
991
+ if c_name in 'foreign_key_constraint':
992
+ parameters = parameters if isinstance(parameters[0], tuple) else [tuple(parameters)]
993
+ for col in parameters:
994
+ meta.reflect(bind=tdmlctx.get_context(), only=[col[2]])
995
+ con_form.append("{}({},{})".format("ForeignKeyConstraint", col[0], col[1]))
996
+ if c_name in ['primary_key_constraint', 'unique_key_constraint']:
997
+ c_name = "UniqueConstraint" if c_name in 'unique_key_constraint' else 'PrimaryKeyConstraint'
998
+ parameters = UtilFuncs._as_list(parameters)
999
+ [con_form.append("{}('{}')".format(c_name, "','".join(col))) if type(col) == tuple else con_form.append(
1000
+ "{}('{}')".format(c_name, col)) for col in parameters]
1001
+ con_form.append("")
1002
+
1003
+ # Create default Table construct with parameter dictionary
1004
+ table_str = "Table(table_name, meta,*(Column(c_name, c_type) for c_name,c_type in" \
1005
+ " columns.items()),{} teradatasql_post_create=pti,prefixes=prefix," \
1006
+ "schema=schema_name)".format("" if con_form is None else ",".join(con_form))
1007
+
1008
+ table=eval(table_str)
1009
+ table.create(bind=tdmlctx.get_context())
1010
+
1011
+ except Exception as err:
1012
+ msg_code = MessageCodes.EXECUTION_FAILED
1013
+ raise TeradataMlException(Messages.get_message(msg_code, "create table", str(err)), msg_code)
1014
+
1015
+
1016
+ @collect_queryband(queryband='LstKwrds')
1017
+ def list_td_reserved_keywords(key=None, raise_error=False):
1018
+ """
1019
+ DESCRIPTION:
1020
+ Function validates if the specified string is Teradata reserved keyword or not.
1021
+ If key is not specified, list all the Teradata reserved keywords.
1022
+
1023
+ PARAMETERS:
1024
+ key:
1025
+ Optional Argument.
1026
+ Specifies a string to validate for Teradata reserved keyword.
1027
+ Types: string
1028
+
1029
+ raise_error:
1030
+ Optional Argument.
1031
+ Specifies whether to raise exception or not.
1032
+ When set to True, an exception is raised,
1033
+ if specified "key" is a Teradata reserved keyword, otherwise not.
1034
+ Default Value: False
1035
+ Types: bool
1036
+
1037
+ RETURNS:
1038
+ teradataml DataFrame, if "key" is None.
1039
+ True, if "key" is Teradata reserved keyword, False otherwise.
1040
+
1041
+ RAISES:
1042
+ TeradataMlException.
1043
+
1044
+ EXAMPLES:
1045
+ >>> from teradataml import list_td_reserved_keywords
1046
+ >>> # Example 1: List all available Teradata reserved keywords.
1047
+ >>> list_td_reserved_keywords()
1048
+ restricted_word
1049
+ 0 ABS
1050
+ 1 ACCOUNT
1051
+ 2 ACOS
1052
+ 3 ACOSH
1053
+ 4 ADD_MONTHS
1054
+ 5 ADMIN
1055
+ 6 ADD
1056
+ 7 ACCESS_LOCK
1057
+ 8 ABORTSESSION
1058
+ 9 ABORT
1059
+ >>>
1060
+
1061
+ >>> # Example 2: Validate if keyword "account" is a Teradata reserved keyword or not.
1062
+ >>> list_td_reserved_keywords("account")
1063
+ True
1064
+ >>>
1065
+
1066
+ >>> # Example 3: Validate and raise exception if keyword "account" is a Teradata reserved keyword.
1067
+ >>> list_td_reserved_keywords("account", raise_error=True)
1068
+ TeradataMlException: [Teradata][teradataml](TDML_2121) 'account' is a Teradata reserved keyword.
1069
+ """
1070
+ from teradataml.dataframe.dataframe import DataFrame, in_schema
1071
+ # Get the reserved keywords from the table
1072
+ reserved_keys = DataFrame(in_schema("SYSLIB", "SQLRestrictedWords"))
1073
+
1074
+ # If key is not passed, return the list of Teradata reserved keywords.
1075
+ if key is None:
1076
+ return reserved_keys.select(['restricted_word'])
1077
+
1078
+ # Check if key is a Teradata reserved keyword or not.
1079
+ num_rows = reserved_keys[reserved_keys.restricted_word == key.upper()].shape[0]
1080
+ if num_rows > 0:
1081
+ if raise_error:
1082
+ raise TeradataMlException(Messages.get_message(MessageCodes.RESERVED_KEYWORD, key),
1083
+ MessageCodes.RESERVED_KEYWORD)
1084
+ return True
1085
+ return False
1086
+
1087
+
1088
+ def _rename_table(old_table_name, new_table_name):
1089
+ """
1090
+ This function renames the existing table present in the database.
1091
+
1092
+ PARAMETERS:
1093
+ old_table_name:
1094
+ Required Argument.
1095
+ Specifies the name of the existing table in vantage.
1096
+ Types : String
1097
+
1098
+ new_table_name:
1099
+ Required Argument.
1100
+ Specifies the the new name for the existing table.
1101
+ Types : String
1102
+
1103
+ RETURNS:
1104
+ None
1105
+
1106
+ RAISES:
1107
+ None
1108
+
1109
+ EXAMPLES:
1110
+ >>> load_example_data("dataframe", "sales")
1111
+ >>> _rename_table("sales", "new_sales")
1112
+ """
1113
+ # Query to rename existing table.
1114
+ query = "RENAME TABLE {} TO {};".format(old_table_name, new_table_name)
1115
+ # Execute rename query.
1116
+ UtilFuncs._execute_ddl_statement(query)
1117
+
1118
+
1119
+ def _execute_query_and_generate_pandas_df(query, index=None, **kwargs):
1120
+ """
1121
+ DESCRIPTION:
1122
+ Function executes the provided query and returns a pandas DataFrame.
1123
+
1124
+ PARAMETERS:
1125
+ query:
1126
+ Required Argument.
1127
+ Specifies the query that needs to be executed to form Pandas
1128
+ DataFrame.
1129
+ Type: str
1130
+
1131
+ index
1132
+ Optional Argument.
1133
+ Specifies column(s) to be used as Pandas index.
1134
+ Types: str OR list of Strings (str)
1135
+
1136
+ RETURNS:
1137
+ Pandas DataFrame.
1138
+
1139
+ RAISES:
1140
+ TeradataMlException.
1141
+
1142
+ EXAMPLES:
1143
+ pdf = _execute_query_and_generate_pandas_df("SELECT * from t1", "col1")
1144
+ """
1145
+ # Empty queryband buffer before SQL call.
1146
+ UtilFuncs._set_queryband()
1147
+ cur = execute_sql(query)
1148
+ columns = kwargs.pop('columns', [col[0] for col in cur.description])
1149
+ rows = cur.fetchall()
1150
+ if cur is not None:
1151
+ cur.close()
1152
+
1153
+ try:
1154
+ pandas_df = pd.DataFrame.from_records(data=list(tuple(row) for row in rows),
1155
+ columns=columns,
1156
+ index=index,
1157
+ **kwargs)
1158
+ except KeyError:
1159
+ raise TeradataMlException(
1160
+ Messages.get_message(MessageCodes.INVALID_PRIMARY_INDEX),
1161
+ MessageCodes.INVALID_PRIMARY_INDEX)
1162
+ except:
1163
+ raise TeradataMlException(
1164
+ Messages.get_message(MessageCodes.TDMLDF_SELECT_DF_FAIL),
1165
+ MessageCodes.TDMLDF_SELECT_DF_FAIL)
1166
+
1167
+ return pandas_df