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

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

Potentially problematic release.


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

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