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,1321 @@
1
+ # ##################################################################
2
+ #
3
+ # Copyright 2023 Teradata. All rights reserved.
4
+ # TERADATA CONFIDENTIAL AND TRADE SECRET
5
+ #
6
+ # Primary Owner: Adithya Avvaru (adithya.avvaru@teradata.com)
7
+ # Secondary Owner: Pankaj Purandare (pankajvinod.purandare@teradata.com)
8
+ #
9
+ # Version: 1.0
10
+ # Function Version: 1.0
11
+ #
12
+ # This file contains object wrapper class for opensource packages and child object
13
+ # wrapper classes for each opensource package. Currently, we have child object
14
+ # wrapper class for scikit-learn.
15
+ #
16
+ # ##################################################################
17
+
18
+ import base64
19
+ import json
20
+ import os
21
+ import pickle
22
+ import warnings
23
+ from collections import OrderedDict, defaultdict
24
+ from importlib import import_module
25
+
26
+ import pandas as pd
27
+ from teradataml.scriptmgmt.lls_utils import list_user_envs
28
+ from teradatasqlalchemy import BLOB, CLOB
29
+
30
+ from teradataml import _TDML_DIRECTORY, Apply, Script, TeradataMlException
31
+ from teradataml.catalog.byom import delete_byom, retrieve_byom, save_byom
32
+ from teradataml.common import pylogger
33
+ from teradataml.common.constants import TeradataConstants
34
+ from teradataml.common.garbagecollector import GarbageCollector
35
+ from teradataml.common.messagecodes import MessageCodes
36
+ from teradataml.common.messages import Messages
37
+ from teradataml.common.utils import UtilFuncs
38
+ from teradataml.common.warnings import OneTimeUserWarning
39
+ from teradataml.context.context import (_get_current_databasename,
40
+ get_connection)
41
+ from teradataml.dataframe.dataframe import DataFrame
42
+ from teradataml.dataframe.dataframe_utils import DataFrameUtils
43
+ from teradataml.dbutils.dbutils import (_create_table,
44
+ execute_sql, set_session_param)
45
+ from teradataml.dbutils.filemgr import install_file, remove_file
46
+ from teradataml.opensource._constants import (
47
+ _OSML_ADDITIONAL_COLUMN_TYPES, _OSML_MODELS_PRIMARY_INDEX,
48
+ _OSML_MODELS_TABLE_COLUMNS_TYPE_DICT, _OSML_MODELS_TABLE_NAME,
49
+ OpensourceModels, OpenSourcePackage, _packages_verified_in_vantage)
50
+ from teradataml.opensource._wrapper_utils import (_generate_new_name,
51
+ _validate_df_query_type)
52
+ from teradataml.options.configure import configure
53
+ from teradataml.utils.validators import _Validators
54
+ from teradataml.utils.internal_buffer import _InternalBuffer
55
+
56
+ logger = pylogger.getLogger()
57
+
58
+ validator = _Validators()
59
+
60
+ installed_model_files = defaultdict(int)
61
+
62
+ ## Flag to ensure the sklearn script
63
+ ## installation occurs only once.
64
+ _file_installed = False
65
+
66
+ class _GenericObjectWrapper:
67
+ def __init__(self) -> None:
68
+ if not get_connection():
69
+ raise TeradataMlException(Messages.get_message(MessageCodes.INVALID_CONTEXT_CONNECTION),
70
+ MessageCodes.INVALID_CONTEXT_CONNECTION)
71
+ self._db_name = _get_current_databasename()
72
+
73
+ self._scripts_path = os.path.join(_TDML_DIRECTORY, "data", "scripts", "sklearn")
74
+
75
+ # Some random number to be used as partition value if partition_columns is None for fit().
76
+ self._default_data_partition_value = -1001
77
+
78
+ self.modelObj = None
79
+ self._model_data = None
80
+
81
+ self._tdml_tmp_dir = GarbageCollector._get_temp_dir_name()
82
+
83
+ self._env = None
84
+
85
+ self._is_lake_system = UtilFuncs._is_lake()
86
+
87
+ if self._is_lake_system:
88
+ if configure.openml_user_env is not None:
89
+ self._env = configure.openml_user_env
90
+ else:
91
+ self._env = UtilFuncs._create_or_get_env("open_source_ml.json")
92
+ else:
93
+ set_session_param("searchuifdbpath", self._db_name)
94
+
95
+ # Check if the Python interpreter major versions are consistent between Vantage and local.
96
+ _check_py_version = _InternalBuffer.get('_check_py_version')
97
+ if _check_py_version:
98
+ UtilFuncs._check_python_version_diff(self._env)
99
+
100
+ # Raise warning when python package versions don't match between Vantage and local.
101
+ # OPENSOURCE_PACKAGE_NAME is set for each opensource package, but not for the base class.
102
+ # Add a check to avoid running this function for the base class.
103
+ if self.OPENSOURCE_PACKAGE_NAME is not None:
104
+ UtilFuncs._check_package_version_diff(self.OPENSOURCE_PACKAGE_NAME.value, self._pkgs, self._env)
105
+
106
+ global _file_installed
107
+ ## Flag to check whether trained model is installed or not.
108
+ self._is_trained_model_installed = False
109
+
110
+ ## Install all sklearn script files on Vantage.
111
+ if not _file_installed:
112
+ sklearn_script_files = ["sklearn_fit.py", "sklearn_score.py",
113
+ "sklearn_transform.py", "sklearn_fit_predict.py",
114
+ "sklearn_neighbors.py", "sklearn_model_selection_split.py"]
115
+ for script_file in sklearn_script_files:
116
+ self._install_script_file(file_identifier=script_file.split(".")[0],
117
+ file_name=script_file)
118
+
119
+ _file_installed = True
120
+
121
+ def _get_columns_as_list(self, cols):
122
+ """
123
+ Internal function to get columns as list of strings.
124
+ Empty list is returned if cols is None.
125
+ """
126
+ if cols is None:
127
+ return []
128
+ if not isinstance(cols, list) and not isinstance(cols, tuple):
129
+ return [cols]
130
+ return cols
131
+
132
+ def _get_data_and_data_partition_columns(self, data, feature_columns, label_columns,
133
+ partition_columns=None, group_columns=[]):
134
+ """
135
+ Internal function to generate one new partition column (if not provided) and return
136
+ data and partition columns (either generated or passed one).
137
+ """
138
+ new_partition_columns = self._get_columns_as_list(partition_columns)
139
+
140
+ if not partition_columns:
141
+ # If partition column is not specified, create a partition column and run Script.
142
+ # This runs the Script in one AMP as we are partitioning data using this column
143
+ # which contains only one value.
144
+ new_partition_columns = [_generate_new_name(type="column")]
145
+ data = data.assign(**{new_partition_columns[0]: self._default_data_partition_value})
146
+
147
+ # Filter out partition columns from feature columns and label columns.
148
+ new_partition_columns_filtered = [col for col in new_partition_columns
149
+ if col not in (feature_columns + label_columns + group_columns)]
150
+
151
+ all_columns = feature_columns + label_columns + group_columns + new_partition_columns_filtered
152
+ return data.select(all_columns), new_partition_columns
153
+
154
+ def _run_script(self, data, command, partition_columns, return_types):
155
+ """
156
+ Internal function to run Script(), given the argument needed by STO's or
157
+ Apply's Script.
158
+ """
159
+ if isinstance(partition_columns, list) and len(partition_columns) == 0:
160
+ partition_columns = None
161
+
162
+ if self._is_lake_system:
163
+ obj = Apply(data=data,
164
+ returns=OrderedDict(return_types),
165
+ apply_command=command,
166
+ data_partition_column=partition_columns,
167
+ env_name=self._env,
168
+ delimiter="\t")
169
+ else:
170
+ obj = Script(data=data,
171
+ returns=OrderedDict(return_types),
172
+ script_command=command,
173
+ data_partition_column=partition_columns)
174
+ obj.check_reserved_keyword = False
175
+
176
+ obj.skip_argument_validation = True
177
+ return obj.execute_script(output_style="TABLE")
178
+
179
+ def _install_script_file(self,
180
+ file_identifier=None,
181
+ file_name=None,
182
+ is_binary=False,
183
+ file_location=None):
184
+ """
185
+ Internal function to install script file in Vantage.
186
+ """
187
+ if file_location is None:
188
+ file_location = self._scripts_path
189
+ new_script = os.path.join(file_location, file_name)
190
+
191
+ # _env is set while object creation
192
+ # If not set, it is Vantage Enterprise. Otherwise, it is Vantage Lake.
193
+
194
+ if not self._is_lake_system:
195
+ status = install_file(file_identifier=file_identifier,
196
+ file_path=new_script,
197
+ replace=True,
198
+ suppress_output=True,
199
+ is_binary=is_binary)
200
+ else:
201
+ status = self._env.install_file(file_path=new_script,
202
+ replace=True,
203
+ suppress_output=True)
204
+ if not status:
205
+ raise TeradataMlException(
206
+ f"Script file '{file_name}' failed to get installed/replaced in Vantage."
207
+ )
208
+
209
+ def _remove_script_file(self, file_name):
210
+ """
211
+ Internal function to remove script file in Vantage.
212
+ """
213
+ # _env is set while object creation
214
+ # If not set, it is Vantage Enterprise. Otherwise, it is Vantage Lake.
215
+
216
+ if not self._is_lake_system:
217
+ status = remove_file(file_identifier=file_name.split(".")[0],
218
+ force_remove=True,
219
+ suppress_output=True)
220
+ else:
221
+ status = self._env.remove_file(file_name=file_name,
222
+ suppress_output=True)
223
+ if not status:
224
+ raise TeradataMlException(
225
+ f"Script file '{file_name}' failed to remove in Vantage."
226
+ )
227
+
228
+ def _get_data_col_types_and_partition_col_indices_and_types(self, data, partition_columns,
229
+ idx_delim=",",
230
+ types_delim="--"):
231
+ """
232
+ Internal function to get the data column types and partition column names, indices and types.
233
+ Function returns delimiter separated string of types and indices if idx_delim and
234
+ types_delim are provided. Otherwise, it returns list of types and indices. Partition names
235
+ are returned as list always.
236
+ """
237
+ data_column_types = "" if types_delim else []
238
+ partition_indices = "" if idx_delim else []
239
+ partition_types = "" if types_delim else []
240
+ new_partition_columns = []
241
+ j = 0
242
+ for i, col in enumerate(data.columns):
243
+ _type = data._td_column_names_and_sqlalchemy_types[col.lower()].python_type.__name__
244
+ if types_delim:
245
+ data_column_types += (_type if i == 0 else f"{types_delim}{_type}")
246
+ else:
247
+ data_column_types.append(_type)
248
+ if col in partition_columns:
249
+ new_partition_columns.append(col)
250
+ if idx_delim:
251
+ partition_indices += (str(i) if j == 0 else f"{idx_delim}{str(i)}")
252
+ else:
253
+ partition_indices.append(i)
254
+ if types_delim:
255
+ partition_types += (_type if j == 0 else f"{types_delim}{_type}")
256
+ else:
257
+ partition_types.append(_type)
258
+ j += 1
259
+ # Return types of all columns (as list or str), partition column indices (as list or str)
260
+ # and partition column types (as list or str).
261
+ return data_column_types, partition_indices, partition_types, new_partition_columns
262
+
263
+ def _get_kwargs_str(self, kwargs):
264
+ """
265
+ Returns string of kwargs in the format:
266
+ key1 val1-type1 key2 val2-type2 ...
267
+ """
268
+ args_str = ""
269
+ for key, val in kwargs.items():
270
+ strr = f"{key} {str(val)}-{type(val).__name__}"
271
+ if args_str == "":
272
+ args_str += strr
273
+ else:
274
+ args_str += f" {strr}"
275
+ return args_str
276
+
277
+ def _extract_model_objs(self, n_unique_partitions=1, n_partition_cols=1):
278
+ """
279
+ Internal function to extract sklearn object from the model(s) depending on the number of
280
+ partitions. When it is only one model, it is directly used as sklearn object (modelObj).
281
+ When it is multiple models, it is converted to pandas DataFrame and stored in sklearn
282
+ object.
283
+ """
284
+ vals = execute_sql("select * from {}".format(self._model_data._table_name)).fetchall()
285
+
286
+ # pickle will issue a caution warning, if model pickling was done with
287
+ # different library version than used here. The following disables any warnings
288
+ # that might otherwise show in the scriptlog files on the Advanced SQL Engine
289
+ # nodes in this case. Yet, do keep an eye for incompatible pickle versions.
290
+ warnings.filterwarnings("ignore")
291
+
292
+ model_obj = None
293
+ # Extract and unpickle last column which is the model object.
294
+ for i, row in enumerate(vals):
295
+ if self._is_lake_system:
296
+ model_obj = pickle.loads(row[n_partition_cols])
297
+ else:
298
+ model_obj = pickle.loads(base64.b64decode(row[n_partition_cols].partition("'")[2]))
299
+ row[n_partition_cols] = model_obj
300
+ vals[i] = row
301
+ if n_unique_partitions == 1:
302
+ self.modelObj = model_obj
303
+ elif n_unique_partitions > 1:
304
+ self.modelObj = pd.DataFrame(vals, columns=self._model_data.columns)
305
+ else:
306
+ raise ValueError("Number of partitions should be greater than 0.")
307
+
308
+ warnings.filterwarnings("default")
309
+
310
+ def _validate_existence_of_partition_columns(self, partition_columns, all_columns, arg_names_for_dfs):
311
+ """
312
+ Validate if columns in "partition_columns" argument are present in any of the given
313
+ dataframes.
314
+ """
315
+ invalid_part_cols = [c for c in partition_columns if c not in all_columns]
316
+
317
+ if invalid_part_cols:
318
+ raise ValueError(Messages.get_message(MessageCodes.INVALID_PARTITIONING_COLS,
319
+ ", ".join(invalid_part_cols),
320
+ "', '".join(arg_names_for_dfs))
321
+ )
322
+
323
+ def _prepare_data_args_string(self, kwargs):
324
+ """
325
+ Get column indices and types of each data related arguments in the format:
326
+ "{<arg_name>-<comma separated indices>-<comma separated types>}--
327
+ {<arg_name>-<comma separated indices>-<comma separated types>}"
328
+ """
329
+ data_args_str = []
330
+ for arg_name in list(self._data_args.keys()):
331
+ # Remove DataFrame arguments from kwargs, which will be passed to Script.
332
+ kwargs.pop(arg_name)
333
+
334
+ # Get column indices and their types for each dataframe from parent dataframe.
335
+ _, partition_indices_str, partition_types_str, _ = \
336
+ self._get_data_col_types_and_partition_col_indices_and_types(self._tdml_df,
337
+ self._data_args[arg_name].columns,
338
+ idx_delim=",",
339
+ types_delim=",")
340
+
341
+ # Format "<arg_name>-<comma separated indices>-<comma separated types>"
342
+ data_args_str.append(f"{arg_name}-{partition_indices_str}-{partition_types_str}")
343
+
344
+ # Format "{<arg_name>-<comma separated indices>-<comma separated types>}--
345
+ # {<arg_name>-<comma separated indices>-<comma separated types>}"
346
+ return "--".join(data_args_str)
347
+
348
+ def _prepare_and_install_file(self, replace_dict):
349
+ """
350
+ Prepare function script file from template file and install it in Vantage.
351
+ Takes the dictionary with keys as strings to be replaced in script and values as
352
+ strings which should be added in place of keys.
353
+ """
354
+
355
+ with open(os.path.join(self._scripts_path, self._template_file)) as fp:
356
+ script_data = fp.read()
357
+
358
+ for old, new in replace_dict.items():
359
+ script_data = script_data.replace(old, new)
360
+
361
+ self._script_file_local = os.path.join(self._tdml_tmp_dir, self._script_file_name)
362
+
363
+ with open(self._script_file_local, "w") as fp:
364
+ fp.write(script_data)
365
+
366
+ self._install_script_file(file_identifier=self._script_file_name.split(".")[0],
367
+ file_name=self._script_file_name,
368
+ file_location=self._tdml_tmp_dir)
369
+
370
+ def _get_dataframe_related_args_and_their_columns(self, kwargs):
371
+ """
372
+ Get dataframe related arguments and return all their column names from kwargs.
373
+ """
374
+ __data_columns = []
375
+ __data_args_dict = OrderedDict()
376
+
377
+ # Separate dataframe related arguments and their column names from actual kwargs.
378
+ for k, v in kwargs.items():
379
+ if isinstance(v, DataFrame):
380
+ # All dataframes should be select of parent dataframe.
381
+ _validate_df_query_type(v, "select", k)
382
+
383
+ # Save all columns in dataframe related arguments.
384
+ __data_columns.extend(v.columns)
385
+
386
+ __data_args_dict[k] = v
387
+
388
+ return __data_args_dict, __data_columns
389
+
390
+ def _process_data_for_funcs_returning_objects(self, kwargs):
391
+ """
392
+ Internal function to process all arguments and assign self._data_args, self._tdml_df
393
+ and return
394
+ 1. dictionary of elements (needed to replace in the script template file)
395
+ 2. partition columns list.
396
+ """
397
+ partition_cols = self._get_columns_as_list(kwargs.get("partition_columns", None))
398
+ if partition_cols:
399
+ kwargs.pop("partition_columns")
400
+
401
+ self._data_args, __data_columns = self._get_dataframe_related_args_and_their_columns(kwargs)
402
+
403
+ arg_names_for_dfs = list(self._data_args.keys())
404
+
405
+ # Get common parent dataframe from all dataframes.
406
+ self._tdml_df = DataFrameUtils()._get_common_parent_df_from_dataframes(list(self._data_args.values()))
407
+
408
+ self._tdml_df = self._tdml_df.select(__data_columns + partition_cols)
409
+
410
+ self._validate_existence_of_partition_columns(partition_cols, self._tdml_df.columns, arg_names_for_dfs)
411
+
412
+ self._tdml_df, partition_cols = self._get_data_and_data_partition_columns(self._tdml_df,
413
+ __data_columns,
414
+ [],
415
+ partition_cols
416
+ )
417
+
418
+ # Prepare string of data arguments with name, indices where columns of that argument resides
419
+ # and types of each of the column.
420
+ data_args_str = self._prepare_data_args_string(kwargs)
421
+
422
+ # Get indices of partition_columns and types of all columns.
423
+ data_column_types_str, partition_indices_str, _, partition_cols = \
424
+ self._get_data_col_types_and_partition_col_indices_and_types(self._tdml_df,
425
+ partition_cols,
426
+ types_delim=None,
427
+ idx_delim=None)
428
+
429
+ replace_dict = {"<partition_cols_indices>": str(partition_indices_str),
430
+ "<types_of_data_cols>": str(data_column_types_str),
431
+ "<data_args_info_str>": f"'{data_args_str}'"}
432
+
433
+ return replace_dict, partition_cols
434
+
435
+ def _validate_equality_of_partition_values(self, fit_values, trans_values):
436
+ """
437
+ Internal function to compare the partition values in fit() and predict() are same.
438
+ """
439
+ if len(fit_values) != len(trans_values):
440
+ return False
441
+
442
+ for val in fit_values:
443
+ if not all([val in trans_values]):
444
+ return False
445
+
446
+ return True
447
+
448
+ def _get_non_data_related_args_from_kwargs(self, kwargs):
449
+ """
450
+ Get all non-data related arguments from kwargs.
451
+ """
452
+ non_data_related_args = {}
453
+ for k, v in kwargs.items():
454
+ if not isinstance(v, DataFrame):
455
+ non_data_related_args[k] = v
456
+ non_data_related_args.pop("partition_columns", None)
457
+ return non_data_related_args
458
+
459
+ def _read_from_template_and_write_dict_to_file(self, template_file, replace_dict,
460
+ output_script_file_name=None):
461
+ """
462
+ Read template file, replace the keys with values and write to new file.
463
+ """
464
+ with open(os.path.join(self._scripts_path, template_file)) as fp:
465
+ script_data = fp.read()
466
+
467
+ for old, new in replace_dict.items():
468
+ script_data = script_data.replace(old, new)
469
+
470
+ if output_script_file_name is None:
471
+ output_script_file_name = self._script_file_name
472
+ file_path = os.path.join(self._tdml_tmp_dir, output_script_file_name)
473
+ with open(file_path, "w") as fp:
474
+ fp.write(script_data)
475
+
476
+ def _generate_script_file_from_template_file(self, kwargs, template_file, func_name,
477
+ output_script_file_name=None):
478
+ """
479
+ Internal function to generate script file from template file. It just adds the non-data
480
+ related arguments to the template file and writes the contents to new file, so that these
481
+ arguments are available in the script file for running this function "func_name".
482
+ """
483
+ # Take out all non-data related arguments to write to template file.
484
+ non_data_related_args = self._get_non_data_related_args_from_kwargs(kwargs)
485
+
486
+ # Read template file and write the contents to new file with non-data related arguments.
487
+ template_f = os.path.join(self._scripts_path, template_file)
488
+ with open(template_f, "r") as f:
489
+ template = f.read()
490
+
491
+ if output_script_file_name is None:
492
+ output_script_file_name = self._script_file_name
493
+ file_path = os.path.join(self._tdml_tmp_dir, output_script_file_name)
494
+ with open(file_path, "w") as f:
495
+ f.write("import json\n")
496
+ f.write(f"params = json.loads('{json.dumps(non_data_related_args)}')\n")
497
+ f.write(template)
498
+
499
+ kwargs["file_name"] = output_script_file_name
500
+ kwargs["name"] = func_name
501
+
502
+ def _remove_data_related_args_from_kwargs(self, kwargs):
503
+ """
504
+ Internal function to remove data related arguments from kwargs.
505
+ """
506
+ kwargs.pop("data", None)
507
+ kwargs.pop("feature_columns", None)
508
+ kwargs.pop("group_columns", None)
509
+ kwargs.pop("partition_columns", None)
510
+ kwargs.pop("label_columns", None)
511
+
512
+ def _convert_pos_args_to_kwargs_for_function(self, pos_args, kwargs, func_name):
513
+ """
514
+ Internal function to convert positional arguments to keyword arguments.
515
+ """
516
+ fn = getattr(getattr(import_module(self.module_name), self.class_name), func_name)
517
+ kwargs.update(zip(fn.__code__.co_varnames[1:], pos_args))
518
+
519
+ def _install_model_and_script_files(self, file_name, file_location):
520
+ """
521
+ Internal function to install model and script files to Vantage.
522
+ """
523
+ self._install_initial_model_file()
524
+ self._install_script_file(file_identifier=file_name.split(".")[0],
525
+ file_name=file_name,
526
+ is_binary=False,
527
+ file_location=file_location)
528
+
529
+ def _assign_fit_variables_after_execution(self, data, partition_columns, label_columns):
530
+ """
531
+ Internal function to assign fit related variables.
532
+ """
533
+ # Extract sklearn object(s) from the depending on the number of unique partitioning values.
534
+ self._extract_model_objs(n_unique_partitions=len(self._fit_partition_unique_values),
535
+ n_partition_cols=len(partition_columns))
536
+
537
+ # Need this label columns types in prediction.
538
+ self._fit_label_columns_types = []
539
+ self._fit_label_columns_python_types = []
540
+
541
+ for l_c in label_columns:
542
+ column_data = data._td_column_names_and_sqlalchemy_types[l_c.lower()]
543
+ self._fit_label_columns_types.append(column_data)
544
+ self._fit_label_columns_python_types.append(column_data.python_type.__name__)
545
+
546
+ # If the model is trained a second time after the object creation,
547
+ # or if set_params() is called after the first model training,
548
+ # this flag will reset to False. So that for subsequent predict/score
549
+ # operations, the newly trained model will be installed.
550
+ if self._is_trained_model_installed:
551
+ self._is_trained_model_installed = False
552
+
553
+
554
+ class _OpenSourceObjectWrapper(_GenericObjectWrapper):
555
+ # This has to be set for every package which subclasses this class.
556
+ OPENSOURCE_PACKAGE_NAME = None
557
+
558
+ def __init__(self, model=None, module_name=None, class_name=None, pos_args=None, kwargs=None):
559
+ if model is None and not module_name and not class_name:
560
+ raise TeradataMlException(Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT, "model",
561
+ "module_name and class_name"),
562
+ MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
563
+
564
+ validator._validate_mutually_inclusive_arguments(module_name, "module_name",
565
+ class_name, "class_name")
566
+
567
+ super().__init__()
568
+
569
+ self.module_name = module_name
570
+ self.class_name = class_name
571
+ self.kwargs = kwargs if kwargs is not None else {}
572
+ self.pos_args = pos_args if pos_args is not None else tuple()
573
+
574
+ self._fit_label_columns_types = None
575
+ self._fit_label_columns_python_types = None
576
+ self._table_name_prefix = None
577
+
578
+ self._is_default_partition_value_fit = True # False when the user provides partition columns.
579
+ self._fit_partition_colums_non_default = None
580
+ self._is_default_partition_value_predict = True # False when the user provides partition columns.
581
+
582
+ def __repr__(self):
583
+ if self._is_default_partition_value_fit:
584
+ # Single model use case.
585
+ return self.modelObj.__repr__()
586
+
587
+ pd.set_option("display.expand_frame_repr", None)
588
+ pd.set_option("display.max_colwidth", None)
589
+ opt = self.modelObj.__repr__()
590
+ pd.reset_option("display.expand_frame_repr")
591
+ pd.reset_option("display.max_colwidth")
592
+ return opt
593
+
594
+ def _initialize_object(self):
595
+ """
596
+ Internal function to initialize sklearn object from module name and class name.
597
+ """
598
+ # Needed when writing imported modules to generated file. TODO: Remove later.
599
+ imported_args = {}
600
+ # If there are any objects of class `_SkLearnObjectWrapper`, it is modified to
601
+ # corresponding sklearn object.
602
+ _partition_column_names = None
603
+ if "partition_columns" in self.kwargs:
604
+ self._fit_partition_colums_non_default = self.kwargs["partition_columns"]
605
+ self._is_default_partition_value_fit = False
606
+ _partition_column_names = self._fit_partition_colums_non_default
607
+
608
+
609
+ new_sklearn_pos_args = self.modify_args(None, self.pos_args, imported_args)
610
+ new_sklearn_kwargs = self.modify_args(None, self.kwargs, imported_args)
611
+
612
+ # Create model object from new positional and keyword arguments.
613
+ class_obj = getattr(import_module(self.module_name), self.class_name)
614
+ if new_sklearn_pos_args:
615
+ self.modelObj = class_obj(*new_sklearn_pos_args, **new_sklearn_kwargs)
616
+ else:
617
+ self.modelObj = class_obj(**new_sklearn_kwargs)
618
+
619
+ # All arguments are moved to kwargs and kept pos_args empty.
620
+ # Might help in set_params() bug fix.
621
+ self.pos_args = tuple()
622
+ _arguments = self.modelObj.__dict__
623
+
624
+ if hasattr(self.modelObj, "get_params"):
625
+ # Update kwargs that are both in modelObj and get_params() as there are
626
+ # some classes which return other internals variables also.
627
+ # Hence, filtering them using get_params().
628
+ for k, v in _arguments.items():
629
+ if type(v).__name__ in ["function", "generator"]:
630
+ # TODO: ELE-6351: Skipping adding functions and generators to kwargs as these
631
+ # are not supported yet due to pickling issue.
632
+ continue
633
+ if self.get_params():
634
+ if k in self.get_params():
635
+ self.kwargs[k] = v
636
+ else:
637
+ _model_init_arguments = None
638
+ try:
639
+ _model_init_arguments = self.modelObj.__init__.__code__.co_varnames
640
+ except AttributeError:
641
+ pass
642
+ if _model_init_arguments:
643
+ self.kwargs = dict((k, v) for k, v in _arguments.items() if k in _model_init_arguments)
644
+ else:
645
+ self.kwargs = _arguments
646
+ else:
647
+ # Model selection classes will not have `get_params`, in which case modelObj's __dict__
648
+ # is saved as kwargs.
649
+ self.kwargs = _arguments
650
+
651
+ if _partition_column_names:
652
+ self.kwargs["partition_columns"] = _partition_column_names
653
+
654
+ def _initialize_variables(self, table_name_prefix):
655
+ """
656
+ Internal function to initialize variables used in this class.
657
+ """
658
+ self.feature_names_in_ = None
659
+ self._table_name_prefix = table_name_prefix
660
+ self._model_file_name_prefix = _generate_new_name(type="file")
661
+ self.model_file_paths_local = set()
662
+
663
+ self._fit_execution_time = None
664
+ self._fit_predict_execution_time = None
665
+ self._partial_fit_execution_time = None
666
+ self._predict_execution_time = None
667
+ self._transform_execution_time = None
668
+ self._score_execution_time = None
669
+
670
+ # Set to partition columns when training is done with partition columns.
671
+ self._fit_partition_colums_non_default = None
672
+
673
+ self._is_model_installed = False
674
+ self._fit_partition_unique_values = [[self._default_data_partition_value]]
675
+
676
+ def _get_returning_df(self, script_df, partition_column, returns):
677
+ """
678
+ Internal function to return the teradataml Dataframe except
679
+ partition_column.
680
+ """
681
+ if self._is_default_partition_value_fit:
682
+ # For single model case, partition column is internally generated
683
+ # and no point in returning it to the user.
684
+
685
+ # Extract columns from return types.
686
+ returning_cols = [col[0] for col in returns[len(partition_column):]]
687
+ return script_df.select(returning_cols)
688
+ return script_df
689
+
690
+ def modify_args(self, fp1, arg, imported_args):
691
+ """
692
+ Internal function to recursively (if "arg" is list/tuple/dict) check if any sklearn object
693
+ of opensourceML is present in the argument "arg" and modify it to corresponding sklearn
694
+ object.
695
+ This function can also be used to write import statements to file (if "fp1" is not
696
+ None). Update "imported_args" dictionary with imported module and class name to avoid
697
+ importing same module and class again when writing to file. This is useful when we want to
698
+ generate script from template file.
699
+ Pass None to "fp1" if we don't want to write to file and just modify opensourceML sklearn
700
+ object to corresponding sklearn object.
701
+ """
702
+ if isinstance(arg, type(self)):
703
+ imported_tuple = (arg.module_name, arg.class_name)
704
+ already_imported = imported_args.get(imported_tuple, False)
705
+ if not already_imported:
706
+ imported_args[imported_tuple] = True
707
+ if fp1:
708
+ fp1.write(f"from {arg.module_name} import {arg.class_name}\n")
709
+ self.modify_args(fp1, arg.pos_args, imported_args)
710
+ self.modify_args(fp1, arg.kwargs, imported_args)
711
+ return arg.modelObj
712
+ elif isinstance(arg, list):
713
+ return [self.modify_args(fp1, val, imported_args) for val in arg]
714
+ elif isinstance(arg, tuple):
715
+ return tuple([self.modify_args(fp1, val, imported_args) for val in arg])
716
+ elif type(arg).__name__ == "generator":
717
+ # Raising exception as generator object can't be pickled.
718
+ # TODO: ELE-6351 - Find ways to pickle generator object later.
719
+ raise ValueError("Generator type/iterator is not supported for any argument. "\
720
+ "Support will be added later.")
721
+ elif type(arg).__name__ == "function":
722
+ # Raising exception as functions/lambda functions can't be pickled.
723
+ # TODO: ELE-6351 - Find ways to pickle functions later.
724
+ raise ValueError("Functions are not supported for any argument. "\
725
+ "Support will be added later.")
726
+ elif isinstance(arg, dict):
727
+ return dict(
728
+ (
729
+ self.modify_args(fp1, k, imported_args),
730
+ self.modify_args(fp1, v, imported_args),
731
+ )
732
+ for k, v in arg.items() if k != "partition_columns"
733
+ )
734
+ # elif arg == "partition_columns":
735
+
736
+ else:
737
+ return arg
738
+
739
+ def _install_initial_model_file(self, use_dummy_initial_file=False):
740
+ """
741
+ If model file(s) is/are not installed in Vantage, then install it/them.
742
+ """
743
+ if isinstance(self.modelObj, pd.DataFrame):
744
+ # Get list of unique partition values and corresponding model object as dict.
745
+ partition_values_model_dict = {}
746
+ obj_list = self.modelObj.values.tolist()
747
+ for lst in obj_list:
748
+ partition_values_model_dict[tuple(lst[:len(self._fit_partition_colums_non_default)])] = \
749
+ lst[len(self._fit_partition_colums_non_default)]
750
+
751
+ for partition in self._fit_partition_unique_values:
752
+ # Create a new file with file name with partition values and
753
+ # dump sklearn object into it. Finally install the file to Vantage.
754
+ partition_join = "_".join([str(x) for x in partition])
755
+ file_name = f"{self._model_file_name_prefix}_{partition_join}"
756
+ # Replace '-' with '_' as '-' can't be present in file identifier.
757
+ # Needed this replace because partition_columns can be negative.
758
+ file_name = file_name.replace("-", "_")
759
+ full_file_name = os.path.join(self._tdml_tmp_dir, file_name)
760
+ with open(full_file_name, "wb+") as fp:
761
+ # Write sklearn object to file.
762
+ if isinstance(self.modelObj, pd.DataFrame):
763
+ # If multiple models, then write the model corresponding to the partition value.
764
+ fp.write(pickle.dumps(partition_values_model_dict[tuple(partition)]))
765
+ else:
766
+ if use_dummy_initial_file:
767
+ fp.write(pickle.dumps("abc"))
768
+ else:
769
+ fp.write(pickle.dumps(self.modelObj))
770
+ self.model_file_paths_local.add(file_name)
771
+
772
+ self._install_script_file(file_identifier=file_name,
773
+ file_name=file_name,
774
+ is_binary=True,
775
+ file_location=self._tdml_tmp_dir)
776
+
777
+ if self._is_lake_system:
778
+ # Need to pass env_name along with file_name for cleaning up the files in env.
779
+ obj = f"{self._env.env_name}::{file_name}"
780
+ if installed_model_files[obj] == 0:
781
+ # Add to GC for the first time the model file (along with env name) is encountered.
782
+ installed_model_files[obj] = 1
783
+ GarbageCollector._add_to_garbagecollector(object_name=obj,
784
+ object_type=TeradataConstants.TERADATA_APPLY)
785
+ else:
786
+ if installed_model_files[file_name] == 0:
787
+ # Add to GC for the first time the model file is encountered.
788
+ installed_model_files[file_name] = 1
789
+ GarbageCollector._add_to_garbagecollector(object_name=file_name,
790
+ object_type=TeradataConstants.TERADATA_SCRIPT)
791
+
792
+ self._is_model_installed = True
793
+
794
+ def _validate_unique_partition_values(self, data, partition_columns):
795
+ """
796
+ Internal function to validate if the partition values in partition_columns used in fit()
797
+ and predict() are same.
798
+ """
799
+ data._index_label = None
800
+ unique_values = data.drop_duplicate(partition_columns).get_values()
801
+
802
+ trans_unique_values = sorted(unique_values.tolist(), key=lambda x: tuple(x))
803
+ fit_unique_values = sorted(self._fit_partition_unique_values.tolist() \
804
+ if not isinstance(self._fit_partition_unique_values, list) \
805
+ else self._fit_partition_unique_values, key=lambda x: tuple(x))
806
+ default_unique_values = [[self._default_data_partition_value]]
807
+
808
+ if fit_unique_values == default_unique_values and \
809
+ trans_unique_values != default_unique_values:
810
+ error_msg = Messages.get_message(MessageCodes.PARTITION_IN_BOTH_FIT_AND_PREDICT,
811
+ "without", "with")
812
+ msg_code = MessageCodes.PARTITION_IN_BOTH_FIT_AND_PREDICT
813
+ raise TeradataMlException(error_msg, msg_code)
814
+
815
+ if not self._validate_equality_of_partition_values(fit_unique_values, trans_unique_values):
816
+ raise TeradataMlException(
817
+ Messages.get_message(MessageCodes.PARTITION_VALUES_NOT_MATCHING, "training", "test"),
818
+ MessageCodes.PARTITION_VALUES_NOT_MATCHING
819
+ )
820
+
821
+ def fit(self, **kwargs):
822
+ pass
823
+
824
+ def _convert_arguments_to_modelObj(self, args, partition_col_values=None):
825
+ """
826
+ Internal function to get appropriate model from <argument>.modelObj when multiple models are
827
+ generated by fit, based on partition_col_values. If partition_col_values is None, then it is
828
+ single model case.
829
+ """
830
+ if isinstance(args, dict):
831
+ new_args = args.copy() # To avoid updating
832
+ for k, v in new_args.items():
833
+ if isinstance(v, _OpenSourceObjectWrapper):
834
+ arg_model_obj = v.modelObj
835
+ if isinstance(arg_model_obj, pd.DataFrame):
836
+ # multi-model. Get appropriate model from modelObj.
837
+ arg_partition_values_model_dict = v._get_partition_columns_to_model_dict()
838
+ new_args[k] = arg_partition_values_model_dict[partition_col_values]
839
+ else:
840
+ # single model.
841
+ new_args[k] = arg_model_obj
842
+ return new_args
843
+
844
+ if isinstance(args, tuple):
845
+ new_args = tuple()
846
+ for arg in args:
847
+ if isinstance(arg, type(self)):
848
+ arg_model_obj = arg.modelObj
849
+ if isinstance(arg_model_obj, pd.DataFrame):
850
+ # multi-model. Get appropriate model from modelObj.
851
+ arg_partition_values_model_dict = arg._get_partition_columns_to_model_dict()
852
+ new_args += (arg_partition_values_model_dict[partition_col_values],)
853
+ else:
854
+ # single model.
855
+ new_args += (arg_model_obj,)
856
+ else:
857
+ new_args += (arg,)
858
+ return new_args
859
+ return args
860
+
861
+ def _get_partition_columns_to_model_dict(self):
862
+ """
863
+ Internal function to get partition columns to model dictionary.
864
+ """
865
+ partition_values_model_dict = {}
866
+ no_of_unique_partitions = len(self._fit_partition_unique_values)
867
+ no_of_partitioning_cols = len(self._fit_partition_unique_values[0])
868
+
869
+ for i in range(no_of_unique_partitions):
870
+ partition_values_model_dict[tuple(self.modelObj.iloc[i, :no_of_partitioning_cols])] = self.modelObj.iloc[i]["model"]
871
+
872
+ return partition_values_model_dict
873
+
874
+ def __get_obj_attributes_multi_model(self, name):
875
+ """
876
+ Internal function to get attributes of all sklearn model objects when multiple models are
877
+ generated by fit.
878
+ """
879
+
880
+ def __generate_model_object(model_obj_value, init_model_obj):
881
+ """
882
+ Internal function to generate _SkLearnWrapperObject model object from model_obj_value.
883
+ """
884
+ # Create _SkLearnObjectWrapper object from opensource model object.
885
+ model_obj = self.__class__(model=init_model_obj)
886
+
887
+ model_obj.modelObj = model_obj_value
888
+ model_obj._is_model_installed = True
889
+
890
+ # Setting other model attributes.
891
+ model_obj._is_default_partition_value_fit = self._is_default_partition_value_fit
892
+ model_obj._is_default_partition_value_predict = self._is_default_partition_value_predict
893
+ model_obj._fit_partition_colums_non_default = self._fit_partition_colums_non_default
894
+ model_obj._fit_partition_unique_values = self._fit_partition_unique_values
895
+ return model_obj
896
+
897
+ # Wrapper function to invoke dynamic method, using arguments
898
+ # passed by user, on model in each row.
899
+ def __opensource_method_invoker_for_multimodel(*c, **kwargs):
900
+ """
901
+ Internal function to run functions not taking data related arguments but taking
902
+ arguments, which might contain other model objects.
903
+ """
904
+ multi_models = self.modelObj.copy()
905
+ for i in range(multi_models.shape[0]):
906
+ curr_model = multi_models.iloc[i]["model"]
907
+ partition_values = tuple(multi_models.iloc[i][0:len(self._fit_partition_colums_non_default)].to_list())
908
+
909
+ partition_values_joined = "_".join([str(x) for x in partition_values])
910
+ if self.module_name == "lightgbm.basic" and self.class_name == "Booster" and name == "save_model":
911
+ # filename is first argument.
912
+ kwargs1 = kwargs.copy()
913
+ c1 = c
914
+
915
+ if len(c) > 0:
916
+ c1 = list(c1)
917
+ c1[0] = f"{c1[0]}_{partition_values_joined}"
918
+ c1 = tuple(c1)
919
+ if len(kwargs) > 0 and kwargs.get("filename", None):
920
+ kwargs1["filename"] = f"{kwargs1['filename']}_{partition_values_joined}"
921
+
922
+ pos_args = self._convert_arguments_to_modelObj(c1, partition_values)
923
+ key_args = self._convert_arguments_to_modelObj(kwargs1, partition_values)
924
+ else:
925
+ pos_args = self._convert_arguments_to_modelObj(c, partition_values)
926
+ key_args = self._convert_arguments_to_modelObj(kwargs, partition_values)
927
+
928
+ multi_models.at[i, "model"] = getattr(curr_model, name)(*pos_args, **key_args)
929
+
930
+ first_function_value = multi_models.at[0, "model"]
931
+ if self.__class__._validate_model_supportability(first_function_value):
932
+ return __generate_model_object(multi_models, init_model_obj=first_function_value)
933
+
934
+ multi_models = multi_models.rename(columns={"model": name})
935
+
936
+ # Select only partition columns and the attribute column.
937
+ return multi_models[self._fit_partition_colums_non_default + [name]]
938
+
939
+ # Assuming that self.modelObj will have at least 1 row.
940
+
941
+ # Get attribute instance from first model object.
942
+ first_atrribute_instance = getattr(self.modelObj.iloc[0]["model"], name)
943
+
944
+ # If first_atrribute_instance is callable, it should be applied on model in each row
945
+ # using passed arguments.
946
+ if callable(first_atrribute_instance):
947
+ return __opensource_method_invoker_for_multimodel
948
+
949
+ output_attributes = self.modelObj.copy()
950
+ for i in range(output_attributes.shape[0]):
951
+ model = output_attributes.iloc[i]["model"]
952
+ output_attributes.at[i, "model"] = getattr(model, name)
953
+
954
+ if self.__class__._validate_model_supportability(first_atrribute_instance):
955
+ return __generate_model_object(output_attributes, init_model_obj=first_atrribute_instance)
956
+
957
+ return output_attributes.rename(columns={"model": name})
958
+
959
+ def __getattr__(self, name):
960
+ # This just run attributes (functions and properties) from opensource (sklearn/lightgbm) objects.
961
+ def __opensource_method_invoker(*c, **kwargs):
962
+ # Opensource model is returned from the function call. Create _OpensourceObjectWrapper object.
963
+ model_obj = attribute_instance(*self._convert_arguments_to_modelObj(c), **self._convert_arguments_to_modelObj(kwargs))
964
+ if self.__class__._validate_model_supportability(model_obj):
965
+ model_obj = self.__class__(model=model_obj)
966
+ model_obj._is_model_installed = True # Trained model is returned by function call.
967
+ return model_obj
968
+
969
+ if isinstance(self.modelObj, pd.DataFrame):
970
+ return self.__get_obj_attributes_multi_model(name)
971
+
972
+ attribute_instance = getattr(self.modelObj, name)
973
+
974
+ if callable(attribute_instance):
975
+ return __opensource_method_invoker
976
+
977
+ if self.__class__._validate_model_supportability(attribute_instance):
978
+ # sklearn model is returned from the attribute. Create _SkLearnObjectWrapper object.
979
+ model_obj = self.__class__(model=attribute_instance)
980
+ model_obj._is_model_installed = True # Trained model is returned as attribute.
981
+ return model_obj
982
+
983
+ return attribute_instance
984
+
985
+ @classmethod
986
+ def _validate_model_supportability(cls, model):
987
+ """
988
+ Internal function to validate if the model provided for deployment is supported by
989
+ teradataml's opensourceML.
990
+ """
991
+ error_msg = Messages.get_message(MessageCodes.MODEL_CATALOGING_OPERATION_FAILED, "validate",
992
+ "The given model is not a supported opensource model.")
993
+ msg_code = MessageCodes.MODEL_CATALOGING_OPERATION_FAILED
994
+ package_name = None
995
+ class_name = None
996
+ try:
997
+ # For scikit-learn, model.__module__ is similar to 'sklearn.linear_model._base'.
998
+ # TODO: check for other supported packages.
999
+ if hasattr(model, "__module__"):
1000
+ package_name = model.__module__.split(".")[0]
1001
+ if package_name not in OpenSourcePackage.values():
1002
+ return False
1003
+ if hasattr(model, "__class__"):
1004
+ class_name = model.__class__.__name__
1005
+ except Exception as ex:
1006
+ # If in case, model.__module__ fails.
1007
+ raise TeradataMlException(error_msg, msg_code) from ex
1008
+
1009
+ # True only if package name is opensource package name and class name is not internal class.
1010
+ return True if package_name and class_name and \
1011
+ package_name == cls.OPENSOURCE_PACKAGE_NAME.value and not class_name.startswith("_") else False
1012
+
1013
+ def _save_model(self, model_name, replace_if_exists=False):
1014
+ """
1015
+ Internal function to save the model stored in file at location mentioned by class variable
1016
+ "model_file_path_local" to Vantage using BYOM methods save_byom() and delete_byom() based
1017
+ on the value of "replace_if_exists" argument.
1018
+ """
1019
+ # Creating a table, if doesn't exist, in Vantage to store the model info.
1020
+ conn = get_connection()
1021
+ osml_models_table_exists = conn.dialect.has_table(conn,
1022
+ table_name=_OSML_MODELS_TABLE_NAME,
1023
+ schema=self._db_name,
1024
+ table_only=True)
1025
+ if not osml_models_table_exists:
1026
+ all_columns = _OSML_MODELS_TABLE_COLUMNS_TYPE_DICT.copy()
1027
+ all_columns.update(_OSML_ADDITIONAL_COLUMN_TYPES)
1028
+ _create_table(table_name=_OSML_MODELS_TABLE_NAME, columns=all_columns,
1029
+ primary_index=_OSML_MODELS_PRIMARY_INDEX, schema_name=self._db_name)
1030
+
1031
+ model_obj = OpensourceModels(is_default_partition_value=self._is_default_partition_value_fit,
1032
+ partition_file_prefix=self._model_file_name_prefix,
1033
+ fit_partition_columns_non_default=self._fit_partition_colums_non_default,
1034
+ model=self.modelObj,
1035
+ pos_args=self.pos_args,
1036
+ key_args=self.kwargs,
1037
+ osml_class=self.__class__.__name__,
1038
+ osml_module=self.__module__)
1039
+
1040
+ # Saved the model object to a file to be used in save_byom() for writing to Vantage table.
1041
+ file_name = os.path.join(self._tdml_tmp_dir, "deployed_file.pickle")
1042
+ with open(file_name, "wb+") as fp:
1043
+ fp.write(pickle.dumps(model_obj))
1044
+
1045
+ try:
1046
+ save_byom(model_id=model_name,
1047
+ model_file=file_name,
1048
+ table_name=_OSML_MODELS_TABLE_NAME,
1049
+ additional_columns_types=_OSML_ADDITIONAL_COLUMN_TYPES,
1050
+ additional_columns={"package": self.OPENSOURCE_PACKAGE_NAME.value})
1051
+ except TeradataMlException as ex:
1052
+ model_exists_msg = Messages.get_message(MessageCodes.MODEL_ALREADY_EXISTS, model_name)
1053
+ if not replace_if_exists and model_exists_msg == str(ex):
1054
+ raise
1055
+ elif replace_if_exists and model_exists_msg == str(ex):
1056
+ # Delete the model from Model table and save again.
1057
+ delete_byom(model_id=model_name, table_name=_OSML_MODELS_TABLE_NAME)
1058
+ save_byom(model_id=model_name,
1059
+ model_file=file_name,
1060
+ table_name=_OSML_MODELS_TABLE_NAME,
1061
+ additional_columns_types=_OSML_ADDITIONAL_COLUMN_TYPES,
1062
+ additional_columns={"package": self.OPENSOURCE_PACKAGE_NAME.value})
1063
+ else:
1064
+ raise
1065
+ finally:
1066
+ os.remove(file_name)
1067
+
1068
+ @classmethod
1069
+ def _deploy(cls, model_name, model, replace_if_exists=False):
1070
+ """
1071
+ Internal function to create an instance of the class using the model and deploy
1072
+ the model to Vantage.
1073
+ """
1074
+ is_model_supportable = cls._validate_model_supportability(model=model)
1075
+ if not is_model_supportable:
1076
+ raise TeradataMlException(Messages.get_message(MessageCodes.MODEL_CATALOGING_OPERATION_FAILED,
1077
+ "deploy", "The given model is not a supported opensource model."),
1078
+ MessageCodes.MODEL_CATALOGING_OPERATION_FAILED)
1079
+
1080
+ cls = cls(model=model)
1081
+ # Load the model file into Vantage node as file can be used in
1082
+ # predict or other operations.
1083
+ cls._install_initial_model_file(False)
1084
+
1085
+ cls._save_model(model_name, replace_if_exists)
1086
+
1087
+ return cls
1088
+
1089
+ @classmethod
1090
+ def _load(cls, model_name):
1091
+ """
1092
+ Internal function to load model corresponding to the package (like sklearn etc)
1093
+ from Vantage to client using retrieve_byom() and create an instance of the class if
1094
+ the model is from the same package.
1095
+ """
1096
+ try:
1097
+ model = retrieve_byom(model_id=model_name, table_name=_OSML_MODELS_TABLE_NAME,
1098
+ return_addition_columns=True)
1099
+ except TeradataMlException as ex:
1100
+ # Not showing table name in error message as it is an internal table.
1101
+ part_msg = f"Model '{model_name}' not found in the table "
1102
+ if part_msg in str(ex):
1103
+ raise TeradataMlException(Messages.get_message(MessageCodes.MODEL_NOT_FOUND, model_name, ""),
1104
+ MessageCodes.MODEL_NOT_FOUND)
1105
+ raise
1106
+
1107
+ model_vals_list = model.get_values()[0]
1108
+ # List of 3 elements -
1109
+ # - model name as index column,
1110
+ # - 1st contains model object with fields: is_default_partition_value, partition_file_prefix, model. etc
1111
+ # - 2nd contains package name.
1112
+ model_obj = pickle.loads(model_vals_list[0])
1113
+ model = model_obj.model
1114
+ osml_module = model_obj.osml_module if hasattr(model_obj, "osml_module") else None
1115
+ osml_class = model_obj.osml_class if hasattr(model_obj, "osml_class") else None
1116
+
1117
+ new_cls = cls
1118
+ if osml_module is not None and osml_class is not None:
1119
+ new_cls = getattr(import_module(osml_module), osml_class)
1120
+
1121
+ package = model_vals_list[1]
1122
+
1123
+ if package != new_cls.OPENSOURCE_PACKAGE_NAME.value:
1124
+ # Raise error if trying to access model of different package.
1125
+ raise TeradataMlException(Messages.get_message(MessageCodes.MODEL_NOT_FOUND, model_name,
1126
+ f". Requested model is from '{package}' package"),
1127
+ MessageCodes.MODEL_NOT_FOUND)
1128
+
1129
+ if isinstance(model, pd.DataFrame):
1130
+ # Create a new instance of the class and set the model object to the instance.
1131
+ # Instantiation can take only model, not model object. Hence, passing one of the model
1132
+ # from pandas df. Updating modelObj and other fields later
1133
+ new_cls = new_cls(model=model.iloc[1,2])
1134
+ new_cls.modelObj = model
1135
+ new_cls._fit_partition_unique_values = [lst[:len(model_obj.fit_partition_columns_non_default)]
1136
+ for lst in model.values.tolist()]
1137
+ else:
1138
+ new_cls = new_cls(model=model)
1139
+
1140
+ new_cls._model_file_name_prefix = model_obj.partition_file_prefix
1141
+ new_cls._is_default_partition_value_fit = model_obj.is_default_partition_value
1142
+ new_cls._fit_partition_colums_non_default = model_obj.fit_partition_columns_non_default
1143
+ new_cls.pos_args = model_obj.pos_args
1144
+ new_cls.kwargs = model_obj.key_args
1145
+
1146
+ # Load the model file into Vantage node as file can be used in
1147
+ # predict or other operations.
1148
+ new_cls._install_initial_model_file(False)
1149
+
1150
+ return new_cls
1151
+
1152
+ def deploy(self, model_name, replace_if_exists=False):
1153
+ """
1154
+ DESCRIPTION:
1155
+ Deploys the model held by interface object to Vantage.
1156
+
1157
+ PARAMETERS:
1158
+ model_name:
1159
+ Required Argument.
1160
+ Specifies the unique name of the model to be deployed.
1161
+ Types: str
1162
+
1163
+ replace_if_exists:
1164
+ Optional Argument.
1165
+ Specifies whether to replace the model if a model with the same name already
1166
+ exists in Vantage. If this argument is set to False and a model with the same
1167
+ name already exists, then the function raises an exception.
1168
+ Default Value: False
1169
+ Types: bool
1170
+
1171
+ RETURNS:
1172
+ The opensource object wrapper.
1173
+
1174
+ RAISES:
1175
+ TeradataMLException if model with "model_name" already exists and the argument
1176
+ "replace_if_exists" is set to False.
1177
+
1178
+ EXAMPLES:
1179
+ ## sklearn examples.
1180
+
1181
+ # Import the required libraries and create LinearRegression Opensource object wrapper.
1182
+ >>> from teradataml import td_sklearn
1183
+ >>> model = td_sklearn.LinearRegression(normalize=True)
1184
+ >>> model
1185
+ LinearRegression(normalize=True)
1186
+
1187
+ # Example 1: Deploy the model held by LinearRegression Opensource object to Vantage.
1188
+ >>> lin_reg = model.deploy("linreg_model_ver_2")
1189
+ Model is saved.
1190
+ >>> lin_reg
1191
+ LinearRegression(normalize=True)
1192
+
1193
+ # Example 2: Deploy the model held by LinearRegression Opensource object to Vantage
1194
+ # with the name same as that of model that already existed in Vantage.
1195
+ >>> lin_reg = model.deploy("linreg_model_ver_2", replace_if_exists=True)
1196
+ Model is deleted.
1197
+ Model is saved.
1198
+ >>> lin_reg
1199
+ LinearRegression(normalize=True)
1200
+
1201
+ ## lightgbm examples.
1202
+
1203
+ # For lightGBM, there are two types of models created by `td_lightgbm` interface object.
1204
+ # - the model object created using LGBMClassifier or other class of lightgbm.sklearn module.
1205
+ # - the model object created using train() method (object of lightgbm.Booster class)
1206
+ # or standalone object of lightgbm.Booster class.
1207
+
1208
+ # Import the required libraries and create LGBMClassifier Opensource object wrapper.
1209
+ >>> from teradataml import td_lightgbm
1210
+ >>> model = td_lightgbm.LGBMClassifier()
1211
+ >>> model
1212
+ LGBMClassifier()
1213
+
1214
+ # Example 1: Deploy the model held by LGBMClassifier Opensource object to Vantage.
1215
+ >>> lgbm_cls = model.deploy("lgbm_cls_model_ver_2")
1216
+ Model is saved.
1217
+ >>> lgbm_cls
1218
+ LGBMClassifier()
1219
+
1220
+ # Example 2: Deploy the model held by LGBMClassifier Opensource object to Vantage with
1221
+ # the name same as that of model that already existed in Vantage.
1222
+ >>> lgbm_cls = model.deploy("lgbm_cls_model_ver_2", replace_if_exists=True)
1223
+ Model is deleted.
1224
+ Model is saved.
1225
+ >>> lgbm_cls
1226
+ LGBMClassifier()
1227
+
1228
+ # Example 3: Deploy the model trained using td_lightgbm.train() function to Vantage.
1229
+ # Create Dataset object, assuming df_x and df_y are the feature and label teradataml
1230
+ # DataFrames.
1231
+ >>> lgbm_data = td_lightgbm.Dataset(data=df_x, label=df_y, free_raw_data=False)
1232
+ >>> lgbm_data
1233
+ <lightgbm.basic.Dataset object at ....>
1234
+
1235
+ # Train the model using `td_lightgbm` interface object.
1236
+ >>> model = td_lightgbm.train(params={}, train_set=lgbm_data, num_boost_round=30, valid_sets=[lgbm_data])
1237
+ [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000043 seconds.
1238
+ You can set `force_row_wise=true` to remove the overhead.
1239
+ And if memory is not enough, you can set `force_col_wise=true`.
1240
+ [LightGBM] [Info] Total Bins 532
1241
+ [LightGBM] [Info] Number of data points in the train set: 400, number of used features: 4
1242
+ [1] valid_0's l2: 0.215811
1243
+ [2] valid_0's l2: 0.188138
1244
+ [3] valid_0's l2: 0.166146
1245
+ ...
1246
+ ...
1247
+ [29] valid_0's l2: 0.042255
1248
+ [30] valid_0's l2: 0.0416953
1249
+
1250
+ # Deploy the model to Vantage.
1251
+ >>> lgb_model = model.deploy("lgbm_train_model_ver_2")
1252
+ >>> lgb_model
1253
+ <lightgbm.basic.Booster object at ...>
1254
+ """
1255
+
1256
+ # Install model file into Vantage, if not installed.
1257
+ self._install_initial_model_file()
1258
+
1259
+ self._save_model(model_name, replace_if_exists)
1260
+ return self
1261
+
1262
+
1263
+ class _FunctionWrapper(_GenericObjectWrapper):
1264
+ def __init__(self, module_name, func_name, file_type, template_file):
1265
+
1266
+ super().__init__()
1267
+ self._module_name = module_name
1268
+ self._func_name = func_name
1269
+ self._params = None
1270
+ self._data_args = OrderedDict()
1271
+ self._template_file = template_file
1272
+ self._script_file_name = _generate_new_name(type=file_type, extension="py")
1273
+
1274
+ def __call__(self, **kwargs):
1275
+ """
1276
+ Run the function with all the arguments passed from `td_sklearn.<function_name>` function.
1277
+ """
1278
+ replace_dict, partition_cols = self._process_data_for_funcs_returning_objects(kwargs)
1279
+
1280
+ script_file_path = f"{self._script_file_name}" if self._is_lake_system \
1281
+ else f"./{self._db_name}/{self._script_file_name}"
1282
+
1283
+ model_file_prefix = None
1284
+ if self._is_lake_system:
1285
+ model_file_prefix = self._script_file_name.replace(".py", "")
1286
+
1287
+ py_exc = UtilFuncs._get_python_execution_path()
1288
+ script_command = f"{py_exc} {script_file_path} {model_file_prefix} {self._is_lake_system}"
1289
+
1290
+ model_type = BLOB() if self._is_lake_system else CLOB()
1291
+
1292
+ return_types = [(col, self._tdml_df._td_column_names_and_sqlalchemy_types[col.lower()])
1293
+ for col in partition_cols] + [(self._func_name, model_type)]
1294
+
1295
+ replace_dict.update({"<module_name>": self._module_name,
1296
+ "<func_name>": self._func_name,
1297
+ "<params>": json.dumps(kwargs)})
1298
+
1299
+ # Generate new file in .teradataml directory and install it to Vantage.
1300
+ self._prepare_and_install_file(replace_dict=replace_dict)
1301
+
1302
+ try:
1303
+ self._model_data = self._run_script(self._tdml_df, script_command, partition_cols, return_types)
1304
+ self._model_data._index_label = None
1305
+
1306
+ fit_partition_unique_values = self._tdml_df.drop_duplicate(partition_cols).get_values()
1307
+
1308
+ self._extract_model_objs(n_unique_partitions=len(fit_partition_unique_values),
1309
+ n_partition_cols=len(partition_cols))
1310
+
1311
+ except Exception as ex:
1312
+ # File cleanup if script execution fails or unable to fetch modelObj.
1313
+ os.remove(self._script_file_local)
1314
+ self._remove_script_file(self._script_file_name)
1315
+ raise
1316
+
1317
+ # File cleanup after processing.
1318
+ os.remove(self._script_file_local)
1319
+ self._remove_script_file(self._script_file_name)
1320
+
1321
+ return self.modelObj