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,652 +1,652 @@
1
- from functools import wraps
2
-
3
- from teradataml.common.utils import UtilFuncs
4
-
5
- from teradataml.common.exceptions import TeradataMlException
6
- from teradataml.common.messages import Messages
7
- from teradataml.common.messagecodes import MessageCodes
8
- from sqlalchemy import func, literal
9
- from sqlalchemy.ext.compiler import compiles
10
- from sqlalchemy.sql import expression
11
- from sqlalchemy.sql.elements import BinaryExpression, ColumnClause
12
- from sqlalchemy.sql.expression import case as case_when
13
-
14
- from .sql import _SQLColumnExpression, _resolve_value_to_type
15
- from .sql_interfaces import ColumnExpression
16
-
17
- from teradatasqlalchemy.dialect import preparer, dialect as td_dialect
18
- from teradatasqlalchemy import (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT)
19
- from teradatasqlalchemy import (CHAR, VARCHAR, CLOB, NUMBER)
20
- from teradatasqlalchemy import (TIMESTAMP, DATE, TIME)
21
-
22
- __all__ = ['translate', 'to_numeric']
23
-
24
- def _as_varchar_literal(arg):
25
- """
26
- return a sqlalchemy literal
27
-
28
- Parameters
29
- ---------
30
- arg: string literal
31
-
32
- """
33
- return literal(arg, type_ = VARCHAR(len(arg)))
34
-
35
- # TODO: refactor this once more functions are created
36
- #def _implementation(fn):
37
- #
38
- # """
39
- # This decorator wraps sql functions that generate expressions
40
- # that can be used in DataFrame and Series methods such as assign.
41
- #
42
- # The wrapper performs error checks as well as implements
43
- # the kind of ColumnExpression instance to return
44
- #
45
- # Parameters
46
- # ----------
47
- # A function or method that generates sql.
48
- # The function is from the sql_functions module.
49
- #
50
- # Examples
51
- # --------
52
- # @implementation
53
- # def unicode_to_latin(x)
54
- #
55
- # """
56
- # @wraps
57
- # def inner(*args, **kw):
58
- #
59
- # res = fn(*args, **kw)
60
- # return _SQLColumnExpression(res)
61
- #
62
- #
63
- #@_implementation
64
-
65
- def translate(x, source = 'UNICODE', target = 'LATIN'):
66
- """
67
- Returns a TRANSLATE(x USING source_TO_target) expression
68
-
69
- PARAMETERS:
70
- x: A ColumnExpression instance coming from the DataFrame
71
- or output of other functions in sql_functions. A python
72
- string literal may also be used.
73
-
74
- source, target: str with values:
75
- - 'UNICODE'
76
- - 'LATIN'
77
-
78
- REFERENCES:
79
- Chapter 28: String Operators and Functions
80
- Teradata® Database SQL Functions, Operators, Expressions, and
81
- Predicates, Release 16.20
82
-
83
- EXAMPLES:
84
- >>> from teradataml.dataframe.sql_functions import translate
85
-
86
- >>> df = DataFrame('df')
87
- >>> tvshow = df['tvshow']
88
-
89
- >>> res = df.assign(tvshow = translate(tvshow))
90
- """
91
-
92
- # error checking
93
- if not isinstance(x, str) and not isinstance(x, ColumnExpression):
94
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('x', "a DataFrame column or string")
95
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
96
-
97
- if not isinstance(source, str):
98
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('source', "a string")
99
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
100
-
101
- if not isinstance(target, str):
102
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('target', "a string")
103
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
104
-
105
- supported = ('UNICODE', 'LATIN')
106
- if (source.upper() not in supported):
107
- msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(source.upper(), 'source', "in {}".format(supported))
108
- raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
109
-
110
- if (target.upper() not in supported):
111
- msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(target.upper(), 'target', "in {}".format(supported))
112
- raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
113
-
114
- # get the sqlalchemy expression
115
- expr = None
116
- if isinstance(x, ColumnExpression):
117
- expr = x.expression
118
-
119
- else:
120
- expr = literal(x, type_ = VARCHAR(length = len(x), charset = 'UNICODE'))
121
-
122
- if not isinstance(expr.type, (CHAR, VARCHAR, CLOB)):
123
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('x', "a DataFrame column of type CHAR, VARCHAR, or CLOB")
124
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
125
-
126
- # get the result type
127
- length, charset = expr.type.length, target
128
- typ_ = CLOB(length, charset) if isinstance(expr.type, CLOB) else VARCHAR(length, charset)
129
-
130
- # define an inner class to generate the sql expression
131
- class _translate(expression.FunctionElement):
132
- name = '_translate'
133
- type = typ_
134
-
135
- custom = source + '_TO_' + target
136
- @compiles(_translate)
137
- def default__translate(element, compiler, **kw):
138
- column_expression = compiler.process(element.clauses, **kw)
139
- return ('TRANSLATE({x} USING ' + custom + ')').format(x = column_expression)
140
-
141
- return _SQLColumnExpression(_translate(expr.expression))
142
-
143
- def case(whens, value=None, else_=None):
144
- """
145
- Returns a ColumnExpression based on the CASE expression.
146
-
147
- PARAMETERS:
148
- whens:
149
- Required Argument.
150
- Specifies the criteria to be compared against. It accepts two different forms,
151
- based on whether or not the value argument is used.
152
-
153
- In the first form, it accepts a list of 2-tuples; each 2-tuple consists of (<sql expression>, <value>),
154
- where the <sql expression> is a boolean expression and “value” is a resulting value.
155
- For example:
156
-
157
- case([
158
- (df.first_name == 'wendy', 'W'),
159
- (df.first_name == 'jack', 'J')
160
- ])
161
-
162
- In the second form, it accepts a Python dictionary of comparison values mapped to a resulting value;
163
- this form requires 'value' argument to be present, and values will be compared using the '==' operator.
164
- For example:
165
-
166
- case(
167
- {"wendy": "W", "jack": "J"},
168
- value=df.first_name
169
- )
170
-
171
- Types: List of 2-tuples or Dictionary of comparison value mapped to a resulting value.
172
-
173
- value:
174
- Optional Argument. Required when 'whens' is of dictionary type.
175
- Specifies a SQL expression (ColumnExpression or literal) which will be used as a fixed “comparison point”
176
- for candidate values within a dictionary passed to the 'whens' argument.
177
- Types: ColumnExpression or SQL Expression (Python literal)
178
-
179
- else_:
180
- Optional Argument.
181
- Specifies a SQL expression (ColumnExpression or literal) which will be the evaluated result of
182
- the CASE construct if all expressions within 'whens' evaluate to False.
183
- When omitted, will produce a result of NULL if none of the 'when' expressions evaluate to True.
184
- Types: ColumnExpression or SQL Expression (Python literal)
185
-
186
-
187
- RETURNS:
188
- ColumnExpression
189
-
190
-
191
- EXAMPLES:
192
- >>> from teradataml.dataframe.sql_functions import case
193
- >>> load_example_data("GLM", ["admissions_train"])
194
- >>> df = DataFrame("admissions_train")
195
- >>> print(df)
196
- masters gpa stats programming admitted
197
- id
198
- 5 no 3.44 Novice Novice 0
199
- 3 no 3.70 Novice Beginner 1
200
- 1 yes 3.95 Beginner Beginner 0
201
- 20 yes 3.90 Advanced Advanced 1
202
- 8 no 3.60 Beginner Advanced 1
203
- 25 no 3.96 Advanced Advanced 1
204
- 18 yes 3.81 Advanced Advanced 1
205
- 24 no 1.87 Advanced Novice 1
206
- 26 yes 3.57 Advanced Advanced 1
207
- 38 yes 2.65 Advanced Beginner 1
208
- >>> print(df.shape)
209
- (40, 6)
210
-
211
- >>> # Example showing 'whens' passed a 2-tuple - assign rating based on GPA
212
- >>> # gpa > 3.0 = 'good'
213
- >>> # 2.0 < gpa <= 3.0 = 'average'
214
- >>> # gpa <= 2.0 = 'bad'
215
- >>> # Filtering all the 'good' scores only.
216
- >>> good_df = df[case([(df.gpa > 3.0, 'good'),
217
- (df.gpa > 2.0, 'average')],
218
- else_='bad') == 'good']
219
- >>> print(good_df)
220
- masters gpa stats programming admitted
221
- id
222
- 13 no 4.00 Advanced Novice 1
223
- 11 no 3.13 Advanced Advanced 1
224
- 9 no 3.82 Advanced Advanced 1
225
- 26 yes 3.57 Advanced Advanced 1
226
- 3 no 3.70 Novice Beginner 1
227
- 1 yes 3.95 Beginner Beginner 0
228
- 20 yes 3.90 Advanced Advanced 1
229
- 18 yes 3.81 Advanced Advanced 1
230
- 5 no 3.44 Novice Novice 0
231
- 32 yes 3.46 Advanced Beginner 0
232
- >>> print(good_df.shape)
233
- (35, 6)
234
-
235
- >>> # Use DataFrame.assign() to create a new column with the rating
236
- >>> whens_df = df.assign(rating = case([(df.gpa > 3.0, 'good'),
237
- (df.gpa > 2.0, 'average')],
238
- else_='bad'))
239
- >>> print(whens_df)
240
- masters gpa stats programming admitted rating
241
- id
242
- 5 no 3.44 Novice Novice 0 good
243
- 3 no 3.70 Novice Beginner 1 good
244
- 1 yes 3.95 Beginner Beginner 0 good
245
- 20 yes 3.90 Advanced Advanced 1 good
246
- 8 no 3.60 Beginner Advanced 1 good
247
- 25 no 3.96 Advanced Advanced 1 good
248
- 18 yes 3.81 Advanced Advanced 1 good
249
- 24 no 1.87 Advanced Novice 1 bad
250
- 26 yes 3.57 Advanced Advanced 1 good
251
- 38 yes 2.65 Advanced Beginner 1 average
252
- >>> print(whens_df.shape)
253
- (40, 7)
254
-
255
- >>> # Example not specifying 'else_'
256
- >>> no_else = df.assign(rating = case([(df.gpa > 3.0, 'good')]))
257
- >>> print(no_else)
258
- masters gpa stats programming admitted rating
259
- id
260
- 5 no 3.44 Novice Novice 0 good
261
- 3 no 3.70 Novice Beginner 1 good
262
- 1 yes 3.95 Beginner Beginner 0 good
263
- 20 yes 3.90 Advanced Advanced 1 good
264
- 8 no 3.60 Beginner Advanced 1 good
265
- 25 no 3.96 Advanced Advanced 1 good
266
- 18 yes 3.81 Advanced Advanced 1 good
267
- 24 no 1.87 Advanced Novice 1 None
268
- 26 yes 3.57 Advanced Advanced 1 good
269
- 38 yes 2.65 Advanced Beginner 1 None
270
- >>> print(no_else.shape)
271
- (40, 7)
272
-
273
- >>> # Example showing 'whens' passed a dictionary along with 'value'
274
- >>> whens_value_df = df.assign(admitted_text = case({ 1 : "admitted", 0 : "not admitted"},
275
- value=df.admitted,
276
- else_="don't know"))
277
-
278
- >>> print(whens_value_df)
279
- masters gpa stats programming admitted admitted_text
280
- id
281
- 13 no 4.00 Advanced Novice 1 admitted
282
- 11 no 3.13 Advanced Advanced 1 admitted
283
- 9 no 3.82 Advanced Advanced 1 admitted
284
- 28 no 3.93 Advanced Advanced 1 admitted
285
- 33 no 3.55 Novice Novice 1 admitted
286
- 10 no 3.71 Advanced Advanced 1 admitted
287
- 16 no 3.70 Advanced Advanced 1 admitted
288
- 32 yes 3.46 Advanced Beginner 0 not admitted
289
- 34 yes 3.85 Advanced Beginner 0 not admitted
290
- 17 no 3.83 Advanced Advanced 1 admitted
291
- >>> print(whens_value_df.shape)
292
- (40, 7)
293
-
294
- >>> # Example showing how you can decide on projecting a column based on the value of expression.
295
- >>> # In this example, you end up projecting values from column 'average_rating' if 2.0 < gpa <= 3.0,
296
- >>> # and the values from column 'good_rating' when gpa > 3.0, naming the column 'ga_rating'.
297
-
298
- >>> from sqlalchemy.sql import literal_column
299
- >>> whens_new_df = df.assign(good_rating = case([(df.gpa > 3.0, 'good')]))
300
- >>> whens_new_df = whens_new_df.assign(avg_rating = case([((whens_new_df.gpa > 2.0) & (whens_new_df.gpa <= 3.0),
301
- 'average')]))
302
- >>> literal_df = whens_new_df.assign(ga_rating = case([(whens_new_df.gpa > 3.0, literal_column('good_rating')),
303
- (whens_new_df.gpa > 2.0, literal_column('avg_rating'))]))
304
- >>> print(literal_df)
305
- masters gpa stats programming admitted good_rating avg_rating ga_rating
306
- id
307
- 5 no 3.44 Novice Novice 0 good None good
308
- 3 no 3.70 Novice Beginner 1 good None good
309
- 1 yes 3.95 Beginner Beginner 0 good None good
310
- 20 yes 3.90 Advanced Advanced 1 good None good
311
- 8 no 3.60 Beginner Advanced 1 good None good
312
- 25 no 3.96 Advanced Advanced 1 good None good
313
- 18 yes 3.81 Advanced Advanced 1 good None good
314
- 24 no 1.87 Advanced Novice 1 None None None
315
- 26 yes 3.57 Advanced Advanced 1 good None good
316
- 38 yes 2.65 Advanced Beginner 1 None average average
317
-
318
- """
319
-
320
- # Variable contains_type stores the tdtypes
321
- contains_type = set()
322
- # Validations
323
- new_whens = whens
324
- # whens can be a dictionary, but requires values to be specified
325
- if isinstance(whens, dict):
326
- # Make sure values is passed and is of required type
327
- if not value:
328
- raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING, "value",
329
- "whens of dictionary type"),
330
- MessageCodes.DEPENDENT_ARG_MISSING)
331
- # as whens can take value only as Python type, so first mapping the value of
332
- # Python type to tdtypes and storing the tdtypes in contains_type
333
- for _, values in whens.items():
334
- contains_type.add(type(_resolve_value_to_type(values)))
335
- # If it is a teradataml ColumnExpression, we need to pass the SQLAlchemy Column Expression
336
- if isinstance(value, ColumnExpression):
337
- value = value.expression
338
-
339
- # whens can be a list of 2-tuples
340
- elif isinstance(whens, list):
341
- new_whens = []
342
- # Make sure the list of tuples has _SQLColumnExpression as first element
343
- for when in whens:
344
- raise_err = True if (not isinstance(when, tuple) or len(when) != 2) else False
345
- if raise_err or (not isinstance(when[0], ColumnExpression) and not isinstance(when[0], BinaryExpression)):
346
- raise TeradataMlException(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE, 'whens',
347
- "a list of 2-tuples with each tuple having a"
348
- " boolean expression as the first element"),
349
- MessageCodes.UNSUPPORTED_DATATYPE)
350
-
351
- # If it is a teradataml ColumnExpression, we need to use the SQLAlchemy Column Expression
352
- new_whens.append((when[0].expression if isinstance(when[0], ColumnExpression) else when[0],
353
- when[1].expression if isinstance(when[1], ColumnExpression) else when[1]))
354
- # If when[1] is a teradataml ColumnExpression type or when[1] is a literal_column then store
355
- # the tdtypes in contains_type.
356
- if isinstance(when[1], (ColumnExpression, ColumnClause)):
357
- contains_type.add(type(when[1].type))
358
- # If when[1] is of Python data type, so first mapping the value of
359
- # Python type to tdtypes and storing the tdtypes in contains_type
360
- else:
361
- contains_type.add(type(_resolve_value_to_type(when[1])))
362
-
363
- # values will be ignored by SQLAlchemy when 'whens' is a 2-tuple list.
364
- # However, an issue was noticed with it when it was actually passed a value, which resulted in an
365
- # incorrectly formed CASE statement. We forcefully set it to NULL.
366
- if value is not None:
367
- value = None
368
- else:
369
- raise TeradataMlException(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE, 'whens',
370
- "a list of 2-tuples with each tuple having a"
371
- " boolean expression as the first element"),
372
- MessageCodes.UNSUPPORTED_DATATYPE)
373
-
374
- # If it is a teradataml ColumnExpression, we need to use the SQLAlchemy Column Expression
375
- # and storing the tdtypes of ColumnExpression in contains_type
376
- if isinstance(else_, ColumnExpression):
377
- else_ = else_.expression
378
- contains_type.add(type(else_.type))
379
- # If else_ is literal_column then store the tdtypes of literal_column used
380
- elif isinstance(else_, ColumnClause):
381
- contains_type.add(type(else_.type))
382
- # if else_ is of python data type so first mapping the value of
383
- # Python type to tdtypes and storing the tdtypes in contains_type
384
- else:
385
- contains_type.add(type(_resolve_value_to_type(else_)))
386
-
387
- if isinstance(new_whens, dict):
388
- output_case_when = case_when(new_whens, value=value, else_=else_)
389
- else:
390
- output_case_when = case_when(*new_whens, value=value, else_=else_)
391
-
392
- # Here assigning the correct tdypes if there are multiple tdtypes present in case function
393
- # according to below conditions and if contains_type doesnot contain any below condition
394
- # we kept the type of output_case_when as it is(means type provided by case_when)
395
- # If VARCHAR tdtypes present in case function assign column type to VARCHAR tdtypes
396
- if VARCHAR in contains_type:
397
- output_case_when.type = VARCHAR()
398
- # If FLOAT tdypes present in case function assign column type to FLOAT tdtypes
399
- elif FLOAT in contains_type:
400
- output_case_when.type = FLOAT()
401
- # If NUMBER tdypes present in case function assign column type to NUMBER tdtypes
402
- elif NUMBER in contains_type:
403
- output_case_when.type = NUMBER()
404
- # If DECIMAL tdypes present in case function assign column type to DECIMAL tdtypes
405
- elif DECIMAL in contains_type:
406
- output_case_when.type = DECIMAL()
407
- # If BIGINT tdypes present in case function assign column type to BIGINT tdtypes
408
- elif BIGINT in contains_type:
409
- output_case_when.type = BIGINT()
410
- # If INTEGER tdypes present in case function assign column type to INTEGER tdtypes
411
- elif INTEGER in contains_type:
412
- output_case_when.type = INTEGER()
413
- # If SMALLINT tdypes present in case function assign column type to SMALLINT tdtypes
414
- elif SMALLINT in contains_type:
415
- output_case_when.type = SMALLINT()
416
- # If BYTEINT tdypes present in case function assign column type to BYTINT tdtypes
417
- elif BYTEINT in contains_type:
418
- output_case_when.type = BYTEINT()
419
-
420
- return _SQLColumnExpression(output_case_when)
421
-
422
- def to_numeric(arg, **kw):
423
-
424
- """
425
- Convert a string-like representation of a number to a Numeric type.
426
-
427
- PARAMETERS:
428
- arg: DataFrame column
429
- kw: optional keyword arguments
430
- format_: string. Specifies the format of a string-like number to convert to numeric
431
- nls: dict where 'param' and 'value' are keys:
432
-
433
- - param specifies one of the following string values:
434
- -'CURRENCY', 'NUMERIC_CHARACTERS', 'DUAL_CURRENCY', 'ISO_CURRENCY'
435
-
436
- - value: specifies characters that are returned by number format elements.
437
- See References for more information
438
-
439
- REFERENCES:
440
- Chapter 14: Data Type Conversion Functions
441
- Teradata® Database SQL Functions, Operators, Expressions, and
442
- Predicates, Release 16.20
443
-
444
-
445
- RETURNS:
446
- A DataFrame column of numeric type
447
-
448
- NOTES:
449
- - If the arg column input is a numeric type, it is returned as is
450
- - Nulls may be introduced in the result if the parsing fails
451
- - You may need to strip() columns that have leading or trailing spaces
452
- in order for to_numeric to parse correctly
453
-
454
- EXAMPLES:
455
-
456
- >>> df = DataFrame('numeric_strings')
457
-
458
- hex decimal commas numbers
459
- 0 19FF 00.77 08,8 1
460
- 1 abcd 0.77 0,88 1
461
- 2 ABCDEFABCD 0.7.7 ,088 999
462
- 3 2018 .077 088, 0
463
-
464
- >>> df.dtypes
465
-
466
- hex str
467
- decimal str
468
- commas str
469
- numbers str
470
-
471
- # converting string numbers to numeric
472
- >>> df.assign(drop_columns = True,
473
- numbers = df.numbers,
474
- numeric = to_numeric(df.numbers))
475
-
476
- numbers numeric
477
- 0 1 1
478
- 1 1 1
479
- 2 999 999
480
- 3 0 0
481
-
482
-
483
- # converting decimal-like strings to numeric
484
- # Note that strings not following the format return None
485
- >>> df.assign(drop_columns = True,
486
- decimal = df.decimal,
487
- numeric_dec = to_numeric(df.decimal))
488
-
489
- decimal numeric_dec
490
- 0 00.77 .77
491
- 1 0.77 .77
492
- 2 0.7.7 None
493
- 3 .077 .077
494
-
495
- # converting comma (group separated) strings to numeric
496
- # Note that strings not following the format return None
497
- >>> df.assign(drop_columns = True,
498
- commas = df.commas,
499
- numeric_commas = to_numeric(df.commas, format_ = '9G99'))
500
-
501
- commas numeric_commas
502
- 0 08,8 None
503
- 1 0,88 88
504
- 2 ,088 None
505
- 3 088, None
506
-
507
- # converting hex strings to numeric
508
- >>> df.assign(drop_columns = True,
509
- hex = df.hex,
510
- numeric_hex = to_numeric(df.hex, format_ = 'XXXXXXXXXX'))
511
-
512
- hex numeric_hex
513
- 0 19FF 6655
514
- 1 abcd 43981
515
- 2 ABCDEFABCD 737894443981
516
- 3 2018 8216
517
-
518
- # converting literals to numeric
519
- >>> df.assign(drop_columns = True,
520
- a = to_numeric('123,456',format_ = '999,999'),
521
- b = to_numeric('1,333.555', format_ = '9,999D999'),
522
- c = to_numeric('2,333,2',format_ = '9G999G9'),
523
- d = to_numeric('3E20'),
524
- e = to_numeric('$41.99', format_ = 'L99.99'),
525
- f = to_numeric('$.12', format_ = 'L.99'),
526
- g = to_numeric('dollar123,456.00',
527
- format_ = 'L999G999D99',
528
- nls = {'param': 'currency', 'value': 'dollar'})).head(1)
529
-
530
- a b c d e f g
531
- 0 123456 1333.555 23332 300000000000000000000 41.99 .12 123456
532
-
533
- # For more information on format elements and parameters, see the Reference.
534
- """
535
-
536
- # validation
537
- if not isinstance(arg, str) and not isinstance(arg, ColumnExpression):
538
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('arg', "a string or DataFrame column of type CHAR or VARCHAR")
539
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
540
-
541
- expr = None
542
- if isinstance(arg, ColumnExpression):
543
- expr = arg.expression
544
- else:
545
- expr = literal(arg, type_ = VARCHAR(length = len(arg), charset = 'UNICODE'))
546
-
547
- # The only reason to use to_numeric with a numerically typed column is if downcast is used,
548
- # but those downcasted types are not supported (uint8, int8, float32)
549
- # TODO: Look into supporting downcasting if we implement the three downcasted types above
550
- if isinstance(expr.type, tuple(UtilFuncs()._get_numeric_datatypes())):
551
- return arg
552
-
553
- if not isinstance(expr.type, (VARCHAR, CHAR)):
554
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('arg', "a string or DataFrame column of type CHAR or VARCHAR")
555
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
556
-
557
- fmt = kw.get('format_', None)
558
- nls = kw.get('nls', None)
559
-
560
- if fmt is not None and not isinstance(fmt, str):
561
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('format_', "a string")
562
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
563
-
564
- if nls is not None and not isinstance(nls, dict):
565
- msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('nls', "a dict")
566
- raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
567
-
568
- # prepare for _to_number
569
- if fmt is not None:
570
- fmt = _as_varchar_literal(fmt)
571
-
572
- if nls is not None:
573
- if not (('param' in nls) and ('value' in nls)):
574
- msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(nls, 'nls', 'dict with "param" and "value" keys')
575
- raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
576
-
577
- if not isinstance(nls['param'], str) and not isinstance(nls['value'], str):
578
- msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(nls, 'nls', 'dict with "param" and "value" keys mapping to string values')
579
- raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
580
-
581
- nls_params = ('NUMERIC_CHARACTERS', 'CURRENCY', 'DUAL_CURRENCY', 'ISO_CURRENCY')
582
-
583
- if not nls['param'].upper() in nls_params:
584
- msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(nls['param'].upper(), "nls['param']", 'in {}'.format(nls_params))
585
- raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
586
-
587
- nls_param = nls['param'].upper()
588
- nls_value = _as_varchar_literal(nls['value'])
589
- nls = {'param': nls_param, 'value': nls_value}
590
-
591
- elif nls is not None:
592
- msg = Messages.get_message(MessageCodes.MISSING_ARGS).format('format_. format_ keyword must be specfied if the nls keyword is used')
593
- raise TeradataMlException(msg, MessageCodes.MISSING_ARGS)
594
-
595
- label = arg.name if isinstance(arg, ColumnExpression) else arg
596
- stmt = _to_number(expr, format_=fmt, nls=nls).label(label)
597
-
598
- return _SQLColumnExpression(stmt)
599
-
600
-
601
- class _to_number(expression.FunctionElement):
602
- """
603
- Internal class used for representing the TO_NUMBER function in the SQL Engine.
604
-
605
- """
606
- name = '_to_number'
607
- type = NUMBER()
608
-
609
- def __init__(self, arg, format_=None, nls=None, **kw):
610
- """
611
- See docstring for_to_numeric.
612
-
613
- Reference
614
- ---------
615
- Chapter 14: Data Type Conversion Functions
616
- Teradata® Database SQL Functions, Operators, Expressions, and
617
- Predicates, Release 16.20
618
-
619
- """
620
- args = [arg, format_]
621
- if nls is not None:
622
- args.append(nls['value'])
623
- self.nls_param = 'NLS_' + nls['param']
624
-
625
- args = (x for x in args if x is not None)
626
- super().__init__(*args)
627
-
628
- @compiles(_to_number)
629
- def _visit_to_number(element, compiler, **kw):
630
- """
631
- Compilation method for the _to_number function element class
632
-
633
- Parameters
634
- ----------
635
- element: A sqlalchemy ClauseElement instance
636
- compiler: A sqlalchemy.engine.interfaces.Compiled instance
637
-
638
- """
639
- col_exps = [compiler.process(exp, **kw) for exp in element.clauses]
640
-
641
- optional = ''
642
-
643
- # handle format
644
- if len(col_exps) >= 2:
645
- optional += ', {}'.format(col_exps[1])
646
-
647
- # handle nls
648
- if len(col_exps) >= 3:
649
- optional += ", '{} = '{}''".format(element.nls_param, col_exps[2])
650
-
651
- res = ('TO_NUMBER({x}{optional})').format(x = col_exps[0], optional = optional)
652
- return res
1
+ from functools import wraps
2
+
3
+ from teradataml.common.utils import UtilFuncs
4
+
5
+ from teradataml.common.exceptions import TeradataMlException
6
+ from teradataml.common.messages import Messages
7
+ from teradataml.common.messagecodes import MessageCodes
8
+ from sqlalchemy import func, literal
9
+ from sqlalchemy.ext.compiler import compiles
10
+ from sqlalchemy.sql import expression
11
+ from sqlalchemy.sql.elements import BinaryExpression, ColumnClause
12
+ from sqlalchemy.sql.expression import case as case_when
13
+
14
+ from .sql import _SQLColumnExpression, _resolve_value_to_type
15
+ from .sql_interfaces import ColumnExpression
16
+
17
+ from teradatasqlalchemy.dialect import preparer, dialect as td_dialect
18
+ from teradatasqlalchemy import (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT)
19
+ from teradatasqlalchemy import (CHAR, VARCHAR, CLOB, NUMBER)
20
+ from teradatasqlalchemy import (TIMESTAMP, DATE, TIME)
21
+
22
+ __all__ = ['translate', 'to_numeric']
23
+
24
+ def _as_varchar_literal(arg):
25
+ """
26
+ return a sqlalchemy literal
27
+
28
+ Parameters
29
+ ---------
30
+ arg: string literal
31
+
32
+ """
33
+ return literal(arg, type_ = VARCHAR(len(arg)))
34
+
35
+ # TODO: refactor this once more functions are created
36
+ #def _implementation(fn):
37
+ #
38
+ # """
39
+ # This decorator wraps sql functions that generate expressions
40
+ # that can be used in DataFrame and Series methods such as assign.
41
+ #
42
+ # The wrapper performs error checks as well as implements
43
+ # the kind of ColumnExpression instance to return
44
+ #
45
+ # Parameters
46
+ # ----------
47
+ # A function or method that generates sql.
48
+ # The function is from the sql_functions module.
49
+ #
50
+ # Examples
51
+ # --------
52
+ # @implementation
53
+ # def unicode_to_latin(x)
54
+ #
55
+ # """
56
+ # @wraps
57
+ # def inner(*args, **kw):
58
+ #
59
+ # res = fn(*args, **kw)
60
+ # return _SQLColumnExpression(res)
61
+ #
62
+ #
63
+ #@_implementation
64
+
65
+ def translate(x, source = 'UNICODE', target = 'LATIN'):
66
+ """
67
+ Returns a TRANSLATE(x USING source_TO_target) expression
68
+
69
+ PARAMETERS:
70
+ x: A ColumnExpression instance coming from the DataFrame
71
+ or output of other functions in sql_functions. A python
72
+ string literal may also be used.
73
+
74
+ source, target: str with values:
75
+ - 'UNICODE'
76
+ - 'LATIN'
77
+
78
+ REFERENCES:
79
+ Chapter 28: String Operators and Functions
80
+ Teradata® Database SQL Functions, Operators, Expressions, and
81
+ Predicates, Release 16.20
82
+
83
+ EXAMPLES:
84
+ >>> from teradataml.dataframe.sql_functions import translate
85
+
86
+ >>> df = DataFrame('df')
87
+ >>> tvshow = df['tvshow']
88
+
89
+ >>> res = df.assign(tvshow = translate(tvshow))
90
+ """
91
+
92
+ # error checking
93
+ if not isinstance(x, str) and not isinstance(x, ColumnExpression):
94
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('x', "a DataFrame column or string")
95
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
96
+
97
+ if not isinstance(source, str):
98
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('source', "a string")
99
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
100
+
101
+ if not isinstance(target, str):
102
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('target', "a string")
103
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
104
+
105
+ supported = ('UNICODE', 'LATIN')
106
+ if (source.upper() not in supported):
107
+ msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(source.upper(), 'source', "in {}".format(supported))
108
+ raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
109
+
110
+ if (target.upper() not in supported):
111
+ msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(target.upper(), 'target', "in {}".format(supported))
112
+ raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
113
+
114
+ # get the sqlalchemy expression
115
+ expr = None
116
+ if isinstance(x, ColumnExpression):
117
+ expr = x.expression
118
+
119
+ else:
120
+ expr = literal(x, type_ = VARCHAR(length = len(x), charset = 'UNICODE'))
121
+
122
+ if not isinstance(expr.type, (CHAR, VARCHAR, CLOB)):
123
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('x', "a DataFrame column of type CHAR, VARCHAR, or CLOB")
124
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
125
+
126
+ # get the result type
127
+ length, charset = expr.type.length, target
128
+ typ_ = CLOB(length, charset) if isinstance(expr.type, CLOB) else VARCHAR(length, charset)
129
+
130
+ # define an inner class to generate the sql expression
131
+ class _translate(expression.FunctionElement):
132
+ name = '_translate'
133
+ type = typ_
134
+
135
+ custom = source + '_TO_' + target
136
+ @compiles(_translate)
137
+ def default__translate(element, compiler, **kw):
138
+ column_expression = compiler.process(element.clauses, **kw)
139
+ return ('TRANSLATE({x} USING ' + custom + ')').format(x = column_expression)
140
+
141
+ return _SQLColumnExpression(_translate(expr.expression))
142
+
143
+ def case(whens, value=None, else_=None):
144
+ """
145
+ Returns a ColumnExpression based on the CASE expression.
146
+
147
+ PARAMETERS:
148
+ whens:
149
+ Required Argument.
150
+ Specifies the criteria to be compared against. It accepts two different forms,
151
+ based on whether or not the value argument is used.
152
+
153
+ In the first form, it accepts a list of 2-tuples; each 2-tuple consists of (<sql expression>, <value>),
154
+ where the <sql expression> is a boolean expression and “value” is a resulting value.
155
+ For example:
156
+
157
+ case([
158
+ (df.first_name == 'wendy', 'W'),
159
+ (df.first_name == 'jack', 'J')
160
+ ])
161
+
162
+ In the second form, it accepts a Python dictionary of comparison values mapped to a resulting value;
163
+ this form requires 'value' argument to be present, and values will be compared using the '==' operator.
164
+ For example:
165
+
166
+ case(
167
+ {"wendy": "W", "jack": "J"},
168
+ value=df.first_name
169
+ )
170
+
171
+ Types: List of 2-tuples or Dictionary of comparison value mapped to a resulting value.
172
+
173
+ value:
174
+ Optional Argument. Required when 'whens' is of dictionary type.
175
+ Specifies a SQL expression (ColumnExpression or literal) which will be used as a fixed “comparison point”
176
+ for candidate values within a dictionary passed to the 'whens' argument.
177
+ Types: ColumnExpression or SQL Expression (Python literal)
178
+
179
+ else_:
180
+ Optional Argument.
181
+ Specifies a SQL expression (ColumnExpression or literal) which will be the evaluated result of
182
+ the CASE construct if all expressions within 'whens' evaluate to False.
183
+ When omitted, will produce a result of NULL if none of the 'when' expressions evaluate to True.
184
+ Types: ColumnExpression or SQL Expression (Python literal)
185
+
186
+
187
+ RETURNS:
188
+ ColumnExpression
189
+
190
+
191
+ EXAMPLES:
192
+ >>> from teradataml.dataframe.sql_functions import case
193
+ >>> load_example_data("GLM", ["admissions_train"])
194
+ >>> df = DataFrame("admissions_train")
195
+ >>> print(df)
196
+ masters gpa stats programming admitted
197
+ id
198
+ 5 no 3.44 Novice Novice 0
199
+ 3 no 3.70 Novice Beginner 1
200
+ 1 yes 3.95 Beginner Beginner 0
201
+ 20 yes 3.90 Advanced Advanced 1
202
+ 8 no 3.60 Beginner Advanced 1
203
+ 25 no 3.96 Advanced Advanced 1
204
+ 18 yes 3.81 Advanced Advanced 1
205
+ 24 no 1.87 Advanced Novice 1
206
+ 26 yes 3.57 Advanced Advanced 1
207
+ 38 yes 2.65 Advanced Beginner 1
208
+ >>> print(df.shape)
209
+ (40, 6)
210
+
211
+ >>> # Example showing 'whens' passed a 2-tuple - assign rating based on GPA
212
+ >>> # gpa > 3.0 = 'good'
213
+ >>> # 2.0 < gpa <= 3.0 = 'average'
214
+ >>> # gpa <= 2.0 = 'bad'
215
+ >>> # Filtering all the 'good' scores only.
216
+ >>> good_df = df[case([(df.gpa > 3.0, 'good'),
217
+ (df.gpa > 2.0, 'average')],
218
+ else_='bad') == 'good']
219
+ >>> print(good_df)
220
+ masters gpa stats programming admitted
221
+ id
222
+ 13 no 4.00 Advanced Novice 1
223
+ 11 no 3.13 Advanced Advanced 1
224
+ 9 no 3.82 Advanced Advanced 1
225
+ 26 yes 3.57 Advanced Advanced 1
226
+ 3 no 3.70 Novice Beginner 1
227
+ 1 yes 3.95 Beginner Beginner 0
228
+ 20 yes 3.90 Advanced Advanced 1
229
+ 18 yes 3.81 Advanced Advanced 1
230
+ 5 no 3.44 Novice Novice 0
231
+ 32 yes 3.46 Advanced Beginner 0
232
+ >>> print(good_df.shape)
233
+ (35, 6)
234
+
235
+ >>> # Use DataFrame.assign() to create a new column with the rating
236
+ >>> whens_df = df.assign(rating = case([(df.gpa > 3.0, 'good'),
237
+ (df.gpa > 2.0, 'average')],
238
+ else_='bad'))
239
+ >>> print(whens_df)
240
+ masters gpa stats programming admitted rating
241
+ id
242
+ 5 no 3.44 Novice Novice 0 good
243
+ 3 no 3.70 Novice Beginner 1 good
244
+ 1 yes 3.95 Beginner Beginner 0 good
245
+ 20 yes 3.90 Advanced Advanced 1 good
246
+ 8 no 3.60 Beginner Advanced 1 good
247
+ 25 no 3.96 Advanced Advanced 1 good
248
+ 18 yes 3.81 Advanced Advanced 1 good
249
+ 24 no 1.87 Advanced Novice 1 bad
250
+ 26 yes 3.57 Advanced Advanced 1 good
251
+ 38 yes 2.65 Advanced Beginner 1 average
252
+ >>> print(whens_df.shape)
253
+ (40, 7)
254
+
255
+ >>> # Example not specifying 'else_'
256
+ >>> no_else = df.assign(rating = case([(df.gpa > 3.0, 'good')]))
257
+ >>> print(no_else)
258
+ masters gpa stats programming admitted rating
259
+ id
260
+ 5 no 3.44 Novice Novice 0 good
261
+ 3 no 3.70 Novice Beginner 1 good
262
+ 1 yes 3.95 Beginner Beginner 0 good
263
+ 20 yes 3.90 Advanced Advanced 1 good
264
+ 8 no 3.60 Beginner Advanced 1 good
265
+ 25 no 3.96 Advanced Advanced 1 good
266
+ 18 yes 3.81 Advanced Advanced 1 good
267
+ 24 no 1.87 Advanced Novice 1 None
268
+ 26 yes 3.57 Advanced Advanced 1 good
269
+ 38 yes 2.65 Advanced Beginner 1 None
270
+ >>> print(no_else.shape)
271
+ (40, 7)
272
+
273
+ >>> # Example showing 'whens' passed a dictionary along with 'value'
274
+ >>> whens_value_df = df.assign(admitted_text = case({ 1 : "admitted", 0 : "not admitted"},
275
+ value=df.admitted,
276
+ else_="don't know"))
277
+
278
+ >>> print(whens_value_df)
279
+ masters gpa stats programming admitted admitted_text
280
+ id
281
+ 13 no 4.00 Advanced Novice 1 admitted
282
+ 11 no 3.13 Advanced Advanced 1 admitted
283
+ 9 no 3.82 Advanced Advanced 1 admitted
284
+ 28 no 3.93 Advanced Advanced 1 admitted
285
+ 33 no 3.55 Novice Novice 1 admitted
286
+ 10 no 3.71 Advanced Advanced 1 admitted
287
+ 16 no 3.70 Advanced Advanced 1 admitted
288
+ 32 yes 3.46 Advanced Beginner 0 not admitted
289
+ 34 yes 3.85 Advanced Beginner 0 not admitted
290
+ 17 no 3.83 Advanced Advanced 1 admitted
291
+ >>> print(whens_value_df.shape)
292
+ (40, 7)
293
+
294
+ >>> # Example showing how you can decide on projecting a column based on the value of expression.
295
+ >>> # In this example, you end up projecting values from column 'average_rating' if 2.0 < gpa <= 3.0,
296
+ >>> # and the values from column 'good_rating' when gpa > 3.0, naming the column 'ga_rating'.
297
+
298
+ >>> from sqlalchemy.sql import literal_column
299
+ >>> whens_new_df = df.assign(good_rating = case([(df.gpa > 3.0, 'good')]))
300
+ >>> whens_new_df = whens_new_df.assign(avg_rating = case([((whens_new_df.gpa > 2.0) & (whens_new_df.gpa <= 3.0),
301
+ 'average')]))
302
+ >>> literal_df = whens_new_df.assign(ga_rating = case([(whens_new_df.gpa > 3.0, literal_column('good_rating')),
303
+ (whens_new_df.gpa > 2.0, literal_column('avg_rating'))]))
304
+ >>> print(literal_df)
305
+ masters gpa stats programming admitted good_rating avg_rating ga_rating
306
+ id
307
+ 5 no 3.44 Novice Novice 0 good None good
308
+ 3 no 3.70 Novice Beginner 1 good None good
309
+ 1 yes 3.95 Beginner Beginner 0 good None good
310
+ 20 yes 3.90 Advanced Advanced 1 good None good
311
+ 8 no 3.60 Beginner Advanced 1 good None good
312
+ 25 no 3.96 Advanced Advanced 1 good None good
313
+ 18 yes 3.81 Advanced Advanced 1 good None good
314
+ 24 no 1.87 Advanced Novice 1 None None None
315
+ 26 yes 3.57 Advanced Advanced 1 good None good
316
+ 38 yes 2.65 Advanced Beginner 1 None average average
317
+
318
+ """
319
+
320
+ # Variable contains_type stores the tdtypes
321
+ contains_type = set()
322
+ # Validations
323
+ new_whens = whens
324
+ # whens can be a dictionary, but requires values to be specified
325
+ if isinstance(whens, dict):
326
+ # Make sure values is passed and is of required type
327
+ if not value:
328
+ raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING, "value",
329
+ "whens of dictionary type"),
330
+ MessageCodes.DEPENDENT_ARG_MISSING)
331
+ # as whens can take value only as Python type, so first mapping the value of
332
+ # Python type to tdtypes and storing the tdtypes in contains_type
333
+ for _, values in whens.items():
334
+ contains_type.add(type(_resolve_value_to_type(values)))
335
+ # If it is a teradataml ColumnExpression, we need to pass the SQLAlchemy Column Expression
336
+ if isinstance(value, ColumnExpression):
337
+ value = value.expression
338
+
339
+ # whens can be a list of 2-tuples
340
+ elif isinstance(whens, list):
341
+ new_whens = []
342
+ # Make sure the list of tuples has _SQLColumnExpression as first element
343
+ for when in whens:
344
+ raise_err = True if (not isinstance(when, tuple) or len(when) != 2) else False
345
+ if raise_err or (not isinstance(when[0], ColumnExpression) and not isinstance(when[0], BinaryExpression)):
346
+ raise TeradataMlException(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE, 'whens',
347
+ "a list of 2-tuples with each tuple having a"
348
+ " boolean expression as the first element"),
349
+ MessageCodes.UNSUPPORTED_DATATYPE)
350
+
351
+ # If it is a teradataml ColumnExpression, we need to use the SQLAlchemy Column Expression
352
+ new_whens.append((when[0].expression if isinstance(when[0], ColumnExpression) else when[0],
353
+ when[1].expression if isinstance(when[1], ColumnExpression) else when[1]))
354
+ # If when[1] is a teradataml ColumnExpression type or when[1] is a literal_column then store
355
+ # the tdtypes in contains_type.
356
+ if isinstance(when[1], (ColumnExpression, ColumnClause)):
357
+ contains_type.add(type(when[1].type))
358
+ # If when[1] is of Python data type, so first mapping the value of
359
+ # Python type to tdtypes and storing the tdtypes in contains_type
360
+ else:
361
+ contains_type.add(type(_resolve_value_to_type(when[1])))
362
+
363
+ # values will be ignored by SQLAlchemy when 'whens' is a 2-tuple list.
364
+ # However, an issue was noticed with it when it was actually passed a value, which resulted in an
365
+ # incorrectly formed CASE statement. We forcefully set it to NULL.
366
+ if value is not None:
367
+ value = None
368
+ else:
369
+ raise TeradataMlException(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE, 'whens',
370
+ "a list of 2-tuples with each tuple having a"
371
+ " boolean expression as the first element"),
372
+ MessageCodes.UNSUPPORTED_DATATYPE)
373
+
374
+ # If it is a teradataml ColumnExpression, we need to use the SQLAlchemy Column Expression
375
+ # and storing the tdtypes of ColumnExpression in contains_type
376
+ if isinstance(else_, ColumnExpression):
377
+ else_ = else_.expression
378
+ contains_type.add(type(else_.type))
379
+ # If else_ is literal_column then store the tdtypes of literal_column used
380
+ elif isinstance(else_, ColumnClause):
381
+ contains_type.add(type(else_.type))
382
+ # if else_ is of python data type so first mapping the value of
383
+ # Python type to tdtypes and storing the tdtypes in contains_type
384
+ else:
385
+ contains_type.add(type(_resolve_value_to_type(else_)))
386
+
387
+ if isinstance(new_whens, dict):
388
+ output_case_when = case_when(new_whens, value=value, else_=else_)
389
+ else:
390
+ output_case_when = case_when(*new_whens, value=value, else_=else_)
391
+
392
+ # Here assigning the correct tdypes if there are multiple tdtypes present in case function
393
+ # according to below conditions and if contains_type doesnot contain any below condition
394
+ # we kept the type of output_case_when as it is(means type provided by case_when)
395
+ # If VARCHAR tdtypes present in case function assign column type to VARCHAR tdtypes
396
+ if VARCHAR in contains_type:
397
+ output_case_when.type = VARCHAR()
398
+ # If FLOAT tdypes present in case function assign column type to FLOAT tdtypes
399
+ elif FLOAT in contains_type:
400
+ output_case_when.type = FLOAT()
401
+ # If NUMBER tdypes present in case function assign column type to NUMBER tdtypes
402
+ elif NUMBER in contains_type:
403
+ output_case_when.type = NUMBER()
404
+ # If DECIMAL tdypes present in case function assign column type to DECIMAL tdtypes
405
+ elif DECIMAL in contains_type:
406
+ output_case_when.type = DECIMAL()
407
+ # If BIGINT tdypes present in case function assign column type to BIGINT tdtypes
408
+ elif BIGINT in contains_type:
409
+ output_case_when.type = BIGINT()
410
+ # If INTEGER tdypes present in case function assign column type to INTEGER tdtypes
411
+ elif INTEGER in contains_type:
412
+ output_case_when.type = INTEGER()
413
+ # If SMALLINT tdypes present in case function assign column type to SMALLINT tdtypes
414
+ elif SMALLINT in contains_type:
415
+ output_case_when.type = SMALLINT()
416
+ # If BYTEINT tdypes present in case function assign column type to BYTINT tdtypes
417
+ elif BYTEINT in contains_type:
418
+ output_case_when.type = BYTEINT()
419
+
420
+ return _SQLColumnExpression(output_case_when)
421
+
422
+ def to_numeric(arg, **kw):
423
+
424
+ """
425
+ Convert a string-like representation of a number to a Numeric type.
426
+
427
+ PARAMETERS:
428
+ arg: DataFrame column
429
+ kw: optional keyword arguments
430
+ format_: string. Specifies the format of a string-like number to convert to numeric
431
+ nls: dict where 'param' and 'value' are keys:
432
+
433
+ - param specifies one of the following string values:
434
+ -'CURRENCY', 'NUMERIC_CHARACTERS', 'DUAL_CURRENCY', 'ISO_CURRENCY'
435
+
436
+ - value: specifies characters that are returned by number format elements.
437
+ See References for more information
438
+
439
+ REFERENCES:
440
+ Chapter 14: Data Type Conversion Functions
441
+ Teradata® Database SQL Functions, Operators, Expressions, and
442
+ Predicates, Release 16.20
443
+
444
+
445
+ RETURNS:
446
+ A DataFrame column of numeric type
447
+
448
+ NOTES:
449
+ - If the arg column input is a numeric type, it is returned as is
450
+ - Nulls may be introduced in the result if the parsing fails
451
+ - You may need to strip() columns that have leading or trailing spaces
452
+ in order for to_numeric to parse correctly
453
+
454
+ EXAMPLES:
455
+
456
+ >>> df = DataFrame('numeric_strings')
457
+
458
+ hex decimal commas numbers
459
+ 0 19FF 00.77 08,8 1
460
+ 1 abcd 0.77 0,88 1
461
+ 2 ABCDEFABCD 0.7.7 ,088 999
462
+ 3 2018 .077 088, 0
463
+
464
+ >>> df.dtypes
465
+
466
+ hex str
467
+ decimal str
468
+ commas str
469
+ numbers str
470
+
471
+ # converting string numbers to numeric
472
+ >>> df.assign(drop_columns = True,
473
+ numbers = df.numbers,
474
+ numeric = to_numeric(df.numbers))
475
+
476
+ numbers numeric
477
+ 0 1 1
478
+ 1 1 1
479
+ 2 999 999
480
+ 3 0 0
481
+
482
+
483
+ # converting decimal-like strings to numeric
484
+ # Note that strings not following the format return None
485
+ >>> df.assign(drop_columns = True,
486
+ decimal = df.decimal,
487
+ numeric_dec = to_numeric(df.decimal))
488
+
489
+ decimal numeric_dec
490
+ 0 00.77 .77
491
+ 1 0.77 .77
492
+ 2 0.7.7 None
493
+ 3 .077 .077
494
+
495
+ # converting comma (group separated) strings to numeric
496
+ # Note that strings not following the format return None
497
+ >>> df.assign(drop_columns = True,
498
+ commas = df.commas,
499
+ numeric_commas = to_numeric(df.commas, format_ = '9G99'))
500
+
501
+ commas numeric_commas
502
+ 0 08,8 None
503
+ 1 0,88 88
504
+ 2 ,088 None
505
+ 3 088, None
506
+
507
+ # converting hex strings to numeric
508
+ >>> df.assign(drop_columns = True,
509
+ hex = df.hex,
510
+ numeric_hex = to_numeric(df.hex, format_ = 'XXXXXXXXXX'))
511
+
512
+ hex numeric_hex
513
+ 0 19FF 6655
514
+ 1 abcd 43981
515
+ 2 ABCDEFABCD 737894443981
516
+ 3 2018 8216
517
+
518
+ # converting literals to numeric
519
+ >>> df.assign(drop_columns = True,
520
+ a = to_numeric('123,456',format_ = '999,999'),
521
+ b = to_numeric('1,333.555', format_ = '9,999D999'),
522
+ c = to_numeric('2,333,2',format_ = '9G999G9'),
523
+ d = to_numeric('3E20'),
524
+ e = to_numeric('$41.99', format_ = 'L99.99'),
525
+ f = to_numeric('$.12', format_ = 'L.99'),
526
+ g = to_numeric('dollar123,456.00',
527
+ format_ = 'L999G999D99',
528
+ nls = {'param': 'currency', 'value': 'dollar'})).head(1)
529
+
530
+ a b c d e f g
531
+ 0 123456 1333.555 23332 300000000000000000000 41.99 .12 123456
532
+
533
+ # For more information on format elements and parameters, see the Reference.
534
+ """
535
+
536
+ # validation
537
+ if not isinstance(arg, str) and not isinstance(arg, ColumnExpression):
538
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('arg', "a string or DataFrame column of type CHAR or VARCHAR")
539
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
540
+
541
+ expr = None
542
+ if isinstance(arg, ColumnExpression):
543
+ expr = arg.expression
544
+ else:
545
+ expr = literal(arg, type_ = VARCHAR(length = len(arg), charset = 'UNICODE'))
546
+
547
+ # The only reason to use to_numeric with a numerically typed column is if downcast is used,
548
+ # but those downcasted types are not supported (uint8, int8, float32)
549
+ # TODO: Look into supporting downcasting if we implement the three downcasted types above
550
+ if isinstance(expr.type, tuple(UtilFuncs()._get_numeric_datatypes())):
551
+ return arg
552
+
553
+ if not isinstance(expr.type, (VARCHAR, CHAR)):
554
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('arg', "a string or DataFrame column of type CHAR or VARCHAR")
555
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
556
+
557
+ fmt = kw.get('format_', None)
558
+ nls = kw.get('nls', None)
559
+
560
+ if fmt is not None and not isinstance(fmt, str):
561
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('format_', "a string")
562
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
563
+
564
+ if nls is not None and not isinstance(nls, dict):
565
+ msg = Messages.get_message(MessageCodes.TDMLDF_UNKNOWN_TYPE).format('nls', "a dict")
566
+ raise TeradataMlException(msg, MessageCodes.TDMLDF_UNKNOWN_TYPE)
567
+
568
+ # prepare for _to_number
569
+ if fmt is not None:
570
+ fmt = _as_varchar_literal(fmt)
571
+
572
+ if nls is not None:
573
+ if not (('param' in nls) and ('value' in nls)):
574
+ msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(nls, 'nls', 'dict with "param" and "value" keys')
575
+ raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
576
+
577
+ if not isinstance(nls['param'], str) and not isinstance(nls['value'], str):
578
+ msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(nls, 'nls', 'dict with "param" and "value" keys mapping to string values')
579
+ raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
580
+
581
+ nls_params = ('NUMERIC_CHARACTERS', 'CURRENCY', 'DUAL_CURRENCY', 'ISO_CURRENCY')
582
+
583
+ if not nls['param'].upper() in nls_params:
584
+ msg = Messages.get_message(MessageCodes.INVALID_ARG_VALUE).format(nls['param'].upper(), "nls['param']", 'in {}'.format(nls_params))
585
+ raise TeradataMlException(msg, MessageCodes.INVALID_ARG_VALUE)
586
+
587
+ nls_param = nls['param'].upper()
588
+ nls_value = _as_varchar_literal(nls['value'])
589
+ nls = {'param': nls_param, 'value': nls_value}
590
+
591
+ elif nls is not None:
592
+ msg = Messages.get_message(MessageCodes.MISSING_ARGS).format('format_. format_ keyword must be specfied if the nls keyword is used')
593
+ raise TeradataMlException(msg, MessageCodes.MISSING_ARGS)
594
+
595
+ label = arg.name if isinstance(arg, ColumnExpression) else arg
596
+ stmt = _to_number(expr, format_=fmt, nls=nls).label(label)
597
+
598
+ return _SQLColumnExpression(stmt)
599
+
600
+
601
+ class _to_number(expression.FunctionElement):
602
+ """
603
+ Internal class used for representing the TO_NUMBER function in the SQL Engine.
604
+
605
+ """
606
+ name = '_to_number'
607
+ type = NUMBER()
608
+
609
+ def __init__(self, arg, format_=None, nls=None, **kw):
610
+ """
611
+ See docstring for_to_numeric.
612
+
613
+ Reference
614
+ ---------
615
+ Chapter 14: Data Type Conversion Functions
616
+ Teradata® Database SQL Functions, Operators, Expressions, and
617
+ Predicates, Release 16.20
618
+
619
+ """
620
+ args = [arg, format_]
621
+ if nls is not None:
622
+ args.append(nls['value'])
623
+ self.nls_param = 'NLS_' + nls['param']
624
+
625
+ args = (x for x in args if x is not None)
626
+ super().__init__(*args)
627
+
628
+ @compiles(_to_number)
629
+ def _visit_to_number(element, compiler, **kw):
630
+ """
631
+ Compilation method for the _to_number function element class
632
+
633
+ Parameters
634
+ ----------
635
+ element: A sqlalchemy ClauseElement instance
636
+ compiler: A sqlalchemy.engine.interfaces.Compiled instance
637
+
638
+ """
639
+ col_exps = [compiler.process(exp, **kw) for exp in element.clauses]
640
+
641
+ optional = ''
642
+
643
+ # handle format
644
+ if len(col_exps) >= 2:
645
+ optional += ', {}'.format(col_exps[1])
646
+
647
+ # handle nls
648
+ if len(col_exps) >= 3:
649
+ optional += ", '{} = '{}''".format(element.nls_param, col_exps[2])
650
+
651
+ res = ('TO_NUMBER({x}{optional})').format(x = col_exps[0], optional = optional)
652
+ return res