{"id":28264,"library":"spreadsheet-handling","title":"spreadsheet-handling","description":"Composable pipelines for spreadsheets (JSON/YAML/CSV/XLSX) with FK helpers, validation, and IO routing. Version 0.1.0b5, requires Python >=3.10, pre-release beta with active development.","status":"active","version":"0.1.0b5","language":"python","source_language":"en","source_url":"https://github.com/StefanSchade/spreadsheet-handling","tags":["spreadsheet","pipeline","csv","xlsx","yaml","json","validation","foreign-key"],"install":[{"cmd":"pip install spreadsheet-handling","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Used for reading/writing Excel and CSV files","package":"pandas","optional":false},{"reason":"Required for .xlsx file support","package":"openpyxl","optional":false},{"reason":"Required for YAML file support","package":"pyyaml","optional":false}],"imports":[{"note":"Hyphen in package name is replaced by underscore in Python import.","wrong":"from spreadsheet-handling import SheetPipeline","symbol":"SheetPipeline","correct":"from spreadsheet_handling import SheetPipeline"},{"note":"FkHelper is directly available at top-level per source code inspection.","wrong":"from spreadsheet_handling.fk import FkHelper","symbol":"FkHelper","correct":"from spreadsheet_handling import FkHelper"},{"note":"No common wrong import.","symbol":"ValidationError","correct":"from spreadsheet_handling import ValidationError"}],"quickstart":{"code":"from spreadsheet_handling import SheetPipeline, FkHelper\nimport os\n\n# Build a pipeline reading from CSV, adding FK lookup, and writing to JSON\npipeline = (\n    SheetPipeline()\n    .read_csv('input.csv')\n    .add_fk('dept_id', FkHelper(source='departments.csv', key_column='id', value_column='name'))\n    .validate({'dept_id': 'required'})\n    .write_json('output.json')\n)\n\n# Execute\npipeline.run()\nprint('Pipeline executed successfully.')","lang":"python","description":"Minimal example reading CSV, adding a foreign key lookup, validating a required column, and writing JSON."},"warnings":[{"fix":"Pin to exact version in requirements.txt: spreadsheet-handling==0.1.0b5","message":"Package is in beta (0.1.0b5). APIs may change without notice between minor versions.","severity":"breaking","affected_versions":"<=0.1.0b5"},{"fix":"Use underscore in import statements.","message":"Import path uses underscore: from spreadsheet_handling import ... not spreadsheet-handling.","severity":"gotcha","affected_versions":"all"},{"fix":"Check changelog before upgrading; wrap validation in a try/except ValidationError.","message":"The `.validate()` method signature may change in future betas. Currently expects a dict of column names and validation rules.","severity":"deprecated","affected_versions":"0.1.0b5"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use: import spreadsheet_handling","cause":"Attempted to import with hyphen instead of underscore.","error":"ModuleNotFoundError: No module named 'spreadsheet_handling'"},{"fix":"Convert .xls files to .xlsx or CSV before using.","cause":"Only .xlsx is supported for Excel files, not .xls (old format).","error":"ValueError: Invalid file extension '.xls' for reader"},{"fix":"Ensure the input file contains the column 'email' with non-empty values.","cause":"Missing or empty column in input data.","error":"ValidationError: Column 'email' is required"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}