sdk-seshat-python 0.5.4__tar.gz → 0.5.6__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 (193) hide show
  1. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/PKG-INFO +1 -1
  2. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/pyproject.toml +1 -1
  3. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/transformer_story/base.py +20 -7
  4. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/product_sum.py +5 -5
  5. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/rank.py +5 -5
  6. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/sender_receiver_tokens.py +5 -5
  7. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/shift.py +5 -5
  8. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/static_value_column_adder.py +5 -5
  9. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/token_last_price.py +5 -5
  10. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/contract.py +5 -5
  11. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/duplicate.py +5 -5
  12. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/feature.py +5 -5
  13. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/group.py +5 -5
  14. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/inclusion.py +5 -5
  15. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/low_transaction.py +5 -5
  16. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/zero_address.py +5 -5
  17. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/LICENSE +0 -0
  18. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/README.md +0 -0
  19. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/__init__.py +0 -0
  20. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/__main__.py +0 -0
  21. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/data_class/__init__.py +0 -0
  22. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/data_class/base.py +0 -0
  23. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/data_class/pandas.py +0 -0
  24. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/data_class/pyspark.py +0 -0
  25. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/__init__.py +0 -0
  26. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/base.py +0 -0
  27. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/__init__.py +0 -0
  28. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/base.py +0 -0
  29. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/general/__init__.py +0 -0
  30. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/general/classification.py +0 -0
  31. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/general/clustering.py +0 -0
  32. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/general/regression.py +0 -0
  33. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/recommendation/__init__.py +0 -0
  34. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/recommendation/diversity.py +0 -0
  35. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/evaluation/evaluator/recommendation/ranking.py +0 -0
  36. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/feature_view/__init__.py +0 -0
  37. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/feature_view/base.py +0 -0
  38. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/__init__.py +0 -0
  39. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/__init__.py +0 -0
  40. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/base.py +0 -0
  41. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/code_inspect.py +0 -0
  42. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/generate_story.py +0 -0
  43. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/job_status.py +0 -0
  44. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/setup_project.py +0 -0
  45. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/command/submit_to_network.py +0 -0
  46. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/config.py +0 -0
  47. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/exceptions.py +0 -0
  48. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/lazy_config.py +0 -0
  49. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/models.py +0 -0
  50. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/README.md-tmpl +0 -0
  51. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/config.py-tmpl +0 -0
  52. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/env-templ +0 -0
  53. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/jobignore-tmpl +0 -0
  54. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/pyproject._toml-tmpl +0 -0
  55. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/recommender-jupyter.ipynb-tmpl +0 -0
  56. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/template/recommender.py-tmpl +0 -0
  57. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/transformer_story/__init__.py +0 -0
  58. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/general/transformer_story/challenges.py +0 -0
  59. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/profiler/__init__.py +0 -0
  60. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/profiler/base.py +0 -0
  61. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/profiler/decorator.py +0 -0
  62. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/profiler/format.py +0 -0
  63. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/__init__.py +0 -0
  64. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/api/__init__.py +0 -0
  65. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/api/base.py +0 -0
  66. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/api/scrape.py +0 -0
  67. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/base.py +0 -0
  68. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/database/__init__.py +0 -0
  69. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/database/base.py +0 -0
  70. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/exceptions.py +0 -0
  71. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/local/__init__.py +0 -0
  72. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/local/base.py +0 -0
  73. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/mixins.py +0 -0
  74. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/multisource/__init__.py +0 -0
  75. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/multisource/base.py +0 -0
  76. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/saver/__init__.py +0 -0
  77. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/saver/base.py +0 -0
  78. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/saver/database.py +0 -0
  79. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/saver/utils/__init__.py +0 -0
  80. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/source/saver/utils/postgres.py +0 -0
  81. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/__init__.py +0 -0
  82. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/aggregator/__init__.py +0 -0
  83. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/aggregator/base.py +0 -0
  84. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/aggregator/field.py +0 -0
  85. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/augmenter/__init__.py +0 -0
  86. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/augmenter/base.py +0 -0
  87. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/base.py +0 -0
  88. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/__init__.py +0 -0
  89. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/base.py +0 -0
  90. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/branch_classifier.py +0 -0
  91. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/changing_over_time.py +0 -0
  92. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/comprehensive_features.py +0 -0
  93. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/date_time_type.py +0 -0
  94. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/duplicated_sframe.py +0 -0
  95. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/feature_for_address.py +0 -0
  96. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/fraction.py +0 -0
  97. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/from_database.py +0 -0
  98. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/group_by_deriver_count.py +0 -0
  99. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/group_by_deriver_mean_max.py +0 -0
  100. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/group_by_time_window.py +0 -0
  101. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/interacted_symbols_to_sentence.py +0 -0
  102. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/one_column_percentile_filter.py +0 -0
  103. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/operation_on_cols.py +0 -0
  104. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/percentile_transaction_value.py +0 -0
  105. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/profit_loss.py +0 -0
  106. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/sframe_from_cols.py +0 -0
  107. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/tagger.py +0 -0
  108. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/token_feature_transformation.py +0 -0
  109. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/token_price.py +0 -0
  110. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/deriver/token_swap_trade.py +0 -0
  111. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/imputer/__init__.py +0 -0
  112. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/imputer/base.py +0 -0
  113. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/imputer/nan.py +0 -0
  114. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/merger/__init__.py +0 -0
  115. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/merger/base.py +0 -0
  116. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/merger/common.py +0 -0
  117. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/merger/list.py +0 -0
  118. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/merger/multi.py +0 -0
  119. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/merger/nested_key.py +0 -0
  120. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pipeline/__init__.py +0 -0
  121. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pipeline/base.py +0 -0
  122. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pipeline/branch.py +0 -0
  123. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pipeline/recommendation/__init__.py +0 -0
  124. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pipeline/recommendation/address_pipeline.py +0 -0
  125. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pseudo/__init__.py +0 -0
  126. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pseudo/action_gate.py +0 -0
  127. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/pseudo/table_existence.py +0 -0
  128. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/reducer/__init__.py +0 -0
  129. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/reducer/base.py +0 -0
  130. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/reducer/llm_insight.py +0 -0
  131. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/scaler/__init__.py +0 -0
  132. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/scaler/base.py +0 -0
  133. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/schema/__init__.py +0 -0
  134. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/schema/base.py +0 -0
  135. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/__init__.py +0 -0
  136. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/base.py +0 -0
  137. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/block/__init__.py +0 -0
  138. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/block/base.py +0 -0
  139. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/multi.py +0 -0
  140. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/random/__init__.py +0 -0
  141. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/random/base.py +0 -0
  142. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/time_line/__init__.py +0 -0
  143. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/splitter/time_line/base.py +0 -0
  144. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/__init__.py +0 -0
  145. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/base.py +0 -0
  146. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/change_column_name.py +0 -0
  147. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/filter.py +0 -0
  148. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/trimmer/nan.py +0 -0
  149. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/vectorizer/__init__.py +0 -0
  150. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/vectorizer/base.py +0 -0
  151. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/vectorizer/cosine_similarity.py +0 -0
  152. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/vectorizer/pivot.py +0 -0
  153. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/transformer/vectorizer/utils.py +0 -0
  154. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/__init__.py +0 -0
  155. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/analyze_method_call.py +0 -0
  156. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/batcher.py +0 -0
  157. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/binary_utils.py +0 -0
  158. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/clean_json.py +0 -0
  159. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/col_to_list.py +0 -0
  160. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/contracts.py +0 -0
  161. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/date_utils.py +0 -0
  162. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/file.py +0 -0
  163. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/file_cryptography.py +0 -0
  164. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/filter_json.py +0 -0
  165. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/find_classes.py +0 -0
  166. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/grouper.py +0 -0
  167. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/jobignore.py +0 -0
  168. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/join_columns_to_list.py +0 -0
  169. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/join_str.py +0 -0
  170. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/__init__.py +0 -0
  171. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/chatbot_factory.py +0 -0
  172. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/clients/__init__.py +0 -0
  173. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/clients/aws.py +0 -0
  174. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/clients/google.py +0 -0
  175. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/clients/openai.py +0 -0
  176. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/clients/proxy.py +0 -0
  177. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/llm_client/llm_provider.py +0 -0
  178. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/logging/__init__.py +0 -0
  179. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/logging/base_logger.py +0 -0
  180. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/logging/console_logger.py +0 -0
  181. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/logging/logstash_logger.py +0 -0
  182. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/logging/multi_logger.py +0 -0
  183. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/memory.py +0 -0
  184. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/mixin.py +0 -0
  185. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/obfuscate.py +0 -0
  186. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/package_utils.py +0 -0
  187. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/pandas_func.py +0 -0
  188. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/patching.py +0 -0
  189. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/pyspark_func.py +0 -0
  190. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/rest.py +0 -0
  191. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/singleton.py +0 -0
  192. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/seshat/utils/validation.py +0 -0
  193. {sdk_seshat_python-0.5.4 → sdk_seshat_python-0.5.6}/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.5.4
3
+ Version: 0.5.6
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sdk-seshat-python"
3
- version = "0.5.4"
3
+ version = "0.5.6"
4
4
  description = "Seshat python SDK is a library to help create ML data pipelines."
5
5
  authors = ["SeshatLabs <info@seshatlabs.xyz>"]
6
6
  packages = [{ include = "seshat", from = "." }]
@@ -2,13 +2,10 @@ import copy
2
2
  import dataclasses
3
3
  import inspect
4
4
  import re
5
- import unittest
6
5
  from abc import ABC, abstractmethod
7
6
  from copy import deepcopy
8
7
  from types import ModuleType
9
- from typing import Callable, Dict, List, Tuple, Any, Type
10
-
11
- import pytest
8
+ from typing import Callable, Dict, List, Tuple, Any, Type, Optional
12
9
 
13
10
  from seshat.data_class import GroupSFrame, SFrame
14
11
  from seshat.transformer import Transformer
@@ -16,6 +13,18 @@ from seshat.utils.analyze_method_call import analyze_method_calls
16
13
  from seshat.utils.validation import NumericColumnValidator, TimeStampColumnValidator
17
14
 
18
15
 
16
+ def safe_import_testcase(module_name: str, class_name: str) -> Optional[Type]:
17
+ """
18
+ Safely import a test case class. Returns None if the test module is not available.
19
+ This allows the package to work without test dependencies in production.
20
+ """
21
+ try:
22
+ module = __import__(module_name, fromlist=[class_name])
23
+ return getattr(module, class_name)
24
+ except (ImportError, ModuleNotFoundError, AttributeError):
25
+ return None
26
+
27
+
19
28
  class Empty:
20
29
  """
21
30
  Because of `None` itself can be default value.
@@ -154,6 +163,8 @@ class TransformerScenario:
154
163
  keep the inputs, outputs and target instance.
155
164
  Supports both unittest.TestCase and pytest test classes.
156
165
  """
166
+ import unittest
167
+
157
168
  scenarios = []
158
169
  description = [""] # Use list to can update it inplace.
159
170
  transformer.__call__ = cls.get_call_wrapper(
@@ -165,9 +176,9 @@ class TransformerScenario:
165
176
  return cls._from_pytest_testcase(testcase, description, scenarios)
166
177
 
167
178
  @classmethod
168
- def _from_unittest_testcase(
169
- cls, testcase: Type[unittest.TestCase], description, scenarios
170
- ):
179
+ def _from_unittest_testcase(cls, testcase: Type, description, scenarios):
180
+ import unittest
181
+
171
182
  suite = unittest.TestLoader().loadTestsFromTestCase(testcase)
172
183
  for test in suite:
173
184
  # Remove `test_` from the beginning of the test name, make it readable
@@ -181,6 +192,8 @@ class TransformerScenario:
181
192
  """
182
193
  Process a pytest test case to extract transformer scenarios.
183
194
  """
195
+ import pytest
196
+
184
197
  test_module_path = inspect.getfile(testcase)
185
198
 
186
199
  test_methods = cls._find_pytest_method(testcase)
@@ -8,6 +8,7 @@ from seshat.data_class import SFrame
8
8
  from seshat.general.transformer_story.base import (
9
9
  BaseTransformerStory,
10
10
  TransformerScenario,
11
+ safe_import_testcase,
11
12
  )
12
13
  from seshat.transformer.deriver.base import SFrameDeriver
13
14
 
@@ -81,8 +82,7 @@ class ProductSumDeriverStory(BaseTransformerStory):
81
82
  tags = ["deriver", "feature-engineering", "weighted-sum"]
82
83
 
83
84
  def get_scenarios(self):
84
- from test import ProductSumDeriverDFTestCase
85
-
86
- return TransformerScenario.from_testcase(
87
- ProductSumDeriverDFTestCase, transformer=self.transformer
88
- )
85
+ testcase = safe_import_testcase("test", "ProductSumDeriverDFTestCase")
86
+ if testcase is None:
87
+ return []
88
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.data_class import SFrame
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.deriver.base import SFrameDeriver
10
11
 
@@ -80,8 +81,7 @@ class RankDeriverStory(BaseTransformerStory):
80
81
  tags = ["deriver", "ranking", "single-sf-operation"]
81
82
 
82
83
  def get_scenarios(self):
83
- from test import RankDeriverDFTestCase
84
-
85
- return TransformerScenario.from_testcase(
86
- RankDeriverDFTestCase, transformer=self.transformer
87
- )
84
+ testcase = safe_import_testcase("test", "RankDeriverDFTestCase")
85
+ if testcase is None:
86
+ return []
87
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -8,6 +8,7 @@ from seshat.general import configs
8
8
  from seshat.general.transformer_story.base import (
9
9
  BaseTransformerStory,
10
10
  TransformerScenario,
11
+ safe_import_testcase,
11
12
  )
12
13
  from seshat.transformer.deriver.base import SFrameDeriver
13
14
  from seshat.transformer.vectorizer import CosineSimilarityVectorizer
@@ -118,11 +119,10 @@ class SenderReceiverTokensDeriverStory(BaseTransformerStory):
118
119
  tags = ["deriver", "multi-sf-operation"]
119
120
 
120
121
  def get_scenarios(self):
121
- from test import SenderReceiverTokensDFTestCase
122
-
123
- return TransformerScenario.from_testcase(
124
- SenderReceiverTokensDFTestCase, transformer=self.transformer
125
- )
122
+ testcase = safe_import_testcase("test", "SenderReceiverTokensDFTestCase")
123
+ if testcase is None:
124
+ return []
125
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
126
126
 
127
127
  interactions = [
128
128
  (
@@ -7,6 +7,7 @@ from seshat.data_class import SFrame
7
7
  from seshat.general.transformer_story.base import (
8
8
  BaseTransformerStory,
9
9
  TransformerScenario,
10
+ safe_import_testcase,
10
11
  )
11
12
  from seshat.transformer.deriver.base import SFrameDeriver
12
13
 
@@ -135,8 +136,7 @@ class ShiftDeriverStory(BaseTransformerStory):
135
136
  tags = ["deriver", "single-sf-operation"]
136
137
 
137
138
  def get_scenarios(self):
138
- from test import ShiftDeriverDFTestCase
139
-
140
- return TransformerScenario.from_testcase(
141
- ShiftDeriverDFTestCase, transformer=self.transformer
142
- )
139
+ testcase = safe_import_testcase("test", "ShiftDeriverDFTestCase")
140
+ if testcase is None:
141
+ return []
142
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -8,6 +8,7 @@ from seshat.general.exceptions import InvalidArgumentsError
8
8
  from seshat.general.transformer_story.base import (
9
9
  BaseTransformerStory,
10
10
  TransformerScenario,
11
+ safe_import_testcase,
11
12
  )
12
13
  from seshat.transformer.deriver.base import SFrameDeriver
13
14
 
@@ -91,8 +92,7 @@ class StaticValueColumnAdderStory(BaseTransformerStory):
91
92
  tags = ["deriver", "single-sf-operation"]
92
93
 
93
94
  def get_scenarios(self):
94
- from test import StaticValueColumnAdderDFTestCase
95
-
96
- return TransformerScenario.from_testcase(
97
- StaticValueColumnAdderDFTestCase, transformer=self.transformer
98
- )
95
+ testcase = safe_import_testcase("test", "StaticValueColumnAdderDFTestCase")
96
+ if testcase is None:
97
+ return []
98
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.general import configs
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.deriver.base import SFrameDeriver
10
11
  from seshat.utils.validation import TimeStampColumnValidator
@@ -125,8 +126,7 @@ class TokenLastPriceDeriverStory(BaseTransformerStory):
125
126
  tags = ["deriver", "multi-sf-operation"]
126
127
 
127
128
  def get_scenarios(self):
128
- from test import TokenLastPriceDeriverDFTestCase
129
-
130
- return TransformerScenario.from_testcase(
131
- TokenLastPriceDeriverDFTestCase, transformer=self.transformer
132
- )
129
+ testcase = safe_import_testcase("test", "TokenLastPriceDeriverDFTestCase")
130
+ if testcase is None:
131
+ return []
132
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.general import configs
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.trimmer import SFrameTrimmer
10
11
 
@@ -96,8 +97,7 @@ class ContractTrimmerStory(BaseTransformerStory):
96
97
  tags = ["trimmer", "single-sf-operation"]
97
98
 
98
99
  def get_scenarios(self):
99
- from test import ContractTrimmerDFTestCase
100
-
101
- return TransformerScenario.from_testcase(
102
- ContractTrimmerDFTestCase, transformer=self.transformer
103
- )
100
+ testcase = safe_import_testcase("test", "ContractTrimmerDFTestCase")
101
+ if testcase is None:
102
+ return []
103
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -6,6 +6,7 @@ from pyspark.sql import DataFrame as PySparkDataFrame
6
6
  from seshat.general.transformer_story.base import (
7
7
  BaseTransformerStory,
8
8
  TransformerScenario,
9
+ safe_import_testcase,
9
10
  )
10
11
  from seshat.transformer.trimmer import SFrameTrimmer
11
12
 
@@ -49,8 +50,7 @@ class DuplicateTrimmerStory(BaseTransformerStory):
49
50
  tags = ["trimmer", "single-sf-operation"]
50
51
 
51
52
  def get_scenarios(self):
52
- from test import DuplicateTrimmerDFTestCase
53
-
54
- return TransformerScenario.from_testcase(
55
- DuplicateTrimmerDFTestCase, transformer=self.transformer
56
- )
53
+ testcase = safe_import_testcase("test", "DuplicateTrimmerDFTestCase")
54
+ if testcase is None:
55
+ return []
56
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.general import configs
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.trimmer import SFrameTrimmer
10
11
 
@@ -51,8 +52,7 @@ class FeatureTrimmerStory(BaseTransformerStory):
51
52
  tags = ["trimmer", "single-sf-operation"]
52
53
 
53
54
  def get_scenarios(self):
54
- from test import FeatureTrimmerDFTestCase
55
-
56
- return TransformerScenario.from_testcase(
57
- FeatureTrimmerDFTestCase, transformer=self.transformer
58
- )
55
+ testcase = safe_import_testcase("test", "FeatureTrimmerDFTestCase")
56
+ if testcase is None:
57
+ return []
58
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -2,6 +2,7 @@ from seshat.data_class import SFrame, GroupSFrame
2
2
  from seshat.general.transformer_story.base import (
3
3
  BaseTransformerStory,
4
4
  TransformerScenario,
5
+ safe_import_testcase,
5
6
  )
6
7
  from seshat.transformer.trimmer import SFrameTrimmer
7
8
 
@@ -51,8 +52,7 @@ class GroupTrimmerStory(BaseTransformerStory):
51
52
  tags = ["trimmer", "single-sf-operation"]
52
53
 
53
54
  def get_scenarios(self):
54
- from test import GroupTrimmerDFTestCase
55
-
56
- return TransformerScenario.from_testcase(
57
- GroupTrimmerDFTestCase, transformer=self.transformer
58
- )
55
+ testcase = safe_import_testcase("test", "GroupTrimmerDFTestCase")
56
+ if testcase is None:
57
+ return []
58
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.general import configs
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.trimmer import SFrameTrimmer
10
11
 
@@ -91,8 +92,7 @@ class InclusionTrimmerStory(BaseTransformerStory):
91
92
  tags = ["trimmer", "multi-sf-operation"]
92
93
 
93
94
  def get_scenarios(self):
94
- from test import InclusionTrimmerDFTestCase
95
-
96
- return TransformerScenario.from_testcase(
97
- InclusionTrimmerDFTestCase, transformer=self.transformer
98
- )
95
+ testcase = safe_import_testcase("test", "InclusionTrimmerDFTestCase")
96
+ if testcase is None:
97
+ return []
98
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.general import configs
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.trimmer import SFrameTrimmer
10
11
 
@@ -124,8 +125,7 @@ class LowTransactionTrimmerStory(BaseTransformerStory):
124
125
  tags = ["trimmer", "single-sf-operation"]
125
126
 
126
127
  def get_scenarios(self):
127
- from test import LowTransactionDFTestCase
128
-
129
- return TransformerScenario.from_testcase(
130
- LowTransactionDFTestCase, transformer=self.transformer
131
- )
128
+ testcase = safe_import_testcase("test", "LowTransactionDFTestCase")
129
+ if testcase is None:
130
+ return []
131
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)
@@ -5,6 +5,7 @@ from seshat.general import configs
5
5
  from seshat.general.transformer_story.base import (
6
6
  BaseTransformerStory,
7
7
  TransformerScenario,
8
+ safe_import_testcase,
8
9
  )
9
10
  from seshat.transformer.trimmer import SFrameTrimmer
10
11
 
@@ -58,8 +59,7 @@ class ZeroAddressTrimmerStory(BaseTransformerStory):
58
59
  tags = ["trimmer", "single-sf-operation"]
59
60
 
60
61
  def get_scenarios(self):
61
- from test import ZeroAddressTrimmerDFTestCase
62
-
63
- return TransformerScenario.from_testcase(
64
- ZeroAddressTrimmerDFTestCase, transformer=self.transformer
65
- )
62
+ testcase = safe_import_testcase("test", "ZeroAddressTrimmerDFTestCase")
63
+ if testcase is None:
64
+ return []
65
+ return TransformerScenario.from_testcase(testcase, transformer=self.transformer)