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

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

Potentially problematic release.


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

Files changed (1303) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +1935 -1640
  4. teradataml/__init__.py +70 -60
  5. teradataml/_version.py +11 -11
  6. teradataml/analytics/Transformations.py +2995 -2995
  7. teradataml/analytics/__init__.py +81 -83
  8. teradataml/analytics/analytic_function_executor.py +2040 -2010
  9. teradataml/analytics/analytic_query_generator.py +958 -958
  10. teradataml/analytics/byom/H2OPredict.py +514 -514
  11. teradataml/analytics/byom/PMMLPredict.py +437 -437
  12. teradataml/analytics/byom/__init__.py +14 -14
  13. teradataml/analytics/json_parser/__init__.py +130 -130
  14. teradataml/analytics/json_parser/analytic_functions_argument.py +1707 -1707
  15. teradataml/analytics/json_parser/json_store.py +191 -191
  16. teradataml/analytics/json_parser/metadata.py +1637 -1637
  17. teradataml/analytics/json_parser/utils.py +798 -803
  18. teradataml/analytics/meta_class.py +196 -196
  19. teradataml/analytics/sqle/DecisionTreePredict.py +455 -470
  20. teradataml/analytics/sqle/NaiveBayesPredict.py +419 -428
  21. teradataml/analytics/sqle/__init__.py +97 -110
  22. teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -78
  23. teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -62
  24. teradataml/analytics/table_operator/__init__.py +10 -10
  25. teradataml/analytics/uaf/__init__.py +63 -63
  26. teradataml/analytics/utils.py +693 -692
  27. teradataml/analytics/valib.py +1603 -1600
  28. teradataml/automl/__init__.py +1683 -0
  29. teradataml/automl/custom_json_utils.py +1270 -0
  30. teradataml/automl/data_preparation.py +1011 -0
  31. teradataml/automl/data_transformation.py +789 -0
  32. teradataml/automl/feature_engineering.py +1580 -0
  33. teradataml/automl/feature_exploration.py +554 -0
  34. teradataml/automl/model_evaluation.py +151 -0
  35. teradataml/automl/model_training.py +1026 -0
  36. teradataml/catalog/__init__.py +1 -3
  37. teradataml/catalog/byom.py +1759 -1716
  38. teradataml/catalog/function_argument_mapper.py +859 -861
  39. teradataml/catalog/model_cataloging_utils.py +491 -1510
  40. teradataml/clients/auth_client.py +133 -0
  41. teradataml/clients/pkce_client.py +481 -481
  42. teradataml/common/aed_utils.py +7 -2
  43. teradataml/common/bulk_exposed_utils.py +111 -111
  44. teradataml/common/constants.py +1438 -1441
  45. teradataml/common/deprecations.py +160 -0
  46. teradataml/common/exceptions.py +73 -73
  47. teradataml/common/formula.py +742 -742
  48. teradataml/common/garbagecollector.py +597 -635
  49. teradataml/common/messagecodes.py +424 -431
  50. teradataml/common/messages.py +228 -231
  51. teradataml/common/sqlbundle.py +693 -693
  52. teradataml/common/td_coltype_code_to_tdtype.py +48 -48
  53. teradataml/common/utils.py +2424 -2500
  54. teradataml/common/warnings.py +25 -25
  55. teradataml/common/wrapper_utils.py +1 -110
  56. teradataml/config/dummy_file1.cfg +4 -4
  57. teradataml/config/dummy_file2.cfg +2 -2
  58. teradataml/config/sqlengine_alias_definitions_v1.0 +13 -13
  59. teradataml/config/sqlengine_alias_definitions_v1.1 +19 -19
  60. teradataml/config/sqlengine_alias_definitions_v1.3 +18 -18
  61. teradataml/context/aed_context.py +217 -217
  62. teradataml/context/context.py +1091 -999
  63. teradataml/data/A_loan.csv +19 -19
  64. teradataml/data/BINARY_REALS_LEFT.csv +11 -11
  65. teradataml/data/BINARY_REALS_RIGHT.csv +11 -11
  66. teradataml/data/B_loan.csv +49 -49
  67. teradataml/data/BuoyData2.csv +17 -17
  68. teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -5
  69. teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -5
  70. teradataml/data/Convolve2RealsLeft.csv +5 -5
  71. teradataml/data/Convolve2RealsRight.csv +5 -5
  72. teradataml/data/Convolve2ValidLeft.csv +11 -11
  73. teradataml/data/Convolve2ValidRight.csv +11 -11
  74. teradataml/data/DFFTConv_Real_8_8.csv +65 -65
  75. teradataml/data/Orders1_12mf.csv +24 -24
  76. teradataml/data/Pi_loan.csv +7 -7
  77. teradataml/data/SMOOTHED_DATA.csv +7 -7
  78. teradataml/data/TestDFFT8.csv +9 -9
  79. teradataml/data/TestRiver.csv +109 -109
  80. teradataml/data/Traindata.csv +28 -28
  81. teradataml/data/acf.csv +17 -17
  82. teradataml/data/adaboost_example.json +34 -34
  83. teradataml/data/adaboostpredict_example.json +24 -24
  84. teradataml/data/additional_table.csv +10 -10
  85. teradataml/data/admissions_test.csv +21 -21
  86. teradataml/data/admissions_train.csv +41 -41
  87. teradataml/data/admissions_train_nulls.csv +41 -41
  88. teradataml/data/advertising.csv +201 -0
  89. teradataml/data/ageandheight.csv +13 -13
  90. teradataml/data/ageandpressure.csv +31 -31
  91. teradataml/data/antiselect_example.json +36 -36
  92. teradataml/data/antiselect_input.csv +8 -8
  93. teradataml/data/antiselect_input_mixed_case.csv +8 -8
  94. teradataml/data/applicant_external.csv +6 -6
  95. teradataml/data/applicant_reference.csv +6 -6
  96. teradataml/data/arima_example.json +9 -9
  97. teradataml/data/assortedtext_input.csv +8 -8
  98. teradataml/data/attribution_example.json +33 -33
  99. teradataml/data/attribution_sample_table.csv +27 -27
  100. teradataml/data/attribution_sample_table1.csv +6 -6
  101. teradataml/data/attribution_sample_table2.csv +11 -11
  102. teradataml/data/bank_churn.csv +10001 -0
  103. teradataml/data/bank_marketing.csv +11163 -0
  104. teradataml/data/bank_web_clicks1.csv +42 -42
  105. teradataml/data/bank_web_clicks2.csv +91 -91
  106. teradataml/data/bank_web_url.csv +85 -85
  107. teradataml/data/barrier.csv +2 -2
  108. teradataml/data/barrier_new.csv +3 -3
  109. teradataml/data/betweenness_example.json +13 -13
  110. teradataml/data/bike_sharing.csv +732 -0
  111. teradataml/data/bin_breaks.csv +8 -8
  112. teradataml/data/bin_fit_ip.csv +3 -3
  113. teradataml/data/binary_complex_left.csv +11 -11
  114. teradataml/data/binary_complex_right.csv +11 -11
  115. teradataml/data/binary_matrix_complex_left.csv +21 -21
  116. teradataml/data/binary_matrix_complex_right.csv +21 -21
  117. teradataml/data/binary_matrix_real_left.csv +21 -21
  118. teradataml/data/binary_matrix_real_right.csv +21 -21
  119. teradataml/data/blood2ageandweight.csv +26 -26
  120. teradataml/data/bmi.csv +501 -0
  121. teradataml/data/boston.csv +507 -507
  122. teradataml/data/boston2cols.csv +721 -0
  123. teradataml/data/breast_cancer.csv +570 -0
  124. teradataml/data/buoydata_mix.csv +11 -11
  125. teradataml/data/burst_data.csv +5 -5
  126. teradataml/data/burst_example.json +20 -20
  127. teradataml/data/byom_example.json +17 -17
  128. teradataml/data/bytes_table.csv +3 -3
  129. teradataml/data/cal_housing_ex_raw.csv +70 -70
  130. teradataml/data/callers.csv +7 -7
  131. teradataml/data/calls.csv +10 -10
  132. teradataml/data/cars_hist.csv +33 -33
  133. teradataml/data/cat_table.csv +24 -24
  134. teradataml/data/ccm_example.json +31 -31
  135. teradataml/data/ccm_input.csv +91 -91
  136. teradataml/data/ccm_input2.csv +13 -13
  137. teradataml/data/ccmexample.csv +101 -101
  138. teradataml/data/ccmprepare_example.json +8 -8
  139. teradataml/data/ccmprepare_input.csv +91 -91
  140. teradataml/data/cfilter_example.json +12 -12
  141. teradataml/data/changepointdetection_example.json +18 -18
  142. teradataml/data/changepointdetectionrt_example.json +8 -8
  143. teradataml/data/chi_sq.csv +2 -2
  144. teradataml/data/churn_data.csv +14 -14
  145. teradataml/data/churn_emission.csv +35 -35
  146. teradataml/data/churn_initial.csv +3 -3
  147. teradataml/data/churn_state_transition.csv +5 -5
  148. teradataml/data/citedges_2.csv +745 -745
  149. teradataml/data/citvertices_2.csv +1210 -1210
  150. teradataml/data/clicks2.csv +16 -16
  151. teradataml/data/clickstream.csv +12 -12
  152. teradataml/data/clickstream1.csv +11 -11
  153. teradataml/data/closeness_example.json +15 -15
  154. teradataml/data/complaints.csv +21 -21
  155. teradataml/data/complaints_mini.csv +3 -3
  156. teradataml/data/complaints_testtoken.csv +224 -224
  157. teradataml/data/complaints_tokens_test.csv +353 -353
  158. teradataml/data/complaints_traintoken.csv +472 -472
  159. teradataml/data/computers_category.csv +1001 -1001
  160. teradataml/data/computers_test1.csv +1252 -1252
  161. teradataml/data/computers_train1.csv +5009 -5009
  162. teradataml/data/computers_train1_clustered.csv +5009 -5009
  163. teradataml/data/confusionmatrix_example.json +9 -9
  164. teradataml/data/conversion_event_table.csv +3 -3
  165. teradataml/data/corr_input.csv +17 -17
  166. teradataml/data/correlation_example.json +11 -11
  167. teradataml/data/coxhazardratio_example.json +39 -39
  168. teradataml/data/coxph_example.json +15 -15
  169. teradataml/data/coxsurvival_example.json +28 -28
  170. teradataml/data/cpt.csv +41 -41
  171. teradataml/data/credit_ex_merged.csv +45 -45
  172. teradataml/data/customer_loyalty.csv +301 -301
  173. teradataml/data/customer_loyalty_newseq.csv +31 -31
  174. teradataml/data/customer_segmentation_test.csv +2628 -0
  175. teradataml/data/customer_segmentation_train.csv +8069 -0
  176. teradataml/data/dataframe_example.json +146 -146
  177. teradataml/data/decisionforest_example.json +37 -37
  178. teradataml/data/decisionforestpredict_example.json +38 -38
  179. teradataml/data/decisiontree_example.json +21 -21
  180. teradataml/data/decisiontreepredict_example.json +45 -45
  181. teradataml/data/dfft2_size4_real.csv +17 -17
  182. teradataml/data/dfft2_test_matrix16.csv +17 -17
  183. teradataml/data/dfft2conv_real_4_4.csv +65 -65
  184. teradataml/data/diabetes.csv +443 -443
  185. teradataml/data/diabetes_test.csv +89 -89
  186. teradataml/data/dict_table.csv +5 -5
  187. teradataml/data/docperterm_table.csv +4 -4
  188. teradataml/data/docs/__init__.py +1 -1
  189. teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -180
  190. teradataml/data/docs/byom/docs/DataikuPredict.py +177 -177
  191. teradataml/data/docs/byom/docs/H2OPredict.py +324 -324
  192. teradataml/data/docs/byom/docs/ONNXPredict.py +283 -283
  193. teradataml/data/docs/byom/docs/PMMLPredict.py +277 -277
  194. teradataml/data/docs/sqle/docs_17_10/Antiselect.py +82 -82
  195. teradataml/data/docs/sqle/docs_17_10/Attribution.py +199 -199
  196. teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +171 -171
  197. teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -130
  198. teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -86
  199. teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -90
  200. teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +85 -85
  201. teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +95 -95
  202. teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -139
  203. teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +151 -151
  204. teradataml/data/docs/sqle/docs_17_10/FTest.py +160 -160
  205. teradataml/data/docs/sqle/docs_17_10/FillRowId.py +82 -82
  206. teradataml/data/docs/sqle/docs_17_10/Fit.py +87 -87
  207. teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -144
  208. teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +84 -84
  209. teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +81 -81
  210. teradataml/data/docs/sqle/docs_17_10/Histogram.py +164 -164
  211. teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -134
  212. teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +208 -208
  213. teradataml/data/docs/sqle/docs_17_10/NPath.py +265 -265
  214. teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -116
  215. teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -176
  216. teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -147
  217. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +134 -132
  218. teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -103
  219. teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +165 -165
  220. teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -101
  221. teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -128
  222. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +111 -111
  223. teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -102
  224. teradataml/data/docs/sqle/docs_17_10/QQNorm.py +104 -104
  225. teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +109 -109
  226. teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +117 -117
  227. teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -98
  228. teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +152 -152
  229. teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -197
  230. teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -98
  231. teradataml/data/docs/sqle/docs_17_10/Sessionize.py +113 -113
  232. teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -116
  233. teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -98
  234. teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -187
  235. teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +145 -145
  236. teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -104
  237. teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +141 -141
  238. teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -214
  239. teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -83
  240. teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -83
  241. teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -155
  242. teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -126
  243. teradataml/data/docs/sqle/docs_17_20/Antiselect.py +82 -82
  244. teradataml/data/docs/sqle/docs_17_20/Attribution.py +200 -200
  245. teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +171 -171
  246. teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -138
  247. teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -86
  248. teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -90
  249. teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -166
  250. teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +85 -85
  251. teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +245 -243
  252. teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -113
  253. teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +279 -279
  254. teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -144
  255. teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +135 -135
  256. teradataml/data/docs/sqle/docs_17_20/FTest.py +239 -160
  257. teradataml/data/docs/sqle/docs_17_20/FillRowId.py +82 -82
  258. teradataml/data/docs/sqle/docs_17_20/Fit.py +87 -87
  259. teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -380
  260. teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +414 -414
  261. teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -144
  262. teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -234
  263. teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -123
  264. teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +108 -108
  265. teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +105 -105
  266. teradataml/data/docs/sqle/docs_17_20/Histogram.py +223 -223
  267. teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -204
  268. teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -143
  269. teradataml/data/docs/sqle/docs_17_20/KNN.py +214 -214
  270. teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -134
  271. teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +208 -208
  272. teradataml/data/docs/sqle/docs_17_20/NPath.py +265 -265
  273. teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -116
  274. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -176
  275. teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +126 -126
  276. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +118 -117
  277. teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -112
  278. teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -147
  279. teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -307
  280. teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -184
  281. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +230 -225
  282. teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -115
  283. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +219 -219
  284. teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -127
  285. teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +189 -189
  286. teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -112
  287. teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -128
  288. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +111 -111
  289. teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -111
  290. teradataml/data/docs/sqle/docs_17_20/QQNorm.py +104 -104
  291. teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -163
  292. teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +154 -154
  293. teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -106
  294. teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -120
  295. teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -211
  296. teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +108 -108
  297. teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +117 -117
  298. teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -110
  299. teradataml/data/docs/sqle/docs_17_20/SVM.py +413 -413
  300. teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -202
  301. teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +152 -152
  302. teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -197
  303. teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -109
  304. teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -206
  305. teradataml/data/docs/sqle/docs_17_20/Sessionize.py +113 -113
  306. teradataml/data/docs/sqle/docs_17_20/Silhouette.py +152 -152
  307. teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -116
  308. teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -108
  309. teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -187
  310. teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +145 -145
  311. teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -207
  312. teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -171
  313. teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +266 -266
  314. teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -140
  315. teradataml/data/docs/sqle/docs_17_20/TextParser.py +172 -172
  316. teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +159 -159
  317. teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -123
  318. teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +141 -141
  319. teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -214
  320. teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +168 -168
  321. teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -83
  322. teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -83
  323. teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +236 -236
  324. teradataml/data/docs/sqle/docs_17_20/XGBoost.py +361 -353
  325. teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -275
  326. teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -155
  327. teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +429 -429
  328. teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +429 -429
  329. teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +347 -347
  330. teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +428 -428
  331. teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +347 -347
  332. teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +439 -439
  333. teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +386 -386
  334. teradataml/data/docs/uaf/docs_17_20/ACF.py +195 -195
  335. teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +369 -369
  336. teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +142 -142
  337. teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +159 -159
  338. teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +247 -247
  339. teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -252
  340. teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +177 -177
  341. teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +174 -174
  342. teradataml/data/docs/uaf/docs_17_20/Convolve.py +226 -226
  343. teradataml/data/docs/uaf/docs_17_20/Convolve2.py +214 -214
  344. teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +183 -183
  345. teradataml/data/docs/uaf/docs_17_20/DFFT.py +203 -203
  346. teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -216
  347. teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +215 -215
  348. teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +191 -191
  349. teradataml/data/docs/uaf/docs_17_20/DTW.py +179 -179
  350. teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +144 -144
  351. teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +183 -183
  352. teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +184 -184
  353. teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -172
  354. teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +205 -205
  355. teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +142 -142
  356. teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +258 -258
  357. teradataml/data/docs/uaf/docs_17_20/IDFFT.py +164 -164
  358. teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +198 -198
  359. teradataml/data/docs/uaf/docs_17_20/InputValidator.py +120 -120
  360. teradataml/data/docs/uaf/docs_17_20/LineSpec.py +155 -155
  361. teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +214 -214
  362. teradataml/data/docs/uaf/docs_17_20/MAMean.py +173 -173
  363. teradataml/data/docs/uaf/docs_17_20/MInfo.py +133 -133
  364. teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +135 -135
  365. teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +190 -190
  366. teradataml/data/docs/uaf/docs_17_20/PACF.py +158 -158
  367. teradataml/data/docs/uaf/docs_17_20/Portman.py +216 -216
  368. teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +154 -154
  369. teradataml/data/docs/uaf/docs_17_20/Resample.py +228 -228
  370. teradataml/data/docs/uaf/docs_17_20/SInfo.py +122 -122
  371. teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +165 -165
  372. teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +173 -173
  373. teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +170 -170
  374. teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +163 -163
  375. teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +179 -179
  376. teradataml/data/docs/uaf/docs_17_20/Smoothma.py +207 -207
  377. teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +150 -150
  378. teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -171
  379. teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +201 -201
  380. teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +169 -169
  381. teradataml/data/dtw_example.json +17 -17
  382. teradataml/data/dtw_t1.csv +11 -11
  383. teradataml/data/dtw_t2.csv +4 -4
  384. teradataml/data/dwt2d_example.json +15 -15
  385. teradataml/data/dwt_example.json +14 -14
  386. teradataml/data/dwt_filter_dim.csv +5 -5
  387. teradataml/data/emission.csv +9 -9
  388. teradataml/data/emp_table_by_dept.csv +19 -19
  389. teradataml/data/employee_info.csv +4 -4
  390. teradataml/data/employee_table.csv +6 -6
  391. teradataml/data/excluding_event_table.csv +2 -2
  392. teradataml/data/finance_data.csv +6 -6
  393. teradataml/data/finance_data2.csv +61 -61
  394. teradataml/data/finance_data3.csv +93 -93
  395. teradataml/data/fish.csv +160 -0
  396. teradataml/data/fm_blood2ageandweight.csv +26 -26
  397. teradataml/data/fmeasure_example.json +11 -11
  398. teradataml/data/followers_leaders.csv +10 -10
  399. teradataml/data/fpgrowth_example.json +12 -12
  400. teradataml/data/frequentpaths_example.json +29 -29
  401. teradataml/data/friends.csv +9 -9
  402. teradataml/data/fs_input.csv +33 -33
  403. teradataml/data/fs_input1.csv +33 -33
  404. teradataml/data/genData.csv +513 -513
  405. teradataml/data/geodataframe_example.json +39 -39
  406. teradataml/data/glass_types.csv +215 -0
  407. teradataml/data/glm_admissions_model.csv +12 -12
  408. teradataml/data/glm_example.json +56 -29
  409. teradataml/data/glml1l2_example.json +28 -28
  410. teradataml/data/glml1l2predict_example.json +54 -54
  411. teradataml/data/glmpredict_example.json +54 -54
  412. teradataml/data/gq_t1.csv +21 -21
  413. teradataml/data/hconvolve_complex_right.csv +5 -5
  414. teradataml/data/hconvolve_complex_rightmulti.csv +5 -5
  415. teradataml/data/histogram_example.json +11 -11
  416. teradataml/data/hmmdecoder_example.json +78 -78
  417. teradataml/data/hmmevaluator_example.json +24 -24
  418. teradataml/data/hmmsupervised_example.json +10 -10
  419. teradataml/data/hmmunsupervised_example.json +7 -7
  420. teradataml/data/house_values.csv +12 -12
  421. teradataml/data/house_values2.csv +13 -13
  422. teradataml/data/housing_cat.csv +7 -7
  423. teradataml/data/housing_data.csv +9 -9
  424. teradataml/data/housing_test.csv +47 -47
  425. teradataml/data/housing_test_binary.csv +47 -47
  426. teradataml/data/housing_train.csv +493 -493
  427. teradataml/data/housing_train_attribute.csv +4 -4
  428. teradataml/data/housing_train_binary.csv +437 -437
  429. teradataml/data/housing_train_parameter.csv +2 -2
  430. teradataml/data/housing_train_response.csv +493 -493
  431. teradataml/data/housing_train_segment.csv +201 -0
  432. teradataml/data/ibm_stock.csv +370 -370
  433. teradataml/data/ibm_stock1.csv +370 -370
  434. teradataml/data/identitymatch_example.json +21 -21
  435. teradataml/data/idf_table.csv +4 -4
  436. teradataml/data/impressions.csv +101 -101
  437. teradataml/data/inflation.csv +21 -21
  438. teradataml/data/initial.csv +3 -3
  439. teradataml/data/insect2Cols.csv +61 -0
  440. teradataml/data/insect_sprays.csv +12 -12
  441. teradataml/data/insurance.csv +1339 -1339
  442. teradataml/data/interpolator_example.json +12 -12
  443. teradataml/data/iris_altinput.csv +481 -481
  444. teradataml/data/iris_attribute_output.csv +8 -8
  445. teradataml/data/iris_attribute_test.csv +121 -121
  446. teradataml/data/iris_attribute_train.csv +481 -481
  447. teradataml/data/iris_category_expect_predict.csv +31 -31
  448. teradataml/data/iris_data.csv +151 -0
  449. teradataml/data/iris_input.csv +151 -151
  450. teradataml/data/iris_response_train.csv +121 -121
  451. teradataml/data/iris_test.csv +31 -31
  452. teradataml/data/iris_train.csv +121 -121
  453. teradataml/data/join_table1.csv +4 -4
  454. teradataml/data/join_table2.csv +4 -4
  455. teradataml/data/jsons/anly_function_name.json +6 -6
  456. teradataml/data/jsons/byom/dataikupredict.json +147 -147
  457. teradataml/data/jsons/byom/datarobotpredict.json +146 -146
  458. teradataml/data/jsons/byom/h2opredict.json +194 -194
  459. teradataml/data/jsons/byom/onnxpredict.json +186 -186
  460. teradataml/data/jsons/byom/pmmlpredict.json +146 -146
  461. teradataml/data/jsons/paired_functions.json +435 -435
  462. teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -56
  463. teradataml/data/jsons/sqle/16.20/Attribution.json +249 -249
  464. teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -156
  465. teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -170
  466. teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -122
  467. teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -367
  468. teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -239
  469. teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -136
  470. teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -235
  471. teradataml/data/jsons/sqle/16.20/Pack.json +98 -98
  472. teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -162
  473. teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -105
  474. teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -86
  475. teradataml/data/jsons/sqle/16.20/Unpack.json +166 -166
  476. teradataml/data/jsons/sqle/16.20/nPath.json +269 -269
  477. teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -56
  478. teradataml/data/jsons/sqle/17.00/Attribution.json +249 -249
  479. teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -156
  480. teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -170
  481. teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -122
  482. teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -367
  483. teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -239
  484. teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -136
  485. teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -235
  486. teradataml/data/jsons/sqle/17.00/Pack.json +98 -98
  487. teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -162
  488. teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -105
  489. teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -86
  490. teradataml/data/jsons/sqle/17.00/Unpack.json +166 -166
  491. teradataml/data/jsons/sqle/17.00/nPath.json +269 -269
  492. teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -56
  493. teradataml/data/jsons/sqle/17.05/Attribution.json +249 -249
  494. teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -156
  495. teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -170
  496. teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -122
  497. teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -367
  498. teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -239
  499. teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -136
  500. teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -235
  501. teradataml/data/jsons/sqle/17.05/Pack.json +98 -98
  502. teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -162
  503. teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -105
  504. teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -86
  505. teradataml/data/jsons/sqle/17.05/Unpack.json +166 -166
  506. teradataml/data/jsons/sqle/17.05/nPath.json +269 -269
  507. teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -56
  508. teradataml/data/jsons/sqle/17.10/Attribution.json +249 -249
  509. teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -185
  510. teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +171 -171
  511. teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -151
  512. teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -368
  513. teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -239
  514. teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -149
  515. teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -288
  516. teradataml/data/jsons/sqle/17.10/Pack.json +133 -133
  517. teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -193
  518. teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -105
  519. teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -86
  520. teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -239
  521. teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -70
  522. teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +53 -53
  523. teradataml/data/jsons/sqle/17.10/TD_Chisq.json +67 -67
  524. teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +53 -53
  525. teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +68 -68
  526. teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -187
  527. teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +51 -51
  528. teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -46
  529. teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -71
  530. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +52 -52
  531. teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +52 -52
  532. teradataml/data/jsons/sqle/17.10/TD_Histogram.json +132 -132
  533. teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -147
  534. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +182 -182
  535. teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +65 -64
  536. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +196 -196
  537. teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -47
  538. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -114
  539. teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -71
  540. teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +111 -111
  541. teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -93
  542. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +127 -127
  543. teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +70 -69
  544. teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +156 -156
  545. teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +70 -69
  546. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +147 -147
  547. teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -47
  548. teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -240
  549. teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +118 -118
  550. teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +52 -52
  551. teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +52 -52
  552. teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -171
  553. teradataml/data/jsons/sqle/17.10/Unpack.json +188 -188
  554. teradataml/data/jsons/sqle/17.10/nPath.json +269 -269
  555. teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -56
  556. teradataml/data/jsons/sqle/17.20/Attribution.json +249 -249
  557. teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -185
  558. teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -172
  559. teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -151
  560. teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -367
  561. teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -239
  562. teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -149
  563. teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -287
  564. teradataml/data/jsons/sqle/17.20/Pack.json +133 -133
  565. teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -192
  566. teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -105
  567. teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -86
  568. teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +148 -76
  569. teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -239
  570. teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -71
  571. teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -53
  572. teradataml/data/jsons/sqle/17.20/TD_Chisq.json +67 -67
  573. teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +145 -145
  574. teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -53
  575. teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -218
  576. teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -92
  577. teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +259 -259
  578. teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -139
  579. teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -186
  580. teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -52
  581. teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -46
  582. teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -72
  583. teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -431
  584. teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -125
  585. teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -411
  586. teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -146
  587. teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -91
  588. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -76
  589. teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -76
  590. teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -152
  591. teradataml/data/jsons/sqle/17.20/TD_KMeans.json +231 -211
  592. teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +86 -86
  593. teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -262
  594. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -137
  595. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -101
  596. teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -71
  597. teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -147
  598. teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +315 -315
  599. teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +123 -123
  600. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -271
  601. teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -65
  602. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -229
  603. teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -75
  604. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -217
  605. teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -48
  606. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -114
  607. teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -72
  608. teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -111
  609. teradataml/data/jsons/sqle/17.20/TD_ROC.json +178 -177
  610. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +178 -178
  611. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +73 -73
  612. teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -74
  613. teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +137 -137
  614. teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -93
  615. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +127 -127
  616. teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +70 -70
  617. teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -389
  618. teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -124
  619. teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +309 -156
  620. teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +119 -70
  621. teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +193 -193
  622. teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +142 -142
  623. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -147
  624. teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -48
  625. teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -240
  626. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -248
  627. teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -75
  628. teradataml/data/jsons/sqle/17.20/TD_TextParser.json +192 -192
  629. teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -142
  630. teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -117
  631. teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +182 -182
  632. teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +52 -52
  633. teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +52 -52
  634. teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -241
  635. teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -312
  636. teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -182
  637. teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -170
  638. teradataml/data/jsons/sqle/17.20/Unpack.json +188 -188
  639. teradataml/data/jsons/sqle/17.20/nPath.json +269 -269
  640. teradataml/data/jsons/tableoperator/17.00/read_nos.json +197 -197
  641. teradataml/data/jsons/tableoperator/17.05/read_nos.json +197 -197
  642. teradataml/data/jsons/tableoperator/17.05/write_nos.json +194 -194
  643. teradataml/data/jsons/tableoperator/17.10/read_nos.json +183 -183
  644. teradataml/data/jsons/tableoperator/17.10/write_nos.json +194 -194
  645. teradataml/data/jsons/tableoperator/17.20/read_nos.json +182 -182
  646. teradataml/data/jsons/tableoperator/17.20/write_nos.json +223 -223
  647. teradataml/data/jsons/uaf/17.20/TD_ACF.json +149 -149
  648. teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +409 -409
  649. teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +79 -79
  650. teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +151 -151
  651. teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +109 -109
  652. teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +107 -107
  653. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +87 -87
  654. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +106 -106
  655. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +80 -80
  656. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +67 -67
  657. teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +91 -91
  658. teradataml/data/jsons/uaf/17.20/TD_DFFT.json +136 -136
  659. teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +148 -148
  660. teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -108
  661. teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +109 -109
  662. teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +86 -86
  663. teradataml/data/jsons/uaf/17.20/TD_DIFF.json +91 -91
  664. teradataml/data/jsons/uaf/17.20/TD_DTW.json +116 -116
  665. teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +100 -100
  666. teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +38 -38
  667. teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +100 -100
  668. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +84 -84
  669. teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +70 -70
  670. teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +152 -152
  671. teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECAST.json +313 -313
  672. teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +57 -57
  673. teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +94 -94
  674. teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +63 -63
  675. teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +181 -181
  676. teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +102 -102
  677. teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +182 -182
  678. teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +67 -67
  679. teradataml/data/jsons/uaf/17.20/TD_MINFO.json +66 -66
  680. teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +178 -178
  681. teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -114
  682. teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +118 -118
  683. teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -175
  684. teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +97 -97
  685. teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +173 -173
  686. teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +136 -136
  687. teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +89 -89
  688. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +79 -79
  689. teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +67 -67
  690. teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -184
  691. teradataml/data/jsons/uaf/17.20/TD_SINFO.json +57 -57
  692. teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +162 -162
  693. teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +100 -100
  694. teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +111 -111
  695. teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -95
  696. teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +77 -77
  697. teradataml/data/kmeans_example.json +22 -17
  698. teradataml/data/kmeans_table.csv +10 -0
  699. teradataml/data/kmeans_us_arrests_data.csv +0 -0
  700. teradataml/data/knn_example.json +18 -18
  701. teradataml/data/knnrecommender_example.json +6 -6
  702. teradataml/data/knnrecommenderpredict_example.json +12 -12
  703. teradataml/data/lar_example.json +17 -17
  704. teradataml/data/larpredict_example.json +30 -30
  705. teradataml/data/lc_new_predictors.csv +5 -5
  706. teradataml/data/lc_new_reference.csv +9 -9
  707. teradataml/data/lda_example.json +8 -8
  708. teradataml/data/ldainference_example.json +14 -14
  709. teradataml/data/ldatopicsummary_example.json +8 -8
  710. teradataml/data/levendist_input.csv +13 -13
  711. teradataml/data/levenshteindistance_example.json +10 -10
  712. teradataml/data/linreg_example.json +9 -9
  713. teradataml/data/load_example_data.py +326 -323
  714. teradataml/data/loan_prediction.csv +295 -295
  715. teradataml/data/lungcancer.csv +138 -138
  716. teradataml/data/mappingdata.csv +12 -12
  717. teradataml/data/milk_timeseries.csv +157 -157
  718. teradataml/data/min_max_titanic.csv +4 -4
  719. teradataml/data/minhash_example.json +6 -6
  720. teradataml/data/ml_ratings.csv +7547 -7547
  721. teradataml/data/ml_ratings_10.csv +2445 -2445
  722. teradataml/data/model1_table.csv +5 -5
  723. teradataml/data/model2_table.csv +5 -5
  724. teradataml/data/models/iris_db_glm_model.pmml +56 -56
  725. teradataml/data/models/iris_db_xgb_model.pmml +4471 -4471
  726. teradataml/data/modularity_example.json +12 -12
  727. teradataml/data/movavg_example.json +7 -7
  728. teradataml/data/mtx1.csv +7 -7
  729. teradataml/data/mtx2.csv +13 -13
  730. teradataml/data/multi_model_classification.csv +401 -0
  731. teradataml/data/multi_model_regression.csv +401 -0
  732. teradataml/data/mvdfft8.csv +9 -9
  733. teradataml/data/naivebayes_example.json +9 -9
  734. teradataml/data/naivebayespredict_example.json +19 -19
  735. teradataml/data/naivebayestextclassifier2_example.json +6 -6
  736. teradataml/data/naivebayestextclassifier_example.json +8 -8
  737. teradataml/data/naivebayestextclassifierpredict_example.json +20 -20
  738. teradataml/data/name_Find_configure.csv +10 -10
  739. teradataml/data/namedentityfinder_example.json +14 -14
  740. teradataml/data/namedentityfinderevaluator_example.json +10 -10
  741. teradataml/data/namedentityfindertrainer_example.json +6 -6
  742. teradataml/data/nb_iris_input_test.csv +31 -31
  743. teradataml/data/nb_iris_input_train.csv +121 -121
  744. teradataml/data/nbp_iris_model.csv +13 -13
  745. teradataml/data/ner_extractor_text.csv +2 -2
  746. teradataml/data/ner_sports_test2.csv +29 -29
  747. teradataml/data/ner_sports_train.csv +501 -501
  748. teradataml/data/nerevaluator_example.json +5 -5
  749. teradataml/data/nerextractor_example.json +18 -18
  750. teradataml/data/nermem_sports_test.csv +17 -17
  751. teradataml/data/nermem_sports_train.csv +50 -50
  752. teradataml/data/nertrainer_example.json +6 -6
  753. teradataml/data/ngrams_example.json +6 -6
  754. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -1455
  755. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -1993
  756. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -1492
  757. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -536
  758. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -570
  759. teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -2559
  760. teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -2911
  761. teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -698
  762. teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -784
  763. teradataml/data/npath_example.json +23 -23
  764. teradataml/data/ntree_example.json +14 -14
  765. teradataml/data/numeric_strings.csv +4 -4
  766. teradataml/data/numerics.csv +4 -4
  767. teradataml/data/ocean_buoy.csv +17 -17
  768. teradataml/data/ocean_buoy2.csv +17 -17
  769. teradataml/data/ocean_buoys.csv +27 -27
  770. teradataml/data/ocean_buoys2.csv +10 -10
  771. teradataml/data/ocean_buoys_nonpti.csv +28 -28
  772. teradataml/data/ocean_buoys_seq.csv +29 -29
  773. teradataml/data/onehot_encoder_train.csv +4 -0
  774. teradataml/data/openml_example.json +92 -0
  775. teradataml/data/optional_event_table.csv +4 -4
  776. teradataml/data/orders1.csv +11 -11
  777. teradataml/data/orders1_12.csv +12 -12
  778. teradataml/data/orders_ex.csv +4 -4
  779. teradataml/data/pack_example.json +8 -8
  780. teradataml/data/package_tracking.csv +19 -19
  781. teradataml/data/package_tracking_pti.csv +18 -18
  782. teradataml/data/pagerank_example.json +13 -13
  783. teradataml/data/paragraphs_input.csv +6 -6
  784. teradataml/data/pathanalyzer_example.json +7 -7
  785. teradataml/data/pathgenerator_example.json +7 -7
  786. teradataml/data/phrases.csv +7 -7
  787. teradataml/data/pivot_example.json +8 -8
  788. teradataml/data/pivot_input.csv +22 -22
  789. teradataml/data/playerRating.csv +31 -31
  790. teradataml/data/postagger_example.json +6 -6
  791. teradataml/data/posttagger_output.csv +44 -44
  792. teradataml/data/production_data.csv +16 -16
  793. teradataml/data/production_data2.csv +7 -7
  794. teradataml/data/randomsample_example.json +31 -31
  795. teradataml/data/randomwalksample_example.json +8 -8
  796. teradataml/data/rank_table.csv +6 -6
  797. teradataml/data/ref_mobile_data.csv +4 -4
  798. teradataml/data/ref_mobile_data_dense.csv +2 -2
  799. teradataml/data/ref_url.csv +17 -17
  800. teradataml/data/restaurant_reviews.csv +7 -7
  801. teradataml/data/river_data.csv +145 -145
  802. teradataml/data/roc_example.json +7 -7
  803. teradataml/data/roc_input.csv +101 -101
  804. teradataml/data/rule_inputs.csv +6 -6
  805. teradataml/data/rule_table.csv +2 -2
  806. teradataml/data/sales.csv +7 -7
  807. teradataml/data/sales_transaction.csv +501 -501
  808. teradataml/data/salesdata.csv +342 -342
  809. teradataml/data/sample_cities.csv +2 -2
  810. teradataml/data/sample_shapes.csv +10 -10
  811. teradataml/data/sample_streets.csv +2 -2
  812. teradataml/data/sampling_example.json +15 -15
  813. teradataml/data/sax_example.json +8 -8
  814. teradataml/data/scale_attributes.csv +3 -0
  815. teradataml/data/scale_example.json +74 -23
  816. teradataml/data/scale_housing.csv +11 -11
  817. teradataml/data/scale_housing_test.csv +6 -6
  818. teradataml/data/scale_input_part_sparse.csv +31 -0
  819. teradataml/data/scale_input_partitioned.csv +16 -0
  820. teradataml/data/scale_input_sparse.csv +11 -0
  821. teradataml/data/scale_parameters.csv +3 -0
  822. teradataml/data/scale_stat.csv +11 -11
  823. teradataml/data/scalebypartition_example.json +13 -13
  824. teradataml/data/scalemap_example.json +13 -13
  825. teradataml/data/scalesummary_example.json +12 -12
  826. teradataml/data/score_category.csv +101 -101
  827. teradataml/data/score_summary.csv +4 -4
  828. teradataml/data/script_example.json +9 -9
  829. teradataml/data/scripts/deploy_script.py +84 -0
  830. teradataml/data/scripts/mapper.R +20 -0
  831. teradataml/data/scripts/mapper.py +15 -15
  832. teradataml/data/scripts/mapper_replace.py +15 -15
  833. teradataml/data/scripts/sklearn/__init__.py +0 -0
  834. teradataml/data/scripts/sklearn/sklearn_fit.py +171 -0
  835. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +127 -0
  836. teradataml/data/scripts/sklearn/sklearn_function.template +108 -0
  837. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +148 -0
  838. teradataml/data/scripts/sklearn/sklearn_neighbors.py +143 -0
  839. teradataml/data/scripts/sklearn/sklearn_score.py +119 -0
  840. teradataml/data/scripts/sklearn/sklearn_transform.py +171 -0
  841. teradataml/data/seeds.csv +10 -10
  842. teradataml/data/sentenceextractor_example.json +6 -6
  843. teradataml/data/sentiment_extract_input.csv +11 -11
  844. teradataml/data/sentiment_train.csv +16 -16
  845. teradataml/data/sentiment_word.csv +20 -20
  846. teradataml/data/sentiment_word_input.csv +19 -19
  847. teradataml/data/sentimentextractor_example.json +24 -24
  848. teradataml/data/sentimenttrainer_example.json +8 -8
  849. teradataml/data/sequence_table.csv +10 -10
  850. teradataml/data/seriessplitter_example.json +7 -7
  851. teradataml/data/sessionize_example.json +17 -17
  852. teradataml/data/sessionize_table.csv +116 -116
  853. teradataml/data/setop_test1.csv +24 -24
  854. teradataml/data/setop_test2.csv +22 -22
  855. teradataml/data/soc_nw_edges.csv +10 -10
  856. teradataml/data/soc_nw_vertices.csv +7 -7
  857. teradataml/data/souvenir_timeseries.csv +167 -167
  858. teradataml/data/sparse_iris_attribute.csv +5 -5
  859. teradataml/data/sparse_iris_test.csv +121 -121
  860. teradataml/data/sparse_iris_train.csv +601 -601
  861. teradataml/data/star1.csv +6 -6
  862. teradataml/data/state_transition.csv +5 -5
  863. teradataml/data/stock_data.csv +53 -53
  864. teradataml/data/stock_movement.csv +11 -11
  865. teradataml/data/stock_vol.csv +76 -76
  866. teradataml/data/stop_words.csv +8 -8
  867. teradataml/data/store_sales.csv +37 -37
  868. teradataml/data/stringsimilarity_example.json +7 -7
  869. teradataml/data/strsimilarity_input.csv +13 -13
  870. teradataml/data/students.csv +101 -101
  871. teradataml/data/svm_iris_input_test.csv +121 -121
  872. teradataml/data/svm_iris_input_train.csv +481 -481
  873. teradataml/data/svm_iris_model.csv +7 -7
  874. teradataml/data/svmdense_example.json +9 -9
  875. teradataml/data/svmdensepredict_example.json +18 -18
  876. teradataml/data/svmsparse_example.json +7 -7
  877. teradataml/data/svmsparsepredict_example.json +13 -13
  878. teradataml/data/svmsparsesummary_example.json +7 -7
  879. teradataml/data/target_mobile_data.csv +13 -13
  880. teradataml/data/target_mobile_data_dense.csv +5 -5
  881. teradataml/data/templatedata.csv +1201 -1201
  882. teradataml/data/templates/open_source_ml.json +9 -0
  883. teradataml/data/teradataml_example.json +150 -1
  884. teradataml/data/test_classification.csv +101 -0
  885. teradataml/data/test_loan_prediction.csv +53 -53
  886. teradataml/data/test_pacf_12.csv +37 -37
  887. teradataml/data/test_prediction.csv +101 -0
  888. teradataml/data/test_regression.csv +101 -0
  889. teradataml/data/test_river2.csv +109 -109
  890. teradataml/data/text_inputs.csv +6 -6
  891. teradataml/data/textchunker_example.json +7 -7
  892. teradataml/data/textclassifier_example.json +6 -6
  893. teradataml/data/textclassifier_input.csv +7 -7
  894. teradataml/data/textclassifiertrainer_example.json +6 -6
  895. teradataml/data/textmorph_example.json +5 -5
  896. teradataml/data/textparser_example.json +15 -15
  897. teradataml/data/texttagger_example.json +11 -11
  898. teradataml/data/texttokenizer_example.json +6 -6
  899. teradataml/data/texttrainer_input.csv +11 -11
  900. teradataml/data/tf_example.json +6 -6
  901. teradataml/data/tfidf_example.json +13 -13
  902. teradataml/data/tfidf_input1.csv +201 -201
  903. teradataml/data/tfidf_train.csv +6 -6
  904. teradataml/data/time_table1.csv +535 -535
  905. teradataml/data/time_table2.csv +14 -14
  906. teradataml/data/timeseriesdata.csv +1601 -1601
  907. teradataml/data/timeseriesdatasetsd4.csv +105 -105
  908. teradataml/data/titanic.csv +892 -892
  909. teradataml/data/token_table.csv +696 -696
  910. teradataml/data/train_multiclass.csv +101 -0
  911. teradataml/data/train_regression.csv +101 -0
  912. teradataml/data/train_regression_multiple_labels.csv +101 -0
  913. teradataml/data/train_tracking.csv +27 -27
  914. teradataml/data/transformation_table.csv +5 -5
  915. teradataml/data/transformation_table_new.csv +1 -1
  916. teradataml/data/tv_spots.csv +16 -16
  917. teradataml/data/twod_climate_data.csv +117 -117
  918. teradataml/data/uaf_example.json +475 -475
  919. teradataml/data/univariatestatistics_example.json +8 -8
  920. teradataml/data/unpack_example.json +9 -9
  921. teradataml/data/unpivot_example.json +9 -9
  922. teradataml/data/unpivot_input.csv +8 -8
  923. teradataml/data/us_air_pass.csv +36 -36
  924. teradataml/data/us_population.csv +624 -624
  925. teradataml/data/us_states_shapes.csv +52 -52
  926. teradataml/data/varmax_example.json +17 -17
  927. teradataml/data/vectordistance_example.json +25 -25
  928. teradataml/data/ville_climatedata.csv +121 -121
  929. teradataml/data/ville_tempdata.csv +12 -12
  930. teradataml/data/ville_tempdata1.csv +12 -12
  931. teradataml/data/ville_temperature.csv +11 -11
  932. teradataml/data/waveletTable.csv +1605 -1605
  933. teradataml/data/waveletTable2.csv +1605 -1605
  934. teradataml/data/weightedmovavg_example.json +8 -8
  935. teradataml/data/wft_testing.csv +5 -5
  936. teradataml/data/wine_data.csv +1600 -0
  937. teradataml/data/word_embed_input_table1.csv +5 -5
  938. teradataml/data/word_embed_input_table2.csv +4 -4
  939. teradataml/data/word_embed_model.csv +22 -22
  940. teradataml/data/words_input.csv +13 -13
  941. teradataml/data/xconvolve_complex_left.csv +6 -6
  942. teradataml/data/xconvolve_complex_leftmulti.csv +6 -6
  943. teradataml/data/xgboost_example.json +35 -35
  944. teradataml/data/xgboostpredict_example.json +31 -31
  945. teradataml/data/ztest_example.json +16 -0
  946. teradataml/dataframe/copy_to.py +1769 -1698
  947. teradataml/dataframe/data_transfer.py +2812 -2745
  948. teradataml/dataframe/dataframe.py +17630 -16946
  949. teradataml/dataframe/dataframe_utils.py +1875 -1740
  950. teradataml/dataframe/fastload.py +794 -603
  951. teradataml/dataframe/indexer.py +424 -424
  952. teradataml/dataframe/setop.py +1179 -1166
  953. teradataml/dataframe/sql.py +10174 -6432
  954. teradataml/dataframe/sql_function_parameters.py +439 -388
  955. teradataml/dataframe/sql_functions.py +652 -652
  956. teradataml/dataframe/sql_interfaces.py +220 -220
  957. teradataml/dataframe/vantage_function_types.py +674 -630
  958. teradataml/dataframe/window.py +693 -692
  959. teradataml/dbutils/__init__.py +3 -3
  960. teradataml/dbutils/dbutils.py +1167 -1150
  961. teradataml/dbutils/filemgr.py +267 -267
  962. teradataml/gen_ai/__init__.py +2 -2
  963. teradataml/gen_ai/convAI.py +472 -472
  964. teradataml/geospatial/__init__.py +3 -3
  965. teradataml/geospatial/geodataframe.py +1105 -1094
  966. teradataml/geospatial/geodataframecolumn.py +392 -387
  967. teradataml/geospatial/geometry_types.py +925 -925
  968. teradataml/hyperparameter_tuner/__init__.py +1 -1
  969. teradataml/hyperparameter_tuner/optimizer.py +3783 -2993
  970. teradataml/hyperparameter_tuner/utils.py +281 -187
  971. teradataml/lib/aed_0_1.dll +0 -0
  972. teradataml/lib/libaed_0_1.dylib +0 -0
  973. teradataml/lib/libaed_0_1.so +0 -0
  974. teradataml/libaed_0_1.dylib +0 -0
  975. teradataml/libaed_0_1.so +0 -0
  976. teradataml/opensource/__init__.py +1 -0
  977. teradataml/opensource/sklearn/__init__.py +1 -0
  978. teradataml/opensource/sklearn/_class.py +255 -0
  979. teradataml/opensource/sklearn/_sklearn_wrapper.py +1715 -0
  980. teradataml/opensource/sklearn/_wrapper_utils.py +268 -0
  981. teradataml/opensource/sklearn/constants.py +54 -0
  982. teradataml/options/__init__.py +130 -124
  983. teradataml/options/configure.py +358 -336
  984. teradataml/options/display.py +176 -176
  985. teradataml/plot/__init__.py +2 -2
  986. teradataml/plot/axis.py +1388 -1388
  987. teradataml/plot/constants.py +15 -15
  988. teradataml/plot/figure.py +398 -398
  989. teradataml/plot/plot.py +760 -760
  990. teradataml/plot/query_generator.py +83 -83
  991. teradataml/plot/subplot.py +216 -216
  992. teradataml/scriptmgmt/UserEnv.py +3791 -3761
  993. teradataml/scriptmgmt/__init__.py +3 -3
  994. teradataml/scriptmgmt/lls_utils.py +1719 -1604
  995. teradataml/series/series.py +532 -532
  996. teradataml/series/series_utils.py +71 -71
  997. teradataml/table_operators/Apply.py +949 -917
  998. teradataml/table_operators/Script.py +1718 -1982
  999. teradataml/table_operators/TableOperator.py +1255 -1616
  1000. teradataml/table_operators/__init__.py +2 -3
  1001. teradataml/table_operators/apply_query_generator.py +262 -262
  1002. teradataml/table_operators/query_generator.py +507 -507
  1003. teradataml/table_operators/table_operator_query_generator.py +460 -460
  1004. teradataml/table_operators/table_operator_util.py +631 -639
  1005. teradataml/table_operators/templates/dataframe_apply.template +184 -184
  1006. teradataml/table_operators/templates/dataframe_map.template +176 -176
  1007. teradataml/table_operators/templates/script_executor.template +170 -170
  1008. teradataml/utils/dtypes.py +684 -684
  1009. teradataml/utils/internal_buffer.py +84 -84
  1010. teradataml/utils/print_versions.py +205 -205
  1011. teradataml/utils/utils.py +410 -410
  1012. teradataml/utils/validators.py +2277 -2115
  1013. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/METADATA +346 -45
  1014. teradataml-20.0.0.1.dist-info/RECORD +1056 -0
  1015. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/WHEEL +1 -1
  1016. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/zip-safe +1 -1
  1017. teradataml/analytics/mle/AdaBoost.py +0 -651
  1018. teradataml/analytics/mle/AdaBoostPredict.py +0 -564
  1019. teradataml/analytics/mle/Antiselect.py +0 -342
  1020. teradataml/analytics/mle/Arima.py +0 -641
  1021. teradataml/analytics/mle/ArimaPredict.py +0 -477
  1022. teradataml/analytics/mle/Attribution.py +0 -1070
  1023. teradataml/analytics/mle/Betweenness.py +0 -658
  1024. teradataml/analytics/mle/Burst.py +0 -711
  1025. teradataml/analytics/mle/CCM.py +0 -600
  1026. teradataml/analytics/mle/CCMPrepare.py +0 -324
  1027. teradataml/analytics/mle/CFilter.py +0 -460
  1028. teradataml/analytics/mle/ChangePointDetection.py +0 -572
  1029. teradataml/analytics/mle/ChangePointDetectionRT.py +0 -477
  1030. teradataml/analytics/mle/Closeness.py +0 -737
  1031. teradataml/analytics/mle/ConfusionMatrix.py +0 -420
  1032. teradataml/analytics/mle/Correlation.py +0 -477
  1033. teradataml/analytics/mle/Correlation2.py +0 -573
  1034. teradataml/analytics/mle/CoxHazardRatio.py +0 -679
  1035. teradataml/analytics/mle/CoxPH.py +0 -556
  1036. teradataml/analytics/mle/CoxSurvival.py +0 -478
  1037. teradataml/analytics/mle/CumulativeMovAvg.py +0 -363
  1038. teradataml/analytics/mle/DTW.py +0 -623
  1039. teradataml/analytics/mle/DWT.py +0 -564
  1040. teradataml/analytics/mle/DWT2D.py +0 -599
  1041. teradataml/analytics/mle/DecisionForest.py +0 -716
  1042. teradataml/analytics/mle/DecisionForestEvaluator.py +0 -363
  1043. teradataml/analytics/mle/DecisionForestPredict.py +0 -561
  1044. teradataml/analytics/mle/DecisionTree.py +0 -830
  1045. teradataml/analytics/mle/DecisionTreePredict.py +0 -528
  1046. teradataml/analytics/mle/ExponentialMovAvg.py +0 -418
  1047. teradataml/analytics/mle/FMeasure.py +0 -402
  1048. teradataml/analytics/mle/FPGrowth.py +0 -734
  1049. teradataml/analytics/mle/FrequentPaths.py +0 -695
  1050. teradataml/analytics/mle/GLM.py +0 -558
  1051. teradataml/analytics/mle/GLML1L2.py +0 -547
  1052. teradataml/analytics/mle/GLML1L2Predict.py +0 -519
  1053. teradataml/analytics/mle/GLMPredict.py +0 -529
  1054. teradataml/analytics/mle/HMMDecoder.py +0 -945
  1055. teradataml/analytics/mle/HMMEvaluator.py +0 -901
  1056. teradataml/analytics/mle/HMMSupervised.py +0 -521
  1057. teradataml/analytics/mle/HMMUnsupervised.py +0 -572
  1058. teradataml/analytics/mle/Histogram.py +0 -561
  1059. teradataml/analytics/mle/IDWT.py +0 -476
  1060. teradataml/analytics/mle/IDWT2D.py +0 -493
  1061. teradataml/analytics/mle/IdentityMatch.py +0 -763
  1062. teradataml/analytics/mle/Interpolator.py +0 -918
  1063. teradataml/analytics/mle/KMeans.py +0 -485
  1064. teradataml/analytics/mle/KNN.py +0 -627
  1065. teradataml/analytics/mle/KNNRecommender.py +0 -488
  1066. teradataml/analytics/mle/KNNRecommenderPredict.py +0 -581
  1067. teradataml/analytics/mle/LAR.py +0 -439
  1068. teradataml/analytics/mle/LARPredict.py +0 -478
  1069. teradataml/analytics/mle/LDA.py +0 -548
  1070. teradataml/analytics/mle/LDAInference.py +0 -492
  1071. teradataml/analytics/mle/LDATopicSummary.py +0 -464
  1072. teradataml/analytics/mle/LevenshteinDistance.py +0 -450
  1073. teradataml/analytics/mle/LinReg.py +0 -433
  1074. teradataml/analytics/mle/LinRegPredict.py +0 -438
  1075. teradataml/analytics/mle/MinHash.py +0 -544
  1076. teradataml/analytics/mle/Modularity.py +0 -587
  1077. teradataml/analytics/mle/NEREvaluator.py +0 -410
  1078. teradataml/analytics/mle/NERExtractor.py +0 -595
  1079. teradataml/analytics/mle/NERTrainer.py +0 -458
  1080. teradataml/analytics/mle/NGrams.py +0 -570
  1081. teradataml/analytics/mle/NPath.py +0 -634
  1082. teradataml/analytics/mle/NTree.py +0 -549
  1083. teradataml/analytics/mle/NaiveBayes.py +0 -462
  1084. teradataml/analytics/mle/NaiveBayesPredict.py +0 -513
  1085. teradataml/analytics/mle/NaiveBayesTextClassifier.py +0 -607
  1086. teradataml/analytics/mle/NaiveBayesTextClassifier2.py +0 -531
  1087. teradataml/analytics/mle/NaiveBayesTextClassifierPredict.py +0 -799
  1088. teradataml/analytics/mle/NamedEntityFinder.py +0 -529
  1089. teradataml/analytics/mle/NamedEntityFinderEvaluator.py +0 -414
  1090. teradataml/analytics/mle/NamedEntityFinderTrainer.py +0 -396
  1091. teradataml/analytics/mle/POSTagger.py +0 -417
  1092. teradataml/analytics/mle/Pack.py +0 -411
  1093. teradataml/analytics/mle/PageRank.py +0 -535
  1094. teradataml/analytics/mle/PathAnalyzer.py +0 -426
  1095. teradataml/analytics/mle/PathGenerator.py +0 -367
  1096. teradataml/analytics/mle/PathStart.py +0 -464
  1097. teradataml/analytics/mle/PathSummarizer.py +0 -470
  1098. teradataml/analytics/mle/Pivot.py +0 -471
  1099. teradataml/analytics/mle/ROC.py +0 -425
  1100. teradataml/analytics/mle/RandomSample.py +0 -637
  1101. teradataml/analytics/mle/RandomWalkSample.py +0 -490
  1102. teradataml/analytics/mle/SAX.py +0 -779
  1103. teradataml/analytics/mle/SVMDense.py +0 -677
  1104. teradataml/analytics/mle/SVMDensePredict.py +0 -536
  1105. teradataml/analytics/mle/SVMDenseSummary.py +0 -437
  1106. teradataml/analytics/mle/SVMSparse.py +0 -557
  1107. teradataml/analytics/mle/SVMSparsePredict.py +0 -553
  1108. teradataml/analytics/mle/SVMSparseSummary.py +0 -435
  1109. teradataml/analytics/mle/Sampling.py +0 -549
  1110. teradataml/analytics/mle/Scale.py +0 -565
  1111. teradataml/analytics/mle/ScaleByPartition.py +0 -496
  1112. teradataml/analytics/mle/ScaleMap.py +0 -378
  1113. teradataml/analytics/mle/ScaleSummary.py +0 -320
  1114. teradataml/analytics/mle/SentenceExtractor.py +0 -363
  1115. teradataml/analytics/mle/SentimentEvaluator.py +0 -432
  1116. teradataml/analytics/mle/SentimentExtractor.py +0 -578
  1117. teradataml/analytics/mle/SentimentTrainer.py +0 -405
  1118. teradataml/analytics/mle/SeriesSplitter.py +0 -641
  1119. teradataml/analytics/mle/Sessionize.py +0 -475
  1120. teradataml/analytics/mle/SimpleMovAvg.py +0 -397
  1121. teradataml/analytics/mle/StringSimilarity.py +0 -425
  1122. teradataml/analytics/mle/TF.py +0 -389
  1123. teradataml/analytics/mle/TFIDF.py +0 -504
  1124. teradataml/analytics/mle/TextChunker.py +0 -414
  1125. teradataml/analytics/mle/TextClassifier.py +0 -399
  1126. teradataml/analytics/mle/TextClassifierEvaluator.py +0 -413
  1127. teradataml/analytics/mle/TextClassifierTrainer.py +0 -565
  1128. teradataml/analytics/mle/TextMorph.py +0 -494
  1129. teradataml/analytics/mle/TextParser.py +0 -623
  1130. teradataml/analytics/mle/TextTagger.py +0 -530
  1131. teradataml/analytics/mle/TextTokenizer.py +0 -502
  1132. teradataml/analytics/mle/UnivariateStatistics.py +0 -488
  1133. teradataml/analytics/mle/Unpack.py +0 -526
  1134. teradataml/analytics/mle/Unpivot.py +0 -438
  1135. teradataml/analytics/mle/VarMax.py +0 -776
  1136. teradataml/analytics/mle/VectorDistance.py +0 -762
  1137. teradataml/analytics/mle/WeightedMovAvg.py +0 -400
  1138. teradataml/analytics/mle/XGBoost.py +0 -842
  1139. teradataml/analytics/mle/XGBoostPredict.py +0 -627
  1140. teradataml/analytics/mle/__init__.py +0 -123
  1141. teradataml/analytics/mle/json/adaboost_mle.json +0 -135
  1142. teradataml/analytics/mle/json/adaboostpredict_mle.json +0 -85
  1143. teradataml/analytics/mle/json/antiselect_mle.json +0 -34
  1144. teradataml/analytics/mle/json/antiselect_mle_mle.json +0 -34
  1145. teradataml/analytics/mle/json/arima_mle.json +0 -172
  1146. teradataml/analytics/mle/json/arimapredict_mle.json +0 -52
  1147. teradataml/analytics/mle/json/attribution_mle_mle.json +0 -143
  1148. teradataml/analytics/mle/json/betweenness_mle.json +0 -97
  1149. teradataml/analytics/mle/json/burst_mle.json +0 -140
  1150. teradataml/analytics/mle/json/ccm_mle.json +0 -124
  1151. teradataml/analytics/mle/json/ccmprepare_mle.json +0 -14
  1152. teradataml/analytics/mle/json/cfilter_mle.json +0 -93
  1153. teradataml/analytics/mle/json/changepointdetection_mle.json +0 -92
  1154. teradataml/analytics/mle/json/changepointdetectionrt_mle.json +0 -78
  1155. teradataml/analytics/mle/json/closeness_mle.json +0 -104
  1156. teradataml/analytics/mle/json/confusionmatrix_mle.json +0 -79
  1157. teradataml/analytics/mle/json/correlation_mle.json +0 -86
  1158. teradataml/analytics/mle/json/correlationreduce_mle.json +0 -49
  1159. teradataml/analytics/mle/json/coxhazardratio_mle.json +0 -89
  1160. teradataml/analytics/mle/json/coxph_mle.json +0 -98
  1161. teradataml/analytics/mle/json/coxsurvival_mle.json +0 -79
  1162. teradataml/analytics/mle/json/cumulativemovavg_mle.json +0 -34
  1163. teradataml/analytics/mle/json/decisionforest_mle.json +0 -167
  1164. teradataml/analytics/mle/json/decisionforestevaluator_mle.json +0 -33
  1165. teradataml/analytics/mle/json/decisionforestpredict_mle_mle.json +0 -74
  1166. teradataml/analytics/mle/json/decisiontree_mle.json +0 -194
  1167. teradataml/analytics/mle/json/decisiontreepredict_mle_mle.json +0 -86
  1168. teradataml/analytics/mle/json/dtw_mle.json +0 -97
  1169. teradataml/analytics/mle/json/dwt2d_mle.json +0 -116
  1170. teradataml/analytics/mle/json/dwt_mle.json +0 -101
  1171. teradataml/analytics/mle/json/exponentialmovavg_mle.json +0 -55
  1172. teradataml/analytics/mle/json/fmeasure_mle.json +0 -58
  1173. teradataml/analytics/mle/json/fpgrowth_mle.json +0 -159
  1174. teradataml/analytics/mle/json/frequentpaths_mle.json +0 -129
  1175. teradataml/analytics/mle/json/glm_mle.json +0 -111
  1176. teradataml/analytics/mle/json/glml1l2_mle.json +0 -106
  1177. teradataml/analytics/mle/json/glml1l2predict_mle.json +0 -57
  1178. teradataml/analytics/mle/json/glmpredict_mle_mle.json +0 -74
  1179. teradataml/analytics/mle/json/histogram_mle.json +0 -100
  1180. teradataml/analytics/mle/json/hmmdecoder_mle.json +0 -192
  1181. teradataml/analytics/mle/json/hmmevaluator_mle.json +0 -206
  1182. teradataml/analytics/mle/json/hmmsupervised_mle.json +0 -91
  1183. teradataml/analytics/mle/json/hmmunsupervised_mle.json +0 -114
  1184. teradataml/analytics/mle/json/identitymatch_mle.json +0 -88
  1185. teradataml/analytics/mle/json/idwt2d_mle.json +0 -73
  1186. teradataml/analytics/mle/json/idwt_mle.json +0 -66
  1187. teradataml/analytics/mle/json/interpolator_mle.json +0 -151
  1188. teradataml/analytics/mle/json/kmeans_mle.json +0 -97
  1189. teradataml/analytics/mle/json/knn_mle.json +0 -141
  1190. teradataml/analytics/mle/json/knnrecommender_mle.json +0 -111
  1191. teradataml/analytics/mle/json/knnrecommenderpredict_mle.json +0 -75
  1192. teradataml/analytics/mle/json/lar_mle.json +0 -78
  1193. teradataml/analytics/mle/json/larpredict_mle.json +0 -69
  1194. teradataml/analytics/mle/json/lda_mle.json +0 -130
  1195. teradataml/analytics/mle/json/ldainference_mle.json +0 -78
  1196. teradataml/analytics/mle/json/ldatopicsummary_mle.json +0 -64
  1197. teradataml/analytics/mle/json/levenshteindistance_mle.json +0 -92
  1198. teradataml/analytics/mle/json/linreg_mle.json +0 -42
  1199. teradataml/analytics/mle/json/linregpredict_mle.json +0 -56
  1200. teradataml/analytics/mle/json/minhash_mle.json +0 -113
  1201. teradataml/analytics/mle/json/modularity_mle.json +0 -91
  1202. teradataml/analytics/mle/json/naivebayespredict_mle_mle.json +0 -85
  1203. teradataml/analytics/mle/json/naivebayesreduce_mle.json +0 -52
  1204. teradataml/analytics/mle/json/naivebayestextclassifierpredict_mle_mle.json +0 -147
  1205. teradataml/analytics/mle/json/naivebayestextclassifiertrainer2_mle.json +0 -108
  1206. teradataml/analytics/mle/json/naivebayestextclassifiertrainer_mle.json +0 -102
  1207. teradataml/analytics/mle/json/namedentityfinder_mle.json +0 -84
  1208. teradataml/analytics/mle/json/namedentityfinderevaluatorreduce_mle.json +0 -43
  1209. teradataml/analytics/mle/json/namedentityfindertrainer_mle.json +0 -64
  1210. teradataml/analytics/mle/json/nerevaluator_mle.json +0 -54
  1211. teradataml/analytics/mle/json/nerextractor_mle.json +0 -87
  1212. teradataml/analytics/mle/json/nertrainer_mle.json +0 -89
  1213. teradataml/analytics/mle/json/ngrams_mle.json +0 -137
  1214. teradataml/analytics/mle/json/ngramsplitter_mle_mle.json +0 -137
  1215. teradataml/analytics/mle/json/npath@coprocessor_mle.json +0 -73
  1216. teradataml/analytics/mle/json/ntree@coprocessor_mle.json +0 -123
  1217. teradataml/analytics/mle/json/pack_mle.json +0 -58
  1218. teradataml/analytics/mle/json/pack_mle_mle.json +0 -58
  1219. teradataml/analytics/mle/json/pagerank_mle.json +0 -81
  1220. teradataml/analytics/mle/json/pathanalyzer_mle.json +0 -63
  1221. teradataml/analytics/mle/json/pathgenerator_mle.json +0 -40
  1222. teradataml/analytics/mle/json/pathstart_mle.json +0 -62
  1223. teradataml/analytics/mle/json/pathsummarizer_mle.json +0 -72
  1224. teradataml/analytics/mle/json/pivoting_mle.json +0 -71
  1225. teradataml/analytics/mle/json/postagger_mle.json +0 -51
  1226. teradataml/analytics/mle/json/randomsample_mle.json +0 -131
  1227. teradataml/analytics/mle/json/randomwalksample_mle.json +0 -85
  1228. teradataml/analytics/mle/json/roc_mle.json +0 -73
  1229. teradataml/analytics/mle/json/sampling_mle.json +0 -75
  1230. teradataml/analytics/mle/json/sax_mle.json +0 -154
  1231. teradataml/analytics/mle/json/scale_mle.json +0 -93
  1232. teradataml/analytics/mle/json/scalebypartition_mle.json +0 -89
  1233. teradataml/analytics/mle/json/scalemap_mle.json +0 -44
  1234. teradataml/analytics/mle/json/scalesummary_mle.json +0 -14
  1235. teradataml/analytics/mle/json/sentenceextractor_mle.json +0 -41
  1236. teradataml/analytics/mle/json/sentimentevaluator_mle.json +0 -43
  1237. teradataml/analytics/mle/json/sentimentextractor_mle.json +0 -100
  1238. teradataml/analytics/mle/json/sentimenttrainer_mle.json +0 -68
  1239. teradataml/analytics/mle/json/seriessplitter_mle.json +0 -133
  1240. teradataml/analytics/mle/json/sessionize_mle_mle.json +0 -62
  1241. teradataml/analytics/mle/json/simplemovavg_mle.json +0 -48
  1242. teradataml/analytics/mle/json/stringsimilarity_mle.json +0 -50
  1243. teradataml/analytics/mle/json/stringsimilarity_mle_mle.json +0 -50
  1244. teradataml/analytics/mle/json/svmdense_mle.json +0 -165
  1245. teradataml/analytics/mle/json/svmdensepredict_mle.json +0 -95
  1246. teradataml/analytics/mle/json/svmdensesummary_mle.json +0 -58
  1247. teradataml/analytics/mle/json/svmsparse_mle.json +0 -148
  1248. teradataml/analytics/mle/json/svmsparsepredict_mle_mle.json +0 -103
  1249. teradataml/analytics/mle/json/svmsparsesummary_mle.json +0 -57
  1250. teradataml/analytics/mle/json/textchunker_mle.json +0 -40
  1251. teradataml/analytics/mle/json/textclassifier_mle.json +0 -51
  1252. teradataml/analytics/mle/json/textclassifierevaluator_mle.json +0 -43
  1253. teradataml/analytics/mle/json/textclassifiertrainer_mle.json +0 -103
  1254. teradataml/analytics/mle/json/textmorph_mle.json +0 -63
  1255. teradataml/analytics/mle/json/textparser_mle.json +0 -166
  1256. teradataml/analytics/mle/json/texttagger_mle.json +0 -81
  1257. teradataml/analytics/mle/json/texttokenizer_mle.json +0 -91
  1258. teradataml/analytics/mle/json/tf_mle.json +0 -33
  1259. teradataml/analytics/mle/json/tfidf_mle.json +0 -34
  1260. teradataml/analytics/mle/json/univariatestatistics_mle.json +0 -81
  1261. teradataml/analytics/mle/json/unpack_mle.json +0 -91
  1262. teradataml/analytics/mle/json/unpack_mle_mle.json +0 -91
  1263. teradataml/analytics/mle/json/unpivoting_mle.json +0 -63
  1264. teradataml/analytics/mle/json/varmax_mle.json +0 -176
  1265. teradataml/analytics/mle/json/vectordistance_mle.json +0 -179
  1266. teradataml/analytics/mle/json/weightedmovavg_mle.json +0 -48
  1267. teradataml/analytics/mle/json/xgboost_mle.json +0 -178
  1268. teradataml/analytics/mle/json/xgboostpredict_mle.json +0 -104
  1269. teradataml/analytics/sqle/Antiselect.py +0 -321
  1270. teradataml/analytics/sqle/Attribution.py +0 -603
  1271. teradataml/analytics/sqle/DecisionForestPredict.py +0 -408
  1272. teradataml/analytics/sqle/GLMPredict.py +0 -430
  1273. teradataml/analytics/sqle/MovingAverage.py +0 -543
  1274. teradataml/analytics/sqle/NGramSplitter.py +0 -548
  1275. teradataml/analytics/sqle/NPath.py +0 -632
  1276. teradataml/analytics/sqle/NaiveBayesTextClassifierPredict.py +0 -515
  1277. teradataml/analytics/sqle/Pack.py +0 -388
  1278. teradataml/analytics/sqle/SVMSparsePredict.py +0 -464
  1279. teradataml/analytics/sqle/Sessionize.py +0 -390
  1280. teradataml/analytics/sqle/StringSimilarity.py +0 -400
  1281. teradataml/analytics/sqle/Unpack.py +0 -503
  1282. teradataml/analytics/sqle/json/antiselect_sqle.json +0 -21
  1283. teradataml/analytics/sqle/json/attribution_sqle.json +0 -92
  1284. teradataml/analytics/sqle/json/decisionforestpredict_sqle.json +0 -48
  1285. teradataml/analytics/sqle/json/glmpredict_sqle.json +0 -48
  1286. teradataml/analytics/sqle/json/h2opredict_sqle.json +0 -63
  1287. teradataml/analytics/sqle/json/movingaverage_sqle.json +0 -58
  1288. teradataml/analytics/sqle/json/naivebayestextclassifierpredict_sqle.json +0 -76
  1289. teradataml/analytics/sqle/json/ngramsplitter_sqle.json +0 -126
  1290. teradataml/analytics/sqle/json/npath_sqle.json +0 -67
  1291. teradataml/analytics/sqle/json/pack_sqle.json +0 -47
  1292. teradataml/analytics/sqle/json/pmmlpredict_sqle.json +0 -55
  1293. teradataml/analytics/sqle/json/sessionize_sqle.json +0 -43
  1294. teradataml/analytics/sqle/json/stringsimilarity_sqle.json +0 -39
  1295. teradataml/analytics/sqle/json/svmsparsepredict_sqle.json +0 -74
  1296. teradataml/analytics/sqle/json/unpack_sqle.json +0 -80
  1297. teradataml/catalog/model_cataloging.py +0 -980
  1298. teradataml/config/mlengine_alias_definitions_v1.0 +0 -118
  1299. teradataml/config/mlengine_alias_definitions_v1.1 +0 -127
  1300. teradataml/config/mlengine_alias_definitions_v1.3 +0 -129
  1301. teradataml/table_operators/sandbox_container_util.py +0 -643
  1302. teradataml-17.20.0.7.dist-info/RECORD +0 -1280
  1303. {teradataml-17.20.0.7.dist-info → teradataml-20.0.0.1.dist-info}/top_level.txt +0 -0
teradataml/plot/axis.py CHANGED
@@ -1,1388 +1,1388 @@
1
- # ##################################################################
2
- #
3
- # Copyright 2023 Teradata. All rights reserved.
4
- # TERADATA CONFIDENTIAL AND TRADE SECRET
5
- #
6
- # Primary Owner: Pradeep Garre (pradeep.garre@teradata.com)
7
- # Secondary Owner:
8
- #
9
- # This file implements Axis, which is used for plotting. Axis holds all
10
- # the properties related to axis such as grid color, x-axis label, y-axis
11
- # label etc.
12
- #
13
- # ##################################################################
14
-
15
- from teradataml.common.exceptions import TeradataMlException
16
- from teradataml.common.messages import Messages
17
- from teradataml.common.messagecodes import MessageCodes
18
- from teradataml.common.utils import UtilFuncs
19
- from teradataml.dataframe.sql import ColumnExpression
20
- from teradataml.plot.constants import MapType
21
- from teradataml.utils.validators import _Validators
22
-
23
- class Axis:
24
- def __init__(self, **kwargs):
25
- """
26
- Constructor for Axis.
27
-
28
- PARAMETERS:
29
- cmap:
30
- Optional Argument.
31
- Specifies the name of the colormap to be used for plotting.
32
- Notes:
33
- * Significant only when corresponding type of plots is mesh or geometry.
34
- * Ignored for other type of plots.
35
- Permitted Values:
36
- * All the colormaps mentioned in below URL's are supported.
37
- * https://matplotlib.org/stable/tutorials/colors/colormaps.html
38
- * https://matplotlib.org/cmocean/
39
- Types: str
40
-
41
- color:
42
- Optional Argument.
43
- Specifies the color for the plot.
44
- Note:
45
- Hexadecimal color codes are not supported.
46
- Permitted Values:
47
- * blue
48
- * orange
49
- * green
50
- * red
51
- * purple
52
- * brown
53
- * pink
54
- * gray
55
- * olive
56
- * cyan
57
- * Apart from above mentioned colors, the colors mentioned in
58
- https://xkcd.com/color/rgb are also supported.
59
- Default Value: blue
60
- Types: str OR list of str
61
-
62
- grid_color:
63
- Optional Argument.
64
- Specifies the color of the grid. By default, grid is generated with
65
- Gray69(#b0b0b0) color.
66
- Note:
67
- Hexadecimal color codes are not supported.
68
- Permitted Values:
69
- * 'blue'
70
- * 'orange'
71
- * 'green'
72
- * 'red'
73
- * 'purple'
74
- * 'brown'
75
- * 'pink'
76
- * 'gray'
77
- * 'olive'
78
- * 'cyan'
79
- * Apart from above mentioned colors, the colors mentioned in
80
- https://xkcd.com/color/rgb are also supported.
81
- Default Value: 'gray'
82
- Types: str
83
-
84
- grid_format:
85
- Optional Argument.
86
- Specifies the format for the grid.
87
- Types: str
88
-
89
- grid_linestyle:
90
- Optional Argument.
91
- Specifies the line style of the grid.
92
- Default Value: -
93
- Permitted Values:
94
- * -
95
- * --
96
- * -.
97
- Types: str
98
-
99
- grid_linewidth:
100
- Optional Argument.
101
- Specifies the line width of the grid.
102
- Note:
103
- Valid range for "grid_linewidth" is: 0.5 <= grid_linewidth <= 10.
104
- Default Value: 0.8
105
- Types: int OR float
106
-
107
- legend:
108
- Optional Argument.
109
- Specifies the legend(s) for the Plot.
110
- Types: str OR list of str
111
-
112
- legend_style:
113
- Optional Argument.
114
- Specifies the location for legend to display on Plot image. By default,
115
- legend is displayed at upper right corner.
116
- * 'upper right'
117
- * 'upper left'
118
- * 'lower right'
119
- * 'lower left'
120
- * 'right'
121
- * 'center left'
122
- * 'center right'
123
- * 'lower center'
124
- * 'upper center'
125
- * 'center'
126
- Default Value: 'upper right'
127
- Types: str
128
-
129
- linestyle:
130
- Optional Argument.
131
- Specifies the line style for the plot.
132
- Permitted Values:
133
- * -
134
- * --
135
- * -.
136
- * :
137
- Default Value: -
138
- Types: str OR list of str
139
-
140
- linewidth:
141
- Optional Argument.
142
- Specifies the line width for the plot.
143
- Note:
144
- Valid range for "linewidth" is: 0.5 <= linewidth <= 10.
145
- Default Value: 0.8
146
- Types: int OR float OR list of int OR list of float
147
-
148
- marker:
149
- Optional Argument.
150
- Specifies the type of the marker to be used.
151
- Permitted Values:
152
- All the markers mentioned in https://matplotlib.org/stable/api/markers_api.html
153
- are supported.
154
- Types: str OR list of str
155
-
156
- markersize:
157
- Optional Argument.
158
- Specifies the size of the marker.
159
- Note:
160
- Valid range for "markersize" is: 1 <= markersize <= 20.
161
- Default Value: 6
162
- Types: int OR float OR list of int OR list of float
163
-
164
- position:
165
- Optional Argument.
166
- Specifies the position of the axis in the Figure. 1st element
167
- represents the row and second element represents column.
168
- Default Value: (1, 1)
169
- Types: tuple
170
-
171
- reverse_xaxis:
172
- Optional Argument.
173
- Specifies whether to reverse tick values on x-axis or not.
174
- Default Value: False
175
- Types: bool
176
-
177
- reverse_yaxis:
178
- Optional Argument.
179
- Specifies whether to reverse tick values on y-axis or not.
180
- Default Value: False
181
- Types: bool
182
-
183
- span:
184
- Optional Argument.
185
- Specifies the span of the axis in the Figure. 1st element
186
- represents the row and second element represents column.
187
- For Example,
188
- Span of (2, 1) specifies the Axis occupies 2 rows and 1 column
189
- in Figure.
190
- Default Value: (1, 1)
191
- Types: tuple
192
-
193
- series_identifier:
194
- Optional Argument.
195
- Specifies the teradataml GeoDataFrame Column which represents the
196
- identifier for the data. As many plots as distinct "series_identifier"
197
- are generated in a single Axis.
198
- For example:
199
- consider the below data in teradataml GeoDataFrame.
200
- ID x y
201
- 0 1 1 1
202
- 1 1 2 2
203
- 2 2 10 10
204
- 3 2 20 20
205
- If "series_identifier" is not specified, simple plot is
206
- generated where every 'y' is plotted against 'x' in a
207
- single plot. However, specifying "series_identifier" as 'ID'
208
- generates two plots in a single axis. One plot is for ID 1
209
- and another plot is for ID 2.
210
- Types: teradataml GeoDataFrame Column.
211
-
212
- title:
213
- Optional Argument.
214
- Specifies the title for the Axis.
215
- Types: str
216
-
217
- xlabel:
218
- Optional Argument.
219
- Specifies the label for x-axis.
220
- Notes:
221
- * When set to empty string, label is not displayed for x-axis.
222
- * When set to None, name of the x-axis column is displayed as
223
- label.
224
- Types: str
225
-
226
- xlim:
227
- Optional Argument.
228
- Specifies the range for xtick values.
229
- Types: tuple
230
-
231
- xtick_format:
232
- Optional Argument.
233
- Specifies how to format tick values for x-axis.
234
- Types: str
235
-
236
- ylabel:
237
- Optional Argument.
238
- Specifies the label for y-axis.
239
- Notes:
240
- * When set to empty string, label is not displayed for y-axis.
241
- * When set to None, name of the y-axis column(s) is displayed as
242
- label.
243
- Types: str
244
-
245
- ylim:
246
- Optional Argument.
247
- Specifies the range for ytick values.
248
- Types: tuple
249
-
250
- ytick_format:
251
- Optional Argument.
252
- Specifies how to format tick values for y-axis.
253
- Types: str
254
-
255
- vmin:
256
- Optional Argument.
257
- Specifies the lower range of the color map. By default, the range
258
- is derived from data and color codes are assigned accordingly.
259
- Note:
260
- "vmin" significant only for Mesh and Geometry Plot.
261
- Types: int OR float
262
-
263
- vmax:
264
- Optional Argument.
265
- Specifies the upper range of the color map. By default, the range is
266
- derived from data and color codes are assigned accordingly.
267
- Note:
268
- "vmax" significant only for Mesh and Geometry Plot.
269
- For example:
270
- Assuming user wants to use colormap 'matter' and derive the colors for
271
- values which are in between 1 and 100.
272
- Note:
273
- Colormap 'matter' starts with Pale Yellow and ends with Violet.
274
- * If "colormap_range" is not specified, then range is derived from
275
- existing values. Thus, colors are represented as below in the whole range:
276
- * 1 as Pale Yellow.
277
- * 100 as Violet.
278
- * If "colormap_range" is specified as -100 and 100, the value 1 is at middle of
279
- the specified range. Thus, colors are represented as below in the whole range:
280
- * -100 as Pale Yellow.
281
- * 1 as Orange.
282
- * 100 as Violet.
283
- Types: int OR float
284
-
285
- EXAMPLES:
286
- # Example 1: Create an Axis with marker as 'Pentagon'.
287
- >>> from teradataml import Axis
288
- >>> ax = Axis(marker="p")
289
-
290
- # Example 2: Create an Axis which does not have x-tick values
291
- # and y-tick values but it should have grid.
292
- # Note that the grid lines should be in the format of '-.'
293
- >>> from teradataml import Axis
294
- >>> ax = Axis(xtick_format="", ytick_format="", grid_linestyle="-.")
295
-
296
- # Example 3: Create an Axis which should plot only for the values
297
- # between -10 to 100 on x-axis.
298
- >>> from teradataml import Axis
299
- >>> ax = Axis(xlim=(-10, 100))
300
-
301
- # Example 4: Create an Axis which should display legend at upper left
302
- # corner and it should disable both x and y axis labels.
303
- >>> from teradataml import Axis
304
- >>> ax = Axis(legend_style="upper left", xlabel="", ylabel="")
305
-
306
- # Example 5: Create an Axis to format the y-axis tick values to
307
- # display up to two decimal points. Also, use the color
308
- # 'dark green' for plotting.
309
- # Note: Consider y-axis data has 5 digit floating numbers.
310
- >>> from teradataml import Axis
311
- >>> ax = Axis(ytick_format="99999.99", color='dark green')
312
-
313
- RAISES:
314
- TeradataMlException
315
- """
316
- self.__params = {**kwargs}
317
-
318
- self.__x_axis_data = []
319
- self.__y_axis_data = []
320
- self.__scale_data = []
321
-
322
- arg_info_matrix = []
323
-
324
- # Retrieve arg value from corresponding property.
325
- arg_info_matrix.append((["ignore_nulls", self.ignore_nulls, True, bool]))
326
-
327
- arg_info_matrix.append((["cmap", self.cmap, True, (str), True]))
328
-
329
- arg_info_matrix.append((["grid_color", self.grid_color, True, (str), True]))
330
-
331
- arg_info_matrix.append((["grid_format", self.grid_format, True, (str), True]))
332
-
333
- arg_info_matrix.append((["grid_linestyle", self.grid_linestyle, True, (str),
334
- True, ['-', '--', '-.']]))
335
-
336
- arg_info_matrix.append((["grid_linewidth", self.grid_linewidth, True, (int, float)]))
337
-
338
- arg_info_matrix.append((["legend", self.legend, True, (str, list), True]))
339
-
340
- permitted_legend_style = ['upper right', 'upper left', 'lower right',
341
- 'lower left', 'right', 'center left',
342
- 'center right', 'lower center',
343
- 'upper center', 'center']
344
- arg_info_matrix.append((["legend_style", self.legend_style, True,
345
- (str), True, permitted_legend_style]))
346
-
347
- arg_info_matrix.append((["linestyle", self.linestyle, True, (str, list),
348
- True, ['-', '--', '-.', ':']]))
349
-
350
- arg_info_matrix.append((["linewidth", self.linewidth, True, (int, float, list), True]))
351
-
352
- arg_info_matrix.append((["marker", self.marker, True, (str, list), True]))
353
-
354
- arg_info_matrix.append((["markersize", self.markersize, True, (int, float, list)]))
355
-
356
- arg_info_matrix.append((["position", self.position, True, (tuple)]))
357
-
358
- arg_info_matrix.append((["span", self.span, True, (tuple)]))
359
-
360
- arg_info_matrix.append((["reverse_xaxis", self.reverse_xaxis, True, (bool)]))
361
-
362
- arg_info_matrix.append((["reverse_yaxis", self.reverse_yaxis, True, (bool)]))
363
-
364
- series_identifier = kwargs.get("series_identifier")
365
- arg_info_matrix.append((["series_identifier", series_identifier, True,
366
- (ColumnExpression)]))
367
-
368
- arg_info_matrix.append((["color", self.color, True, (str, list), True]))
369
-
370
- arg_info_matrix.append((["title", self.title, True, (str), True]))
371
-
372
- arg_info_matrix.append((["xlabel", self.xlabel, True, (str), False]))
373
-
374
- arg_info_matrix.append((["ylabel", self.ylabel, True, (str), False]))
375
-
376
- arg_info_matrix.append((["xlim", self.xlim, True, (tuple)]))
377
-
378
- arg_info_matrix.append((["ylim", self.ylim, True, (tuple)]))
379
-
380
- arg_info_matrix.append((["xtick_format", self.xtick_format, True, (str)]))
381
-
382
- arg_info_matrix.append((["ytick_format", self.ytick_format, True, (str)]))
383
-
384
- arg_info_matrix.append((["vmin", self.vmin, True, (int, float)]))
385
- arg_info_matrix.append((["vmax", self.vmax, True, (int, float)]))
386
-
387
- # 'vmin' and 'vmax' is applicable only for Mesh and Geometry plot.
388
- if self.kind.lower() not in ['geometry', 'mesh']:
389
- if self.vmin is not None:
390
- _Validators._validate_dependent_argument("vmin", self.vmin,
391
- "kind", None, "'geometry' or 'mesh'")
392
- if self.vmax is not None:
393
- _Validators._validate_dependent_argument("vmax", self.vmax,
394
- "kind", None, "'geometry' or 'mesh'")
395
-
396
- # Argument validations.
397
- # Skip empty check for 'xlabel', 'ylabel'.
398
- _Validators._validate_function_arguments(
399
- arg_info_matrix,
400
- skip_empty_check={"xlabel": [''], "ylabel": ['']}
401
- )
402
-
403
- # Argument range check.
404
- _Validators._validate_argument_range(self.grid_linewidth, "grid_linewidth",
405
- 0.5, lbound_inclusive=True,
406
- ubound=10, ubound_inclusive=True)
407
- # Convert linewidth to list
408
- linewidth = UtilFuncs._as_list(self.linewidth)
409
- [_Validators._validate_argument_range(lw, "linewidth",
410
- 0.5, lbound_inclusive=True,
411
- ubound=10, ubound_inclusive=True)
412
- for lw in linewidth]
413
-
414
- # Convert markersize to list
415
- markersize = UtilFuncs._as_list(self.markersize)
416
- [_Validators._validate_argument_range(ms, "markersize",
417
- 1, lbound_inclusive=True,
418
- ubound=20, ubound_inclusive=True)
419
- for ms in markersize]
420
-
421
- self.__series_options = kwargs.get("series_options") # Specifies SQL element - ID_SEQUENCE
422
-
423
- # Get the series identifier. If it is a column expression, get the column name from it.
424
- self.__series_identifier = kwargs.get("series_identifier")
425
- if not isinstance(self.__series_identifier, str) and self.__series_identifier is not None:
426
- self.__series_identifier = self.__series_identifier.name
427
-
428
- def __get_param(self, param):
429
- """
430
- DESCRIPTION:
431
- Internal function to get the parameter from private variable __params.
432
-
433
- PARAMETERS:
434
- param:
435
- Required Argument.
436
- Specifies the name of the parameter.
437
- Types: str
438
-
439
- RETURNS:
440
- str OR int OR float OR list
441
-
442
- RAISES:
443
- None.
444
-
445
- EXAMPLES:
446
- self.__get_param("xlim")
447
- """
448
- return self.__params.get(param)
449
-
450
- def __set_param(self, param_name, param_value):
451
- """
452
- DESCRIPTION:
453
- Internal function to set the parameter.
454
-
455
- PARAMETERS:
456
- param_name:
457
- Required Argument.
458
- Specifies the name of the parameter.
459
- Types: str
460
-
461
- param_value:
462
- Required Argument.
463
- Specifies the value for the parameter mentioned in "param_name".
464
- Types: str OR int OR float OR list
465
-
466
- RETURNS:
467
- bool
468
-
469
- RAISES:
470
- None.
471
-
472
- EXAMPLES:
473
- self.__set_param("xlim", (1, 100))
474
- """
475
- self.__params[param_name] = param_value
476
- return True
477
-
478
- @property
479
- def ignore_nulls(self):
480
- """ Getter for argument "ignore_nulls". """
481
- return self.__get_param("ignore_nulls")
482
-
483
- @ignore_nulls.setter
484
- def ignore_nulls(self, value):
485
- """ Setter for argument "ignore_nulls". """
486
- return self.__set_param("ignore_nulls", value)
487
-
488
- @property
489
- def cmap(self):
490
- """ Getter for argument "cmap". """
491
- return self.__get_param("cmap")
492
-
493
- @cmap.setter
494
- def cmap(self, value):
495
- """ Setter for argument "cmap". """
496
- return self.__set_param("cmap", value)
497
-
498
- @property
499
- def vmin(self):
500
- """ Getter for argument "vmin". """
501
- return self.__get_param("vmin")
502
-
503
- @vmin.setter
504
- def vmin(self, value):
505
- """ Setter for argument "vmin". """
506
- return self.__set_param("vmin", value)
507
-
508
- @property
509
- def vmax(self):
510
- """ Getter for argument "vmax". """
511
- return self.__get_param("vmax")
512
-
513
- @vmax.setter
514
- def vmax(self, value):
515
- """ Setter for argument "vmax". """
516
- return self.__set_param("vmax", value)
517
-
518
- @property
519
- def grid_color(self):
520
- """ Getter for argument "grid_color". """
521
- return self.__get_param("grid_color")
522
-
523
- @grid_color.setter
524
- def grid_color(self, value):
525
- """ Setter for argument "grid_color". """
526
- return self.__set_param("grid_color", value)
527
-
528
- @property
529
- def grid_format(self):
530
- """ Getter for argument "grid_format". """
531
- return self.__get_param("grid_format")
532
-
533
- @grid_format.setter
534
- def grid_format(self, value):
535
- """ Setter for argument "grid_format". """
536
- return self.__set_param("grid_format", value)
537
-
538
- @property
539
- def grid_linestyle(self):
540
- """ Getter for argument "grid_linestyle". """
541
- return self.__get_param("grid_linestyle")
542
-
543
- @grid_linestyle.setter
544
- def grid_linestyle(self, value):
545
- """ Setter for argument "grid_linestyle". """
546
- return self.__set_param("grid_linestyle", value)
547
-
548
- @property
549
- def grid_linewidth(self):
550
- """ Getter for argument "grid_linewidth". """
551
- return self.__get_param("grid_linewidth")
552
-
553
- @grid_linewidth.setter
554
- def grid_linewidth(self, value):
555
- """ Setter for argument "grid_linewidth". """
556
- return self.__set_param("grid_linewidth", value)
557
-
558
- @property
559
- def legend(self):
560
- """ Getter for argument "legend". """
561
- return self.__get_param("legend")
562
-
563
- @legend.setter
564
- def legend(self, value):
565
- """ Setter for argument "legend". """
566
- return self.__set_param("legend", value)
567
-
568
- @property
569
- def legend_style(self):
570
- """ Getter for argument "legend_style". """
571
- return self.__get_param("legend_style")
572
-
573
- @legend_style.setter
574
- def legend_style(self, value):
575
- """ Setter for argument "legend_style". """
576
- return self.__set_param("legend_style", value)
577
-
578
- @property
579
- def linestyle(self):
580
- """ Getter for argument "linestyle". """
581
- return self.__get_param("linestyle")
582
-
583
- @linestyle.setter
584
- def linestyle(self, value):
585
- """ Setter for argument "linestyle". """
586
- return self.__set_param("linestyle", value)
587
-
588
- @property
589
- def linewidth(self):
590
- """ Getter for argument "linewidth". """
591
- return self.__get_param("linewidth")
592
-
593
- @linewidth.setter
594
- def linewidth(self, value):
595
- """ Setter for argument "linewidth". """
596
- return self.__set_param("linewidth", value)
597
-
598
- @property
599
- def marker(self):
600
- """ Getter for argument "marker". """
601
- return self.__get_param("marker")
602
-
603
- @marker.setter
604
- def marker(self, value):
605
- """ Setter for argument "marker". """
606
- return self.__set_param("marker", value)
607
-
608
- @property
609
- def markersize(self):
610
- """ Getter for argument "markersize". """
611
- return self.__get_param("markersize")
612
-
613
- @markersize.setter
614
- def markersize(self, value):
615
- """ Setter for argument "markersize". """
616
- return self.__set_param("markersize", value)
617
-
618
- @property
619
- def reverse_xaxis(self):
620
- """ Getter for argument "reverse_xaxis". """
621
- return self.__get_param("reverse_xaxis")
622
-
623
- @reverse_xaxis.setter
624
- def reverse_xaxis(self, value):
625
- """ Setter for argument "reverse_xaxis". """
626
- return self.__set_param("reverse_xaxis", value)
627
-
628
- @property
629
- def reverse_yaxis(self):
630
- """ Getter for argument "reverse_yaxis". """
631
- return self.__get_param("reverse_yaxis")
632
-
633
- @reverse_yaxis.setter
634
- def reverse_yaxis(self, value):
635
- """ Setter for argument "reverse_yaxis". """
636
- return self.__set_param("reverse_yaxis", value)
637
-
638
- @property
639
- def color(self):
640
- """ Getter for argument "color". """
641
- return self.__get_param("color")
642
-
643
- @color.setter
644
- def color(self, value):
645
- """ Setter for argument "color". """
646
- return self.__set_param("color", value)
647
-
648
- @property
649
- def xlabel(self):
650
- """ Getter for argument "xlabel". """
651
- return self.__get_param("xlabel")
652
-
653
- @xlabel.setter
654
- def xlabel(self, value):
655
- """ Setter for argument "xlabel". """
656
- return self.__set_param("xlabel", value)
657
-
658
- @property
659
- def xlim(self):
660
- """ Getter for argument "xlim". """
661
- return self.__get_param("xlim")
662
-
663
- @xlim.setter
664
- def xlim(self, value):
665
- """ Setter for argument "xlim". """
666
- return self.__set_param("xlim", value)
667
-
668
- @property
669
- def xtick_format(self):
670
- """ Getter for argument "xtick_format". """
671
- return self.__get_param("xtick_format")
672
-
673
- @xtick_format.setter
674
- def xtick_format(self, value):
675
- """ Setter for argument "xtick_format". """
676
- return self.__set_param("xtick_format", value)
677
-
678
- @property
679
- def ylabel(self):
680
- """ Getter for argument "ylabel". """
681
- return self.__get_param("ylabel")
682
-
683
- @ylabel.setter
684
- def ylabel(self, value):
685
- """ Setter for argument "ylabel". """
686
- return self.__set_param("ylabel", value)
687
-
688
- @property
689
- def ylim(self):
690
- """ Getter for argument "ylim". """
691
- return self.__get_param("ylim")
692
-
693
- @ylim.setter
694
- def ylim(self, value):
695
- """ Setter for argument "ylim". """
696
- return self.__set_param("ylim", value)
697
-
698
- @property
699
- def ytick_format(self):
700
- """ Getter for argument "ytick_format". """
701
- return self.__get_param("ytick_format")
702
-
703
- @ytick_format.setter
704
- def ytick_format(self, value):
705
- """ Setter for argument "ytick_format". """
706
- return self.__set_param("ytick_format", value)
707
-
708
- @property
709
- def title(self):
710
- """ Getter for argument "title". """
711
- return self.__get_param("title")
712
-
713
- @title.setter
714
- def title(self, value):
715
- """ Setter for argument "title". """
716
- return self.__set_param("title", value)
717
-
718
- @property
719
- def kind(self):
720
- """ Getter for argument "kind". """
721
- _k = self.__get_param("kind")
722
- return _k if _k is not None else "line"
723
-
724
- @kind.setter
725
- def kind(self, value):
726
- """ Setter for argument "kind". """
727
- return self.__set_param("kind", value)
728
-
729
- @property
730
- def position(self):
731
- """ Getter for argument "position". """
732
- _p = self.__get_param("position")
733
- return (1, 1) if _p is None else _p
734
-
735
- @position.setter
736
- def position(self, value):
737
- """ Setter for argument "position". """
738
- return self.__set_param("position", value)
739
-
740
- @property
741
- def span(self):
742
- """ Getter for argument "span". """
743
- _s = self.__get_param("span")
744
- return (1, 1) if _s is None else _s
745
-
746
- @span.setter
747
- def span(self, value):
748
- """ Setter for argument "span". """
749
- return self.__set_param("span", value)
750
-
751
- def set_params(self, **kwargs):
752
- """
753
- DESCRIPTION:
754
- Function to set the parameters for Axis object.
755
-
756
- PARAMETERS:
757
- **kwargs:
758
- Keyword arguments passed to the method, i.e., set_params.
759
- All the arguments supported for Axis object are supported here.
760
- Refer to 'Axis' documentation for arguments supported by it.
761
-
762
- RETURNS:
763
- True, if successful.
764
-
765
- EXAMPLES:
766
- # Create a default Axis object.
767
- >>> from teradataml import Axis
768
- >>> ax = Axis()
769
-
770
- # Example 1: Disable x-axis label for an existing Axis object.
771
- >>> ax.set_params(xlabel="")
772
-
773
- # Example 2: Set the title for an existing Axis object. Also, disable
774
- # x-tick values.
775
- >>> ax.set_params(title="Title", xtick_values="")
776
- """
777
- self.__params.update(kwargs)
778
- return True
779
-
780
- def _set_data(self, x, y, scale=None):
781
- """
782
- DESCRIPTION:
783
- Internal function to set the x-axis and y-axis data to Axis object.
784
-
785
- PARAMETERS:
786
- x:
787
- Required Argument.
788
- Specifies the x-axis data.
789
- Types: teradataml DataFrame Column
790
-
791
- y:
792
- Required Argument.
793
- Specifies the y-axis data.
794
- Types: teradataml DataFrame Column OR list of teradataml DataFrame Column.
795
-
796
- scale:
797
- Optional Argument.
798
- Specifies the scale data which is required for wiggle and mesh plots.
799
- Note:
800
- "scale" is significant for wiggle and mesh plots. Ignored for other
801
- type of plots.
802
- Types: teradataml DataFrame Column OR list of teradataml DataFrame Column.
803
-
804
- EXAMPLES:
805
- >>> ax = Axis()
806
- >>> ax._set_data(df.col1, [df.col2, df.col3])
807
- """
808
- # Before setting the data, clear it first.
809
- self.__clear_axis_data()
810
-
811
- y = UtilFuncs._as_list(y)
812
-
813
- # Make sure number of columns mentioned in x-axis is
814
- # same as number of columns mentioned in y-axis.
815
- x = UtilFuncs._as_list(x)
816
- if len(x) != len(y):
817
- x = x * len(y)
818
-
819
- scale = UtilFuncs._as_list(scale)
820
-
821
- self.__x_axis_data.extend(x)
822
- self.__y_axis_data.extend(y)
823
- self.__scale_data.extend(scale)
824
-
825
- def __clear_axis_data(self):
826
- """
827
- DESCRIPTION:
828
- Internal function to clear the axis data.
829
-
830
- RETURNS:
831
- bool
832
-
833
- EXAMPLES:
834
- >>> ax = Axis()
835
- >>> ax._Axis__clear_axis_data()
836
- """
837
- self.__x_axis_data.clear()
838
- self.__y_axis_data.clear()
839
- self.__scale_data.clear()
840
-
841
- return True
842
-
843
- def _has_data(self):
844
- """
845
- DESCRIPTION:
846
- Internal function to check whether axis is associated with data or not.
847
-
848
- RETURNS:
849
- bool
850
-
851
- EXAMPLES:
852
- >>> ax = Axis()
853
- >>> ax._has_data()
854
- """
855
- return bool(self.__x_axis_data)
856
-
857
- def __repr__(self):
858
- """
859
- DESCRIPTION:
860
- String representation of Axis Object.
861
-
862
- RETURNS:
863
- str.
864
-
865
- RAISES:
866
- None.
867
-
868
- EXAMPLES:
869
- # Create an Axis Object.
870
- >>> from teradataml import Axis
871
- >>> axis = Axis()
872
- >>> print(axis)
873
- """
874
- return "{}(position={}, span={})".format(self.__class__.__name__, self.position, self.span)
875
-
876
- def _get_plot_data(self):
877
- """
878
- DESCRIPTION:
879
- Internal function to get the plot data. The function, which is called from Plot object
880
- gets all the corresponding information to generate the plot.
881
-
882
- RETURNS:
883
- tuple, with 3 elements.
884
- * element 1 represents again a tuple - 2nd element represents a SELECT statement
885
- and 1st element represents a string which is the alias table name of SELECT
886
- statement. It is necessary to get the alias table name also as series spec
887
- references alias table names.
888
- * element 2 represents either a series spec or matrix spec in string format.
889
- * element 3 represents a dictionary with all the parameters for Plot.
890
-
891
- RAISES:
892
- None.
893
-
894
- EXAMPLES:
895
- >>> from teradataml import Axis
896
- >>> axis = Axis()
897
- >>> axis._get_plot_data()
898
- """
899
-
900
- # TODO: Run only once and store this information. Also, df.concat is a costly operation.
901
- # Will be implemented with ELE-5803.
902
- _virtual_table, _spec = self.__get_matrix_spec() if self.kind in (MapType.MESH.value, MapType.WIGGLE.value) \
903
- else self.__get_series_spec()
904
-
905
- return (_virtual_table, _spec, self._get_params())
906
-
907
- def __get_series_spec(self):
908
- """
909
- DESCRIPTION:
910
- Internal function to generate TDSeries Spec.
911
- * If user pass 'series_id' by using the argument "series_identifier", then consider 'series_id'
912
- as "series_identifier", x-axis data for 'row_axis' and y-axis data for 'payload_field' in
913
- TDSeries object. Both, 'row_index_style' and 'payload_content' can be derived
914
- programatically using __get_index_style() and __get_payload_content() respectively.
915
- * If user do not pass 'series_id', then the function constructs the series spec as below:
916
- * walk through x-axis and y-axis data.
917
- * Construct a new teradataml DataFrame by generating a new column for ID field
918
- along with x and y axis columns.
919
- * ID Column value can be either str or float or int. Since the column will be
920
- used as legend if user do not specify the legend, make sure ID Column value
921
- is Y-Axis column name. This makes a very good user experience in Composite plots.
922
- * For geometry and corr plot, y axis can be a tuple. In such cases, make sure to generate
923
- the ID Column Value with all the columns mentioned in tuple.
924
- * Note that, if it is tuple, Columns mentioned in tuple can have same name. Make
925
- sure to generate the ID Column value as a unique value.
926
- * With the above information, i.e, ID Column, x-axis data and y-axis data, construct a
927
- new teradataml DataFrame.
928
- * Repeat the above process if user pass multiple ColumnExpression(s) for y-axis data and
929
- concatenate the generated DataFrame with previously generated DataFrame vertically.
930
-
931
- RAISES:
932
- TeradatamlException - If all the ColumnExpression(s) mentioned in y-axis are of not same type.
933
-
934
- RETURNS:
935
- tuple
936
-
937
- EXAMPLES:
938
- >>> from teradataml import Axis
939
- >>> Axis()._Axis__get_series_spec()
940
- """
941
- from teradataml.dataframe.dataframe import TDSeries
942
-
943
- if self.__series_identifier:
944
- # Remove null values from DataFrame
945
- if self.ignore_nulls:
946
- _df = self.__x_axis_data[0]._parent_df
947
- _subset = [column_name.name for column_name in self.__y_axis_data]
948
- _subset.append(self.__x_axis_data[0].name)
949
- _df = _df.dropna(how='any', subset=_subset)
950
-
951
- # Execute the node and create the table in Vantage.
952
- if self.__y_axis_data[0]._parent_df._table_name is None:
953
- # Assuming all the columns are from same DataFrame.
954
- repr(self.__y_axis_data[0]._parent_df)
955
-
956
- series = TDSeries(data=_df if self.ignore_nulls else self.__x_axis_data[0]._parent_df,
957
- id=self.__series_identifier,
958
- row_index=self.__x_axis_data[0].name,
959
- row_index_style=self.__get_index_style(self.__x_axis_data[0]),
960
- payload_field=self.__y_axis_data[0].name,
961
- payload_content=self.__get_payload_content(self.__y_axis_data[0]))
962
- return "", series._get_sql_repr(True)
963
-
964
- # Since user does not pass series identifier, convert the data in to TDSeries spec.
965
- _index = 1
966
- _previous_df = None
967
-
968
- # Loop through every element and concatenate the dataframes vertically, i.e.,
969
- # using UNION ALL clause.
970
- for index, (_x, _y) in enumerate(zip(self.__x_axis_data, self.__y_axis_data)):
971
- _df = _y._parent_df if not isinstance(_y, tuple) else _y[0]._parent_df
972
- # For correlated and geometry graph, user can pass two params for PAYLOAD FIELD.
973
- if isinstance(_y, tuple):
974
- # Generate the id_column name programatically. This appears at legend
975
- # if legend is shown. So, build it meaningfully.
976
- _id_column = "{}_{}_{}".format(_y[0].compile(), _y[1].compile(), _index)
977
- columns = {"y_identifier":UtilFuncs._replace_special_chars(_id_column), "id":index, "x":_x, "y1":_y[0], "y2":_y[1]}
978
- payload_field = ["y1", "y2"]
979
- else:
980
- columns = {"y_identifier":UtilFuncs._replace_special_chars(_y.compile()), "id":index, "x":_x, "y":_y}
981
- payload_field = "y"
982
-
983
- _df = _df.assign(**columns, drop_columns=True)
984
- # Concatenate with previous DataFrame.
985
- if _previous_df:
986
- # TODO: Note that concat is a very costly operation. Infact, it is very very slow.
987
- # Consider generating VIRTUAL tables or UNPIVOT.
988
- # Will be addressed with ELE-5808.
989
- _df = _previous_df.concat(_df)
990
-
991
- _previous_df = _df
992
- # Flatten the DataFrame.
993
- _index = _index + 1
994
- # Remove null values from DataFrame
995
- if self.ignore_nulls:
996
- _df = _df.dropna()
997
- repr(_df)
998
- series = TDSeries(data=_df,
999
- id="id",
1000
- row_index="x",
1001
- row_index_style=self.__get_index_style(_df.x),
1002
- payload_field=payload_field,
1003
- payload_content=self.__get_payload_content(self.__y_axis_data[0]))
1004
-
1005
- # TODO: Should return a virtual table at first element if required.
1006
- # Will be addressed with ELE-5808.
1007
- return "", series._get_sql_repr(True)
1008
-
1009
- def __get_matrix_spec(self):
1010
- """
1011
- DESCRIPTION:
1012
- Internal function to generate TDMatrix Spec.
1013
- * If user pass 'matrix_id' by using the argument "series_identifier", then consider 'matrix_id'
1014
- as "series_identifier", x-axis data for 'row_axis' and y-axis data for 'column_axis' and
1015
- scale data for 'payload_field' in TDMatrix object. Both, 'row_index_style' and 'payload_content'
1016
- can be derived programatically using __get_index_style() and __get_payload_content()
1017
- respectively.
1018
- * If user do not pass 'matrix_id', then the function constructs the matrix spec as below:
1019
- * walk through x-axis, y-axis and scale data.
1020
- * Construct a new teradataml DataFrame by generating a new column for ID field
1021
- * ID Column value can be either str or float or int. Since the column will be
1022
- used as legend if user do not specify the legend, make sure ID Column value
1023
- is Y-Axis column name. This makes a very good user experience in Composite plots.
1024
- * With the above information, i.e, ID Column, x-axis data, y-axis data and scale data,
1025
- construct a new teradataml DataFrame.
1026
- * Repeat the above process if user pass multiple ColumnExpression(s) for y-axis data and
1027
- concatenate the generated DataFrame with previously generated DataFrame vertically.
1028
-
1029
- RAISES:
1030
- TeradatamlException - If all the ColumnExpression(s) mentioned in y-axis are of not same type.
1031
-
1032
- RETURNS:
1033
- tuple
1034
-
1035
- EXAMPLES:
1036
- >>> from teradataml import Axis
1037
- >>> Axis()._Axis__get_matrix_spec()
1038
- """
1039
- from teradataml.dataframe.dataframe import TDMatrix
1040
-
1041
- if self.__series_identifier:
1042
- # Remove null values from DataFrame
1043
- if self.ignore_nulls:
1044
- _df = self.__x_axis_data[0]._parent_df
1045
- _subset = [column_name.name for column_name in self.__y_axis_data]
1046
- _subset.append(self.__x_axis_data[0].name)
1047
- _subset.extend(column_name.name for column_name in self.__scale_data)
1048
- _df = _df.dropna(how='any', subset=_subset)
1049
-
1050
- # Execute the node and create the table/view in Vantage.
1051
- if self.__y_axis_data[0]._parent_df._table_name is None:
1052
- repr(self.__y_axis_data[0]._parent_df)
1053
-
1054
- matrix = TDMatrix(data=_df if self.ignore_nulls else self.__x_axis_data[0]._parent_df,
1055
- id=self.__series_identifier,
1056
- row_index=self.__x_axis_data[0].name,
1057
- row_index_style=self.__get_index_style(self.__x_axis_data[0]),
1058
- column_index=self.__y_axis_data[0].name,
1059
- column_index_style=self.__get_index_style(self.__y_axis_data[0]),
1060
- payload_field=self.__scale_data[0].name,
1061
- payload_content=self.__get_payload_content(self.__scale_data[0]))
1062
- return "", matrix._get_sql_repr(True)
1063
-
1064
- # Since user do not pass matrix identifier, convert the data in to TDMatrix spec.
1065
- _previous_df = None
1066
- for index, (_x, _y, _data) in enumerate(zip(self.__x_axis_data, self.__y_axis_data, self.__scale_data)):
1067
- _df = _x._parent_df
1068
- columns = {"y_identifier": UtilFuncs._replace_special_chars(_y.compile()), "id":index, "x": _x, "y": _y, "data": _data}
1069
- _df = _df.assign(**columns, drop_columns=True)
1070
- if _previous_df:
1071
- # TODO: Note that concat is a very costly operation. Infact, it is very very slow.
1072
- # Consider generating VIRTUAL tables or UNPIVOT.
1073
- # Will be addressed with ELE-5808.
1074
- _df = _previous_df.concat(_df)
1075
-
1076
- _previous_df = _df
1077
- # Remove null values from DataFrame
1078
- if self.ignore_nulls:
1079
- _df = _df.dropna()
1080
- repr(_df)
1081
- matrix = TDMatrix(data=_df,
1082
- id="id",
1083
- row_index="x",
1084
- row_index_style=self.__get_index_style(_df.x),
1085
- column_index="y",
1086
- column_index_style=self.__get_index_style(_df.y),
1087
- payload_field="data",
1088
- payload_content="REAL")
1089
-
1090
- # TODO: Should return a virtual table at first element if required.
1091
- # Will be addressed with ELE-5808.
1092
- return "", matrix._get_sql_repr(True)
1093
-
1094
- def __get_index_style(self, _x):
1095
- """
1096
- DESCRIPTION:
1097
- Internal function to generate the value for argument "row_index_style"
1098
- in TDSeries/TDMatrix objects.
1099
-
1100
- PARAMETERS:
1101
- _x:
1102
- Required Argument.
1103
- Specifies the ColumnExpression of x-axis data.
1104
- Types: teradataml ColumnExpression.
1105
-
1106
- RETURNS:
1107
- str
1108
-
1109
- EXAMPLES:
1110
- >>> from teradataml import Axis
1111
- >>> Axis()._Axis__get_index_style()
1112
- """
1113
- if UtilFuncs._teradata_type_to_python_type(_x.type) in ('int', 'float', 'str'):
1114
- return "SEQUENCE"
1115
- return "TIMECODE"
1116
-
1117
- def __get_payload_content(self, _y):
1118
- """
1119
- DESCRIPTION:
1120
- Internal function to generate the value for argument "payload_content"
1121
- in TDSeries/TDMatrix objects.
1122
-
1123
- PARAMETERS:
1124
- _y:
1125
- Required Argument.
1126
- Specifies the ColumnExpression of y-axis data.
1127
- Note that y-axis can be a list of ColumnExpression(s) also.
1128
- Since all the Columns are concatenated vertically, every column
1129
- type should be same. So, deriving "payload_content" value for 1st
1130
- element is suffice.
1131
- Types: teradataml ColumnExpression.
1132
-
1133
- RETURNS:
1134
- str
1135
-
1136
- EXAMPLES:
1137
- >>> from teradataml import Axis
1138
- >>> Axis()._Axis__get_payload_content()
1139
- """
1140
- # If y-axis is a tuple, return MULTIVAR_ANYTYPE.
1141
- if self.kind == MapType.GEOMETRY.value:
1142
- return "MULTIVAR_ANYTYPE"
1143
-
1144
- if self.kind == MapType.CORR.value:
1145
- return "MULTIVAR_REAL" if isinstance(_y, tuple) else "REAL"
1146
-
1147
- return "REAL"
1148
-
1149
- @staticmethod
1150
- def __get_color_code(color):
1151
- """
1152
- DESCRIPTION:
1153
- Internal function to get the string for a color which is recognised by TD_PLOT.
1154
-
1155
- RETURNS:
1156
- str
1157
-
1158
- EXAMPLES:
1159
- >>> from teradataml import Axis
1160
- >>> Axis()._Axis__get_color_code("orange")
1161
- """
1162
- default_colors = {'blue', 'orange', 'green', 'red', 'purple', 'brown', 'pink', 'gray', 'olive', 'cyan'}
1163
- return "tab:{}".format(color) if color in default_colors else "xkcd:{}".format(color)
1164
-
1165
- def __get_series_parameters(self):
1166
- """
1167
- DESCRIPTION:
1168
- Internal function to generate the parameters for individual Series.
1169
-
1170
- RETURNS:
1171
- list
1172
-
1173
- EXAMPLES:
1174
- >>> from teradataml import Axis
1175
- >>> Axis()._Axis__get_series_parameters()
1176
- """
1177
- _series_params = []
1178
- for index in range(len(self.__y_axis_data)):
1179
- _series_param = {"ID": index+1}
1180
- color = self._get_series_param(self.color, index)
1181
- if color:
1182
- _series_param["COLOR"] = "'{}'".format(self.__get_color_code(color))
1183
-
1184
- line_style = self._get_series_param(self.linestyle, index)
1185
- self.__update_plot_params(_series_param, "LINESTYLE", line_style)
1186
-
1187
- line_width = self._get_series_param(self.linewidth, index)
1188
- self.__update_plot_params(_series_param, "LINEWIDTH", line_width)
1189
-
1190
- marker = self._get_series_param(self.marker, index)
1191
- self.__update_plot_params(_series_param, "MARKER", marker)
1192
-
1193
- marker_size = self._get_series_param(self.markersize, index)
1194
- self.__update_plot_params(_series_param, "MARKERSIZE", marker_size)
1195
-
1196
- # If user pass legend name use it. Else, derive it from Y-Axis.
1197
- # Legend is not applicable for wiggle and mesh plots.
1198
- if self.kind not in (MapType.MESH.value, MapType.WIGGLE.value):
1199
- legend_name = self._get_series_param(self.legend, index)
1200
- if legend_name:
1201
- _series_param["NAME"] = "'{}'".format(legend_name)
1202
- else:
1203
- columns = self.__y_axis_data[index] if isinstance(self.__y_axis_data[index], tuple) else \
1204
- [self.__y_axis_data[index]]
1205
- columns = [UtilFuncs._replace_special_chars(col.compile()) for col in columns]
1206
- _series_param["NAME"] = "'{}'".format(" / ".join(columns))
1207
-
1208
- _series_params.append(_series_param)
1209
- return _series_params
1210
-
1211
- def _get_params(self):
1212
- """
1213
- DESCRIPTION:
1214
- Internal function to generate the parameters for the plot.
1215
-
1216
- RETURNS:
1217
- dict
1218
-
1219
- EXAMPLES:
1220
- >>> from teradataml import Axis
1221
- >>> Axis()._Axis_get_params()
1222
- """
1223
- func_params = {"CELL": (self.position[1], self.position[0]),
1224
- "SPAN": (self.span[1], self.span[0]),
1225
- "TYPE": "'{}'".format(self.kind),
1226
- "XLABEL": "'{}'".format(self.get_xaxis_label()),
1227
- "YLABEL": "'{}'".format(self.get_yaxis_label()),
1228
- "SERIES": self.__get_series_parameters()
1229
- }
1230
-
1231
- self.__update_plot_params(func_params, "TITLE", self.title)
1232
- self.__update_plot_params(func_params, "XFORMAT", self.xtick_format)
1233
- self.__update_plot_params(func_params, "YFORMAT", self.ytick_format)
1234
- self.__update_plot_params(func_params, "XRANGE", self.xlim)
1235
- self.__update_plot_params(func_params, "YRANGE", self.ylim)
1236
-
1237
- if self.reverse_xaxis is True:
1238
- func_params["FLIPX"] = 1
1239
-
1240
- if self.reverse_yaxis is True:
1241
- func_params["FLIPY"] = 1
1242
-
1243
- # For subplot or multiple series, make sure to populate legend.
1244
- # For mainplot, leave it to user's choice.
1245
- if self._is_sub_plot() or self.__series_identifier or (len(self.__y_axis_data) > 1) and \
1246
- self.kind not in (MapType.MESH.value, MapType.WIGGLE.value):
1247
- func_params["LEGEND"] = "'{}'".format("best" if not self.legend_style else self.legend_style)
1248
- else:
1249
- self.__update_plot_params(func_params, "LEGEND", self.legend_style)
1250
-
1251
- # Populate GRID parameters.
1252
- if self.grid_format or self.grid_color or self.grid_linestyle or self.grid_linewidth:
1253
- _grid_params = {}
1254
- self.__update_plot_params(_grid_params, "COLOR", self.__get_color_code(self.grid_color))
1255
- self.__update_plot_params(_grid_params, "FORMAT", self.grid_format)
1256
- self.__update_plot_params(_grid_params, "LINESTYLE", self.grid_linestyle)
1257
- self.__update_plot_params(_grid_params, "LINEWIDTH", self.grid_linewidth)
1258
- func_params["GRID"] = _grid_params
1259
-
1260
- # Populate color map parameters.
1261
- if self.cmap or self.vmin:
1262
- # TODO: User should control the COLORBAR. Expose a parameter to user.
1263
- _color_map_params = {"COLORBAR": 1}
1264
- self.__update_plot_params(_color_map_params, "RANGE", None if self.vmin is None else (self.vmin, self.vmax))
1265
- self.__update_plot_params(_color_map_params, "NAME", self.cmap)
1266
- func_params["COLORMAP"] = _color_map_params
1267
-
1268
- return func_params
1269
-
1270
- @staticmethod
1271
- def __update_plot_params(func_params, plot_param, value):
1272
- """
1273
- DESCRIPTION:
1274
- Internal function to update the Plot parameter.
1275
- The function check whether "value" is None or not. If None,
1276
- no action from this function on "func_params". Else, "func_params"
1277
- is updated with "plot_param".
1278
-
1279
- EXAMPLES:
1280
- >>> from teradataml import Axis
1281
- >>> Axis()._Axis__update_plot_params({}, "a", "b")
1282
- """
1283
- if value is not None:
1284
- func_params[plot_param] = "'{}'".format(value) if isinstance(value, str) else value
1285
-
1286
- @staticmethod
1287
- def _get_series_param(param, index):
1288
- """
1289
- DESCRIPTION:
1290
- Internal function to get the series parameter.
1291
- User can pass a list of values or a single value for series parameter's.
1292
- The function get's the corresponding element based on the index. If
1293
- element is not found, the function returns a None.
1294
-
1295
- EXAMPLES:
1296
- >>> from teradataml import Axis
1297
- >>> Axis()._Axis_get_series_param(["a"], 1)
1298
- """
1299
- try:
1300
- return UtilFuncs._as_list(param)[index]
1301
- except IndexError:
1302
- return None
1303
-
1304
- def get_xaxis_label(self):
1305
- """
1306
- DESCRIPTION:
1307
- The function generates the x-axis label based on user input. If user specifies x-axis
1308
- label, the function returns the same. Otherwise, the function generates the x-axis
1309
- label from x-axis Column Name.
1310
-
1311
- RETURNS:
1312
- str
1313
-
1314
- EXAMPLES:
1315
- >>> from teradataml import Axis
1316
- >>> Axis().get_xaxis_label()
1317
- """
1318
- return self.xlabel if self.xlabel is not None else self.__get_label([self.__x_axis_data[0]])
1319
-
1320
- def get_yaxis_label(self):
1321
- """
1322
- DESCRIPTION:
1323
- The function generates the y-axis label based on user input. If user specifies y-axis
1324
- label, the function returns the same. Otherwise, the function generates the y-axis
1325
- label from y-axis Column Name.
1326
-
1327
- RETURNS:
1328
- str
1329
-
1330
- EXAMPLES:
1331
- >>> from teradataml import Axis
1332
- >>> Axis().get_yaxis_label()
1333
- """
1334
- return self.ylabel if self.ylabel is not None else self.__get_label(self.__y_axis_data)
1335
-
1336
- @staticmethod
1337
- def __get_label(data):
1338
- """
1339
- DESCRIPTION:
1340
- Internal function to generate the label.
1341
-
1342
- RETURNS:
1343
- str
1344
-
1345
- EXAMPLES:
1346
- >>> from teradataml import Axis
1347
- >>> Axis()._Axis__get_label()
1348
- """
1349
- _rpl_spcl_chars = UtilFuncs._replace_special_chars
1350
- # For correlation graph and GeoSpatial, user can pass a tuple of columns. Basically,
1351
- # the SERIES_SPEC accepts 2 values for FIELD column.
1352
- if isinstance(data[0], tuple):
1353
- # If it is a tuple, it has only two elements, both represents DataFrame columns.
1354
- # Generate the label based on two column names.
1355
- return " / ".join(
1356
- ("{} - {}".format(_rpl_spcl_chars(c[0].compile()), _rpl_spcl_chars(c[1].compile())) for c in data))
1357
-
1358
- return " / ".join((_rpl_spcl_chars(c_name.compile()) for c_name in data))
1359
-
1360
- def _is_sub_plot(self):
1361
- """
1362
- DESCRIPTION:
1363
- Internal function to check if the Axis is for subplot or not.
1364
-
1365
- RETURNS:
1366
- bool
1367
-
1368
- EXAMPLES:
1369
- >>> from teradataml import Axis
1370
- >>> Axis()._is_sub_plot()
1371
- """
1372
- return False
1373
-
1374
-
1375
- class AxesSubplot(Axis):
1376
- def _is_sub_plot(self):
1377
- """
1378
- DESCRIPTION:
1379
- Internal function to check if the Axis is for subplot or not.
1380
-
1381
- RETURNS:
1382
- bool
1383
-
1384
- EXAMPLES:
1385
- >>> from teradataml import Axis
1386
- >>> Axis()._is_sub_plot()
1387
- """
1388
- return True
1
+ # ##################################################################
2
+ #
3
+ # Copyright 2023 Teradata. All rights reserved.
4
+ # TERADATA CONFIDENTIAL AND TRADE SECRET
5
+ #
6
+ # Primary Owner: Pradeep Garre (pradeep.garre@teradata.com)
7
+ # Secondary Owner:
8
+ #
9
+ # This file implements Axis, which is used for plotting. Axis holds all
10
+ # the properties related to axis such as grid color, x-axis label, y-axis
11
+ # label etc.
12
+ #
13
+ # ##################################################################
14
+
15
+ from teradataml.common.exceptions import TeradataMlException
16
+ from teradataml.common.messages import Messages
17
+ from teradataml.common.messagecodes import MessageCodes
18
+ from teradataml.common.utils import UtilFuncs
19
+ from teradataml.dataframe.sql import ColumnExpression
20
+ from teradataml.plot.constants import MapType
21
+ from teradataml.utils.validators import _Validators
22
+
23
+ class Axis:
24
+ def __init__(self, **kwargs):
25
+ """
26
+ Constructor for Axis.
27
+
28
+ PARAMETERS:
29
+ cmap:
30
+ Optional Argument.
31
+ Specifies the name of the colormap to be used for plotting.
32
+ Notes:
33
+ * Significant only when corresponding type of plots is mesh or geometry.
34
+ * Ignored for other type of plots.
35
+ Permitted Values:
36
+ * All the colormaps mentioned in below URL's are supported.
37
+ * https://matplotlib.org/stable/tutorials/colors/colormaps.html
38
+ * https://matplotlib.org/cmocean/
39
+ Types: str
40
+
41
+ color:
42
+ Optional Argument.
43
+ Specifies the color for the plot.
44
+ Note:
45
+ Hexadecimal color codes are not supported.
46
+ Permitted Values:
47
+ * blue
48
+ * orange
49
+ * green
50
+ * red
51
+ * purple
52
+ * brown
53
+ * pink
54
+ * gray
55
+ * olive
56
+ * cyan
57
+ * Apart from above mentioned colors, the colors mentioned in
58
+ https://xkcd.com/color/rgb are also supported.
59
+ Default Value: blue
60
+ Types: str OR list of str
61
+
62
+ grid_color:
63
+ Optional Argument.
64
+ Specifies the color of the grid. By default, grid is generated with
65
+ Gray69(#b0b0b0) color.
66
+ Note:
67
+ Hexadecimal color codes are not supported.
68
+ Permitted Values:
69
+ * 'blue'
70
+ * 'orange'
71
+ * 'green'
72
+ * 'red'
73
+ * 'purple'
74
+ * 'brown'
75
+ * 'pink'
76
+ * 'gray'
77
+ * 'olive'
78
+ * 'cyan'
79
+ * Apart from above mentioned colors, the colors mentioned in
80
+ https://xkcd.com/color/rgb are also supported.
81
+ Default Value: 'gray'
82
+ Types: str
83
+
84
+ grid_format:
85
+ Optional Argument.
86
+ Specifies the format for the grid.
87
+ Types: str
88
+
89
+ grid_linestyle:
90
+ Optional Argument.
91
+ Specifies the line style of the grid.
92
+ Default Value: -
93
+ Permitted Values:
94
+ * -
95
+ * --
96
+ * -.
97
+ Types: str
98
+
99
+ grid_linewidth:
100
+ Optional Argument.
101
+ Specifies the line width of the grid.
102
+ Note:
103
+ Valid range for "grid_linewidth" is: 0.5 <= grid_linewidth <= 10.
104
+ Default Value: 0.8
105
+ Types: int OR float
106
+
107
+ legend:
108
+ Optional Argument.
109
+ Specifies the legend(s) for the Plot.
110
+ Types: str OR list of str
111
+
112
+ legend_style:
113
+ Optional Argument.
114
+ Specifies the location for legend to display on Plot image. By default,
115
+ legend is displayed at upper right corner.
116
+ * 'upper right'
117
+ * 'upper left'
118
+ * 'lower right'
119
+ * 'lower left'
120
+ * 'right'
121
+ * 'center left'
122
+ * 'center right'
123
+ * 'lower center'
124
+ * 'upper center'
125
+ * 'center'
126
+ Default Value: 'upper right'
127
+ Types: str
128
+
129
+ linestyle:
130
+ Optional Argument.
131
+ Specifies the line style for the plot.
132
+ Permitted Values:
133
+ * -
134
+ * --
135
+ * -.
136
+ * :
137
+ Default Value: -
138
+ Types: str OR list of str
139
+
140
+ linewidth:
141
+ Optional Argument.
142
+ Specifies the line width for the plot.
143
+ Note:
144
+ Valid range for "linewidth" is: 0.5 <= linewidth <= 10.
145
+ Default Value: 0.8
146
+ Types: int OR float OR list of int OR list of float
147
+
148
+ marker:
149
+ Optional Argument.
150
+ Specifies the type of the marker to be used.
151
+ Permitted Values:
152
+ All the markers mentioned in https://matplotlib.org/stable/api/markers_api.html
153
+ are supported.
154
+ Types: str OR list of str
155
+
156
+ markersize:
157
+ Optional Argument.
158
+ Specifies the size of the marker.
159
+ Note:
160
+ Valid range for "markersize" is: 1 <= markersize <= 20.
161
+ Default Value: 6
162
+ Types: int OR float OR list of int OR list of float
163
+
164
+ position:
165
+ Optional Argument.
166
+ Specifies the position of the axis in the Figure. 1st element
167
+ represents the row and second element represents column.
168
+ Default Value: (1, 1)
169
+ Types: tuple
170
+
171
+ reverse_xaxis:
172
+ Optional Argument.
173
+ Specifies whether to reverse tick values on x-axis or not.
174
+ Default Value: False
175
+ Types: bool
176
+
177
+ reverse_yaxis:
178
+ Optional Argument.
179
+ Specifies whether to reverse tick values on y-axis or not.
180
+ Default Value: False
181
+ Types: bool
182
+
183
+ span:
184
+ Optional Argument.
185
+ Specifies the span of the axis in the Figure. 1st element
186
+ represents the row and second element represents column.
187
+ For Example,
188
+ Span of (2, 1) specifies the Axis occupies 2 rows and 1 column
189
+ in Figure.
190
+ Default Value: (1, 1)
191
+ Types: tuple
192
+
193
+ series_identifier:
194
+ Optional Argument.
195
+ Specifies the teradataml GeoDataFrame Column which represents the
196
+ identifier for the data. As many plots as distinct "series_identifier"
197
+ are generated in a single Axis.
198
+ For example:
199
+ consider the below data in teradataml GeoDataFrame.
200
+ ID x y
201
+ 0 1 1 1
202
+ 1 1 2 2
203
+ 2 2 10 10
204
+ 3 2 20 20
205
+ If "series_identifier" is not specified, simple plot is
206
+ generated where every 'y' is plotted against 'x' in a
207
+ single plot. However, specifying "series_identifier" as 'ID'
208
+ generates two plots in a single axis. One plot is for ID 1
209
+ and another plot is for ID 2.
210
+ Types: teradataml GeoDataFrame Column.
211
+
212
+ title:
213
+ Optional Argument.
214
+ Specifies the title for the Axis.
215
+ Types: str
216
+
217
+ xlabel:
218
+ Optional Argument.
219
+ Specifies the label for x-axis.
220
+ Notes:
221
+ * When set to empty string, label is not displayed for x-axis.
222
+ * When set to None, name of the x-axis column is displayed as
223
+ label.
224
+ Types: str
225
+
226
+ xlim:
227
+ Optional Argument.
228
+ Specifies the range for xtick values.
229
+ Types: tuple
230
+
231
+ xtick_format:
232
+ Optional Argument.
233
+ Specifies how to format tick values for x-axis.
234
+ Types: str
235
+
236
+ ylabel:
237
+ Optional Argument.
238
+ Specifies the label for y-axis.
239
+ Notes:
240
+ * When set to empty string, label is not displayed for y-axis.
241
+ * When set to None, name of the y-axis column(s) is displayed as
242
+ label.
243
+ Types: str
244
+
245
+ ylim:
246
+ Optional Argument.
247
+ Specifies the range for ytick values.
248
+ Types: tuple
249
+
250
+ ytick_format:
251
+ Optional Argument.
252
+ Specifies how to format tick values for y-axis.
253
+ Types: str
254
+
255
+ vmin:
256
+ Optional Argument.
257
+ Specifies the lower range of the color map. By default, the range
258
+ is derived from data and color codes are assigned accordingly.
259
+ Note:
260
+ "vmin" significant only for Mesh and Geometry Plot.
261
+ Types: int OR float
262
+
263
+ vmax:
264
+ Optional Argument.
265
+ Specifies the upper range of the color map. By default, the range is
266
+ derived from data and color codes are assigned accordingly.
267
+ Note:
268
+ "vmax" significant only for Mesh and Geometry Plot.
269
+ For example:
270
+ Assuming user wants to use colormap 'matter' and derive the colors for
271
+ values which are in between 1 and 100.
272
+ Note:
273
+ Colormap 'matter' starts with Pale Yellow and ends with Violet.
274
+ * If "colormap_range" is not specified, then range is derived from
275
+ existing values. Thus, colors are represented as below in the whole range:
276
+ * 1 as Pale Yellow.
277
+ * 100 as Violet.
278
+ * If "colormap_range" is specified as -100 and 100, the value 1 is at middle of
279
+ the specified range. Thus, colors are represented as below in the whole range:
280
+ * -100 as Pale Yellow.
281
+ * 1 as Orange.
282
+ * 100 as Violet.
283
+ Types: int OR float
284
+
285
+ EXAMPLES:
286
+ # Example 1: Create an Axis with marker as 'Pentagon'.
287
+ >>> from teradataml import Axis
288
+ >>> ax = Axis(marker="p")
289
+
290
+ # Example 2: Create an Axis which does not have x-tick values
291
+ # and y-tick values but it should have grid.
292
+ # Note that the grid lines should be in the format of '-.'
293
+ >>> from teradataml import Axis
294
+ >>> ax = Axis(xtick_format="", ytick_format="", grid_linestyle="-.")
295
+
296
+ # Example 3: Create an Axis which should plot only for the values
297
+ # between -10 to 100 on x-axis.
298
+ >>> from teradataml import Axis
299
+ >>> ax = Axis(xlim=(-10, 100))
300
+
301
+ # Example 4: Create an Axis which should display legend at upper left
302
+ # corner and it should disable both x and y axis labels.
303
+ >>> from teradataml import Axis
304
+ >>> ax = Axis(legend_style="upper left", xlabel="", ylabel="")
305
+
306
+ # Example 5: Create an Axis to format the y-axis tick values to
307
+ # display up to two decimal points. Also, use the color
308
+ # 'dark green' for plotting.
309
+ # Note: Consider y-axis data has 5 digit floating numbers.
310
+ >>> from teradataml import Axis
311
+ >>> ax = Axis(ytick_format="99999.99", color='dark green')
312
+
313
+ RAISES:
314
+ TeradataMlException
315
+ """
316
+ self.__params = {**kwargs}
317
+
318
+ self.__x_axis_data = []
319
+ self.__y_axis_data = []
320
+ self.__scale_data = []
321
+
322
+ arg_info_matrix = []
323
+
324
+ # Retrieve arg value from corresponding property.
325
+ arg_info_matrix.append((["ignore_nulls", self.ignore_nulls, True, bool]))
326
+
327
+ arg_info_matrix.append((["cmap", self.cmap, True, (str), True]))
328
+
329
+ arg_info_matrix.append((["grid_color", self.grid_color, True, (str), True]))
330
+
331
+ arg_info_matrix.append((["grid_format", self.grid_format, True, (str), True]))
332
+
333
+ arg_info_matrix.append((["grid_linestyle", self.grid_linestyle, True, (str),
334
+ True, ['-', '--', '-.']]))
335
+
336
+ arg_info_matrix.append((["grid_linewidth", self.grid_linewidth, True, (int, float)]))
337
+
338
+ arg_info_matrix.append((["legend", self.legend, True, (str, list), True]))
339
+
340
+ permitted_legend_style = ['upper right', 'upper left', 'lower right',
341
+ 'lower left', 'right', 'center left',
342
+ 'center right', 'lower center',
343
+ 'upper center', 'center']
344
+ arg_info_matrix.append((["legend_style", self.legend_style, True,
345
+ (str), True, permitted_legend_style]))
346
+
347
+ arg_info_matrix.append((["linestyle", self.linestyle, True, (str, list),
348
+ True, ['-', '--', '-.', ':']]))
349
+
350
+ arg_info_matrix.append((["linewidth", self.linewidth, True, (int, float, list), True]))
351
+
352
+ arg_info_matrix.append((["marker", self.marker, True, (str, list), True]))
353
+
354
+ arg_info_matrix.append((["markersize", self.markersize, True, (int, float, list)]))
355
+
356
+ arg_info_matrix.append((["position", self.position, True, (tuple)]))
357
+
358
+ arg_info_matrix.append((["span", self.span, True, (tuple)]))
359
+
360
+ arg_info_matrix.append((["reverse_xaxis", self.reverse_xaxis, True, (bool)]))
361
+
362
+ arg_info_matrix.append((["reverse_yaxis", self.reverse_yaxis, True, (bool)]))
363
+
364
+ series_identifier = kwargs.get("series_identifier")
365
+ arg_info_matrix.append((["series_identifier", series_identifier, True,
366
+ (ColumnExpression)]))
367
+
368
+ arg_info_matrix.append((["color", self.color, True, (str, list), True]))
369
+
370
+ arg_info_matrix.append((["title", self.title, True, (str), True]))
371
+
372
+ arg_info_matrix.append((["xlabel", self.xlabel, True, (str), False]))
373
+
374
+ arg_info_matrix.append((["ylabel", self.ylabel, True, (str), False]))
375
+
376
+ arg_info_matrix.append((["xlim", self.xlim, True, (tuple)]))
377
+
378
+ arg_info_matrix.append((["ylim", self.ylim, True, (tuple)]))
379
+
380
+ arg_info_matrix.append((["xtick_format", self.xtick_format, True, (str)]))
381
+
382
+ arg_info_matrix.append((["ytick_format", self.ytick_format, True, (str)]))
383
+
384
+ arg_info_matrix.append((["vmin", self.vmin, True, (int, float)]))
385
+ arg_info_matrix.append((["vmax", self.vmax, True, (int, float)]))
386
+
387
+ # 'vmin' and 'vmax' is applicable only for Mesh and Geometry plot.
388
+ if self.kind.lower() not in ['geometry', 'mesh']:
389
+ if self.vmin is not None:
390
+ _Validators._validate_dependent_argument("vmin", self.vmin,
391
+ "kind", None, "'geometry' or 'mesh'")
392
+ if self.vmax is not None:
393
+ _Validators._validate_dependent_argument("vmax", self.vmax,
394
+ "kind", None, "'geometry' or 'mesh'")
395
+
396
+ # Argument validations.
397
+ # Skip empty check for 'xlabel', 'ylabel'.
398
+ _Validators._validate_function_arguments(
399
+ arg_info_matrix,
400
+ skip_empty_check={"xlabel": [''], "ylabel": ['']}
401
+ )
402
+
403
+ # Argument range check.
404
+ _Validators._validate_argument_range(self.grid_linewidth, "grid_linewidth",
405
+ 0.5, lbound_inclusive=True,
406
+ ubound=10, ubound_inclusive=True)
407
+ # Convert linewidth to list
408
+ linewidth = UtilFuncs._as_list(self.linewidth)
409
+ [_Validators._validate_argument_range(lw, "linewidth",
410
+ 0.5, lbound_inclusive=True,
411
+ ubound=10, ubound_inclusive=True)
412
+ for lw in linewidth]
413
+
414
+ # Convert markersize to list
415
+ markersize = UtilFuncs._as_list(self.markersize)
416
+ [_Validators._validate_argument_range(ms, "markersize",
417
+ 1, lbound_inclusive=True,
418
+ ubound=20, ubound_inclusive=True)
419
+ for ms in markersize]
420
+
421
+ self.__series_options = kwargs.get("series_options") # Specifies SQL element - ID_SEQUENCE
422
+
423
+ # Get the series identifier. If it is a column expression, get the column name from it.
424
+ self.__series_identifier = kwargs.get("series_identifier")
425
+ if not isinstance(self.__series_identifier, str) and self.__series_identifier is not None:
426
+ self.__series_identifier = self.__series_identifier.name
427
+
428
+ def __get_param(self, param):
429
+ """
430
+ DESCRIPTION:
431
+ Internal function to get the parameter from private variable __params.
432
+
433
+ PARAMETERS:
434
+ param:
435
+ Required Argument.
436
+ Specifies the name of the parameter.
437
+ Types: str
438
+
439
+ RETURNS:
440
+ str OR int OR float OR list
441
+
442
+ RAISES:
443
+ None.
444
+
445
+ EXAMPLES:
446
+ self.__get_param("xlim")
447
+ """
448
+ return self.__params.get(param)
449
+
450
+ def __set_param(self, param_name, param_value):
451
+ """
452
+ DESCRIPTION:
453
+ Internal function to set the parameter.
454
+
455
+ PARAMETERS:
456
+ param_name:
457
+ Required Argument.
458
+ Specifies the name of the parameter.
459
+ Types: str
460
+
461
+ param_value:
462
+ Required Argument.
463
+ Specifies the value for the parameter mentioned in "param_name".
464
+ Types: str OR int OR float OR list
465
+
466
+ RETURNS:
467
+ bool
468
+
469
+ RAISES:
470
+ None.
471
+
472
+ EXAMPLES:
473
+ self.__set_param("xlim", (1, 100))
474
+ """
475
+ self.__params[param_name] = param_value
476
+ return True
477
+
478
+ @property
479
+ def ignore_nulls(self):
480
+ """ Getter for argument "ignore_nulls". """
481
+ return self.__get_param("ignore_nulls")
482
+
483
+ @ignore_nulls.setter
484
+ def ignore_nulls(self, value):
485
+ """ Setter for argument "ignore_nulls". """
486
+ return self.__set_param("ignore_nulls", value)
487
+
488
+ @property
489
+ def cmap(self):
490
+ """ Getter for argument "cmap". """
491
+ return self.__get_param("cmap")
492
+
493
+ @cmap.setter
494
+ def cmap(self, value):
495
+ """ Setter for argument "cmap". """
496
+ return self.__set_param("cmap", value)
497
+
498
+ @property
499
+ def vmin(self):
500
+ """ Getter for argument "vmin". """
501
+ return self.__get_param("vmin")
502
+
503
+ @vmin.setter
504
+ def vmin(self, value):
505
+ """ Setter for argument "vmin". """
506
+ return self.__set_param("vmin", value)
507
+
508
+ @property
509
+ def vmax(self):
510
+ """ Getter for argument "vmax". """
511
+ return self.__get_param("vmax")
512
+
513
+ @vmax.setter
514
+ def vmax(self, value):
515
+ """ Setter for argument "vmax". """
516
+ return self.__set_param("vmax", value)
517
+
518
+ @property
519
+ def grid_color(self):
520
+ """ Getter for argument "grid_color". """
521
+ return self.__get_param("grid_color")
522
+
523
+ @grid_color.setter
524
+ def grid_color(self, value):
525
+ """ Setter for argument "grid_color". """
526
+ return self.__set_param("grid_color", value)
527
+
528
+ @property
529
+ def grid_format(self):
530
+ """ Getter for argument "grid_format". """
531
+ return self.__get_param("grid_format")
532
+
533
+ @grid_format.setter
534
+ def grid_format(self, value):
535
+ """ Setter for argument "grid_format". """
536
+ return self.__set_param("grid_format", value)
537
+
538
+ @property
539
+ def grid_linestyle(self):
540
+ """ Getter for argument "grid_linestyle". """
541
+ return self.__get_param("grid_linestyle")
542
+
543
+ @grid_linestyle.setter
544
+ def grid_linestyle(self, value):
545
+ """ Setter for argument "grid_linestyle". """
546
+ return self.__set_param("grid_linestyle", value)
547
+
548
+ @property
549
+ def grid_linewidth(self):
550
+ """ Getter for argument "grid_linewidth". """
551
+ return self.__get_param("grid_linewidth")
552
+
553
+ @grid_linewidth.setter
554
+ def grid_linewidth(self, value):
555
+ """ Setter for argument "grid_linewidth". """
556
+ return self.__set_param("grid_linewidth", value)
557
+
558
+ @property
559
+ def legend(self):
560
+ """ Getter for argument "legend". """
561
+ return self.__get_param("legend")
562
+
563
+ @legend.setter
564
+ def legend(self, value):
565
+ """ Setter for argument "legend". """
566
+ return self.__set_param("legend", value)
567
+
568
+ @property
569
+ def legend_style(self):
570
+ """ Getter for argument "legend_style". """
571
+ return self.__get_param("legend_style")
572
+
573
+ @legend_style.setter
574
+ def legend_style(self, value):
575
+ """ Setter for argument "legend_style". """
576
+ return self.__set_param("legend_style", value)
577
+
578
+ @property
579
+ def linestyle(self):
580
+ """ Getter for argument "linestyle". """
581
+ return self.__get_param("linestyle")
582
+
583
+ @linestyle.setter
584
+ def linestyle(self, value):
585
+ """ Setter for argument "linestyle". """
586
+ return self.__set_param("linestyle", value)
587
+
588
+ @property
589
+ def linewidth(self):
590
+ """ Getter for argument "linewidth". """
591
+ return self.__get_param("linewidth")
592
+
593
+ @linewidth.setter
594
+ def linewidth(self, value):
595
+ """ Setter for argument "linewidth". """
596
+ return self.__set_param("linewidth", value)
597
+
598
+ @property
599
+ def marker(self):
600
+ """ Getter for argument "marker". """
601
+ return self.__get_param("marker")
602
+
603
+ @marker.setter
604
+ def marker(self, value):
605
+ """ Setter for argument "marker". """
606
+ return self.__set_param("marker", value)
607
+
608
+ @property
609
+ def markersize(self):
610
+ """ Getter for argument "markersize". """
611
+ return self.__get_param("markersize")
612
+
613
+ @markersize.setter
614
+ def markersize(self, value):
615
+ """ Setter for argument "markersize". """
616
+ return self.__set_param("markersize", value)
617
+
618
+ @property
619
+ def reverse_xaxis(self):
620
+ """ Getter for argument "reverse_xaxis". """
621
+ return self.__get_param("reverse_xaxis")
622
+
623
+ @reverse_xaxis.setter
624
+ def reverse_xaxis(self, value):
625
+ """ Setter for argument "reverse_xaxis". """
626
+ return self.__set_param("reverse_xaxis", value)
627
+
628
+ @property
629
+ def reverse_yaxis(self):
630
+ """ Getter for argument "reverse_yaxis". """
631
+ return self.__get_param("reverse_yaxis")
632
+
633
+ @reverse_yaxis.setter
634
+ def reverse_yaxis(self, value):
635
+ """ Setter for argument "reverse_yaxis". """
636
+ return self.__set_param("reverse_yaxis", value)
637
+
638
+ @property
639
+ def color(self):
640
+ """ Getter for argument "color". """
641
+ return self.__get_param("color")
642
+
643
+ @color.setter
644
+ def color(self, value):
645
+ """ Setter for argument "color". """
646
+ return self.__set_param("color", value)
647
+
648
+ @property
649
+ def xlabel(self):
650
+ """ Getter for argument "xlabel". """
651
+ return self.__get_param("xlabel")
652
+
653
+ @xlabel.setter
654
+ def xlabel(self, value):
655
+ """ Setter for argument "xlabel". """
656
+ return self.__set_param("xlabel", value)
657
+
658
+ @property
659
+ def xlim(self):
660
+ """ Getter for argument "xlim". """
661
+ return self.__get_param("xlim")
662
+
663
+ @xlim.setter
664
+ def xlim(self, value):
665
+ """ Setter for argument "xlim". """
666
+ return self.__set_param("xlim", value)
667
+
668
+ @property
669
+ def xtick_format(self):
670
+ """ Getter for argument "xtick_format". """
671
+ return self.__get_param("xtick_format")
672
+
673
+ @xtick_format.setter
674
+ def xtick_format(self, value):
675
+ """ Setter for argument "xtick_format". """
676
+ return self.__set_param("xtick_format", value)
677
+
678
+ @property
679
+ def ylabel(self):
680
+ """ Getter for argument "ylabel". """
681
+ return self.__get_param("ylabel")
682
+
683
+ @ylabel.setter
684
+ def ylabel(self, value):
685
+ """ Setter for argument "ylabel". """
686
+ return self.__set_param("ylabel", value)
687
+
688
+ @property
689
+ def ylim(self):
690
+ """ Getter for argument "ylim". """
691
+ return self.__get_param("ylim")
692
+
693
+ @ylim.setter
694
+ def ylim(self, value):
695
+ """ Setter for argument "ylim". """
696
+ return self.__set_param("ylim", value)
697
+
698
+ @property
699
+ def ytick_format(self):
700
+ """ Getter for argument "ytick_format". """
701
+ return self.__get_param("ytick_format")
702
+
703
+ @ytick_format.setter
704
+ def ytick_format(self, value):
705
+ """ Setter for argument "ytick_format". """
706
+ return self.__set_param("ytick_format", value)
707
+
708
+ @property
709
+ def title(self):
710
+ """ Getter for argument "title". """
711
+ return self.__get_param("title")
712
+
713
+ @title.setter
714
+ def title(self, value):
715
+ """ Setter for argument "title". """
716
+ return self.__set_param("title", value)
717
+
718
+ @property
719
+ def kind(self):
720
+ """ Getter for argument "kind". """
721
+ _k = self.__get_param("kind")
722
+ return _k if _k is not None else "line"
723
+
724
+ @kind.setter
725
+ def kind(self, value):
726
+ """ Setter for argument "kind". """
727
+ return self.__set_param("kind", value)
728
+
729
+ @property
730
+ def position(self):
731
+ """ Getter for argument "position". """
732
+ _p = self.__get_param("position")
733
+ return (1, 1) if _p is None else _p
734
+
735
+ @position.setter
736
+ def position(self, value):
737
+ """ Setter for argument "position". """
738
+ return self.__set_param("position", value)
739
+
740
+ @property
741
+ def span(self):
742
+ """ Getter for argument "span". """
743
+ _s = self.__get_param("span")
744
+ return (1, 1) if _s is None else _s
745
+
746
+ @span.setter
747
+ def span(self, value):
748
+ """ Setter for argument "span". """
749
+ return self.__set_param("span", value)
750
+
751
+ def set_params(self, **kwargs):
752
+ """
753
+ DESCRIPTION:
754
+ Function to set the parameters for Axis object.
755
+
756
+ PARAMETERS:
757
+ **kwargs:
758
+ Keyword arguments passed to the method, i.e., set_params.
759
+ All the arguments supported for Axis object are supported here.
760
+ Refer to 'Axis' documentation for arguments supported by it.
761
+
762
+ RETURNS:
763
+ True, if successful.
764
+
765
+ EXAMPLES:
766
+ # Create a default Axis object.
767
+ >>> from teradataml import Axis
768
+ >>> ax = Axis()
769
+
770
+ # Example 1: Disable x-axis label for an existing Axis object.
771
+ >>> ax.set_params(xlabel="")
772
+
773
+ # Example 2: Set the title for an existing Axis object. Also, disable
774
+ # x-tick values.
775
+ >>> ax.set_params(title="Title", xtick_values="")
776
+ """
777
+ self.__params.update(kwargs)
778
+ return True
779
+
780
+ def _set_data(self, x, y, scale=None):
781
+ """
782
+ DESCRIPTION:
783
+ Internal function to set the x-axis and y-axis data to Axis object.
784
+
785
+ PARAMETERS:
786
+ x:
787
+ Required Argument.
788
+ Specifies the x-axis data.
789
+ Types: teradataml DataFrame Column
790
+
791
+ y:
792
+ Required Argument.
793
+ Specifies the y-axis data.
794
+ Types: teradataml DataFrame Column OR list of teradataml DataFrame Column.
795
+
796
+ scale:
797
+ Optional Argument.
798
+ Specifies the scale data which is required for wiggle and mesh plots.
799
+ Note:
800
+ "scale" is significant for wiggle and mesh plots. Ignored for other
801
+ type of plots.
802
+ Types: teradataml DataFrame Column OR list of teradataml DataFrame Column.
803
+
804
+ EXAMPLES:
805
+ >>> ax = Axis()
806
+ >>> ax._set_data(df.col1, [df.col2, df.col3])
807
+ """
808
+ # Before setting the data, clear it first.
809
+ self.__clear_axis_data()
810
+
811
+ y = UtilFuncs._as_list(y)
812
+
813
+ # Make sure number of columns mentioned in x-axis is
814
+ # same as number of columns mentioned in y-axis.
815
+ x = UtilFuncs._as_list(x)
816
+ if len(x) != len(y):
817
+ x = x * len(y)
818
+
819
+ scale = UtilFuncs._as_list(scale)
820
+
821
+ self.__x_axis_data.extend(x)
822
+ self.__y_axis_data.extend(y)
823
+ self.__scale_data.extend(scale)
824
+
825
+ def __clear_axis_data(self):
826
+ """
827
+ DESCRIPTION:
828
+ Internal function to clear the axis data.
829
+
830
+ RETURNS:
831
+ bool
832
+
833
+ EXAMPLES:
834
+ >>> ax = Axis()
835
+ >>> ax._Axis__clear_axis_data()
836
+ """
837
+ self.__x_axis_data.clear()
838
+ self.__y_axis_data.clear()
839
+ self.__scale_data.clear()
840
+
841
+ return True
842
+
843
+ def _has_data(self):
844
+ """
845
+ DESCRIPTION:
846
+ Internal function to check whether axis is associated with data or not.
847
+
848
+ RETURNS:
849
+ bool
850
+
851
+ EXAMPLES:
852
+ >>> ax = Axis()
853
+ >>> ax._has_data()
854
+ """
855
+ return bool(self.__x_axis_data)
856
+
857
+ def __repr__(self):
858
+ """
859
+ DESCRIPTION:
860
+ String representation of Axis Object.
861
+
862
+ RETURNS:
863
+ str.
864
+
865
+ RAISES:
866
+ None.
867
+
868
+ EXAMPLES:
869
+ # Create an Axis Object.
870
+ >>> from teradataml import Axis
871
+ >>> axis = Axis()
872
+ >>> print(axis)
873
+ """
874
+ return "{}(position={}, span={})".format(self.__class__.__name__, self.position, self.span)
875
+
876
+ def _get_plot_data(self):
877
+ """
878
+ DESCRIPTION:
879
+ Internal function to get the plot data. The function, which is called from Plot object
880
+ gets all the corresponding information to generate the plot.
881
+
882
+ RETURNS:
883
+ tuple, with 3 elements.
884
+ * element 1 represents again a tuple - 2nd element represents a SELECT statement
885
+ and 1st element represents a string which is the alias table name of SELECT
886
+ statement. It is necessary to get the alias table name also as series spec
887
+ references alias table names.
888
+ * element 2 represents either a series spec or matrix spec in string format.
889
+ * element 3 represents a dictionary with all the parameters for Plot.
890
+
891
+ RAISES:
892
+ None.
893
+
894
+ EXAMPLES:
895
+ >>> from teradataml import Axis
896
+ >>> axis = Axis()
897
+ >>> axis._get_plot_data()
898
+ """
899
+
900
+ # TODO: Run only once and store this information. Also, df.concat is a costly operation.
901
+ # Will be implemented with ELE-5803.
902
+ _virtual_table, _spec = self.__get_matrix_spec() if self.kind in (MapType.MESH.value, MapType.WIGGLE.value) \
903
+ else self.__get_series_spec()
904
+
905
+ return (_virtual_table, _spec, self._get_params())
906
+
907
+ def __get_series_spec(self):
908
+ """
909
+ DESCRIPTION:
910
+ Internal function to generate TDSeries Spec.
911
+ * If user pass 'series_id' by using the argument "series_identifier", then consider 'series_id'
912
+ as "series_identifier", x-axis data for 'row_axis' and y-axis data for 'payload_field' in
913
+ TDSeries object. Both, 'row_index_style' and 'payload_content' can be derived
914
+ programatically using __get_index_style() and __get_payload_content() respectively.
915
+ * If user do not pass 'series_id', then the function constructs the series spec as below:
916
+ * walk through x-axis and y-axis data.
917
+ * Construct a new teradataml DataFrame by generating a new column for ID field
918
+ along with x and y axis columns.
919
+ * ID Column value can be either str or float or int. Since the column will be
920
+ used as legend if user do not specify the legend, make sure ID Column value
921
+ is Y-Axis column name. This makes a very good user experience in Composite plots.
922
+ * For geometry and corr plot, y axis can be a tuple. In such cases, make sure to generate
923
+ the ID Column Value with all the columns mentioned in tuple.
924
+ * Note that, if it is tuple, Columns mentioned in tuple can have same name. Make
925
+ sure to generate the ID Column value as a unique value.
926
+ * With the above information, i.e, ID Column, x-axis data and y-axis data, construct a
927
+ new teradataml DataFrame.
928
+ * Repeat the above process if user pass multiple ColumnExpression(s) for y-axis data and
929
+ concatenate the generated DataFrame with previously generated DataFrame vertically.
930
+
931
+ RAISES:
932
+ TeradatamlException - If all the ColumnExpression(s) mentioned in y-axis are of not same type.
933
+
934
+ RETURNS:
935
+ tuple
936
+
937
+ EXAMPLES:
938
+ >>> from teradataml import Axis
939
+ >>> Axis()._Axis__get_series_spec()
940
+ """
941
+ from teradataml.dataframe.dataframe import TDSeries
942
+
943
+ if self.__series_identifier:
944
+ # Remove null values from DataFrame
945
+ if self.ignore_nulls:
946
+ _df = self.__x_axis_data[0]._parent_df
947
+ _subset = [column_name.name for column_name in self.__y_axis_data]
948
+ _subset.append(self.__x_axis_data[0].name)
949
+ _df = _df.dropna(how='any', subset=_subset)
950
+
951
+ # Execute the node and create the table in Vantage.
952
+ if self.__y_axis_data[0]._parent_df._table_name is None:
953
+ # Assuming all the columns are from same DataFrame.
954
+ repr(self.__y_axis_data[0]._parent_df)
955
+
956
+ series = TDSeries(data=_df if self.ignore_nulls else self.__x_axis_data[0]._parent_df,
957
+ id=self.__series_identifier,
958
+ row_index=self.__x_axis_data[0].name,
959
+ row_index_style=self.__get_index_style(self.__x_axis_data[0]),
960
+ payload_field=self.__y_axis_data[0].name,
961
+ payload_content=self.__get_payload_content(self.__y_axis_data[0]))
962
+ return "", series._get_sql_repr(True)
963
+
964
+ # Since user does not pass series identifier, convert the data in to TDSeries spec.
965
+ _index = 1
966
+ _previous_df = None
967
+
968
+ # Loop through every element and concatenate the dataframes vertically, i.e.,
969
+ # using UNION ALL clause.
970
+ for index, (_x, _y) in enumerate(zip(self.__x_axis_data, self.__y_axis_data)):
971
+ _df = _y._parent_df if not isinstance(_y, tuple) else _y[0]._parent_df
972
+ # For correlated and geometry graph, user can pass two params for PAYLOAD FIELD.
973
+ if isinstance(_y, tuple):
974
+ # Generate the id_column name programatically. This appears at legend
975
+ # if legend is shown. So, build it meaningfully.
976
+ _id_column = "{}_{}_{}".format(_y[0].compile(), _y[1].compile(), _index)
977
+ columns = {"y_identifier":UtilFuncs._replace_special_chars(_id_column), "id":index, "x":_x, "y1":_y[0], "y2":_y[1]}
978
+ payload_field = ["y1", "y2"]
979
+ else:
980
+ columns = {"y_identifier":UtilFuncs._replace_special_chars(_y.compile()), "id":index, "x":_x, "y":_y}
981
+ payload_field = "y"
982
+
983
+ _df = _df.assign(**columns, drop_columns=True)
984
+ # Concatenate with previous DataFrame.
985
+ if _previous_df:
986
+ # TODO: Note that concat is a very costly operation. Infact, it is very very slow.
987
+ # Consider generating VIRTUAL tables or UNPIVOT.
988
+ # Will be addressed with ELE-5808.
989
+ _df = _previous_df.concat(_df)
990
+
991
+ _previous_df = _df
992
+ # Flatten the DataFrame.
993
+ _index = _index + 1
994
+ # Remove null values from DataFrame
995
+ if self.ignore_nulls:
996
+ _df = _df.dropna()
997
+ repr(_df)
998
+ series = TDSeries(data=_df,
999
+ id="id",
1000
+ row_index="x",
1001
+ row_index_style=self.__get_index_style(_df.x),
1002
+ payload_field=payload_field,
1003
+ payload_content=self.__get_payload_content(self.__y_axis_data[0]))
1004
+
1005
+ # TODO: Should return a virtual table at first element if required.
1006
+ # Will be addressed with ELE-5808.
1007
+ return "", series._get_sql_repr(True)
1008
+
1009
+ def __get_matrix_spec(self):
1010
+ """
1011
+ DESCRIPTION:
1012
+ Internal function to generate TDMatrix Spec.
1013
+ * If user pass 'matrix_id' by using the argument "series_identifier", then consider 'matrix_id'
1014
+ as "series_identifier", x-axis data for 'row_axis' and y-axis data for 'column_axis' and
1015
+ scale data for 'payload_field' in TDMatrix object. Both, 'row_index_style' and 'payload_content'
1016
+ can be derived programatically using __get_index_style() and __get_payload_content()
1017
+ respectively.
1018
+ * If user do not pass 'matrix_id', then the function constructs the matrix spec as below:
1019
+ * walk through x-axis, y-axis and scale data.
1020
+ * Construct a new teradataml DataFrame by generating a new column for ID field
1021
+ * ID Column value can be either str or float or int. Since the column will be
1022
+ used as legend if user do not specify the legend, make sure ID Column value
1023
+ is Y-Axis column name. This makes a very good user experience in Composite plots.
1024
+ * With the above information, i.e, ID Column, x-axis data, y-axis data and scale data,
1025
+ construct a new teradataml DataFrame.
1026
+ * Repeat the above process if user pass multiple ColumnExpression(s) for y-axis data and
1027
+ concatenate the generated DataFrame with previously generated DataFrame vertically.
1028
+
1029
+ RAISES:
1030
+ TeradatamlException - If all the ColumnExpression(s) mentioned in y-axis are of not same type.
1031
+
1032
+ RETURNS:
1033
+ tuple
1034
+
1035
+ EXAMPLES:
1036
+ >>> from teradataml import Axis
1037
+ >>> Axis()._Axis__get_matrix_spec()
1038
+ """
1039
+ from teradataml.dataframe.dataframe import TDMatrix
1040
+
1041
+ if self.__series_identifier:
1042
+ # Remove null values from DataFrame
1043
+ if self.ignore_nulls:
1044
+ _df = self.__x_axis_data[0]._parent_df
1045
+ _subset = [column_name.name for column_name in self.__y_axis_data]
1046
+ _subset.append(self.__x_axis_data[0].name)
1047
+ _subset.extend(column_name.name for column_name in self.__scale_data)
1048
+ _df = _df.dropna(how='any', subset=_subset)
1049
+
1050
+ # Execute the node and create the table/view in Vantage.
1051
+ if self.__y_axis_data[0]._parent_df._table_name is None:
1052
+ repr(self.__y_axis_data[0]._parent_df)
1053
+
1054
+ matrix = TDMatrix(data=_df if self.ignore_nulls else self.__x_axis_data[0]._parent_df,
1055
+ id=self.__series_identifier,
1056
+ row_index=self.__x_axis_data[0].name,
1057
+ row_index_style=self.__get_index_style(self.__x_axis_data[0]),
1058
+ column_index=self.__y_axis_data[0].name,
1059
+ column_index_style=self.__get_index_style(self.__y_axis_data[0]),
1060
+ payload_field=self.__scale_data[0].name,
1061
+ payload_content=self.__get_payload_content(self.__scale_data[0]))
1062
+ return "", matrix._get_sql_repr(True)
1063
+
1064
+ # Since user do not pass matrix identifier, convert the data in to TDMatrix spec.
1065
+ _previous_df = None
1066
+ for index, (_x, _y, _data) in enumerate(zip(self.__x_axis_data, self.__y_axis_data, self.__scale_data)):
1067
+ _df = _x._parent_df
1068
+ columns = {"y_identifier": UtilFuncs._replace_special_chars(_y.compile()), "id":index, "x": _x, "y": _y, "data": _data}
1069
+ _df = _df.assign(**columns, drop_columns=True)
1070
+ if _previous_df:
1071
+ # TODO: Note that concat is a very costly operation. Infact, it is very very slow.
1072
+ # Consider generating VIRTUAL tables or UNPIVOT.
1073
+ # Will be addressed with ELE-5808.
1074
+ _df = _previous_df.concat(_df)
1075
+
1076
+ _previous_df = _df
1077
+ # Remove null values from DataFrame
1078
+ if self.ignore_nulls:
1079
+ _df = _df.dropna()
1080
+ repr(_df)
1081
+ matrix = TDMatrix(data=_df,
1082
+ id="id",
1083
+ row_index="x",
1084
+ row_index_style=self.__get_index_style(_df.x),
1085
+ column_index="y",
1086
+ column_index_style=self.__get_index_style(_df.y),
1087
+ payload_field="data",
1088
+ payload_content="REAL")
1089
+
1090
+ # TODO: Should return a virtual table at first element if required.
1091
+ # Will be addressed with ELE-5808.
1092
+ return "", matrix._get_sql_repr(True)
1093
+
1094
+ def __get_index_style(self, _x):
1095
+ """
1096
+ DESCRIPTION:
1097
+ Internal function to generate the value for argument "row_index_style"
1098
+ in TDSeries/TDMatrix objects.
1099
+
1100
+ PARAMETERS:
1101
+ _x:
1102
+ Required Argument.
1103
+ Specifies the ColumnExpression of x-axis data.
1104
+ Types: teradataml ColumnExpression.
1105
+
1106
+ RETURNS:
1107
+ str
1108
+
1109
+ EXAMPLES:
1110
+ >>> from teradataml import Axis
1111
+ >>> Axis()._Axis__get_index_style()
1112
+ """
1113
+ if UtilFuncs._teradata_type_to_python_type(_x.type) in ('int', 'float', 'str'):
1114
+ return "SEQUENCE"
1115
+ return "TIMECODE"
1116
+
1117
+ def __get_payload_content(self, _y):
1118
+ """
1119
+ DESCRIPTION:
1120
+ Internal function to generate the value for argument "payload_content"
1121
+ in TDSeries/TDMatrix objects.
1122
+
1123
+ PARAMETERS:
1124
+ _y:
1125
+ Required Argument.
1126
+ Specifies the ColumnExpression of y-axis data.
1127
+ Note that y-axis can be a list of ColumnExpression(s) also.
1128
+ Since all the Columns are concatenated vertically, every column
1129
+ type should be same. So, deriving "payload_content" value for 1st
1130
+ element is suffice.
1131
+ Types: teradataml ColumnExpression.
1132
+
1133
+ RETURNS:
1134
+ str
1135
+
1136
+ EXAMPLES:
1137
+ >>> from teradataml import Axis
1138
+ >>> Axis()._Axis__get_payload_content()
1139
+ """
1140
+ # If y-axis is a tuple, return MULTIVAR_ANYTYPE.
1141
+ if self.kind == MapType.GEOMETRY.value:
1142
+ return "MULTIVAR_ANYTYPE"
1143
+
1144
+ if self.kind == MapType.CORR.value:
1145
+ return "MULTIVAR_REAL" if isinstance(_y, tuple) else "REAL"
1146
+
1147
+ return "REAL"
1148
+
1149
+ @staticmethod
1150
+ def __get_color_code(color):
1151
+ """
1152
+ DESCRIPTION:
1153
+ Internal function to get the string for a color which is recognised by TD_PLOT.
1154
+
1155
+ RETURNS:
1156
+ str
1157
+
1158
+ EXAMPLES:
1159
+ >>> from teradataml import Axis
1160
+ >>> Axis()._Axis__get_color_code("orange")
1161
+ """
1162
+ default_colors = {'blue', 'orange', 'green', 'red', 'purple', 'brown', 'pink', 'gray', 'olive', 'cyan'}
1163
+ return "tab:{}".format(color) if color in default_colors else "xkcd:{}".format(color)
1164
+
1165
+ def __get_series_parameters(self):
1166
+ """
1167
+ DESCRIPTION:
1168
+ Internal function to generate the parameters for individual Series.
1169
+
1170
+ RETURNS:
1171
+ list
1172
+
1173
+ EXAMPLES:
1174
+ >>> from teradataml import Axis
1175
+ >>> Axis()._Axis__get_series_parameters()
1176
+ """
1177
+ _series_params = []
1178
+ for index in range(len(self.__y_axis_data)):
1179
+ _series_param = {"ID": index+1}
1180
+ color = self._get_series_param(self.color, index)
1181
+ if color:
1182
+ _series_param["COLOR"] = "'{}'".format(self.__get_color_code(color))
1183
+
1184
+ line_style = self._get_series_param(self.linestyle, index)
1185
+ self.__update_plot_params(_series_param, "LINESTYLE", line_style)
1186
+
1187
+ line_width = self._get_series_param(self.linewidth, index)
1188
+ self.__update_plot_params(_series_param, "LINEWIDTH", line_width)
1189
+
1190
+ marker = self._get_series_param(self.marker, index)
1191
+ self.__update_plot_params(_series_param, "MARKER", marker)
1192
+
1193
+ marker_size = self._get_series_param(self.markersize, index)
1194
+ self.__update_plot_params(_series_param, "MARKERSIZE", marker_size)
1195
+
1196
+ # If user pass legend name use it. Else, derive it from Y-Axis.
1197
+ # Legend is not applicable for wiggle and mesh plots.
1198
+ if self.kind not in (MapType.MESH.value, MapType.WIGGLE.value):
1199
+ legend_name = self._get_series_param(self.legend, index)
1200
+ if legend_name:
1201
+ _series_param["NAME"] = "'{}'".format(legend_name)
1202
+ else:
1203
+ columns = self.__y_axis_data[index] if isinstance(self.__y_axis_data[index], tuple) else \
1204
+ [self.__y_axis_data[index]]
1205
+ columns = [UtilFuncs._replace_special_chars(col.compile()) for col in columns]
1206
+ _series_param["NAME"] = "'{}'".format(" / ".join(columns))
1207
+
1208
+ _series_params.append(_series_param)
1209
+ return _series_params
1210
+
1211
+ def _get_params(self):
1212
+ """
1213
+ DESCRIPTION:
1214
+ Internal function to generate the parameters for the plot.
1215
+
1216
+ RETURNS:
1217
+ dict
1218
+
1219
+ EXAMPLES:
1220
+ >>> from teradataml import Axis
1221
+ >>> Axis()._Axis_get_params()
1222
+ """
1223
+ func_params = {"CELL": (self.position[1], self.position[0]),
1224
+ "SPAN": (self.span[1], self.span[0]),
1225
+ "TYPE": "'{}'".format(self.kind),
1226
+ "XLABEL": "'{}'".format(self.get_xaxis_label()),
1227
+ "YLABEL": "'{}'".format(self.get_yaxis_label()),
1228
+ "SERIES": self.__get_series_parameters()
1229
+ }
1230
+
1231
+ self.__update_plot_params(func_params, "TITLE", self.title)
1232
+ self.__update_plot_params(func_params, "XFORMAT", self.xtick_format)
1233
+ self.__update_plot_params(func_params, "YFORMAT", self.ytick_format)
1234
+ self.__update_plot_params(func_params, "XRANGE", self.xlim)
1235
+ self.__update_plot_params(func_params, "YRANGE", self.ylim)
1236
+
1237
+ if self.reverse_xaxis is True:
1238
+ func_params["FLIPX"] = 1
1239
+
1240
+ if self.reverse_yaxis is True:
1241
+ func_params["FLIPY"] = 1
1242
+
1243
+ # For subplot or multiple series, make sure to populate legend.
1244
+ # For mainplot, leave it to user's choice.
1245
+ if self._is_sub_plot() or self.__series_identifier or (len(self.__y_axis_data) > 1) and \
1246
+ self.kind not in (MapType.MESH.value, MapType.WIGGLE.value):
1247
+ func_params["LEGEND"] = "'{}'".format("best" if not self.legend_style else self.legend_style)
1248
+ else:
1249
+ self.__update_plot_params(func_params, "LEGEND", self.legend_style)
1250
+
1251
+ # Populate GRID parameters.
1252
+ if self.grid_format or self.grid_color or self.grid_linestyle or self.grid_linewidth:
1253
+ _grid_params = {}
1254
+ self.__update_plot_params(_grid_params, "COLOR", self.__get_color_code(self.grid_color))
1255
+ self.__update_plot_params(_grid_params, "FORMAT", self.grid_format)
1256
+ self.__update_plot_params(_grid_params, "LINESTYLE", self.grid_linestyle)
1257
+ self.__update_plot_params(_grid_params, "LINEWIDTH", self.grid_linewidth)
1258
+ func_params["GRID"] = _grid_params
1259
+
1260
+ # Populate color map parameters.
1261
+ if self.cmap or self.vmin:
1262
+ # TODO: User should control the COLORBAR. Expose a parameter to user.
1263
+ _color_map_params = {"COLORBAR": 1}
1264
+ self.__update_plot_params(_color_map_params, "RANGE", None if self.vmin is None else (self.vmin, self.vmax))
1265
+ self.__update_plot_params(_color_map_params, "NAME", self.cmap)
1266
+ func_params["COLORMAP"] = _color_map_params
1267
+
1268
+ return func_params
1269
+
1270
+ @staticmethod
1271
+ def __update_plot_params(func_params, plot_param, value):
1272
+ """
1273
+ DESCRIPTION:
1274
+ Internal function to update the Plot parameter.
1275
+ The function check whether "value" is None or not. If None,
1276
+ no action from this function on "func_params". Else, "func_params"
1277
+ is updated with "plot_param".
1278
+
1279
+ EXAMPLES:
1280
+ >>> from teradataml import Axis
1281
+ >>> Axis()._Axis__update_plot_params({}, "a", "b")
1282
+ """
1283
+ if value is not None:
1284
+ func_params[plot_param] = "'{}'".format(value) if isinstance(value, str) else value
1285
+
1286
+ @staticmethod
1287
+ def _get_series_param(param, index):
1288
+ """
1289
+ DESCRIPTION:
1290
+ Internal function to get the series parameter.
1291
+ User can pass a list of values or a single value for series parameter's.
1292
+ The function get's the corresponding element based on the index. If
1293
+ element is not found, the function returns a None.
1294
+
1295
+ EXAMPLES:
1296
+ >>> from teradataml import Axis
1297
+ >>> Axis()._Axis_get_series_param(["a"], 1)
1298
+ """
1299
+ try:
1300
+ return UtilFuncs._as_list(param)[index]
1301
+ except IndexError:
1302
+ return None
1303
+
1304
+ def get_xaxis_label(self):
1305
+ """
1306
+ DESCRIPTION:
1307
+ The function generates the x-axis label based on user input. If user specifies x-axis
1308
+ label, the function returns the same. Otherwise, the function generates the x-axis
1309
+ label from x-axis Column Name.
1310
+
1311
+ RETURNS:
1312
+ str
1313
+
1314
+ EXAMPLES:
1315
+ >>> from teradataml import Axis
1316
+ >>> Axis().get_xaxis_label()
1317
+ """
1318
+ return self.xlabel if self.xlabel is not None else self.__get_label([self.__x_axis_data[0]])
1319
+
1320
+ def get_yaxis_label(self):
1321
+ """
1322
+ DESCRIPTION:
1323
+ The function generates the y-axis label based on user input. If user specifies y-axis
1324
+ label, the function returns the same. Otherwise, the function generates the y-axis
1325
+ label from y-axis Column Name.
1326
+
1327
+ RETURNS:
1328
+ str
1329
+
1330
+ EXAMPLES:
1331
+ >>> from teradataml import Axis
1332
+ >>> Axis().get_yaxis_label()
1333
+ """
1334
+ return self.ylabel if self.ylabel is not None else self.__get_label(self.__y_axis_data)
1335
+
1336
+ @staticmethod
1337
+ def __get_label(data):
1338
+ """
1339
+ DESCRIPTION:
1340
+ Internal function to generate the label.
1341
+
1342
+ RETURNS:
1343
+ str
1344
+
1345
+ EXAMPLES:
1346
+ >>> from teradataml import Axis
1347
+ >>> Axis()._Axis__get_label()
1348
+ """
1349
+ _rpl_spcl_chars = UtilFuncs._replace_special_chars
1350
+ # For correlation graph and GeoSpatial, user can pass a tuple of columns. Basically,
1351
+ # the SERIES_SPEC accepts 2 values for FIELD column.
1352
+ if isinstance(data[0], tuple):
1353
+ # If it is a tuple, it has only two elements, both represents DataFrame columns.
1354
+ # Generate the label based on two column names.
1355
+ return " / ".join(
1356
+ ("{} - {}".format(_rpl_spcl_chars(c[0].compile()), _rpl_spcl_chars(c[1].compile())) for c in data))
1357
+
1358
+ return " / ".join((_rpl_spcl_chars(c_name.compile()) for c_name in data))
1359
+
1360
+ def _is_sub_plot(self):
1361
+ """
1362
+ DESCRIPTION:
1363
+ Internal function to check if the Axis is for subplot or not.
1364
+
1365
+ RETURNS:
1366
+ bool
1367
+
1368
+ EXAMPLES:
1369
+ >>> from teradataml import Axis
1370
+ >>> Axis()._is_sub_plot()
1371
+ """
1372
+ return False
1373
+
1374
+
1375
+ class AxesSubplot(Axis):
1376
+ def _is_sub_plot(self):
1377
+ """
1378
+ DESCRIPTION:
1379
+ Internal function to check if the Axis is for subplot or not.
1380
+
1381
+ RETURNS:
1382
+ bool
1383
+
1384
+ EXAMPLES:
1385
+ >>> from teradataml import Axis
1386
+ >>> Axis()._is_sub_plot()
1387
+ """
1388
+ return True