Migrate to GitLab

This commit is contained in:
jonasgaudian
2026-02-12 09:51:22 +01:00
commit d7f49197c0
57 changed files with 9838 additions and 0 deletions

75
excel_filter/main.py Normal file
View File

@@ -0,0 +1,75 @@
"""
Main module for command line functionality
"""
import argparse
import json
import logging
from filter import ExcelFilter
# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def load_config(config_file: str) -> dict:
"""
Loads a configuration file
"""
try:
with open(config_file, 'r') as f:
config = json.load(f)
logger.info(f"Configuration loaded: {config_file}")
return config
except Exception as e:
logger.error(f"Error loading configuration: {e}")
raise
def main():
"""
Main function for command line application
"""
parser = argparse.ArgumentParser(description='Excel Filter Tool')
parser.add_argument('--input', required=True, help='Input file (Excel)')
parser.add_argument('--output', required=True, help='Output file (Excel)')
parser.add_argument('--pattern', help='Regex pattern for filtering')
parser.add_argument('--config', help='Configuration file (JSON)')
parser.add_argument('--sheet', help='Name of the worksheet')
parser.add_argument('--columns', nargs='+', help='Columns to search')
args = parser.parse_args()
# Load configuration or use command line arguments
if args.config:
config = load_config(args.config)
pattern = config.get('pattern', args.pattern)
sheet_name = config.get('sheet_name', args.sheet)
columns = config.get('columns', args.columns)
else:
pattern = args.pattern
sheet_name = args.sheet
columns = args.columns
if not pattern:
logger.error("No regex pattern specified")
return
# Create ExcelFilter instance and execute
excel_filter = ExcelFilter(
input_file=args.input,
output_file=args.output,
pattern=pattern,
sheet_name=sheet_name,
columns=columns
)
success = excel_filter.process()
if success:
logger.info("Processing completed successfully")
else:
logger.error("Processing failed")
if __name__ == '__main__':
main()