rgwfuncs 0.0.78__py3-none-any.whl → 0.0.80__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 +45 -15
- {rgwfuncs-0.0.78.dist-info → rgwfuncs-0.0.80.dist-info}/METADATA +1 -1
- {rgwfuncs-0.0.78.dist-info → rgwfuncs-0.0.80.dist-info}/RECORD +7 -7
- {rgwfuncs-0.0.78.dist-info → rgwfuncs-0.0.80.dist-info}/LICENSE +0 -0
- {rgwfuncs-0.0.78.dist-info → rgwfuncs-0.0.80.dist-info}/WHEEL +0 -0
- {rgwfuncs-0.0.78.dist-info → rgwfuncs-0.0.80.dist-info}/entry_points.txt +0 -0
- {rgwfuncs-0.0.78.dist-info → rgwfuncs-0.0.80.dist-info}/top_level.txt +0 -0
@@ -1,24 +1,45 @@
|
|
1
1
|
import os
|
2
2
|
import atexit
|
3
3
|
import code
|
4
|
-
import readline # Assuming this is imported elsewhere
|
4
|
+
import readline # Assuming this is imported elsewhere
|
5
|
+
import sys
|
5
6
|
from typing import Dict, Any
|
6
7
|
from .df_lib import * # noqa: F401, F403, E402
|
7
8
|
from .algebra_lib import * # noqa: F401, F403, E402
|
8
9
|
from .str_lib import * # noqa: F401, F403, E402
|
9
10
|
from .docs_lib import * # noqa: F401, F403, E402
|
10
11
|
|
11
|
-
|
12
|
+
class CustomConsole(code.InteractiveConsole):
|
13
|
+
"""Custom console to make user input white while keeping prompts and output blue."""
|
14
|
+
def raw_input(self, prompt=""):
|
15
|
+
sys.stdout.write("\033[94m" + prompt) # Blue prompt
|
16
|
+
sys.stdout.write("\033[97m") # White for input
|
17
|
+
sys.stdout.flush()
|
18
|
+
try:
|
19
|
+
line = input() # User types in white
|
20
|
+
except EOFError:
|
21
|
+
raise
|
22
|
+
finally:
|
23
|
+
sys.stdout.write("\033[94m") # Back to blue
|
24
|
+
sys.stdout.flush()
|
25
|
+
return line
|
26
|
+
|
27
|
+
def write(self, data):
|
28
|
+
sys.stdout.write("\033[94m" + data) # Blue output
|
29
|
+
sys.stdout.flush()
|
30
|
+
|
31
|
+
def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[94m') -> None:
|
12
32
|
"""
|
13
33
|
Launches an interactive prompt for inspecting and modifying local variables, making all methods
|
14
34
|
in the rgwfuncs library available by default. Persists command history across sessions.
|
35
|
+
User input is displayed in white; other text (prompt, banner, output) is blue.
|
15
36
|
|
16
37
|
Parameters:
|
17
38
|
local_vars (dict): Dictionary of local variables to be available in the interactive shell.
|
18
|
-
shell_color (str): ANSI color code for shell output (default:
|
39
|
+
shell_color (str): ANSI color code for shell output (default: blue '\033[94m').
|
19
40
|
"""
|
20
41
|
|
21
|
-
def setup_readline(shell_color: str = '\033[
|
42
|
+
def setup_readline(shell_color: str = '\033[94m') -> None:
|
22
43
|
"""Set up readline for history persistence with a given shell color."""
|
23
44
|
HISTORY_FILE = os.path.expanduser("~/.rgwfuncs_shell_history")
|
24
45
|
readline.set_history_length(1000)
|
@@ -27,28 +48,37 @@ def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[97m')
|
|
27
48
|
try:
|
28
49
|
readline.read_history_file(HISTORY_FILE)
|
29
50
|
except Exception as e:
|
30
|
-
print(f"{shell_color}Warning: Could not load history file: {e}\033[
|
51
|
+
print(f"{shell_color}Warning: Could not load history file: {e}\033[94m")
|
31
52
|
atexit.register(readline.write_history_file, HISTORY_FILE)
|
32
53
|
|
33
54
|
if not isinstance(local_vars, dict):
|
34
55
|
raise TypeError("local_vars must be a dictionary")
|
35
56
|
|
36
|
-
#
|
57
|
+
# Test colors explicitly
|
58
|
+
sys.stdout.write("\033[94mBLUE TEST\033[0m\n")
|
59
|
+
sys.stdout.write("\033[97mWHITE TEST\033[0m\n")
|
60
|
+
sys.stdout.flush()
|
61
|
+
|
62
|
+
# Set initial color to blue
|
63
|
+
sys.stdout.write("\033[94m")
|
64
|
+
sys.stdout.flush()
|
65
|
+
|
66
|
+
# Set up readline
|
37
67
|
setup_readline()
|
38
68
|
|
39
69
|
# Make imported functions available in the REPL
|
40
70
|
local_vars.update(globals())
|
41
71
|
|
42
|
-
#
|
43
|
-
|
72
|
+
# Set prompt (color handled by raw_input)
|
73
|
+
sys.ps1 = ">>> "
|
44
74
|
|
45
|
-
#
|
46
|
-
|
47
|
-
sys.ps1 = f"\033[97m>>> " # White prompt
|
75
|
+
# Create custom console
|
76
|
+
console = CustomConsole(locals=local_vars)
|
48
77
|
|
49
|
-
#
|
50
|
-
banner = f"{shell_color}Welcome to the rgwfuncs interactive shell.\nUse up/down arrows for command history.\nType 'exit()' or Ctrl+D to quit.\033[
|
51
|
-
exitmsg = f"{shell_color}Goodbye.\033[
|
78
|
+
# Banner and exit message in blue
|
79
|
+
banner = f"{shell_color}Welcome to the rgwfuncs interactive shell.\nUse up/down arrows for command history.\nType 'exit()' or Ctrl+D to quit.\033[94m"
|
80
|
+
exitmsg = f"{shell_color}Goodbye.\033[94m"
|
52
81
|
|
53
|
-
# Run the interactive session
|
82
|
+
# Run the interactive session
|
54
83
|
console.interact(banner=banner, exitmsg=exitmsg)
|
84
|
+
|
@@ -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=j2whOZEcGOQA7PWYA1ZItzELDQh-PDdpmF-W1zH3220,3140
|
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.80.dist-info/LICENSE,sha256=jLvt20gcUZYB8UOvyBvyKQ1qhYYhD__qP7ZDx2lPFkU,1062
|
8
|
+
rgwfuncs-0.0.80.dist-info/METADATA,sha256=wnQPQypnkNsi7RWzrBecvpQGeU-9RXXO7vUSqzOfNP4,60288
|
9
|
+
rgwfuncs-0.0.80.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
10
|
+
rgwfuncs-0.0.80.dist-info/entry_points.txt,sha256=j-c5IOPIQ0252EaOV6j6STio56sbXl2C4ym_fQ0lXx0,43
|
11
|
+
rgwfuncs-0.0.80.dist-info/top_level.txt,sha256=aGuVIzWsKiV1f2gCb6mynx0zx5ma0B1EwPGFKVEMTi4,9
|
12
|
+
rgwfuncs-0.0.80.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|