From b9b6b54eac925b75f3ed844f65832e5bd09e251e Mon Sep 17 00:00:00 2001 From: Bobby Date: Sun, 27 Nov 2022 16:20:38 -0500 Subject: fixing lint --- src/edify/library/__init__.py | 8 +- src/edify/library/guid.py | 1 + src/edify/library/mac.py | 1 + src/edify/library/mail.py | 4 +- src/edify/library/password.py | 12 +- src/edify/library/ssn.py | 1 + src/edify/library/support/zip.py | 1403 +++++++------------------------------- src/edify/library/url.py | 1 + src/edify/library/uuid.py | 1 + src/edify/library/zip.py | 5 +- 10 files changed, 267 insertions(+), 1170 deletions(-) (limited to 'src') 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 - - -- cgit v1.2.3