teradataml 17.20.0.7__py3-none-any.whl → 20.0.0.1__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 (1303) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +1935 -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 +2040 -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 +798 -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 +1683 -0
  29. teradataml/automl/custom_json_utils.py +1270 -0
  30. teradataml/automl/data_preparation.py +1011 -0
  31. teradataml/automl/data_transformation.py +789 -0
  32. teradataml/automl/feature_engineering.py +1580 -0
  33. teradataml/automl/feature_exploration.py +554 -0
  34. teradataml/automl/model_evaluation.py +151 -0
  35. teradataml/automl/model_training.py +1026 -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/auth_client.py +133 -0
  41. teradataml/clients/pkce_client.py +481 -481
  42. teradataml/common/aed_utils.py +7 -2
  43. teradataml/common/bulk_exposed_utils.py +111 -111
  44. teradataml/common/constants.py +1438 -1441
  45. teradataml/common/deprecations.py +160 -0
  46. teradataml/common/exceptions.py +73 -73
  47. teradataml/common/formula.py +742 -742
  48. teradataml/common/garbagecollector.py +597 -635
  49. teradataml/common/messagecodes.py +424 -431
  50. teradataml/common/messages.py +228 -231
  51. teradataml/common/sqlbundle.py +693 -693
  52. teradataml/common/td_coltype_code_to_tdtype.py +48 -48
  53. teradataml/common/utils.py +2424 -2500
  54. teradataml/common/warnings.py +25 -25
  55. teradataml/common/wrapper_utils.py +1 -110
  56. teradataml/config/dummy_file1.cfg +4 -4
  57. teradataml/config/dummy_file2.cfg +2 -2
  58. teradataml/config/sqlengine_alias_definitions_v1.0 +13 -13
  59. teradataml/config/sqlengine_alias_definitions_v1.1 +19 -19
  60. teradataml/config/sqlengine_alias_definitions_v1.3 +18 -18
  61. teradataml/context/aed_context.py +217 -217
  62. teradataml/context/context.py +1091 -999
  63. teradataml/data/A_loan.csv +19 -19
  64. teradataml/data/BINARY_REALS_LEFT.csv +11 -11
  65. teradataml/data/BINARY_REALS_RIGHT.csv +11 -11
  66. teradataml/data/B_loan.csv +49 -49
  67. teradataml/data/BuoyData2.csv +17 -17
  68. teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -5
  69. teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -5
  70. teradataml/data/Convolve2RealsLeft.csv +5 -5
  71. teradataml/data/Convolve2RealsRight.csv +5 -5
  72. teradataml/data/Convolve2ValidLeft.csv +11 -11
  73. teradataml/data/Convolve2ValidRight.csv +11 -11
  74. teradataml/data/DFFTConv_Real_8_8.csv +65 -65
  75. teradataml/data/Orders1_12mf.csv +24 -24
  76. teradataml/data/Pi_loan.csv +7 -7
  77. teradataml/data/SMOOTHED_DATA.csv +7 -7
  78. teradataml/data/TestDFFT8.csv +9 -9
  79. teradataml/data/TestRiver.csv +109 -109
  80. teradataml/data/Traindata.csv +28 -28
  81. teradataml/data/acf.csv +17 -17
  82. teradataml/data/adaboost_example.json +34 -34
  83. teradataml/data/adaboostpredict_example.json +24 -24
  84. teradataml/data/additional_table.csv +10 -10
  85. teradataml/data/admissions_test.csv +21 -21
  86. teradataml/data/admissions_train.csv +41 -41
  87. teradataml/data/admissions_train_nulls.csv +41 -41
  88. teradataml/data/advertising.csv +201 -0
  89. teradataml/data/ageandheight.csv +13 -13
  90. teradataml/data/ageandpressure.csv +31 -31
  91. teradataml/data/antiselect_example.json +36 -36
  92. teradataml/data/antiselect_input.csv +8 -8
  93. teradataml/data/antiselect_input_mixed_case.csv +8 -8
  94. teradataml/data/applicant_external.csv +6 -6
  95. teradataml/data/applicant_reference.csv +6 -6
  96. teradataml/data/arima_example.json +9 -9
  97. teradataml/data/assortedtext_input.csv +8 -8
  98. teradataml/data/attribution_example.json +33 -33
  99. teradataml/data/attribution_sample_table.csv +27 -27
  100. teradataml/data/attribution_sample_table1.csv +6 -6
  101. teradataml/data/attribution_sample_table2.csv +11 -11
  102. teradataml/data/bank_churn.csv +10001 -0
  103. teradataml/data/bank_marketing.csv +11163 -0
  104. teradataml/data/bank_web_clicks1.csv +42 -42
  105. teradataml/data/bank_web_clicks2.csv +91 -91
  106. teradataml/data/bank_web_url.csv +85 -85
  107. teradataml/data/barrier.csv +2 -2
  108. teradataml/data/barrier_new.csv +3 -3
  109. teradataml/data/betweenness_example.json +13 -13
  110. teradataml/data/bike_sharing.csv +732 -0
  111. teradataml/data/bin_breaks.csv +8 -8
  112. teradataml/data/bin_fit_ip.csv +3 -3
  113. teradataml/data/binary_complex_left.csv +11 -11
  114. teradataml/data/binary_complex_right.csv +11 -11
  115. teradataml/data/binary_matrix_complex_left.csv +21 -21
  116. teradataml/data/binary_matrix_complex_right.csv +21 -21
  117. teradataml/data/binary_matrix_real_left.csv +21 -21
  118. teradataml/data/binary_matrix_real_right.csv +21 -21
  119. teradataml/data/blood2ageandweight.csv +26 -26
  120. teradataml/data/bmi.csv +501 -0
  121. teradataml/data/boston.csv +507 -507
  122. teradataml/data/boston2cols.csv +721 -0
  123. teradataml/data/breast_cancer.csv +570 -0
  124. teradataml/data/buoydata_mix.csv +11 -11
  125. teradataml/data/burst_data.csv +5 -5
  126. teradataml/data/burst_example.json +20 -20
  127. teradataml/data/byom_example.json +17 -17
  128. teradataml/data/bytes_table.csv +3 -3
  129. teradataml/data/cal_housing_ex_raw.csv +70 -70
  130. teradataml/data/callers.csv +7 -7
  131. teradataml/data/calls.csv +10 -10
  132. teradataml/data/cars_hist.csv +33 -33
  133. teradataml/data/cat_table.csv +24 -24
  134. teradataml/data/ccm_example.json +31 -31
  135. teradataml/data/ccm_input.csv +91 -91
  136. teradataml/data/ccm_input2.csv +13 -13
  137. teradataml/data/ccmexample.csv +101 -101
  138. teradataml/data/ccmprepare_example.json +8 -8
  139. teradataml/data/ccmprepare_input.csv +91 -91
  140. teradataml/data/cfilter_example.json +12 -12
  141. teradataml/data/changepointdetection_example.json +18 -18
  142. teradataml/data/changepointdetectionrt_example.json +8 -8
  143. teradataml/data/chi_sq.csv +2 -2
  144. teradataml/data/churn_data.csv +14 -14
  145. teradataml/data/churn_emission.csv +35 -35
  146. teradataml/data/churn_initial.csv +3 -3
  147. teradataml/data/churn_state_transition.csv +5 -5
  148. teradataml/data/citedges_2.csv +745 -745
  149. teradataml/data/citvertices_2.csv +1210 -1210
  150. teradataml/data/clicks2.csv +16 -16
  151. teradataml/data/clickstream.csv +12 -12
  152. teradataml/data/clickstream1.csv +11 -11
  153. teradataml/data/closeness_example.json +15 -15
  154. teradataml/data/complaints.csv +21 -21
  155. teradataml/data/complaints_mini.csv +3 -3
  156. teradataml/data/complaints_testtoken.csv +224 -224
  157. teradataml/data/complaints_tokens_test.csv +353 -353
  158. teradataml/data/complaints_traintoken.csv +472 -472
  159. teradataml/data/computers_category.csv +1001 -1001
  160. teradataml/data/computers_test1.csv +1252 -1252
  161. teradataml/data/computers_train1.csv +5009 -5009
  162. teradataml/data/computers_train1_clustered.csv +5009 -5009
  163. teradataml/data/confusionmatrix_example.json +9 -9
  164. teradataml/data/conversion_event_table.csv +3 -3
  165. teradataml/data/corr_input.csv +17 -17
  166. teradataml/data/correlation_example.json +11 -11
  167. teradataml/data/coxhazardratio_example.json +39 -39
  168. teradataml/data/coxph_example.json +15 -15
  169. teradataml/data/coxsurvival_example.json +28 -28
  170. teradataml/data/cpt.csv +41 -41
  171. teradataml/data/credit_ex_merged.csv +45 -45
  172. teradataml/data/customer_loyalty.csv +301 -301
  173. teradataml/data/customer_loyalty_newseq.csv +31 -31
  174. teradataml/data/customer_segmentation_test.csv +2628 -0
  175. teradataml/data/customer_segmentation_train.csv +8069 -0
  176. teradataml/data/dataframe_example.json +146 -146
  177. teradataml/data/decisionforest_example.json +37 -37
  178. teradataml/data/decisionforestpredict_example.json +38 -38
  179. teradataml/data/decisiontree_example.json +21 -21
  180. teradataml/data/decisiontreepredict_example.json +45 -45
  181. teradataml/data/dfft2_size4_real.csv +17 -17
  182. teradataml/data/dfft2_test_matrix16.csv +17 -17
  183. teradataml/data/dfft2conv_real_4_4.csv +65 -65
  184. teradataml/data/diabetes.csv +443 -443
  185. teradataml/data/diabetes_test.csv +89 -89
  186. teradataml/data/dict_table.csv +5 -5
  187. teradataml/data/docperterm_table.csv +4 -4
  188. teradataml/data/docs/__init__.py +1 -1
  189. teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -180
  190. teradataml/data/docs/byom/docs/DataikuPredict.py +177 -177
  191. teradataml/data/docs/byom/docs/H2OPredict.py +324 -324
  192. teradataml/data/docs/byom/docs/ONNXPredict.py +283 -283
  193. teradataml/data/docs/byom/docs/PMMLPredict.py +277 -277
  194. teradataml/data/docs/sqle/docs_17_10/Antiselect.py +82 -82
  195. teradataml/data/docs/sqle/docs_17_10/Attribution.py +199 -199
  196. teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +171 -171
  197. teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -130
  198. teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -86
  199. teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -90
  200. teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +85 -85
  201. teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +95 -95
  202. teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -139
  203. teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +151 -151
  204. teradataml/data/docs/sqle/docs_17_10/FTest.py +160 -160
  205. teradataml/data/docs/sqle/docs_17_10/FillRowId.py +82 -82
  206. teradataml/data/docs/sqle/docs_17_10/Fit.py +87 -87
  207. teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -144
  208. teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +84 -84
  209. teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +81 -81
  210. teradataml/data/docs/sqle/docs_17_10/Histogram.py +164 -164
  211. teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -134
  212. teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +208 -208
  213. teradataml/data/docs/sqle/docs_17_10/NPath.py +265 -265
  214. teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -116
  215. teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -176
  216. teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -147
  217. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +134 -132
  218. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -103
  219. teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +165 -165
  220. teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -101
  221. teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -128
  222. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +111 -111
  223. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -102
  224. teradataml/data/docs/sqle/docs_17_10/QQNorm.py +104 -104
  225. teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +109 -109
  226. teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +117 -117
  227. teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -98
  228. teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +152 -152
  229. teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -197
  230. teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -98
  231. teradataml/data/docs/sqle/docs_17_10/Sessionize.py +113 -113
  232. teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -116
  233. teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -98
  234. teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -187
  235. teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +145 -145
  236. teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -104
  237. teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +141 -141
  238. teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -214
  239. teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -83
  240. teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -83
  241. teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -155
  242. teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -126
  243. teradataml/data/docs/sqle/docs_17_20/Antiselect.py +82 -82
  244. teradataml/data/docs/sqle/docs_17_20/Attribution.py +200 -200
  245. teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +171 -171
  246. teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -138
  247. teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -86
  248. teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -90
  249. teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -166
  250. teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +85 -85
  251. teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +245 -243
  252. teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -113
  253. teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +279 -279
  254. teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -144
  255. teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +135 -135
  256. teradataml/data/docs/sqle/docs_17_20/FTest.py +239 -160
  257. teradataml/data/docs/sqle/docs_17_20/FillRowId.py +82 -82
  258. teradataml/data/docs/sqle/docs_17_20/Fit.py +87 -87
  259. teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -380
  260. teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +414 -414
  261. teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -144
  262. teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -234
  263. teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -123
  264. teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +108 -108
  265. teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +105 -105
  266. teradataml/data/docs/sqle/docs_17_20/Histogram.py +223 -223
  267. teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -204
  268. teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -143
  269. teradataml/data/docs/sqle/docs_17_20/KNN.py +214 -214
  270. teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -134
  271. teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +208 -208
  272. teradataml/data/docs/sqle/docs_17_20/NPath.py +265 -265
  273. teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -116
  274. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -176
  275. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +126 -126
  276. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +118 -117
  277. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -112
  278. teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -147
  279. teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -307
  280. teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -184
  281. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +230 -225
  282. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -115
  283. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +219 -219
  284. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -127
  285. teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +189 -189
  286. teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -112
  287. teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -128
  288. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +111 -111
  289. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -111
  290. teradataml/data/docs/sqle/docs_17_20/QQNorm.py +104 -104
  291. teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -163
  292. teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +154 -154
  293. teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -106
  294. teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -120
  295. teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -211
  296. teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +108 -108
  297. teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +117 -117
  298. teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -110
  299. teradataml/data/docs/sqle/docs_17_20/SVM.py +413 -413
  300. teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -202
  301. teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +152 -152
  302. teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -197
  303. teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -109
  304. teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -206
  305. teradataml/data/docs/sqle/docs_17_20/Sessionize.py +113 -113
  306. teradataml/data/docs/sqle/docs_17_20/Silhouette.py +152 -152
  307. teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -116
  308. teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -108
  309. teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -187
  310. teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +145 -145
  311. teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -207
  312. teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -171
  313. teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +266 -266
  314. teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -140
  315. teradataml/data/docs/sqle/docs_17_20/TextParser.py +172 -172
  316. teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +159 -159
  317. teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -123
  318. teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +141 -141
  319. teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -214
  320. teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +168 -168
  321. teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -83
  322. teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -83
  323. teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +236 -236
  324. teradataml/data/docs/sqle/docs_17_20/XGBoost.py +361 -353
  325. teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -275
  326. teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -155
  327. teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +429 -429
  328. teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +429 -429
  329. teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +347 -347
  330. teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +428 -428
  331. teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +347 -347
  332. teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +439 -439
  333. teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +386 -386
  334. teradataml/data/docs/uaf/docs_17_20/ACF.py +195 -195
  335. teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +369 -369
  336. teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +142 -142
  337. teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +159 -159
  338. teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +247 -247
  339. teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -252
  340. teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +177 -177
  341. teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +174 -174
  342. teradataml/data/docs/uaf/docs_17_20/Convolve.py +226 -226
  343. teradataml/data/docs/uaf/docs_17_20/Convolve2.py +214 -214
  344. teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +183 -183
  345. teradataml/data/docs/uaf/docs_17_20/DFFT.py +203 -203
  346. teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -216
  347. teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +215 -215
  348. teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +191 -191
  349. teradataml/data/docs/uaf/docs_17_20/DTW.py +179 -179
  350. teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +144 -144
  351. teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +183 -183
  352. teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +184 -184
  353. teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -172
  354. teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +205 -205
  355. teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +142 -142
  356. teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +258 -258
  357. teradataml/data/docs/uaf/docs_17_20/IDFFT.py +164 -164
  358. teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +198 -198
  359. teradataml/data/docs/uaf/docs_17_20/InputValidator.py +120 -120
  360. teradataml/data/docs/uaf/docs_17_20/LineSpec.py +155 -155
  361. teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +214 -214
  362. teradataml/data/docs/uaf/docs_17_20/MAMean.py +173 -173
  363. teradataml/data/docs/uaf/docs_17_20/MInfo.py +133 -133
  364. teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +135 -135
  365. teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +190 -190
  366. teradataml/data/docs/uaf/docs_17_20/PACF.py +158 -158
  367. teradataml/data/docs/uaf/docs_17_20/Portman.py +216 -216
  368. teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +154 -154
  369. teradataml/data/docs/uaf/docs_17_20/Resample.py +228 -228
  370. teradataml/data/docs/uaf/docs_17_20/SInfo.py +122 -122
  371. teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +165 -165
  372. teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +173 -173
  373. teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +170 -170
  374. teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +163 -163
  375. teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +179 -179
  376. teradataml/data/docs/uaf/docs_17_20/Smoothma.py +207 -207
  377. teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +150 -150
  378. teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -171
  379. teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +201 -201
  380. teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +169 -169
  381. teradataml/data/dtw_example.json +17 -17
  382. teradataml/data/dtw_t1.csv +11 -11
  383. teradataml/data/dtw_t2.csv +4 -4
  384. teradataml/data/dwt2d_example.json +15 -15
  385. teradataml/data/dwt_example.json +14 -14
  386. teradataml/data/dwt_filter_dim.csv +5 -5
  387. teradataml/data/emission.csv +9 -9
  388. teradataml/data/emp_table_by_dept.csv +19 -19
  389. teradataml/data/employee_info.csv +4 -4
  390. teradataml/data/employee_table.csv +6 -6
  391. teradataml/data/excluding_event_table.csv +2 -2
  392. teradataml/data/finance_data.csv +6 -6
  393. teradataml/data/finance_data2.csv +61 -61
  394. teradataml/data/finance_data3.csv +93 -93
  395. teradataml/data/fish.csv +160 -0
  396. teradataml/data/fm_blood2ageandweight.csv +26 -26
  397. teradataml/data/fmeasure_example.json +11 -11
  398. teradataml/data/followers_leaders.csv +10 -10
  399. teradataml/data/fpgrowth_example.json +12 -12
  400. teradataml/data/frequentpaths_example.json +29 -29
  401. teradataml/data/friends.csv +9 -9
  402. teradataml/data/fs_input.csv +33 -33
  403. teradataml/data/fs_input1.csv +33 -33
  404. teradataml/data/genData.csv +513 -513
  405. teradataml/data/geodataframe_example.json +39 -39
  406. teradataml/data/glass_types.csv +215 -0
  407. teradataml/data/glm_admissions_model.csv +12 -12
  408. teradataml/data/glm_example.json +56 -29
  409. teradataml/data/glml1l2_example.json +28 -28
  410. teradataml/data/glml1l2predict_example.json +54 -54
  411. teradataml/data/glmpredict_example.json +54 -54
  412. teradataml/data/gq_t1.csv +21 -21
  413. teradataml/data/hconvolve_complex_right.csv +5 -5
  414. teradataml/data/hconvolve_complex_rightmulti.csv +5 -5
  415. teradataml/data/histogram_example.json +11 -11
  416. teradataml/data/hmmdecoder_example.json +78 -78
  417. teradataml/data/hmmevaluator_example.json +24 -24
  418. teradataml/data/hmmsupervised_example.json +10 -10
  419. teradataml/data/hmmunsupervised_example.json +7 -7
  420. teradataml/data/house_values.csv +12 -12
  421. teradataml/data/house_values2.csv +13 -13
  422. teradataml/data/housing_cat.csv +7 -7
  423. teradataml/data/housing_data.csv +9 -9
  424. teradataml/data/housing_test.csv +47 -47
  425. teradataml/data/housing_test_binary.csv +47 -47
  426. teradataml/data/housing_train.csv +493 -493
  427. teradataml/data/housing_train_attribute.csv +4 -4
  428. teradataml/data/housing_train_binary.csv +437 -437
  429. teradataml/data/housing_train_parameter.csv +2 -2
  430. teradataml/data/housing_train_response.csv +493 -493
  431. teradataml/data/housing_train_segment.csv +201 -0
  432. teradataml/data/ibm_stock.csv +370 -370
  433. teradataml/data/ibm_stock1.csv +370 -370
  434. teradataml/data/identitymatch_example.json +21 -21
  435. teradataml/data/idf_table.csv +4 -4
  436. teradataml/data/impressions.csv +101 -101
  437. teradataml/data/inflation.csv +21 -21
  438. teradataml/data/initial.csv +3 -3
  439. teradataml/data/insect2Cols.csv +61 -0
  440. teradataml/data/insect_sprays.csv +12 -12
  441. teradataml/data/insurance.csv +1339 -1339
  442. teradataml/data/interpolator_example.json +12 -12
  443. teradataml/data/iris_altinput.csv +481 -481
  444. teradataml/data/iris_attribute_output.csv +8 -8
  445. teradataml/data/iris_attribute_test.csv +121 -121
  446. teradataml/data/iris_attribute_train.csv +481 -481
  447. teradataml/data/iris_category_expect_predict.csv +31 -31
  448. teradataml/data/iris_data.csv +151 -0
  449. teradataml/data/iris_input.csv +151 -151
  450. teradataml/data/iris_response_train.csv +121 -121
  451. teradataml/data/iris_test.csv +31 -31
  452. teradataml/data/iris_train.csv +121 -121
  453. teradataml/data/join_table1.csv +4 -4
  454. teradataml/data/join_table2.csv +4 -4
  455. teradataml/data/jsons/anly_function_name.json +6 -6
  456. teradataml/data/jsons/byom/dataikupredict.json +147 -147
  457. teradataml/data/jsons/byom/datarobotpredict.json +146 -146
  458. teradataml/data/jsons/byom/h2opredict.json +194 -194
  459. teradataml/data/jsons/byom/onnxpredict.json +186 -186
  460. teradataml/data/jsons/byom/pmmlpredict.json +146 -146
  461. teradataml/data/jsons/paired_functions.json +435 -435
  462. teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -56
  463. teradataml/data/jsons/sqle/16.20/Attribution.json +249 -249
  464. teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -156
  465. teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -170
  466. teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -122
  467. teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -367
  468. teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -239
  469. teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -136
  470. teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -235
  471. teradataml/data/jsons/sqle/16.20/Pack.json +98 -98
  472. teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -162
  473. teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -105
  474. teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -86
  475. teradataml/data/jsons/sqle/16.20/Unpack.json +166 -166
  476. teradataml/data/jsons/sqle/16.20/nPath.json +269 -269
  477. teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -56
  478. teradataml/data/jsons/sqle/17.00/Attribution.json +249 -249
  479. teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -156
  480. teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -170
  481. teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -122
  482. teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -367
  483. teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -239
  484. teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -136
  485. teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -235
  486. teradataml/data/jsons/sqle/17.00/Pack.json +98 -98
  487. teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -162
  488. teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -105
  489. teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -86
  490. teradataml/data/jsons/sqle/17.00/Unpack.json +166 -166
  491. teradataml/data/jsons/sqle/17.00/nPath.json +269 -269
  492. teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -56
  493. teradataml/data/jsons/sqle/17.05/Attribution.json +249 -249
  494. teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -156
  495. teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -170
  496. teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -122
  497. teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -367
  498. teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -239
  499. teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -136
  500. teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -235
  501. teradataml/data/jsons/sqle/17.05/Pack.json +98 -98
  502. teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -162
  503. teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -105
  504. teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -86
  505. teradataml/data/jsons/sqle/17.05/Unpack.json +166 -166
  506. teradataml/data/jsons/sqle/17.05/nPath.json +269 -269
  507. teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -56
  508. teradataml/data/jsons/sqle/17.10/Attribution.json +249 -249
  509. teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -185
  510. teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +171 -171
  511. teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -151
  512. teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -368
  513. teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -239
  514. teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -149
  515. teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -288
  516. teradataml/data/jsons/sqle/17.10/Pack.json +133 -133
  517. teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -193
  518. teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -105
  519. teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -86
  520. teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -239
  521. teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -70
  522. teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +53 -53
  523. teradataml/data/jsons/sqle/17.10/TD_Chisq.json +67 -67
  524. teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +53 -53
  525. teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +68 -68
  526. teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -187
  527. teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +51 -51
  528. teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -46
  529. teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -71
  530. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +52 -52
  531. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +52 -52
  532. teradataml/data/jsons/sqle/17.10/TD_Histogram.json +132 -132
  533. teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -147
  534. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +182 -182
  535. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +65 -64
  536. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +196 -196
  537. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -47
  538. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -114
  539. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -71
  540. teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +111 -111
  541. teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -93
  542. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +127 -127
  543. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +70 -69
  544. teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +156 -156
  545. teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +70 -69
  546. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +147 -147
  547. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -47
  548. teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -240
  549. teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +118 -118
  550. teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +52 -52
  551. teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +52 -52
  552. teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -171
  553. teradataml/data/jsons/sqle/17.10/Unpack.json +188 -188
  554. teradataml/data/jsons/sqle/17.10/nPath.json +269 -269
  555. teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -56
  556. teradataml/data/jsons/sqle/17.20/Attribution.json +249 -249
  557. teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -185
  558. teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -172
  559. teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -151
  560. teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -367
  561. teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -239
  562. teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -149
  563. teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -287
  564. teradataml/data/jsons/sqle/17.20/Pack.json +133 -133
  565. teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -192
  566. teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -105
  567. teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -86
  568. teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +148 -76
  569. teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -239
  570. teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -71
  571. teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -53
  572. teradataml/data/jsons/sqle/17.20/TD_Chisq.json +67 -67
  573. teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +145 -145
  574. teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -53
  575. teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -218
  576. teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -92
  577. teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +259 -259
  578. teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -139
  579. teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -186
  580. teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -52
  581. teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -46
  582. teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -72
  583. teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -431
  584. teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -125
  585. teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -411
  586. teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -146
  587. teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -91
  588. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -76
  589. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -76
  590. teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -152
  591. teradataml/data/jsons/sqle/17.20/TD_KMeans.json +231 -211
  592. teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +86 -86
  593. teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -262
  594. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -137
  595. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -101
  596. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -71
  597. teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -147
  598. teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +315 -315
  599. teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +123 -123
  600. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -271
  601. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -65
  602. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -229
  603. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -75
  604. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -217
  605. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -48
  606. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -114
  607. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -72
  608. teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -111
  609. teradataml/data/jsons/sqle/17.20/TD_ROC.json +178 -177
  610. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +178 -178
  611. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +73 -73
  612. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -74
  613. teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +137 -137
  614. teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -93
  615. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +127 -127
  616. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +70 -70
  617. teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -389
  618. teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -124
  619. teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +309 -156
  620. teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +119 -70
  621. teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +193 -193
  622. teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +142 -142
  623. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -147
  624. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -48
  625. teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -240
  626. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -248
  627. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -75
  628. teradataml/data/jsons/sqle/17.20/TD_TextParser.json +192 -192
  629. teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -142
  630. teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -117
  631. teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +182 -182
  632. teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +52 -52
  633. teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +52 -52
  634. teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -241
  635. teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -312
  636. teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -182
  637. teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -170
  638. teradataml/data/jsons/sqle/17.20/Unpack.json +188 -188
  639. teradataml/data/jsons/sqle/17.20/nPath.json +269 -269
  640. teradataml/data/jsons/tableoperator/17.00/read_nos.json +197 -197
  641. teradataml/data/jsons/tableoperator/17.05/read_nos.json +197 -197
  642. teradataml/data/jsons/tableoperator/17.05/write_nos.json +194 -194
  643. teradataml/data/jsons/tableoperator/17.10/read_nos.json +183 -183
  644. teradataml/data/jsons/tableoperator/17.10/write_nos.json +194 -194
  645. teradataml/data/jsons/tableoperator/17.20/read_nos.json +182 -182
  646. teradataml/data/jsons/tableoperator/17.20/write_nos.json +223 -223
  647. teradataml/data/jsons/uaf/17.20/TD_ACF.json +149 -149
  648. teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +409 -409
  649. teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +79 -79
  650. teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +151 -151
  651. teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +109 -109
  652. teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +107 -107
  653. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +87 -87
  654. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +106 -106
  655. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +80 -80
  656. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +67 -67
  657. teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +91 -91
  658. teradataml/data/jsons/uaf/17.20/TD_DFFT.json +136 -136
  659. teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +148 -148
  660. teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -108
  661. teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +109 -109
  662. teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +86 -86
  663. teradataml/data/jsons/uaf/17.20/TD_DIFF.json +91 -91
  664. teradataml/data/jsons/uaf/17.20/TD_DTW.json +116 -116
  665. teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +100 -100
  666. teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +38 -38
  667. teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +100 -100
  668. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +84 -84
  669. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +70 -70
  670. teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +152 -152
  671. teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECAST.json +313 -313
  672. teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +57 -57
  673. teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +94 -94
  674. teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +63 -63
  675. teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +181 -181
  676. teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +102 -102
  677. teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +182 -182
  678. teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +67 -67
  679. teradataml/data/jsons/uaf/17.20/TD_MINFO.json +66 -66
  680. teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +178 -178
  681. teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -114
  682. teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +118 -118
  683. teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -175
  684. teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +97 -97
  685. teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +173 -173
  686. teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +136 -136
  687. teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +89 -89
  688. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +79 -79
  689. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +67 -67
  690. teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -184
  691. teradataml/data/jsons/uaf/17.20/TD_SINFO.json +57 -57
  692. teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +162 -162
  693. teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +100 -100
  694. teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +111 -111
  695. teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -95
  696. teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +77 -77
  697. teradataml/data/kmeans_example.json +22 -17
  698. teradataml/data/kmeans_table.csv +10 -0
  699. teradataml/data/kmeans_us_arrests_data.csv +0 -0
  700. teradataml/data/knn_example.json +18 -18
  701. teradataml/data/knnrecommender_example.json +6 -6
  702. teradataml/data/knnrecommenderpredict_example.json +12 -12
  703. teradataml/data/lar_example.json +17 -17
  704. teradataml/data/larpredict_example.json +30 -30
  705. teradataml/data/lc_new_predictors.csv +5 -5
  706. teradataml/data/lc_new_reference.csv +9 -9
  707. teradataml/data/lda_example.json +8 -8
  708. teradataml/data/ldainference_example.json +14 -14
  709. teradataml/data/ldatopicsummary_example.json +8 -8
  710. teradataml/data/levendist_input.csv +13 -13
  711. teradataml/data/levenshteindistance_example.json +10 -10
  712. teradataml/data/linreg_example.json +9 -9
  713. teradataml/data/load_example_data.py +326 -323
  714. teradataml/data/loan_prediction.csv +295 -295
  715. teradataml/data/lungcancer.csv +138 -138
  716. teradataml/data/mappingdata.csv +12 -12
  717. teradataml/data/milk_timeseries.csv +157 -157
  718. teradataml/data/min_max_titanic.csv +4 -4
  719. teradataml/data/minhash_example.json +6 -6
  720. teradataml/data/ml_ratings.csv +7547 -7547
  721. teradataml/data/ml_ratings_10.csv +2445 -2445
  722. teradataml/data/model1_table.csv +5 -5
  723. teradataml/data/model2_table.csv +5 -5
  724. teradataml/data/models/iris_db_glm_model.pmml +56 -56
  725. teradataml/data/models/iris_db_xgb_model.pmml +4471 -4471
  726. teradataml/data/modularity_example.json +12 -12
  727. teradataml/data/movavg_example.json +7 -7
  728. teradataml/data/mtx1.csv +7 -7
  729. teradataml/data/mtx2.csv +13 -13
  730. teradataml/data/multi_model_classification.csv +401 -0
  731. teradataml/data/multi_model_regression.csv +401 -0
  732. teradataml/data/mvdfft8.csv +9 -9
  733. teradataml/data/naivebayes_example.json +9 -9
  734. teradataml/data/naivebayespredict_example.json +19 -19
  735. teradataml/data/naivebayestextclassifier2_example.json +6 -6
  736. teradataml/data/naivebayestextclassifier_example.json +8 -8
  737. teradataml/data/naivebayestextclassifierpredict_example.json +20 -20
  738. teradataml/data/name_Find_configure.csv +10 -10
  739. teradataml/data/namedentityfinder_example.json +14 -14
  740. teradataml/data/namedentityfinderevaluator_example.json +10 -10
  741. teradataml/data/namedentityfindertrainer_example.json +6 -6
  742. teradataml/data/nb_iris_input_test.csv +31 -31
  743. teradataml/data/nb_iris_input_train.csv +121 -121
  744. teradataml/data/nbp_iris_model.csv +13 -13
  745. teradataml/data/ner_extractor_text.csv +2 -2
  746. teradataml/data/ner_sports_test2.csv +29 -29
  747. teradataml/data/ner_sports_train.csv +501 -501
  748. teradataml/data/nerevaluator_example.json +5 -5
  749. teradataml/data/nerextractor_example.json +18 -18
  750. teradataml/data/nermem_sports_test.csv +17 -17
  751. teradataml/data/nermem_sports_train.csv +50 -50
  752. teradataml/data/nertrainer_example.json +6 -6
  753. teradataml/data/ngrams_example.json +6 -6
  754. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -1455
  755. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -1993
  756. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -1492
  757. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -536
  758. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -570
  759. teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -2559
  760. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -2911
  761. teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -698
  762. teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -784
  763. teradataml/data/npath_example.json +23 -23
  764. teradataml/data/ntree_example.json +14 -14
  765. teradataml/data/numeric_strings.csv +4 -4
  766. teradataml/data/numerics.csv +4 -4
  767. teradataml/data/ocean_buoy.csv +17 -17
  768. teradataml/data/ocean_buoy2.csv +17 -17
  769. teradataml/data/ocean_buoys.csv +27 -27
  770. teradataml/data/ocean_buoys2.csv +10 -10
  771. teradataml/data/ocean_buoys_nonpti.csv +28 -28
  772. teradataml/data/ocean_buoys_seq.csv +29 -29
  773. teradataml/data/onehot_encoder_train.csv +4 -0
  774. teradataml/data/openml_example.json +92 -0
  775. teradataml/data/optional_event_table.csv +4 -4
  776. teradataml/data/orders1.csv +11 -11
  777. teradataml/data/orders1_12.csv +12 -12
  778. teradataml/data/orders_ex.csv +4 -4
  779. teradataml/data/pack_example.json +8 -8
  780. teradataml/data/package_tracking.csv +19 -19
  781. teradataml/data/package_tracking_pti.csv +18 -18
  782. teradataml/data/pagerank_example.json +13 -13
  783. teradataml/data/paragraphs_input.csv +6 -6
  784. teradataml/data/pathanalyzer_example.json +7 -7
  785. teradataml/data/pathgenerator_example.json +7 -7
  786. teradataml/data/phrases.csv +7 -7
  787. teradataml/data/pivot_example.json +8 -8
  788. teradataml/data/pivot_input.csv +22 -22
  789. teradataml/data/playerRating.csv +31 -31
  790. teradataml/data/postagger_example.json +6 -6
  791. teradataml/data/posttagger_output.csv +44 -44
  792. teradataml/data/production_data.csv +16 -16
  793. teradataml/data/production_data2.csv +7 -7
  794. teradataml/data/randomsample_example.json +31 -31
  795. teradataml/data/randomwalksample_example.json +8 -8
  796. teradataml/data/rank_table.csv +6 -6
  797. teradataml/data/ref_mobile_data.csv +4 -4
  798. teradataml/data/ref_mobile_data_dense.csv +2 -2
  799. teradataml/data/ref_url.csv +17 -17
  800. teradataml/data/restaurant_reviews.csv +7 -7
  801. teradataml/data/river_data.csv +145 -145
  802. teradataml/data/roc_example.json +7 -7
  803. teradataml/data/roc_input.csv +101 -101
  804. teradataml/data/rule_inputs.csv +6 -6
  805. teradataml/data/rule_table.csv +2 -2
  806. teradataml/data/sales.csv +7 -7
  807. teradataml/data/sales_transaction.csv +501 -501
  808. teradataml/data/salesdata.csv +342 -342
  809. teradataml/data/sample_cities.csv +2 -2
  810. teradataml/data/sample_shapes.csv +10 -10
  811. teradataml/data/sample_streets.csv +2 -2
  812. teradataml/data/sampling_example.json +15 -15
  813. teradataml/data/sax_example.json +8 -8
  814. teradataml/data/scale_attributes.csv +3 -0
  815. teradataml/data/scale_example.json +74 -23
  816. teradataml/data/scale_housing.csv +11 -11
  817. teradataml/data/scale_housing_test.csv +6 -6
  818. teradataml/data/scale_input_part_sparse.csv +31 -0
  819. teradataml/data/scale_input_partitioned.csv +16 -0
  820. teradataml/data/scale_input_sparse.csv +11 -0
  821. teradataml/data/scale_parameters.csv +3 -0
  822. teradataml/data/scale_stat.csv +11 -11
  823. teradataml/data/scalebypartition_example.json +13 -13
  824. teradataml/data/scalemap_example.json +13 -13
  825. teradataml/data/scalesummary_example.json +12 -12
  826. teradataml/data/score_category.csv +101 -101
  827. teradataml/data/score_summary.csv +4 -4
  828. teradataml/data/script_example.json +9 -9
  829. teradataml/data/scripts/deploy_script.py +84 -0
  830. teradataml/data/scripts/mapper.R +20 -0
  831. teradataml/data/scripts/mapper.py +15 -15
  832. teradataml/data/scripts/mapper_replace.py +15 -15
  833. teradataml/data/scripts/sklearn/__init__.py +0 -0
  834. teradataml/data/scripts/sklearn/sklearn_fit.py +171 -0
  835. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +127 -0
  836. teradataml/data/scripts/sklearn/sklearn_function.template +108 -0
  837. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +148 -0
  838. teradataml/data/scripts/sklearn/sklearn_neighbors.py +143 -0
  839. teradataml/data/scripts/sklearn/sklearn_score.py +119 -0
  840. teradataml/data/scripts/sklearn/sklearn_transform.py +171 -0
  841. teradataml/data/seeds.csv +10 -10
  842. teradataml/data/sentenceextractor_example.json +6 -6
  843. teradataml/data/sentiment_extract_input.csv +11 -11
  844. teradataml/data/sentiment_train.csv +16 -16
  845. teradataml/data/sentiment_word.csv +20 -20
  846. teradataml/data/sentiment_word_input.csv +19 -19
  847. teradataml/data/sentimentextractor_example.json +24 -24
  848. teradataml/data/sentimenttrainer_example.json +8 -8
  849. teradataml/data/sequence_table.csv +10 -10
  850. teradataml/data/seriessplitter_example.json +7 -7
  851. teradataml/data/sessionize_example.json +17 -17
  852. teradataml/data/sessionize_table.csv +116 -116
  853. teradataml/data/setop_test1.csv +24 -24
  854. teradataml/data/setop_test2.csv +22 -22
  855. teradataml/data/soc_nw_edges.csv +10 -10
  856. teradataml/data/soc_nw_vertices.csv +7 -7
  857. teradataml/data/souvenir_timeseries.csv +167 -167
  858. teradataml/data/sparse_iris_attribute.csv +5 -5
  859. teradataml/data/sparse_iris_test.csv +121 -121
  860. teradataml/data/sparse_iris_train.csv +601 -601
  861. teradataml/data/star1.csv +6 -6
  862. teradataml/data/state_transition.csv +5 -5
  863. teradataml/data/stock_data.csv +53 -53
  864. teradataml/data/stock_movement.csv +11 -11
  865. teradataml/data/stock_vol.csv +76 -76
  866. teradataml/data/stop_words.csv +8 -8
  867. teradataml/data/store_sales.csv +37 -37
  868. teradataml/data/stringsimilarity_example.json +7 -7
  869. teradataml/data/strsimilarity_input.csv +13 -13
  870. teradataml/data/students.csv +101 -101
  871. teradataml/data/svm_iris_input_test.csv +121 -121
  872. teradataml/data/svm_iris_input_train.csv +481 -481
  873. teradataml/data/svm_iris_model.csv +7 -7
  874. teradataml/data/svmdense_example.json +9 -9
  875. teradataml/data/svmdensepredict_example.json +18 -18
  876. teradataml/data/svmsparse_example.json +7 -7
  877. teradataml/data/svmsparsepredict_example.json +13 -13
  878. teradataml/data/svmsparsesummary_example.json +7 -7
  879. teradataml/data/target_mobile_data.csv +13 -13
  880. teradataml/data/target_mobile_data_dense.csv +5 -5
  881. teradataml/data/templatedata.csv +1201 -1201
  882. teradataml/data/templates/open_source_ml.json +9 -0
  883. teradataml/data/teradataml_example.json +150 -1
  884. teradataml/data/test_classification.csv +101 -0
  885. teradataml/data/test_loan_prediction.csv +53 -53
  886. teradataml/data/test_pacf_12.csv +37 -37
  887. teradataml/data/test_prediction.csv +101 -0
  888. teradataml/data/test_regression.csv +101 -0
  889. teradataml/data/test_river2.csv +109 -109
  890. teradataml/data/text_inputs.csv +6 -6
  891. teradataml/data/textchunker_example.json +7 -7
  892. teradataml/data/textclassifier_example.json +6 -6
  893. teradataml/data/textclassifier_input.csv +7 -7
  894. teradataml/data/textclassifiertrainer_example.json +6 -6
  895. teradataml/data/textmorph_example.json +5 -5
  896. teradataml/data/textparser_example.json +15 -15
  897. teradataml/data/texttagger_example.json +11 -11
  898. teradataml/data/texttokenizer_example.json +6 -6
  899. teradataml/data/texttrainer_input.csv +11 -11
  900. teradataml/data/tf_example.json +6 -6
  901. teradataml/data/tfidf_example.json +13 -13
  902. teradataml/data/tfidf_input1.csv +201 -201
  903. teradataml/data/tfidf_train.csv +6 -6
  904. teradataml/data/time_table1.csv +535 -535
  905. teradataml/data/time_table2.csv +14 -14
  906. teradataml/data/timeseriesdata.csv +1601 -1601
  907. teradataml/data/timeseriesdatasetsd4.csv +105 -105
  908. teradataml/data/titanic.csv +892 -892
  909. teradataml/data/token_table.csv +696 -696
  910. teradataml/data/train_multiclass.csv +101 -0
  911. teradataml/data/train_regression.csv +101 -0
  912. teradataml/data/train_regression_multiple_labels.csv +101 -0
  913. teradataml/data/train_tracking.csv +27 -27
  914. teradataml/data/transformation_table.csv +5 -5
  915. teradataml/data/transformation_table_new.csv +1 -1
  916. teradataml/data/tv_spots.csv +16 -16
  917. teradataml/data/twod_climate_data.csv +117 -117
  918. teradataml/data/uaf_example.json +475 -475
  919. teradataml/data/univariatestatistics_example.json +8 -8
  920. teradataml/data/unpack_example.json +9 -9
  921. teradataml/data/unpivot_example.json +9 -9
  922. teradataml/data/unpivot_input.csv +8 -8
  923. teradataml/data/us_air_pass.csv +36 -36
  924. teradataml/data/us_population.csv +624 -624
  925. teradataml/data/us_states_shapes.csv +52 -52
  926. teradataml/data/varmax_example.json +17 -17
  927. teradataml/data/vectordistance_example.json +25 -25
  928. teradataml/data/ville_climatedata.csv +121 -121
  929. teradataml/data/ville_tempdata.csv +12 -12
  930. teradataml/data/ville_tempdata1.csv +12 -12
  931. teradataml/data/ville_temperature.csv +11 -11
  932. teradataml/data/waveletTable.csv +1605 -1605
  933. teradataml/data/waveletTable2.csv +1605 -1605
  934. teradataml/data/weightedmovavg_example.json +8 -8
  935. teradataml/data/wft_testing.csv +5 -5
  936. teradataml/data/wine_data.csv +1600 -0
  937. teradataml/data/word_embed_input_table1.csv +5 -5
  938. teradataml/data/word_embed_input_table2.csv +4 -4
  939. teradataml/data/word_embed_model.csv +22 -22
  940. teradataml/data/words_input.csv +13 -13
  941. teradataml/data/xconvolve_complex_left.csv +6 -6
  942. teradataml/data/xconvolve_complex_leftmulti.csv +6 -6
  943. teradataml/data/xgboost_example.json +35 -35
  944. teradataml/data/xgboostpredict_example.json +31 -31
  945. teradataml/data/ztest_example.json +16 -0
  946. teradataml/dataframe/copy_to.py +1769 -1698
  947. teradataml/dataframe/data_transfer.py +2812 -2745
  948. teradataml/dataframe/dataframe.py +17630 -16946
  949. teradataml/dataframe/dataframe_utils.py +1875 -1740
  950. teradataml/dataframe/fastload.py +794 -603
  951. teradataml/dataframe/indexer.py +424 -424
  952. teradataml/dataframe/setop.py +1179 -1166
  953. teradataml/dataframe/sql.py +10174 -6432
  954. teradataml/dataframe/sql_function_parameters.py +439 -388
  955. teradataml/dataframe/sql_functions.py +652 -652
  956. teradataml/dataframe/sql_interfaces.py +220 -220
  957. teradataml/dataframe/vantage_function_types.py +674 -630
  958. teradataml/dataframe/window.py +693 -692
  959. teradataml/dbutils/__init__.py +3 -3
  960. teradataml/dbutils/dbutils.py +1167 -1150
  961. teradataml/dbutils/filemgr.py +267 -267
  962. teradataml/gen_ai/__init__.py +2 -2
  963. teradataml/gen_ai/convAI.py +472 -472
  964. teradataml/geospatial/__init__.py +3 -3
  965. teradataml/geospatial/geodataframe.py +1105 -1094
  966. teradataml/geospatial/geodataframecolumn.py +392 -387
  967. teradataml/geospatial/geometry_types.py +925 -925
  968. teradataml/hyperparameter_tuner/__init__.py +1 -1
  969. teradataml/hyperparameter_tuner/optimizer.py +3783 -2993
  970. teradataml/hyperparameter_tuner/utils.py +281 -187
  971. teradataml/lib/aed_0_1.dll +0 -0
  972. teradataml/lib/libaed_0_1.dylib +0 -0
  973. teradataml/lib/libaed_0_1.so +0 -0
  974. teradataml/libaed_0_1.dylib +0 -0
  975. teradataml/libaed_0_1.so +0 -0
  976. teradataml/opensource/__init__.py +1 -0
  977. teradataml/opensource/sklearn/__init__.py +1 -0
  978. teradataml/opensource/sklearn/_class.py +255 -0
  979. teradataml/opensource/sklearn/_sklearn_wrapper.py +1715 -0
  980. teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
  981. teradataml/opensource/sklearn/constants.py +54 -0
  982. teradataml/options/__init__.py +130 -124
  983. teradataml/options/configure.py +358 -336
  984. teradataml/options/display.py +176 -176
  985. teradataml/plot/__init__.py +2 -2
  986. teradataml/plot/axis.py +1388 -1388
  987. teradataml/plot/constants.py +15 -15
  988. teradataml/plot/figure.py +398 -398
  989. teradataml/plot/plot.py +760 -760
  990. teradataml/plot/query_generator.py +83 -83
  991. teradataml/plot/subplot.py +216 -216
  992. teradataml/scriptmgmt/UserEnv.py +3791 -3761
  993. teradataml/scriptmgmt/__init__.py +3 -3
  994. teradataml/scriptmgmt/lls_utils.py +1719 -1604
  995. teradataml/series/series.py +532 -532
  996. teradataml/series/series_utils.py +71 -71
  997. teradataml/table_operators/Apply.py +949 -917
  998. teradataml/table_operators/Script.py +1718 -1982
  999. teradataml/table_operators/TableOperator.py +1255 -1616
  1000. teradataml/table_operators/__init__.py +2 -3
  1001. teradataml/table_operators/apply_query_generator.py +262 -262
  1002. teradataml/table_operators/query_generator.py +507 -507
  1003. teradataml/table_operators/table_operator_query_generator.py +460 -460
  1004. teradataml/table_operators/table_operator_util.py +631 -639
  1005. teradataml/table_operators/templates/dataframe_apply.template +184 -184
  1006. teradataml/table_operators/templates/dataframe_map.template +176 -176
  1007. teradataml/table_operators/templates/script_executor.template +170 -170
  1008. teradataml/utils/dtypes.py +684 -684
  1009. teradataml/utils/internal_buffer.py +84 -84
  1010. teradataml/utils/print_versions.py +205 -205
  1011. teradataml/utils/utils.py +410 -410
  1012. teradataml/utils/validators.py +2277 -2115
  1013. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/METADATA +346 -45
  1014. teradataml-20.0.0.1.dist-info/RECORD +1056 -0
  1015. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/WHEEL +1 -1
  1016. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/zip-safe +1 -1
  1017. teradataml/analytics/mle/AdaBoost.py +0 -651
  1018. teradataml/analytics/mle/AdaBoostPredict.py +0 -564
  1019. teradataml/analytics/mle/Antiselect.py +0 -342
  1020. teradataml/analytics/mle/Arima.py +0 -641
  1021. teradataml/analytics/mle/ArimaPredict.py +0 -477
  1022. teradataml/analytics/mle/Attribution.py +0 -1070
  1023. teradataml/analytics/mle/Betweenness.py +0 -658
  1024. teradataml/analytics/mle/Burst.py +0 -711
  1025. teradataml/analytics/mle/CCM.py +0 -600
  1026. teradataml/analytics/mle/CCMPrepare.py +0 -324
  1027. teradataml/analytics/mle/CFilter.py +0 -460
  1028. teradataml/analytics/mle/ChangePointDetection.py +0 -572
  1029. teradataml/analytics/mle/ChangePointDetectionRT.py +0 -477
  1030. teradataml/analytics/mle/Closeness.py +0 -737
  1031. teradataml/analytics/mle/ConfusionMatrix.py +0 -420
  1032. teradataml/analytics/mle/Correlation.py +0 -477
  1033. teradataml/analytics/mle/Correlation2.py +0 -573
  1034. teradataml/analytics/mle/CoxHazardRatio.py +0 -679
  1035. teradataml/analytics/mle/CoxPH.py +0 -556
  1036. teradataml/analytics/mle/CoxSurvival.py +0 -478
  1037. teradataml/analytics/mle/CumulativeMovAvg.py +0 -363
  1038. teradataml/analytics/mle/DTW.py +0 -623
  1039. teradataml/analytics/mle/DWT.py +0 -564
  1040. teradataml/analytics/mle/DWT2D.py +0 -599
  1041. teradataml/analytics/mle/DecisionForest.py +0 -716
  1042. teradataml/analytics/mle/DecisionForestEvaluator.py +0 -363
  1043. teradataml/analytics/mle/DecisionForestPredict.py +0 -561
  1044. teradataml/analytics/mle/DecisionTree.py +0 -830
  1045. teradataml/analytics/mle/DecisionTreePredict.py +0 -528
  1046. teradataml/analytics/mle/ExponentialMovAvg.py +0 -418
  1047. teradataml/analytics/mle/FMeasure.py +0 -402
  1048. teradataml/analytics/mle/FPGrowth.py +0 -734
  1049. teradataml/analytics/mle/FrequentPaths.py +0 -695
  1050. teradataml/analytics/mle/GLM.py +0 -558
  1051. teradataml/analytics/mle/GLML1L2.py +0 -547
  1052. teradataml/analytics/mle/GLML1L2Predict.py +0 -519
  1053. teradataml/analytics/mle/GLMPredict.py +0 -529
  1054. teradataml/analytics/mle/HMMDecoder.py +0 -945
  1055. teradataml/analytics/mle/HMMEvaluator.py +0 -901
  1056. teradataml/analytics/mle/HMMSupervised.py +0 -521
  1057. teradataml/analytics/mle/HMMUnsupervised.py +0 -572
  1058. teradataml/analytics/mle/Histogram.py +0 -561
  1059. teradataml/analytics/mle/IDWT.py +0 -476
  1060. teradataml/analytics/mle/IDWT2D.py +0 -493
  1061. teradataml/analytics/mle/IdentityMatch.py +0 -763
  1062. teradataml/analytics/mle/Interpolator.py +0 -918
  1063. teradataml/analytics/mle/KMeans.py +0 -485
  1064. teradataml/analytics/mle/KNN.py +0 -627
  1065. teradataml/analytics/mle/KNNRecommender.py +0 -488
  1066. teradataml/analytics/mle/KNNRecommenderPredict.py +0 -581
  1067. teradataml/analytics/mle/LAR.py +0 -439
  1068. teradataml/analytics/mle/LARPredict.py +0 -478
  1069. teradataml/analytics/mle/LDA.py +0 -548
  1070. teradataml/analytics/mle/LDAInference.py +0 -492
  1071. teradataml/analytics/mle/LDATopicSummary.py +0 -464
  1072. teradataml/analytics/mle/LevenshteinDistance.py +0 -450
  1073. teradataml/analytics/mle/LinReg.py +0 -433
  1074. teradataml/analytics/mle/LinRegPredict.py +0 -438
  1075. teradataml/analytics/mle/MinHash.py +0 -544
  1076. teradataml/analytics/mle/Modularity.py +0 -587
  1077. teradataml/analytics/mle/NEREvaluator.py +0 -410
  1078. teradataml/analytics/mle/NERExtractor.py +0 -595
  1079. teradataml/analytics/mle/NERTrainer.py +0 -458
  1080. teradataml/analytics/mle/NGrams.py +0 -570
  1081. teradataml/analytics/mle/NPath.py +0 -634
  1082. teradataml/analytics/mle/NTree.py +0 -549
  1083. teradataml/analytics/mle/NaiveBayes.py +0 -462
  1084. teradataml/analytics/mle/NaiveBayesPredict.py +0 -513
  1085. teradataml/analytics/mle/NaiveBayesTextClassifier.py +0 -607
  1086. teradataml/analytics/mle/NaiveBayesTextClassifier2.py +0 -531
  1087. teradataml/analytics/mle/NaiveBayesTextClassifierPredict.py +0 -799
  1088. teradataml/analytics/mle/NamedEntityFinder.py +0 -529
  1089. teradataml/analytics/mle/NamedEntityFinderEvaluator.py +0 -414
  1090. teradataml/analytics/mle/NamedEntityFinderTrainer.py +0 -396
  1091. teradataml/analytics/mle/POSTagger.py +0 -417
  1092. teradataml/analytics/mle/Pack.py +0 -411
  1093. teradataml/analytics/mle/PageRank.py +0 -535
  1094. teradataml/analytics/mle/PathAnalyzer.py +0 -426
  1095. teradataml/analytics/mle/PathGenerator.py +0 -367
  1096. teradataml/analytics/mle/PathStart.py +0 -464
  1097. teradataml/analytics/mle/PathSummarizer.py +0 -470
  1098. teradataml/analytics/mle/Pivot.py +0 -471
  1099. teradataml/analytics/mle/ROC.py +0 -425
  1100. teradataml/analytics/mle/RandomSample.py +0 -637
  1101. teradataml/analytics/mle/RandomWalkSample.py +0 -490
  1102. teradataml/analytics/mle/SAX.py +0 -779
  1103. teradataml/analytics/mle/SVMDense.py +0 -677
  1104. teradataml/analytics/mle/SVMDensePredict.py +0 -536
  1105. teradataml/analytics/mle/SVMDenseSummary.py +0 -437
  1106. teradataml/analytics/mle/SVMSparse.py +0 -557
  1107. teradataml/analytics/mle/SVMSparsePredict.py +0 -553
  1108. teradataml/analytics/mle/SVMSparseSummary.py +0 -435
  1109. teradataml/analytics/mle/Sampling.py +0 -549
  1110. teradataml/analytics/mle/Scale.py +0 -565
  1111. teradataml/analytics/mle/ScaleByPartition.py +0 -496
  1112. teradataml/analytics/mle/ScaleMap.py +0 -378
  1113. teradataml/analytics/mle/ScaleSummary.py +0 -320
  1114. teradataml/analytics/mle/SentenceExtractor.py +0 -363
  1115. teradataml/analytics/mle/SentimentEvaluator.py +0 -432
  1116. teradataml/analytics/mle/SentimentExtractor.py +0 -578
  1117. teradataml/analytics/mle/SentimentTrainer.py +0 -405
  1118. teradataml/analytics/mle/SeriesSplitter.py +0 -641
  1119. teradataml/analytics/mle/Sessionize.py +0 -475
  1120. teradataml/analytics/mle/SimpleMovAvg.py +0 -397
  1121. teradataml/analytics/mle/StringSimilarity.py +0 -425
  1122. teradataml/analytics/mle/TF.py +0 -389
  1123. teradataml/analytics/mle/TFIDF.py +0 -504
  1124. teradataml/analytics/mle/TextChunker.py +0 -414
  1125. teradataml/analytics/mle/TextClassifier.py +0 -399
  1126. teradataml/analytics/mle/TextClassifierEvaluator.py +0 -413
  1127. teradataml/analytics/mle/TextClassifierTrainer.py +0 -565
  1128. teradataml/analytics/mle/TextMorph.py +0 -494
  1129. teradataml/analytics/mle/TextParser.py +0 -623
  1130. teradataml/analytics/mle/TextTagger.py +0 -530
  1131. teradataml/analytics/mle/TextTokenizer.py +0 -502
  1132. teradataml/analytics/mle/UnivariateStatistics.py +0 -488
  1133. teradataml/analytics/mle/Unpack.py +0 -526
  1134. teradataml/analytics/mle/Unpivot.py +0 -438
  1135. teradataml/analytics/mle/VarMax.py +0 -776
  1136. teradataml/analytics/mle/VectorDistance.py +0 -762
  1137. teradataml/analytics/mle/WeightedMovAvg.py +0 -400
  1138. teradataml/analytics/mle/XGBoost.py +0 -842
  1139. teradataml/analytics/mle/XGBoostPredict.py +0 -627
  1140. teradataml/analytics/mle/__init__.py +0 -123
  1141. teradataml/analytics/mle/json/adaboost_mle.json +0 -135
  1142. teradataml/analytics/mle/json/adaboostpredict_mle.json +0 -85
  1143. teradataml/analytics/mle/json/antiselect_mle.json +0 -34
  1144. teradataml/analytics/mle/json/antiselect_mle_mle.json +0 -34
  1145. teradataml/analytics/mle/json/arima_mle.json +0 -172
  1146. teradataml/analytics/mle/json/arimapredict_mle.json +0 -52
  1147. teradataml/analytics/mle/json/attribution_mle_mle.json +0 -143
  1148. teradataml/analytics/mle/json/betweenness_mle.json +0 -97
  1149. teradataml/analytics/mle/json/burst_mle.json +0 -140
  1150. teradataml/analytics/mle/json/ccm_mle.json +0 -124
  1151. teradataml/analytics/mle/json/ccmprepare_mle.json +0 -14
  1152. teradataml/analytics/mle/json/cfilter_mle.json +0 -93
  1153. teradataml/analytics/mle/json/changepointdetection_mle.json +0 -92
  1154. teradataml/analytics/mle/json/changepointdetectionrt_mle.json +0 -78
  1155. teradataml/analytics/mle/json/closeness_mle.json +0 -104
  1156. teradataml/analytics/mle/json/confusionmatrix_mle.json +0 -79
  1157. teradataml/analytics/mle/json/correlation_mle.json +0 -86
  1158. teradataml/analytics/mle/json/correlationreduce_mle.json +0 -49
  1159. teradataml/analytics/mle/json/coxhazardratio_mle.json +0 -89
  1160. teradataml/analytics/mle/json/coxph_mle.json +0 -98
  1161. teradataml/analytics/mle/json/coxsurvival_mle.json +0 -79
  1162. teradataml/analytics/mle/json/cumulativemovavg_mle.json +0 -34
  1163. teradataml/analytics/mle/json/decisionforest_mle.json +0 -167
  1164. teradataml/analytics/mle/json/decisionforestevaluator_mle.json +0 -33
  1165. teradataml/analytics/mle/json/decisionforestpredict_mle_mle.json +0 -74
  1166. teradataml/analytics/mle/json/decisiontree_mle.json +0 -194
  1167. teradataml/analytics/mle/json/decisiontreepredict_mle_mle.json +0 -86
  1168. teradataml/analytics/mle/json/dtw_mle.json +0 -97
  1169. teradataml/analytics/mle/json/dwt2d_mle.json +0 -116
  1170. teradataml/analytics/mle/json/dwt_mle.json +0 -101
  1171. teradataml/analytics/mle/json/exponentialmovavg_mle.json +0 -55
  1172. teradataml/analytics/mle/json/fmeasure_mle.json +0 -58
  1173. teradataml/analytics/mle/json/fpgrowth_mle.json +0 -159
  1174. teradataml/analytics/mle/json/frequentpaths_mle.json +0 -129
  1175. teradataml/analytics/mle/json/glm_mle.json +0 -111
  1176. teradataml/analytics/mle/json/glml1l2_mle.json +0 -106
  1177. teradataml/analytics/mle/json/glml1l2predict_mle.json +0 -57
  1178. teradataml/analytics/mle/json/glmpredict_mle_mle.json +0 -74
  1179. teradataml/analytics/mle/json/histogram_mle.json +0 -100
  1180. teradataml/analytics/mle/json/hmmdecoder_mle.json +0 -192
  1181. teradataml/analytics/mle/json/hmmevaluator_mle.json +0 -206
  1182. teradataml/analytics/mle/json/hmmsupervised_mle.json +0 -91
  1183. teradataml/analytics/mle/json/hmmunsupervised_mle.json +0 -114
  1184. teradataml/analytics/mle/json/identitymatch_mle.json +0 -88
  1185. teradataml/analytics/mle/json/idwt2d_mle.json +0 -73
  1186. teradataml/analytics/mle/json/idwt_mle.json +0 -66
  1187. teradataml/analytics/mle/json/interpolator_mle.json +0 -151
  1188. teradataml/analytics/mle/json/kmeans_mle.json +0 -97
  1189. teradataml/analytics/mle/json/knn_mle.json +0 -141
  1190. teradataml/analytics/mle/json/knnrecommender_mle.json +0 -111
  1191. teradataml/analytics/mle/json/knnrecommenderpredict_mle.json +0 -75
  1192. teradataml/analytics/mle/json/lar_mle.json +0 -78
  1193. teradataml/analytics/mle/json/larpredict_mle.json +0 -69
  1194. teradataml/analytics/mle/json/lda_mle.json +0 -130
  1195. teradataml/analytics/mle/json/ldainference_mle.json +0 -78
  1196. teradataml/analytics/mle/json/ldatopicsummary_mle.json +0 -64
  1197. teradataml/analytics/mle/json/levenshteindistance_mle.json +0 -92
  1198. teradataml/analytics/mle/json/linreg_mle.json +0 -42
  1199. teradataml/analytics/mle/json/linregpredict_mle.json +0 -56
  1200. teradataml/analytics/mle/json/minhash_mle.json +0 -113
  1201. teradataml/analytics/mle/json/modularity_mle.json +0 -91
  1202. teradataml/analytics/mle/json/naivebayespredict_mle_mle.json +0 -85
  1203. teradataml/analytics/mle/json/naivebayesreduce_mle.json +0 -52
  1204. teradataml/analytics/mle/json/naivebayestextclassifierpredict_mle_mle.json +0 -147
  1205. teradataml/analytics/mle/json/naivebayestextclassifiertrainer2_mle.json +0 -108
  1206. teradataml/analytics/mle/json/naivebayestextclassifiertrainer_mle.json +0 -102
  1207. teradataml/analytics/mle/json/namedentityfinder_mle.json +0 -84
  1208. teradataml/analytics/mle/json/namedentityfinderevaluatorreduce_mle.json +0 -43
  1209. teradataml/analytics/mle/json/namedentityfindertrainer_mle.json +0 -64
  1210. teradataml/analytics/mle/json/nerevaluator_mle.json +0 -54
  1211. teradataml/analytics/mle/json/nerextractor_mle.json +0 -87
  1212. teradataml/analytics/mle/json/nertrainer_mle.json +0 -89
  1213. teradataml/analytics/mle/json/ngrams_mle.json +0 -137
  1214. teradataml/analytics/mle/json/ngramsplitter_mle_mle.json +0 -137
  1215. teradataml/analytics/mle/json/npath@coprocessor_mle.json +0 -73
  1216. teradataml/analytics/mle/json/ntree@coprocessor_mle.json +0 -123
  1217. teradataml/analytics/mle/json/pack_mle.json +0 -58
  1218. teradataml/analytics/mle/json/pack_mle_mle.json +0 -58
  1219. teradataml/analytics/mle/json/pagerank_mle.json +0 -81
  1220. teradataml/analytics/mle/json/pathanalyzer_mle.json +0 -63
  1221. teradataml/analytics/mle/json/pathgenerator_mle.json +0 -40
  1222. teradataml/analytics/mle/json/pathstart_mle.json +0 -62
  1223. teradataml/analytics/mle/json/pathsummarizer_mle.json +0 -72
  1224. teradataml/analytics/mle/json/pivoting_mle.json +0 -71
  1225. teradataml/analytics/mle/json/postagger_mle.json +0 -51
  1226. teradataml/analytics/mle/json/randomsample_mle.json +0 -131
  1227. teradataml/analytics/mle/json/randomwalksample_mle.json +0 -85
  1228. teradataml/analytics/mle/json/roc_mle.json +0 -73
  1229. teradataml/analytics/mle/json/sampling_mle.json +0 -75
  1230. teradataml/analytics/mle/json/sax_mle.json +0 -154
  1231. teradataml/analytics/mle/json/scale_mle.json +0 -93
  1232. teradataml/analytics/mle/json/scalebypartition_mle.json +0 -89
  1233. teradataml/analytics/mle/json/scalemap_mle.json +0 -44
  1234. teradataml/analytics/mle/json/scalesummary_mle.json +0 -14
  1235. teradataml/analytics/mle/json/sentenceextractor_mle.json +0 -41
  1236. teradataml/analytics/mle/json/sentimentevaluator_mle.json +0 -43
  1237. teradataml/analytics/mle/json/sentimentextractor_mle.json +0 -100
  1238. teradataml/analytics/mle/json/sentimenttrainer_mle.json +0 -68
  1239. teradataml/analytics/mle/json/seriessplitter_mle.json +0 -133
  1240. teradataml/analytics/mle/json/sessionize_mle_mle.json +0 -62
  1241. teradataml/analytics/mle/json/simplemovavg_mle.json +0 -48
  1242. teradataml/analytics/mle/json/stringsimilarity_mle.json +0 -50
  1243. teradataml/analytics/mle/json/stringsimilarity_mle_mle.json +0 -50
  1244. teradataml/analytics/mle/json/svmdense_mle.json +0 -165
  1245. teradataml/analytics/mle/json/svmdensepredict_mle.json +0 -95
  1246. teradataml/analytics/mle/json/svmdensesummary_mle.json +0 -58
  1247. teradataml/analytics/mle/json/svmsparse_mle.json +0 -148
  1248. teradataml/analytics/mle/json/svmsparsepredict_mle_mle.json +0 -103
  1249. teradataml/analytics/mle/json/svmsparsesummary_mle.json +0 -57
  1250. teradataml/analytics/mle/json/textchunker_mle.json +0 -40
  1251. teradataml/analytics/mle/json/textclassifier_mle.json +0 -51
  1252. teradataml/analytics/mle/json/textclassifierevaluator_mle.json +0 -43
  1253. teradataml/analytics/mle/json/textclassifiertrainer_mle.json +0 -103
  1254. teradataml/analytics/mle/json/textmorph_mle.json +0 -63
  1255. teradataml/analytics/mle/json/textparser_mle.json +0 -166
  1256. teradataml/analytics/mle/json/texttagger_mle.json +0 -81
  1257. teradataml/analytics/mle/json/texttokenizer_mle.json +0 -91
  1258. teradataml/analytics/mle/json/tf_mle.json +0 -33
  1259. teradataml/analytics/mle/json/tfidf_mle.json +0 -34
  1260. teradataml/analytics/mle/json/univariatestatistics_mle.json +0 -81
  1261. teradataml/analytics/mle/json/unpack_mle.json +0 -91
  1262. teradataml/analytics/mle/json/unpack_mle_mle.json +0 -91
  1263. teradataml/analytics/mle/json/unpivoting_mle.json +0 -63
  1264. teradataml/analytics/mle/json/varmax_mle.json +0 -176
  1265. teradataml/analytics/mle/json/vectordistance_mle.json +0 -179
  1266. teradataml/analytics/mle/json/weightedmovavg_mle.json +0 -48
  1267. teradataml/analytics/mle/json/xgboost_mle.json +0 -178
  1268. teradataml/analytics/mle/json/xgboostpredict_mle.json +0 -104
  1269. teradataml/analytics/sqle/Antiselect.py +0 -321
  1270. teradataml/analytics/sqle/Attribution.py +0 -603
  1271. teradataml/analytics/sqle/DecisionForestPredict.py +0 -408
  1272. teradataml/analytics/sqle/GLMPredict.py +0 -430
  1273. teradataml/analytics/sqle/MovingAverage.py +0 -543
  1274. teradataml/analytics/sqle/NGramSplitter.py +0 -548
  1275. teradataml/analytics/sqle/NPath.py +0 -632
  1276. teradataml/analytics/sqle/NaiveBayesTextClassifierPredict.py +0 -515
  1277. teradataml/analytics/sqle/Pack.py +0 -388
  1278. teradataml/analytics/sqle/SVMSparsePredict.py +0 -464
  1279. teradataml/analytics/sqle/Sessionize.py +0 -390
  1280. teradataml/analytics/sqle/StringSimilarity.py +0 -400
  1281. teradataml/analytics/sqle/Unpack.py +0 -503
  1282. teradataml/analytics/sqle/json/antiselect_sqle.json +0 -21
  1283. teradataml/analytics/sqle/json/attribution_sqle.json +0 -92
  1284. teradataml/analytics/sqle/json/decisionforestpredict_sqle.json +0 -48
  1285. teradataml/analytics/sqle/json/glmpredict_sqle.json +0 -48
  1286. teradataml/analytics/sqle/json/h2opredict_sqle.json +0 -63
  1287. teradataml/analytics/sqle/json/movingaverage_sqle.json +0 -58
  1288. teradataml/analytics/sqle/json/naivebayestextclassifierpredict_sqle.json +0 -76
  1289. teradataml/analytics/sqle/json/ngramsplitter_sqle.json +0 -126
  1290. teradataml/analytics/sqle/json/npath_sqle.json +0 -67
  1291. teradataml/analytics/sqle/json/pack_sqle.json +0 -47
  1292. teradataml/analytics/sqle/json/pmmlpredict_sqle.json +0 -55
  1293. teradataml/analytics/sqle/json/sessionize_sqle.json +0 -43
  1294. teradataml/analytics/sqle/json/stringsimilarity_sqle.json +0 -39
  1295. teradataml/analytics/sqle/json/svmsparsepredict_sqle.json +0 -74
  1296. teradataml/analytics/sqle/json/unpack_sqle.json +0 -80
  1297. teradataml/catalog/model_cataloging.py +0 -980
  1298. teradataml/config/mlengine_alias_definitions_v1.0 +0 -118
  1299. teradataml/config/mlengine_alias_definitions_v1.1 +0 -127
  1300. teradataml/config/mlengine_alias_definitions_v1.3 +0 -129
  1301. teradataml/table_operators/sandbox_container_util.py +0 -643
  1302. teradataml-17.20.0.7.dist-info/RECORD +0 -1280
  1303. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/top_level.txt +0 -0
@@ -1,861 +1,859 @@
1
- """
2
- Unpublished work.
3
- Copyright (c) 2020 by Teradata Corporation. All rights reserved.
4
- TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
5
-
6
- Primary Owner: Rohit.Khurd@teradata.com
7
- Secondary Owner:
8
-
9
- This file is for creating a two way mapper between client specific attribute/input/output names to
10
- their SQL specific counterparts.
11
- """
12
- from teradataml.common.exceptions import TeradataMlException
13
- from teradataml.common.messages import Messages
14
- from teradataml.common.messagecodes import MessageCodes
15
- from teradataml.common.constants import ModelCatalogingConstants
16
- from teradataml.context.context import _get_vantage_version
17
- from teradataml.utils.validators import _Validators
18
- from teradataml.common.constants import ModelCatalogingConstants as mac, \
19
- FunctionArgumentMapperConstants as famc
20
- import inspect
21
- import json
22
- import os
23
-
24
-
25
- class _ArgumentMapperSuper(object):
26
- """
27
- The parent class for the function argument mapper with simple functions to
28
- set and get attribute values.
29
- """
30
-
31
- def __init__(self):
32
- pass
33
-
34
- def _SetKeyValue(self, name, value):
35
- super().__setattr__(name, value)
36
-
37
- def _GetValue(self, name):
38
- return super().__getattribute__(name)
39
-
40
-
41
- def _create_property(name):
42
- """
43
- Internal function to create a property with getter and setter with the required name.
44
- """
45
- storage_name = '_' + name
46
-
47
- @property
48
- def prop(self):
49
- return self._GetValue(storage_name)
50
-
51
- @prop.setter
52
- def prop(self, value):
53
- self._SetKeyValue(storage_name, value)
54
-
55
- return prop
56
-
57
-
58
- class _ArgumentMapper(_ArgumentMapperSuper):
59
- """
60
- Dictionary to map teradataml argument names to SQL argument names and vice-versa.
61
- """
62
- input_output_arg_map = _create_property('input_output_arg_map')
63
-
64
- def __init__(self):
65
- """
66
- PARAMETERS:
67
- None.
68
- """
69
- super().__init__()
70
- # input_output_arg_map: It is required to create the dictionary to hold the map.
71
- # Types: dict
72
- super().__setattr__('input_output_arg_map', {})
73
-
74
- def __setattr__(self, name, value):
75
- if hasattr(self, name):
76
- # We will set the 'input_output_arg_map' argument map when it is updated from
77
- # the __load_function_map method
78
- if name == 'input_output_arg_map' and inspect.stack()[1][3] == '__load_function_map':
79
- if not isinstance(value, dict):
80
- raise TypeError(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE,
81
- name, 'dict'),
82
- MessageCodes.UNSUPPORTED_DATATYPE)
83
- super().__setattr__(name, value)
84
- else:
85
- raise AttributeError("'{}' object has no attribute '{}'".format(self.__class__.__name__, name))
86
-
87
- def _get_function_map(self, engine, function_name):
88
- """
89
- DESCRIPTION:
90
- Function to return the function argument mapper for a given function.
91
-
92
- PARAMETERS:
93
- engine:
94
- Required Argument.
95
- Specifies the analytics engine to which the function belongs to.
96
- Supported values: 'ML Engine', 'Advanced SQL Engine'
97
- Types: str
98
-
99
- function_name:
100
- Required Argument.
101
- Specifies the name of the function on the analytics engine provided to get the map for.
102
- Types: str
103
-
104
- RAISES:
105
- None.
106
-
107
- RETURNS:
108
- A dictionary mapping the teradataml equivalent argument, input table,
109
- and output table names to SQL names, and vice-versa.
110
-
111
- EXAMPLES:
112
- >>> from teradataml.catalog.function_argument_mapper import _argument_mapper
113
- >>> _argument_mapper._get_function_map('ML Engine', 'GLM')
114
-
115
- """
116
- arg_info_matrix = []
117
- arg_info_matrix.append(["engine", engine, False, (str), True, [mac.MODEL_ENGINE_ADVSQL.value,
118
- mac.MODEL_ENGINE_ML.value]])
119
- arg_info_matrix.append(["function_name", function_name, False, (str), True])
120
-
121
- # Make sure that a non-NULL value has been supplied for all mandatory arguments
122
- _Validators._validate_missing_required_arguments(arg_info_matrix)
123
-
124
- # Validate argument types
125
- _Validators._validate_function_arguments(arg_info_matrix)
126
-
127
- # Set the Vantage version attribute when required, i.e. when attempting to populate the Function map
128
- # for the first time.
129
- # Setting it to 'Vantage 1.1 GA' by default, just as in 'configure'.
130
- if not hasattr(self, '_vantage_version'):
131
- vantage_version = _get_vantage_version()
132
- super().__setattr__('_vantage_version', vantage_version if vantage_version else 'Vantage 1.1 GA')
133
-
134
- # Standardise the engine name to use in the mapper
135
- if engine.lower() == ModelCatalogingConstants.MODEL_ENGINE_ML.value.lower():
136
- engine = ModelCatalogingConstants.MODEL_ENGINE_ML.value
137
- elif engine.lower() == ModelCatalogingConstants.MODEL_ENGINE_ADVSQL.value.lower():
138
- engine = ModelCatalogingConstants.MODEL_ENGINE_ADVSQL.value
139
-
140
- # Also use lower case algorithm names for case insensitive checks
141
- self.__load_function_map(engine, function_name.lower())
142
- return self.input_output_arg_map[engine][function_name.lower()]
143
-
144
- def __load_function_map(self, engine, function_name):
145
- """
146
- DESCRIPTION:
147
- Internal function to check for the presence of the given function in the mapper, and when not found,
148
- load the function argument mapping for function specified by the engine and function_name arguments.
149
-
150
- PARAMETERS:
151
- engine:
152
- Required Argument.
153
- Specifies the name of the engine the function belongs to.
154
- Acceptable values: 'ML Engine', 'Advanced SQL Engine'
155
- Types: str
156
-
157
- function_name:
158
- Required Argument.
159
- Specifies the name of the function to check and load the argument mapping for.
160
- Types: str
161
-
162
- RAISES:
163
- TeradataMlException
164
-
165
- RETURNS:
166
- NA
167
-
168
- EXAMPLES:
169
- >>> self.__load_function_map('ML Engine', 'GLM')
170
-
171
- """
172
- if engine not in self.input_output_arg_map or \
173
- function_name not in self.input_output_arg_map[engine]:
174
-
175
- curr_dir = os.path.dirname(os.path.abspath(__file__))
176
- function_json_file = None
177
-
178
- # The path of the JSON files for the function is expected to be:
179
- # teradataml/analytics/mle/<function_name>_mle.json - for MLE functions
180
- # OR
181
- # teradataml/analytics/sqle/<function_name>_sqle.json - for SQLE functions
182
- if engine == ModelCatalogingConstants.MODEL_ENGINE_ML.value:
183
- function_json_file = os.path.join(curr_dir,
184
- '../analytics/mle/json/{}_mle.json'.format(function_name))
185
- elif engine == ModelCatalogingConstants.MODEL_ENGINE_ADVSQL.value:
186
- function_json_file = os.path.join(curr_dir,
187
- '../analytics/sqle/json/{}_sqle.json'.format(function_name))
188
-
189
- try:
190
- function_json = json.load(open(function_json_file, 'r'))
191
- except Exception:
192
- raise TeradataMlException(Messages.get_message(MessageCodes.FUNCTION_JSON_MISSING,
193
- function_name, engine),
194
- MessageCodes.FUNCTION_JSON_MISSING)
195
-
196
- self.__setattr__('input_output_arg_map',
197
- self.__update_json_dict_for_function(self.input_output_arg_map, engine,
198
- function_name,
199
- function_json))
200
-
201
- def __resolve_arg_types(self, arg):
202
- """
203
- DESCRIPTION:
204
- Internal function to return the python data type corresponding to the acceptable SQL data type
205
- for an argument.
206
-
207
- PARAMETERS:
208
- arg:
209
- Required Argument.
210
- Specifies a dictionary related to the function argument from the function argument map.
211
- Types: dict
212
-
213
- RAISES:
214
- TypeError
215
-
216
- RETURNS:
217
- Python data type for the argument specified.
218
-
219
- EXAMPLES:
220
- >>> expected_python_types = self.__resolve_arg_types(arg)
221
-
222
- """
223
- # Raise and error if the type is not expected
224
- if not isinstance(arg, dict):
225
- raise TypeError(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE,
226
- 'arg', 'dict'),
227
- MessageCodes.UNSUPPORTED_DATATYPE)
228
-
229
- # Let's check if the argument accepts lists
230
- allows_lists = False
231
- if famc.ALLOWS_LISTS.value in arg:
232
- allows_lists = arg[famc.ALLOWS_LISTS.value]
233
-
234
- # The default type of argument is str
235
- python_type = str
236
- if arg[famc.DATATYPE.value] == famc.BOOL_TYPE.value:
237
- python_type = bool
238
- elif arg[famc.DATATYPE.value] in famc.INT_TYPE.value:
239
- python_type = int
240
- elif arg[famc.DATATYPE.value] in famc.FLOAT_TYPE.value:
241
- python_type = float
242
-
243
- # When the argument accepts lists, we create a 2-tuple of expected types,
244
- # where 'list' is the second item in the tuple.
245
- if allows_lists:
246
- python_type = (python_type, list)
247
-
248
- return python_type
249
-
250
- def __resolve_sequence_input_args(self, function_map, sequence_arg):
251
- """
252
- DESCRIPTION:
253
- Internal function to add mapping for SequenceInputBy argument between its SQL and teradataml counterparts.
254
-
255
- PARAMETERS:
256
- function_map:
257
- Required Argument.
258
- Specifies the function argument map to update with the information related
259
- to the SequenceInputBy argument.
260
- Types: dict
261
-
262
- sequence_arg:
263
- Required Argument.
264
- Specifies the dictionary element from the function JSON file corresponding
265
- to the SequenceInputBy argument.
266
- Types: dict
267
-
268
- RAISES:
269
- None
270
-
271
- RETURNS:
272
- A dictionary - the updated function argument map.
273
-
274
- EXAMPLES:
275
- >>> self.__resolve_sequence_input_args(function_map, sequence_arg)
276
-
277
- """
278
- arg_info_matrix = []
279
- arg_info_matrix.append(["function_map", function_map, False, (dict)])
280
- arg_info_matrix.append(["sequence_arg", sequence_arg, False, (dict)])
281
-
282
- # Make sure that a non-NULL value has been supplied for all mandatory arguments
283
- _Validators._validate_missing_required_arguments(arg_info_matrix)
284
-
285
- # Validate argument types
286
- _Validators._validate_function_arguments(arg_info_matrix)
287
-
288
- # First, make a list of all tdml names for inputs
289
- input_tdml_names = set([key for key in function_map[famc.INPUTS.value][famc.TDML_TO_SQL.value]])
290
-
291
- # Python type for sequenceBy argument is always str or a list of strs
292
- python_type = (str, list)
293
-
294
- # Convert the rName to teradataml name
295
- r_name = self.__convert_rName_to_tdml(sequence_arg[famc.R_NAME.value])
296
-
297
- # All teradataml sequence arguments are names <input_name>_sequence_column
298
- tdml_name = [ '{}_{}'.format(input_name, r_name) for input_name in input_tdml_names ]
299
-
300
- arg_name = sequence_arg[famc.NAME.value]
301
- sql_name_to_use = self.__resolve_name(arg_name).lower()
302
-
303
- if isinstance(arg_name, list):
304
- for i in range(len(arg_name)):
305
- # We can use only one of the SQL equivalents
306
- if i == 0:
307
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
308
- sql_name=arg_name[i],
309
- tdml_name=tdml_name,
310
- tdml_type=python_type)
311
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][arg_name[i].lower()][
312
- famc.USED_IN_SEQUENCE_INPUT_BY.value] = True
313
- for name in tdml_name:
314
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][name] = sql_name_to_use
315
- # The rest of the SQL equivalents can be treated as alternate names
316
- else:
317
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
318
- sql_name=arg_name[i],
319
- sql_name_to_use=sql_name_to_use,
320
- alternate_to=True)
321
-
322
- # The arg_name can be a dictionary where the keys are the Vantage versions,
323
- # and each version has it's own list of acceptable names
324
- if isinstance(arg_name, dict):
325
- for vv, value in arg_name.items():
326
- for i in range(len(value)):
327
- if i == 0:
328
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
329
- sql_name=value[i],
330
- tdml_name=tdml_name,
331
- tdml_type=python_type)
332
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][value[i].lower()][
333
- famc.USED_IN_SEQUENCE_INPUT_BY.value] = True
334
- for name in tdml_name:
335
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][name] = sql_name_to_use
336
- else:
337
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
338
- sql_name=value[i],
339
- sql_name_to_use=sql_name_to_use,
340
- alternate_to=True)
341
-
342
- return function_map
343
-
344
- def __resolve_formula_args(self, function_map, formula_args):
345
- """
346
- DESCRIPTION:
347
- Internal function to add mapping for formula argument between it's SQL and teradataml counterparts.
348
-
349
- PARAMETERS:
350
- function_map:
351
- Required Argument.
352
- Specifies the function argument map to update with the information related to the formula argument.
353
- Types: dict
354
-
355
- formula_args:
356
- Required Argument.
357
- Specifies the list of dictionary elements from the function JSON file corresponding
358
- to the formula argument.
359
- Types: list
360
-
361
- RAISES:
362
- None.
363
-
364
- RETURNS:
365
- A dictionary - the updated function argument map.
366
-
367
- EXAMPLES:
368
- >>> self.__resolve_formula_args(function_map, formula_args)
369
-
370
- """
371
- arg_info_matrix = []
372
- arg_info_matrix.append(["function_map", function_map, False, (dict)])
373
- arg_info_matrix.append(["formula_args", formula_args, False, (list)])
374
-
375
- # Make sure that a non-NULL value has been supplied for all mandatory arguments
376
- _Validators._validate_missing_required_arguments(arg_info_matrix)
377
-
378
- # Validate argument types
379
- _Validators._validate_function_arguments(arg_info_matrix)
380
-
381
- # Check if formula is split into dependent and independent clauses
382
- found_dependent = False
383
- for arg in formula_args:
384
- # rOrderNum = 0 indicates it is dependent variable in the formula
385
- if arg[famc.R_ORDER_NUM.value] == 0:
386
- found_dependent = True
387
- break
388
-
389
- # Python type for formula is always str
390
- python_type = str
391
- tdml_name = famc.TDML_FORMULA_NAME.value
392
- arg_counter = 0
393
- for arg in formula_args:
394
- arg_counter = arg_counter + 1
395
- # Either the function needs a clear distinction between dependent
396
- # and independent variables (Like DecisionForest), or just the list (like GLM)
397
- if arg[famc.R_ORDER_NUM.value] == 0:
398
- used_in_formula = famc.DEPENDENT_ATTR.value
399
- else:
400
- if found_dependent:
401
- used_in_formula = famc.INDEPENDENT_ATTR.value
402
- else:
403
- used_in_formula = True
404
-
405
- arg_name = arg[famc.NAME.value]
406
- sql_name_to_use = self.__resolve_name(arg_name).lower()
407
-
408
- if isinstance(arg_name, list):
409
- for i in range(len(arg_name)):
410
- if i == 0:
411
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
412
- sql_name=arg_name[i],
413
- tdml_name=tdml_name,
414
- tdml_type=python_type)
415
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][arg_name[i].lower()][
416
- famc.USED_IN_FORMULA.value] = used_in_formula
417
- if arg_counter > 1:
418
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
419
- tdml_name] = function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
420
- tdml_name] + [sql_name_to_use]
421
- else:
422
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
423
- tdml_name] = [sql_name_to_use]
424
- else:
425
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
426
- sql_name=arg_name[i],
427
- sql_name_to_use=sql_name_to_use,
428
- alternate_to=True)
429
-
430
- # The arg_name can be a dictionary where the keys are the Vantage versions,
431
- # and each version has it's own list of acceptable names
432
- if isinstance(arg_name, dict):
433
- for vv, value in arg_name.items():
434
- for i in range(len(value)):
435
- # Handle all other arguments
436
- if i == 0:
437
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
438
- sql_name=value[i],
439
- tdml_name=tdml_name,
440
- tdml_type=python_type)
441
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][value[i].lower()][
442
- famc.USED_IN_FORMULA.value] = used_in_formula
443
- if arg_counter > 1:
444
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
445
- tdml_name] = function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
446
- tdml_name] + [sql_name_to_use]
447
- else:
448
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
449
- tdml_name] = [sql_name_to_use]
450
- else:
451
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
452
- sql_name=value[i],
453
- sql_name_to_use=sql_name_to_use,
454
- alternate_to=True)
455
-
456
- return function_map
457
-
458
- def __resolve_name(self, name_arg):
459
- """
460
- DESCRIPTION:
461
- Internal function to resolve the SQL name for a given argument based on the Vantage version.
462
-
463
- PARAMETERS:
464
- name_arg:
465
- Required Argument.
466
- Specifies the name as defined in the function JSON file corresponding
467
- to any argument.
468
- Types: dict or list
469
-
470
- RAISES:
471
- None.
472
-
473
- RETURNS:
474
- A String representing the SQL name to use based on the Vantage version.
475
-
476
- EXAMPLES:
477
- >>> self.__resolve_name(['InputColumns', 'TargetColumns'])
478
- InputColumns
479
- >>> # Assuming Vantage version is 1.1
480
- >>> self.__resolve_name({'Vantage 1.0': ['InputCols'], 'Vantage 1.1 GA': ['InputColumns', 'TargetColumns'])
481
- InputColumns
482
-
483
- """
484
- # If the name_arg is of type dict, it means the argument has different names based on the Vantage version.
485
- # If name_arg is of type list, it means the argument has alternate names too, and they haven't changed since
486
- # the last release.
487
- # If name_arg is of type str, it means that the it points to the name to use which hasn't changed.
488
-
489
- if isinstance(name_arg, dict):
490
- name_arg = name_arg[self._vantage_version]
491
-
492
- if isinstance(name_arg, list):
493
- name_arg = name_arg[0]
494
-
495
- return name_arg
496
-
497
- def __convert_rName_to_tdml(self, r_name):
498
- """
499
- DESCRIPTION:
500
- Internal function to replace r_name to tdml_name by replacing '.' with '_'.
501
-
502
- PARAMETERS:
503
- r_name:
504
- Required Argument.
505
- A String representing the r name of any argument, input, output of a function, as mentioned in the
506
- corresponding JSON file.
507
- Types: str
508
-
509
- RAISES:
510
- TypeError
511
-
512
- RETURNS:
513
- A String representing the teradataml equivalent name for the given r name.
514
-
515
- EXAMPLES:
516
- >>> self.__convert_rName_to_tdml('sequence.column')
517
- sequence_column
518
-
519
- """
520
- if not isinstance(r_name, str):
521
- raise TypeError(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE,
522
- 'r_name', 'str'),
523
- MessageCodes.UNSUPPORTED_DATATYPE)
524
-
525
- if r_name is not None:
526
- return r_name.replace(".", "_")
527
-
528
- return r_name
529
-
530
- def __add_function_input_output_entries(self, field, func_ip_op, function_map):
531
- """
532
- DESCRIPTION:
533
- Internal function to add entries for the functions inputs or outputs to the function argument map.
534
-
535
- PARAMETERS:
536
- field:
537
- Required Argument.
538
- Specifies one of 'inputs' or 'outputs'.
539
- Types: str
540
-
541
- func_ip_op:
542
- Required Argument.
543
- Specifies the dictionary from the JSON corresponding to the the 'inputs' or 'ouputs'.
544
- Types: dict
545
-
546
- function_map:
547
- Required Argument.
548
- Specifies the function argument map to updated and return.
549
- Types: dict
550
-
551
- RAISES:
552
- None.
553
-
554
- RETURNS:
555
- dict - function argument map updated with the requested information, 'input' or 'outputs'.
556
-
557
- EXAMPLES:
558
- >>> function_map = self.__add_function_input_output_entries(self, 'inputs', func_inputs, function_map)
559
- """
560
- for entry in func_ip_op:
561
- sql_name = entry[famc.NAME.value]
562
- tdml_name = self.__convert_rName_to_tdml(entry[famc.R_NAME.value])
563
- sql_name_to_use = self.__resolve_name(sql_name).lower()
564
-
565
- if isinstance(sql_name, list):
566
- for i in range(len(sql_name)):
567
- function_map[field][famc.SQL_TO_TDML.value][sql_name[i].lower()] = tdml_name
568
- function_map[field][famc.TDML_TO_SQL.value][tdml_name] = sql_name_to_use
569
-
570
- if isinstance(sql_name, dict):
571
- for vv, value in sql_name.items():
572
- for i in range(len(value)):
573
- function_map[field][famc.SQL_TO_TDML.value][value[i].lower()] = tdml_name
574
- function_map[field][famc.TDML_TO_SQL.value][tdml_name] = sql_name_to_use
575
-
576
- return function_map
577
-
578
- def __update_json_dict_for_function(self, input_output_arg_map, engine, function_name, function_json):
579
- """
580
- DESCRIPTION:
581
- Internal function to load or update the input_output_arg_map property for the function specified.
582
-
583
- PARAMETERS:
584
- input_output_arg_map:
585
- Required Argument.
586
- Specified the dictionary to be updated with the map for the given function from the given engine.
587
- Types: dict
588
-
589
- engine:
590
- Required Argument.
591
- Specifies the name of the engine the function belongs to.
592
- Acceptable values: 'ML Engine', 'Advanced SQL Engine'
593
- Types: str
594
-
595
- function_name:
596
- Required Argument.
597
- Specifies the name of the function to check and load the argument mapping for.
598
- Types: str
599
-
600
- function_json:
601
- Required Argument.
602
- Specified the dictionary representing the Json file for the function.
603
- Types: dict
604
-
605
- RAISES:
606
- None.
607
-
608
- RETURNS:
609
- The updated input_output_arg dictionary.
610
-
611
- Note:
612
- The input_output_arg dictionary is of the following form:
613
- {
614
- 'ML Engine' : {
615
- <func_name_11>: {
616
- 'input': {
617
- 'sql_to_tdml' : {
618
- '<sql_input_name_1>': '<tdml_input_name_1>',
619
- '<sql_input_name_2>': '<tdml_input_name_2>'
620
- },
621
- 'tdml_to_sql' : {
622
- '<tdml_input_name_1>': '<sql_input_name_1>',
623
- '<tdml_input_name_2>': '<sql_input_name_2>',
624
- }
625
- },
626
- 'output': {
627
- 'sql_to_tdml' : {
628
- '<sql_input_name_1>': '<tdml_input_name_1>',
629
- '<sql_input_name_2>': '<tdml_input_name_2>'
630
- },
631
- 'tdml_to_sql' : {
632
- '<tdml_input_name_1>': '<sql_input_name_1>',
633
- '<tdml_input_name_2>': '<sql_input_name_2>',
634
- }
635
- },
636
- 'arguments': {
637
- 'sql_to_tdml' : {
638
- 'TargetColumns' : {
639
- 'tdml_name': '<tdml_name>',
640
- 'tdml_type': <python_type_tuple>,
641
- 'used_in_formula': True or 'dependent' or 'independent',
642
- 'alternate_to' : None
643
- },
644
- 'CategoricalColumns': {
645
- 'tdml_name': '<tdml_name>',
646
- 'tdml_type': <python_type_tuple>,
647
- 'used_in_formula': True or 'dependent' or 'independent',
648
- 'alternate_to' : None
649
- },
650
- 'Intercept1.0' : {
651
- 'tdml_name': '<tdml_name>',
652
- 'tdml_type': <python_type_tuple>,
653
- 'used_in_formula': True or 'dependent' or 'independent',
654
- 'alternate_to' : None
655
- },
656
- # This is how you would define an alternate name
657
- 'InterceptNew1.1' : {
658
- 'alternate_to' : 'sqlname1'
659
- },
660
- 'UniqueId': {
661
- 'tdml_name': ['data_sequence_input_by', 'data1_sequence_input_by']
662
- 'tdml_type': str,
663
- 'used_in_sequence_by': True
664
- }
665
- },
666
- 'tdml_to_sql' : {
667
- # Keep one to one
668
- 'formula' : ['<sql_name_1>', 'sql_name_2'],
669
- 'data_sequence_input_by': ['UniqueId', 'SequenceInputBy'],
670
- 'data1_sequence_input_by': ['UniqueId', 'SequenceInputBy'],
671
- 'weight': 'WeightColumns'
672
- }
673
- }
674
- },
675
- <func_name_12>: {
676
- }
677
- },
678
- 'Advanced SQL Engine' : {
679
- <func_name_21>: {
680
- },
681
- <func_name_22>: {
682
- }
683
- }
684
- }
685
-
686
- EXAMPLE:
687
- >>> self.__update_json_dict_for_function(input_output_arg_map, 'ML Engine', 'GLM', glm_json)
688
-
689
- """
690
- function_map = {}
691
- # First, let's add the tdml name for the function
692
- function_map[famc.FUNCTION_TDML_NAME.value] = function_json[famc.FUNCTION_TDML_NAME.value]
693
- # Section corresponding to arguments
694
- function_args = function_json[famc.ARGUMENT_CLAUSES.value]
695
- # Section corresponding to inputs
696
- function_inputs = function_json[famc.INPUT_TABLES.value]
697
- function_outputs = None
698
- if famc.OUTPUT_TABLES.value in function_json:
699
- # Section corresponding to outputs
700
- function_outputs = function_json[famc.OUTPUT_TABLES.value]
701
-
702
- # Create Input dict
703
- function_map[famc.INPUTS.value] = {}
704
- function_map[famc.INPUTS.value][famc.SQL_TO_TDML.value] = {}
705
- function_map[famc.INPUTS.value][famc.TDML_TO_SQL.value] = {}
706
- function_map = self.__add_function_input_output_entries(field=famc.INPUTS.value,
707
- func_ip_op=function_inputs,
708
- function_map=function_map)
709
-
710
- # Create output dict
711
- function_map[famc.OUTPUTS.value] = {}
712
- function_map[famc.OUTPUTS.value][famc.SQL_TO_TDML.value] = {}
713
- function_map[famc.OUTPUTS.value][famc.TDML_TO_SQL.value] = {}
714
- if function_outputs is not None:
715
- function_map = self.__add_function_input_output_entries(field=famc.OUTPUTS.value,
716
- func_ip_op=function_outputs,
717
- function_map=function_map)
718
- # Default output thrown back at the prompt - tdml_name is 'output'
719
- function_map[famc.OUTPUTS.value][famc.SQL_TO_TDML.value][
720
- famc.DEFAULT_OUTPUT.value] = famc.DEFAULT_OUTPUT_TDML_NAME_MULTIPLE.value
721
- function_map[famc.OUTPUTS.value][famc.TDML_TO_SQL.value][
722
- famc.DEFAULT_OUTPUT_TDML_NAME_MULTIPLE.value] = famc.DEFAULT_OUTPUT.value
723
- else:
724
- # Default output thrown back at the prompt - tdml_name is 'result'
725
- function_map[famc.OUTPUTS.value][famc.SQL_TO_TDML.value][
726
- famc.DEFAULT_OUTPUT.value] = famc.DEFAULT_OUTPUT_TDML_NAME_SINGLE.value
727
- function_map[famc.OUTPUTS.value][famc.TDML_TO_SQL.value][
728
- famc.DEFAULT_OUTPUT_TDML_NAME_SINGLE.value] = famc.DEFAULT_OUTPUT.value
729
-
730
- # Create argument dict
731
- function_map[famc.ARGUMENTS.value] = {}
732
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value] = {}
733
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value] = {}
734
- formula_args = []
735
- sequence_arg = None
736
- for arg in function_args:
737
- # Handle formula related args separately
738
- if famc.R_FOMULA_USAGE.value in arg and arg[famc.R_FOMULA_USAGE.value] == True:
739
- formula_args.append(arg)
740
- continue
741
-
742
- arg_name = arg[famc.NAME.value]
743
- tdml_name = self.__convert_rName_to_tdml(arg[famc.R_NAME.value])
744
- sql_name_to_use = self.__resolve_name(arg_name).lower()
745
-
746
- # Handle sequence input arg separately
747
- if tdml_name == famc.TDML_SEQUENCE_COLUMN_NAME.value:
748
- sequence_arg = arg
749
- continue
750
-
751
- python_type = self.__resolve_arg_types(arg)
752
-
753
- if isinstance(arg_name, list):
754
- for i in range(len(arg_name)):
755
- # Handle all other arguments
756
- if i == 0:
757
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
758
- sql_name=arg_name[i],
759
- tdml_name=tdml_name,
760
- tdml_type=python_type)
761
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
762
- tdml_name] = sql_name_to_use
763
- else:
764
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
765
- sql_name=arg_name[i],
766
- sql_name_to_use=sql_name_to_use,
767
- alternate_to=True)
768
-
769
- if isinstance(arg_name, dict):
770
- for vv, value in arg_name.items():
771
- for i in range(len(value)):
772
- # Handle all other arguments
773
- if i == 0:
774
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
775
- sql_name=value[i],
776
- tdml_name=tdml_name,
777
- tdml_type=python_type)
778
- function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
779
- tdml_name] = sql_name_to_use
780
- else:
781
- function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
782
- sql_name=value[i],
783
- sql_name_to_use=sql_name_to_use,
784
- alternate_to=True)
785
-
786
- if len(formula_args) > 0:
787
- function_map = self.__resolve_formula_args(function_map, formula_args)
788
-
789
- if sequence_arg is not None:
790
- function_map = self.__resolve_sequence_input_args(function_map, sequence_arg)
791
-
792
- # Finally, update the input_output_arg_map with an entry for the function
793
- if engine not in input_output_arg_map:
794
- input_output_arg_map[engine] = {}
795
- input_output_arg_map[engine][function_name] = function_map
796
-
797
- return input_output_arg_map
798
-
799
- def __add_sql_to_tdml_entry(self, function_map, sql_name, tdml_name=None,
800
- tdml_type=None, sql_name_to_use=None, alternate_to=False):
801
- """
802
- DESCRIPTION:
803
- Internal function to add the SQL to teradataml entry for a function argument.
804
-
805
- PARAMETERS:
806
- function_map:
807
- Required Argument.
808
- Specifies the function argument map to update with the SQL to teradataml
809
- entries for the arguments.
810
- Types: dict
811
-
812
- sql_name:
813
- Required argument.
814
- Specifies the SQL name of the argumemnt to add the mapper entry for.
815
- Types: str
816
-
817
- tdml_name:
818
- Optional Argument. Required when alternate_to is set to False.
819
- Specifies the teradataml name corresponding to the given SQL name.
820
- When specified, must also specify tdml_type.
821
- Types: str
822
-
823
- tdml_type:
824
- Optional Argument. Required when alternate_to is set to False.
825
- Specifies the acceptable python data type for the argument.
826
- When specified, must also specify tdml_name.
827
- Types: Python type or tuple of Python types
828
-
829
- sql_name_to_use:
830
- Specifies the teradataml name to use in case there are alternate names.
831
- Types: str
832
-
833
- alternate_to:
834
- Specifies whether the SQL Name is an alternate to another SQL name that we wish to use.
835
- When set to True, must also specify sql_name and sql_name_to_use.
836
- Types: bool
837
- Default Value: False
838
-
839
- RAISES:
840
- None.
841
-
842
- RETURNS:
843
- dict - the updated function_map with the newly added entries.
844
-
845
- EXAMPLES:
846
- >>> function_map = self.__add_sql_to_tdml_entry(function_map, tdml_name, tdml_type)
847
- """
848
- if alternate_to:
849
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()] = {}
850
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()][
851
- famc.ALTERNATE_TO.value] = sql_name_to_use
852
- else:
853
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()] = {}
854
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()][
855
- famc.TDML_NAME.value] = tdml_name
856
- function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()][
857
- famc.TDML_TYPE.value] = tdml_type
858
-
859
- return function_map
860
-
861
- _argument_mapper = _ArgumentMapper()
1
+ """
2
+ Unpublished work.
3
+ Copyright (c) 2020 by Teradata Corporation. All rights reserved.
4
+ TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
5
+
6
+ Primary Owner: Rohit.Khurd@teradata.com
7
+ Secondary Owner:
8
+
9
+ This file is for creating a two way mapper between client specific attribute/input/output names to
10
+ their SQL specific counterparts.
11
+ """
12
+ from teradataml.common.exceptions import TeradataMlException
13
+ from teradataml.common.messages import Messages
14
+ from teradataml.common.messagecodes import MessageCodes
15
+ from teradataml.common.constants import ModelCatalogingConstants
16
+ from teradataml.context.context import _get_vantage_version
17
+ from teradataml.utils.validators import _Validators
18
+ from teradataml.common.constants import ModelCatalogingConstants as mac, \
19
+ FunctionArgumentMapperConstants as famc
20
+ import inspect
21
+ import json
22
+ import os
23
+
24
+
25
+ class _ArgumentMapperSuper(object):
26
+ """
27
+ The parent class for the function argument mapper with simple functions to
28
+ set and get attribute values.
29
+ """
30
+
31
+ def __init__(self):
32
+ pass
33
+
34
+ def _SetKeyValue(self, name, value):
35
+ super().__setattr__(name, value)
36
+
37
+ def _GetValue(self, name):
38
+ return super().__getattribute__(name)
39
+
40
+
41
+ def _create_property(name):
42
+ """
43
+ Internal function to create a property with getter and setter with the required name.
44
+ """
45
+ storage_name = '_' + name
46
+
47
+ @property
48
+ def prop(self):
49
+ return self._GetValue(storage_name)
50
+
51
+ @prop.setter
52
+ def prop(self, value):
53
+ self._SetKeyValue(storage_name, value)
54
+
55
+ return prop
56
+
57
+
58
+ class _ArgumentMapper(_ArgumentMapperSuper):
59
+ """
60
+ Dictionary to map teradataml argument names to SQL argument names and vice-versa.
61
+ """
62
+ input_output_arg_map = _create_property('input_output_arg_map')
63
+
64
+ def __init__(self):
65
+ """
66
+ PARAMETERS:
67
+ None.
68
+ """
69
+ super().__init__()
70
+ # input_output_arg_map: It is required to create the dictionary to hold the map.
71
+ # Types: dict
72
+ super().__setattr__('input_output_arg_map', {})
73
+
74
+ def __setattr__(self, name, value):
75
+ if hasattr(self, name):
76
+ # We will set the 'input_output_arg_map' argument map when it is updated from
77
+ # the __load_function_map method
78
+ if name == 'input_output_arg_map' and inspect.stack()[1][3] == '__load_function_map':
79
+ if not isinstance(value, dict):
80
+ raise TypeError(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE,
81
+ name, 'dict'),
82
+ MessageCodes.UNSUPPORTED_DATATYPE)
83
+ super().__setattr__(name, value)
84
+ else:
85
+ raise AttributeError("'{}' object has no attribute '{}'".format(self.__class__.__name__, name))
86
+
87
+ def _get_function_map(self, engine, function_name):
88
+ """
89
+ DESCRIPTION:
90
+ Function to return the function argument mapper for a given function.
91
+
92
+ PARAMETERS:
93
+ engine:
94
+ Required Argument.
95
+ Specifies the analytics engine to which the function belongs to.
96
+ Supported values: 'ML Engine', 'Advanced SQL Engine'
97
+ Types: str
98
+
99
+ function_name:
100
+ Required Argument.
101
+ Specifies the name of the function on the analytics engine provided to get the map for.
102
+ Types: str
103
+
104
+ RAISES:
105
+ None.
106
+
107
+ RETURNS:
108
+ A dictionary mapping the teradataml equivalent argument, input table,
109
+ and output table names to SQL names, and vice-versa.
110
+
111
+ EXAMPLES:
112
+ >>> from teradataml.catalog.function_argument_mapper import _argument_mapper
113
+ >>> _argument_mapper._get_function_map('ML Engine', 'GLM')
114
+
115
+ """
116
+ arg_info_matrix = []
117
+ arg_info_matrix.append(["engine", engine, False, (str), True, [mac.MODEL_ENGINE_ADVSQL.value,
118
+ mac.MODEL_ENGINE_ML.value]])
119
+ arg_info_matrix.append(["function_name", function_name, False, (str), True])
120
+
121
+ # Make sure that a non-NULL value has been supplied for all mandatory arguments
122
+ _Validators._validate_missing_required_arguments(arg_info_matrix)
123
+
124
+ # Validate argument types
125
+ _Validators._validate_function_arguments(arg_info_matrix)
126
+
127
+ # Set the Vantage version attribute when required, i.e. when attempting to populate the Function map
128
+ # for the first time.
129
+ # Setting it to 'Vantage 1.1 GA' by default, just as in 'configure'.
130
+ if not hasattr(self, '_vantage_version'):
131
+ vantage_version = _get_vantage_version()
132
+ super().__setattr__('_vantage_version', vantage_version if vantage_version else 'Vantage 1.1 GA')
133
+
134
+ # Standardise the engine name to use in the mapper
135
+ if engine.lower() == ModelCatalogingConstants.MODEL_ENGINE_ML.value.lower():
136
+ engine = ModelCatalogingConstants.MODEL_ENGINE_ML.value
137
+ elif engine.lower() == ModelCatalogingConstants.MODEL_ENGINE_ADVSQL.value.lower():
138
+ engine = ModelCatalogingConstants.MODEL_ENGINE_ADVSQL.value
139
+
140
+ # Also use lower case algorithm names for case insensitive checks
141
+ self.__load_function_map(engine, function_name.lower())
142
+ return self.input_output_arg_map[engine][function_name.lower()]
143
+
144
+ def __load_function_map(self, engine, function_name):
145
+ """
146
+ DESCRIPTION:
147
+ Internal function to check for the presence of the given function in the mapper, and when not found,
148
+ load the function argument mapping for function specified by the engine and function_name arguments.
149
+
150
+ PARAMETERS:
151
+ engine:
152
+ Required Argument.
153
+ Specifies the name of the engine the function belongs to.
154
+ Acceptable values: 'ML Engine', 'Advanced SQL Engine'
155
+ Types: str
156
+
157
+ function_name:
158
+ Required Argument.
159
+ Specifies the name of the function to check and load the argument mapping for.
160
+ Types: str
161
+
162
+ RAISES:
163
+ TeradataMlException
164
+
165
+ RETURNS:
166
+ NA
167
+
168
+ EXAMPLES:
169
+ >>> self.__load_function_map('ML Engine', 'GLM')
170
+
171
+ """
172
+ if engine not in self.input_output_arg_map or \
173
+ function_name not in self.input_output_arg_map[engine]:
174
+
175
+ curr_dir = os.path.dirname(os.path.abspath(__file__))
176
+ function_json_file = None
177
+
178
+ # The path of the JSON files for the function is expected to be:
179
+ # teradataml/analytics/sqle/<function_name>_sqle.json - for SQLE functions
180
+ if engine == ModelCatalogingConstants.MODEL_ENGINE_ML.value:
181
+ function_json_file = os.path.join(curr_dir,
182
+ '../analytics/mle/json/{}_mle.json'.format(function_name))
183
+ elif engine == ModelCatalogingConstants.MODEL_ENGINE_ADVSQL.value:
184
+ function_json_file = os.path.join(curr_dir,
185
+ '../analytics/sqle/json/{}_sqle.json'.format(function_name))
186
+
187
+ try:
188
+ function_json = json.load(open(function_json_file, 'r'))
189
+ except Exception:
190
+ raise TeradataMlException(Messages.get_message(MessageCodes.FUNCTION_JSON_MISSING,
191
+ function_name, engine),
192
+ MessageCodes.FUNCTION_JSON_MISSING)
193
+
194
+ self.__setattr__('input_output_arg_map',
195
+ self.__update_json_dict_for_function(self.input_output_arg_map, engine,
196
+ function_name,
197
+ function_json))
198
+
199
+ def __resolve_arg_types(self, arg):
200
+ """
201
+ DESCRIPTION:
202
+ Internal function to return the python data type corresponding to the acceptable SQL data type
203
+ for an argument.
204
+
205
+ PARAMETERS:
206
+ arg:
207
+ Required Argument.
208
+ Specifies a dictionary related to the function argument from the function argument map.
209
+ Types: dict
210
+
211
+ RAISES:
212
+ TypeError
213
+
214
+ RETURNS:
215
+ Python data type for the argument specified.
216
+
217
+ EXAMPLES:
218
+ >>> expected_python_types = self.__resolve_arg_types(arg)
219
+
220
+ """
221
+ # Raise and error if the type is not expected
222
+ if not isinstance(arg, dict):
223
+ raise TypeError(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE,
224
+ 'arg', 'dict'),
225
+ MessageCodes.UNSUPPORTED_DATATYPE)
226
+
227
+ # Let's check if the argument accepts lists
228
+ allows_lists = False
229
+ if famc.ALLOWS_LISTS.value in arg:
230
+ allows_lists = arg[famc.ALLOWS_LISTS.value]
231
+
232
+ # The default type of argument is str
233
+ python_type = str
234
+ if arg[famc.DATATYPE.value] == famc.BOOL_TYPE.value:
235
+ python_type = bool
236
+ elif arg[famc.DATATYPE.value] in famc.INT_TYPE.value:
237
+ python_type = int
238
+ elif arg[famc.DATATYPE.value] in famc.FLOAT_TYPE.value:
239
+ python_type = float
240
+
241
+ # When the argument accepts lists, we create a 2-tuple of expected types,
242
+ # where 'list' is the second item in the tuple.
243
+ if allows_lists:
244
+ python_type = (python_type, list)
245
+
246
+ return python_type
247
+
248
+ def __resolve_sequence_input_args(self, function_map, sequence_arg):
249
+ """
250
+ DESCRIPTION:
251
+ Internal function to add mapping for SequenceInputBy argument between its SQL and teradataml counterparts.
252
+
253
+ PARAMETERS:
254
+ function_map:
255
+ Required Argument.
256
+ Specifies the function argument map to update with the information related
257
+ to the SequenceInputBy argument.
258
+ Types: dict
259
+
260
+ sequence_arg:
261
+ Required Argument.
262
+ Specifies the dictionary element from the function JSON file corresponding
263
+ to the SequenceInputBy argument.
264
+ Types: dict
265
+
266
+ RAISES:
267
+ None
268
+
269
+ RETURNS:
270
+ A dictionary - the updated function argument map.
271
+
272
+ EXAMPLES:
273
+ >>> self.__resolve_sequence_input_args(function_map, sequence_arg)
274
+
275
+ """
276
+ arg_info_matrix = []
277
+ arg_info_matrix.append(["function_map", function_map, False, (dict)])
278
+ arg_info_matrix.append(["sequence_arg", sequence_arg, False, (dict)])
279
+
280
+ # Make sure that a non-NULL value has been supplied for all mandatory arguments
281
+ _Validators._validate_missing_required_arguments(arg_info_matrix)
282
+
283
+ # Validate argument types
284
+ _Validators._validate_function_arguments(arg_info_matrix)
285
+
286
+ # First, make a list of all tdml names for inputs
287
+ input_tdml_names = set([key for key in function_map[famc.INPUTS.value][famc.TDML_TO_SQL.value]])
288
+
289
+ # Python type for sequenceBy argument is always str or a list of strs
290
+ python_type = (str, list)
291
+
292
+ # Convert the rName to teradataml name
293
+ r_name = self.__convert_rName_to_tdml(sequence_arg[famc.R_NAME.value])
294
+
295
+ # All teradataml sequence arguments are names <input_name>_sequence_column
296
+ tdml_name = [ '{}_{}'.format(input_name, r_name) for input_name in input_tdml_names ]
297
+
298
+ arg_name = sequence_arg[famc.NAME.value]
299
+ sql_name_to_use = self.__resolve_name(arg_name).lower()
300
+
301
+ if isinstance(arg_name, list):
302
+ for i in range(len(arg_name)):
303
+ # We can use only one of the SQL equivalents
304
+ if i == 0:
305
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
306
+ sql_name=arg_name[i],
307
+ tdml_name=tdml_name,
308
+ tdml_type=python_type)
309
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][arg_name[i].lower()][
310
+ famc.USED_IN_SEQUENCE_INPUT_BY.value] = True
311
+ for name in tdml_name:
312
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][name] = sql_name_to_use
313
+ # The rest of the SQL equivalents can be treated as alternate names
314
+ else:
315
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
316
+ sql_name=arg_name[i],
317
+ sql_name_to_use=sql_name_to_use,
318
+ alternate_to=True)
319
+
320
+ # The arg_name can be a dictionary where the keys are the Vantage versions,
321
+ # and each version has it's own list of acceptable names
322
+ if isinstance(arg_name, dict):
323
+ for vv, value in arg_name.items():
324
+ for i in range(len(value)):
325
+ if i == 0:
326
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
327
+ sql_name=value[i],
328
+ tdml_name=tdml_name,
329
+ tdml_type=python_type)
330
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][value[i].lower()][
331
+ famc.USED_IN_SEQUENCE_INPUT_BY.value] = True
332
+ for name in tdml_name:
333
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][name] = sql_name_to_use
334
+ else:
335
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
336
+ sql_name=value[i],
337
+ sql_name_to_use=sql_name_to_use,
338
+ alternate_to=True)
339
+
340
+ return function_map
341
+
342
+ def __resolve_formula_args(self, function_map, formula_args):
343
+ """
344
+ DESCRIPTION:
345
+ Internal function to add mapping for formula argument between it's SQL and teradataml counterparts.
346
+
347
+ PARAMETERS:
348
+ function_map:
349
+ Required Argument.
350
+ Specifies the function argument map to update with the information related to the formula argument.
351
+ Types: dict
352
+
353
+ formula_args:
354
+ Required Argument.
355
+ Specifies the list of dictionary elements from the function JSON file corresponding
356
+ to the formula argument.
357
+ Types: list
358
+
359
+ RAISES:
360
+ None.
361
+
362
+ RETURNS:
363
+ A dictionary - the updated function argument map.
364
+
365
+ EXAMPLES:
366
+ >>> self.__resolve_formula_args(function_map, formula_args)
367
+
368
+ """
369
+ arg_info_matrix = []
370
+ arg_info_matrix.append(["function_map", function_map, False, (dict)])
371
+ arg_info_matrix.append(["formula_args", formula_args, False, (list)])
372
+
373
+ # Make sure that a non-NULL value has been supplied for all mandatory arguments
374
+ _Validators._validate_missing_required_arguments(arg_info_matrix)
375
+
376
+ # Validate argument types
377
+ _Validators._validate_function_arguments(arg_info_matrix)
378
+
379
+ # Check if formula is split into dependent and independent clauses
380
+ found_dependent = False
381
+ for arg in formula_args:
382
+ # rOrderNum = 0 indicates it is dependent variable in the formula
383
+ if arg[famc.R_ORDER_NUM.value] == 0:
384
+ found_dependent = True
385
+ break
386
+
387
+ # Python type for formula is always str
388
+ python_type = str
389
+ tdml_name = famc.TDML_FORMULA_NAME.value
390
+ arg_counter = 0
391
+ for arg in formula_args:
392
+ arg_counter = arg_counter + 1
393
+ # Either the function needs a clear distinction between dependent
394
+ # and independent variables (Like DecisionForest), or just the list (like GLM)
395
+ if arg[famc.R_ORDER_NUM.value] == 0:
396
+ used_in_formula = famc.DEPENDENT_ATTR.value
397
+ else:
398
+ if found_dependent:
399
+ used_in_formula = famc.INDEPENDENT_ATTR.value
400
+ else:
401
+ used_in_formula = True
402
+
403
+ arg_name = arg[famc.NAME.value]
404
+ sql_name_to_use = self.__resolve_name(arg_name).lower()
405
+
406
+ if isinstance(arg_name, list):
407
+ for i in range(len(arg_name)):
408
+ if i == 0:
409
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
410
+ sql_name=arg_name[i],
411
+ tdml_name=tdml_name,
412
+ tdml_type=python_type)
413
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][arg_name[i].lower()][
414
+ famc.USED_IN_FORMULA.value] = used_in_formula
415
+ if arg_counter > 1:
416
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
417
+ tdml_name] = function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
418
+ tdml_name] + [sql_name_to_use]
419
+ else:
420
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
421
+ tdml_name] = [sql_name_to_use]
422
+ else:
423
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
424
+ sql_name=arg_name[i],
425
+ sql_name_to_use=sql_name_to_use,
426
+ alternate_to=True)
427
+
428
+ # The arg_name can be a dictionary where the keys are the Vantage versions,
429
+ # and each version has it's own list of acceptable names
430
+ if isinstance(arg_name, dict):
431
+ for vv, value in arg_name.items():
432
+ for i in range(len(value)):
433
+ # Handle all other arguments
434
+ if i == 0:
435
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
436
+ sql_name=value[i],
437
+ tdml_name=tdml_name,
438
+ tdml_type=python_type)
439
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][value[i].lower()][
440
+ famc.USED_IN_FORMULA.value] = used_in_formula
441
+ if arg_counter > 1:
442
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
443
+ tdml_name] = function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
444
+ tdml_name] + [sql_name_to_use]
445
+ else:
446
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
447
+ tdml_name] = [sql_name_to_use]
448
+ else:
449
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
450
+ sql_name=value[i],
451
+ sql_name_to_use=sql_name_to_use,
452
+ alternate_to=True)
453
+
454
+ return function_map
455
+
456
+ def __resolve_name(self, name_arg):
457
+ """
458
+ DESCRIPTION:
459
+ Internal function to resolve the SQL name for a given argument based on the Vantage version.
460
+
461
+ PARAMETERS:
462
+ name_arg:
463
+ Required Argument.
464
+ Specifies the name as defined in the function JSON file corresponding
465
+ to any argument.
466
+ Types: dict or list
467
+
468
+ RAISES:
469
+ None.
470
+
471
+ RETURNS:
472
+ A String representing the SQL name to use based on the Vantage version.
473
+
474
+ EXAMPLES:
475
+ >>> self.__resolve_name(['InputColumns', 'TargetColumns'])
476
+ InputColumns
477
+ >>> # Assuming Vantage version is 1.1
478
+ >>> self.__resolve_name({'Vantage 1.0': ['InputCols'], 'Vantage 1.1 GA': ['InputColumns', 'TargetColumns'])
479
+ InputColumns
480
+
481
+ """
482
+ # If the name_arg is of type dict, it means the argument has different names based on the Vantage version.
483
+ # If name_arg is of type list, it means the argument has alternate names too, and they haven't changed since
484
+ # the last release.
485
+ # If name_arg is of type str, it means that the it points to the name to use which hasn't changed.
486
+
487
+ if isinstance(name_arg, dict):
488
+ name_arg = name_arg[self._vantage_version]
489
+
490
+ if isinstance(name_arg, list):
491
+ name_arg = name_arg[0]
492
+
493
+ return name_arg
494
+
495
+ def __convert_rName_to_tdml(self, r_name):
496
+ """
497
+ DESCRIPTION:
498
+ Internal function to replace r_name to tdml_name by replacing '.' with '_'.
499
+
500
+ PARAMETERS:
501
+ r_name:
502
+ Required Argument.
503
+ A String representing the r name of any argument, input, output of a function, as mentioned in the
504
+ corresponding JSON file.
505
+ Types: str
506
+
507
+ RAISES:
508
+ TypeError
509
+
510
+ RETURNS:
511
+ A String representing the teradataml equivalent name for the given r name.
512
+
513
+ EXAMPLES:
514
+ >>> self.__convert_rName_to_tdml('sequence.column')
515
+ sequence_column
516
+
517
+ """
518
+ if not isinstance(r_name, str):
519
+ raise TypeError(Messages.get_message(MessageCodes.UNSUPPORTED_DATATYPE,
520
+ 'r_name', 'str'),
521
+ MessageCodes.UNSUPPORTED_DATATYPE)
522
+
523
+ if r_name is not None:
524
+ return r_name.replace(".", "_")
525
+
526
+ return r_name
527
+
528
+ def __add_function_input_output_entries(self, field, func_ip_op, function_map):
529
+ """
530
+ DESCRIPTION:
531
+ Internal function to add entries for the functions inputs or outputs to the function argument map.
532
+
533
+ PARAMETERS:
534
+ field:
535
+ Required Argument.
536
+ Specifies one of 'inputs' or 'outputs'.
537
+ Types: str
538
+
539
+ func_ip_op:
540
+ Required Argument.
541
+ Specifies the dictionary from the JSON corresponding to the the 'inputs' or 'ouputs'.
542
+ Types: dict
543
+
544
+ function_map:
545
+ Required Argument.
546
+ Specifies the function argument map to updated and return.
547
+ Types: dict
548
+
549
+ RAISES:
550
+ None.
551
+
552
+ RETURNS:
553
+ dict - function argument map updated with the requested information, 'input' or 'outputs'.
554
+
555
+ EXAMPLES:
556
+ >>> function_map = self.__add_function_input_output_entries(self, 'inputs', func_inputs, function_map)
557
+ """
558
+ for entry in func_ip_op:
559
+ sql_name = entry[famc.NAME.value]
560
+ tdml_name = self.__convert_rName_to_tdml(entry[famc.R_NAME.value])
561
+ sql_name_to_use = self.__resolve_name(sql_name).lower()
562
+
563
+ if isinstance(sql_name, list):
564
+ for i in range(len(sql_name)):
565
+ function_map[field][famc.SQL_TO_TDML.value][sql_name[i].lower()] = tdml_name
566
+ function_map[field][famc.TDML_TO_SQL.value][tdml_name] = sql_name_to_use
567
+
568
+ if isinstance(sql_name, dict):
569
+ for vv, value in sql_name.items():
570
+ for i in range(len(value)):
571
+ function_map[field][famc.SQL_TO_TDML.value][value[i].lower()] = tdml_name
572
+ function_map[field][famc.TDML_TO_SQL.value][tdml_name] = sql_name_to_use
573
+
574
+ return function_map
575
+
576
+ def __update_json_dict_for_function(self, input_output_arg_map, engine, function_name, function_json):
577
+ """
578
+ DESCRIPTION:
579
+ Internal function to load or update the input_output_arg_map property for the function specified.
580
+
581
+ PARAMETERS:
582
+ input_output_arg_map:
583
+ Required Argument.
584
+ Specified the dictionary to be updated with the map for the given function from the given engine.
585
+ Types: dict
586
+
587
+ engine:
588
+ Required Argument.
589
+ Specifies the name of the engine the function belongs to.
590
+ Acceptable values: 'ML Engine', 'Advanced SQL Engine'
591
+ Types: str
592
+
593
+ function_name:
594
+ Required Argument.
595
+ Specifies the name of the function to check and load the argument mapping for.
596
+ Types: str
597
+
598
+ function_json:
599
+ Required Argument.
600
+ Specified the dictionary representing the Json file for the function.
601
+ Types: dict
602
+
603
+ RAISES:
604
+ None.
605
+
606
+ RETURNS:
607
+ The updated input_output_arg dictionary.
608
+
609
+ Note:
610
+ The input_output_arg dictionary is of the following form:
611
+ {
612
+ 'ML Engine' : {
613
+ <func_name_11>: {
614
+ 'input': {
615
+ 'sql_to_tdml' : {
616
+ '<sql_input_name_1>': '<tdml_input_name_1>',
617
+ '<sql_input_name_2>': '<tdml_input_name_2>'
618
+ },
619
+ 'tdml_to_sql' : {
620
+ '<tdml_input_name_1>': '<sql_input_name_1>',
621
+ '<tdml_input_name_2>': '<sql_input_name_2>',
622
+ }
623
+ },
624
+ 'output': {
625
+ 'sql_to_tdml' : {
626
+ '<sql_input_name_1>': '<tdml_input_name_1>',
627
+ '<sql_input_name_2>': '<tdml_input_name_2>'
628
+ },
629
+ 'tdml_to_sql' : {
630
+ '<tdml_input_name_1>': '<sql_input_name_1>',
631
+ '<tdml_input_name_2>': '<sql_input_name_2>',
632
+ }
633
+ },
634
+ 'arguments': {
635
+ 'sql_to_tdml' : {
636
+ 'TargetColumns' : {
637
+ 'tdml_name': '<tdml_name>',
638
+ 'tdml_type': <python_type_tuple>,
639
+ 'used_in_formula': True or 'dependent' or 'independent',
640
+ 'alternate_to' : None
641
+ },
642
+ 'CategoricalColumns': {
643
+ 'tdml_name': '<tdml_name>',
644
+ 'tdml_type': <python_type_tuple>,
645
+ 'used_in_formula': True or 'dependent' or 'independent',
646
+ 'alternate_to' : None
647
+ },
648
+ 'Intercept1.0' : {
649
+ 'tdml_name': '<tdml_name>',
650
+ 'tdml_type': <python_type_tuple>,
651
+ 'used_in_formula': True or 'dependent' or 'independent',
652
+ 'alternate_to' : None
653
+ },
654
+ # This is how you would define an alternate name
655
+ 'InterceptNew1.1' : {
656
+ 'alternate_to' : 'sqlname1'
657
+ },
658
+ 'UniqueId': {
659
+ 'tdml_name': ['data_sequence_input_by', 'data1_sequence_input_by']
660
+ 'tdml_type': str,
661
+ 'used_in_sequence_by': True
662
+ }
663
+ },
664
+ 'tdml_to_sql' : {
665
+ # Keep one to one
666
+ 'formula' : ['<sql_name_1>', 'sql_name_2'],
667
+ 'data_sequence_input_by': ['UniqueId', 'SequenceInputBy'],
668
+ 'data1_sequence_input_by': ['UniqueId', 'SequenceInputBy'],
669
+ 'weight': 'WeightColumns'
670
+ }
671
+ }
672
+ },
673
+ <func_name_12>: {
674
+ }
675
+ },
676
+ 'Advanced SQL Engine' : {
677
+ <func_name_21>: {
678
+ },
679
+ <func_name_22>: {
680
+ }
681
+ }
682
+ }
683
+
684
+ EXAMPLE:
685
+ >>> self.__update_json_dict_for_function(input_output_arg_map, 'ML Engine', 'GLM', glm_json)
686
+
687
+ """
688
+ function_map = {}
689
+ # First, let's add the tdml name for the function
690
+ function_map[famc.FUNCTION_TDML_NAME.value] = function_json[famc.FUNCTION_TDML_NAME.value]
691
+ # Section corresponding to arguments
692
+ function_args = function_json[famc.ARGUMENT_CLAUSES.value]
693
+ # Section corresponding to inputs
694
+ function_inputs = function_json[famc.INPUT_TABLES.value]
695
+ function_outputs = None
696
+ if famc.OUTPUT_TABLES.value in function_json:
697
+ # Section corresponding to outputs
698
+ function_outputs = function_json[famc.OUTPUT_TABLES.value]
699
+
700
+ # Create Input dict
701
+ function_map[famc.INPUTS.value] = {}
702
+ function_map[famc.INPUTS.value][famc.SQL_TO_TDML.value] = {}
703
+ function_map[famc.INPUTS.value][famc.TDML_TO_SQL.value] = {}
704
+ function_map = self.__add_function_input_output_entries(field=famc.INPUTS.value,
705
+ func_ip_op=function_inputs,
706
+ function_map=function_map)
707
+
708
+ # Create output dict
709
+ function_map[famc.OUTPUTS.value] = {}
710
+ function_map[famc.OUTPUTS.value][famc.SQL_TO_TDML.value] = {}
711
+ function_map[famc.OUTPUTS.value][famc.TDML_TO_SQL.value] = {}
712
+ if function_outputs is not None:
713
+ function_map = self.__add_function_input_output_entries(field=famc.OUTPUTS.value,
714
+ func_ip_op=function_outputs,
715
+ function_map=function_map)
716
+ # Default output thrown back at the prompt - tdml_name is 'output'
717
+ function_map[famc.OUTPUTS.value][famc.SQL_TO_TDML.value][
718
+ famc.DEFAULT_OUTPUT.value] = famc.DEFAULT_OUTPUT_TDML_NAME_MULTIPLE.value
719
+ function_map[famc.OUTPUTS.value][famc.TDML_TO_SQL.value][
720
+ famc.DEFAULT_OUTPUT_TDML_NAME_MULTIPLE.value] = famc.DEFAULT_OUTPUT.value
721
+ else:
722
+ # Default output thrown back at the prompt - tdml_name is 'result'
723
+ function_map[famc.OUTPUTS.value][famc.SQL_TO_TDML.value][
724
+ famc.DEFAULT_OUTPUT.value] = famc.DEFAULT_OUTPUT_TDML_NAME_SINGLE.value
725
+ function_map[famc.OUTPUTS.value][famc.TDML_TO_SQL.value][
726
+ famc.DEFAULT_OUTPUT_TDML_NAME_SINGLE.value] = famc.DEFAULT_OUTPUT.value
727
+
728
+ # Create argument dict
729
+ function_map[famc.ARGUMENTS.value] = {}
730
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value] = {}
731
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value] = {}
732
+ formula_args = []
733
+ sequence_arg = None
734
+ for arg in function_args:
735
+ # Handle formula related args separately
736
+ if famc.R_FOMULA_USAGE.value in arg and arg[famc.R_FOMULA_USAGE.value] == True:
737
+ formula_args.append(arg)
738
+ continue
739
+
740
+ arg_name = arg[famc.NAME.value]
741
+ tdml_name = self.__convert_rName_to_tdml(arg[famc.R_NAME.value])
742
+ sql_name_to_use = self.__resolve_name(arg_name).lower()
743
+
744
+ # Handle sequence input arg separately
745
+ if tdml_name == famc.TDML_SEQUENCE_COLUMN_NAME.value:
746
+ sequence_arg = arg
747
+ continue
748
+
749
+ python_type = self.__resolve_arg_types(arg)
750
+
751
+ if isinstance(arg_name, list):
752
+ for i in range(len(arg_name)):
753
+ # Handle all other arguments
754
+ if i == 0:
755
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
756
+ sql_name=arg_name[i],
757
+ tdml_name=tdml_name,
758
+ tdml_type=python_type)
759
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
760
+ tdml_name] = sql_name_to_use
761
+ else:
762
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
763
+ sql_name=arg_name[i],
764
+ sql_name_to_use=sql_name_to_use,
765
+ alternate_to=True)
766
+
767
+ if isinstance(arg_name, dict):
768
+ for vv, value in arg_name.items():
769
+ for i in range(len(value)):
770
+ # Handle all other arguments
771
+ if i == 0:
772
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
773
+ sql_name=value[i],
774
+ tdml_name=tdml_name,
775
+ tdml_type=python_type)
776
+ function_map[famc.ARGUMENTS.value][famc.TDML_TO_SQL.value][
777
+ tdml_name] = sql_name_to_use
778
+ else:
779
+ function_map = self.__add_sql_to_tdml_entry(function_map=function_map,
780
+ sql_name=value[i],
781
+ sql_name_to_use=sql_name_to_use,
782
+ alternate_to=True)
783
+
784
+ if len(formula_args) > 0:
785
+ function_map = self.__resolve_formula_args(function_map, formula_args)
786
+
787
+ if sequence_arg is not None:
788
+ function_map = self.__resolve_sequence_input_args(function_map, sequence_arg)
789
+
790
+ # Finally, update the input_output_arg_map with an entry for the function
791
+ if engine not in input_output_arg_map:
792
+ input_output_arg_map[engine] = {}
793
+ input_output_arg_map[engine][function_name] = function_map
794
+
795
+ return input_output_arg_map
796
+
797
+ def __add_sql_to_tdml_entry(self, function_map, sql_name, tdml_name=None,
798
+ tdml_type=None, sql_name_to_use=None, alternate_to=False):
799
+ """
800
+ DESCRIPTION:
801
+ Internal function to add the SQL to teradataml entry for a function argument.
802
+
803
+ PARAMETERS:
804
+ function_map:
805
+ Required Argument.
806
+ Specifies the function argument map to update with the SQL to teradataml
807
+ entries for the arguments.
808
+ Types: dict
809
+
810
+ sql_name:
811
+ Required argument.
812
+ Specifies the SQL name of the argumemnt to add the mapper entry for.
813
+ Types: str
814
+
815
+ tdml_name:
816
+ Optional Argument. Required when alternate_to is set to False.
817
+ Specifies the teradataml name corresponding to the given SQL name.
818
+ When specified, must also specify tdml_type.
819
+ Types: str
820
+
821
+ tdml_type:
822
+ Optional Argument. Required when alternate_to is set to False.
823
+ Specifies the acceptable python data type for the argument.
824
+ When specified, must also specify tdml_name.
825
+ Types: Python type or tuple of Python types
826
+
827
+ sql_name_to_use:
828
+ Specifies the teradataml name to use in case there are alternate names.
829
+ Types: str
830
+
831
+ alternate_to:
832
+ Specifies whether the SQL Name is an alternate to another SQL name that we wish to use.
833
+ When set to True, must also specify sql_name and sql_name_to_use.
834
+ Types: bool
835
+ Default Value: False
836
+
837
+ RAISES:
838
+ None.
839
+
840
+ RETURNS:
841
+ dict - the updated function_map with the newly added entries.
842
+
843
+ EXAMPLES:
844
+ >>> function_map = self.__add_sql_to_tdml_entry(function_map, tdml_name, tdml_type)
845
+ """
846
+ if alternate_to:
847
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()] = {}
848
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()][
849
+ famc.ALTERNATE_TO.value] = sql_name_to_use
850
+ else:
851
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()] = {}
852
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()][
853
+ famc.TDML_NAME.value] = tdml_name
854
+ function_map[famc.ARGUMENTS.value][famc.SQL_TO_TDML.value][sql_name.lower()][
855
+ famc.TDML_TYPE.value] = tdml_type
856
+
857
+ return function_map
858
+
859
+ _argument_mapper = _ArgumentMapper()