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,1343 @@
1
+ #!/usr/bin/python
2
+ # ##################################################################
3
+ #
4
+ # Copyright 2020 Teradata. All rights reserved.
5
+ # TERADATA CONFIDENTIAL AND TRADE SECRET
6
+ #
7
+ # Primary Owner: Trupti Purohit (trupti.purohit@teradata.com)
8
+ # Secondary Owner: Gouri Patwardhan (gouri.patwardhan@teradata.com)
9
+ #
10
+ # Function Version: 1.0
11
+ #
12
+ # Description: Base class for Teradata's Table Operators
13
+ # ##################################################################
14
+
15
+ import os
16
+ import time
17
+ import uuid
18
+ from math import floor
19
+ import warnings
20
+ import subprocess
21
+ from pathlib import Path
22
+ import teradataml.dataframe as tdmldf
23
+ from teradataml.common.constants import OutputStyle, TeradataConstants
24
+ from teradataml.common.constants import TableOperatorConstants
25
+ from teradataml.common.garbagecollector import GarbageCollector
26
+ from teradataml.common.wrapper_utils import AnalyticsWrapperUtils
27
+ from teradataml.common.utils import UtilFuncs
28
+ from teradataml.dataframe.dataframe_utils import DataFrameUtils as df_utils
29
+
30
+ from teradataml.common.exceptions import TeradataMlException
31
+ from teradataml.common.messages import Messages
32
+ from teradataml.common.messagecodes import MessageCodes
33
+ from teradataml.options.configure import configure
34
+ from teradataml.utils.utils import execute_sql
35
+ from teradataml.utils.validators import _Validators
36
+ from teradatasqlalchemy import (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT, NUMBER)
37
+ from teradatasqlalchemy import (TIMESTAMP, DATE, TIME)
38
+ from teradatasqlalchemy import (CHAR, VARCHAR, CLOB)
39
+ from teradatasqlalchemy import (BYTE, VARBYTE, BLOB)
40
+ from teradatasqlalchemy import (PERIOD_DATE, PERIOD_TIME, PERIOD_TIMESTAMP)
41
+ from teradatasqlalchemy import (INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, INTERVAL_MONTH, INTERVAL_DAY,
42
+ INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND,
43
+ INTERVAL_HOUR, INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND,
44
+ INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_SECOND)
45
+ from teradataml.context.context import _get_current_databasename, get_context, get_connection
46
+ from io import StringIO
47
+
48
+
49
+ class TableOperator:
50
+
51
+ def __init__(self,
52
+ data=None,
53
+ script_name=None,
54
+ files_local_path=None,
55
+ delimiter="\t",
56
+ returns=None,
57
+ quotechar=None,
58
+ data_partition_column=None,
59
+ data_hash_column=None,
60
+ data_order_column=None,
61
+ is_local_order=False,
62
+ sort_ascending=True,
63
+ nulls_first=True):
64
+ """
65
+ DESCRIPTION:
66
+ Table Operators are a type of User-Defined Function, only available when connected to a
67
+ Vantage.
68
+
69
+ PARAMETERS:
70
+ data:
71
+ Optional Argument.
72
+ Specifies a teradataml DataFrame containing the input data for the script.
73
+
74
+ script_name:
75
+ Required Argument.
76
+ Specifies the name of the user script.
77
+ Types: str
78
+
79
+ files_local_path:
80
+ Required Argument.
81
+ Specifies the absolute local path where the user script and all supporting files
82
+ like model files, input data file reside.
83
+ Types: str
84
+
85
+ delimiter:
86
+ Optional Argument.
87
+ Specifies a delimiter to use when reading columns from a row and
88
+ writing result columns.
89
+ The delimiter is a single character chosen from the set of punctuation characters.
90
+ Types: str
91
+
92
+ returns:
93
+ Required Argument.
94
+ Specifies the output column definition.
95
+ Types: Dictionary specifying column name to teradatasqlalchemy type mapping.
96
+ Default: None
97
+
98
+ data_hash_column:
99
+ Optional Argument.
100
+ Specifies the column to be used for hashing.
101
+ The rows in the data are redistributed to AMPs based on the hash value of the
102
+ column specified. The user-installed script file then runs once on each AMP.
103
+ If there is no data_hash_column, then the entire result set,
104
+ delivered by the function, constitutes a single group or partition.
105
+ Types: str
106
+ Note:
107
+ "data_hash_column" can not be specified along with "data_partition_column",
108
+ "is_local_order" and "data_order_column".
109
+
110
+ data_partition_column:
111
+ Optional Argument.
112
+ Specifies Partition By columns for data.
113
+ Values to this argument can be provided as a list, if multiple
114
+ columns are used for partition.
115
+ Default Value: ANY
116
+ Types: str OR list of Strings (str)
117
+ Notes:
118
+ 1) "data_partition_column" can not be specified along with "data_hash_column".
119
+ 2) "data_partition_column" can not be specified along with "is_local_order = True".
120
+
121
+ is_local_order:
122
+ Optional Argument.
123
+ Specifies a boolean value to determine whether the input data is to be ordered locally
124
+ or not. 'sort_ascending' specifies the order in which the values in a group, or partition,
125
+ are sorted. This argument is ignored, if data_order_column is None.
126
+ When set to 'True', qualified rows are ordered locally in preparation to be input
127
+ to the function.
128
+ Default Value: False
129
+ Types: bool
130
+ Note:
131
+ "is_local_order" can not be specified along with "data_hash_column".
132
+ When "is_local_order" is set to 'True', "data_order_column" should be specified,
133
+ and the columns specified in "data_order_column" are used for local ordering.
134
+
135
+ data_order_column:
136
+ Optional Argument.
137
+ Specifies Order By columns for data.
138
+ Values to this argument can be provided as a list, if multiple
139
+ columns are used for ordering.
140
+ This argument is used with in both cases: "is_local_order = True"
141
+ and "is_local_order = False".
142
+ Types: str OR list of Strings (str)
143
+ Note:
144
+ "data_order_column" can not be specified along with "data_hash_column".
145
+
146
+ sort_ascending:
147
+ Optional Argument.
148
+ Specifies a boolean value to determine if the input data is to be sorted on
149
+ the data_order_column column in ascending or descending order.
150
+ When this is set to 'True' data is sorted in ascending order,
151
+ otherwise data is sorted in descending order.
152
+ This argument is ignored, if data_order_column is None.
153
+ Default Value: True
154
+ Types: bool
155
+
156
+ nulls_first:
157
+ Optional Argument.
158
+ Specifies a boolean value to determine whether NULLS from input data are listed
159
+ first or last during ordering.
160
+ When this is set to 'True' NULLS are listed first, otherwise NULLS are listed last.
161
+ This argument is ignored, if data_order_column is None.
162
+ Default Value: True
163
+ Types: bool
164
+
165
+ RETURNS:
166
+ An instance of TableOperator class.
167
+
168
+ RAISES:
169
+ TeradataMlException
170
+
171
+ EXAMPLES:
172
+ # Apply class extends this base class.
173
+ apply_obj = Apply(data=barrierdf,
174
+ script_name='mapper.py',
175
+ files_local_path= '/root/data/scripts/',
176
+ apply_command='python3 mapper.py',
177
+ data_order_column="Id",
178
+ is_local_order=False,
179
+ nulls_first=False,
180
+ sort_ascending=False,
181
+ env_name = "test_env",
182
+ returns={"word": VARCHAR(15), "count_input": VARCHAR(2)},
183
+ style='csv',
184
+ delimiter=',')
185
+ """
186
+ self.result = None
187
+ self._tblop_query = None
188
+ self.data = data
189
+ self.script_name = script_name
190
+ self.files_local_path = files_local_path
191
+ self.delimiter = delimiter
192
+ self.quotechar = quotechar
193
+ self.returns = returns
194
+ self.data_partition_column = data_partition_column
195
+ self.data_hash_column = data_hash_column
196
+ self.data_order_column = data_order_column
197
+ self.is_local_order = is_local_order
198
+ self.sort_ascending = sort_ascending
199
+ self.nulls_first = nulls_first
200
+
201
+ # Datatypes supported in returns clause of a table operator.
202
+ self._supported_returns_datatypes = (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT, NUMBER,
203
+ TIMESTAMP, DATE, TIME, CHAR, VARCHAR, CLOB, BYTE, VARBYTE,
204
+ BLOB, PERIOD_DATE, PERIOD_TIME, PERIOD_TIMESTAMP, INTERVAL_YEAR,
205
+ INTERVAL_YEAR_TO_MONTH, INTERVAL_MONTH, INTERVAL_DAY, INTERVAL_DAY_TO_HOUR,
206
+ INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR,
207
+ INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND, INTERVAL_MINUTE,
208
+ INTERVAL_MINUTE_TO_SECOND, INTERVAL_SECOND
209
+ )
210
+
211
+ # Create AnalyticsWrapperUtils instance which contains validation functions.
212
+ # This is required for is_default_or_not check.
213
+ # Rest all validation is done using _Validators.
214
+ self.__awu = AnalyticsWrapperUtils()
215
+
216
+ self.awu_matrix = []
217
+ self.awu_matrix.append(["data", self.data, True, (tdmldf.dataframe.DataFrame)])
218
+ self.awu_matrix.append(["data_partition_column", self.data_partition_column, True, (str, list), True])
219
+ self.awu_matrix.append(["data_hash_column", self.data_hash_column, True, (str, list), True])
220
+ self.awu_matrix.append(["data_order_column", self.data_order_column, True, (str, list), True])
221
+ self.awu_matrix.append(["is_local_order", self.is_local_order, True, (bool)])
222
+ self.awu_matrix.append(["sort_ascending", self.sort_ascending, True, (bool)])
223
+ self.awu_matrix.append(["nulls_first", self.nulls_first, True, (bool)])
224
+ self.awu_matrix.append(["script_name", self.script_name, True, (str), True])
225
+ self.awu_matrix.append(["files_local_path", self.files_local_path, True, (str), True])
226
+ self.awu_matrix.append(["delimiter", self.delimiter, True, (str), False])
227
+ self.awu_matrix.append(["quotechar", self.quotechar, True, (str), False])
228
+
229
+ # Perform the function validations.
230
+ self._validate()
231
+
232
+ def _validate(self, for_data_args=False):
233
+ """
234
+ Function to validate Table Operator Function arguments, which verifies missing
235
+ arguments, input argument and table types. Also processes the
236
+ argument values.
237
+ @param: for_data_args: Specifies whether the validation is for only arguments related to data or not.
238
+ When set to True, validation is only for data arguments. Otherwise, validation
239
+ is for all arguments. By default, system validates all the arguments.
240
+ """
241
+
242
+ if not for_data_args:
243
+ # Make sure that a non-NULL value has been supplied for all mandatory arguments
244
+ _Validators._validate_missing_required_arguments(self.awu_matrix)
245
+
246
+ # Validate argument types
247
+ _Validators._validate_function_arguments(self.awu_matrix,
248
+ skip_empty_check={"quotechar": ["\n", "\t"],
249
+ "delimiter": ["\n"]})
250
+
251
+ if self.data is not None:
252
+ # Hash and order by can be used together as long as is_local_order = True.
253
+ if all([self.data_hash_column,
254
+ self.data_order_column]) and not self.is_local_order:
255
+ raise TeradataMlException(
256
+ Messages.get_message(MessageCodes.CANNOT_USE_TOGETHER_WITH,
257
+ "data_hash_column' and 'data_order_column",
258
+ "is_local_order=False"),
259
+ MessageCodes.CANNOT_USE_TOGETHER_WITH)
260
+
261
+ # Either hash or partition can be used.
262
+ if all([self.data_hash_column, self.data_partition_column]):
263
+ raise TeradataMlException(Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
264
+ "data_hash_column", "data_partition_column"),
265
+ MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
266
+
267
+ # Either local order by or partition by can be used.
268
+ if all([self.is_local_order, self.data_partition_column]):
269
+ raise TeradataMlException(Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
270
+ "is_local_order=True",
271
+ "data_partition_column"),
272
+ MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
273
+
274
+ # local order by requires column name.
275
+ if self.is_local_order and self.data_order_column is None:
276
+ raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
277
+ "data_order_column",
278
+ "is_local_order=True"),
279
+ MessageCodes.DEPENDENT_ARG_MISSING)
280
+
281
+ if self.__awu._is_default_or_not(self.data_partition_column, "ANY"):
282
+ _Validators._validate_dataframe_has_argument_columns(self.data_partition_column, "data_partition_column",
283
+ self.data, "data", True)
284
+
285
+ _Validators._validate_dataframe_has_argument_columns(self.data_order_column, "data_order_column",
286
+ self.data, "data", False)
287
+
288
+ _Validators._validate_dataframe_has_argument_columns(self.data_hash_column, "data_hash_column",
289
+ self.data, "data", False)
290
+
291
+ if not for_data_args:
292
+ # Check for length of the arguments "delimiter" and "quotechar".
293
+ if self.delimiter is not None:
294
+ _Validators._validate_str_arg_length('delimiter', self.delimiter, 'EQ', 1)
295
+
296
+ if self.quotechar is not None:
297
+ _Validators._validate_str_arg_length('quotechar', self.quotechar, 'EQ', 1)
298
+
299
+ # The arguments 'quotechar' and 'delimiter' cannot take newline character.
300
+ if self.delimiter == '\n':
301
+ raise TeradataMlException(Messages.get_message(MessageCodes.NOT_ALLOWED_VALUES,
302
+ "\n", "delimiter"),
303
+ MessageCodes.NOT_ALLOWED_VALUES)
304
+ if self.quotechar == '\n':
305
+ raise TeradataMlException(Messages.get_message(MessageCodes.NOT_ALLOWED_VALUES,
306
+ "\n", "quotechar"),
307
+ MessageCodes.NOT_ALLOWED_VALUES)
308
+
309
+ # The arguments 'quotechar' and 'delimiter' cannot have the same value.
310
+ if self.delimiter == self.quotechar:
311
+ raise TeradataMlException(Messages.get_message(MessageCodes.ARGUMENT_VALUE_SAME,
312
+ "delimiter", "quotechar"),
313
+ MessageCodes.ARGUMENT_VALUE_SAME)
314
+
315
+ def set_data(self,
316
+ data,
317
+ data_partition_column=None,
318
+ data_hash_column=None,
319
+ data_order_column=None,
320
+ is_local_order=False,
321
+ sort_ascending=True,
322
+ nulls_first=True):
323
+ """
324
+ DESCRIPTION:
325
+ Function enables user to set data and data related arguments without having to
326
+ re-create Script object.
327
+
328
+ PARAMETERS:
329
+ data:
330
+ Required Argument.
331
+ Specifies a teradataml DataFrame containing the input data for the script.
332
+
333
+ data_hash_column:
334
+ Optional Argument.
335
+ Specifies the column to be used for hashing.
336
+ The rows in the data are redistributed to AMPs based on the
337
+ hash value of the column specified.
338
+ The user installed script then runs once on each AMP.
339
+ If there is no data_partition_column, then the entire result set delivered
340
+ by the function, constitutes a single group or partition.
341
+ Types: str
342
+ Note:
343
+ "data_hash_column" can not be specified along with
344
+ "data_partition_column", "is_local_order" and "data_order_column".
345
+
346
+ data_partition_column:
347
+ Optional Argument.
348
+ Specifies Partition By columns for data.
349
+ Values to this argument can be provided as a list, if multiple
350
+ columns are used for partition.
351
+ Default Value: ANY
352
+ Types: str OR list of Strings (str)
353
+ Note:
354
+ 1) "data_partition_column" can not be specified along with
355
+ "data_hash_column".
356
+ 2) "data_partition_column" can not be specified along with
357
+ "is_local_order = True".
358
+
359
+ is_local_order:
360
+ Optional Argument.
361
+ Specifies a boolean value to determine whether the input data is to be
362
+ ordered locally or not. Order by specifies the order in which the
363
+ values in a group or partition are sorted. Local Order By specifies
364
+ orders qualified rows on each AMP in preparation to be input to a table
365
+ function. This argument is ignored, if "data_order_column" is None. When
366
+ set to True, data is ordered locally.
367
+ Default Value: False
368
+ Types: bool
369
+ Note:
370
+ 1) "is_local_order" can not be specified along with
371
+ "data_hash_column".
372
+ 2) When "is_local_order" is set to True, "data_order_column" should be
373
+ specified, and the columns specified in "data_order_column" are
374
+ used for local ordering.
375
+
376
+ data_order_column:
377
+ Optional Argument.
378
+ Specifies Order By columns for data.
379
+ Values to this argument can be provided as a list, if multiple
380
+ columns are used for ordering.
381
+ This argument is used in both cases:
382
+ "is_local_order = True" and "is_local_order = False".
383
+ Types: str OR list of Strings (str)
384
+ Note:
385
+ "data_order_column" can not be specified along with
386
+ "data_hash_column".
387
+
388
+ sort_ascending:
389
+ Optional Argument.
390
+ Specifies a boolean value to determine if the result set is to be sorted
391
+ on the column specified in "data_order_column", in ascending or descending
392
+ order.
393
+ The sorting is ascending when this argument is set to True, and descending
394
+ when set to False.
395
+ This argument is ignored, if "data_order_column" is None.
396
+ Default Value: True
397
+ Types: bool
398
+
399
+ nulls_first:
400
+ Optional Argument.
401
+ Specifies a boolean value to determine whether NULLS are listed first or
402
+ last during ordering.
403
+ This argument is ignored, if "data_order_column" is None.
404
+ NULLS are listed first when this argument is set to True, and
405
+ last when set to False.
406
+ Default Value: True
407
+ Types: bool
408
+
409
+ RETURNS:
410
+ None.
411
+
412
+ RAISES:
413
+ TeradataMlException
414
+
415
+ EXAMPLES:
416
+ >>> self.set_data(df)
417
+ """
418
+
419
+ awu_matrix_setter = []
420
+ awu_matrix_setter.append(["data", data, True, (tdmldf.dataframe.DataFrame)])
421
+ awu_matrix_setter.append(["data_partition_column", data_partition_column,
422
+ True, (str, list), True])
423
+ awu_matrix_setter.append(["data_hash_column", data_hash_column, True,
424
+ (str, list), True])
425
+ awu_matrix_setter.append(["data_order_column", data_order_column, True,
426
+ (str, list), True])
427
+ awu_matrix_setter.append(["is_local_order", is_local_order, True, (bool)])
428
+ awu_matrix_setter.append(["sort_ascending", sort_ascending, True, (bool)])
429
+ awu_matrix_setter.append(["nulls_first", nulls_first, True, (bool)])
430
+
431
+ # Perform the function validations
432
+ _Validators._validate_missing_required_arguments([["data", data, False,
433
+ (tdmldf.dataframe.DataFrame)]])
434
+ _Validators._validate_function_arguments(awu_matrix_setter)
435
+
436
+ self.data = data
437
+ self.data_partition_column = data_partition_column
438
+ self.data_hash_column = data_hash_column
439
+ self.data_order_column = data_order_column
440
+ self.is_local_order = is_local_order
441
+ self.sort_ascending = sort_ascending
442
+ self.nulls_first = nulls_first
443
+
444
+ def _execute(self, output_style='VIEW'):
445
+ """
446
+ Function to execute Table Operator queries.
447
+ Create DataFrames for the required Table Operator output.
448
+ """
449
+ table_type = TeradataConstants.TERADATA_VIEW
450
+ if output_style == OutputStyle.OUTPUT_TABLE.value:
451
+ table_type = TeradataConstants.TERADATA_TABLE
452
+
453
+ # Generate STDOUT table name and add it to the output table list.
454
+ tblop_stdout_temp_tablename = UtilFuncs._generate_temp_table_name(prefix="td_tblop_out_",
455
+ use_default_database=True, gc_on_quit=True,
456
+ quote=False,
457
+ table_type=table_type
458
+ )
459
+
460
+ try:
461
+ if configure.temp_object_type == TeradataConstants.TERADATA_VOLATILE_TABLE:
462
+ UtilFuncs._create_table(tblop_stdout_temp_tablename, self._tblop_query, volatile=True)
463
+ elif output_style == OutputStyle.OUTPUT_TABLE.value:
464
+ UtilFuncs._create_table(tblop_stdout_temp_tablename, self._tblop_query)
465
+ else:
466
+ UtilFuncs._create_view(tblop_stdout_temp_tablename, self._tblop_query)
467
+ except Exception as emsg:
468
+ raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, str(emsg)),
469
+ MessageCodes.TDMLDF_EXEC_SQL_FAILED)
470
+
471
+
472
+ self.result = self.__awu._create_data_set_object(
473
+ df_input=UtilFuncs._extract_table_name(tblop_stdout_temp_tablename), source_type="table",
474
+ database_name=UtilFuncs._extract_db_name(tblop_stdout_temp_tablename))
475
+
476
+ return self.result
477
+
478
+ def _returns_clause_validation(self):
479
+ """
480
+ DESCRIPTION:
481
+ Function validates 'returns' clause for a table operator query.
482
+
483
+ PARAMETERS:
484
+ None.
485
+
486
+ RETURNS:
487
+ None
488
+
489
+ RAISES:
490
+ Error if argument is not of valid datatype.
491
+
492
+ EXAMPLES:
493
+ self._returns_clause_validation()
494
+ """
495
+ # Validate keys and datatypes in returns.
496
+ if self.returns is not None:
497
+ awu_matrix_returns = []
498
+ for key in self.returns.keys():
499
+ awu_matrix_returns.append(["keys in returns", key, False, (str), True])
500
+ awu_matrix_returns.append(["values in returns", self.returns[key], False, self._supported_returns_datatypes])
501
+ _Validators._validate_function_arguments(awu_matrix_returns)
502
+
503
+
504
+ def test_script(self, supporting_files=None, input_data_file=None, script_args="",
505
+ exec_mode='local', **kwargs):
506
+ """
507
+ DESCRIPTION:
508
+ Function enables user to run script in docker container environment outside
509
+ Vantage.
510
+ Input data for user script is read from file.
511
+
512
+ PARAMETERS:
513
+ supporting_files:
514
+ Optional Argument
515
+ Specifies a file or list of supporting files like model files to be
516
+ copied to the container.
517
+ Types: string or list of str
518
+
519
+ input_data_file:
520
+ Required Argument.
521
+ Specifies the name of the input data file.
522
+ It should have a path relative to the location specified in
523
+ "files_local_path" argument.
524
+ If set to None, read data from AMP, else from file passed in the argument
525
+ 'input_data_file'.
526
+ File should have at least permissions of mode 644.
527
+ Types: str
528
+
529
+ script_args:
530
+ Optional Argument.
531
+ Specifies command line arguments required by the user script.
532
+ Types: str
533
+
534
+ exec_mode:
535
+ Optional Argument.
536
+ Specifies the mode in which user wants to test the script.
537
+ If set to 'local', the user script will run locally on user's system.
538
+ Permitted Values: 'local'
539
+ Default Value: 'local'
540
+ Types: str
541
+
542
+ kwargs:
543
+ Optional Argument.
544
+ Specifies the keyword arguments required for testing.
545
+ Keys can be:
546
+ data_row_limit:
547
+ Optional Argument. Ignored when data is read from file.
548
+ Specifies the number of rows to be taken from all amps when
549
+ reading from a table or view on Vantage.
550
+ Default Value: 1000
551
+ Types: int
552
+
553
+ password:
554
+ Optional Argument. Required when reading from database.
555
+ Specifies the password to connect to vantage where the data
556
+ resides.
557
+ Types: str
558
+
559
+ data_file_delimiter:
560
+ Optional Argument.
561
+ Specifies the delimiter used in the input data file. This
562
+ argument can be specified when data is read from file.
563
+ Default Value: '\t'
564
+ Types: str
565
+
566
+ data_file_header:
567
+ Optional Argument.
568
+ Specifies whether the input data file contains header. This
569
+ argument can be specified when data is read from file.
570
+ Default Value: True
571
+ Types: bool
572
+
573
+ data_file_quote_char:
574
+ Optional Argument.
575
+ Specifies the quotechar used in the input data file.
576
+ This argument can be specified when data is read from file.
577
+ Default Value: '"'
578
+
579
+ logmech:
580
+ Optional Argument.
581
+ Specifies the type of logon mechanism to establish a connection to
582
+ Teradata Vantage.
583
+ Permitted Values: 'TD2', 'TDNEGO', 'LDAP', 'KRB5' & 'JWT'.
584
+ TD2:
585
+ The Teradata 2 (TD2) mechanism provides authentication
586
+ using a Vantage username and password. This is the default
587
+ logon mechanism using which the connection is established
588
+ to Vantage.
589
+
590
+ TDNEGO:
591
+ A security mechanism that automatically determines the
592
+ actual mechanism required, based on policy, without user's
593
+ involvement. The actual mechanism is determined by the
594
+ TDGSS server configuration and by the security policy's
595
+ mechanism restrictions.
596
+
597
+ LDAP:
598
+ A directory-based user logon to Vantage with a directory
599
+ username and password and is authenticated by the directory.
600
+
601
+ KRB5 (Kerberos):
602
+ A directory-based user logon to Vantage with a domain
603
+ username and password and is authenticated by
604
+ Kerberos (KRB5 mechanism).
605
+ Note:
606
+ User must have a valid ticket-granting ticket in
607
+ order to use this logon mechanism.
608
+
609
+ JWT:
610
+ The JSON Web Token (JWT) authentication mechanism enables
611
+ single sign-on (SSO) to the Vantage after the user
612
+ successfully authenticates to Teradata UDA User Service.
613
+ Note:
614
+ User must use logdata parameter when using 'JWT' as
615
+ the logon mechanism.
616
+ Default Value: TD2
617
+ Types: str
618
+
619
+ Note:
620
+ teradataml expects the client environments are already setup with appropriate
621
+ security mechanisms and are in working conditions.
622
+ For more information please refer Teradata Vantage™ - Advanced SQL Engine
623
+ Security Administration at https://www.info.teradata.com/
624
+
625
+ logdata:
626
+ Optional Argument.
627
+ Specifies parameters to the LOGMECH command beyond those needed by
628
+ the logon mechanism, such as user ID, password and tokens
629
+ (in case of JWT) to successfully authenticate the user.
630
+ Types: str
631
+
632
+ Types: dict
633
+
634
+ RETURNS:
635
+ Output from user script.
636
+
637
+ RAISES:
638
+ TeradataMlException
639
+
640
+ EXAMPLES:
641
+ # Assumption - sto is Script() object. Please refer to help(Script)
642
+ # for creating Script object.
643
+
644
+ # Run user script in local mode with input from table.
645
+ >>> sto.test_script(data_row_limit=300, password='alice', exec_mode='local')
646
+
647
+ ############ STDOUT Output ############
648
+ word count_input
649
+ 0 1 1
650
+ 1 Old 1
651
+ 2 Macdonald 1
652
+ 3 Had 1
653
+ 4 A 1
654
+ 5 Farm 1
655
+
656
+ # Run user script in local mode with logmech as 'TD2'.
657
+ >>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="TD2")
658
+
659
+ # Run user script in local mode with logmech as 'TDNEGO'.
660
+ >>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="TDNEGO")
661
+
662
+ # Run user script in local mode with logmech as 'LDAP'.
663
+ >>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="LDAP")
664
+
665
+ # Run user script in local mode with logmech as 'KRB5'.
666
+ >>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="KRB5")
667
+
668
+ # Run user script in local mode with logmech as 'JWT'.
669
+ >>> sto.test_script(script_args="4 5 10 6 480", password="alice",
670
+ logmech='JWT', logdata='token=eyJpc...h8dA')
671
+
672
+ """
673
+ logmech_valid_values = ['TD2', 'TDNEGO', 'LDAP', 'KRB5', 'JWT']
674
+
675
+ awu_matrix_test = []
676
+ awu_matrix_test.append((["supporting_files", supporting_files, True,
677
+ (str, list), True]))
678
+ awu_matrix_test.append((["input_data_file", input_data_file, True, (str), True]))
679
+ awu_matrix_test.append((["script_args", script_args, True, (str), False]))
680
+ awu_matrix_test.append((["exec_mode", exec_mode, True, (str), True,
681
+ [TableOperatorConstants.LOCAL_EXEC.value]]))
682
+
683
+ data_row_limit = kwargs.pop("data_row_limit", 1000)
684
+ awu_matrix_test.append((["data_row_limit", data_row_limit, True, (int), True]))
685
+
686
+ data_file_delimiter = kwargs.pop("data_file_delimiter", '\t')
687
+ awu_matrix_test.append((["data_file_delimiter", data_file_delimiter, True,
688
+ (str), False]))
689
+
690
+ data_file_quote_char = kwargs.pop("data_file_quote_char", '"')
691
+ awu_matrix_test.append((["data_file_quote_char", data_file_quote_char, True,
692
+ (str), False]))
693
+
694
+ data_file_header = kwargs.pop("data_file_header", True)
695
+ awu_matrix_test.append((["data_file_header", data_file_header, True, (bool)]))
696
+
697
+ logmech = kwargs.pop("logmech", "TD2")
698
+ awu_matrix_test.append(
699
+ ["logmech", logmech, True, (str), True, logmech_valid_values])
700
+
701
+ logdata = kwargs.pop("logdata", None)
702
+ awu_matrix_test.append(["logdata", logdata, True, (str), True])
703
+
704
+ # Validate argument types.
705
+ _Validators._validate_function_arguments(awu_matrix_test)
706
+
707
+ self._validate()
708
+
709
+ if logmech == "JWT" and not logdata:
710
+ raise TeradataMlException(
711
+ Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING, 'logdata',
712
+ 'logmech=JWT'),
713
+ MessageCodes.DEPENDENT_ARG_MISSING)
714
+
715
+ if data_row_limit <= 0:
716
+ raise ValueError(Messages.get_message(MessageCodes.TDMLDF_POSITIVE_INT).
717
+ format("data_row_limit", "greater than"))
718
+
719
+ # Either of 'input_data_file' or 'password' argument is required.
720
+ password = kwargs.pop("password", None)
721
+
722
+ # When exec_mode is local, the connection object is used to get the values in the table.
723
+ if exec_mode == "local" and not (input_data_file or self.data):
724
+ message = Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
725
+ "input_data_file", "Script data")
726
+ raise TeradataMlException(message, MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
727
+
728
+ if not self.script_name and self.files_local_path:
729
+ message = Messages.get_message(MessageCodes.MISSING_ARGS,
730
+ "script_name and files_local_path")
731
+ raise TeradataMlException(message, MessageCodes.MISSING_ARGS)
732
+
733
+ if input_data_file:
734
+ if self.files_local_path is None:
735
+ message = Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
736
+ "files_local_path", "input_data_file")
737
+ raise TeradataMlException(message, MessageCodes.DEPENDENT_ARG_MISSING)
738
+ else:
739
+ # Check if file exists.
740
+ fpath = os.path.join(self.files_local_path,
741
+ input_data_file)
742
+ _Validators._validate_file_exists(fpath)
743
+
744
+ if self.script_name and self.files_local_path:
745
+ # Check if file exists.
746
+ fpath = os.path.join(self.files_local_path,
747
+ os.path.basename(self.script_name))
748
+ _Validators._validate_file_exists(fpath)
749
+
750
+ if exec_mode.upper() == TableOperatorConstants.LOCAL_EXEC.value:
751
+ user_script_path = os.path.join(self.files_local_path, self.script_name)
752
+ import sys
753
+ cmd = [str(sys.executable), user_script_path]
754
+ cmd.extend(script_args)
755
+
756
+ if input_data_file is not None:
757
+ input_file_path = os.path.join(self.files_local_path, input_data_file)
758
+
759
+ # Run user script locally with input from a file.
760
+ exec_cmd_output = self.__local_run_user_script_input_file(
761
+ cmd, input_file_path, data_file_delimiter, data_file_quote_char, data_file_header)
762
+ try:
763
+ return self.__process_test_script_output(exec_cmd_output)
764
+ except Exception as exp:
765
+ raise
766
+
767
+ else:
768
+ if self.data.shape[0] > data_row_limit:
769
+ raise ValueError(
770
+ Messages.get_message(MessageCodes.DATAFRAME_LIMIT_ERROR,
771
+ 'data_row_limit', 'data_row_limit',
772
+ data_row_limit))
773
+
774
+ if not self.data._table_name:
775
+ self.data._table_name = df_utils._execute_node_return_db_object_name(
776
+ self.data._nodeid, self.data._metaexpr)
777
+
778
+ table_name = UtilFuncs._extract_table_name(self.data._table_name)
779
+
780
+ # Run user script locally with input from db.
781
+ exec_cmd_output = self.__local_run_user_script_input_db(cmd, table_name)
782
+ try:
783
+ return self.__process_test_script_output(exec_cmd_output)
784
+ except Exception as exp:
785
+ raise
786
+
787
+ def __local_run_user_script_input_file(self, cmd, input_file_path,
788
+ data_file_delimiter='\t',
789
+ data_file_quote_char='"',
790
+ data_file_header=True):
791
+ """
792
+ DESCRIPTION:
793
+ Function to run the user script in local mode with input from file.
794
+
795
+ PARAMETERS:
796
+ cmd:
797
+ Required Argument.
798
+ Specifies the command for running the user script.
799
+ Types: str
800
+
801
+ input_file_path:
802
+ Required Argument.
803
+ Specifies the absolute local path of input data file.
804
+ Types: str
805
+
806
+ data_file_delimiter:
807
+ Optional Argument.
808
+ Specifies the delimiter used in input data file.
809
+ Default Value: '\t'
810
+ Types: str
811
+
812
+ data_file_quote_char:
813
+ Optional Argument.
814
+ Specifies the quote character used in input data file.
815
+ Default Value: '"'
816
+ Types: str
817
+
818
+ data_file_header:
819
+ Optional Argument.
820
+ Specifies whether the input data file has header.
821
+ Default Value: True
822
+ Types: bool
823
+
824
+ RETURNS:
825
+ The string output of the command that is run on input data file.
826
+
827
+ RAISES:
828
+ Exception.
829
+
830
+ EXAMPLES:
831
+ self.__local_run_user_script_input_file(cmd ="cmd",
832
+ input_file_path = "input_file_path",
833
+ data_file_delimiter = "data_file_delimiter",
834
+ data_file_quote_char = "data_file_quote_char",
835
+ data_file_header = True)
836
+
837
+ """
838
+ with open(input_file_path) as data_file:
839
+ import csv
840
+ from pandas import isna as pd_isna
841
+
842
+ data_handle = StringIO()
843
+
844
+ # Read data from input file.
845
+ ip_data = csv.reader(data_file,
846
+ delimiter=data_file_delimiter,
847
+ quotechar=data_file_quote_char)
848
+ # Skip the first row of input file if data_file_header is True.
849
+ if data_file_header:
850
+ next(ip_data)
851
+ for row in ip_data:
852
+ if self.quotechar is not None:
853
+ # A NULL value should not be enclosed in quotes.
854
+ # The CSV module has no support for such output with writer,
855
+ # and hence the custom formatting.
856
+ line = ['' if pd_isna(s) else "{}{}{}".format(self.quotechar,
857
+ str(s),
858
+ self.quotechar)
859
+ for s in row]
860
+ else:
861
+ line = ['' if pd_isna(s) else str(s) for s in row]
862
+
863
+ complete_line = (self.delimiter.join(line))
864
+
865
+ data_handle.write(complete_line)
866
+ data_handle.write("\n")
867
+
868
+ return self.__run_user_script_subprocess(cmd, data_handle)
869
+
870
+ def __run_user_script_subprocess(self, cmd, data_handle):
871
+ """
872
+ DESCRIPTION:
873
+ Function to run the user script in a new process and return the output.
874
+
875
+ PARAMETERS:
876
+ cmd:
877
+ Required Argument.
878
+ Specifies the command for running the script.
879
+ Types: str
880
+
881
+ data_handle:
882
+ Required Argument.
883
+ Specifies the data handle for the input data required by the user script.
884
+
885
+ RETURNS:
886
+ Output of user script on input data supplied in data_handle.
887
+
888
+ RAISES:
889
+ None.
890
+
891
+ EXAMPLES:
892
+ self.__run_user_script_subprocess(cmd = "exec_cmd_output",
893
+ data_handle = data_handle)
894
+
895
+ """
896
+ # Launching new process to run the user script.
897
+ try:
898
+ proc = subprocess.Popen(cmd, stdin=subprocess.PIPE,
899
+ stdout=subprocess.PIPE,
900
+ stderr=subprocess.PIPE)
901
+ process_output, process_error = proc.communicate(data_handle.getvalue().encode())
902
+ data_handle.close()
903
+
904
+ if proc.returncode == 0:
905
+ return process_output.decode("utf-8").rstrip("\r|\n")
906
+ else:
907
+ message = Messages.get_message(MessageCodes.SCRIPT_LOCAL_RUN_ERROR).\
908
+ format(process_error)
909
+ raise TeradataMlException(message, MessageCodes.SCRIPT_LOCAL_RUN_ERROR)
910
+ except Exception as e:
911
+ raise e
912
+
913
+ def __process_test_script_output(self, exec_cmd_output):
914
+ """
915
+ DESCRIPTION:
916
+ Function to format the output of the user script.
917
+
918
+ PARAMETERS:
919
+ exec_cmd_output:
920
+ Required Argument.
921
+ Specifies the output returned by the user script.
922
+ Types: str
923
+
924
+ RETURNS:
925
+ The test script output as Pandas DataFrame.
926
+
927
+ RAISES:
928
+ Exception.
929
+
930
+ EXAMPLES:
931
+ self.__process_test_script_output(exec_cmd_output = "exec_cmd_output")
932
+ """
933
+ try:
934
+ kwargs = dict()
935
+ if self.quotechar is not None:
936
+ kwargs['quotechar'] = self.quotechar
937
+ kwargs['quoting'] = 1 # QUOTE_ALL
938
+
939
+ output = StringIO(exec_cmd_output)
940
+
941
+ from pandas import read_csv as pd_read_csv
942
+
943
+ # Form a pandas dataframe.
944
+ df = pd_read_csv(output, sep=self.delimiter, index_col=False, header=None,
945
+ names=list(self.returns.keys()), **kwargs)
946
+ return df
947
+
948
+ except Exception as exp:
949
+ raise exp
950
+
951
+ def __local_run_user_script_input_db(self, cmd, table_name):
952
+ """
953
+ DESCRIPTION:
954
+ Function to run the user script in local mode with input from db.
955
+
956
+ PARAMETERS:
957
+ cmd:
958
+ Required Argument.
959
+ Specifies the command for running the user script.
960
+ Types: str
961
+
962
+ table_name:
963
+ Required Argument.
964
+ Specifies the table name for input to user script.
965
+ Types: str
966
+
967
+ RETURNS:
968
+ The string output of the command that is run on the Vantage table.
969
+
970
+ RAISES:
971
+ Exception.
972
+
973
+ EXAMPLES:
974
+ self.__local_run_user_script_input_db(cmd = "cmd", table_name = "table_name")
975
+
976
+ """
977
+ db_data_handle = StringIO()
978
+ try:
979
+ con = get_connection()
980
+ # Query for reading data from DB.
981
+ query = ("SELECT * FROM {} ORDER BY 1;".format(table_name))
982
+ cur = execute_sql(query)
983
+ row = cur.fetchone()
984
+ from pandas import isna as pd_isna
985
+ while row:
986
+ if self.quotechar is not None:
987
+ # A NULL value should not be enclosed in quotes.
988
+ # The CSV module has no support for such output with writer,
989
+ # and hence the custom formatting.
990
+ line = ['' if pd_isna(s) else "{}{}{}".format(self.quotechar,
991
+ str(s),
992
+ self.quotechar)
993
+ for s in row]
994
+ else:
995
+ line = ['' if pd_isna(s) else str(s) for s in row]
996
+
997
+ complete_line = (self.delimiter.join(line))
998
+ db_data_handle.write(complete_line)
999
+ db_data_handle.write("\n")
1000
+ row = cur.fetchone()
1001
+ except Exception as exp:
1002
+ raise exp
1003
+
1004
+ return self.__run_user_script_subprocess(cmd, db_data_handle)
1005
+
1006
+ def __repr__(self):
1007
+ """
1008
+ Returns the string representation for the class instance.
1009
+ """
1010
+ if self.result is None:
1011
+ repr_string = "Result is empty. Please run execute_script first."
1012
+ else:
1013
+ repr_string = "############ STDOUT Output ############"
1014
+ repr_string = "{}\n\n{}".format(repr_string, self.result)
1015
+ return repr_string
1016
+
1017
+ def deploy(self, model_column, partition_columns=None, model_file_prefix=None, retry=3,
1018
+ retry_timeout=30):
1019
+ """
1020
+ DESCRIPTION:
1021
+ Function deploys the models generated after running `execute_script()` in database in
1022
+ VantageCloud Enterprise or in user environment in VantageCloud Lake.
1023
+ If deployed files are not needed, these files can be removed using `remove_file()` in
1024
+ database or `UserEnv.remove_file()` in lake.
1025
+
1026
+ Note:
1027
+ If the models (one or many) fail to get deployed in Vantage even after retries,
1028
+ try deploying them again using `install_file()` function or remove installed
1029
+ files using `remove_file()` function.
1030
+
1031
+ PARAMETERS:
1032
+ model_column:
1033
+ Required Argument.
1034
+ Specifies the column name in which models are present.
1035
+ Supported types of model in this column are CLOB and BLOB.
1036
+ Note:
1037
+ The column mentioned in this argument should be present in
1038
+ <apply_obj/script_obj>.result.
1039
+ Types: str
1040
+
1041
+ partition_columns:
1042
+ Optional Argument.
1043
+ Specifies the columns on which data is partitioned.
1044
+ Note:
1045
+ The columns mentioned in this argument should be present in
1046
+ <apply_obj/script_obj>.result.
1047
+ Types: str OR list of str
1048
+
1049
+ model_file_prefix:
1050
+ Optional Argument.
1051
+ Specifies the prefix to be used to the generated model file.
1052
+ If this argument is None, prefix is auto-generated.
1053
+ If the argument "model_column" contains multiple models and
1054
+ * "partition_columns" is None - model file prefix is appended with
1055
+ underscore(_) and numbers starting from one(1) to get model file
1056
+ names.
1057
+ * "partition_columns" is NOT None - model file prefix is appended
1058
+ with underscore(_) and unique values in partition_columns are joined
1059
+ with underscore(_) to generate model file names.
1060
+ Types: str
1061
+
1062
+ retry:
1063
+ Optional Argument.
1064
+ Specifies the maximum number of retries to be made to deploy the models.
1065
+ This argument helps in retrying the deployment of models in case of network issues.
1066
+ This argument should be a positive integer.
1067
+ Default Value: 3
1068
+ Types: int
1069
+
1070
+ retry_timeout:
1071
+ Optional Argument. Used along with retry argument. Ignored otherwise.
1072
+ Specifies the time interval in seconds between each retry.
1073
+ This argument should be a positive integer.
1074
+ Default Value: 30
1075
+ Types: int
1076
+
1077
+ RETURNS:
1078
+ List of generated file identifiers in database or file names in lake.
1079
+
1080
+ RAISES:
1081
+ - TeradatamlException
1082
+ - Throws warning when models failed to deploy even after retries.
1083
+
1084
+ EXAMPLES:
1085
+ >>> import teradataml
1086
+ >>> from teradataml import load_example_data
1087
+ >>> load_example_data("openml", "multi_model_classification")
1088
+
1089
+ >>> df = DataFrame("multi_model_classification")
1090
+ >>> df
1091
+ col2 col3 col4 label group_column partition_column_1 partition_column_2
1092
+ col1
1093
+ -1.013454 0.855765 -0.256920 -0.085301 1 9 0 10
1094
+ -3.146552 -1.805530 -0.071515 -2.093998 0 10 0 10
1095
+ -1.175097 -0.950745 0.018280 -0.895335 1 10 0 11
1096
+ 0.218497 -0.968924 0.183037 -0.303142 0 11 0 11
1097
+ -1.471908 -0.029195 -0.166141 -0.645309 1 11 1 10
1098
+ 1.082336 0.846357 -0.012063 0.812633 1 11 1 11
1099
+ -1.132068 -1.209750 0.065422 -0.982986 0 10 1 10
1100
+ -0.440339 2.290676 -0.423878 0.749467 1 8 1 10
1101
+ -0.615226 -0.546472 0.017496 -0.488720 0 12 0 10
1102
+ 0.579671 -0.573365 0.160603 0.014404 0 9 1 10
1103
+
1104
+ ## Run in VantageCloud Enterprise using Script object.
1105
+ # Install Script file.
1106
+ >>> file_location = os.path.join(os.path.dirname(teradataml.__file__), "data", "scripts", "deploy_script.py")
1107
+ >>> install_file("deploy_script", file_location, replace=True)
1108
+
1109
+ >>> execute_sql("SET SESSION SEARCHUIFDBPATH = <db_name>;")
1110
+
1111
+ # Variables needed for Script execution.
1112
+ >>> from teradataml import configure
1113
+ >>> script_command = f'{configure.indb_install_location} ./<db_name>/deploy_script.py enterprise'
1114
+ >>> partition_columns = ["partition_column_1", "partition_column_2"]
1115
+ >>> columns = ["col1", "col2", "col3", "col4", "label",
1116
+ "partition_column_1", "partition_column_2"]
1117
+ >>> returns = OrderedDict([("partition_column_1", INTEGER()),
1118
+ ("partition_column_2", INTEGER()),
1119
+ ("model", CLOB())])
1120
+
1121
+ # Script execution.
1122
+ >>> obj = Script(data=df.select(columns),
1123
+ script_command=script_command,
1124
+ data_partition_column=partition_columns,
1125
+ returns=returns
1126
+ )
1127
+ >>> opt = obj.execute_script()
1128
+ >>> opt
1129
+ partition_column_1 partition_column_2 model model
1130
+ 0 10 b'gAejc1.....drIr'
1131
+ 0 11 b'gANjcw.....qWIu'
1132
+ 1 10 b'abdwcd.....dWIz'
1133
+ 1 11 b'gA4jc4.....agfu'
1134
+
1135
+ # Example 1: Provide only "partition_columns" argument. Here, "model_file_prefix"
1136
+ # is auto generated.
1137
+ >>> obj.deploy(model_column="model",
1138
+ partition_columns=["partition_column_1", "partition_column_2"])
1139
+ ['model_file_1710436227163427__0_10',
1140
+ 'model_file_1710436227163427__1_10',
1141
+ 'model_file_1710436227163427__0_11',
1142
+ 'model_file_1710436227163427__1_11']
1143
+
1144
+ # Example 2: Provide only "model_file_prefix" argument. Here, filenames are suffixed
1145
+ # with 1, 2, 3, ... for multiple models.
1146
+ >>> obj.deploy(model_column="model", model_file_prefix="my_prefix_new_")
1147
+ ['my_prefix_new__1',
1148
+ 'my_prefix_new__2',
1149
+ 'my_prefix_new__3',
1150
+ 'my_prefix_new__4']
1151
+
1152
+ # Example 3: Without both "partition_columns" and "model_file_prefix" arguments.
1153
+ >>> obj.deploy(model_column="model")
1154
+ ['model_file_1710438346528596__1',
1155
+ 'model_file_1710438346528596__2',
1156
+ 'model_file_1710438346528596__3',
1157
+ 'model_file_1710438346528596__4']
1158
+
1159
+ # Example 4: Provide both "partition_columns" and "model_file_prefix" arguments.
1160
+ >>> obj.deploy(model_column="model", model_file_prefix="my_prefix_new_",
1161
+ partition_columns=["partition_column_1", "partition_column_2"])
1162
+ ['my_prefix_new__0_10',
1163
+ 'my_prefix_new__0_11',
1164
+ 'my_prefix_new__1_10',
1165
+ 'my_prefix_new__1_11']
1166
+
1167
+ # Example 5: Assuming that 2 model files fail to get installed due to network issues,
1168
+ # the function retries installing the failed files twice with timeout between
1169
+ # retries of 10 secs.
1170
+ >>> opt = obj.deploy(model_column="model", model_file_prefix="my_prefix_",
1171
+ partition_columns=["partition_column_1", "partition_column_2"],
1172
+ retry=2, retry_timeout=10)
1173
+ RuntimeWarning: The following model files failed to get installed in Vantage:
1174
+ ['my_prefix__1_10', 'my_prefix__1_11'].
1175
+ Try manually deploying them from the path '<temp_path>' using:
1176
+ - `install_file()` when connected to Enterprise/On-Prem system or
1177
+ - `UserEnv.install_file()` when connected to Lake system.
1178
+ OR
1179
+ Remove the returned installed files manually using `remove_file()` or `UserEnv.remove_file()`.
1180
+ >>> opt
1181
+ ['my_prefix__0_10',
1182
+ 'my_prefix__0_11']
1183
+
1184
+ ## Run in VantageCloud Lake using Apply object.
1185
+ # Let's assume an user environment named "user_env" already exists in VantageCloud Lake,
1186
+ # which will be used for the examples below.
1187
+
1188
+ # ApplyTableOperator returns BLOB type for model column as per deploy_script.py.
1189
+ >>> returns = OrderedDict([("partition_column_1", INTEGER()),
1190
+ ("partition_column_2", INTEGER()),
1191
+ ("model", BLOB())])
1192
+
1193
+ # Install the script file which returns model and partition columns.
1194
+ >>> user_env.install_file(file_location)
1195
+
1196
+ >>> script_command = 'python3 deploy_script.py lake'
1197
+ >>> obj = Apply(data=df.select(columns),
1198
+ script_command=script_command,
1199
+ data_partition_column=partition_columns,
1200
+ returns=returns,
1201
+ env_name="user_env"
1202
+ )
1203
+
1204
+ >>> opt = obj.execute_script()
1205
+ >>> opt
1206
+ partition_column_1 partition_column_2 model model
1207
+ 0 10 b'gAejc1.....drIr'
1208
+ 0 11 b'gANjcw.....qWIu'
1209
+ 1 10 b'abdwcd.....dWIz'
1210
+ 1 11 b'gA4jc4.....agfu'
1211
+
1212
+ # Example 6: Provide both "partition_columns" and "model_file_prefix" arguments.
1213
+ >>> obj.deploy(model_column="model", model_file_prefix="my_prefix_",
1214
+ partition_columns=["partition_column_1", "partition_column_2"])
1215
+ ['my_prefix__0_10',
1216
+ 'my_prefix__0_11',
1217
+ 'my_prefix__1_10',
1218
+ 'my_prefix__1_11']
1219
+
1220
+ # Other examples are similar to the examples provided for VantageCloud Enterprise.
1221
+ """
1222
+
1223
+ arg_info_matrix = []
1224
+ arg_info_matrix.append(["model_column", model_column, False, (str)])
1225
+ arg_info_matrix.append(["partition_columns", partition_columns, True, (str, list)])
1226
+ arg_info_matrix.append(["model_file_prefix", model_file_prefix, True, (str)])
1227
+ arg_info_matrix.append(["retry", retry, True, (int)])
1228
+ arg_info_matrix.append(["retry_timeout", retry_timeout, True, (int)])
1229
+ _Validators._validate_function_arguments(arg_info_matrix)
1230
+
1231
+ _Validators._validate_positive_int(retry, "retry", lbound_inclusive=True)
1232
+ _Validators._validate_positive_int(retry_timeout, "retry_timeout", lbound_inclusive=True)
1233
+
1234
+ if self.result is None:
1235
+ return "Result is empty. Please run execute_script first."
1236
+
1237
+ if partition_columns is None:
1238
+ partition_columns = []
1239
+ partition_columns = UtilFuncs._as_list(partition_columns)
1240
+
1241
+ req_columns = [model_column] + partition_columns
1242
+
1243
+ _Validators._validate_column_exists_in_dataframe(columns=req_columns, metaexpr=self.result._metaexpr)
1244
+
1245
+ data = self.result.select(req_columns)
1246
+ data._index_column = None # Without this, first column i.e., model column will be index column.
1247
+
1248
+
1249
+ if model_file_prefix is None:
1250
+ timestamp = time.time()
1251
+ tmp = "{}{}".format(floor(timestamp / 1000000),
1252
+ floor(timestamp % 1000000 * 1000000 +
1253
+ int(str(uuid.uuid4().fields[-1])[:10])))
1254
+ model_file_prefix = f"model_file_{tmp}_"
1255
+
1256
+ vals = data.get_values()
1257
+
1258
+ model_column_type = data._td_column_names_and_sqlalchemy_types[model_column.lower()].__class__.__name__
1259
+
1260
+ n_models = len(vals)
1261
+
1262
+ # Default location for .teradataml is user's home directory if configure.local_storage is not set.
1263
+ tempdir = GarbageCollector._get_temp_dir_name()
1264
+
1265
+ def __install_file(model_file, model_file_path):
1266
+ """
1267
+ Function to install the model file in Vantage and return the status.
1268
+ """
1269
+ file_installed = True
1270
+ try:
1271
+ if self.__class__.__name__ == "Script":
1272
+ from teradataml.dbutils.filemgr import install_file
1273
+ install_file(file_identifier=model_file, file_path=model_file_path,
1274
+ is_binary=True, suppress_output=True, replace=True)
1275
+ elif self.__class__.__name__ == "Apply":
1276
+ self.env.install_file(file_path=model_file_path, suppress_output=True, replace=True)
1277
+ except Exception as e:
1278
+ file_installed = False
1279
+ return file_installed
1280
+
1281
+ installed_files = []
1282
+ failed_files = []
1283
+
1284
+ for i, row in enumerate(vals):
1285
+ model = row[0]
1286
+ partition_values = ""
1287
+ if partition_columns:
1288
+ partition_values = "_".join([str(x) for x in row[1:]])
1289
+ elif n_models > 1:
1290
+ partition_values = str(i+1)
1291
+
1292
+ model_file = f"{model_file_prefix}_{partition_values}"
1293
+ model_file_path = os.path.join(tempdir, model_file)
1294
+
1295
+ if model_column_type == "CLOB":
1296
+ import base64
1297
+ model = base64.b64decode(model.partition("'")[2])
1298
+ elif model_column_type == "BLOB":
1299
+ # No operation needed.
1300
+ # Apply model training returns BLOB type.
1301
+ pass
1302
+ else:
1303
+ raise ValueError(f"Model column type {model_column_type} is not supported.")
1304
+
1305
+ with open(model_file_path, "wb") as f:
1306
+ f.write(model)
1307
+
1308
+ file_installed = __install_file(model_file, model_file_path)
1309
+
1310
+ if file_installed:
1311
+ installed_files.append(model_file)
1312
+ os.remove(model_file_path)
1313
+ else:
1314
+ # File failed to get installed in Vantage. Hence, keeping the file in tempdir.
1315
+ failed_files.append(model_file)
1316
+
1317
+ while retry and failed_files:
1318
+ # If there are any failed files and retry is not zero, retry installing the failed files.
1319
+ time.sleep(retry_timeout)
1320
+ retry_failed_files = []
1321
+ for model_file in failed_files:
1322
+ model_file_path = os.path.join(tempdir, model_file)
1323
+ file_installed = __install_file(model_file, model_file_path)
1324
+
1325
+ if file_installed:
1326
+ installed_files.append(model_file)
1327
+ os.remove(model_file_path)
1328
+ else:
1329
+ # File failed to get installed in Vantage. Hence, keeping the file in tempdir.
1330
+ retry_failed_files.append(model_file)
1331
+ failed_files = retry_failed_files
1332
+ retry -= 1
1333
+
1334
+ if failed_files:
1335
+ failed_files.sort()
1336
+ warning_message = "The following model files failed to get installed in Vantage:\n" + str(failed_files) + ".\n"
1337
+ warning_message += "Try manually deploying them from the path '" + tempdir + "' using:\n"
1338
+ warning_message += " - `install_file()` when connected to Enterprise/On-Prem system or\n"
1339
+ warning_message += " - `UserEnv.install_file()` when connected to Lake system.\n"
1340
+ warning_message += "OR\nRemove the returned installed files manually using `remove_file()` or `UserEnv.remove_file()`."
1341
+ warnings.warn(RuntimeWarning(warning_message))
1342
+
1343
+ return installed_files