rgwfuncs 0.0.70__py3-none-any.whl → 0.0.71__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.
@@ -34,11 +34,11 @@ def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[37m')
34
34
  atexit.register(readline.write_history_file, HISTORY_FILE)
35
35
 
36
36
  def colorize_output(text: str, shell_color: str) -> str:
37
- """Apply shell color to text only if it doesn’t already contain ANSI codes, preserving existing codes."""
38
- # Check if the text contains any ANSI escape sequences
39
- if '\033[' not in text and '\x1b[' not in text:
37
+ """Apply shell color only to text without ANSI codes, preserving existing codes."""
38
+ # Split text into segments around ANSI escape sequences
39
+ if '\x1b[' not in text and '\033[' not in text:
40
40
  return f"{shell_color}{text}\033[0m"
41
- return text # Return unchanged if it already has ANSI codes
41
+ return text # Return unchanged if it contains ANSI codes
42
42
 
43
43
  if not isinstance(local_vars, dict):
44
44
  raise TypeError("local_vars must be a dictionary")
@@ -59,9 +59,9 @@ def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[37m')
59
59
  # Save original stdout write function
60
60
  original_write = sys.stdout.write
61
61
 
62
- # Define a pure function to wrap stdout.write
62
+ # Define a custom write function that respects existing ANSI codes
63
63
  def colored_write(text: str) -> None:
64
- # Pass text through colorize_output to handle coloring
64
+ # Write the text as-is if it contains ANSI codes, otherwise apply shell_color
65
65
  colored_text = colorize_output(text, shell_color)
66
66
  original_write(colored_text)
67
67
 
@@ -69,7 +69,9 @@ def interactive_shell(local_vars: Dict[str, Any], shell_color: str = '\033[37m')
69
69
  sys.stdout.write = colored_write
70
70
 
71
71
  # Start the interactive session
72
- console.interact(banner=banner, exitmsg=exitmsg)
72
+ try:
73
+ console.interact(banner=banner, exitmsg=exitmsg)
74
+ finally:
75
+ # Ensure original stdout.write is restored even on exceptions
76
+ sys.stdout.write = original_write
73
77
 
74
- # Restore original stdout.write after exiting
75
- sys.stdout.write = original_write
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rgwfuncs
3
- Version: 0.0.70
3
+ Version: 0.0.71
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
@@ -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=HqYtC-x9J42661d7a-wEOUuEUy0fRZjU3fn-EO6cf7E,3191
5
+ rgwfuncs/interactive_shell_lib.py,sha256=SsStlBx3vW6NE88m_reLCqhB7gVVi_fWilOkYKKxgEo,3259
6
6
  rgwfuncs/str_lib.py,sha256=rtAdRlnSJIu3JhI-tA_A0wCiPK2m-zn5RoGpBxv_g-4,2228
7
- rgwfuncs-0.0.70.dist-info/LICENSE,sha256=jLvt20gcUZYB8UOvyBvyKQ1qhYYhD__qP7ZDx2lPFkU,1062
8
- rgwfuncs-0.0.70.dist-info/METADATA,sha256=Ftf_xo3s8-m4kAzqxb2wTYOFMgnoXSlmSyKzXtJdVOg,60288
9
- rgwfuncs-0.0.70.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
10
- rgwfuncs-0.0.70.dist-info/entry_points.txt,sha256=j-c5IOPIQ0252EaOV6j6STio56sbXl2C4ym_fQ0lXx0,43
11
- rgwfuncs-0.0.70.dist-info/top_level.txt,sha256=aGuVIzWsKiV1f2gCb6mynx0zx5ma0B1EwPGFKVEMTi4,9
12
- rgwfuncs-0.0.70.dist-info/RECORD,,
7
+ rgwfuncs-0.0.71.dist-info/LICENSE,sha256=jLvt20gcUZYB8UOvyBvyKQ1qhYYhD__qP7ZDx2lPFkU,1062
8
+ rgwfuncs-0.0.71.dist-info/METADATA,sha256=sVSS56mX9nGBL0lQVm6-RD0Zmo_aZqH1uBN6itkgfRc,60288
9
+ rgwfuncs-0.0.71.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
10
+ rgwfuncs-0.0.71.dist-info/entry_points.txt,sha256=j-c5IOPIQ0252EaOV6j6STio56sbXl2C4ym_fQ0lXx0,43
11
+ rgwfuncs-0.0.71.dist-info/top_level.txt,sha256=aGuVIzWsKiV1f2gCb6mynx0zx5ma0B1EwPGFKVEMTi4,9
12
+ rgwfuncs-0.0.71.dist-info/RECORD,,