A powerful CSV processor for Sendy.co with Brazilian data format support.
-
🔄 Intelligent CSV Processing
- Auto-detection of delimiters (
,
or;
) - Multiple encoding support (utf-8-sig, latin1, iso-8859-1, cp1252)
- Smart column mapping and normalization
- Robust error handling
- Auto-detection of delimiters (
-
📧 Email Validation
- RFC-compliant email validation
- Case normalization
- Duplicate removal
- Invalid email filtering
-
📱 Phone Number Processing
- Brazilian format support
- Format standardization
- Invalid number filtering
- DDD (area code) validation
-
👤 Name Processing
- First/last name splitting
- Proper capitalization
- Special character handling
- Empty name filtering
-
🔒 Security
- Secure file handling
- Automatic file cleanup
- Input sanitization
- File size limits
Transform your CSV files into Sendy.co-ready formats with our intuitive web interface:
The web interface provides:
- 📤 Drag & drop file upload
- 🔄 Automatic CSV processing
- 📋 Column mapping
- ✨ Data validation and cleaning
- ⬇️ Download processed files
pip install csv2sendy
git clone https://github.com/skaisser/csv2sendy.git
cd csv2sendy
pip install -e ".[dev]"
# Start the web server
python -m csv2sendy.web.app
Visit http://localhost:5000 in your browser.
# Start the web server on default port (5000)
csv2sendy
# Start the web server on a specific port
csv2sendy 3000
# Get help
csv2sendy --help
The CLI provides a convenient way to start the web interface. By default, it starts the server on port 5000, but you can specify a different port as a command-line argument.
from csv2sendy.core import CSVProcessor
# Process a CSV file
processor = CSVProcessor()
df = processor.process_file('input.csv')
df.to_csv('output.csv', index=False)
# Process CSV content directly
content = '''name,email,phone
John Doe,john@example.com,(11) 98765-4321'''
df = processor.process_file(content)
Core dependencies (automatically installed):
- Python >=3.9
- pandas >=1.3.0
- email-validator >=1.1.0
- flask >=2.0.0
- werkzeug >=2.0.0
Development dependencies (install with .[dev]
):
- pytest >=7.0.0
- pytest-cov >=4.0.0
- mypy >=1.13.0
- types-flask >=1.1.0
- types-werkzeug >=1.0.0
- pandas-stubs >=2.0.0
Documentation dependencies (install with .[docs]
):
- sphinx >=7.0.0
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Install development dependencies (
pip install -e ".[dev,test,doc]"
) - Make your changes
- Run tests and type checking (
pytest
andmypy csv2sendy
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Shirleyson Kaisser
- GitHub: @skaisser
- Email: skaisser@gmail.com