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

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

Potentially problematic release.


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

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