teradataml 20.0.0.8__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.
Files changed (1208) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +2762 -0
  4. teradataml/__init__.py +78 -0
  5. teradataml/_version.py +11 -0
  6. teradataml/analytics/Transformations.py +2996 -0
  7. teradataml/analytics/__init__.py +82 -0
  8. teradataml/analytics/analytic_function_executor.py +2416 -0
  9. teradataml/analytics/analytic_query_generator.py +1050 -0
  10. teradataml/analytics/byom/H2OPredict.py +514 -0
  11. teradataml/analytics/byom/PMMLPredict.py +437 -0
  12. teradataml/analytics/byom/__init__.py +16 -0
  13. teradataml/analytics/json_parser/__init__.py +133 -0
  14. teradataml/analytics/json_parser/analytic_functions_argument.py +1805 -0
  15. teradataml/analytics/json_parser/json_store.py +191 -0
  16. teradataml/analytics/json_parser/metadata.py +1666 -0
  17. teradataml/analytics/json_parser/utils.py +805 -0
  18. teradataml/analytics/meta_class.py +236 -0
  19. teradataml/analytics/sqle/DecisionTreePredict.py +456 -0
  20. teradataml/analytics/sqle/NaiveBayesPredict.py +420 -0
  21. teradataml/analytics/sqle/__init__.py +128 -0
  22. teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -0
  23. teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -0
  24. teradataml/analytics/table_operator/__init__.py +11 -0
  25. teradataml/analytics/uaf/__init__.py +82 -0
  26. teradataml/analytics/utils.py +828 -0
  27. teradataml/analytics/valib.py +1617 -0
  28. teradataml/automl/__init__.py +5835 -0
  29. teradataml/automl/autodataprep/__init__.py +493 -0
  30. teradataml/automl/custom_json_utils.py +1625 -0
  31. teradataml/automl/data_preparation.py +1384 -0
  32. teradataml/automl/data_transformation.py +1254 -0
  33. teradataml/automl/feature_engineering.py +2273 -0
  34. teradataml/automl/feature_exploration.py +1873 -0
  35. teradataml/automl/model_evaluation.py +488 -0
  36. teradataml/automl/model_training.py +1407 -0
  37. teradataml/catalog/__init__.py +2 -0
  38. teradataml/catalog/byom.py +1759 -0
  39. teradataml/catalog/function_argument_mapper.py +859 -0
  40. teradataml/catalog/model_cataloging_utils.py +491 -0
  41. teradataml/clients/__init__.py +0 -0
  42. teradataml/clients/auth_client.py +137 -0
  43. teradataml/clients/keycloak_client.py +165 -0
  44. teradataml/clients/pkce_client.py +481 -0
  45. teradataml/common/__init__.py +1 -0
  46. teradataml/common/aed_utils.py +2078 -0
  47. teradataml/common/bulk_exposed_utils.py +113 -0
  48. teradataml/common/constants.py +1669 -0
  49. teradataml/common/deprecations.py +166 -0
  50. teradataml/common/exceptions.py +147 -0
  51. teradataml/common/formula.py +743 -0
  52. teradataml/common/garbagecollector.py +666 -0
  53. teradataml/common/logger.py +1261 -0
  54. teradataml/common/messagecodes.py +518 -0
  55. teradataml/common/messages.py +262 -0
  56. teradataml/common/pylogger.py +67 -0
  57. teradataml/common/sqlbundle.py +764 -0
  58. teradataml/common/td_coltype_code_to_tdtype.py +48 -0
  59. teradataml/common/utils.py +3166 -0
  60. teradataml/common/warnings.py +36 -0
  61. teradataml/common/wrapper_utils.py +625 -0
  62. teradataml/config/__init__.py +0 -0
  63. teradataml/config/dummy_file1.cfg +5 -0
  64. teradataml/config/dummy_file2.cfg +3 -0
  65. teradataml/config/sqlengine_alias_definitions_v1.0 +14 -0
  66. teradataml/config/sqlengine_alias_definitions_v1.1 +20 -0
  67. teradataml/config/sqlengine_alias_definitions_v1.3 +19 -0
  68. teradataml/context/__init__.py +0 -0
  69. teradataml/context/aed_context.py +223 -0
  70. teradataml/context/context.py +1462 -0
  71. teradataml/data/A_loan.csv +19 -0
  72. teradataml/data/BINARY_REALS_LEFT.csv +11 -0
  73. teradataml/data/BINARY_REALS_RIGHT.csv +11 -0
  74. teradataml/data/B_loan.csv +49 -0
  75. teradataml/data/BuoyData2.csv +17 -0
  76. teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -0
  77. teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -0
  78. teradataml/data/Convolve2RealsLeft.csv +5 -0
  79. teradataml/data/Convolve2RealsRight.csv +5 -0
  80. teradataml/data/Convolve2ValidLeft.csv +11 -0
  81. teradataml/data/Convolve2ValidRight.csv +11 -0
  82. teradataml/data/DFFTConv_Real_8_8.csv +65 -0
  83. teradataml/data/Employee.csv +5 -0
  84. teradataml/data/Employee_Address.csv +4 -0
  85. teradataml/data/Employee_roles.csv +5 -0
  86. teradataml/data/JulesBelvezeDummyData.csv +100 -0
  87. teradataml/data/Mall_customer_data.csv +201 -0
  88. teradataml/data/Orders1_12mf.csv +25 -0
  89. teradataml/data/Pi_loan.csv +7 -0
  90. teradataml/data/SMOOTHED_DATA.csv +7 -0
  91. teradataml/data/TestDFFT8.csv +9 -0
  92. teradataml/data/TestRiver.csv +109 -0
  93. teradataml/data/Traindata.csv +28 -0
  94. teradataml/data/__init__.py +0 -0
  95. teradataml/data/acf.csv +17 -0
  96. teradataml/data/adaboost_example.json +34 -0
  97. teradataml/data/adaboostpredict_example.json +24 -0
  98. teradataml/data/additional_table.csv +11 -0
  99. teradataml/data/admissions_test.csv +21 -0
  100. teradataml/data/admissions_train.csv +41 -0
  101. teradataml/data/admissions_train_nulls.csv +41 -0
  102. teradataml/data/advertising.csv +201 -0
  103. teradataml/data/ageandheight.csv +13 -0
  104. teradataml/data/ageandpressure.csv +31 -0
  105. teradataml/data/amazon_reviews_25.csv +26 -0
  106. teradataml/data/antiselect_example.json +36 -0
  107. teradataml/data/antiselect_input.csv +8 -0
  108. teradataml/data/antiselect_input_mixed_case.csv +8 -0
  109. teradataml/data/applicant_external.csv +7 -0
  110. teradataml/data/applicant_reference.csv +7 -0
  111. teradataml/data/apriori_example.json +22 -0
  112. teradataml/data/arima_example.json +9 -0
  113. teradataml/data/assortedtext_input.csv +8 -0
  114. teradataml/data/attribution_example.json +34 -0
  115. teradataml/data/attribution_sample_table.csv +27 -0
  116. teradataml/data/attribution_sample_table1.csv +6 -0
  117. teradataml/data/attribution_sample_table2.csv +11 -0
  118. teradataml/data/bank_churn.csv +10001 -0
  119. teradataml/data/bank_marketing.csv +11163 -0
  120. teradataml/data/bank_web_clicks1.csv +43 -0
  121. teradataml/data/bank_web_clicks2.csv +91 -0
  122. teradataml/data/bank_web_url.csv +85 -0
  123. teradataml/data/barrier.csv +2 -0
  124. teradataml/data/barrier_new.csv +3 -0
  125. teradataml/data/betweenness_example.json +14 -0
  126. teradataml/data/bike_sharing.csv +732 -0
  127. teradataml/data/bin_breaks.csv +8 -0
  128. teradataml/data/bin_fit_ip.csv +4 -0
  129. teradataml/data/binary_complex_left.csv +11 -0
  130. teradataml/data/binary_complex_right.csv +11 -0
  131. teradataml/data/binary_matrix_complex_left.csv +21 -0
  132. teradataml/data/binary_matrix_complex_right.csv +21 -0
  133. teradataml/data/binary_matrix_real_left.csv +21 -0
  134. teradataml/data/binary_matrix_real_right.csv +21 -0
  135. teradataml/data/blood2ageandweight.csv +26 -0
  136. teradataml/data/bmi.csv +501 -0
  137. teradataml/data/boston.csv +507 -0
  138. teradataml/data/boston2cols.csv +721 -0
  139. teradataml/data/breast_cancer.csv +570 -0
  140. teradataml/data/buoydata_mix.csv +11 -0
  141. teradataml/data/burst_data.csv +5 -0
  142. teradataml/data/burst_example.json +21 -0
  143. teradataml/data/byom_example.json +34 -0
  144. teradataml/data/bytes_table.csv +4 -0
  145. teradataml/data/cal_housing_ex_raw.csv +70 -0
  146. teradataml/data/callers.csv +7 -0
  147. teradataml/data/calls.csv +10 -0
  148. teradataml/data/cars_hist.csv +33 -0
  149. teradataml/data/cat_table.csv +25 -0
  150. teradataml/data/ccm_example.json +32 -0
  151. teradataml/data/ccm_input.csv +91 -0
  152. teradataml/data/ccm_input2.csv +13 -0
  153. teradataml/data/ccmexample.csv +101 -0
  154. teradataml/data/ccmprepare_example.json +9 -0
  155. teradataml/data/ccmprepare_input.csv +91 -0
  156. teradataml/data/cfilter_example.json +12 -0
  157. teradataml/data/changepointdetection_example.json +18 -0
  158. teradataml/data/changepointdetectionrt_example.json +8 -0
  159. teradataml/data/chi_sq.csv +3 -0
  160. teradataml/data/churn_data.csv +14 -0
  161. teradataml/data/churn_emission.csv +35 -0
  162. teradataml/data/churn_initial.csv +3 -0
  163. teradataml/data/churn_state_transition.csv +5 -0
  164. teradataml/data/citedges_2.csv +745 -0
  165. teradataml/data/citvertices_2.csv +1210 -0
  166. teradataml/data/clicks2.csv +16 -0
  167. teradataml/data/clickstream.csv +13 -0
  168. teradataml/data/clickstream1.csv +11 -0
  169. teradataml/data/closeness_example.json +16 -0
  170. teradataml/data/complaints.csv +21 -0
  171. teradataml/data/complaints_mini.csv +3 -0
  172. teradataml/data/complaints_test_tokenized.csv +353 -0
  173. teradataml/data/complaints_testtoken.csv +224 -0
  174. teradataml/data/complaints_tokens_model.csv +348 -0
  175. teradataml/data/complaints_tokens_test.csv +353 -0
  176. teradataml/data/complaints_traintoken.csv +472 -0
  177. teradataml/data/computers_category.csv +1001 -0
  178. teradataml/data/computers_test1.csv +1252 -0
  179. teradataml/data/computers_train1.csv +5009 -0
  180. teradataml/data/computers_train1_clustered.csv +5009 -0
  181. teradataml/data/confusionmatrix_example.json +9 -0
  182. teradataml/data/conversion_event_table.csv +3 -0
  183. teradataml/data/corr_input.csv +17 -0
  184. teradataml/data/correlation_example.json +11 -0
  185. teradataml/data/covid_confirm_sd.csv +83 -0
  186. teradataml/data/coxhazardratio_example.json +39 -0
  187. teradataml/data/coxph_example.json +15 -0
  188. teradataml/data/coxsurvival_example.json +28 -0
  189. teradataml/data/cpt.csv +41 -0
  190. teradataml/data/credit_ex_merged.csv +45 -0
  191. teradataml/data/creditcard_data.csv +1001 -0
  192. teradataml/data/customer_loyalty.csv +301 -0
  193. teradataml/data/customer_loyalty_newseq.csv +31 -0
  194. teradataml/data/customer_segmentation_test.csv +2628 -0
  195. teradataml/data/customer_segmentation_train.csv +8069 -0
  196. teradataml/data/dataframe_example.json +173 -0
  197. teradataml/data/decisionforest_example.json +37 -0
  198. teradataml/data/decisionforestpredict_example.json +38 -0
  199. teradataml/data/decisiontree_example.json +21 -0
  200. teradataml/data/decisiontreepredict_example.json +45 -0
  201. teradataml/data/dfft2_size4_real.csv +17 -0
  202. teradataml/data/dfft2_test_matrix16.csv +17 -0
  203. teradataml/data/dfft2conv_real_4_4.csv +65 -0
  204. teradataml/data/diabetes.csv +443 -0
  205. teradataml/data/diabetes_test.csv +89 -0
  206. teradataml/data/dict_table.csv +5 -0
  207. teradataml/data/docperterm_table.csv +4 -0
  208. teradataml/data/docs/__init__.py +1 -0
  209. teradataml/data/docs/byom/__init__.py +0 -0
  210. teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -0
  211. teradataml/data/docs/byom/docs/DataikuPredict.py +217 -0
  212. teradataml/data/docs/byom/docs/H2OPredict.py +325 -0
  213. teradataml/data/docs/byom/docs/ONNXEmbeddings.py +242 -0
  214. teradataml/data/docs/byom/docs/ONNXPredict.py +283 -0
  215. teradataml/data/docs/byom/docs/ONNXSeq2Seq.py +255 -0
  216. teradataml/data/docs/byom/docs/PMMLPredict.py +278 -0
  217. teradataml/data/docs/byom/docs/__init__.py +0 -0
  218. teradataml/data/docs/sqle/__init__.py +0 -0
  219. teradataml/data/docs/sqle/docs_17_10/Antiselect.py +83 -0
  220. teradataml/data/docs/sqle/docs_17_10/Attribution.py +200 -0
  221. teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +172 -0
  222. teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -0
  223. teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -0
  224. teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -0
  225. teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +86 -0
  226. teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +96 -0
  227. teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -0
  228. teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +152 -0
  229. teradataml/data/docs/sqle/docs_17_10/FTest.py +161 -0
  230. teradataml/data/docs/sqle/docs_17_10/FillRowId.py +83 -0
  231. teradataml/data/docs/sqle/docs_17_10/Fit.py +88 -0
  232. teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -0
  233. teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +85 -0
  234. teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +82 -0
  235. teradataml/data/docs/sqle/docs_17_10/Histogram.py +165 -0
  236. teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -0
  237. teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +209 -0
  238. teradataml/data/docs/sqle/docs_17_10/NPath.py +266 -0
  239. teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -0
  240. teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -0
  241. teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -0
  242. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +135 -0
  243. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -0
  244. teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +166 -0
  245. teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -0
  246. teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -0
  247. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +112 -0
  248. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -0
  249. teradataml/data/docs/sqle/docs_17_10/QQNorm.py +105 -0
  250. teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +110 -0
  251. teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +118 -0
  252. teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -0
  253. teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +153 -0
  254. teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -0
  255. teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -0
  256. teradataml/data/docs/sqle/docs_17_10/Sessionize.py +114 -0
  257. teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -0
  258. teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -0
  259. teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -0
  260. teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +146 -0
  261. teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -0
  262. teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +142 -0
  263. teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -0
  264. teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -0
  265. teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -0
  266. teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -0
  267. teradataml/data/docs/sqle/docs_17_10/__init__.py +0 -0
  268. teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -0
  269. teradataml/data/docs/sqle/docs_17_20/Antiselect.py +83 -0
  270. teradataml/data/docs/sqle/docs_17_20/Apriori.py +138 -0
  271. teradataml/data/docs/sqle/docs_17_20/Attribution.py +201 -0
  272. teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +172 -0
  273. teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -0
  274. teradataml/data/docs/sqle/docs_17_20/CFilter.py +132 -0
  275. teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -0
  276. teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -0
  277. teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -0
  278. teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +86 -0
  279. teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +246 -0
  280. teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -0
  281. teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +280 -0
  282. teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -0
  283. teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +136 -0
  284. teradataml/data/docs/sqle/docs_17_20/FTest.py +240 -0
  285. teradataml/data/docs/sqle/docs_17_20/FillRowId.py +83 -0
  286. teradataml/data/docs/sqle/docs_17_20/Fit.py +88 -0
  287. teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -0
  288. teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +415 -0
  289. teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -0
  290. teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -0
  291. teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -0
  292. teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +109 -0
  293. teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +106 -0
  294. teradataml/data/docs/sqle/docs_17_20/Histogram.py +224 -0
  295. teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -0
  296. teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -0
  297. teradataml/data/docs/sqle/docs_17_20/KNN.py +215 -0
  298. teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -0
  299. teradataml/data/docs/sqle/docs_17_20/NERExtractor.py +121 -0
  300. teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +209 -0
  301. teradataml/data/docs/sqle/docs_17_20/NPath.py +266 -0
  302. teradataml/data/docs/sqle/docs_17_20/NaiveBayes.py +162 -0
  303. teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -0
  304. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -0
  305. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +127 -0
  306. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +119 -0
  307. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -0
  308. teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -0
  309. teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -0
  310. teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -0
  311. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +231 -0
  312. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -0
  313. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +220 -0
  314. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -0
  315. teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +191 -0
  316. teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -0
  317. teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -0
  318. teradataml/data/docs/sqle/docs_17_20/Pivoting.py +279 -0
  319. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +112 -0
  320. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -0
  321. teradataml/data/docs/sqle/docs_17_20/QQNorm.py +105 -0
  322. teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -0
  323. teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +155 -0
  324. teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -0
  325. teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -0
  326. teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -0
  327. teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +109 -0
  328. teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +118 -0
  329. teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -0
  330. teradataml/data/docs/sqle/docs_17_20/SMOTE.py +212 -0
  331. teradataml/data/docs/sqle/docs_17_20/SVM.py +414 -0
  332. teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -0
  333. teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +153 -0
  334. teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -0
  335. teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -0
  336. teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -0
  337. teradataml/data/docs/sqle/docs_17_20/Sessionize.py +114 -0
  338. teradataml/data/docs/sqle/docs_17_20/Shap.py +225 -0
  339. teradataml/data/docs/sqle/docs_17_20/Silhouette.py +153 -0
  340. teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -0
  341. teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -0
  342. teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -0
  343. teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +146 -0
  344. teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -0
  345. teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -0
  346. teradataml/data/docs/sqle/docs_17_20/TDNaiveBayesPredict.py +189 -0
  347. teradataml/data/docs/sqle/docs_17_20/TFIDF.py +142 -0
  348. teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +267 -0
  349. teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -0
  350. teradataml/data/docs/sqle/docs_17_20/TextMorph.py +119 -0
  351. teradataml/data/docs/sqle/docs_17_20/TextParser.py +224 -0
  352. teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +160 -0
  353. teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -0
  354. teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +142 -0
  355. teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -0
  356. teradataml/data/docs/sqle/docs_17_20/Unpivoting.py +216 -0
  357. teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +169 -0
  358. teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -0
  359. teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -0
  360. teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +237 -0
  361. teradataml/data/docs/sqle/docs_17_20/XGBoost.py +362 -0
  362. teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -0
  363. teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -0
  364. teradataml/data/docs/sqle/docs_17_20/__init__.py +0 -0
  365. teradataml/data/docs/tableoperator/__init__.py +0 -0
  366. teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +430 -0
  367. teradataml/data/docs/tableoperator/docs_17_00/__init__.py +0 -0
  368. teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +430 -0
  369. teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +348 -0
  370. teradataml/data/docs/tableoperator/docs_17_05/__init__.py +0 -0
  371. teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +429 -0
  372. teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +348 -0
  373. teradataml/data/docs/tableoperator/docs_17_10/__init__.py +0 -0
  374. teradataml/data/docs/tableoperator/docs_17_20/Image2Matrix.py +118 -0
  375. teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +440 -0
  376. teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +387 -0
  377. teradataml/data/docs/tableoperator/docs_17_20/__init__.py +0 -0
  378. teradataml/data/docs/uaf/__init__.py +0 -0
  379. teradataml/data/docs/uaf/docs_17_20/ACF.py +186 -0
  380. teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +370 -0
  381. teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +172 -0
  382. teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +161 -0
  383. teradataml/data/docs/uaf/docs_17_20/ArimaXEstimate.py +293 -0
  384. teradataml/data/docs/uaf/docs_17_20/AutoArima.py +354 -0
  385. teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +248 -0
  386. teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -0
  387. teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +178 -0
  388. teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +175 -0
  389. teradataml/data/docs/uaf/docs_17_20/Convolve.py +230 -0
  390. teradataml/data/docs/uaf/docs_17_20/Convolve2.py +218 -0
  391. teradataml/data/docs/uaf/docs_17_20/CopyArt.py +145 -0
  392. teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +185 -0
  393. teradataml/data/docs/uaf/docs_17_20/DFFT.py +204 -0
  394. teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -0
  395. teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +216 -0
  396. teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +192 -0
  397. teradataml/data/docs/uaf/docs_17_20/DIFF.py +175 -0
  398. teradataml/data/docs/uaf/docs_17_20/DTW.py +180 -0
  399. teradataml/data/docs/uaf/docs_17_20/DWT.py +235 -0
  400. teradataml/data/docs/uaf/docs_17_20/DWT2D.py +217 -0
  401. teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +142 -0
  402. teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +184 -0
  403. teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +185 -0
  404. teradataml/data/docs/uaf/docs_17_20/FilterFactory1d.py +160 -0
  405. teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -0
  406. teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +206 -0
  407. teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +143 -0
  408. teradataml/data/docs/uaf/docs_17_20/GoldfeldQuandt.py +198 -0
  409. teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +260 -0
  410. teradataml/data/docs/uaf/docs_17_20/IDFFT.py +165 -0
  411. teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +191 -0
  412. teradataml/data/docs/uaf/docs_17_20/IDWT.py +236 -0
  413. teradataml/data/docs/uaf/docs_17_20/IDWT2D.py +226 -0
  414. teradataml/data/docs/uaf/docs_17_20/IQR.py +134 -0
  415. teradataml/data/docs/uaf/docs_17_20/InputValidator.py +121 -0
  416. teradataml/data/docs/uaf/docs_17_20/LineSpec.py +156 -0
  417. teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +215 -0
  418. teradataml/data/docs/uaf/docs_17_20/MAMean.py +174 -0
  419. teradataml/data/docs/uaf/docs_17_20/MInfo.py +134 -0
  420. teradataml/data/docs/uaf/docs_17_20/Matrix2Image.py +297 -0
  421. teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +145 -0
  422. teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +191 -0
  423. teradataml/data/docs/uaf/docs_17_20/PACF.py +157 -0
  424. teradataml/data/docs/uaf/docs_17_20/Portman.py +217 -0
  425. teradataml/data/docs/uaf/docs_17_20/PowerSpec.py +203 -0
  426. teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +155 -0
  427. teradataml/data/docs/uaf/docs_17_20/Resample.py +237 -0
  428. teradataml/data/docs/uaf/docs_17_20/SAX.py +246 -0
  429. teradataml/data/docs/uaf/docs_17_20/SInfo.py +123 -0
  430. teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +173 -0
  431. teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +174 -0
  432. teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +171 -0
  433. teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +164 -0
  434. teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +180 -0
  435. teradataml/data/docs/uaf/docs_17_20/Smoothma.py +208 -0
  436. teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +151 -0
  437. teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -0
  438. teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +202 -0
  439. teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +171 -0
  440. teradataml/data/docs/uaf/docs_17_20/WindowDFFT.py +368 -0
  441. teradataml/data/docs/uaf/docs_17_20/__init__.py +0 -0
  442. teradataml/data/dtw_example.json +18 -0
  443. teradataml/data/dtw_t1.csv +11 -0
  444. teradataml/data/dtw_t2.csv +4 -0
  445. teradataml/data/dwt2d_dataTable.csv +65 -0
  446. teradataml/data/dwt2d_example.json +16 -0
  447. teradataml/data/dwt_dataTable.csv +8 -0
  448. teradataml/data/dwt_example.json +15 -0
  449. teradataml/data/dwt_filterTable.csv +3 -0
  450. teradataml/data/dwt_filter_dim.csv +5 -0
  451. teradataml/data/emission.csv +9 -0
  452. teradataml/data/emp_table_by_dept.csv +19 -0
  453. teradataml/data/employee_info.csv +4 -0
  454. teradataml/data/employee_table.csv +6 -0
  455. teradataml/data/excluding_event_table.csv +2 -0
  456. teradataml/data/finance_data.csv +6 -0
  457. teradataml/data/finance_data2.csv +61 -0
  458. teradataml/data/finance_data3.csv +93 -0
  459. teradataml/data/finance_data4.csv +13 -0
  460. teradataml/data/fish.csv +160 -0
  461. teradataml/data/fm_blood2ageandweight.csv +26 -0
  462. teradataml/data/fmeasure_example.json +12 -0
  463. teradataml/data/followers_leaders.csv +10 -0
  464. teradataml/data/fpgrowth_example.json +12 -0
  465. teradataml/data/frequentpaths_example.json +29 -0
  466. teradataml/data/friends.csv +9 -0
  467. teradataml/data/fs_input.csv +33 -0
  468. teradataml/data/fs_input1.csv +33 -0
  469. teradataml/data/genData.csv +513 -0
  470. teradataml/data/geodataframe_example.json +40 -0
  471. teradataml/data/glass_types.csv +215 -0
  472. teradataml/data/glm_admissions_model.csv +12 -0
  473. teradataml/data/glm_example.json +56 -0
  474. teradataml/data/glml1l2_example.json +28 -0
  475. teradataml/data/glml1l2predict_example.json +54 -0
  476. teradataml/data/glmpredict_example.json +54 -0
  477. teradataml/data/gq_t1.csv +21 -0
  478. teradataml/data/grocery_transaction.csv +19 -0
  479. teradataml/data/hconvolve_complex_right.csv +5 -0
  480. teradataml/data/hconvolve_complex_rightmulti.csv +5 -0
  481. teradataml/data/histogram_example.json +12 -0
  482. teradataml/data/hmmdecoder_example.json +79 -0
  483. teradataml/data/hmmevaluator_example.json +25 -0
  484. teradataml/data/hmmsupervised_example.json +10 -0
  485. teradataml/data/hmmunsupervised_example.json +8 -0
  486. teradataml/data/hnsw_alter_data.csv +5 -0
  487. teradataml/data/hnsw_data.csv +10 -0
  488. teradataml/data/house_values.csv +12 -0
  489. teradataml/data/house_values2.csv +13 -0
  490. teradataml/data/housing_cat.csv +7 -0
  491. teradataml/data/housing_data.csv +9 -0
  492. teradataml/data/housing_test.csv +47 -0
  493. teradataml/data/housing_test_binary.csv +47 -0
  494. teradataml/data/housing_train.csv +493 -0
  495. teradataml/data/housing_train_attribute.csv +5 -0
  496. teradataml/data/housing_train_binary.csv +437 -0
  497. teradataml/data/housing_train_parameter.csv +2 -0
  498. teradataml/data/housing_train_response.csv +493 -0
  499. teradataml/data/housing_train_segment.csv +201 -0
  500. teradataml/data/ibm_stock.csv +370 -0
  501. teradataml/data/ibm_stock1.csv +370 -0
  502. teradataml/data/identitymatch_example.json +22 -0
  503. teradataml/data/idf_table.csv +4 -0
  504. teradataml/data/idwt2d_dataTable.csv +5 -0
  505. teradataml/data/idwt_dataTable.csv +8 -0
  506. teradataml/data/idwt_filterTable.csv +3 -0
  507. teradataml/data/impressions.csv +101 -0
  508. teradataml/data/inflation.csv +21 -0
  509. teradataml/data/initial.csv +3 -0
  510. teradataml/data/insect2Cols.csv +61 -0
  511. teradataml/data/insect_sprays.csv +13 -0
  512. teradataml/data/insurance.csv +1339 -0
  513. teradataml/data/interpolator_example.json +13 -0
  514. teradataml/data/interval_data.csv +5 -0
  515. teradataml/data/iris_altinput.csv +481 -0
  516. teradataml/data/iris_attribute_output.csv +8 -0
  517. teradataml/data/iris_attribute_test.csv +121 -0
  518. teradataml/data/iris_attribute_train.csv +481 -0
  519. teradataml/data/iris_category_expect_predict.csv +31 -0
  520. teradataml/data/iris_data.csv +151 -0
  521. teradataml/data/iris_input.csv +151 -0
  522. teradataml/data/iris_response_train.csv +121 -0
  523. teradataml/data/iris_test.csv +31 -0
  524. teradataml/data/iris_train.csv +121 -0
  525. teradataml/data/join_table1.csv +4 -0
  526. teradataml/data/join_table2.csv +4 -0
  527. teradataml/data/jsons/anly_function_name.json +7 -0
  528. teradataml/data/jsons/byom/ONNXSeq2Seq.json +287 -0
  529. teradataml/data/jsons/byom/dataikupredict.json +148 -0
  530. teradataml/data/jsons/byom/datarobotpredict.json +147 -0
  531. teradataml/data/jsons/byom/h2opredict.json +195 -0
  532. teradataml/data/jsons/byom/onnxembeddings.json +267 -0
  533. teradataml/data/jsons/byom/onnxpredict.json +187 -0
  534. teradataml/data/jsons/byom/pmmlpredict.json +147 -0
  535. teradataml/data/jsons/paired_functions.json +450 -0
  536. teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -0
  537. teradataml/data/jsons/sqle/16.20/Attribution.json +249 -0
  538. teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -0
  539. teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -0
  540. teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -0
  541. teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -0
  542. teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -0
  543. teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -0
  544. teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -0
  545. teradataml/data/jsons/sqle/16.20/Pack.json +98 -0
  546. teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -0
  547. teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -0
  548. teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -0
  549. teradataml/data/jsons/sqle/16.20/Unpack.json +166 -0
  550. teradataml/data/jsons/sqle/16.20/nPath.json +269 -0
  551. teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -0
  552. teradataml/data/jsons/sqle/17.00/Attribution.json +249 -0
  553. teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -0
  554. teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -0
  555. teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -0
  556. teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -0
  557. teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -0
  558. teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -0
  559. teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -0
  560. teradataml/data/jsons/sqle/17.00/Pack.json +98 -0
  561. teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -0
  562. teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -0
  563. teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -0
  564. teradataml/data/jsons/sqle/17.00/Unpack.json +166 -0
  565. teradataml/data/jsons/sqle/17.00/nPath.json +269 -0
  566. teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -0
  567. teradataml/data/jsons/sqle/17.05/Attribution.json +249 -0
  568. teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -0
  569. teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -0
  570. teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -0
  571. teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -0
  572. teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -0
  573. teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -0
  574. teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -0
  575. teradataml/data/jsons/sqle/17.05/Pack.json +98 -0
  576. teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -0
  577. teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -0
  578. teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -0
  579. teradataml/data/jsons/sqle/17.05/Unpack.json +166 -0
  580. teradataml/data/jsons/sqle/17.05/nPath.json +269 -0
  581. teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -0
  582. teradataml/data/jsons/sqle/17.10/Attribution.json +249 -0
  583. teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -0
  584. teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +172 -0
  585. teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -0
  586. teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -0
  587. teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -0
  588. teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -0
  589. teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -0
  590. teradataml/data/jsons/sqle/17.10/Pack.json +133 -0
  591. teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -0
  592. teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -0
  593. teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -0
  594. teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -0
  595. teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -0
  596. teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +54 -0
  597. teradataml/data/jsons/sqle/17.10/TD_Chisq.json +68 -0
  598. teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +54 -0
  599. teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +69 -0
  600. teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -0
  601. teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +52 -0
  602. teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -0
  603. teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -0
  604. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +53 -0
  605. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +53 -0
  606. teradataml/data/jsons/sqle/17.10/TD_Histogram.json +133 -0
  607. teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -0
  608. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +183 -0
  609. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +66 -0
  610. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +197 -0
  611. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -0
  612. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -0
  613. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -0
  614. teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +112 -0
  615. teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -0
  616. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +128 -0
  617. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +71 -0
  618. teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +157 -0
  619. teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +71 -0
  620. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +148 -0
  621. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -0
  622. teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -0
  623. teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +119 -0
  624. teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +53 -0
  625. teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +53 -0
  626. teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -0
  627. teradataml/data/jsons/sqle/17.10/Unpack.json +188 -0
  628. teradataml/data/jsons/sqle/17.10/nPath.json +269 -0
  629. teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -0
  630. teradataml/data/jsons/sqle/17.20/Attribution.json +249 -0
  631. teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -0
  632. teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -0
  633. teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -0
  634. teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -0
  635. teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -0
  636. teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -0
  637. teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -0
  638. teradataml/data/jsons/sqle/17.20/Pack.json +133 -0
  639. teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -0
  640. teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -0
  641. teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -0
  642. teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +149 -0
  643. teradataml/data/jsons/sqle/17.20/TD_Apriori.json +181 -0
  644. teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -0
  645. teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -0
  646. teradataml/data/jsons/sqle/17.20/TD_CFilter.json +118 -0
  647. teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -0
  648. teradataml/data/jsons/sqle/17.20/TD_Chisq.json +68 -0
  649. teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +146 -0
  650. teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -0
  651. teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -0
  652. teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -0
  653. teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +260 -0
  654. teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -0
  655. teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -0
  656. teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -0
  657. teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -0
  658. teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -0
  659. teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -0
  660. teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -0
  661. teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -0
  662. teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -0
  663. teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -0
  664. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -0
  665. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -0
  666. teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -0
  667. teradataml/data/jsons/sqle/17.20/TD_KMeans.json +232 -0
  668. teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +87 -0
  669. teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -0
  670. teradataml/data/jsons/sqle/17.20/TD_NERExtractor.json +145 -0
  671. teradataml/data/jsons/sqle/17.20/TD_NaiveBayes.json +193 -0
  672. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesPredict.json +212 -0
  673. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -0
  674. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -0
  675. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -0
  676. teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -0
  677. teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +316 -0
  678. teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +124 -0
  679. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -0
  680. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -0
  681. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -0
  682. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -0
  683. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -0
  684. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -0
  685. teradataml/data/jsons/sqle/17.20/TD_Pivoting.json +280 -0
  686. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -0
  687. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -0
  688. teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -0
  689. teradataml/data/jsons/sqle/17.20/TD_ROC.json +179 -0
  690. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +179 -0
  691. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +74 -0
  692. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -0
  693. teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +138 -0
  694. teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -0
  695. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +128 -0
  696. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +71 -0
  697. teradataml/data/jsons/sqle/17.20/TD_SMOTE.json +267 -0
  698. teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -0
  699. teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -0
  700. teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +310 -0
  701. teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +120 -0
  702. teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +194 -0
  703. teradataml/data/jsons/sqle/17.20/TD_Shap.json +221 -0
  704. teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +143 -0
  705. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -0
  706. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -0
  707. teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -0
  708. teradataml/data/jsons/sqle/17.20/TD_TFIDF.json +162 -0
  709. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -0
  710. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -0
  711. teradataml/data/jsons/sqle/17.20/TD_TextMorph.json +134 -0
  712. teradataml/data/jsons/sqle/17.20/TD_TextParser.json +297 -0
  713. teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -0
  714. teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -0
  715. teradataml/data/jsons/sqle/17.20/TD_Unpivoting.json +235 -0
  716. teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +183 -0
  717. teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +53 -0
  718. teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +53 -0
  719. teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -0
  720. teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -0
  721. teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -0
  722. teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -0
  723. teradataml/data/jsons/sqle/17.20/Unpack.json +188 -0
  724. teradataml/data/jsons/sqle/17.20/nPath.json +269 -0
  725. teradataml/data/jsons/sqle/20.00/AI_AnalyzeSentiment.json +370 -0
  726. teradataml/data/jsons/sqle/20.00/AI_AskLLM.json +460 -0
  727. teradataml/data/jsons/sqle/20.00/AI_DetectLanguage.json +385 -0
  728. teradataml/data/jsons/sqle/20.00/AI_ExtractKeyPhrases.json +369 -0
  729. teradataml/data/jsons/sqle/20.00/AI_MaskPII.json +369 -0
  730. teradataml/data/jsons/sqle/20.00/AI_RecognizeEntities.json +369 -0
  731. teradataml/data/jsons/sqle/20.00/AI_RecognizePIIEntities.json +369 -0
  732. teradataml/data/jsons/sqle/20.00/AI_TextClassifier.json +400 -0
  733. teradataml/data/jsons/sqle/20.00/AI_TextEmbeddings.json +401 -0
  734. teradataml/data/jsons/sqle/20.00/AI_TextSummarize.json +384 -0
  735. teradataml/data/jsons/sqle/20.00/AI_TextTranslate.json +384 -0
  736. teradataml/data/jsons/sqle/20.00/TD_API_AzureML.json +151 -0
  737. teradataml/data/jsons/sqle/20.00/TD_API_Sagemaker.json +182 -0
  738. teradataml/data/jsons/sqle/20.00/TD_API_VertexAI.json +183 -0
  739. teradataml/data/jsons/sqle/20.00/TD_HNSW.json +296 -0
  740. teradataml/data/jsons/sqle/20.00/TD_HNSWPredict.json +206 -0
  741. teradataml/data/jsons/sqle/20.00/TD_HNSWSummary.json +32 -0
  742. teradataml/data/jsons/sqle/20.00/TD_KMeans.json +250 -0
  743. teradataml/data/jsons/sqle/20.00/TD_SMOTE.json +266 -0
  744. teradataml/data/jsons/sqle/20.00/TD_VectorDistance.json +278 -0
  745. teradataml/data/jsons/storedprocedure/17.20/TD_COPYART.json +71 -0
  746. teradataml/data/jsons/storedprocedure/17.20/TD_FILTERFACTORY1D.json +150 -0
  747. teradataml/data/jsons/tableoperator/17.00/read_nos.json +198 -0
  748. teradataml/data/jsons/tableoperator/17.05/read_nos.json +198 -0
  749. teradataml/data/jsons/tableoperator/17.05/write_nos.json +195 -0
  750. teradataml/data/jsons/tableoperator/17.10/read_nos.json +184 -0
  751. teradataml/data/jsons/tableoperator/17.10/write_nos.json +195 -0
  752. teradataml/data/jsons/tableoperator/17.20/IMAGE2MATRIX.json +53 -0
  753. teradataml/data/jsons/tableoperator/17.20/read_nos.json +183 -0
  754. teradataml/data/jsons/tableoperator/17.20/write_nos.json +224 -0
  755. teradataml/data/jsons/uaf/17.20/TD_ACF.json +132 -0
  756. teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +396 -0
  757. teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +77 -0
  758. teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +153 -0
  759. teradataml/data/jsons/uaf/17.20/TD_ARIMAXESTIMATE.json +362 -0
  760. teradataml/data/jsons/uaf/17.20/TD_AUTOARIMA.json +469 -0
  761. teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +107 -0
  762. teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +106 -0
  763. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +89 -0
  764. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +104 -0
  765. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +78 -0
  766. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +66 -0
  767. teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +87 -0
  768. teradataml/data/jsons/uaf/17.20/TD_DFFT.json +134 -0
  769. teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +144 -0
  770. teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -0
  771. teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +108 -0
  772. teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +78 -0
  773. teradataml/data/jsons/uaf/17.20/TD_DIFF.json +92 -0
  774. teradataml/data/jsons/uaf/17.20/TD_DTW.json +114 -0
  775. teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +101 -0
  776. teradataml/data/jsons/uaf/17.20/TD_DWT.json +173 -0
  777. teradataml/data/jsons/uaf/17.20/TD_DWT2D.json +160 -0
  778. teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +39 -0
  779. teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +101 -0
  780. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +85 -0
  781. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +71 -0
  782. teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +139 -0
  783. teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECASTER.json +313 -0
  784. teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +58 -0
  785. teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +81 -0
  786. teradataml/data/jsons/uaf/17.20/TD_IDWT.json +162 -0
  787. teradataml/data/jsons/uaf/17.20/TD_IDWT2D.json +149 -0
  788. teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +64 -0
  789. teradataml/data/jsons/uaf/17.20/TD_IQR.json +117 -0
  790. teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +182 -0
  791. teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +103 -0
  792. teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +181 -0
  793. teradataml/data/jsons/uaf/17.20/TD_MATRIX2IMAGE.json +209 -0
  794. teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +68 -0
  795. teradataml/data/jsons/uaf/17.20/TD_MINFO.json +67 -0
  796. teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +179 -0
  797. teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -0
  798. teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +119 -0
  799. teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -0
  800. teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +98 -0
  801. teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +194 -0
  802. teradataml/data/jsons/uaf/17.20/TD_SAX.json +210 -0
  803. teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +143 -0
  804. teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +90 -0
  805. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +80 -0
  806. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +68 -0
  807. teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -0
  808. teradataml/data/jsons/uaf/17.20/TD_SINFO.json +58 -0
  809. teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +163 -0
  810. teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +101 -0
  811. teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +112 -0
  812. teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -0
  813. teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +78 -0
  814. teradataml/data/jsons/uaf/17.20/TD_WINDOWDFFT.json +410 -0
  815. teradataml/data/kmeans_example.json +23 -0
  816. teradataml/data/kmeans_table.csv +10 -0
  817. teradataml/data/kmeans_us_arrests_data.csv +51 -0
  818. teradataml/data/knn_example.json +19 -0
  819. teradataml/data/knnrecommender_example.json +7 -0
  820. teradataml/data/knnrecommenderpredict_example.json +12 -0
  821. teradataml/data/lar_example.json +17 -0
  822. teradataml/data/larpredict_example.json +30 -0
  823. teradataml/data/lc_new_predictors.csv +5 -0
  824. teradataml/data/lc_new_reference.csv +9 -0
  825. teradataml/data/lda_example.json +9 -0
  826. teradataml/data/ldainference_example.json +15 -0
  827. teradataml/data/ldatopicsummary_example.json +9 -0
  828. teradataml/data/levendist_input.csv +13 -0
  829. teradataml/data/levenshteindistance_example.json +10 -0
  830. teradataml/data/linreg_example.json +10 -0
  831. teradataml/data/load_example_data.py +350 -0
  832. teradataml/data/loan_prediction.csv +295 -0
  833. teradataml/data/lungcancer.csv +138 -0
  834. teradataml/data/mappingdata.csv +12 -0
  835. teradataml/data/medical_readings.csv +101 -0
  836. teradataml/data/milk_timeseries.csv +157 -0
  837. teradataml/data/min_max_titanic.csv +4 -0
  838. teradataml/data/minhash_example.json +6 -0
  839. teradataml/data/ml_ratings.csv +7547 -0
  840. teradataml/data/ml_ratings_10.csv +2445 -0
  841. teradataml/data/mobile_data.csv +13 -0
  842. teradataml/data/model1_table.csv +5 -0
  843. teradataml/data/model2_table.csv +5 -0
  844. teradataml/data/models/License_file.txt +1 -0
  845. teradataml/data/models/License_file_empty.txt +0 -0
  846. teradataml/data/models/dataiku_iris_data_ann_thin +0 -0
  847. teradataml/data/models/dr_iris_rf +0 -0
  848. teradataml/data/models/iris_db_dt_model_sklearn.onnx +0 -0
  849. teradataml/data/models/iris_db_dt_model_sklearn_floattensor.onnx +0 -0
  850. teradataml/data/models/iris_db_glm_model.pmml +57 -0
  851. teradataml/data/models/iris_db_xgb_model.pmml +4471 -0
  852. teradataml/data/models/iris_kmeans_model +0 -0
  853. teradataml/data/models/iris_mojo_glm_h2o_model +0 -0
  854. teradataml/data/models/iris_mojo_xgb_h2o_model +0 -0
  855. teradataml/data/modularity_example.json +12 -0
  856. teradataml/data/movavg_example.json +8 -0
  857. teradataml/data/mtx1.csv +7 -0
  858. teradataml/data/mtx2.csv +13 -0
  859. teradataml/data/multi_model_classification.csv +401 -0
  860. teradataml/data/multi_model_regression.csv +401 -0
  861. teradataml/data/mvdfft8.csv +9 -0
  862. teradataml/data/naivebayes_example.json +10 -0
  863. teradataml/data/naivebayespredict_example.json +19 -0
  864. teradataml/data/naivebayestextclassifier2_example.json +7 -0
  865. teradataml/data/naivebayestextclassifier_example.json +8 -0
  866. teradataml/data/naivebayestextclassifierpredict_example.json +32 -0
  867. teradataml/data/name_Find_configure.csv +10 -0
  868. teradataml/data/namedentityfinder_example.json +14 -0
  869. teradataml/data/namedentityfinderevaluator_example.json +10 -0
  870. teradataml/data/namedentityfindertrainer_example.json +6 -0
  871. teradataml/data/nb_iris_input_test.csv +31 -0
  872. teradataml/data/nb_iris_input_train.csv +121 -0
  873. teradataml/data/nbp_iris_model.csv +13 -0
  874. teradataml/data/ner_dict.csv +8 -0
  875. teradataml/data/ner_extractor_text.csv +2 -0
  876. teradataml/data/ner_input_eng.csv +7 -0
  877. teradataml/data/ner_rule.csv +5 -0
  878. teradataml/data/ner_sports_test2.csv +29 -0
  879. teradataml/data/ner_sports_train.csv +501 -0
  880. teradataml/data/nerevaluator_example.json +6 -0
  881. teradataml/data/nerextractor_example.json +18 -0
  882. teradataml/data/nermem_sports_test.csv +18 -0
  883. teradataml/data/nermem_sports_train.csv +51 -0
  884. teradataml/data/nertrainer_example.json +7 -0
  885. teradataml/data/ngrams_example.json +7 -0
  886. teradataml/data/notebooks/__init__.py +0 -0
  887. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -0
  888. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -0
  889. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -0
  890. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -0
  891. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -0
  892. teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -0
  893. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -0
  894. teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -0
  895. teradataml/data/notebooks/sqlalchemy/__init__.py +0 -0
  896. teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -0
  897. teradataml/data/npath_example.json +23 -0
  898. teradataml/data/ntree_example.json +14 -0
  899. teradataml/data/numeric_strings.csv +5 -0
  900. teradataml/data/numerics.csv +4 -0
  901. teradataml/data/ocean_buoy.csv +17 -0
  902. teradataml/data/ocean_buoy2.csv +17 -0
  903. teradataml/data/ocean_buoys.csv +28 -0
  904. teradataml/data/ocean_buoys2.csv +10 -0
  905. teradataml/data/ocean_buoys_nonpti.csv +28 -0
  906. teradataml/data/ocean_buoys_seq.csv +29 -0
  907. teradataml/data/onehot_encoder_train.csv +4 -0
  908. teradataml/data/openml_example.json +92 -0
  909. teradataml/data/optional_event_table.csv +4 -0
  910. teradataml/data/orders1.csv +11 -0
  911. teradataml/data/orders1_12.csv +13 -0
  912. teradataml/data/orders_ex.csv +4 -0
  913. teradataml/data/pack_example.json +9 -0
  914. teradataml/data/package_tracking.csv +19 -0
  915. teradataml/data/package_tracking_pti.csv +19 -0
  916. teradataml/data/pagerank_example.json +13 -0
  917. teradataml/data/paragraphs_input.csv +6 -0
  918. teradataml/data/pathanalyzer_example.json +8 -0
  919. teradataml/data/pathgenerator_example.json +8 -0
  920. teradataml/data/patient_profile.csv +101 -0
  921. teradataml/data/pattern_matching_data.csv +11 -0
  922. teradataml/data/payment_fraud_dataset.csv +10001 -0
  923. teradataml/data/peppers.png +0 -0
  924. teradataml/data/phrases.csv +7 -0
  925. teradataml/data/pivot_example.json +9 -0
  926. teradataml/data/pivot_input.csv +22 -0
  927. teradataml/data/playerRating.csv +31 -0
  928. teradataml/data/pos_input.csv +40 -0
  929. teradataml/data/postagger_example.json +7 -0
  930. teradataml/data/posttagger_output.csv +44 -0
  931. teradataml/data/production_data.csv +17 -0
  932. teradataml/data/production_data2.csv +7 -0
  933. teradataml/data/randomsample_example.json +32 -0
  934. teradataml/data/randomwalksample_example.json +9 -0
  935. teradataml/data/rank_table.csv +6 -0
  936. teradataml/data/real_values.csv +14 -0
  937. teradataml/data/ref_mobile_data.csv +4 -0
  938. teradataml/data/ref_mobile_data_dense.csv +2 -0
  939. teradataml/data/ref_url.csv +17 -0
  940. teradataml/data/restaurant_reviews.csv +7 -0
  941. teradataml/data/retail_churn_table.csv +27772 -0
  942. teradataml/data/river_data.csv +145 -0
  943. teradataml/data/roc_example.json +8 -0
  944. teradataml/data/roc_input.csv +101 -0
  945. teradataml/data/rule_inputs.csv +6 -0
  946. teradataml/data/rule_table.csv +2 -0
  947. teradataml/data/sales.csv +7 -0
  948. teradataml/data/sales_transaction.csv +501 -0
  949. teradataml/data/salesdata.csv +342 -0
  950. teradataml/data/sample_cities.csv +3 -0
  951. teradataml/data/sample_shapes.csv +11 -0
  952. teradataml/data/sample_streets.csv +3 -0
  953. teradataml/data/sampling_example.json +16 -0
  954. teradataml/data/sax_example.json +17 -0
  955. teradataml/data/scale_attributes.csv +3 -0
  956. teradataml/data/scale_example.json +74 -0
  957. teradataml/data/scale_housing.csv +11 -0
  958. teradataml/data/scale_housing_test.csv +6 -0
  959. teradataml/data/scale_input_part_sparse.csv +31 -0
  960. teradataml/data/scale_input_partitioned.csv +16 -0
  961. teradataml/data/scale_input_sparse.csv +11 -0
  962. teradataml/data/scale_parameters.csv +3 -0
  963. teradataml/data/scale_stat.csv +11 -0
  964. teradataml/data/scalebypartition_example.json +13 -0
  965. teradataml/data/scalemap_example.json +13 -0
  966. teradataml/data/scalesummary_example.json +12 -0
  967. teradataml/data/score_category.csv +101 -0
  968. teradataml/data/score_summary.csv +4 -0
  969. teradataml/data/script_example.json +10 -0
  970. teradataml/data/scripts/deploy_script.py +84 -0
  971. teradataml/data/scripts/lightgbm/dataset.template +175 -0
  972. teradataml/data/scripts/lightgbm/lightgbm_class_functions.template +264 -0
  973. teradataml/data/scripts/lightgbm/lightgbm_function.template +234 -0
  974. teradataml/data/scripts/lightgbm/lightgbm_sklearn.template +177 -0
  975. teradataml/data/scripts/mapper.R +20 -0
  976. teradataml/data/scripts/mapper.py +16 -0
  977. teradataml/data/scripts/mapper_replace.py +16 -0
  978. teradataml/data/scripts/sklearn/__init__.py +0 -0
  979. teradataml/data/scripts/sklearn/sklearn_fit.py +205 -0
  980. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +148 -0
  981. teradataml/data/scripts/sklearn/sklearn_function.template +144 -0
  982. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +166 -0
  983. teradataml/data/scripts/sklearn/sklearn_neighbors.py +161 -0
  984. teradataml/data/scripts/sklearn/sklearn_score.py +145 -0
  985. teradataml/data/scripts/sklearn/sklearn_transform.py +327 -0
  986. teradataml/data/sdk/modelops/modelops_spec.json +101737 -0
  987. teradataml/data/seeds.csv +10 -0
  988. teradataml/data/sentenceextractor_example.json +7 -0
  989. teradataml/data/sentiment_extract_input.csv +11 -0
  990. teradataml/data/sentiment_train.csv +16 -0
  991. teradataml/data/sentiment_word.csv +20 -0
  992. teradataml/data/sentiment_word_input.csv +20 -0
  993. teradataml/data/sentimentextractor_example.json +24 -0
  994. teradataml/data/sentimenttrainer_example.json +8 -0
  995. teradataml/data/sequence_table.csv +10 -0
  996. teradataml/data/seriessplitter_example.json +8 -0
  997. teradataml/data/sessionize_example.json +17 -0
  998. teradataml/data/sessionize_table.csv +116 -0
  999. teradataml/data/setop_test1.csv +24 -0
  1000. teradataml/data/setop_test2.csv +22 -0
  1001. teradataml/data/soc_nw_edges.csv +11 -0
  1002. teradataml/data/soc_nw_vertices.csv +8 -0
  1003. teradataml/data/souvenir_timeseries.csv +168 -0
  1004. teradataml/data/sparse_iris_attribute.csv +5 -0
  1005. teradataml/data/sparse_iris_test.csv +121 -0
  1006. teradataml/data/sparse_iris_train.csv +601 -0
  1007. teradataml/data/star1.csv +6 -0
  1008. teradataml/data/star_pivot.csv +8 -0
  1009. teradataml/data/state_transition.csv +5 -0
  1010. teradataml/data/stock_data.csv +53 -0
  1011. teradataml/data/stock_movement.csv +11 -0
  1012. teradataml/data/stock_vol.csv +76 -0
  1013. teradataml/data/stop_words.csv +8 -0
  1014. teradataml/data/store_sales.csv +37 -0
  1015. teradataml/data/stringsimilarity_example.json +8 -0
  1016. teradataml/data/strsimilarity_input.csv +13 -0
  1017. teradataml/data/students.csv +101 -0
  1018. teradataml/data/svm_iris_input_test.csv +121 -0
  1019. teradataml/data/svm_iris_input_train.csv +481 -0
  1020. teradataml/data/svm_iris_model.csv +7 -0
  1021. teradataml/data/svmdense_example.json +10 -0
  1022. teradataml/data/svmdensepredict_example.json +19 -0
  1023. teradataml/data/svmsparse_example.json +8 -0
  1024. teradataml/data/svmsparsepredict_example.json +14 -0
  1025. teradataml/data/svmsparsesummary_example.json +8 -0
  1026. teradataml/data/target_mobile_data.csv +13 -0
  1027. teradataml/data/target_mobile_data_dense.csv +5 -0
  1028. teradataml/data/target_udt_data.csv +8 -0
  1029. teradataml/data/tdnerextractor_example.json +14 -0
  1030. teradataml/data/templatedata.csv +1201 -0
  1031. teradataml/data/templates/open_source_ml.json +11 -0
  1032. teradataml/data/teradata_icon.ico +0 -0
  1033. teradataml/data/teradataml_example.json +1473 -0
  1034. teradataml/data/test_classification.csv +101 -0
  1035. teradataml/data/test_loan_prediction.csv +53 -0
  1036. teradataml/data/test_pacf_12.csv +37 -0
  1037. teradataml/data/test_prediction.csv +101 -0
  1038. teradataml/data/test_regression.csv +101 -0
  1039. teradataml/data/test_river2.csv +109 -0
  1040. teradataml/data/text_inputs.csv +6 -0
  1041. teradataml/data/textchunker_example.json +8 -0
  1042. teradataml/data/textclassifier_example.json +7 -0
  1043. teradataml/data/textclassifier_input.csv +7 -0
  1044. teradataml/data/textclassifiertrainer_example.json +7 -0
  1045. teradataml/data/textmorph_example.json +11 -0
  1046. teradataml/data/textparser_example.json +15 -0
  1047. teradataml/data/texttagger_example.json +12 -0
  1048. teradataml/data/texttokenizer_example.json +7 -0
  1049. teradataml/data/texttrainer_input.csv +11 -0
  1050. teradataml/data/tf_example.json +7 -0
  1051. teradataml/data/tfidf_example.json +14 -0
  1052. teradataml/data/tfidf_input1.csv +201 -0
  1053. teradataml/data/tfidf_train.csv +6 -0
  1054. teradataml/data/time_table1.csv +535 -0
  1055. teradataml/data/time_table2.csv +14 -0
  1056. teradataml/data/timeseriesdata.csv +1601 -0
  1057. teradataml/data/timeseriesdatasetsd4.csv +105 -0
  1058. teradataml/data/timestamp_data.csv +4 -0
  1059. teradataml/data/titanic.csv +892 -0
  1060. teradataml/data/titanic_dataset_unpivoted.csv +19 -0
  1061. teradataml/data/to_num_data.csv +4 -0
  1062. teradataml/data/tochar_data.csv +5 -0
  1063. teradataml/data/token_table.csv +696 -0
  1064. teradataml/data/train_multiclass.csv +101 -0
  1065. teradataml/data/train_regression.csv +101 -0
  1066. teradataml/data/train_regression_multiple_labels.csv +101 -0
  1067. teradataml/data/train_tracking.csv +28 -0
  1068. teradataml/data/trans_dense.csv +16 -0
  1069. teradataml/data/trans_sparse.csv +55 -0
  1070. teradataml/data/transformation_table.csv +6 -0
  1071. teradataml/data/transformation_table_new.csv +2 -0
  1072. teradataml/data/tv_spots.csv +16 -0
  1073. teradataml/data/twod_climate_data.csv +117 -0
  1074. teradataml/data/uaf_example.json +529 -0
  1075. teradataml/data/univariatestatistics_example.json +9 -0
  1076. teradataml/data/unpack_example.json +10 -0
  1077. teradataml/data/unpivot_example.json +25 -0
  1078. teradataml/data/unpivot_input.csv +8 -0
  1079. teradataml/data/url_data.csv +10 -0
  1080. teradataml/data/us_air_pass.csv +37 -0
  1081. teradataml/data/us_population.csv +624 -0
  1082. teradataml/data/us_states_shapes.csv +52 -0
  1083. teradataml/data/varmax_example.json +18 -0
  1084. teradataml/data/vectordistance_example.json +30 -0
  1085. teradataml/data/ville_climatedata.csv +121 -0
  1086. teradataml/data/ville_tempdata.csv +12 -0
  1087. teradataml/data/ville_tempdata1.csv +12 -0
  1088. teradataml/data/ville_temperature.csv +11 -0
  1089. teradataml/data/waveletTable.csv +1605 -0
  1090. teradataml/data/waveletTable2.csv +1605 -0
  1091. teradataml/data/weightedmovavg_example.json +9 -0
  1092. teradataml/data/wft_testing.csv +5 -0
  1093. teradataml/data/windowdfft.csv +16 -0
  1094. teradataml/data/wine_data.csv +1600 -0
  1095. teradataml/data/word_embed_input_table1.csv +6 -0
  1096. teradataml/data/word_embed_input_table2.csv +5 -0
  1097. teradataml/data/word_embed_model.csv +23 -0
  1098. teradataml/data/words_input.csv +13 -0
  1099. teradataml/data/xconvolve_complex_left.csv +6 -0
  1100. teradataml/data/xconvolve_complex_leftmulti.csv +6 -0
  1101. teradataml/data/xgboost_example.json +36 -0
  1102. teradataml/data/xgboostpredict_example.json +32 -0
  1103. teradataml/data/ztest_example.json +16 -0
  1104. teradataml/dataframe/__init__.py +0 -0
  1105. teradataml/dataframe/copy_to.py +2446 -0
  1106. teradataml/dataframe/data_transfer.py +2840 -0
  1107. teradataml/dataframe/dataframe.py +20908 -0
  1108. teradataml/dataframe/dataframe_utils.py +2114 -0
  1109. teradataml/dataframe/fastload.py +794 -0
  1110. teradataml/dataframe/functions.py +2110 -0
  1111. teradataml/dataframe/indexer.py +424 -0
  1112. teradataml/dataframe/row.py +160 -0
  1113. teradataml/dataframe/setop.py +1171 -0
  1114. teradataml/dataframe/sql.py +10904 -0
  1115. teradataml/dataframe/sql_function_parameters.py +440 -0
  1116. teradataml/dataframe/sql_functions.py +652 -0
  1117. teradataml/dataframe/sql_interfaces.py +220 -0
  1118. teradataml/dataframe/vantage_function_types.py +675 -0
  1119. teradataml/dataframe/window.py +694 -0
  1120. teradataml/dbutils/__init__.py +3 -0
  1121. teradataml/dbutils/dbutils.py +2871 -0
  1122. teradataml/dbutils/filemgr.py +318 -0
  1123. teradataml/gen_ai/__init__.py +2 -0
  1124. teradataml/gen_ai/convAI.py +473 -0
  1125. teradataml/geospatial/__init__.py +4 -0
  1126. teradataml/geospatial/geodataframe.py +1105 -0
  1127. teradataml/geospatial/geodataframecolumn.py +392 -0
  1128. teradataml/geospatial/geometry_types.py +926 -0
  1129. teradataml/hyperparameter_tuner/__init__.py +1 -0
  1130. teradataml/hyperparameter_tuner/optimizer.py +4115 -0
  1131. teradataml/hyperparameter_tuner/utils.py +303 -0
  1132. teradataml/lib/__init__.py +0 -0
  1133. teradataml/lib/aed_0_1.dll +0 -0
  1134. teradataml/lib/libaed_0_1.dylib +0 -0
  1135. teradataml/lib/libaed_0_1.so +0 -0
  1136. teradataml/lib/libaed_0_1_aarch64.so +0 -0
  1137. teradataml/lib/libaed_0_1_ppc64le.so +0 -0
  1138. teradataml/opensource/__init__.py +1 -0
  1139. teradataml/opensource/_base.py +1321 -0
  1140. teradataml/opensource/_class.py +464 -0
  1141. teradataml/opensource/_constants.py +61 -0
  1142. teradataml/opensource/_lightgbm.py +949 -0
  1143. teradataml/opensource/_sklearn.py +1008 -0
  1144. teradataml/opensource/_wrapper_utils.py +267 -0
  1145. teradataml/options/__init__.py +148 -0
  1146. teradataml/options/configure.py +489 -0
  1147. teradataml/options/display.py +187 -0
  1148. teradataml/plot/__init__.py +3 -0
  1149. teradataml/plot/axis.py +1427 -0
  1150. teradataml/plot/constants.py +15 -0
  1151. teradataml/plot/figure.py +431 -0
  1152. teradataml/plot/plot.py +810 -0
  1153. teradataml/plot/query_generator.py +83 -0
  1154. teradataml/plot/subplot.py +216 -0
  1155. teradataml/scriptmgmt/UserEnv.py +4273 -0
  1156. teradataml/scriptmgmt/__init__.py +3 -0
  1157. teradataml/scriptmgmt/lls_utils.py +2157 -0
  1158. teradataml/sdk/README.md +79 -0
  1159. teradataml/sdk/__init__.py +4 -0
  1160. teradataml/sdk/_auth_modes.py +422 -0
  1161. teradataml/sdk/_func_params.py +487 -0
  1162. teradataml/sdk/_json_parser.py +453 -0
  1163. teradataml/sdk/_openapi_spec_constants.py +249 -0
  1164. teradataml/sdk/_utils.py +236 -0
  1165. teradataml/sdk/api_client.py +900 -0
  1166. teradataml/sdk/constants.py +62 -0
  1167. teradataml/sdk/modelops/__init__.py +98 -0
  1168. teradataml/sdk/modelops/_client.py +409 -0
  1169. teradataml/sdk/modelops/_constants.py +304 -0
  1170. teradataml/sdk/modelops/models.py +2308 -0
  1171. teradataml/sdk/spinner.py +107 -0
  1172. teradataml/series/__init__.py +0 -0
  1173. teradataml/series/series.py +537 -0
  1174. teradataml/series/series_utils.py +71 -0
  1175. teradataml/store/__init__.py +12 -0
  1176. teradataml/store/feature_store/__init__.py +0 -0
  1177. teradataml/store/feature_store/constants.py +658 -0
  1178. teradataml/store/feature_store/feature_store.py +4814 -0
  1179. teradataml/store/feature_store/mind_map.py +639 -0
  1180. teradataml/store/feature_store/models.py +7330 -0
  1181. teradataml/store/feature_store/utils.py +390 -0
  1182. teradataml/table_operators/Apply.py +979 -0
  1183. teradataml/table_operators/Script.py +1739 -0
  1184. teradataml/table_operators/TableOperator.py +1343 -0
  1185. teradataml/table_operators/__init__.py +2 -0
  1186. teradataml/table_operators/apply_query_generator.py +262 -0
  1187. teradataml/table_operators/query_generator.py +493 -0
  1188. teradataml/table_operators/table_operator_query_generator.py +462 -0
  1189. teradataml/table_operators/table_operator_util.py +726 -0
  1190. teradataml/table_operators/templates/dataframe_apply.template +184 -0
  1191. teradataml/table_operators/templates/dataframe_map.template +176 -0
  1192. teradataml/table_operators/templates/dataframe_register.template +73 -0
  1193. teradataml/table_operators/templates/dataframe_udf.template +67 -0
  1194. teradataml/table_operators/templates/script_executor.template +170 -0
  1195. teradataml/telemetry_utils/__init__.py +0 -0
  1196. teradataml/telemetry_utils/queryband.py +53 -0
  1197. teradataml/utils/__init__.py +0 -0
  1198. teradataml/utils/docstring.py +527 -0
  1199. teradataml/utils/dtypes.py +943 -0
  1200. teradataml/utils/internal_buffer.py +122 -0
  1201. teradataml/utils/print_versions.py +206 -0
  1202. teradataml/utils/utils.py +451 -0
  1203. teradataml/utils/validators.py +3305 -0
  1204. teradataml-20.0.0.8.dist-info/METADATA +2804 -0
  1205. teradataml-20.0.0.8.dist-info/RECORD +1208 -0
  1206. teradataml-20.0.0.8.dist-info/WHEEL +5 -0
  1207. teradataml-20.0.0.8.dist-info/top_level.txt +1 -0
  1208. teradataml-20.0.0.8.dist-info/zip-safe +1 -0
@@ -0,0 +1,1739 @@
1
+ #!/usr/bin/python
2
+ # ##################################################################
3
+ #
4
+ # Copyright 2020 Teradata. All rights reserved. #
5
+ # TERADATA CONFIDENTIAL AND TRADE SECRET #
6
+ #
7
+ # Primary Owner: Gouri Patwardhan (gouri.patwardhan@teradata.com) #
8
+ # Secondary Owner: Trupti Purohit (trupti.purohit@teradata.com) #
9
+ #
10
+ # Function Version: 1.0 #
11
+ #
12
+ # Description: Script is a TeradataML wrapper around Teradata's #
13
+ # Script Table Operator #
14
+ # ##################################################################
15
+
16
+ import os
17
+ import teradataml.dataframe as tdmldf
18
+ import subprocess
19
+ import sys
20
+ from io import StringIO
21
+ from teradataml.common.constants import TableOperatorConstants
22
+ from teradataml.common.wrapper_utils import AnalyticsWrapperUtils
23
+ from teradataml.common.utils import UtilFuncs
24
+ from teradataml.common.constants import OutputStyle, TeradataConstants
25
+ from teradataml.context.context import _get_current_databasename
26
+ from teradataml.context.context import get_context, get_connection
27
+ from teradataml.dataframe.dataframe_utils import DataFrameUtils as df_utils
28
+ from teradataml.dbutils.filemgr import install_file
29
+ from teradataml.dbutils.filemgr import remove_file
30
+ from teradataml.table_operators.table_operator_query_generator import \
31
+ TableOperatorQueryGenerator
32
+ from teradataml.common.exceptions import TeradataMlException
33
+ from teradataml.common.messages import Messages
34
+ from teradataml.common.messagecodes import MessageCodes
35
+ from teradataml.utils.validators import _Validators
36
+ from teradataml.options.display import display
37
+ from teradataml.options.configure import configure
38
+ from teradataml.utils.utils import execute_sql
39
+ from teradatasqlalchemy.dialect import dialect as td_dialect
40
+ from teradatasqlalchemy import (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT,
41
+ NUMBER)
42
+ from teradatasqlalchemy import (TIMESTAMP, DATE, TIME)
43
+ from teradatasqlalchemy import (CHAR, VARCHAR, CLOB)
44
+ from teradatasqlalchemy import (BYTE, VARBYTE, BLOB)
45
+ from teradatasqlalchemy import (PERIOD_DATE, PERIOD_TIME, PERIOD_TIMESTAMP)
46
+ from teradatasqlalchemy import (INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, INTERVAL_MONTH,
47
+ INTERVAL_DAY,INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE,
48
+ INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR,
49
+ INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND,
50
+ INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND,
51
+ INTERVAL_SECOND)
52
+ from teradataml.table_operators.TableOperator import TableOperator
53
+
54
+ class Script(TableOperator):
55
+ def __init__(self,
56
+ data=None,
57
+ script_name=None,
58
+ files_local_path=None,
59
+ script_command=None,
60
+ delimiter="\t",
61
+ returns=None,
62
+ auth=None,
63
+ charset=None,
64
+ quotechar=None,
65
+ data_partition_column=None,
66
+ data_hash_column=None,
67
+ data_order_column=None,
68
+ is_local_order=False,
69
+ sort_ascending=True,
70
+ nulls_first=True,
71
+ **kwargs):
72
+ """
73
+ DESCRIPTION:
74
+ The Script table operator function executes a user-installed script or
75
+ any LINUX command inside database on Teradata Vantage.
76
+
77
+ PARAMETERS:
78
+ script_command:
79
+ Required Argument.
80
+ Specifies the command/script to run.
81
+ Types: str
82
+
83
+ script_name:
84
+ Required Argument.
85
+ Specifies the name of user script.
86
+ User script should have at least permissions of mode 644.
87
+ Types: str
88
+
89
+ files_local_path:
90
+ Required Argument.
91
+ Specifies the absolute local path where user script and all supporting
92
+ files like model files, input data file reside.
93
+ Types: str
94
+
95
+ returns:
96
+ Required Argument.
97
+ Specifies output column definition.
98
+ Types: Dictionary specifying column name to teradatasqlalchemy type mapping.
99
+ Default: None
100
+ Note:
101
+ User can pass a dictionary (dict or OrderedDict) to the "returns" argument,
102
+ with the keys ordered to represent the order of the output columns.
103
+ Preferred type is OrderedDict.
104
+
105
+ data:
106
+ Optional Argument.
107
+ Specifies a teradataml DataFrame containing the input data for the
108
+ script.
109
+
110
+ data_hash_column:
111
+ Optional Argument.
112
+ Specifies the column to be used for hashing.
113
+ The rows in the data are redistributed to AMPs based on the hash value of
114
+ the column specified.
115
+ The user-installed script file then runs once on each AMP.
116
+ If there is no "data_partition_column", then the entire result set,
117
+ delivered by the function, constitutes a single group or partition.
118
+ Types: str
119
+ Note:
120
+ "data_hash_column" can not be specified along with
121
+ "data_partition_column", "is_local_order" and "data_order_column".
122
+
123
+ data_partition_column:
124
+ Optional Argument.
125
+ Specifies Partition By columns for "data".
126
+ Values to this argument can be provided as a list, if multiple
127
+ columns are used for partition.
128
+ Default Value: ANY
129
+ Types: str OR list of Strings (str)
130
+ Note:
131
+ 1) "data_partition_column" can not be specified along with
132
+ "data_hash_column".
133
+ 2) "data_partition_column" can not be specified along with
134
+ "is_local_order = True".
135
+
136
+ is_local_order:
137
+ Optional Argument.
138
+ Specifies a boolean value to determine whether the input data is to be
139
+ ordered locally or not. Order by specifies the order in which the
140
+ values in a group, or partition, are sorted. Local Order By specifies
141
+ orders qualified rows on each AMP in preparation to be input to a table
142
+ function. This argument is ignored, if "data_order_column" is None. When
143
+ set to True, data is ordered locally.
144
+ Default Value: False
145
+ Types: bool
146
+ Note:
147
+ 1) "is_local_order" can not be specified along with "data_hash_column".
148
+ 2) When "is_local_order" is set to True, "data_order_column" should be
149
+ specified, and the columns specified in "data_order_column" are
150
+ used for local ordering.
151
+
152
+ data_order_column:
153
+ Optional Argument.
154
+ Specifies Order By columns for "data".
155
+ Values to this argument can be provided as a list, if multiple
156
+ columns are used for ordering. This argument is used with in both cases:
157
+ "is_local_order = True" and "is_local_order = False".
158
+ Types: str OR list of Strings (str)
159
+ Note:
160
+ "data_order_column" can not be specified along with "data_hash_column".
161
+
162
+ sort_ascending:
163
+ Optional Argument.
164
+ Specifies a boolean value to determine if the result set is to be sorted
165
+ on the "data_order_column" column in ascending or descending order.
166
+ The sorting is ascending when this argument is set to True, and descending
167
+ when set to False. This argument is ignored, if "data_order_column" is
168
+ None.
169
+ Default Value: True
170
+ Types: bool
171
+
172
+ nulls_first:
173
+ Optional Argument.
174
+ Specifies a boolean value to determine whether NULLS are listed first or
175
+ last during ordering. This argument is ignored, if "data_order_column" is
176
+ None. NULLS are listed first when this argument is set to True, and last
177
+ when set to False.
178
+ Default Value: True
179
+ Types: bool
180
+
181
+ delimiter:
182
+ Optional Argument.
183
+ Specifies a delimiter to use when reading columns from a row and
184
+ writing result columns.
185
+ Default Value: "\t" (tab)
186
+ Types: str of length 1 character
187
+ Notes:
188
+ 1) This argument cannot be same as "quotechar" argument.
189
+ 2) This argument cannot be a newline character i.e., '\\n'.
190
+
191
+ auth:
192
+ Optional Argument.
193
+ Specifies an authorization to use when running the script.
194
+ Types: str
195
+
196
+ charset:
197
+ Optional Argument.
198
+ Specifies the character encoding for data.
199
+ Permitted Values: utf-16, latin
200
+ Types: str
201
+
202
+ quotechar:
203
+ Optional Argument.
204
+ Specifies a character that forces all input and output of the script
205
+ to be quoted using this specified character.
206
+ Using this argument enables the Advanced SQL Engine to distinguish
207
+ between NULL fields and empty strings. A string with length zero is
208
+ quoted, while NULL fields are not.
209
+ If this character is found in the data, it will be escaped by a second
210
+ quote character.
211
+ Types: character of length 1
212
+ Notes:
213
+ 1) This argument cannot be same as "delimiter" argument.
214
+ 2) This argument cannot be a newline character i.e., '\\n'.
215
+
216
+ RETURNS:
217
+ Script Object
218
+
219
+ RAISES:
220
+ TeradataMlException
221
+
222
+ EXAMPLES:
223
+ # Note - Refer to User Guide for setting search path and required permissions.
224
+ # Load example data.
225
+ load_example_data("Script", ["barrier"])
226
+
227
+ # Example - The script mapper.py reads in a line of text input
228
+ # ("Old Macdonald Had A Farm") from csv and splits the line into individual
229
+ # words, emitting a new row for each word.
230
+
231
+ # Create teradataml DataFrame objects.
232
+ >>> barrierdf = DataFrame.from_table("barrier")
233
+
234
+ # Set SEARCHUIFDBPATH.
235
+ >>> execute_sql("SET SESSION SEARCHUIFDBPATH = alice;")
236
+
237
+ # Create a Script object that allows us to execute script on Vantage.
238
+ >>> import teradataml, os
239
+ >>> from teradatasqlalchemy import VARCHAR
240
+ >>> td_path = os.path.dirname(teradataml.__file__)
241
+ >>> sto = Script(data=barrierdf,
242
+ ... script_name='mapper.py',
243
+ ... files_local_path= os.path.join(td_path, 'data', 'scripts'),
244
+ ... script_command='tdpython3 ./alice/mapper.py',
245
+ ... data_order_column="Id",
246
+ ... is_local_order=False,
247
+ ... nulls_first=False,
248
+ ... sort_ascending=False,
249
+ ... charset='latin',
250
+ ... returns=OrderedDict([("word", VARCHAR(15)),("count_input", VARCHAR(2))]))
251
+
252
+ # Run user script locally and using data from csv.
253
+
254
+ >>> sto.test_script(input_data_file='../barrier.csv', data_file_delimiter=',')
255
+
256
+ ############ STDOUT Output ############
257
+
258
+ word count_input
259
+ 0 1 1
260
+ 1 Old 1
261
+ 2 Macdonald 1
262
+ 3 Had 1
263
+ 4 A 1
264
+ 5 Farm 1
265
+ >>>
266
+
267
+ # Script results look good. Now install file on Vantage.
268
+ >>> sto.install_file(file_identifier='mapper',
269
+ ... file_name='mapper.py',
270
+ ... is_binary=False)
271
+ File mapper.py installed in Vantage
272
+
273
+ # Execute the user script on Vantage.
274
+ >>> sto.execute_script()
275
+ ############ STDOUT Output ############
276
+
277
+ word count_input
278
+ 0 Macdonald 1
279
+ 1 A 1
280
+ 2 Farm 1
281
+ 3 Had 1
282
+ 4 Old 1
283
+ 5 1 1
284
+
285
+ # Remove the installed file from Vantage.
286
+ >>> sto.remove_file(file_identifier='mapper', force_remove=True)
287
+ File mapper removed from Vantage
288
+ """
289
+ self.result = None
290
+ self.data = data
291
+ self.script_name = script_name
292
+ self.files_local_path = files_local_path
293
+ self.script_command = script_command
294
+ self.delimiter = delimiter
295
+ self.returns = returns
296
+ self.auth = auth
297
+ self.charset = charset
298
+ self.quotechar = quotechar
299
+ self.data_partition_column = data_partition_column
300
+ self.data_hash_column = data_hash_column
301
+ self.data_order_column = data_order_column
302
+ self.is_local_order = is_local_order
303
+ self.sort_ascending = sort_ascending
304
+ self.nulls_first = nulls_first
305
+ self._check_reserved_keyword = True
306
+ self._skip_argument_validation = False
307
+
308
+ # Create AnalyticsWrapperUtils instance which contains validation functions.
309
+ # This is required for is_default_or_not check.
310
+ # Rest all validation is done using _Validators
311
+ self.__awu = AnalyticsWrapperUtils()
312
+
313
+ # Below matrix is a list of lists, where in each row contains following elements:
314
+ # Let's take an example of following, just to get an idea:
315
+ # [element1, element2, element3, element4, element5, element6]
316
+ # e.g.
317
+ # ["join", join, True, (str), True, concat_join_permitted_values]
318
+
319
+ # 1. element1 --> Argument Name, a string. ["join" in above example.]
320
+ # 2. element2 --> Argument itself. [join]
321
+ # 3. element3 --> Specifies a flag that mentions argument is optional or not.
322
+ # False, means required and True means optional.
323
+ # 4. element4 --> Tuple of accepted types. (str) in above example.
324
+ # 5. element5 --> True, means validate for empty value. Error will be raised,
325
+ # if empty value is passed.
326
+ # If not specified, means same as specifying False.
327
+ # 6. element6 --> A list of permitted values, an argument can accept.
328
+ # If not specified, it is as good as passing None.
329
+ # If a list is passed, validation will be
330
+ # performed for permitted values.
331
+
332
+ self.awu_matrix = []
333
+ self.awu_matrix.append(["data", self.data, True, (tdmldf.dataframe.DataFrame)])
334
+ self.awu_matrix.append(["data_partition_column", self.data_partition_column, True,
335
+ (str, list), True])
336
+ self.awu_matrix.append(["data_hash_column", self.data_hash_column, True,
337
+ (str, list), True])
338
+ self.awu_matrix.append(["data_order_column", self.data_order_column, True,
339
+ (str, list), True])
340
+ self.awu_matrix.append(["is_local_order", self.is_local_order, True, (bool)])
341
+ self.awu_matrix.append(["sort_ascending", self.sort_ascending, True, (bool)])
342
+ self.awu_matrix.append(["nulls_first", self.nulls_first, True, (bool)])
343
+ self.awu_matrix.append(["script_command", self.script_command, False, (str),
344
+ True])
345
+ self.awu_matrix.append(["script_name", self.script_name, True, (str), True])
346
+ self.awu_matrix.append(["files_local_path", self.files_local_path, True, (str),
347
+ True])
348
+ self.awu_matrix.append(["delimiter", self.delimiter, True, (str), False])
349
+ self.awu_matrix.append(["returns", self.returns, False, (dict), True])
350
+ self.awu_matrix.append(["auth", self.auth, True, (str), True])
351
+ self.awu_matrix.append(["charset", self.charset, True, (str), True,
352
+ ["utf-16", "latin"]])
353
+ self.awu_matrix.append(["quotechar", self.quotechar, True, (str), False])
354
+
355
+ # Perform the function validations
356
+ self.__validate()
357
+
358
+ # Add the prefix OPENBLAS_NUM_THREADS to the script command.
359
+ self.script_command = f"{TableOperatorConstants.OPENBLAS_NUM_THREADS.value} {self.script_command}"
360
+
361
+ # Internal variable to check if validation is required for Python and python package versions mismatch.
362
+ _validation_required = kwargs.pop('_validate_version', False)
363
+ # Interval variable to store the function name for which validation is required.
364
+ _func_name = kwargs.pop('_func_name', None)
365
+ # Internal variable to store the list of packages required for the function.
366
+ _packages = kwargs.pop('_packages', None)
367
+
368
+ # Check if validation for Python and python package versions mismatch is required.
369
+ if _validation_required:
370
+ # Check if the Python interpreter major versions are consistent between Vantage and local.
371
+ UtilFuncs._check_python_version_diff()
372
+ # Check if the package versions are consistent between Vantage and local.
373
+ UtilFuncs._check_package_version_diff(_func_name, _packages)
374
+
375
+
376
+ @property
377
+ def skip_argument_validation(self):
378
+ """
379
+ DESCRIPTION:
380
+ Getter for self._skip_argument_validation.
381
+
382
+ RETURNS:
383
+ bool
384
+
385
+ RAISES:
386
+ None
387
+ """
388
+ return self._skip_argument_validation
389
+
390
+ @skip_argument_validation.setter
391
+ def skip_argument_validation(self, flag):
392
+ """
393
+ DESCRIPTION:
394
+ Setter for self._skip_argument_validation
395
+
396
+ PARAMETERS:
397
+ flag Required Argument.
398
+ Specifies whether the arguments should be skipped or not.
399
+ Types: bool
400
+ RETURNS:
401
+ None
402
+
403
+ RAISES:
404
+ None
405
+ """
406
+ self._skip_argument_validation = flag
407
+
408
+ @property
409
+ def check_reserved_keyword(self):
410
+ """
411
+ DESCRIPTION:
412
+ Getter for self._check_reserved_keyword.
413
+
414
+ RETURNS:
415
+ bool
416
+
417
+ RAISES:
418
+ None
419
+ """
420
+ return self._check_reserved_keyword
421
+
422
+ @check_reserved_keyword.setter
423
+ def check_reserved_keyword(self, flag):
424
+ """
425
+ DESCRIPTION:
426
+ Setter for self._check_reserved_keyword
427
+
428
+ RETURNS:
429
+ None
430
+
431
+ RAISES:
432
+ None
433
+ """
434
+ self._check_reserved_keyword = flag
435
+
436
+ def __validate_for_reserved_keyword(self):
437
+ """
438
+ DESCRIPTION:
439
+ Function to validate if the returns clause has teradata reserved keyword or not.
440
+ If it contains reserved keyword, then raise an error.
441
+
442
+ RETURNS:
443
+ None
444
+
445
+ RAISES:
446
+ TeradataMlException
447
+
448
+ """
449
+ if self.check_reserved_keyword:
450
+ from teradataml import list_td_reserved_keywords
451
+ if get_connection():
452
+ # Checking for reserved keywords and raising error if present.
453
+ columns = self.returns
454
+ list_td_reserved_keywords(key=columns, raise_error=True)
455
+
456
+ def __validate(self):
457
+ """
458
+ Function to validate Table Operator Function arguments, which verifies missing
459
+ arguments, input argument and table types. Also processes the argument values.
460
+ """
461
+ if self.skip_argument_validation:
462
+ return
463
+ # Make sure that a non-NULL value has been supplied for all mandatory arguments
464
+ _Validators._validate_missing_required_arguments(self.awu_matrix)
465
+
466
+ # Validate argument types.
467
+ _Validators._validate_function_arguments(self.awu_matrix,
468
+ skip_empty_check={"quotechar" : ["\n", "\t"],
469
+ "delimiter" : ["\n"]})
470
+
471
+ # permissible_datatypes in returns
472
+ allowed_datatypes = (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT, NUMBER,
473
+ TIMESTAMP, DATE, TIME, CHAR, VARCHAR, CLOB, BYTE, VARBYTE,
474
+ BLOB, PERIOD_DATE, PERIOD_TIME, PERIOD_TIMESTAMP,
475
+ INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, INTERVAL_MONTH,
476
+ INTERVAL_DAY, INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE,
477
+ INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR,
478
+ INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND,
479
+ INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_SECOND
480
+ )
481
+
482
+ # Validate keys and datatypes in returns.
483
+ self.awu_matrix_returns = []
484
+ for key in self.returns.keys():
485
+ self.awu_matrix_returns.append(["keys in returns", key, False, (str), True])
486
+ self.awu_matrix_returns.append(["value in returns", self.returns[key], False,
487
+ allowed_datatypes])
488
+
489
+
490
+ _Validators._validate_function_arguments(self.awu_matrix_returns)
491
+
492
+ if self.data is not None:
493
+ # Hash and order by can be used together as long as is_local_order = True.
494
+ if all([self.data_hash_column,
495
+ self.data_order_column]) and not self.is_local_order:
496
+ raise TeradataMlException(
497
+ Messages.get_message(MessageCodes.CANNOT_USE_TOGETHER_WITH,
498
+ "data_hash_column' and 'data_order_column",
499
+ "is_local_order=False"),
500
+ MessageCodes.CANNOT_USE_TOGETHER_WITH)
501
+
502
+ # Either hash or partition can be used.
503
+ _Validators._validate_mutually_exclusive_arguments(self.data_hash_column,
504
+ "data_hash_column",
505
+ self.data_partition_column,
506
+ "data_partition_column",
507
+ skip_all_none_check=True)
508
+
509
+ # Either local order by or partition by can be used.
510
+ _Validators._validate_mutually_exclusive_arguments(self.is_local_order,
511
+ "is_local_order=True",
512
+ self.data_partition_column,
513
+ "data_partition_column",
514
+ skip_all_none_check=True)
515
+
516
+ # local order by requires column name.
517
+ if self.is_local_order and self.data_order_column is None:
518
+ message = Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
519
+ "data_order_column", "is_local_order=True")
520
+ raise TeradataMlException(message, MessageCodes.DEPENDENT_ARG_MISSING)
521
+
522
+ if self.__awu._is_default_or_not(self.data_partition_column, "ANY"):
523
+ self.__awu._validate_dataframe_has_argument_columns(
524
+ self.data_partition_column, "data_partition_column", self.data, "data", True)
525
+
526
+ if self.data_order_column is not None:
527
+ self.__awu._validate_dataframe_has_argument_columns(
528
+ self.data_order_column, "data_order_column",self.data, "data", False)
529
+
530
+ if self.data_hash_column is not None:
531
+ self.__awu._validate_dataframe_has_argument_columns(
532
+ self.data_hash_column, "data_hash_column", self.data, "data", False)
533
+
534
+ if self.data_partition_column is not None:
535
+ self.__awu._validate_dataframe_has_argument_columns(
536
+ self.data_partition_column, "data_partition_column", self.data, "data", False)
537
+
538
+ # Check for length of the arguments "delimiter" and "quotechar".
539
+ if self.delimiter is not None:
540
+ _Validators._validate_str_arg_length('delimiter', self.delimiter, 'EQ', 1)
541
+
542
+ if self.quotechar is not None:
543
+ _Validators._validate_str_arg_length('quotechar', self.quotechar, 'EQ', 1)
544
+
545
+ # The arguments 'quotechar' and 'delimiter' cannot take newline character.
546
+ if self.delimiter == '\n':
547
+ message = Messages.get_message(MessageCodes.NOT_ALLOWED_VALUES, "\n", "delimiter")
548
+ raise TeradataMlException(message, MessageCodes.NOT_ALLOWED_VALUES)
549
+ if self.quotechar == '\n':
550
+ message = Messages.get_message(MessageCodes.NOT_ALLOWED_VALUES, "\n", "quotechar")
551
+ raise TeradataMlException(message, MessageCodes.NOT_ALLOWED_VALUES)
552
+
553
+ # The arguments 'quotechar' and 'delimiter' cannot have the same value.
554
+ if self.delimiter == self.quotechar:
555
+ message = Messages.get_message(MessageCodes.ARGUMENT_VALUE_SAME, "delimiter",
556
+ "quotechar")
557
+ raise TeradataMlException(message, MessageCodes.ARGUMENT_VALUE_SAME)
558
+
559
+
560
+ def set_data(self,
561
+ data,
562
+ data_partition_column=None,
563
+ data_hash_column=None,
564
+ data_order_column=None,
565
+ is_local_order=False,
566
+ sort_ascending=True,
567
+ nulls_first=True):
568
+ """
569
+ DESCRIPTION:
570
+ Function enables user to set data and data related arguments without having to
571
+ re-create Script object.
572
+
573
+ PARAMETERS:
574
+ data:
575
+ Required Argument.
576
+ Specifies a teradataml DataFrame containing the input data for the script.
577
+
578
+ data_hash_column:
579
+ Optional Argument.
580
+ Specifies the column to be used for hashing.
581
+ The rows in the data are redistributed to AMPs based on the
582
+ hash value of the column specified.
583
+ The user installed script then runs once on each AMP.
584
+ If there is no data_partition_column, then the entire result set delivered
585
+ by the function, constitutes a single group or partition.
586
+ Types: str
587
+ Note:
588
+ "data_hash_column" can not be specified along with
589
+ "data_partition_column", "is_local_order" and "data_order_column".
590
+
591
+ data_partition_column:
592
+ Optional Argument.
593
+ Specifies Partition By columns for data.
594
+ Values to this argument can be provided as a list, if multiple
595
+ columns are used for partition.
596
+ Default Value: ANY
597
+ Types: str OR list of Strings (str)
598
+ Note:
599
+ 1) "data_partition_column" can not be specified along with
600
+ "data_hash_column".
601
+ 2) "data_partition_column" can not be specified along with
602
+ "is_local_order = True".
603
+
604
+ is_local_order:
605
+ Optional Argument.
606
+ Specifies a boolean value to determine whether the input data is to be
607
+ ordered locally or not. Order by specifies the order in which the
608
+ values in a group or partition are sorted. Local Order By specifies
609
+ orders qualified rows on each AMP in preparation to be input to a table
610
+ function. This argument is ignored, if "data_order_column" is None. When
611
+ set to True, data is ordered locally.
612
+ Default Value: False
613
+ Types: bool
614
+ Note:
615
+ 1) "is_local_order" can not be specified along with
616
+ "data_hash_column".
617
+ 2) When "is_local_order" is set to True, "data_order_column" should be
618
+ specified, and the columns specified in "data_order_column" are
619
+ used for local ordering.
620
+
621
+ data_order_column:
622
+ Optional Argument.
623
+ Specifies Order By columns for data.
624
+ Values to this argument can be provided as a list, if multiple
625
+ columns are used for ordering.
626
+ This argument is used in both cases:
627
+ "is_local_order = True" and "is_local_order = False".
628
+ Types: str OR list of Strings (str)
629
+ Note:
630
+ "data_order_column" can not be specified along with
631
+ "data_hash_column".
632
+
633
+ sort_ascending:
634
+ Optional Argument.
635
+ Specifies a boolean value to determine if the result set is to be sorted
636
+ on the column specified in "data_order_column", in ascending or descending
637
+ order.
638
+ The sorting is ascending when this argument is set to True, and descending
639
+ when set to False.
640
+ This argument is ignored, if "data_order_column" is None.
641
+ Default Value: True
642
+ Types: bool
643
+
644
+ nulls_first:
645
+ Optional Argument.
646
+ Specifies a boolean value to determine whether NULLS are listed first or
647
+ last during ordering.
648
+ This argument is ignored, if "data_order_column" is None.
649
+ NULLS are listed first when this argument is set to True, and
650
+ last when set to False.
651
+ Default Value: True
652
+ Types: bool
653
+
654
+ RETURNS:
655
+ None.
656
+
657
+ RAISES:
658
+ TeradataMlException
659
+
660
+ EXAMPLES:
661
+ # Note - Refer to User Guide for setting search path and required permissions.
662
+ # Load example data.
663
+ load_example_data("Script", ["barrier"])
664
+
665
+ # Example 1
666
+ # Create teradataml DataFrame objects.
667
+ >>> barrierdf = DataFrame.from_table("barrier")
668
+ >>> barrierdf
669
+ Name
670
+ Id
671
+ 1 Old Macdonald Had A Farm
672
+ >>>
673
+
674
+ # Set SEARCHUIFDBPATH
675
+ >>> execute_sql("SET SESSION SEARCHUIFDBPATH = alice;")
676
+ >>> import teradataml
677
+ >>> from teradatasqlalchemy import VARCHAR
678
+ >>> td_path = os.path.dirname(teradataml.__file__)
679
+
680
+ # The script mapper.py reads in a line of text input
681
+ # ("Old Macdonald Had A Farm") from csv and
682
+ # splits the line into individual words, emitting a new row for each word.
683
+ # Create a Script object without data and its arguments.
684
+ >>> sto = Script(data = barrierdf,
685
+ ... script_name='mapper.py',
686
+ ... files_local_path= os.path.join(td_path,'data', 'scripts'),
687
+ ... script_command='tdpython3 ./alice/mapper.py',
688
+ ... charset='latin',
689
+ ... returns=OrderedDict([("word", VARCHAR(15)),("count_input", VARCHAR(2))]))
690
+
691
+ # Test script using data from file
692
+ >>> sto.test_script(input_data_file='../barrier.csv', data_file_delimiter=',')
693
+ ############ STDOUT Output ############
694
+ word count_input
695
+ 0 1 1
696
+ 1 Old 1
697
+ 2 Macdonald 1
698
+ 3 Had 1
699
+ 4 A 1
700
+ 5 Farm 1
701
+ >>>
702
+
703
+ # Test script using data from DB.
704
+ >>> sto.test_script(password='alice')
705
+ ############ STDOUT Output ############
706
+
707
+ word count_input
708
+ 0 1 1
709
+ 1 Old 1
710
+ 2 Macdonald 1
711
+ 3 Had 1
712
+ 4 A 1
713
+ 5 Farm 1
714
+
715
+ # Test script using data from DB and with data_row_limit.
716
+ >>> sto.test_script(password='alice', data_row_limit=5)
717
+ ############ STDOUT Output ############
718
+
719
+ word count_input
720
+ 0 1 1
721
+ 1 Old 1
722
+ 2 Macdonald 1
723
+ 3 Had 1
724
+ 4 A 1
725
+ 5 Farm 1
726
+
727
+ # Now in order to test / run script on actual data on Vantage user must
728
+ # set data and related arguments.
729
+ # Note:
730
+ # All data related arguments that are not specified in set_data() are
731
+ # reset to default values.
732
+ >>> sto.set_data(data=barrierdf,
733
+ ... data_order_column="Id",
734
+ ... is_local_order=False,
735
+ ... nulls_first=False,
736
+ ... sort_ascending=False)
737
+
738
+ # Execute the user script on Vantage.
739
+ >>> sto.execute_script()
740
+ ############ STDOUT Output ############
741
+ word count_input
742
+ 0 Macdonald 1
743
+ 1 A 1
744
+ 2 Farm 1
745
+ 3 Had 1
746
+ 4 Old 1
747
+ 5 1 1
748
+
749
+ # Example 2 -
750
+ # Input data is barrier_new and script is executed on Vantage.
751
+ # use set_data() to reset arguments.
752
+ # Create teradataml DataFrame objects.
753
+ >>> load_example_data("Script", ["barrier_new"])
754
+ >>> barrierdf_new = DataFrame.from_table("barrier_new")
755
+ >>> barrierdf_new
756
+ Name
757
+ Id
758
+ 2 On his farm he had a cow
759
+ 1 Old Macdonald Had A Farm
760
+ >>>
761
+
762
+ # Create a Script object that allows us to execute script on Vantage.
763
+ >>> sto = Script(data=barrierdf_new,
764
+ ... script_name='mapper.py',
765
+ ... files_local_path= os.path.join(td_path, 'data', 'scripts'),
766
+ ... script_command='tdpython3 ./alice/mapper.py',
767
+ ... data_order_column="Id",
768
+ ... is_local_order=False,
769
+ ... nulls_first=False,
770
+ ... sort_ascending=False,
771
+ ... charset='latin',
772
+ ... returns=OrderedDict([("word", VARCHAR(15)),("count_input", VARCHAR(2))]))
773
+ # Script is executed on Vantage.
774
+ >>> sto.execute_script()
775
+ ############ STDOUT Output ############
776
+ word count_input
777
+ 0 his 1
778
+ 1 he 1
779
+ 2 had 1
780
+ 3 a 1
781
+ 4 1 1
782
+ 5 Old 1
783
+ 6 cow 1
784
+ 7 farm 1
785
+ 8 On 1
786
+ 9 2 1
787
+
788
+ # Now in order to run the script with a different dataset,
789
+ # user can use set_data().
790
+ # Re-set data and some data related parameters.
791
+ # Note:
792
+ # All data related arguments that are not specified in set_data() are
793
+ # reset to default values.
794
+ >>> sto.set_data(data=barrierdf,
795
+ ... data_order_column='Id',
796
+ ... is_local_order=True,
797
+ ... nulls_first=True)
798
+ >>> sto.execute_script()
799
+ word count_input
800
+ 0 Macdonald 1
801
+ 1 A 1
802
+ 2 Farm 1
803
+ 3 Had 1
804
+ 4 Old 1
805
+ 5 1 1
806
+
807
+ # Example 3
808
+ # In order to run the script with same dataset but different data related
809
+ # arguments, use set_data() to reset arguments.
810
+ # Note:
811
+ # All data related arguments that are not specified in set_data() are
812
+ # reset to default values.
813
+ >>> sto.set_data(data=barrierdf_new,
814
+ ... data_order_column='Id',
815
+ ... is_local_order = True,
816
+ ... nulls_first = True)
817
+
818
+ >>> sto.execute_script()
819
+ ############ STDOUT Output ############
820
+
821
+ word count_input
822
+ 0 Macdonald 1
823
+ 1 A 1
824
+ 2 Farm 1
825
+ 3 2 1
826
+ 4 his 1
827
+ 5 farm 1
828
+ 6 On 1
829
+ 7 Had 1
830
+ 8 Old 1
831
+ 9 1 1
832
+ """
833
+ super(Script, self).set_data(data,
834
+ data_partition_column,
835
+ data_hash_column,
836
+ data_order_column,
837
+ is_local_order,
838
+ sort_ascending,
839
+ nulls_first)
840
+ self.__validate()
841
+
842
+ def test_script(self, supporting_files=None, input_data_file=None, script_args="",
843
+ exec_mode ='local', **kwargs):
844
+ """
845
+ DESCRIPTION:
846
+ Function enables user to run script locally outside Vantage.
847
+ Input data for user script is either read from a file or from database.
848
+ Note:
849
+ 1. Purpose of test_script() function is to enable the user to test their scripts for any errors without
850
+ installing it on Vantage, using the input data provided.
851
+ 2. Data is not partitioned for testing the script if read from input data file.
852
+ 3. Function can produce different output if input is read from a file than input from database.
853
+
854
+ PARAMETERS:
855
+ supporting_files:
856
+ Optional Argument.
857
+ Specifies a file or list of supporting files like model files to be
858
+ copied to the container.
859
+ Types: string or list of str
860
+
861
+ input_data_file:
862
+ Optional Argument.
863
+ Specifies the name of the input data file.
864
+ It should have a path relative to the location specified in
865
+ "files_local_path" argument.
866
+ If set to None, read data from AMP, else from file passed in the argument
867
+ 'input_data_file'.
868
+ File should have at least permissions of mode 644.
869
+ Types: str
870
+
871
+ script_args:
872
+ Optional Argument.
873
+ Specifies command line arguments required by the user script.
874
+ Types: str
875
+
876
+ exec_mode:
877
+ Optional Argument.
878
+ Specifies the mode in which user wants to test the script.
879
+ When set to 'local', the user script will run locally on user's system.
880
+ Permitted Values: 'local'
881
+ Default Value: 'local'
882
+ Types: str
883
+
884
+ kwargs:
885
+ Optional Argument.
886
+ Specifies the keyword arguments required for testing.
887
+ Keys can be:
888
+ data_row_limit:
889
+ Optional Argument. Ignored when data is read from file.
890
+ Specifies the number of rows to be taken from all amps when
891
+ reading from a table or view on Vantage.
892
+ Default Value: 1000
893
+ Types: int
894
+
895
+ password:
896
+ Optional Argument. Required when reading from database.
897
+ Specifies the password to connect to vantage where the data
898
+ resides.
899
+ Types: str
900
+
901
+ data_file_delimiter:
902
+ Optional Argument.
903
+ Specifies the delimiter used in the input data file. This
904
+ argument can be specified when data is read from file.
905
+ Default Value: '\t'
906
+ Types: str
907
+
908
+ data_file_header:
909
+ Optional Argument.
910
+ Specifies whether the input data file contains header. This
911
+ argument can be specified when data is read from file.
912
+ Default Value: True
913
+ Types: bool
914
+
915
+ data_file_quote_char:
916
+ Optional Argument.
917
+ Specifies the quotechar used in the input data file.
918
+ This argument can be specified when data is read from file.
919
+ Default Value: '"'
920
+
921
+ logmech:
922
+ Optional Argument.
923
+ Specifies the type of logon mechanism to establish a connection to
924
+ Teradata Vantage.
925
+ Permitted Values: 'TD2', 'TDNEGO', 'LDAP', 'KRB5' & 'JWT'.
926
+ TD2:
927
+ The Teradata 2 (TD2) mechanism provides authentication
928
+ using a Vantage username and password. This is the default
929
+ logon mechanism using which the connection is established
930
+ to Vantage.
931
+
932
+ TDNEGO:
933
+ A security mechanism that automatically determines the
934
+ actual mechanism required, based on policy, without user's
935
+ involvement. The actual mechanism is determined by the
936
+ TDGSS server configuration and by the security policy's
937
+ mechanism restrictions.
938
+
939
+ LDAP:
940
+ A directory-based user logon to Vantage with a directory
941
+ username and password and is authenticated by the directory.
942
+
943
+ KRB5 (Kerberos):
944
+ A directory-based user logon to Vantage with a domain
945
+ username and password and is authenticated by
946
+ Kerberos (KRB5 mechanism).
947
+ Note:
948
+ User must have a valid ticket-granting ticket in
949
+ order to use this logon mechanism.
950
+
951
+ JWT:
952
+ The JSON Web Token (JWT) authentication mechanism enables
953
+ single sign-on (SSO) to the Vantage after the user
954
+ successfully authenticates to Teradata UDA User Service.
955
+ Note:
956
+ User must use logdata parameter when using 'JWT' as
957
+ the logon mechanism.
958
+ Default Value: TD2
959
+ Types: str
960
+
961
+ Note:
962
+ teradataml expects the client environments are already setup with appropriate
963
+ security mechanisms and are in working conditions.
964
+ For more information please refer Teradata Vantage™ - Advanced SQL Engine
965
+ Security Administration at https://www.info.teradata.com/
966
+
967
+ logdata:
968
+ Optional Argument.
969
+ Specifies parameters to the LOGMECH command beyond those needed by
970
+ the logon mechanism, such as user ID, password and tokens
971
+ (in case of JWT) to successfully authenticate the user.
972
+ Types: str
973
+
974
+ Types: dict
975
+
976
+ RETURNS:
977
+ Output from user script.
978
+
979
+ RAISES:
980
+ TeradataMlException
981
+
982
+ EXAMPLES:
983
+ # Assumption - sto is Script() object. Please refer to help(Script)
984
+ # for creating Script object.
985
+ # Run user script in local mode with input from data file.
986
+
987
+ >>> sto.test_script(input_data_file='../barrier.csv',
988
+ ... data_file_delimiter=',',
989
+ ... data_file_quote_char='"',
990
+ ... data_file_header=True,
991
+ ... exec_mode='local')
992
+
993
+ ############ STDOUT Output ############
994
+ word count_input
995
+ 0 1 1
996
+ 1 Old 1
997
+ 2 Macdonald 1
998
+ 3 Had 1
999
+ 4 A 1
1000
+ 5 Farm 1
1001
+ >>>
1002
+
1003
+ # Run user script in local mode with input from table.
1004
+ >>> sto.test_script(data_row_limit=300, password='alice', exec_mode='local')
1005
+
1006
+ ############ STDOUT Output ############
1007
+ word count_input
1008
+ 0 1 1
1009
+ 1 Old 1
1010
+ 2 Macdonald 1
1011
+ 3 Had 1
1012
+ 4 A 1
1013
+ 5 Farm 1
1014
+
1015
+ """
1016
+ logmech_valid_values = ['TD2', 'TDNEGO', 'LDAP', 'KRB5', 'JWT']
1017
+
1018
+ awu_matrix_test=[]
1019
+ awu_matrix_test.append((["supporting_files", supporting_files, True,
1020
+ (str,list), True]))
1021
+ awu_matrix_test.append((["input_data_file", input_data_file, True, (str), True]))
1022
+ awu_matrix_test.append((["script_args", script_args, True, (str), False]))
1023
+ awu_matrix_test.append((["exec_mode", exec_mode, True, (str), True,
1024
+ [TableOperatorConstants.LOCAL_EXEC.value]]))
1025
+
1026
+ data_row_limit = kwargs.pop("data_row_limit", 1000)
1027
+ awu_matrix_test.append((["data_row_limit", data_row_limit, True, (int), True]))
1028
+
1029
+ data_file_delimiter = kwargs.pop("data_file_delimiter", '\t')
1030
+ awu_matrix_test.append((["data_file_delimiter", data_file_delimiter, True,
1031
+ (str), False]))
1032
+
1033
+ data_file_quote_char = kwargs.pop("data_file_quote_char", '"')
1034
+ awu_matrix_test.append((["data_file_quote_char", data_file_quote_char, True,
1035
+ (str), False]))
1036
+
1037
+ data_file_header = kwargs.pop("data_file_header", True)
1038
+ awu_matrix_test.append((["data_file_header", data_file_header, True, (bool)]))
1039
+
1040
+ logmech = kwargs.pop("logmech", "TD2")
1041
+ awu_matrix_test.append(
1042
+ ["logmech", logmech, True, (str), True, logmech_valid_values])
1043
+
1044
+ logdata = kwargs.pop("logdata", None)
1045
+ awu_matrix_test.append(["logdata", logdata, True, (str), True])
1046
+
1047
+ # Validate argument types.
1048
+ _Validators._validate_function_arguments(awu_matrix_test)
1049
+
1050
+ self.__validate()
1051
+ self.__validate_for_reserved_keyword()
1052
+
1053
+
1054
+ if logmech == "JWT" and not logdata:
1055
+ raise TeradataMlException(
1056
+ Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING, 'logdata',
1057
+ 'logmech=JWT'),
1058
+ MessageCodes.DEPENDENT_ARG_MISSING)
1059
+
1060
+ if data_row_limit <= 0:
1061
+ raise ValueError(Messages.get_message(MessageCodes.TDMLDF_POSITIVE_INT).
1062
+ format("data_row_limit", "greater than"))
1063
+
1064
+ # Either of 'input_data_file' or 'password' argument is required.
1065
+ password = kwargs.pop("password", None)
1066
+
1067
+ # When exec_mode is local, the connection object is used to get the values in the table.
1068
+ if exec_mode == "local" and not (input_data_file or self.data):
1069
+ message = Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
1070
+ "input_data_file", "Script data")
1071
+ raise TeradataMlException(message, MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
1072
+
1073
+ if not self.script_name and self.files_local_path:
1074
+ message = Messages.get_message(MessageCodes.MISSING_ARGS,
1075
+ "script_name and files_local_path")
1076
+ raise TeradataMlException(message, MessageCodes.MISSING_ARGS)
1077
+
1078
+ if input_data_file:
1079
+ if self.files_local_path is None:
1080
+ message = Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
1081
+ "files_local_path","input_data_file")
1082
+ raise TeradataMlException(message, MessageCodes.DEPENDENT_ARG_MISSING)
1083
+ else:
1084
+ # Check if file exists.
1085
+ fpath = os.path.join(self.files_local_path,
1086
+ input_data_file)
1087
+ _Validators._validate_file_exists(fpath)
1088
+
1089
+ if self.script_name and self.files_local_path:
1090
+ # Check if file exists.
1091
+ fpath = os.path.join(self.files_local_path,
1092
+ os.path.basename(self.script_name))
1093
+ _Validators._validate_file_exists(fpath)
1094
+
1095
+ if exec_mode.upper() == TableOperatorConstants.LOCAL_EXEC.value:
1096
+ user_script_path = os.path.join(self.files_local_path, self.script_name)
1097
+ cmd = [str(sys.executable), user_script_path]
1098
+ cmd.extend(script_args)
1099
+
1100
+ if input_data_file is not None:
1101
+ input_file_path = os.path.join(self.files_local_path, input_data_file)
1102
+
1103
+ # Run user script locally with input from a file.
1104
+ exec_cmd_output = self.__local_run_user_script_input_file(
1105
+ cmd, input_file_path, data_file_delimiter, data_file_quote_char, data_file_header)
1106
+ try:
1107
+ return self.__process_test_script_output(exec_cmd_output)
1108
+ except Exception as exp:
1109
+ raise
1110
+
1111
+ else:
1112
+ if self.data.shape[0] > data_row_limit:
1113
+ raise ValueError(
1114
+ Messages.get_message(MessageCodes.DATAFRAME_LIMIT_ERROR,
1115
+ 'data_row_limit', 'data_row_limit',
1116
+ data_row_limit))
1117
+
1118
+ if not self.data._table_name:
1119
+ self.data._table_name = df_utils._execute_node_return_db_object_name(
1120
+ self.data._nodeid, self.data._metaexpr)
1121
+
1122
+ table_name = UtilFuncs._extract_table_name(self.data._table_name)
1123
+
1124
+ # Run user script locally with input from db.
1125
+ exec_cmd_output = self.__local_run_user_script_input_db(cmd, table_name)
1126
+ try:
1127
+ return self.__process_test_script_output(exec_cmd_output)
1128
+ except Exception as exp:
1129
+ raise
1130
+
1131
+ def __local_run_user_script_input_file(self, cmd, input_file_path,
1132
+ data_file_delimiter='\t',
1133
+ data_file_quote_char='"',
1134
+ data_file_header=True):
1135
+ """
1136
+ DESCRIPTION:
1137
+ Function to run the user script in local mode with input from file.
1138
+
1139
+ PARAMETERS:
1140
+ cmd:
1141
+ Required Argument.
1142
+ Specifies the command for running the user script.
1143
+ Types: str
1144
+
1145
+ input_file_path:
1146
+ Required Argument.
1147
+ Specifies the absolute local path of input data file.
1148
+ Types: str
1149
+
1150
+ data_file_delimiter:
1151
+ Optional Argument.
1152
+ Specifies the delimiter used in input data file.
1153
+ Default Value: '\t'
1154
+ Types: str
1155
+
1156
+ data_file_quote_char:
1157
+ Optional Argument.
1158
+ Specifies the quote character used in input data file.
1159
+ Default Value: '"'
1160
+ Types: str
1161
+
1162
+ data_file_header:
1163
+ Optional Argument.
1164
+ Specifies whether the input data file has header.
1165
+ Default Value: True
1166
+ Types: bool
1167
+
1168
+ RETURNS:
1169
+ The string output of the command that is run on input data file.
1170
+
1171
+ RAISES:
1172
+ Exception.
1173
+
1174
+ EXAMPLES:
1175
+ self.__local_run_user_script_input_file(cmd ="cmd",
1176
+ input_file_path = "input_file_path",
1177
+ data_file_delimiter = "data_file_delimiter",
1178
+ data_file_quote_char = "data_file_quote_char",
1179
+ data_file_header = True)
1180
+
1181
+ """
1182
+ with open(input_file_path) as data_file:
1183
+ import csv
1184
+ from pandas import isna as pd_isna
1185
+
1186
+ data_handle = StringIO()
1187
+
1188
+ # Read data from input file.
1189
+ ip_data = csv.reader(data_file,
1190
+ delimiter=data_file_delimiter,
1191
+ quotechar=data_file_quote_char)
1192
+ # Skip the first row of input file if data_file_header is True.
1193
+ if data_file_header:
1194
+ next(ip_data)
1195
+ for row in ip_data:
1196
+ if self.quotechar is not None:
1197
+ # A NULL value should not be enclosed in quotes.
1198
+ # The CSV module has no support for such output with writer,
1199
+ # and hence the custom formatting.
1200
+ line = ['' if pd_isna(s) else "{}{}{}".format(self.quotechar,
1201
+ str(s),
1202
+ self.quotechar)
1203
+ for s in row]
1204
+ else:
1205
+ line = ['' if pd_isna(s) else str(s) for s in row]
1206
+
1207
+ complete_line = (self.delimiter.join(line))
1208
+
1209
+ data_handle.write(complete_line)
1210
+ data_handle.write("\n")
1211
+
1212
+ return self.__run_user_script_subprocess(cmd, data_handle)
1213
+
1214
+ def __local_run_user_script_input_db(self, cmd, table_name):
1215
+ """
1216
+ DESCRIPTION:
1217
+ Function to run the user script in local mode with input from db.
1218
+
1219
+ PARAMETERS:
1220
+ cmd:
1221
+ Required Argument.
1222
+ Specifies the command for running the user script.
1223
+ Types: str
1224
+
1225
+ table_name:
1226
+ Required Argument.
1227
+ Specifies the table name for input to user script.
1228
+ Types: str
1229
+
1230
+ RETURNS:
1231
+ The string output of the command that is run on the Vantage table.
1232
+
1233
+ RAISES:
1234
+ Exception.
1235
+
1236
+ EXAMPLES:
1237
+ self.__local_run_user_script_input_db(cmd = "cmd", table_name = "table_name")
1238
+
1239
+ """
1240
+ db_data_handle = StringIO()
1241
+ try:
1242
+ con = get_connection()
1243
+ # Query for reading data from DB.
1244
+ query = ("SELECT * FROM {} ORDER BY 1;".format(table_name))
1245
+ cur = execute_sql(query)
1246
+ row = cur.fetchone()
1247
+ from pandas import isna as pd_isna
1248
+ while row:
1249
+ if self.quotechar is not None:
1250
+ # A NULL value should not be enclosed in quotes.
1251
+ # The CSV module has no support for such output with writer,
1252
+ # and hence the custom formatting.
1253
+ line = ['' if pd_isna(s) else "{}{}{}".format(self.quotechar,
1254
+ str(s),
1255
+ self.quotechar)
1256
+ for s in row]
1257
+ else:
1258
+ line = ['' if pd_isna(s) else str(s) for s in row]
1259
+
1260
+ complete_line = (self.delimiter.join(line))
1261
+ db_data_handle.write(complete_line)
1262
+ db_data_handle.write("\n")
1263
+ row = cur.fetchone()
1264
+ except Exception as exp:
1265
+ raise exp
1266
+
1267
+ return self.__run_user_script_subprocess(cmd, db_data_handle)
1268
+
1269
+ def __process_test_script_output(self, exec_cmd_output):
1270
+ """
1271
+ DESCRIPTION:
1272
+ Function to format the output of the user script.
1273
+
1274
+ PARAMETERS:
1275
+ exec_cmd_output:
1276
+ Required Argument.
1277
+ Specifies the output returned by the user script.
1278
+ Types: str
1279
+
1280
+ RETURNS:
1281
+ The test script output as Pandas DataFrame.
1282
+
1283
+ RAISES:
1284
+ Exception.
1285
+
1286
+ EXAMPLES:
1287
+ self.__process_test_script_output(exec_cmd_output = "exec_cmd_output")
1288
+ """
1289
+ try:
1290
+ kwargs = dict()
1291
+ if self.quotechar is not None:
1292
+ kwargs['quotechar'] = self.quotechar
1293
+ kwargs['quoting'] = 1 # QUOTE_ALL
1294
+
1295
+ output = StringIO(exec_cmd_output)
1296
+
1297
+ from pandas import read_csv as pd_read_csv
1298
+
1299
+ # Form a pandas dataframe.
1300
+ df = pd_read_csv(output, sep=self.delimiter, index_col=False, header=None,
1301
+ names=list(self.returns.keys()), **kwargs)
1302
+ return df
1303
+
1304
+ except Exception as exp:
1305
+ raise exp
1306
+
1307
+ def __run_user_script_subprocess(self, cmd, data_handle):
1308
+ """
1309
+ DESCRIPTION:
1310
+ Function to run the user script in a new process and return the output.
1311
+
1312
+ PARAMETERS:
1313
+ cmd:
1314
+ Required Argument.
1315
+ Specifies the command for running the script.
1316
+ Types: str
1317
+
1318
+ data_handle:
1319
+ Required Argument.
1320
+ Specifies the data handle for the input data required by the user script.
1321
+
1322
+ RETURNS:
1323
+ Output of user script on input data supplied in data_handle.
1324
+
1325
+ RAISES:
1326
+ None.
1327
+
1328
+ EXAMPLES:
1329
+ self.__run_user_script_subprocess(cmd = "exec_cmd_output",
1330
+ data_handle = data_handle)
1331
+
1332
+ """
1333
+ # Launching new process to run the user script.
1334
+ try:
1335
+ proc = subprocess.Popen(cmd, stdin=subprocess.PIPE,
1336
+ stdout=subprocess.PIPE,
1337
+ stderr=subprocess.PIPE)
1338
+ process_output, process_error = proc.communicate(data_handle.getvalue().encode())
1339
+ data_handle.close()
1340
+
1341
+ if proc.returncode == 0:
1342
+ return process_output.decode("utf-8").rstrip("\r|\n")
1343
+ else:
1344
+ message = Messages.get_message(MessageCodes.SCRIPT_LOCAL_RUN_ERROR).\
1345
+ format(process_error)
1346
+ raise TeradataMlException(message, MessageCodes.SCRIPT_LOCAL_RUN_ERROR)
1347
+ except Exception as e:
1348
+ raise e
1349
+
1350
+ def execute_script(self, output_style='VIEW'):
1351
+ """
1352
+ DESCRIPTION:
1353
+ Function enables user to run script on Vantage.
1354
+
1355
+ PARAMETERS:
1356
+ output_style:
1357
+ Specifies the type of output object to create - a table or a view.
1358
+ Permitted Values: 'VIEW', 'TABLE'.
1359
+ Default value: 'VIEW'
1360
+ Types: str
1361
+
1362
+ RETURNS:
1363
+ Output teradataml DataFrames can be accessed using attribute
1364
+ references, such as ScriptObj.<attribute_name>.
1365
+ Output teradataml DataFrame attribute name is:
1366
+ result
1367
+
1368
+ RAISES:
1369
+ TeradataMlException, ValueError
1370
+
1371
+ EXAMPLES:
1372
+ Refer to help(Script)
1373
+ """
1374
+ # Validate the output_style.
1375
+ permitted_values = [OutputStyle.OUTPUT_TABLE.value,
1376
+ OutputStyle.OUTPUT_VIEW.value]
1377
+ _Validators._validate_permitted_values(output_style, permitted_values,
1378
+ 'output_style',
1379
+ case_insensitive=False, includeNone=False)
1380
+
1381
+ # Validate arguments.
1382
+ self.__validate()
1383
+ # Validating for reserved keywords.
1384
+ self.__validate_for_reserved_keyword()
1385
+
1386
+ # Generate the Table Operator query.
1387
+ self.__form_table_operator_query()
1388
+
1389
+ # Execute Table Operator query and return results.
1390
+ return self.__execute(output_style)
1391
+
1392
+ def install_file(self, file_identifier, file_name, is_binary = False,
1393
+ replace = False, force_replace = False):
1394
+ """
1395
+ DESCRIPTION:
1396
+ Function to install script on Vantage.
1397
+ On success, prints a message that file is installed.
1398
+ This language script can be executed via execute_script() function.
1399
+
1400
+ PARAMETERS:
1401
+ file_identifier:
1402
+ Required Argument.
1403
+ Specifies the name associated with the user-installed file.
1404
+ It cannot have a schema name associated with it,
1405
+ as the file is always installed in the current schema.
1406
+ The name should be unique within the schema. It can be any valid Teradata
1407
+ identifier.
1408
+ Types: str
1409
+
1410
+ file_name:
1411
+ Required Argument:
1412
+ Specifies the name of the file user wnats to install.
1413
+ Types: str
1414
+
1415
+ is_binary:
1416
+ Optional Argument.
1417
+ Specifies if file to be installed is a binary file.
1418
+ Default Value: False
1419
+ Types: bool
1420
+
1421
+ replace:
1422
+ Optional Argument.
1423
+ Specifies if the file is to be installed or replaced.
1424
+ If set to True, then the file is replaced based on value the of
1425
+ force_replace.
1426
+ If set to False, then the file is installed.
1427
+ Default Value: False
1428
+ Types: bool
1429
+
1430
+ force_replace:
1431
+ Optional Argument.
1432
+ Specifies if system should check for the file being used before
1433
+ replacing it.
1434
+ If set to True, then the file is replaced even if it is being executed.
1435
+ If set to False, then an error is thrown if it is being executed.
1436
+ Default Value: False
1437
+ Types: bool
1438
+
1439
+ RETURNS:
1440
+ True, if success
1441
+
1442
+ RAISES:
1443
+ TeradataMLException.
1444
+
1445
+ EXAMPLES:
1446
+ # Note - Refer to User Guide for setting search path and required permissions.
1447
+ # Example 1: Install the file mapper.py found at the relative path
1448
+ # data/scripts/ using the default text mode.
1449
+
1450
+ # Set SEARCHUIFDBPATH.
1451
+ >>> execute_sql("SET SESSION SEARCHUIFDBPATH = alice;")
1452
+
1453
+ # Create a Script object that allows us to execute script on Vantage.
1454
+ >>> import os
1455
+ >>> from teradatasqlalchemy import VARCHAR
1456
+ >>> td_path = os.path.dirname(teradataml.__file__)
1457
+ >>> sto = Script(data=barrierdf,
1458
+ ... script_name='mapper.py',
1459
+ ... files_local_path= os.path.join(td_path, 'data', "scripts"),
1460
+ ... script_command='tdpython3 ./alice/mapper.py',
1461
+ ... data_order_column="Id",
1462
+ ... is_local_order=False,
1463
+ ... nulls_first=False,
1464
+ ... sort_ascending=False,
1465
+ ... charset='latin',
1466
+ ... returns=OrderedDict([("word", VARCHAR(15)),("count_input", VARCHAR(2))]))
1467
+ >>>
1468
+
1469
+ # Install file on Vantage.
1470
+
1471
+ >>> sto.install_file(file_identifier='mapper',
1472
+ ... file_name='mapper.py',
1473
+ ... is_binary=False)
1474
+ File mapper.py installed in Vantage
1475
+
1476
+ # Replace file on Vantage.
1477
+ >>> sto.install_file(file_identifier='mapper',
1478
+ ... file_name='mapper.py',
1479
+ ... is_binary=False,
1480
+ ... replace=True,
1481
+ ... force_replace=True)
1482
+ File mapper.py replaced in Vantage
1483
+ """
1484
+ # Install/Replace file on Vantage.
1485
+ try:
1486
+ file_path = os.path.join(self.files_local_path, file_name)
1487
+ # Install file on Vantage.
1488
+ install_file(file_identifier=file_identifier, file_path=file_path,
1489
+ is_binary=is_binary,
1490
+ replace=replace, force_replace=force_replace)
1491
+ except:
1492
+ raise
1493
+
1494
+ def remove_file(self, file_identifier, force_remove=False):
1495
+ """
1496
+ DESCRIPTION:
1497
+ Function to remove user installed files/scripts from Vantage.
1498
+
1499
+ PARAMETERS:
1500
+ file_identifier:
1501
+ Required Argument.
1502
+ Specifies the name associated with the user-installed file.
1503
+ It cannot have a database name associated with it,
1504
+ as the file is always installed in the current database.
1505
+ Types: str
1506
+
1507
+ force_remove:
1508
+ Required Argument.
1509
+ Specifies if system should check for the file being used before
1510
+ removing it.
1511
+ If set to True, then the file is removed even if it is being executed.
1512
+ If set to False, then an error is thrown if it is being executed.
1513
+ Default value: False
1514
+ Types: bool
1515
+
1516
+ RETURNS:
1517
+ True, if success.
1518
+
1519
+ RAISES:
1520
+ TeradataMLException.
1521
+
1522
+ EXAMPLES:
1523
+ # Note - Refer to User Guide for setting search path and required permissions.
1524
+ # Run install_file example before removing file.
1525
+
1526
+ # Set SEARCHUIFDBPATH.
1527
+ >>> execute_sql("SET SESSION SEARCHUIFDBPATH = alice;")
1528
+
1529
+ # Create a Script object that allows us to execute script on Vantage.
1530
+ >>> sto = Script(data=barrierdf,
1531
+ ... script_name='mapper.py',
1532
+ ... files_local_path= os.path.join(td_path, 'data', "scripts"),
1533
+ ... script_command='tdpython3 ./alice/mapper.py',
1534
+ ... data_order_column="Id",
1535
+ ... is_local_order=False,
1536
+ ... nulls_first=False,
1537
+ ... sort_ascending=False,
1538
+ ... charset='latin',
1539
+ ... returns=OrderedDict([("word", VARCHAR(15)),("count_input", VARCHAR(2))]))
1540
+ >>>
1541
+
1542
+ # Install file on Vantage.
1543
+ >>> sto.install_file(file_identifier='mapper',
1544
+ ... file_name='mapper.py',
1545
+ ... is_binary=False,
1546
+ ... replace=True,
1547
+ ... force_replace=True)
1548
+ File mapper.py replaced in Vantage
1549
+
1550
+ # Remove the installed file.
1551
+ >>> sto.remove_file(file_identifier='mapper', force_remove=True)
1552
+ File mapper removed from Vantage
1553
+
1554
+ """
1555
+ # Remove file from Vantage
1556
+ try:
1557
+ remove_file(file_identifier, force_remove)
1558
+ except:
1559
+ raise
1560
+
1561
+ def __form_table_operator_query(self):
1562
+ """
1563
+ Function to generate the Table Operator queries. The function defines
1564
+ variables and list of arguments required to form the query.
1565
+ """
1566
+ # Output table arguments list.
1567
+ self.__func_output_args_sql_names = []
1568
+ self.__func_output_args = []
1569
+
1570
+ # Generate lists for rest of the function arguments.
1571
+ self.__func_other_arg_sql_names = []
1572
+ self.__func_other_args = []
1573
+ self.__func_other_arg_json_datatypes = []
1574
+
1575
+ self.__func_other_arg_sql_names.append("SCRIPT_COMMAND")
1576
+ self.__func_other_args.append(
1577
+ UtilFuncs._teradata_collapse_arglist(self.script_command, "'"))
1578
+ self.__func_other_arg_json_datatypes.append("STRING")
1579
+
1580
+ if self.delimiter is not None:
1581
+ self.__func_other_arg_sql_names.append("delimiter")
1582
+ self.__func_other_args.append(
1583
+ UtilFuncs._teradata_collapse_arglist(self.delimiter, "'"))
1584
+ self.__func_other_arg_json_datatypes.append("STRING")
1585
+
1586
+ # Generate returns clause.
1587
+ ret_vals = []
1588
+ returns_clause = ''
1589
+ for key in self.returns.keys():
1590
+ ret_vals.append('{} {}'.format(key, self.returns[key].compile(td_dialect())))
1591
+ returns_clause = ', '.join(ret_vals)
1592
+
1593
+ self.__func_other_arg_sql_names.append("returns")
1594
+ self.__func_other_args.append(
1595
+ UtilFuncs._teradata_collapse_arglist(returns_clause, "'"))
1596
+ self.__func_other_arg_json_datatypes.append("STRING")
1597
+
1598
+ if self.auth is not None:
1599
+ self.__func_other_arg_sql_names.append("auth")
1600
+ self.__func_other_args.append(
1601
+ UtilFuncs._teradata_collapse_arglist(self.auth, "'"))
1602
+ self.__func_other_arg_json_datatypes.append("STRING")
1603
+
1604
+ if self.charset is not None:
1605
+ self.__func_other_arg_sql_names.append("charset")
1606
+ self.__func_other_args.append(
1607
+ UtilFuncs._teradata_collapse_arglist(self.charset, "'"))
1608
+ self.__func_other_arg_json_datatypes.append("STRING")
1609
+
1610
+ if self.quotechar is not None:
1611
+ self.__func_other_arg_sql_names.append("quotechar")
1612
+ self.__func_other_args.append(
1613
+ UtilFuncs._teradata_collapse_arglist(self.quotechar, "'"))
1614
+ self.__func_other_arg_json_datatypes.append("STRING")
1615
+
1616
+ # Declare empty lists to hold input table information.
1617
+ self.__func_input_arg_sql_names = []
1618
+ self.__func_input_table_view_query = []
1619
+ self.__func_input_dataframe_type = []
1620
+ self.__func_input_distribution = []
1621
+ self.__func_input_partition_by_cols = []
1622
+ self.__func_input_order_by_cols = []
1623
+ self.__func_input_order_by_type = []
1624
+ self.__func_input_sort_ascending = self.sort_ascending
1625
+ self.__func_input_nulls_first = None
1626
+
1627
+ # Process data.
1628
+ if self.data is not None:
1629
+ data_distribution = "FACT"
1630
+ if self.data_hash_column is not None:
1631
+ data_distribution = "HASH"
1632
+ data_partition_column = UtilFuncs._teradata_collapse_arglist(
1633
+ self.data_hash_column, "\"")
1634
+ else:
1635
+ if self.__awu._is_default_or_not(self.data_partition_column, "ANY"):
1636
+ data_partition_column = UtilFuncs._teradata_collapse_arglist(
1637
+ self.data_partition_column, "\"")
1638
+ else:
1639
+ data_partition_column = None
1640
+ if self.data_order_column is not None:
1641
+ if self.is_local_order:
1642
+ self.__func_input_order_by_type.append("LOCAL")
1643
+ if not self.data_hash_column:
1644
+ data_distribution = None
1645
+ else:
1646
+ self.__func_input_order_by_type.append(None)
1647
+ self.__func_input_order_by_cols.append(
1648
+ UtilFuncs._teradata_collapse_arglist(self.data_order_column, "\""))
1649
+ else:
1650
+ self.__func_input_order_by_type.append(None)
1651
+ self.__func_input_order_by_cols.append("NA_character_")
1652
+
1653
+ self.__table_ref = self.__awu._teradata_on_clause_from_dataframe(self.data,
1654
+ False)
1655
+ self.__func_input_distribution.append(data_distribution)
1656
+ self.__func_input_arg_sql_names.append("input")
1657
+ self.__func_input_table_view_query.append(self.__table_ref["ref"])
1658
+ self.__func_input_dataframe_type.append(self.__table_ref["ref_type"])
1659
+ self.__func_input_partition_by_cols.append(data_partition_column)
1660
+ self.__func_input_nulls_first = self.nulls_first
1661
+
1662
+ function_name = "Script"
1663
+ # Create instance to generate Table Operator Query.
1664
+ aqg_obj = TableOperatorQueryGenerator(function_name,
1665
+ self.__func_input_arg_sql_names,
1666
+ self.__func_input_table_view_query,
1667
+ self.__func_input_dataframe_type,
1668
+ self.__func_input_distribution,
1669
+ self.__func_input_partition_by_cols,
1670
+ self.__func_input_order_by_cols,
1671
+ self.__func_other_arg_sql_names,
1672
+ self.__func_other_args,
1673
+ self.__func_other_arg_json_datatypes,
1674
+ self.__func_output_args_sql_names,
1675
+ self.__func_output_args,
1676
+ self.__func_input_order_by_type,
1677
+ self.__func_input_sort_ascending,
1678
+ self.__func_input_nulls_first,
1679
+ engine="ENGINE_SQL"
1680
+ )
1681
+
1682
+ # Invoke call to Table operator query generation.
1683
+ self._tblop_query = aqg_obj._gen_table_operator_select_stmt_sql()
1684
+
1685
+ # Print Table Operator query if requested to do so.
1686
+ if display.print_sqlmr_query:
1687
+ print(self._tblop_query)
1688
+
1689
+ def __execute(self, output_style='VIEW'):
1690
+ """
1691
+ DESCRIPTION:
1692
+ Function to execute Table Operator queries.
1693
+ Create DataFrames for the required Table Operator output.
1694
+
1695
+ PARAMETERS:
1696
+ output_style:
1697
+ Specifies the type of output object to create - a table of a view.
1698
+ Permitted Values: 'VIEW', 'TABLE'.
1699
+ Default value: 'VIEW'
1700
+ Types: str
1701
+
1702
+ RAISES:
1703
+ None.
1704
+
1705
+ RETURNS:
1706
+ None.
1707
+
1708
+ EXAMPLES:
1709
+ >>> return self.__execute(output_style)
1710
+ """
1711
+ # Generate STDOUT table name and add it to the output table list.
1712
+ if output_style == OutputStyle.OUTPUT_TABLE.value:
1713
+ table_type = TeradataConstants.TERADATA_TABLE
1714
+ else:
1715
+ table_type = TeradataConstants.TERADATA_VIEW
1716
+
1717
+ tblop_stdout_temp_tablename = \
1718
+ UtilFuncs._generate_temp_table_name(prefix="td_tblop_out_",
1719
+ use_default_database=True,
1720
+ gc_on_quit=True, quote=False,
1721
+ table_type=table_type)
1722
+ try:
1723
+ if configure.temp_object_type == TeradataConstants.TERADATA_VOLATILE_TABLE:
1724
+ UtilFuncs._create_table(tblop_stdout_temp_tablename, self._tblop_query, volatile=True)
1725
+ elif output_style == OutputStyle.OUTPUT_TABLE.value:
1726
+ UtilFuncs._create_table(tblop_stdout_temp_tablename, self._tblop_query)
1727
+ else:
1728
+ UtilFuncs._create_view(tblop_stdout_temp_tablename, self._tblop_query)
1729
+ except Exception as emsg:
1730
+ raise TeradataMlException(
1731
+ Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, str(emsg)),
1732
+ MessageCodes.TDMLDF_EXEC_SQL_FAILED)
1733
+
1734
+ self.result = self.__awu._create_data_set_object(
1735
+ df_input=UtilFuncs._extract_table_name(tblop_stdout_temp_tablename),
1736
+ source_type="table",
1737
+ database_name=UtilFuncs._extract_db_name(tblop_stdout_temp_tablename))
1738
+
1739
+ return self.result