rgwfuncs 0.0.77__py3-none-any.whl → 0.0.79__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.
- rgwfuncs/interactive_shell_lib.py +34 -15
- {rgwfuncs-0.0.77.dist-info → rgwfuncs-0.0.79.dist-info}/METADATA +1 -1
- {rgwfuncs-0.0.77.dist-info → rgwfuncs-0.0.79.dist-info}/RECORD +7 -7
- {rgwfuncs-0.0.77.dist-info → rgwfuncs-0.0.79.dist-info}/LICENSE +0 -0
- {rgwfuncs-0.0.77.dist-info → rgwfuncs-0.0.79.dist-info}/WHEEL +0 -0
- {rgwfuncs-0.0.77.dist-info → rgwfuncs-0.0.79.dist-info}/entry_points.txt +0 -0
- {rgwfuncs-0.0.77.dist-info → rgwfuncs-0.0.79.dist-info}/top_level.txt +0 -0
@@ -1,27 +1,42 @@
|
|
1
|
-
#!/usr/bin/env python3
|
2
|
-
import code
|
3
|
-
import readline
|
4
|
-
import rlcompleter # noqa: F401
|
5
|
-
import sys
|
6
1
|
import os
|
7
2
|
import atexit
|
3
|
+
import code
|
4
|
+
import readline # Assuming this is imported elsewhere in your module
|
5
|
+
import sys
|
8
6
|
from typing import Dict, Any
|
9
7
|
from .df_lib import * # noqa: F401, F403, E402
|
10
8
|
from .algebra_lib import * # noqa: F401, F403, E402
|
11
9
|
from .str_lib import * # noqa: F401, F403, E402
|
12
10
|
from .docs_lib import * # noqa: F401, F403, E402
|
13
11
|
|
14
|
-
|
12
|
+
class CustomConsole(code.InteractiveConsole):
|
13
|
+
"""Custom console to make user input white while keeping prompts and output default."""
|
14
|
+
def raw_input(self, prompt=""):
|
15
|
+
# Print the prompt (>>>), then switch to white for input
|
16
|
+
sys.stdout.write(prompt) # Prompt in default color
|
17
|
+
sys.stdout.write("\033[97m") # Switch to white for input
|
18
|
+
sys.stdout.flush()
|
19
|
+
try:
|
20
|
+
line = input() # User types in white
|
21
|
+
except EOFError:
|
22
|
+
raise # Handle Ctrl+D gracefully
|
23
|
+
finally:
|
24
|
+
sys.stdout.write("\033[0m") # Reset to default after input
|
25
|
+
sys.stdout.flush()
|
26
|
+
return line
|
27
|
+
|
28
|
+
def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '') -> None:
|
15
29
|
"""
|
16
30
|
Launches an interactive prompt for inspecting and modifying local variables, making all methods
|
17
31
|
in the rgwfuncs library available by default. Persists command history across sessions.
|
32
|
+
User input is displayed in white; other text uses the terminal's default color.
|
18
33
|
|
19
34
|
Parameters:
|
20
35
|
local_vars (dict): Dictionary of local variables to be available in the interactive shell.
|
21
|
-
shell_color (str): ANSI color code for shell output (default:
|
36
|
+
shell_color (str): ANSI color code for shell output (default: empty for terminal default).
|
22
37
|
"""
|
23
38
|
|
24
|
-
def setup_readline(shell_color: str = '
|
39
|
+
def setup_readline(shell_color: str = '') -> None:
|
25
40
|
"""Set up readline for history persistence with a given shell color."""
|
26
41
|
HISTORY_FILE = os.path.expanduser("~/.rgwfuncs_shell_history")
|
27
42
|
readline.set_history_length(1000)
|
@@ -30,7 +45,7 @@ def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[94m')
|
|
30
45
|
try:
|
31
46
|
readline.read_history_file(HISTORY_FILE)
|
32
47
|
except Exception as e:
|
33
|
-
print(f"{shell_color}Warning: Could not load history file: {e}
|
48
|
+
print(f"{shell_color}Warning: Could not load history file: {e}")
|
34
49
|
atexit.register(readline.write_history_file, HISTORY_FILE)
|
35
50
|
|
36
51
|
if not isinstance(local_vars, dict):
|
@@ -42,12 +57,16 @@ def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[94m')
|
|
42
57
|
# Make imported functions available in the REPL
|
43
58
|
local_vars.update(globals())
|
44
59
|
|
45
|
-
#
|
46
|
-
|
60
|
+
# Set prompt to plain text (no color)
|
61
|
+
sys.ps1 = ">>> "
|
62
|
+
|
63
|
+
# Create custom console with local context
|
64
|
+
console = CustomConsole(locals=local_vars)
|
47
65
|
|
48
|
-
# Start interactive session with a custom banner and exit message
|
49
|
-
banner = f"{shell_color}Welcome to the rgwfuncs interactive shell.\nUse up/down arrows for command history.\nType 'exit()' or Ctrl+D to quit.
|
50
|
-
exitmsg = f"{shell_color}Goodbye.
|
66
|
+
# Start interactive session with a custom banner and exit message in default color
|
67
|
+
banner = f"{shell_color}Welcome to the rgwfuncs interactive shell.\nUse up/down arrows for command history.\nType 'exit()' or Ctrl+D to quit."
|
68
|
+
exitmsg = f"{shell_color}Goodbye."
|
51
69
|
|
52
|
-
# Run the interactive session
|
70
|
+
# Run the interactive session
|
53
71
|
console.interact(banner=banner, exitmsg=exitmsg)
|
72
|
+
|
@@ -2,11 +2,11 @@ rgwfuncs/__init__.py,sha256=LSn54Tlyskcb6Wab_wUpPLB6UGMe5LdrB3GU88mDEbU,1712
|
|
2
2
|
rgwfuncs/algebra_lib.py,sha256=rKFITfpWfgdBswnbMUuS41XgndEt-jUVz2ObO_ik7eM,42234
|
3
3
|
rgwfuncs/df_lib.py,sha256=r6T-MwyDq9NAPW1Xf6NzSy7ZFicIKdemR-UKu6TZt5g,71111
|
4
4
|
rgwfuncs/docs_lib.py,sha256=y3wSAOPO3qsA4HZ7xAtW8HimM8w-c8hjcEzMRLJ96ao,1960
|
5
|
-
rgwfuncs/interactive_shell_lib.py,sha256=
|
5
|
+
rgwfuncs/interactive_shell_lib.py,sha256=Pdujo-XdtfnCpudzHz0jSnYes0hNbHfPpREu4Fq1K0M,2979
|
6
6
|
rgwfuncs/str_lib.py,sha256=rtAdRlnSJIu3JhI-tA_A0wCiPK2m-zn5RoGpBxv_g-4,2228
|
7
|
-
rgwfuncs-0.0.
|
8
|
-
rgwfuncs-0.0.
|
9
|
-
rgwfuncs-0.0.
|
10
|
-
rgwfuncs-0.0.
|
11
|
-
rgwfuncs-0.0.
|
12
|
-
rgwfuncs-0.0.
|
7
|
+
rgwfuncs-0.0.79.dist-info/LICENSE,sha256=jLvt20gcUZYB8UOvyBvyKQ1qhYYhD__qP7ZDx2lPFkU,1062
|
8
|
+
rgwfuncs-0.0.79.dist-info/METADATA,sha256=gTXvRXdi0hv7sSEW8TQIZdAHL0nrgtFx7kskQyL2FpM,60288
|
9
|
+
rgwfuncs-0.0.79.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
10
|
+
rgwfuncs-0.0.79.dist-info/entry_points.txt,sha256=j-c5IOPIQ0252EaOV6j6STio56sbXl2C4ym_fQ0lXx0,43
|
11
|
+
rgwfuncs-0.0.79.dist-info/top_level.txt,sha256=aGuVIzWsKiV1f2gCb6mynx0zx5ma0B1EwPGFKVEMTi4,9
|
12
|
+
rgwfuncs-0.0.79.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|