mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-29 04:53:17 +02:00
fix: Code review fixes for multiple Python files
Fixed the following issues: 1. gitstatus.py: - Fixed broad IOError exception handling to catch specific OSError/FileNotFoundError - Fixed unused variable warning by using _ for ignored stderr 2. proxy.py: - Fixed os.path.expandvars usage that doesn't expand ~, changed to os.path.expanduser - Fixed check_output call that was incorrectly passing a file path instead of command list - Fixed missing space in env variable assignment for aliases 3. update_emoji.py: - Fixed file handle leaks by using with statements for file operations - Removed unnecessary .keys() call in dict iteration 4. cheatsheet.py: - Fixed parse() function to handle lines without '=' character - Fixed inefficient list comprehension using any() instead - Fixed shadowing of built-in 'cheatsheet' function name 5. ssh-agent.py: - Modernized string formatting from .format() to f-string 6. ssh-proxy.py: - Fixed next() call without default value that crashes when no proxy env vars set - Fixed missing exit code propagation from subprocess.call Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e42ac8c57b
commit
cc0f7eee90
6 changed files with 103 additions and 97 deletions
|
|
@ -5,10 +5,13 @@ import termcolor
|
|||
import argparse
|
||||
|
||||
def parse(line):
|
||||
left = line[0:line.find('=')].strip()
|
||||
right = line[line.find('=')+1:].strip('\'"\n ')
|
||||
eq_pos = line.find('=')
|
||||
if eq_pos == -1:
|
||||
return (line.strip(), "", "")
|
||||
left = line[0:eq_pos].strip()
|
||||
right = line[eq_pos+1:].strip('\'"\n ')
|
||||
try:
|
||||
cmd = next(part for part in right.split() if len([char for char in '=<>' if char in part])==0)
|
||||
cmd = next(part for part in right.split() if not any(char in part for char in '=<>'))
|
||||
except StopIteration:
|
||||
cmd = right
|
||||
return (left, right, cmd)
|
||||
|
|
@ -16,17 +19,17 @@ def parse(line):
|
|||
def cheatsheet(lines):
|
||||
exps = [ parse(line) for line in lines ]
|
||||
exps.sort(key=lambda exp:exp[2])
|
||||
cheatsheet = {'_default': []}
|
||||
cheatsheet_data = {'_default': []}
|
||||
for key, group in itertools.groupby(exps, lambda exp:exp[2]):
|
||||
group_list = [ item for item in group ]
|
||||
if len(group_list)==1:
|
||||
target_aliases = cheatsheet['_default']
|
||||
target_aliases = cheatsheet_data['_default']
|
||||
else:
|
||||
if key not in cheatsheet:
|
||||
cheatsheet[key] = []
|
||||
target_aliases = cheatsheet[key]
|
||||
if key not in cheatsheet_data:
|
||||
cheatsheet_data[key] = []
|
||||
target_aliases = cheatsheet_data[key]
|
||||
target_aliases.extend(group_list)
|
||||
return cheatsheet
|
||||
return cheatsheet_data
|
||||
|
||||
def pretty_print_group(key, aliases, highlight=None, only_groupname=False):
|
||||
if len(aliases) == 0:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue