rgwfuncs 0.0.67__py3-none-any.whl → 0.0.68__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
rgwfuncs/__init__.py CHANGED
@@ -2,7 +2,7 @@
2
2
  # Dynamically importing functions from modules
3
3
 
4
4
  from .df_lib import append_columns, append_percentile_classification_column, append_ranged_classification_column, append_ranged_date_classification_column, append_rows, append_xgb_labels, append_xgb_logistic_regression_predictions, append_xgb_regression_predictions, bag_union_join, bottom_n_unique_values, cascade_sort, delete_rows, drop_duplicates, drop_duplicates_retain_first, drop_duplicates_retain_last, filter_dataframe, filter_indian_mobiles, first_n_rows, from_raw_data, insert_dataframe_in_sqlite_database, last_n_rows, left_join, limit_dataframe, load_data_from_path, load_data_from_query, load_data_from_sqlite_path, load_fresh_data_or_pull_from_cache, mask_against_dataframe, mask_against_dataframe_converse, numeric_clean, order_columns, print_correlation, print_dataframe, print_memory_usage, print_n_frequency_cascading, print_n_frequency_linear, rename_columns, retain_columns, right_join, send_data_to_email, send_data_to_slack, send_dataframe_via_telegram, sync_dataframe_to_sqlite_database, top_n_unique_values, union_join, update_rows
5
- from .interactive_shell_lib import interactive_shell
5
+ from .interactive_shell_lib import interactive_shell, setup_readline
6
6
  from .algebra_lib import cancel_polynomial_expression, compute_constant_expression, compute_constant_expression_involving_matrices, compute_constant_expression_involving_ordered_series, compute_prime_factors, expand_polynomial_expression, factor_polynomial_expression, plot_polynomial_functions, plot_x_points_of_polynomial_functions, python_polynomial_expression_to_latex, simplify_polynomial_expression, solve_homogeneous_polynomial_expression
7
7
  from .docs_lib import docs
8
8
  from .str_lib import send_telegram_message
@@ -1,18 +1,34 @@
1
+ #!/usr/bin/env python3
1
2
  import code
2
3
  import readline
3
4
  import rlcompleter # noqa: F401
4
5
  import sys # noqa: F401
6
+ import os
7
+ import atexit
5
8
  from typing import Dict, Any
6
9
  from .df_lib import * # noqa: F401, F403, E402
7
10
  from .algebra_lib import * # noqa: F401, F403, E402
8
11
  from .str_lib import * # noqa: F401, F403, E402
9
12
  from .docs_lib import * # noqa: F401, F403, E402
10
13
 
14
+ # File for command history
15
+ HISTORY_FILE = os.path.expanduser("~/.rgwfuncs_shell_history")
16
+
17
+ def setup_readline():
18
+ """Set up readline for command history persistence"""
19
+ readline.set_history_length(1000) # Limit history to 1000 lines
20
+ readline.parse_and_bind("tab: complete") # Enable tab completion
21
+ if os.path.exists(HISTORY_FILE):
22
+ try:
23
+ readline.read_history_file(HISTORY_FILE)
24
+ except Exception as e:
25
+ print(f"Warning: Could not load history file: {e}")
26
+ atexit.register(readline.write_history_file, HISTORY_FILE)
11
27
 
12
28
  def interactive_shell(local_vars: Dict[str, Any]) -> None:
13
29
  """
14
30
  Launches an interactive prompt for inspecting and modifying local variables, making all methods
15
- in the rgwfuncs library available by default.
31
+ in the rgwfuncs library available by default. Persists command history across sessions.
16
32
 
17
33
  Parameters:
18
34
  local_vars (dict): Dictionary of local variables to be available in the interactive shell.
@@ -20,7 +36,8 @@ def interactive_shell(local_vars: Dict[str, Any]) -> None:
20
36
  if not isinstance(local_vars, dict):
21
37
  raise TypeError("local_vars must be a dictionary")
22
38
 
23
- readline.parse_and_bind("tab: complete")
39
+ # Set up readline for history and completion
40
+ setup_readline()
24
41
 
25
42
  # Make imported functions available in the REPL
26
43
  local_vars.update(globals())
@@ -28,5 +45,6 @@ def interactive_shell(local_vars: Dict[str, Any]) -> None:
28
45
  # Create interactive console with local context
29
46
  console = code.InteractiveConsole(locals=local_vars)
30
47
 
31
- # Start interactive session
32
- console.interact(banner="Welcome to the rgwfuncs interactive shell.")
48
+ # Start interactive session with a custom banner
49
+ banner = "Welcome to the rgwfuncs interactive shell.\nUse up/down arrows for command history.\nType 'exit()' or Ctrl+D to quit."
50
+ console.interact(banner=banner, exitmsg="Goodbye.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rgwfuncs
3
- Version: 0.0.67
3
+ Version: 0.0.68
4
4
  Summary: A functional programming paradigm for mathematical modelling and data science
5
5
  Home-page: https://github.com/ryangerardwilson/rgwfunc
6
6
  Author: Ryan Gerard Wilson
@@ -0,0 +1,12 @@
1
+ rgwfuncs/__init__.py,sha256=fvKoJHhjdgBeoUOrQ5bHAQbJdbTNF7a9hMEx71QF_Qo,1728
2
+ rgwfuncs/algebra_lib.py,sha256=rKFITfpWfgdBswnbMUuS41XgndEt-jUVz2ObO_ik7eM,42234
3
+ rgwfuncs/df_lib.py,sha256=r6T-MwyDq9NAPW1Xf6NzSy7ZFicIKdemR-UKu6TZt5g,71111
4
+ rgwfuncs/docs_lib.py,sha256=y3wSAOPO3qsA4HZ7xAtW8HimM8w-c8hjcEzMRLJ96ao,1960
5
+ rgwfuncs/interactive_shell_lib.py,sha256=Zu0c_7CWsXPyA7FeCzJiw4xtm4_BrU7oC8fvWX6nLqw,1928
6
+ rgwfuncs/str_lib.py,sha256=rtAdRlnSJIu3JhI-tA_A0wCiPK2m-zn5RoGpBxv_g-4,2228
7
+ rgwfuncs-0.0.68.dist-info/LICENSE,sha256=jLvt20gcUZYB8UOvyBvyKQ1qhYYhD__qP7ZDx2lPFkU,1062
8
+ rgwfuncs-0.0.68.dist-info/METADATA,sha256=BPjqpfQUU9azWFph9HHtxthuO65hQj0fJQ5ccbpeAQI,60288
9
+ rgwfuncs-0.0.68.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
10
+ rgwfuncs-0.0.68.dist-info/entry_points.txt,sha256=j-c5IOPIQ0252EaOV6j6STio56sbXl2C4ym_fQ0lXx0,43
11
+ rgwfuncs-0.0.68.dist-info/top_level.txt,sha256=aGuVIzWsKiV1f2gCb6mynx0zx5ma0B1EwPGFKVEMTi4,9
12
+ rgwfuncs-0.0.68.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- rgwfuncs/__init__.py,sha256=LSn54Tlyskcb6Wab_wUpPLB6UGMe5LdrB3GU88mDEbU,1712
2
- rgwfuncs/algebra_lib.py,sha256=rKFITfpWfgdBswnbMUuS41XgndEt-jUVz2ObO_ik7eM,42234
3
- rgwfuncs/df_lib.py,sha256=r6T-MwyDq9NAPW1Xf6NzSy7ZFicIKdemR-UKu6TZt5g,71111
4
- rgwfuncs/docs_lib.py,sha256=y3wSAOPO3qsA4HZ7xAtW8HimM8w-c8hjcEzMRLJ96ao,1960
5
- rgwfuncs/interactive_shell_lib.py,sha256=A7EWsYxAfDev_N0-2GjRvAtp0bAwBPHIczXb8Gu9fzI,1107
6
- rgwfuncs/str_lib.py,sha256=rtAdRlnSJIu3JhI-tA_A0wCiPK2m-zn5RoGpBxv_g-4,2228
7
- rgwfuncs-0.0.67.dist-info/LICENSE,sha256=jLvt20gcUZYB8UOvyBvyKQ1qhYYhD__qP7ZDx2lPFkU,1062
8
- rgwfuncs-0.0.67.dist-info/METADATA,sha256=N1PBQQAjEWCY0f4Fi3O0u5MqRCSKlCtGAnLO9WdK51k,60288
9
- rgwfuncs-0.0.67.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
10
- rgwfuncs-0.0.67.dist-info/entry_points.txt,sha256=j-c5IOPIQ0252EaOV6j6STio56sbXl2C4ym_fQ0lXx0,43
11
- rgwfuncs-0.0.67.dist-info/top_level.txt,sha256=aGuVIzWsKiV1f2gCb6mynx0zx5ma0B1EwPGFKVEMTi4,9
12
- rgwfuncs-0.0.67.dist-info/RECORD,,