aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-11-27 16:20:38 -0500
committerBobby <[email protected]>2022-11-27 16:20:38 -0500
commitb9b6b54eac925b75f3ed844f65832e5bd09e251e (patch)
treeb18111660ecda6741da8654e96380bce852aeaec /src
parentb245307f903d8eee53e880c3d68b77ee32d07003 (diff)
downloadedify-b9b6b54eac925b75f3ed844f65832e5bd09e251e.tar.xz
edify-b9b6b54eac925b75f3ed844f65832e5bd09e251e.zip
fixing lint
Diffstat (limited to 'src')
-rw-r--r--src/edify/library/__init__.py8
-rw-r--r--src/edify/library/guid.py1
-rw-r--r--src/edify/library/mac.py1
-rw-r--r--src/edify/library/mail.py4
-rw-r--r--src/edify/library/password.py12
-rw-r--r--src/edify/library/ssn.py1
-rw-r--r--src/edify/library/support/zip.py1403
-rw-r--r--src/edify/library/url.py1
-rw-r--r--src/edify/library/uuid.py1
-rw-r--r--src/edify/library/zip.py5
10 files changed, 267 insertions, 1170 deletions
diff --git a/src/edify/library/__init__.py b/src/edify/library/__init__.py
index 5f091e8..bae5368 100644
--- a/src/edify/library/__init__.py
+++ b/src/edify/library/__init__.py
@@ -3,15 +3,15 @@
# Import everything from the library.
from .date import date
from .date import iso_date
+from .guid import guid
from .ip import ipv4
from .ip import ipv6
+from .mac import mac
from .mail import email
from .mail import email_rfc_5322
+from .password import password
from .phone import phone_number
+from .ssn import ssn
from .url import url
from .uuid import uuid
from .zip import zip
-from .guid import guid
-from .password import password
-from .ssn import ssn
-from .mac import mac
diff --git a/src/edify/library/guid.py b/src/edify/library/guid.py
index a9fb45a..be37efd 100644
--- a/src/edify/library/guid.py
+++ b/src/edify/library/guid.py
@@ -2,6 +2,7 @@ import re
pattern = "^(?:\\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\\}{0,1})$"
+
def guid(guid: str) -> bool:
"""Check if the given string is a valid GUID.
diff --git a/src/edify/library/mac.py b/src/edify/library/mac.py
index 9a8cf8f..9fba14c 100644
--- a/src/edify/library/mac.py
+++ b/src/edify/library/mac.py
@@ -2,6 +2,7 @@ import re
mac_address_validate_pattern = "^(?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})$"
+
def mac(mac: str) -> bool:
"""Validate a MAC (IEEE 802) address.
diff --git a/src/edify/library/mail.py b/src/edify/library/mail.py
index 02f9484..6797bf2 100644
--- a/src/edify/library/mail.py
+++ b/src/edify/library/mail.py
@@ -1,7 +1,7 @@
import re
-pattern = r"^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" # noqa
-rfc_5322_pattern = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])" # noqa
+pattern = r"^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" # noqa
+rfc_5322_pattern = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])" # noqa
def email(email: str) -> bool:
diff --git a/src/edify/library/password.py b/src/edify/library/password.py
index 85ef09c..09e9d5f 100644
--- a/src/edify/library/password.py
+++ b/src/edify/library/password.py
@@ -1,6 +1,16 @@
import re
-def password(password: str, min_length: int = 8, max_length: int = 64, min_upper: int = 1, min_lower: int = 1, min_digit: int = 1, min_special: int = 1, special_chars: str = "!@#$%^&*()_+-=[]{}|;':\",./<>?") -> bool:
+
+def password(
+ password: str,
+ min_length: int = 8,
+ max_length: int = 64,
+ min_upper: int = 1,
+ min_lower: int = 1,
+ min_digit: int = 1,
+ min_special: int = 1,
+ special_chars: str = "!@#$%^&*()_+-=[]{}|;':\",./<>?",
+) -> bool:
"""Check if the given string is a valid password.
Args:
diff --git a/src/edify/library/ssn.py b/src/edify/library/ssn.py
index 8f42de6..9c9dcf5 100644
--- a/src/edify/library/ssn.py
+++ b/src/edify/library/ssn.py
@@ -2,6 +2,7 @@ import re
ssn_validate_pattern = "^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$"
+
def ssn(ssn: str) -> bool:
"""Validate a Social Security Number (SSN).
diff --git a/src/edify/library/support/zip.py b/src/edify/library/support/zip.py
index 350837f..c8c37d6 100644
--- a/src/edify/library/support/zip.py
+++ b/src/edify/library/support/zip.py
@@ -1,1172 +1,253 @@
+# flake8: noqa
+
ZIP_LOCALES = [
- {
- "abbrev": "AF",
- "name": "Afghanistan",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "AL",
- "name": "Albania",
- "zip": "(120|122)[0-9]{2}"
- },
- {
- "abbrev": "DZ",
- "name": "Algeria",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "AS",
- "name": "American Samoa",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "AD",
- "name": "Andorra",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "AO",
- "name": "Angola"
- },
- {
- "abbrev": "AI",
- "name": "Anguilla",
- "zip": "AI-2640"
- },
- {
- "abbrev": "AG",
- "name": "Antigua and Barbuda"
- },
- {
- "abbrev": "AR",
- "name": "Argentina",
- "zip": "[A-Z]{1}[0-9]{4}[A-Z]{3}"
- },
- {
- "abbrev": "AM",
- "name": "Armenia",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "AW",
- "name": "Aruba"
- },
- {
- "abbrev": "AU",
- "name": "Australia",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "AT",
- "name": "Austria",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "AZ",
- "name": "Azerbaijan",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "BS",
- "name": "Bahamas"
- },
- {
- "abbrev": "BH",
- "name": "Bahrain"
- },
- {
- "abbrev": "BD",
- "name": "Bangladesh",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "BB",
- "name": "Barbados",
- "zip": "BB[0-9]{5}"
- },
- {
- "abbrev": "BY",
- "name": "Belarus",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "BE",
- "name": "Belgium",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "BZ",
- "name": "Belize"
- },
- {
- "abbrev": "BJ",
- "name": "Benin"
- },
- {
- "abbrev": "BM",
- "name": "Bermuda",
- "zip": "[A-Z]{2}[0-9]{2}"
- },
- {
- "abbrev": "BT",
- "name": "Bhutan",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "BO",
- "name": "Bolivia"
- },
- {
- "abbrev": "BQ",
- "name": "Bonaire"
- },
- {
- "abbrev": "BA",
- "name": "Bosnia and Herzegovina",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "BW",
- "name": "Botswana"
- },
- {
- "abbrev": "BR",
- "name": "Brazil",
- "zip": "[0-9]{5}-[0-9]{3}"
- },
- {
- "abbrev": "BN",
- "name": "Brunei",
- "zip": "[A-Z]{2}[0-9]{4}"
- },
- {
- "abbrev": "BG",
- "name": "Bulgaria",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "BF",
- "name": "Burkina Faso"
- },
- {
- "abbrev": "BI",
- "name": "Burundi"
- },
- {
- "abbrev": "KH",
- "name": "Cambodia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "CM",
- "name": "Cameroon"
- },
- {
- "abbrev": "CA",
- "name": "Canada",
- "zip": "[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]"
- },
- {
- "abbrev": "CI",
- "name": "Canary Islands",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "CV",
- "name": "Cape Verde",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "KY",
- "name": "Cayman Islands",
- "zip": "[A-Z]{2}[0-9]-[0-9]{4}"
- },
- {
- "abbrev": "CF",
- "name": "Central African Republic"
- },
- {
- "abbrev": "TD",
- "name": "Chad"
- },
- {
- "abbrev": "CI",
- "name": "Channel Islands",
- "zip": "[A-Z]{2}[0-9]{2}"
- },
- {
- "abbrev": "CL",
- "name": "Chile",
- "zip": "[0-9]{7}"
- },
- {
- "abbrev": "CN",
- "name": "China, People's Republic",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "CO",
- "name": "Colombia",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "KM",
- "name": "Comoros"
- },
- {
- "abbrev": "CG",
- "name": "Congo"
- },
- {
- "abbrev": "CD",
- "name": "Congo, The Democratic Republic of"
- },
- {
- "abbrev": "CK",
- "name": "Cook Islands"
- },
- {
- "abbrev": "CR",
- "name": "Costa Rica",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "CI",
- "name": "Côte d'Ivoire"
- },
- {
- "abbrev": "HR",
- "name": "Croatia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "CU",
- "name": "Cuba",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "CW",
- "name": "Curacao"
- },
- {
- "abbrev": "CY",
- "name": "Cyprus",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "CZ",
- "name": "Czech Republic",
- "zip": "[0-9]{3} [0-9]{2}"
- },
- {
- "abbrev": "DK",
- "name": "Denmark",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "DJ",
- "name": "Djibouti"
- },
- {
- "abbrev": "DM",
- "name": "Dominica"
- },
- {
- "abbrev": "DO",
- "name": "Dominican Republic",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "TL",
- "name": "East Timor"
- },
- {
- "abbrev": "EC",
- "name": "Ecuador",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "EG",
- "name": "Egypt",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "SV",
- "name": "El Salvador",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "ER",
- "name": "Eritrea"
- },
- {
- "abbrev": "EE",
- "name": "Estonia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "ET",
- "name": "Ethiopia",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "FK",
- "name": "Falkland Islands",
- "zip": "FIQQ 1ZZ"
- },
- {
- "abbrev": "FO",
- "name": "Faroe Islands",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "FJ",
- "name": "Fiji"
- },
- {
- "abbrev": "FI",
- "name": "Finland",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "FR",
- "name": "France",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "PF",
- "name": "French Polynesia",
- "zip": "987[0-9]{2}",
- "range": [
- "98700",
- "98790"
- ]
- },
- {
- "abbrev": "GA",
- "name": "Gabon"
- },
- {
- "abbrev": "GM",
- "name": "Gambia"
- },
- {
- "abbrev": "GE",
- "name": "Georgia"
- },
- {
- "abbrev": "DE",
- "name": "Germany",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "GH",
- "name": "Ghana"
- },
- {
- "abbrev": "GI",
- "name": "Gibraltar",
- "zip": "GX11 1AA"
- },
- {
- "abbrev": "GR",
- "name": "Greece",
- "zip": "[0-9]{3} [0-9]{2}"
- },
- {
- "abbrev": "GL",
- "name": "Greenland",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "GD",
- "name": "Grenada"
- },
- {
- "abbrev": "GP",
- "name": "Guadeloupe",
- "zip": "971[0-9]{2}",
- "range": [
- "97100",
- "97190"
- ]
- },
- {
- "abbrev": "GU",
- "name": "Guam",
- "zip": "\\d{5}(?:[-\\s]\\d{4})?",
- "range": [
- "96910",
- "96932"
- ]
- },
- {
- "abbrev": "GT",
- "name": "Guatemala",
- "zip": "[0-9]{5}"
- },
+ {"abbrev": "AF", "name": "Afghanistan", "zip": "[0-9]{4}"},
+ {"abbrev": "AL", "name": "Albania", "zip": "(120|122)[0-9]{2}"},
+ {"abbrev": "DZ", "name": "Algeria", "zip": "[0-9]{5}"},
+ {"abbrev": "AS", "name": "American Samoa", "zip": "[0-9]{5}"},
+ {"abbrev": "AD", "name": "Andorra", "zip": "[0-9]{5}"},
+ {"abbrev": "AO", "name": "Angola"},
+ {"abbrev": "AI", "name": "Anguilla", "zip": "AI-2640"},
+ {"abbrev": "AG", "name": "Antigua and Barbuda"},
+ {"abbrev": "AR", "name": "Argentina", "zip": "[A-Z]{1}[0-9]{4}[A-Z]{3}"},
+ {"abbrev": "AM", "name": "Armenia", "zip": "[0-9]{4}"},
+ {"abbrev": "AW", "name": "Aruba"},
+ {"abbrev": "AU", "name": "Australia", "zip": "[0-9]{4}"},
+ {"abbrev": "AT", "name": "Austria", "zip": "[0-9]{4}"},
+ {"abbrev": "AZ", "name": "Azerbaijan", "zip": "[0-9]{4}"},
+ {"abbrev": "BS", "name": "Bahamas"},
+ {"abbrev": "BH", "name": "Bahrain"},
+ {"abbrev": "BD", "name": "Bangladesh", "zip": "[0-9]{4}"},
+ {"abbrev": "BB", "name": "Barbados", "zip": "BB[0-9]{5}"},
+ {"abbrev": "BY", "name": "Belarus", "zip": "[0-9]{6}"},
+ {"abbrev": "BE", "name": "Belgium", "zip": "[0-9]{4}"},
+ {"abbrev": "BZ", "name": "Belize"},
+ {"abbrev": "BJ", "name": "Benin"},
+ {"abbrev": "BM", "name": "Bermuda", "zip": "[A-Z]{2}[0-9]{2}"},
+ {"abbrev": "BT", "name": "Bhutan", "zip": "[0-9]{5}"},
+ {"abbrev": "BO", "name": "Bolivia"},
+ {"abbrev": "BQ", "name": "Bonaire"},
+ {"abbrev": "BA", "name": "Bosnia and Herzegovina", "zip": "[0-9]{5}"},
+ {"abbrev": "BW", "name": "Botswana"},
+ {"abbrev": "BR", "name": "Brazil", "zip": "[0-9]{5}-[0-9]{3}"},
+ {"abbrev": "BN", "name": "Brunei", "zip": "[A-Z]{2}[0-9]{4}"},
+ {"abbrev": "BG", "name": "Bulgaria", "zip": "[0-9]{4}"},
+ {"abbrev": "BF", "name": "Burkina Faso"},
+ {"abbrev": "BI", "name": "Burundi"},
+ {"abbrev": "KH", "name": "Cambodia", "zip": "[0-9]{5}"},
+ {"abbrev": "CM", "name": "Cameroon"},
+ {"abbrev": "CA", "name": "Canada", "zip": "[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]"},
+ {"abbrev": "CI", "name": "Canary Islands", "zip": "[0-9]{5}"},
+ {"abbrev": "CV", "name": "Cape Verde", "zip": "[0-9]{4}"},
+ {"abbrev": "KY", "name": "Cayman Islands", "zip": "[A-Z]{2}[0-9]-[0-9]{4}"},
+ {"abbrev": "CF", "name": "Central African Republic"},
+ {"abbrev": "TD", "name": "Chad"},
+ {"abbrev": "CI", "name": "Channel Islands", "zip": "[A-Z]{2}[0-9]{2}"},
+ {"abbrev": "CL", "name": "Chile", "zip": "[0-9]{7}"},
+ {"abbrev": "CN", "name": "China, People's Republic", "zip": "[0-9]{6}"},
+ {"abbrev": "CO", "name": "Colombia", "zip": "[0-9]{6}"},
+ {"abbrev": "KM", "name": "Comoros"},
+ {"abbrev": "CG", "name": "Congo"},
+ {"abbrev": "CD", "name": "Congo, The Democratic Republic of"},
+ {"abbrev": "CK", "name": "Cook Islands"},
+ {"abbrev": "CR", "name": "Costa Rica", "zip": "[0-9]{5}"},
+ {"abbrev": "CI", "name": "Côte d'Ivoire"},
+ {"abbrev": "HR", "name": "Croatia", "zip": "[0-9]{5}"},
+ {"abbrev": "CU", "name": "Cuba", "zip": "[0-9]{5}"},
+ {"abbrev": "CW", "name": "Curacao"},
+ {"abbrev": "CY", "name": "Cyprus", "zip": "[0-9]{4}"},
+ {"abbrev": "CZ", "name": "Czech Republic", "zip": "[0-9]{3} [0-9]{2}"},
+ {"abbrev": "DK", "name": "Denmark", "zip": "[0-9]{5}"},
+ {"abbrev": "DJ", "name": "Djibouti"},
+ {"abbrev": "DM", "name": "Dominica"},
+ {"abbrev": "DO", "name": "Dominican Republic", "zip": "[0-9]{5}"},
+ {"abbrev": "TL", "name": "East Timor"},
+ {"abbrev": "EC", "name": "Ecuador", "zip": "[0-9]{6}"},
+ {"abbrev": "EG", "name": "Egypt", "zip": "[0-9]{5}"},
+ {"abbrev": "SV", "name": "El Salvador", "zip": "[0-9]{4}"},
+ {"abbrev": "ER", "name": "Eritrea"},
+ {"abbrev": "EE", "name": "Estonia", "zip": "[0-9]{5}"},
+ {"abbrev": "ET", "name": "Ethiopia", "zip": "[0-9]{4}"},
+ {"abbrev": "FK", "name": "Falkland Islands", "zip": "FIQQ 1ZZ"},
+ {"abbrev": "FO", "name": "Faroe Islands", "zip": "[0-9]{3}"},
+ {"abbrev": "FJ", "name": "Fiji"},
+ {"abbrev": "FI", "name": "Finland", "zip": "[0-9]{5}"},
+ {"abbrev": "FR", "name": "France", "zip": "[0-9]{5}"},
+ {"abbrev": "PF", "name": "French Polynesia", "zip": "987[0-9]{2}", "range": ["98700", "98790"]},
+ {"abbrev": "GA", "name": "Gabon"},
+ {"abbrev": "GM", "name": "Gambia"},
+ {"abbrev": "GE", "name": "Georgia"},
+ {"abbrev": "DE", "name": "Germany", "zip": "[0-9]{5}"},
+ {"abbrev": "GH", "name": "Ghana"},
+ {"abbrev": "GI", "name": "Gibraltar", "zip": "GX11 1AA"},
+ {"abbrev": "GR", "name": "Greece", "zip": "[0-9]{3} [0-9]{2}"},
+ {"abbrev": "GL", "name": "Greenland", "zip": "[0-9]{4}"},
+ {"abbrev": "GD", "name": "Grenada"},
+ {"abbrev": "GP", "name": "Guadeloupe", "zip": "971[0-9]{2}", "range": ["97100", "97190"]},
+ {"abbrev": "GU", "name": "Guam", "zip": "\\d{5}(?:[-\\s]\\d{4})?", "range": ["96910", "96932"]},
+ {"abbrev": "GT", "name": "Guatemala", "zip": "[0-9]{5}"},
{
"abbrev": "GG",
"name": "Guernsey",
- "zip": "([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})"
- },
- {
- "abbrev": "GW",
- "name": "Guinea-Bissau",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "GQ",
- "name": "Guinea-Equatorial"
- },
- {
- "abbrev": "GN",
- "name": "Guinea Republic",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "GY",
- "name": "Guyana (British)"
- },
- {
- "abbrev": "GF",
- "name": "Guyana (French)",
- "zip": "973[0-9]{2}",
- "range": [
- "97300",
- "97390"
- ]
- },
- {
- "abbrev": "HT",
- "name": "Haiti",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "HN",
- "name": "Honduras",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "HK",
- "name": "Hong Kong"
- },
- {
- "abbrev": "HU",
- "name": "Hungary",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "IS",
- "name": "Iceland",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "IN",
- "name": "India",
- "zip": "^(?!0{1})\d{6}$"
- },
- {
- "abbrev": "ID",
- "name": "Indonesia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "IR",
- "name": "Iran",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "IQ",
- "name": "Iraq",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "IE",
- "name": "Ireland, Republic of",
- "zip": "(?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$"
- },
- {
- "abbrev": "FK",
- "name": "Islas Malvinas",
- "zip": "FIQQ 1ZZ"
- },
- {
- "abbrev": "IL",
- "name": "Israel",
- "zip": "[0-9]{5}|[0-9]{7}"
- },
- {
- "abbrev": "IT",
- "name": "Italy",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "CI",
- "name": "Ivory Coast"
- },
- {
- "abbrev": "JM",
- "name": "Jamaica"
- },
- {
- "abbrev": "JP",
- "name": "Japan",
- "zip": "[0-9]{3}-[0-9]{4}"
- },
+ "zip": "([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})",
+ },
+ {"abbrev": "GW", "name": "Guinea-Bissau", "zip": "[0-9]{4}"},
+ {"abbrev": "GQ", "name": "Guinea-Equatorial"},
+ {"abbrev": "GN", "name": "Guinea Republic", "zip": "[0-9]{3}"},
+ {"abbrev": "GY", "name": "Guyana (British)"},
+ {"abbrev": "GF", "name": "Guyana (French)", "zip": "973[0-9]{2}", "range": ["97300", "97390"]},
+ {"abbrev": "HT", "name": "Haiti", "zip": "[0-9]{4}"},
+ {"abbrev": "HN", "name": "Honduras", "zip": "[0-9]{5}"},
+ {"abbrev": "HK", "name": "Hong Kong"},
+ {"abbrev": "HU", "name": "Hungary", "zip": "[0-9]{4}"},
+ {"abbrev": "IS", "name": "Iceland", "zip": "[0-9]{3}"},
+ {"abbrev": "IN", "name": "India", "zip": "^(?!0{1})\d{6}$"},
+ {"abbrev": "ID", "name": "Indonesia", "zip": "[0-9]{5}"},
+ {"abbrev": "IR", "name": "Iran", "zip": "[0-9]{5}"},
+ {"abbrev": "IQ", "name": "Iraq", "zip": "[0-9]{5}"},
+ {"abbrev": "IE", "name": "Ireland, Republic of", "zip": "(?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$"},
+ {"abbrev": "FK", "name": "Islas Malvinas", "zip": "FIQQ 1ZZ"},
+ {"abbrev": "IL", "name": "Israel", "zip": "[0-9]{5}|[0-9]{7}"},
+ {"abbrev": "IT", "name": "Italy", "zip": "[0-9]{5}"},
+ {"abbrev": "CI", "name": "Ivory Coast"},
+ {"abbrev": "JM", "name": "Jamaica"},
+ {"abbrev": "JP", "name": "Japan", "zip": "[0-9]{3}-[0-9]{4}"},
{
"abbrev": "JE",
"name": "Jersey",
- "zip": "([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})"
- },
- {
- "abbrev": "JO",
- "name": "Jordan",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "KZ",
- "name": "Kazakhstan",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "KE",
- "name": "Kenya",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "KI",
- "name": "Kiribati"
- },
- {
- "abbrev": "KR",
- "name": "Korea, Republic of",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "KP",
- "name": "Korea, The D.P.R of"
- },
- {
- "abbrev": "XK",
- "name": "Kosovo",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "KW",
- "name": "Kuwait",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "KG",
- "name": "Kyrgyzstan",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "LA",
- "name": "Laos",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "LV",
- "name": "Latvia",
- "zip": "LV-[0-9]{4}"
- },
- {
- "abbrev": "LB",
- "name": "Lebanon",
- "zip": "[0-9]{4} [0-9]{4}"
- },
- {
- "abbrev": "LS",
- "name": "Lesotho",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "LR",
- "name": "Liberia",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "LY",
- "name": "Libya"
- },
- {
- "abbrev": "LI",
- "name": "Liechtenstein",
- "zip": "[0-9]{4}",
- "range": [
- "9485",
- "9498"
- ]
- },
- {
- "abbrev": "LT",
- "name": "Lithuania",
- "zip": "LT-[0-9]{5}"
- },
- {
- "abbrev": "LU",
- "name": "Luxembourg",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "MO",
- "name": "Macau"
- },
- {
- "abbrev": "MK",
- "name": "Macedonia, Republic of",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "MG",
- "name": "Madagascar",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "MW",
- "name": "Malawi"
- },
- {
- "abbrev": "MY",
- "name": "Malaysia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "MV",
- "name": "Maldives",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "ML",
- "name": "Mali"
- },
- {
- "abbrev": "MT",
- "name": "Malta",
- "zip": "[A-Z]{3} [0-9]{4}"
- },
- {
- "abbrev": "MH",
- "name": "Marshall Islands",
- "zip": "\\d{5}(?:[-\\s]\\d{4})?",
- "range": [
- "96960",
- "96970"
- ]
- },
- {
- "abbrev": "MQ",
- "name": "Martinique",
- "zip": "972[0-9]{2}",
- "range": [
- "97200",
- "97290"
- ]
- },
- {
- "abbrev": "MR",
- "name": "Mauritania"
- },
- {
- "abbrev": "MU",
- "name": "Mauritius",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "YT",
- "name": "Mayotte",
- "zip": "976[0-9]{2}",
- "range": [
- "97600",
- "97690"
- ]
- },
- {
- "abbrev": "MX",
- "name": "Mexico",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "MD",
- "name": "Moldova, Republic of",
- "zip": "MD-?[0-9]{4}"
- },
- {
- "abbrev": "MC",
- "name": "Monaco",
- "zip": "980[0-9]{2}"
- },
- {
- "abbrev": "MN",
- "name": "Mongolia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "ME",
- "name": "Montenegro",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "MS",
- "name": "Montserrat",
- "zip": "MSR [0-9]{4}",
- "range": [
- "MSR 1110",
- "MSR 1350"
- ]
- },
- {
- "abbrev": "MA",
- "name": "Morocco",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "MZ",
- "name": "Mozambique",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "MM",
- "name": "Myanmar",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "NA",
- "name": "Namibia"
- },
- {
- "abbrev": "NR",
- "name": "Nauru"
- },
- {
- "abbrev": "NP",
- "name": "Nepal",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "NL",
- "name": "Netherlands",
- "zip": "(?:NL-)?(\\d{4})\\s*([A-Z]{2})"
- },
- {
- "abbrev": "NC",
- "name": "New Caledonia",
- "zip": "988[0-9]{2}",
- "range": [
- "96950",
- "96952"
- ]
- },
- {
- "abbrev": "NZ",
- "name": "New Zealand",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "NI",
- "name": "Nicaragua"
- },
- {
- "abbrev": "NE",
- "name": "Niger",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "NG",
- "name": "Nigeria",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "NU",
- "name": "Niue"
- },
- {
- "abbrev": "MP",
- "name": "Northern Mariana Islands",
- "zip": "^\\d{5}(?:[-\\s]\\d{4})?$"
- },
- {
- "abbrev": "NO",
- "name": "Norway",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "OM",
- "name": "Oman",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "PK",
- "name": "Pakistan",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "PW",
- "name": "Palau",
- "zip": "\\d{5}(?:[-\\s]\\d{4})?"
- },
- {
- "abbrev": "PA",
- "name": "Panama",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "PG",
- "name": "Papua New Guinea",
- "zip": "[0-9]{3}"
- },
- {
- "abbrev": "PY",
- "name": "Paraguay",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "PE",
- "name": "Peru",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "PH",
- "name": "Philippines",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "PL",
- "name": "Poland",
- "zip": "[0-9]{2}-[0-9]{3}"
- },
- {
- "abbrev": "PT",
- "name": "Portugal",
- "zip": "[0-9]{4}-[0-9]{3}"
- },
- {
- "abbrev": "PR",
- "name": "Puerto Rico",
- "zip": "\\d{5}(?:[-\\s]\\d{4})?"
- },
- {
- "abbrev": "QA",
- "name": "Qatar"
- },
- {
- "abbrev": "RE",
- "name": "Réunion",
- "zip": "974[0-9]{2}",
- "range": [
- "97400",
- "97490"
- ]
- },
- {
- "abbrev": "RO",
- "name": "Romania",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "RU",
- "name": "Russian Federation",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "RW",
- "name": "Rwanda"
- },
- {
- "abbrev": "MP",
- "name": "Saipan",
- "zip": "96950"
- },
- {
- "abbrev": "WS",
- "name": "Samoa",
- "zip": "WS[0-9]{4}"
- },
- {
- "abbrev": "ST",
- "name": "Sao Tome and Principe"
- },
- {
- "abbrev": "SA",
- "name": "Saudi Arabia",
- "zip": "[0-9]{5}(-[0-9]{4})?"
- },
- {
- "abbrev": "SN",
- "name": "Senegal",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "RS",
- "name": "Serbia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "SC",
- "name": "Seychelles"
- },
- {
- "abbrev": "SL",
- "name": "Sierra Leone"
- },
- {
- "abbrev": "SG",
- "name": "Singapore",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "SK",
- "name": "Slovakia",
- "zip": "[0-9]{3} [0-9]{2}"
- },
- {
- "abbrev": "SI",
- "name": "Slovenia",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "SB",
- "name": "Solomon Islands"
- },
- {
- "abbrev": "SO",
- "name": "Somalia",
- "zip": "[A-Z]{2} [0-9]{5}"
- },
- {
- "abbrev": "ZA",
- "name": "South Africa",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "SS",
- "name": "South Sudan"
- },
- {
- "abbrev": "ES",
- "name": "Spain",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "LK",
- "name": "Sri Lanka",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "BL",
- "name": "St. Barthélemy",
- "zip": "[0-9]{5}",
- "range": [
- "97100",
- "97190"
- ]
- },
- {
- "abbrev": "VI",
- "name": "St. Croix",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "SE",
- "name": "St. Eustatius"
- },
- {
- "abbrev": "SH",
- "name": "St. Helena",
- "zip": "STHL 1ZZ"
- },
- {
- "abbrev": "AG",
- "name": "St. John",
- "zip": "\\d{5}(?:[-\\s]\\d{4})?"
- },
- {
- "abbrev": "KN",
- "name": "St. Kitts and Nevis",
- "zip": "[A-Z]{2}[0-9]{4}"
- },
- {
- "abbrev": "LC",
- "name": "St. Lucia",
- "zip": "[A-Z]{2}[0-9]{2} [0-9]{3}"
- },
- {
- "abbrev": "SX",
- "name": "St. Maarten"
- },
- {
- "abbrev": "VI",
- "name": "St. Thomas"
- },
- {
- "abbrev": "VC",
- "name": "St. Vincent and the Grenadines",
- "zip": "VC[0-9]{4}"
- },
- {
- "abbrev": "SD",
- "name": "Sudan",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "SR",
- "name": "Suriname"
- },
- {
- "abbrev": "SZ",
- "name": "Swaziland",
- "zip": "[A-Z]{1}[0-9]{3}"
- },
- {
- "abbrev": "SE",
- "name": "Sweden",
- "zip": "[0-9]{3} [0-9]{2}"
- },
- {
- "abbrev": "CH",
- "name": "Switzerland",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "SY",
- "name": "Syria"
- },
- {
- "abbrev": "PF",
- "name": "Tahiti",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "TW",
- "name": "Taiwan",
- "zip": "[0-9]{3}(-[0-9]{2})?"
- },
- {
- "abbrev": "TZ",
- "name": "Tanzania",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "TH",
- "name": "Thailand",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "TG",
- "name": "Togo"
- },
- {
- "abbrev": "TO",
- "name": "Tonga"
- },
- {
- "abbrev": "VG",
- "name": "Tortola",
- "zip": "VG[0-9]{4}"
- },
- {
- "abbrev": "TT",
- "name": "Trinidad and Tobago",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "TN",
- "name": "Tunisia",
- "zip": "[0-9]{4}"
- },
- {
- "abbrev": "TR",
- "name": "Turkey",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "TM",
- "name": "Turkmenistan",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "TC",
- "name": "Turks and Caicos Islands",
- "zip": "TKCA 1ZZ"
- },
- {
- "abbrev": "TV",
- "name": "Tuvalu"
- },
- {
- "abbrev": "UG",
- "name": "Uganda"
- },
- {
- "abbrev": "UA",
- "name": "Ukraine",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "AE",
- "name": "United Arab Emirates"
- },
+ "zip": "([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})",
+ },
+ {"abbrev": "JO", "name": "Jordan", "zip": "[0-9]{5}"},
+ {"abbrev": "KZ", "name": "Kazakhstan", "zip": "[0-9]{6}"},
+ {"abbrev": "KE", "name": "Kenya", "zip": "[0-9]{5}"},
+ {"abbrev": "KI", "name": "Kiribati"},
+ {"abbrev": "KR", "name": "Korea, Republic of", "zip": "[0-9]{5}"},
+ {"abbrev": "KP", "name": "Korea, The D.P.R of"},
+ {"abbrev": "XK", "name": "Kosovo", "zip": "[0-9]{5}"},
+ {"abbrev": "KW", "name": "Kuwait", "zip": "[0-9]{5}"},
+ {"abbrev": "KG", "name": "Kyrgyzstan", "zip": "[0-9]{6}"},
+ {"abbrev": "LA", "name": "Laos", "zip": "[0-9]{5}"},
+ {"abbrev": "LV", "name": "Latvia", "zip": "LV-[0-9]{4}"},
+ {"abbrev": "LB", "name": "Lebanon", "zip": "[0-9]{4} [0-9]{4}"},
+ {"abbrev": "LS", "name": "Lesotho", "zip": "[0-9]{3}"},
+ {"abbrev": "LR", "name": "Liberia", "zip": "[0-9]{4}"},
+ {"abbrev": "LY", "name": "Libya"},
+ {"abbrev": "LI", "name": "Liechtenstein", "zip": "[0-9]{4}", "range": ["9485", "9498"]},
+ {"abbrev": "LT", "name": "Lithuania", "zip": "LT-[0-9]{5}"},
+ {"abbrev": "LU", "name": "Luxembourg", "zip": "[0-9]{4}"},
+ {"abbrev": "MO", "name": "Macau"},
+ {"abbrev": "MK", "name": "Macedonia, Republic of", "zip": "[0-9]{4}"},
+ {"abbrev": "MG", "name": "Madagascar", "zip": "[0-9]{3}"},
+ {"abbrev": "MW", "name": "Malawi"},
+ {"abbrev": "MY", "name": "Malaysia", "zip": "[0-9]{5}"},
+ {"abbrev": "MV", "name": "Maldives", "zip": "[0-9]{5}"},
+ {"abbrev": "ML", "name": "Mali"},
+ {"abbrev": "MT", "name": "Malta", "zip": "[A-Z]{3} [0-9]{4}"},
+ {"abbrev": "MH", "name": "Marshall Islands", "zip": "\\d{5}(?:[-\\s]\\d{4})?", "range": ["96960", "96970"]},
+ {"abbrev": "MQ", "name": "Martinique", "zip": "972[0-9]{2}", "range": ["97200", "97290"]},
+ {"abbrev": "MR", "name": "Mauritania"},
+ {"abbrev": "MU", "name": "Mauritius", "zip": "[0-9]{5}"},
+ {"abbrev": "YT", "name": "Mayotte", "zip": "976[0-9]{2}", "range": ["97600", "97690"]},
+ {"abbrev": "MX", "name": "Mexico", "zip": "[0-9]{5}"},
+ {"abbrev": "MD", "name": "Moldova, Republic of", "zip": "MD-?[0-9]{4}"},
+ {"abbrev": "MC", "name": "Monaco", "zip": "980[0-9]{2}"},
+ {"abbrev": "MN", "name": "Mongolia", "zip": "[0-9]{5}"},
+ {"abbrev": "ME", "name": "Montenegro", "zip": "[0-9]{5}"},
+ {"abbrev": "MS", "name": "Montserrat", "zip": "MSR [0-9]{4}", "range": ["MSR 1110", "MSR 1350"]},
+ {"abbrev": "MA", "name": "Morocco", "zip": "[0-9]{5}"},
+ {"abbrev": "MZ", "name": "Mozambique", "zip": "[0-9]{4}"},
+ {"abbrev": "MM", "name": "Myanmar", "zip": "[0-9]{5}"},
+ {"abbrev": "NA", "name": "Namibia"},
+ {"abbrev": "NR", "name": "Nauru"},
+ {"abbrev": "NP", "name": "Nepal", "zip": "[0-9]{5}"},
+ {"abbrev": "NL", "name": "Netherlands", "zip": "(?:NL-)?(\\d{4})\\s*([A-Z]{2})"},
+ {"abbrev": "NC", "name": "New Caledonia", "zip": "988[0-9]{2}", "range": ["96950", "96952"]},
+ {"abbrev": "NZ", "name": "New Zealand", "zip": "[0-9]{4}"},
+ {"abbrev": "NI", "name": "Nicaragua"},
+ {"abbrev": "NE", "name": "Niger", "zip": "[0-9]{4}"},
+ {"abbrev": "NG", "name": "Nigeria", "zip": "[0-9]{6}"},
+ {"abbrev": "NU", "name": "Niue"},
+ {"abbrev": "MP", "name": "Northern Mariana Islands", "zip": "^\\d{5}(?:[-\\s]\\d{4})?$"},
+ {"abbrev": "NO", "name": "Norway", "zip": "[0-9]{4}"},
+ {"abbrev": "OM", "name": "Oman", "zip": "[0-9]{3}"},
+ {"abbrev": "PK", "name": "Pakistan", "zip": "[0-9]{5}"},
+ {"abbrev": "PW", "name": "Palau", "zip": "\\d{5}(?:[-\\s]\\d{4})?"},
+ {"abbrev": "PA", "name": "Panama", "zip": "[0-9]{4}"},
+ {"abbrev": "PG", "name": "Papua New Guinea", "zip": "[0-9]{3}"},
+ {"abbrev": "PY", "name": "Paraguay", "zip": "[0-9]{4}"},
+ {"abbrev": "PE", "name": "Peru", "zip": "[0-9]{5}"},
+ {"abbrev": "PH", "name": "Philippines", "zip": "[0-9]{4}"},
+ {"abbrev": "PL", "name": "Poland", "zip": "[0-9]{2}-[0-9]{3}"},
+ {"abbrev": "PT", "name": "Portugal", "zip": "[0-9]{4}-[0-9]{3}"},
+ {"abbrev": "PR", "name": "Puerto Rico", "zip": "\\d{5}(?:[-\\s]\\d{4})?"},
+ {"abbrev": "QA", "name": "Qatar"},
+ {"abbrev": "RE", "name": "Réunion", "zip": "974[0-9]{2}", "range": ["97400", "97490"]},
+ {"abbrev": "RO", "name": "Romania", "zip": "[0-9]{6}"},
+ {"abbrev": "RU", "name": "Russian Federation", "zip": "[0-9]{6}"},
+ {"abbrev": "RW", "name": "Rwanda"},
+ {"abbrev": "MP", "name": "Saipan", "zip": "96950"},
+ {"abbrev": "WS", "name": "Samoa", "zip": "WS[0-9]{4}"},
+ {"abbrev": "ST", "name": "Sao Tome and Principe"},
+ {"abbrev": "SA", "name": "Saudi Arabia", "zip": "[0-9]{5}(-[0-9]{4})?"},
+ {"abbrev": "SN", "name": "Senegal", "zip": "[0-9]{5}"},
+ {"abbrev": "RS", "name": "Serbia", "zip": "[0-9]{5}"},
+ {"abbrev": "SC", "name": "Seychelles"},
+ {"abbrev": "SL", "name": "Sierra Leone"},
+ {"abbrev": "SG", "name": "Singapore", "zip": "[0-9]{6}"},
+ {"abbrev": "SK", "name": "Slovakia", "zip": "[0-9]{3} [0-9]{2}"},
+ {"abbrev": "SI", "name": "Slovenia", "zip": "[0-9]{4}"},
+ {"abbrev": "SB", "name": "Solomon Islands"},
+ {"abbrev": "SO", "name": "Somalia", "zip": "[A-Z]{2} [0-9]{5}"},
+ {"abbrev": "ZA", "name": "South Africa", "zip": "[0-9]{4}"},
+ {"abbrev": "SS", "name": "South Sudan"},
+ {"abbrev": "ES", "name": "Spain", "zip": "[0-9]{5}"},
+ {"abbrev": "LK", "name": "Sri Lanka", "zip": "[0-9]{4}"},
+ {"abbrev": "BL", "name": "St. Barthélemy", "zip": "[0-9]{5}", "range": ["97100", "97190"]},
+ {"abbrev": "VI", "name": "St. Croix", "zip": "[0-9]{5}"},
+ {"abbrev": "SE", "name": "St. Eustatius"},
+ {"abbrev": "SH", "name": "St. Helena", "zip": "STHL 1ZZ"},
+ {"abbrev": "AG", "name": "St. John", "zip": "\\d{5}(?:[-\\s]\\d{4})?"},
+ {"abbrev": "KN", "name": "St. Kitts and Nevis", "zip": "[A-Z]{2}[0-9]{4}"},
+ {"abbrev": "LC", "name": "St. Lucia", "zip": "[A-Z]{2}[0-9]{2} [0-9]{3}"},
+ {"abbrev": "SX", "name": "St. Maarten"},
+ {"abbrev": "VI", "name": "St. Thomas"},
+ {"abbrev": "VC", "name": "St. Vincent and the Grenadines", "zip": "VC[0-9]{4}"},
+ {"abbrev": "SD", "name": "Sudan", "zip": "[0-9]{5}"},
+ {"abbrev": "SR", "name": "Suriname"},
+ {"abbrev": "SZ", "name": "Swaziland", "zip": "[A-Z]{1}[0-9]{3}"},
+ {"abbrev": "SE", "name": "Sweden", "zip": "[0-9]{3} [0-9]{2}"},
+ {"abbrev": "CH", "name": "Switzerland", "zip": "[0-9]{4}"},
+ {"abbrev": "SY", "name": "Syria"},
+ {"abbrev": "PF", "name": "Tahiti", "zip": "[0-9]{5}"},
+ {"abbrev": "TW", "name": "Taiwan", "zip": "[0-9]{3}(-[0-9]{2})?"},
+ {"abbrev": "TZ", "name": "Tanzania", "zip": "[0-9]{5}"},
+ {"abbrev": "TH", "name": "Thailand", "zip": "[0-9]{5}"},
+ {"abbrev": "TG", "name": "Togo"},
+ {"abbrev": "TO", "name": "Tonga"},
+ {"abbrev": "VG", "name": "Tortola", "zip": "VG[0-9]{4}"},
+ {"abbrev": "TT", "name": "Trinidad and Tobago", "zip": "[0-9]{6}"},
+ {"abbrev": "TN", "name": "Tunisia", "zip": "[0-9]{4}"},
+ {"abbrev": "TR", "name": "Turkey", "zip": "[0-9]{5}"},
+ {"abbrev": "TM", "name": "Turkmenistan", "zip": "[0-9]{6}"},
+ {"abbrev": "TC", "name": "Turks and Caicos Islands", "zip": "TKCA 1ZZ"},
+ {"abbrev": "TV", "name": "Tuvalu"},
+ {"abbrev": "UG", "name": "Uganda"},
+ {"abbrev": "UA", "name": "Ukraine", "zip": "[0-9]{5}"},
+ {"abbrev": "AE", "name": "United Arab Emirates"},
{
"abbrev": "GB",
"name": "United Kingdom",
- "zip": "([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})"
- },
- {
- "abbrev": "US",
- "name": "United States of America",
- "zip": "^[0-9]{5}(?:-[0-9]{4})?$"
- },
- {
- "abbrev": "UY",
- "name": "Uruguay",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "UZ",
- "name": "Uzbekistan",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "VU",
- "name": "Vanuatu"
- },
- {
- "abbrev": "VE",
- "name": "Venezuela",
- "zip": "[0-9]{4}(-[A-Z]{1})?"
- },
- {
- "abbrev": "VN",
- "name": "Vietnam",
- "zip": "[0-9]{6}"
- },
- {
- "abbrev": "VG",
- "name": "Virgin Islands (British)",
- "zip": "VG[0-9]{4}"
- },
- {
- "abbrev": "VI",
- "name": "Virgin Islands (US)",
- "range": [
- "00801",
- "00851"
- ],
- "zip": "\\d{5}(?:[-\\s]\\d{4})?"
- },
- {
- "abbrev": "YE",
- "name": "Yemen"
- },
- {
- "abbrev": "ZM",
- "name": "Zambia",
- "zip": "[0-9]{5}"
- },
- {
- "abbrev": "ZW",
- "name": "Zimbabwe"
- }
+ "zip": "([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\\s?[0-9][A-Za-z]{2})",
+ },
+ {"abbrev": "US", "name": "United States of America", "zip": "^[0-9]{5}(?:-[0-9]{4})?$"},
+ {"abbrev": "UY", "name": "Uruguay", "zip": "[0-9]{5}"},
+ {"abbrev": "UZ", "name": "Uzbekistan", "zip": "[0-9]{6}"},
+ {"abbrev": "VU", "name": "Vanuatu"},
+ {"abbrev": "VE", "name": "Venezuela", "zip": "[0-9]{4}(-[A-Z]{1})?"},
+ {"abbrev": "VN", "name": "Vietnam", "zip": "[0-9]{6}"},
+ {"abbrev": "VG", "name": "Virgin Islands (British)", "zip": "VG[0-9]{4}"},
+ {"abbrev": "VI", "name": "Virgin Islands (US)", "range": ["00801", "00851"], "zip": "\\d{5}(?:[-\\s]\\d{4})?"},
+ {"abbrev": "YE", "name": "Yemen"},
+ {"abbrev": "ZM", "name": "Zambia", "zip": "[0-9]{5}"},
+ {"abbrev": "ZW", "name": "Zimbabwe"},
]
diff --git a/src/edify/library/url.py b/src/edify/library/url.py
index 532617e..1094155 100644
--- a/src/edify/library/url.py
+++ b/src/edify/library/url.py
@@ -3,6 +3,7 @@ import re
proto = "^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$"
no_proto = "^[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$"
+
def url(url: str, match: list = ["proto", "no_proto"]) -> bool:
"""Checks if a string is a valid URL.
diff --git a/src/edify/library/uuid.py b/src/edify/library/uuid.py
index a6f2f65..8c240a3 100644
--- a/src/edify/library/uuid.py
+++ b/src/edify/library/uuid.py
@@ -2,6 +2,7 @@ import re
pattern = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$"
+
def uuid(uuid: str) -> bool:
"""Checks if a string is a valid UUID.
diff --git a/src/edify/library/zip.py b/src/edify/library/zip.py
index 88152ee..017f57d 100644
--- a/src/edify/library/zip.py
+++ b/src/edify/library/zip.py
@@ -1,7 +1,10 @@
import re
+
from .support.zip import ZIP_LOCALES
+
locales = [locale["abbrev"] for locale in ZIP_LOCALES]
+
def zip(zip: str, locale: str = "US") -> bool:
"""Check if a string is a valid zip code.
@@ -24,5 +27,3 @@ def zip(zip: str, locale: str = "US") -> bool:
pattern = ZIP_LOCALES[locales.index(locale)]["zip"]
return re.match(pattern, zip) is not None
-
-