function peers::cleanup_config() { local config config=$(config::config_file) python3 -c " import re config = open('${config}').read() # Normalize multiple blank lines to single blank line config = re.sub(r'\n{3,}', '\n\n', config) # Ensure file ends with single newline config = config.rstrip('\n') + '\n' open('${config}', 'w').write(config) " } function peers::remove_block() { local name="$1" local config config=$(config::config_file) python3 -c " import re config = open('${config}').read() pattern = r'\n\[Peer\]\n# ${name}\n[^\n]+\n[^\n]+\n' result = re.sub(pattern, '\n', config) open('${config}', 'w').write(result) " }