Add EMAIL parameter type for email validation#3108
Closed
sushilk123 wants to merge 2 commits intopallets:mainfrom
Closed
Add EMAIL parameter type for email validation#3108sushilk123 wants to merge 2 commits intopallets:mainfrom
sushilk123 wants to merge 2 commits intopallets:mainfrom
Conversation
added 2 commits
October 14, 2025 16:22
- Add EmailParamType class with regex-based email validation - Export EMAIL constant for easy usage - Include comprehensive test suite covering valid/invalid cases - Add example demonstrating EMAIL type usage - Support standard email formats with proper error messages The EMAIL type validates email addresses using a simple but effective regex pattern and provides clear error messages for invalid inputs. Follows the same patterns as existing parameter types like UUID.
- Reject emails with leading/trailing dots (.user@, user.@) - Reject emails with consecutive dots (domain..com) - Still allow valid formats with + symbols and proper dots - All tests now pass
8fdbe71 to
ade8b3c
Compare
Member
|
I don't think this is useful in click. If someone needs this, they can implement this in their application and use a proper email validator. I'm quite certain that the current regex excludes valid emails, e.g. anything containing iternational domain names. |
Member
|
(I also have the feeling this PR is AI-generated. Don't do that.) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add EMAIL parameter type for email validation
This PR adds a new
EmailParamTypeto Click for validating email addresses in command-line applications.Features
Usage
python
import click
@click.command()
@click.option('--email', type=click.EMAIL)
def send_message(email):
click.echo(f"Sending to: {email}")
Validation Examples
user@example.comtest.email+tag@domain.co.ukinvalid-email→ "is not a valid email address"user@→ "is not a valid email address"Implementation Details
UUID^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$Files Changed
src/click/types.py- AddedEmailParamTypeclass andEMAILconstantsrc/click/__init__.py- ExportedEMAILfor public APItests/test_types.py- Added comprehensive test suiteexamples/email_example.py- Added usage exampleThis addresses the common need for email validation in CLI applications while maintaining Click's design principles.