forked from pool/python-email-validator
- Update to 2.3.0
* The package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name. * The library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new `strict=True` parameter, and the overall 254 character email address length limit is still in place. * New EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains. * When using `allow_display_name=True`, display names are now returned with Unicode NFC normalization. * TypeError is now raised if something other than str (or bytes) is passed as the email address. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-email-validator?expand=0&rev=28
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.osc
|
BIN
email_validator-2.2.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
email_validator-2.2.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
email_validator-2.3.0.tar.gz
Normal file
3
email_validator-2.3.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:578564e92e66874bfb6c7506b4b33e7abd79f0e9b99dedd979d03fcd5fc4f039
|
||||||
|
size 45521
|
11
ignore-urllib3-pyopenssl-warning.patch
Normal file
11
ignore-urllib3-pyopenssl-warning.patch
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Index: python-email-validator-2.0.0/setup.cfg
|
||||||
|
===================================================================
|
||||||
|
--- python-email-validator-2.0.0.orig/setup.cfg
|
||||||
|
+++ python-email-validator-2.0.0/setup.cfg
|
||||||
|
@@ -43,5 +43,6 @@ max-line-length = 120
|
||||||
|
testpaths = tests
|
||||||
|
filterwarnings =
|
||||||
|
error
|
||||||
|
+ ignore:.*urllib3.contrib.pyopenssl.*:DeprecationWarning
|
||||||
|
markers =
|
||||||
|
network: mark a test as requiring Internet access.
|
288
python-email-validator.changes
Normal file
288
python-email-validator.changes
Normal file
@@ -0,0 +1,288 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 1 08:25:10 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||||
|
|
||||||
|
- Update to 2.3.0
|
||||||
|
* The package name is changed from using an underscore (email_validator)
|
||||||
|
to a dash (email-validator) to match PyPi's normalized package name.
|
||||||
|
* The library no longer checks that the local part is at most 64 characters
|
||||||
|
because a more careful reading of RFC 5321 indicates the limit is optional
|
||||||
|
and such email addresses have been found in the wild. However the check
|
||||||
|
can be restored using a new `strict=True` parameter, and the overall 254
|
||||||
|
character email address length limit is still in place.
|
||||||
|
* New EmailSyntaxError messages are used for some exiting syntax errors
|
||||||
|
related to @-sign homoglyphs and invalid characters in internationalized
|
||||||
|
domains.
|
||||||
|
* When using `allow_display_name=True`, display names are now returned with
|
||||||
|
Unicode NFC normalization.
|
||||||
|
* TypeError is now raised if something other than str (or bytes) is passed
|
||||||
|
as the email address.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 14 13:04:59 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
||||||
|
|
||||||
|
- Convert to libalternatives on SLE-16-based and newer systems only
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 8 13:11:57 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
||||||
|
|
||||||
|
- Convert to libalternatives
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 23 01:30:08 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Switch to pyproject macros.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jun 29 16:02:19 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 2.2.0:
|
||||||
|
* Email addresses with internationalized local parts could,
|
||||||
|
with rare Unicode characters, be returned as valid but
|
||||||
|
actually be invalid in their normalized form (returned in the
|
||||||
|
`normalized` field). Local parts now re-validated after
|
||||||
|
Unicode NFC normalization to ensure that invalid characters
|
||||||
|
cannot be injected into the normalized address and that
|
||||||
|
characters with length-increasing NFC normalizations cannot
|
||||||
|
cause a local part to exceed the maximum length after
|
||||||
|
normalization.
|
||||||
|
* The length check for email addresses with internationalized
|
||||||
|
local parts is now also applied to the original address
|
||||||
|
string prior to Unicode NFC normalization, which may be
|
||||||
|
longer and could exceed the maximum email address length, to
|
||||||
|
protect callers who do not use the returned normalized
|
||||||
|
address.
|
||||||
|
* Improved error message for IDNA domains that are too long or
|
||||||
|
have invalid characters after Unicode normalization.
|
||||||
|
* A new option to parse `My Name <address@domain>` strings,
|
||||||
|
i.e. a display name plus an email address in angle brackets,
|
||||||
|
is now available. It is off by default.
|
||||||
|
* Improvements to Python typing.
|
||||||
|
* Some additional tests added.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 19 07:08:36 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 2.1.2:
|
||||||
|
* The domain name length limit is corrected from 255 to 253
|
||||||
|
IDNA ASCII characters. I misread the RFCs.
|
||||||
|
* When a domain name has no MX record but does have an A or
|
||||||
|
AAAA record, if none of the IP addresses in the response are
|
||||||
|
globally reachable (i.e. not Private-Use, Loopback, etc.),
|
||||||
|
the response is treated as if there was no A/AAAA response
|
||||||
|
and the email address will fail the deliverability check.
|
||||||
|
* When a domain name has no MX record but does have an A or
|
||||||
|
AAAA record, the mx field in the object returned by
|
||||||
|
validate_email incorrectly held the IP addresses rather than
|
||||||
|
the domain itself.
|
||||||
|
* Fixes in tests.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 6 07:38:28 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 2.1.1:
|
||||||
|
* Fixed typo 'marking' instead of 'marketing' in case-
|
||||||
|
insensitive mailbox name list.
|
||||||
|
* When DNS-based deliverability checks fail, in some cases
|
||||||
|
exceptions are now thrown with `raise ... from` for better
|
||||||
|
nested exception tracking.
|
||||||
|
* Fixed tests to work when no local resolver can be configured.
|
||||||
|
* This project is now licensed under the Unlicense (instead of
|
||||||
|
CC0).
|
||||||
|
* Minor improvements to tests.
|
||||||
|
* Minor improvements to code style.
|
||||||
|
- drop dont-require-resolv-tests.patch: obsolete
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 16 10:02:55 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 2.1.0:
|
||||||
|
* Python 3.8+ is now required (support for Python 3.7 was
|
||||||
|
dropped).
|
||||||
|
* The old `email` field on the returned `ValidatedEmail`
|
||||||
|
object, which in the previous version was superseded by
|
||||||
|
`normalized`, will now raise a deprecation warning if used.
|
||||||
|
See https://stackoverflow.com/q/879173 for strategies to
|
||||||
|
suppress the DeprecationWarning.
|
||||||
|
* A `__version__` module attribute is added.
|
||||||
|
* The email address argument to validate_email is now marked as
|
||||||
|
positional-only to better reflect the documented usage using
|
||||||
|
the new Python 3.8 feature.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 25 08:23:47 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Add dont-require-resolv-tests.patch to make tests run without an
|
||||||
|
existing /etc/resolv.conf file
|
||||||
|
- Update to 2.0.0:
|
||||||
|
This is a major update to the library, but since email address specs
|
||||||
|
haven't changed there should be no significant changes to which
|
||||||
|
email addresses are considered valid or invalid with default
|
||||||
|
options. There are new options for accepting unusual email addresses
|
||||||
|
that were previously always rejected, some changes to how DNS errors
|
||||||
|
are handled, many changes in error message text, and major internal
|
||||||
|
improvements including the addition of type annotations. Python 3.7+
|
||||||
|
is now required. Details follow:
|
||||||
|
|
||||||
|
* Python 2.x and 3.x versions through 3.6, and dnspython 1.x, are no
|
||||||
|
longer supported. Python 3.7+ with dnspython 2.x are now required.
|
||||||
|
* The dnspython package is no longer required if DNS checks are not
|
||||||
|
used, although it will install automatically.
|
||||||
|
* NoNameservers and NXDOMAIN DNS errors are now handled differently:
|
||||||
|
NoNameservers no longer fails validation, and NXDOMAIN now skips
|
||||||
|
checking for an A/AAAA fallback and goes straight to failing
|
||||||
|
validation.
|
||||||
|
* Some syntax error messages have changed because they are now
|
||||||
|
checked explicitly rather than as a part of other checks.
|
||||||
|
* The quoted-string local part syntax (e.g. multiple @-signs,
|
||||||
|
spaces, etc. if surrounded by quotes) and domain-literal addresses
|
||||||
|
(e.g. @[192.XXX...] or @[IPv6:...]) are now parsed but not
|
||||||
|
considered valid by default. Better error messages are now given
|
||||||
|
for these addresses since it can be confusing for a technically
|
||||||
|
valid address to be rejected, and new allow_quoted_local and
|
||||||
|
allow_domain_literal options are added to allow these addresses if
|
||||||
|
you really need them.
|
||||||
|
* Some other error messages have changed to not repeat the email
|
||||||
|
address in the error message.
|
||||||
|
* The email field on the returned ValidatedEmail object has been
|
||||||
|
renamed to normalized to be clearer about its importance, but
|
||||||
|
access via .email is also still supported.
|
||||||
|
* Some mailbox names like postmaster are now normalized to lowercase
|
||||||
|
per RFC 2142.
|
||||||
|
* The library has been reorganized internally into smaller modules.
|
||||||
|
* The tests have been reorganized and expanded. Deliverability tests
|
||||||
|
now mostly use captured DNS responses so they can be run off-line.
|
||||||
|
* The main tool now reads options to validate_email from environment
|
||||||
|
variables.
|
||||||
|
* Type annotations have been added to the exported methods and the
|
||||||
|
ValidatedEmail class and some internal methods.
|
||||||
|
* The old dict-like pattern for the return value of validate_email
|
||||||
|
is deprecated.
|
||||||
|
|
||||||
|
Versions 2.0.0.post1 and 2.0.0.post2 corrected some packaging
|
||||||
|
issues. 2.0.0.post2 also added a check for an invalid combination of
|
||||||
|
arguments.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 25 07:18:27 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- add sle15_python_module_pythons (jsc#PED-68)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jan 28 13:39:59 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 1.3.1:
|
||||||
|
* The new SPF 'v=spf1 -all' (reject-all) deliverability check is removed
|
||||||
|
in most cases. It now is performed only for domains that do not have MX
|
||||||
|
records but do have an A/AAAA fallback record.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 4 08:06:34 UTC 2022 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Update to 1.3.0:
|
||||||
|
* Deliverability checks now check for 'v=spf1 -all' SPF records as a way to reject more bad domains.
|
||||||
|
* Special use domain names now raise EmailSyntaxError instead of EmailUndeliverableError since they are performed even if check_deliverability is off.
|
||||||
|
* New module-level attributes are added to override the default values of the keyword arguments and the special-use domains list.
|
||||||
|
* The keyword arguments of the public methods are now marked as keyword-only.
|
||||||
|
* pyIsEmail's test cases are added to the tests.
|
||||||
|
* Recommend that check_deliverability be set to False for validation on login pages.
|
||||||
|
* Added an undocumented globally_deliverable option.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 8 07:24:18 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 1.2.1:
|
||||||
|
* Rejecting domains with NULL MX records (when deliverability checks are
|
||||||
|
turned on).
|
||||||
|
* Rejecting unsafe unicode characters. (Some of these checks you should be
|
||||||
|
doing on all of your user inputs already!)
|
||||||
|
* Rejecting most special-use reserved domain names. A new test_environment
|
||||||
|
option is added for using @*.test domains.
|
||||||
|
* example and example.com/net/org are removed from the special-use domains
|
||||||
|
list.
|
||||||
|
* SPECIAL_USE_DOMAIN_NAMES is now a documented part of the API (and it is a
|
||||||
|
list instead of a tuple)
|
||||||
|
* New module-level attributes ALLOW_SMTPUTF8, CHECK_DELIVERABILITY,
|
||||||
|
TEST_ENVIRONMENT, and DEFAULT_TIMEOUT can be used to change the default
|
||||||
|
values of the keyword arguments.
|
||||||
|
- Add patch ignore-urllib3-pyopenssl-warning.patch:
|
||||||
|
* Ignore warning as error from requests-toolbelt via dnspython.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 19 17:42:44 UTC 2022 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
- Fix the name of the package (it should be email-validator, not
|
||||||
|
email_validator).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 16 09:14:16 UTC 2021 - Fusion Future <qydwhotmail@gmail.com>
|
||||||
|
|
||||||
|
- Update to 1.1.3:
|
||||||
|
* Add possibility to cache dns lookups (#58)
|
||||||
|
* Add py39 and setup_py to setup_cfg (#57)
|
||||||
|
- Changes from 1.1.2:
|
||||||
|
* Refactor: Main refactored, tests added for main (#52)
|
||||||
|
* Simplify email equality check into return statement (#51)
|
||||||
|
* Dedupe length reason logic and declare magic numbers as
|
||||||
|
constants (#50)
|
||||||
|
* Fix: ValidatedEmail is not JSON serializable (#49)
|
||||||
|
* Use dnspython's resolve method when available (#46)
|
||||||
|
* Package name should have a dash not an underscore
|
||||||
|
* Mention Punycode normalization, re-do fields as a table
|
||||||
|
- Drop fix-tests-strings.patch which is not needed.
|
||||||
|
- Move skipped tests to spec file, drop skip-tests-using-network.patch.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 17 11:02:14 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 1.1.1:
|
||||||
|
* Fix exception on DNS timeout
|
||||||
|
* Mention Punycode in the README
|
||||||
|
* Flake8 fixes
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 26 06:34:06 UTC 2020 - Petr Gajdos <pgajdos@suse.com>
|
||||||
|
|
||||||
|
- %python3_only -> %python_alternative
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 11 07:38:24 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
|
||||||
|
- Do not build python2 version
|
||||||
|
- Add patch to fix error messages being compared in tests to match
|
||||||
|
error messages in Leap/SLE:
|
||||||
|
* fix-tests-strings.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 7 12:03:47 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
|
||||||
|
- version update to 1.1.0
|
||||||
|
* no upstream changelog
|
||||||
|
|
||||||
|
- version update to 1.0.5
|
||||||
|
* no upstream changelog
|
||||||
|
|
||||||
|
- Use pytest
|
||||||
|
- Add patch to skip tests that try to check MX records of domains:
|
||||||
|
* skip-tests-using-network.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 7 10:28:10 UTC 2019 - pgajdos@suse.com
|
||||||
|
|
||||||
|
- version update to 1.0.4
|
||||||
|
* no upstream changelog
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 14 15:48:48 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||||
|
|
||||||
|
- Update to 1.0.3:
|
||||||
|
* metadata fixes
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Dec 4 12:47:37 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
- Remove superfluous devel dependency for noarch package
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 6 16:48:08 UTC 2017 - toddrme2178@gmail.com
|
||||||
|
|
||||||
|
- Initial version
|
107
python-email-validator.spec
Normal file
107
python-email-validator.spec
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
#
|
||||||
|
# spec file for package python-email-validator
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
%bcond_without libalternatives
|
||||||
|
%else
|
||||||
|
%bcond_with libalternatives
|
||||||
|
%endif
|
||||||
|
%{?sle15_python_module_pythons}
|
||||||
|
Name: python-email-validator
|
||||||
|
Version: 2.3.0
|
||||||
|
Release: 0
|
||||||
|
Summary: A robust email syntax and deliverability validation library for Python
|
||||||
|
License: CC0-1.0
|
||||||
|
URL: https://github.com/JoshData/python-email-validator
|
||||||
|
Source: https://github.com/JoshData/python-email-validator/archive/refs/tags/v%{version}.tar.gz#/email_validator-%{version}.tar.gz
|
||||||
|
# PATCH-FIX-OPENSUSE Ignore DeprecationWarning until requests-toolbelt is fixed
|
||||||
|
# (Pulled in by dnspython)
|
||||||
|
Patch0: ignore-urllib3-pyopenssl-warning.patch
|
||||||
|
BuildRequires: %{python_module base >= 3.8}
|
||||||
|
BuildRequires: %{python_module dnspython >= 1.15.0}
|
||||||
|
BuildRequires: %{python_module idna >= 2.0.0}
|
||||||
|
BuildRequires: %{python_module pip}
|
||||||
|
BuildRequires: %{python_module pytest >= 5.0}
|
||||||
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: %{python_module wheel}
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
Requires: python-dnspython >= 1.15.0
|
||||||
|
Requires: python-idna >= 2.0.0
|
||||||
|
Provides: python-email_validator = %{version}-%{release}
|
||||||
|
Obsoletes: python-email_validator < %{version}-%{release}
|
||||||
|
BuildArch: noarch
|
||||||
|
%if %{with libalternatives}
|
||||||
|
BuildRequires: alts
|
||||||
|
Requires: alts
|
||||||
|
%else
|
||||||
|
Requires(post): update-alternatives
|
||||||
|
Requires(postun): update-alternatives
|
||||||
|
%endif
|
||||||
|
%python_subpackages
|
||||||
|
|
||||||
|
%description
|
||||||
|
A robust email address syntax and deliverability validation library
|
||||||
|
for Python 2.7/3.4 by Joshua Tauberer.
|
||||||
|
|
||||||
|
This library validates that address are of the form ``x@y.com``. This is
|
||||||
|
the sort of validation you would want for a login form on a website.
|
||||||
|
|
||||||
|
Key features:
|
||||||
|
|
||||||
|
* Good for validating email addresses used for logins/identity.
|
||||||
|
* Friendly error messages when validation fails (appropriate to show to end users).
|
||||||
|
* (optionally) Checks deliverability: Does the domain name resolve?
|
||||||
|
* Supports internationalized domain names and (optionally) internationalized local parts.
|
||||||
|
* Normalizes email addresses (super important for internationalized addresses! see below).
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n python-email-validator-%{version}
|
||||||
|
|
||||||
|
%build
|
||||||
|
%pyproject_wheel
|
||||||
|
|
||||||
|
%install
|
||||||
|
%pyproject_install
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/email_validator
|
||||||
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
|
||||||
|
%check
|
||||||
|
echo "nameserver 1.1.1.1" > resolv.conf
|
||||||
|
export RESOLV_FILE=$PWD/resolv.conf
|
||||||
|
# test_caching_dns_resolver fails when running with kvm
|
||||||
|
donttest="test_caching_dns_resolver"
|
||||||
|
%pytest tests -k "not ($donttest)"
|
||||||
|
|
||||||
|
%pre
|
||||||
|
%python_libalternatives_reset_alternative email_validator
|
||||||
|
|
||||||
|
%post
|
||||||
|
%python_install_alternative email_validator
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%python_uninstall_alternative email_validator
|
||||||
|
|
||||||
|
%files %{python_files}
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%python_alternative %{_bindir}/email_validator
|
||||||
|
%{python_sitelib}/email_validator
|
||||||
|
%{python_sitelib}/email_validator-%{version}.dist-info
|
||||||
|
|
||||||
|
%changelog
|
Reference in New Issue
Block a user