sdk-seshat-python 0.4.6__tar.gz → 0.5.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/PKG-INFO +18 -17
  2. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/pyproject.toml +21 -20
  3. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/__init__.py +23 -0
  4. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/data_class/base.py +11 -3
  5. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/data_class/pandas.py +5 -1
  6. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/data_class/pyspark.py +18 -0
  7. sdk_seshat_python-0.5.3/seshat/general/command/generate_story.py +38 -0
  8. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/config.py +0 -1
  9. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/env-templ +0 -1
  10. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/recommender.py-tmpl +1 -6
  11. sdk_seshat_python-0.5.3/seshat/general/transformer_story/base.py +448 -0
  12. sdk_seshat_python-0.5.3/seshat/general/transformer_story/challenges.py +129 -0
  13. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/profiler/base.py +7 -1
  14. sdk_seshat_python-0.5.3/seshat/source/api/base.py +150 -0
  15. sdk_seshat_python-0.5.3/seshat/source/api/scrape.py +71 -0
  16. sdk_seshat_python-0.5.3/seshat/source/base.py +100 -0
  17. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/database/base.py +7 -3
  18. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/exceptions.py +6 -0
  19. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/local/base.py +16 -3
  20. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/saver/base.py +7 -4
  21. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/saver/database.py +4 -1
  22. sdk_seshat_python-0.5.3/seshat/transformer/aggregator/__init__.py +2 -0
  23. sdk_seshat_python-0.5.3/seshat/transformer/aggregator/base.py +10 -0
  24. sdk_seshat_python-0.4.6/seshat/transformer/aggregator/base.py → sdk_seshat_python-0.5.3/seshat/transformer/aggregator/field.py +40 -14
  25. sdk_seshat_python-0.5.3/seshat/transformer/deriver/__init__.py +27 -0
  26. sdk_seshat_python-0.5.3/seshat/transformer/deriver/base.py +12 -0
  27. sdk_seshat_python-0.5.3/seshat/transformer/deriver/branch_classifier.py +160 -0
  28. sdk_seshat_python-0.5.3/seshat/transformer/deriver/changing_over_time.py +143 -0
  29. sdk_seshat_python-0.5.3/seshat/transformer/deriver/comprehensive_features.py +111 -0
  30. sdk_seshat_python-0.5.3/seshat/transformer/deriver/date_time_type.py +27 -0
  31. sdk_seshat_python-0.5.3/seshat/transformer/deriver/duplicated_sframe.py +56 -0
  32. sdk_seshat_python-0.5.3/seshat/transformer/deriver/feature_for_address.py +192 -0
  33. sdk_seshat_python-0.5.3/seshat/transformer/deriver/fraction.py +102 -0
  34. sdk_seshat_python-0.5.3/seshat/transformer/deriver/group_by_deriver_count.py +55 -0
  35. sdk_seshat_python-0.5.3/seshat/transformer/deriver/group_by_deriver_mean_max.py +61 -0
  36. sdk_seshat_python-0.5.3/seshat/transformer/deriver/group_by_time_window.py +94 -0
  37. sdk_seshat_python-0.5.3/seshat/transformer/deriver/interacted_symbols_to_sentence.py +273 -0
  38. sdk_seshat_python-0.5.3/seshat/transformer/deriver/one_column_percentile_filter.py +54 -0
  39. sdk_seshat_python-0.5.3/seshat/transformer/deriver/operation_on_cols.py +132 -0
  40. sdk_seshat_python-0.5.3/seshat/transformer/deriver/percentile_transaction_value.py +125 -0
  41. sdk_seshat_python-0.5.3/seshat/transformer/deriver/product_sum.py +88 -0
  42. sdk_seshat_python-0.5.3/seshat/transformer/deriver/profit_loss.py +223 -0
  43. sdk_seshat_python-0.5.3/seshat/transformer/deriver/rank.py +87 -0
  44. sdk_seshat_python-0.5.3/seshat/transformer/deriver/sender_receiver_tokens.py +134 -0
  45. sdk_seshat_python-0.5.3/seshat/transformer/deriver/sframe_from_cols.py +65 -0
  46. sdk_seshat_python-0.5.3/seshat/transformer/deriver/shift.py +142 -0
  47. sdk_seshat_python-0.5.3/seshat/transformer/deriver/static_value_column_adder.py +98 -0
  48. sdk_seshat_python-0.5.3/seshat/transformer/deriver/tagger.py +122 -0
  49. sdk_seshat_python-0.5.3/seshat/transformer/deriver/token_feature_transformation.py +93 -0
  50. sdk_seshat_python-0.5.3/seshat/transformer/deriver/token_last_price.py +132 -0
  51. sdk_seshat_python-0.5.3/seshat/transformer/deriver/token_price.py +82 -0
  52. sdk_seshat_python-0.5.3/seshat/transformer/deriver/token_swap_trade.py +141 -0
  53. sdk_seshat_python-0.5.3/seshat/transformer/imputer/__init__.py +2 -0
  54. sdk_seshat_python-0.5.3/seshat/transformer/imputer/base.py +10 -0
  55. sdk_seshat_python-0.5.3/seshat/transformer/imputer/nan.py +96 -0
  56. sdk_seshat_python-0.5.3/seshat/transformer/merger/__init__.py +5 -0
  57. sdk_seshat_python-0.5.3/seshat/transformer/merger/base.py +6 -0
  58. sdk_seshat_python-0.4.6/seshat/transformer/merger/base.py → sdk_seshat_python-0.5.3/seshat/transformer/merger/common.py +44 -80
  59. sdk_seshat_python-0.5.3/seshat/transformer/merger/list.py +138 -0
  60. sdk_seshat_python-0.5.3/seshat/transformer/merger/multi.py +70 -0
  61. sdk_seshat_python-0.5.3/seshat/transformer/merger/nested_key.py +148 -0
  62. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/pipeline/base.py +40 -4
  63. sdk_seshat_python-0.5.3/seshat/transformer/pipeline/branch.py +279 -0
  64. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/pipeline/recommendation/address_pipeline.py +5 -5
  65. sdk_seshat_python-0.5.3/seshat/transformer/pseudo/table_existence.py +46 -0
  66. sdk_seshat_python-0.5.3/seshat/transformer/reducer/__init__.py +2 -0
  67. sdk_seshat_python-0.5.3/seshat/transformer/reducer/base.py +12 -0
  68. sdk_seshat_python-0.4.6/seshat/transformer/reducer/base.py → sdk_seshat_python-0.5.3/seshat/transformer/reducer/llm_insight.py +85 -23
  69. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/schema/base.py +51 -1
  70. sdk_seshat_python-0.5.3/seshat/transformer/splitter/__init__.py +4 -0
  71. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/splitter/base.py +12 -29
  72. sdk_seshat_python-0.5.3/seshat/transformer/splitter/block/base.py +116 -0
  73. sdk_seshat_python-0.5.3/seshat/transformer/splitter/multi.py +89 -0
  74. sdk_seshat_python-0.5.3/seshat/transformer/splitter/random/base.py +83 -0
  75. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/__init__.py +10 -0
  76. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/base.py +17 -0
  77. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/change_column_name.py +25 -0
  78. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/contract.py +103 -0
  79. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/duplicate.py +56 -0
  80. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/feature.py +58 -0
  81. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/filter.py +152 -0
  82. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/group.py +58 -0
  83. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/inclusion.py +98 -0
  84. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/low_transaction.py +131 -0
  85. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/nan.py +47 -0
  86. sdk_seshat_python-0.5.3/seshat/transformer/trimmer/zero_address.py +65 -0
  87. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/vectorizer/cosine_similarity.py +127 -19
  88. sdk_seshat_python-0.5.3/seshat/transformer/vectorizer/pivot.py +179 -0
  89. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/vectorizer/utils.py +2 -2
  90. sdk_seshat_python-0.5.3/seshat/utils/analyze_method_call.py +51 -0
  91. sdk_seshat_python-0.5.3/seshat/utils/find_classes.py +24 -0
  92. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/llm_client/chatbot_factory.py +23 -60
  93. sdk_seshat_python-0.5.3/seshat/utils/llm_client/clients/aws.py +35 -0
  94. sdk_seshat_python-0.5.3/seshat/utils/llm_client/clients/google.py +39 -0
  95. sdk_seshat_python-0.5.3/seshat/utils/llm_client/clients/openai.py +25 -0
  96. sdk_seshat_python-0.5.3/seshat/utils/llm_client/clients/proxy.py +211 -0
  97. sdk_seshat_python-0.5.3/seshat/utils/llm_client/llm_provider.py +8 -0
  98. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/logging/__init__.py +1 -1
  99. sdk_seshat_python-0.4.6/seshat/source/base.py +0 -49
  100. sdk_seshat_python-0.4.6/seshat/source/flip_side/__init__.py +0 -1
  101. sdk_seshat_python-0.4.6/seshat/source/flip_side/base.py +0 -259
  102. sdk_seshat_python-0.4.6/seshat/transformer/deriver/__init__.py +0 -26
  103. sdk_seshat_python-0.4.6/seshat/transformer/deriver/base.py +0 -2197
  104. sdk_seshat_python-0.4.6/seshat/transformer/imputer/base.py +0 -57
  105. sdk_seshat_python-0.4.6/seshat/transformer/merger/__init__.py +0 -2
  106. sdk_seshat_python-0.4.6/seshat/transformer/merger/nested_key.py +0 -79
  107. sdk_seshat_python-0.4.6/seshat/transformer/pipeline/branch.py +0 -177
  108. sdk_seshat_python-0.4.6/seshat/transformer/pseudo/table_existence.py +0 -26
  109. sdk_seshat_python-0.4.6/seshat/transformer/splitter/__init__.py +0 -1
  110. sdk_seshat_python-0.4.6/seshat/transformer/splitter/block/base.py +0 -39
  111. sdk_seshat_python-0.4.6/seshat/transformer/splitter/random/base.py +0 -28
  112. sdk_seshat_python-0.4.6/seshat/transformer/trimmer/__init__.py +0 -6
  113. sdk_seshat_python-0.4.6/seshat/transformer/trimmer/base.py +0 -497
  114. sdk_seshat_python-0.4.6/seshat/transformer/vectorizer/pivot.py +0 -118
  115. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/LICENSE +0 -0
  116. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/README.md +0 -0
  117. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/__main__.py +0 -0
  118. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/data_class/__init__.py +0 -0
  119. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/__init__.py +0 -0
  120. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/base.py +0 -0
  121. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/__init__.py +0 -0
  122. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/base.py +0 -0
  123. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/general/__init__.py +0 -0
  124. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/general/classification.py +0 -0
  125. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/general/clustering.py +0 -0
  126. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/general/regression.py +0 -0
  127. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/recommendation/__init__.py +0 -0
  128. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/recommendation/diversity.py +0 -0
  129. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/evaluation/evaluator/recommendation/ranking.py +0 -0
  130. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/feature_view/__init__.py +0 -0
  131. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/feature_view/base.py +0 -0
  132. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/__init__.py +0 -0
  133. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/command/__init__.py +1 -1
  134. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/command/base.py +0 -0
  135. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/command/code_inspect.py +0 -0
  136. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/command/job_status.py +0 -0
  137. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/command/setup_project.py +0 -0
  138. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/command/submit_to_network.py +0 -0
  139. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/exceptions.py +0 -0
  140. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/lazy_config.py +0 -0
  141. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/models.py +0 -0
  142. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/README.md-tmpl +0 -0
  143. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/config.py-tmpl +0 -0
  144. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/jobignore-tmpl +0 -0
  145. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/pyproject._toml-tmpl +0 -0
  146. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/general/template/recommender-jupyter.ipynb-tmpl +0 -0
  147. {sdk_seshat_python-0.4.6/seshat/transformer/aggregator → sdk_seshat_python-0.5.3/seshat/general/transformer_story}/__init__.py +0 -0
  148. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/profiler/__init__.py +0 -0
  149. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/profiler/decorator.py +0 -0
  150. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/profiler/format.py +0 -0
  151. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/__init__.py +0 -0
  152. {sdk_seshat_python-0.4.6/seshat/transformer/augmenter → sdk_seshat_python-0.5.3/seshat/source/api}/__init__.py +0 -0
  153. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/database/__init__.py +0 -0
  154. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/local/__init__.py +0 -0
  155. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/mixins.py +0 -0
  156. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/multisource/__init__.py +0 -0
  157. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/multisource/base.py +0 -0
  158. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/saver/__init__.py +0 -0
  159. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/saver/utils/__init__.py +0 -0
  160. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/source/saver/utils/postgres.py +0 -0
  161. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/__init__.py +0 -0
  162. {sdk_seshat_python-0.4.6/seshat/transformer/imputer → sdk_seshat_python-0.5.3/seshat/transformer/augmenter}/__init__.py +0 -0
  163. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/augmenter/base.py +0 -0
  164. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/base.py +0 -0
  165. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/deriver/from_database.py +0 -0
  166. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/pipeline/__init__.py +0 -0
  167. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/pipeline/recommendation/__init__.py +0 -0
  168. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/pseudo/__init__.py +0 -0
  169. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/pseudo/action_gate.py +0 -0
  170. {sdk_seshat_python-0.4.6/seshat/transformer/reducer → sdk_seshat_python-0.5.3/seshat/transformer/scaler}/__init__.py +0 -0
  171. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/scaler/base.py +0 -0
  172. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/schema/__init__.py +0 -0
  173. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/splitter/block/__init__.py +0 -0
  174. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/splitter/random/__init__.py +0 -0
  175. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/splitter/time_line/__init__.py +0 -0
  176. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/splitter/time_line/base.py +0 -0
  177. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/vectorizer/__init__.py +0 -0
  178. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/transformer/vectorizer/base.py +0 -0
  179. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/__init__.py +0 -0
  180. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/batcher.py +0 -0
  181. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/binary_utils.py +0 -0
  182. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/clean_json.py +0 -0
  183. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/col_to_list.py +0 -0
  184. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/contracts.py +0 -0
  185. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/date_utils.py +0 -0
  186. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/file.py +0 -0
  187. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/file_cryptography.py +0 -0
  188. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/filter_json.py +0 -0
  189. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/grouper.py +0 -0
  190. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/jobignore.py +0 -0
  191. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/join_columns_to_list.py +0 -0
  192. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/join_str.py +0 -0
  193. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/llm_client/__init__.py +0 -0
  194. {sdk_seshat_python-0.4.6/seshat/transformer/scaler → sdk_seshat_python-0.5.3/seshat/utils/llm_client/clients}/__init__.py +0 -0
  195. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/logging/base_logger.py +0 -0
  196. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/logging/console_logger.py +0 -0
  197. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/logging/logstash_logger.py +0 -0
  198. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/logging/multi_logger.py +0 -0
  199. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/memory.py +0 -0
  200. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/mixin.py +0 -0
  201. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/obfuscate.py +0 -0
  202. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/package_utils.py +0 -0
  203. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/pandas_func.py +0 -0
  204. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/patching.py +0 -0
  205. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/pyspark_func.py +0 -0
  206. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/rest.py +0 -0
  207. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/singleton.py +0 -0
  208. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/validation.py +0 -0
  209. {sdk_seshat_python-0.4.6 → sdk_seshat_python-0.5.3}/seshat/utils/zip_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sdk-seshat-python
3
- Version: 0.4.6
3
+ Version: 0.5.3
4
4
  Summary: Seshat python SDK is a library to help create ML data pipelines.
5
5
  License: Commercial - see LICENSE.txt
6
6
  Author: SeshatLabs
@@ -9,35 +9,36 @@ Requires-Python: >=3.11,<4.0
9
9
  Classifier: License :: Other/Proprietary License
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.11
12
- Provides-Extra: flipside-support
13
- Provides-Extra: postgres-support
14
12
  Requires-Dist: backoff (>=2.2.1,<3.0.0)
13
+ Requires-Dist: beautifulsoup4 (>=4.14.3,<5.0.0)
15
14
  Requires-Dist: bokeh (>=3.6.0,<4.0.0)
16
- Requires-Dist: boto3 (>=1.35.68,<2.0.0)
15
+ Requires-Dist: boto3 (==1.40.51)
17
16
  Requires-Dist: croniter (>=6.0.0,<7.0.0)
18
- Requires-Dist: cryptography (>=44.0.0,<45.0.0)
17
+ Requires-Dist: cryptography (==46.0.2)
19
18
  Requires-Dist: dask[array,complete,dataframe,distributed] (>=2024.10.0,<2025.0.0)
20
- Requires-Dist: flipside (>=2.1.0,<3.0.0) ; extra == "flipside-support"
21
- Requires-Dist: langchain (>=0.3.23,<0.4.0)
22
- Requires-Dist: langchain-aws (>=0.2.31,<0.3.0)
23
- Requires-Dist: langchain-community (>=0.3.21,<0.4.0)
24
- Requires-Dist: langchain-openai (>=0.3.12,<0.4.0)
19
+ Requires-Dist: google-cloud-aiplatform (>=1.120.0,<2.0.0)
20
+ Requires-Dist: langchain (==0.3.27)
21
+ Requires-Dist: langchain-aws (==0.2.35)
22
+ Requires-Dist: langchain-community (==0.3.31)
23
+ Requires-Dist: langchain-google-vertexai (>=2.1.2,<3.0.0)
24
+ Requires-Dist: langchain-openai (==0.3.35)
25
25
  Requires-Dist: loguru (>=0.7.3,<0.8.0)
26
26
  Requires-Dist: memory-profiler (>=0.61.0,<0.62.0)
27
- Requires-Dist: openai (>=1.73.0,<2.0.0)
27
+ Requires-Dist: openai (==2.3.0)
28
28
  Requires-Dist: pandas (>=2.2.1,<3.0.0)
29
- Requires-Dist: psycopg2-binary (>=2.9,<3.0) ; extra == "postgres-support"
30
- Requires-Dist: pyarmor (>=8.5.1,<9.0.0)
31
- Requires-Dist: pydantic (>=2.7.4,<3.0.0)
29
+ Requires-Dist: psycopg2-binary (==2.9.11)
30
+ Requires-Dist: pyarmor (>=9.1.9,<10.0.0)
31
+ Requires-Dist: pydantic (==2.12.1)
32
32
  Requires-Dist: pyspark (>=3.5.1,<4.0.0)
33
33
  Requires-Dist: python-logstash-async (>=4.0.2,<5.0.0)
34
- Requires-Dist: requests (==2.32.0)
35
- Requires-Dist: rich (>=13.9.4,<14.0.0)
34
+ Requires-Dist: requests (==2.32.5)
35
+ Requires-Dist: rich (==14.2.0)
36
36
  Requires-Dist: scikit-learn (>=1.4.1.post1,<2.0.0)
37
37
  Requires-Dist: setuptools (>=80.9.0,<81.0.0)
38
+ Requires-Dist: simplejson (>=3.20.2,<4.0.0)
38
39
  Requires-Dist: sqlalchemy (>=2.0.29,<3.0.0)
39
40
  Requires-Dist: toml (>=0.10.2,<0.11.0)
40
- Requires-Dist: typer (>=0.12.3,<0.13.0)
41
+ Requires-Dist: typer (>=0.19.2,<0.20.0)
41
42
  Description-Content-Type: text/markdown
42
43
 
43
44
 
@@ -1,8 +1,8 @@
1
1
  [tool.poetry]
2
2
  name = "sdk-seshat-python"
3
- version = "0.4.6"
3
+ version = "0.5.3"
4
4
  description = "Seshat python SDK is a library to help create ML data pipelines."
5
- authors = ["SeshatLabs <info@seshatlabs.xyz>"]
5
+ authors = ["SeshatLabs <info@seshatlabs.xyz>"]
6
6
  packages = [{ include = "seshat", from = "." }]
7
7
  readme = "README.md"
8
8
  license = "Commercial - see LICENSE.txt"
@@ -13,40 +13,41 @@ python = "^3.11"
13
13
  pandas = "^2.2.1"
14
14
  scikit-learn = "^1.4.1.post1"
15
15
  pyspark = "^3.5.1"
16
- flipside = "^2.1.0"
17
16
  sqlalchemy = "^2.0.29"
18
17
  memory-profiler = "^0.61.0"
19
- typer = "^0.12.3"
20
- dask = {extras = ["array", "complete", "dataframe", "distributed"], version = "^2024.10.0"}
18
+ typer = "^0.19.2"
19
+ dask = { extras = ["array", "complete", "dataframe", "distributed"], version = "^2024.10.0" }
21
20
  bokeh = "^3.6.0"
22
21
  toml = "^0.10.2"
23
- rich = "^13.9.4"
24
- boto3 = "^1.35.68"
25
- requests = "2.32.0"
22
+ rich = "14.2.0"
23
+ boto3 = "1.40.51"
24
+ requests = "2.32.5"
26
25
  backoff = "^2.2.1"
27
- cryptography = "^44.0.0"
26
+ cryptography = "46.0.2"
28
27
  loguru = "^0.7.3"
29
- openai = "^1.73.0"
30
- pydantic = "^2.7.4"
31
- langchain = "^0.3.23"
32
- langchain-community = "^0.3.21"
33
- langchain-openai = "^0.3.12"
34
- pyarmor = "^8.5.1"
28
+ openai = "2.3.0"
29
+ pydantic = "2.12.1"
30
+ langchain = "0.3.27"
31
+ langchain-community = "0.3.31"
32
+ langchain-openai = "0.3.35"
33
+ pyarmor = "^9.1.9"
35
34
  python-logstash-async = "^4.0.2"
36
35
  croniter = "^6.0.0"
37
- psycopg2-binary = { version = "^2.9", optional = true }
36
+ psycopg2-binary = "2.9.11"
38
37
  setuptools = "^80.9.0"
39
- langchain-aws = "^0.2.31"
38
+ langchain-aws = "0.2.35"
39
+ langchain-google-vertexai = "^2.1.2"
40
+ google-cloud-aiplatform = "^1.120.0"
41
+ simplejson = "^3.20.2"
42
+ beautifulsoup4 = "^4.14.3"
40
43
 
41
- [tool.poetry.extras]
42
- flipside_support = ["flipside"]
43
- postgres_support = ["psycopg2-binary"]
44
44
 
45
45
  [tool.poetry.group.dev.dependencies]
46
46
  flake8 = "^7.0.0"
47
47
  black = "^24.3.0"
48
48
  pre-commit = "^3.7.0"
49
49
  pytest = "^8.3.4"
50
+ pytest-xdist = "^3.8.0"
50
51
 
51
52
  [build-system]
52
53
  requires = ["poetry-core>=1.0.0"]
@@ -6,6 +6,7 @@ import typer
6
6
  from rich.console import Console
7
7
  from rich.table import Table
8
8
 
9
+ from seshat.general.command import SubmitCommand
9
10
  from seshat.general.command import (
10
11
  SubmitCommand,
11
12
  JobMetadata,
@@ -13,6 +14,7 @@ from seshat.general.command import (
13
14
  ExecutionMode,
14
15
  )
15
16
  from seshat.general.command.code_inspect import CodeInspectCommand
17
+ from seshat.general.command.generate_story import GenerateStoryCommand
16
18
  from seshat.general.command.job_status import JobStatusCommand
17
19
  from seshat.general.command.setup_project import RECOMMENDATION, SetUpProjectCommand
18
20
  from seshat.general.exceptions import NoConfigSetError, RestClientException
@@ -430,6 +432,27 @@ def job_status(
430
432
  raise typer.Exit(1)
431
433
 
432
434
 
435
+ @app.command(name="generate-story")
436
+ def generate_story(
437
+ file_path: Path = typer.Option(
438
+ None,
439
+ "--file",
440
+ "-f",
441
+ help="Path to output story.json file (default: ./story.json)",
442
+ )
443
+ ):
444
+ result = GenerateStoryCommand().generate()
445
+ if file_path is None:
446
+ file_path = Path("story.json")
447
+ try:
448
+ with open(file_path, "w") as f:
449
+ f.write(result)
450
+ typer.echo(f"Story written to {file_path}")
451
+ except Exception as e:
452
+ typer.echo(f"Failed to write story to {file_path}: {e}", err=True)
453
+ raise typer.Exit(1)
454
+
455
+
433
456
  @app.callback()
434
457
  def main(verbose: bool = False):
435
458
  state["verbose"] = verbose
@@ -1,5 +1,5 @@
1
1
  import copy
2
- from typing import Dict, Iterable, Type, List
2
+ from typing import Dict, Iterable, Type, List, Any
3
3
 
4
4
  from seshat.general import configs
5
5
  from seshat.general.exceptions import (
@@ -43,10 +43,14 @@ class SFrame:
43
43
  def __deepcopy__(self, memo):
44
44
  return type(self)(copy.deepcopy(self.data, memo))
45
45
 
46
- def to_raw(self) -> object:
46
+ @property
47
+ def empty(self, default_key=configs.DEFAULT_SF_KEY):
48
+ pass
49
+
50
+ def to_raw(self) -> Any:
47
51
  return self.data
48
52
 
49
- def set_raw(self, key: str, data: object):
53
+ def set_raw(self, key: str, data: Any):
50
54
  self.data = data
51
55
 
52
56
  def get(self, key: str) -> "SFrame":
@@ -185,6 +189,10 @@ class GroupSFrame(SFrame):
185
189
  def __deepcopy__(self, memo):
186
190
  return type(self)(copy.deepcopy(self.children, memo), self.sframe_class)
187
191
 
192
+ @property
193
+ def empty(self, default_key=configs.DEFAULT_SF_KEY):
194
+ return self[default_key].empty()
195
+
188
196
  def to_raw(self) -> Dict[str, object]:
189
197
  raw = {}
190
198
  for key, sf in self.children.items():
@@ -14,6 +14,10 @@ class DFrame(SFrame):
14
14
  frame_name = "df"
15
15
  data: DataFrame
16
16
 
17
+ @property
18
+ def empty(self, default_key=configs.DEFAULT_SF_KEY):
19
+ return self.data.empty
20
+
17
21
  def make_group(self, default_key=configs.DEFAULT_SF_KEY):
18
22
  return GroupSFrame({default_key: self}, sframe_class=self.__class__)
19
23
 
@@ -37,7 +41,7 @@ class DFrame(SFrame):
37
41
 
38
42
  def extend_vertically(self, other: DataFrame):
39
43
  super().extend_vertically(other)
40
- self.data = pd.concat([self.data, other], axis=0)
44
+ self.data = pd.concat([self.data, other], axis=0).reset_index(drop=True)
41
45
 
42
46
  def extend_horizontally(
43
47
  self, other: DataFrame, on: str, left_on: str, right_on: str, how: str
@@ -3,6 +3,7 @@ from typing import Dict, Iterable, List
3
3
  from pandas import DataFrame
4
4
  from pyspark.sql import DataFrame as PySparkDataFrame
5
5
  from pyspark.sql import SparkSession
6
+ from pyspark.sql import functions as F
6
7
 
7
8
  from seshat.data_class import DFrame, SFrame
8
9
  from seshat.data_class.base import GroupSFrame
@@ -13,6 +14,10 @@ class SPFrame(SFrame):
13
14
  frame_name = "spf"
14
15
  data: PySparkDataFrame
15
16
 
17
+ @property
18
+ def empty(self, default_key=configs.DEFAULT_SF_KEY):
19
+ return self.data.isEmpty()
20
+
16
21
  def make_group(self, default_key=configs.DEFAULT_SF_KEY):
17
22
  return GroupSFrame({default_key: self}, sframe_class=self.__class__)
18
23
 
@@ -34,6 +39,19 @@ class SPFrame(SFrame):
34
39
 
35
40
  def extend_vertically(self, other: PySparkDataFrame):
36
41
  super().extend_vertically(other)
42
+ # Get all columns from both DataFrames
43
+ self_cols = set(self.data.columns)
44
+ other_cols = set(other.columns)
45
+
46
+ # Add missing columns to self.data
47
+ for col in other_cols - self_cols:
48
+ self.data = self.data.withColumn(col, F.lit(None).cast("string"))
49
+
50
+ # Add missing columns to other
51
+ for col in self_cols - other_cols:
52
+ other = other.withColumn(col, F.lit(None).cast("string"))
53
+
54
+ # Ensure column order matches
37
55
  self.data = self.data.unionByName(other)
38
56
 
39
57
  def extend_horizontally(
@@ -0,0 +1,38 @@
1
+ from typing import Type
2
+
3
+ import simplejson as json
4
+
5
+ import seshat
6
+ from seshat.general.transformer_story.base import (
7
+ BaseTransformerStory,
8
+ BaseChallenge,
9
+ Describable,
10
+ )
11
+ from seshat.utils.find_classes import find_classes
12
+
13
+
14
+ class GenerateStoryCommand:
15
+ def generate(self):
16
+ return json.dumps(
17
+ {
18
+ "transformers": self.get_doc(BaseTransformerStory),
19
+ "challenges": self.get_doc(BaseChallenge),
20
+ },
21
+ indent=4,
22
+ default=str,
23
+ ignore_nan=True,
24
+ )
25
+
26
+ def get_doc(self, target: Type[Describable]):
27
+ docs = []
28
+ for d in find_classes(seshat, target):
29
+ try:
30
+ docs.append(d().generate_doc())
31
+ except Exception:
32
+ import traceback
33
+
34
+ print(f"ERROR generating doc for {d}:")
35
+ print(f" Class: {d}")
36
+ traceback.print_exc()
37
+ raise
38
+ return docs
@@ -11,7 +11,6 @@ TOKEN_PRICE_COL = "token_price"
11
11
  BLOCK_NUM_COL = "block_number"
12
12
  BLOCK_TIMESTAMP_COL = "block_timestamp"
13
13
  DURATION_LABEL_COL = "duration"
14
- FLIPSIDE_URL = "https://api-v2.flipsidecrypto.xyz"
15
14
  DEFAULT_SOURCE_STORE = "./data/source_save/"
16
15
  STORE_SIZE_CHECKPOINT = 41943040
17
16
  DEFAULT_SF_KEY = "default"
@@ -1,3 +1,2 @@
1
1
  SESHAT_CONFIG_MODULE=./config
2
2
  DB_URL=
3
- FLIPSIDE_API_KEY=
@@ -20,15 +20,10 @@ class TokenRecommendationView(FeatureView):
20
20
  schema=Schema([Col("some_column", "new_name"), Col("another_col")]),
21
21
  )
22
22
  online_source = ...
23
- # The source can be local, database, or flipside.
23
+ # The source can be local, database or else.
24
24
  # for local source, you can use current defined and for
25
25
  # sql database source:
26
26
  # SQLDBSource(url=DB_URL, table_name="your_table_name")
27
- # if you need retrieve data from flipside use this:
28
- # FlipSideSource(
29
- # api_key=os.getenv("FLIPSIDE_API_KEY"),
30
- # filters={"BLOCK_NUMBER": {"val": 19710819, "op": ">="}, },
31
- # )
32
27
 
33
28
  offline_pipeline = Pipeline(pipes=[])
34
29
  online_pipeline = Pipeline(pipes=[])