Welcome to CSV2Sendyβs Documentationο
CSV2Sendyο
A powerful CSV processor for Sendy.co with Brazilian data format support.
π Featuresο
π 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
π§ 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
π» Web Interfaceο
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
π¦ Installationο
Using pipο
pip install csv2sendy
From sourceο
git clone https://github.com/skaisser/csv2sendy.git
cd csv2sendy
pip install -e ".[dev]"
π Quick Startο
Web Interfaceο
# Start the web server
python -m csv2sendy.web.app
Visit http://localhost:5000 in your browser.
Command Line Interface (CLI)ο
# 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.
Python APIο
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)
π§ Dependenciesο
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
π€ Contributingο
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 (
pytestandmypy csv2sendy)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
π Licenseο
This project is licensed under the MIT License - see the LICENSE file for details.
API Documentationο
Certificatesο
*.pem *.key *.crt *.cer *.p12 *.pfx
Environment and configο
.env .env.* *.conf config.ini
Credentialsο
.aws/ credentials/ credentials
Core Moduleο
Process CSV files for Sendy compatibility.
Web Moduleο
Web application module for CSV2Sendy.
This module provides a Flask-based web interface for processing CSV files for Sendy.co. It includes routes for file upload, processing, and download with custom column mapping.
- Key Features:
File upload with multiple encoding support
CSV processing with Brazilian data format support
Custom column mapping
Tag addition
Duplicate email removal