value-object-pattern 1.24.0__tar.gz → 1.25.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/PKG-INFO +1 -1
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/__init__.py +1 -1
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/__init__.py +0 -2
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/__init__.py +4 -0
- value_object_pattern-1.24.0/value_object_pattern/usables/identifiers/strict_string_identifier_value_object.py → value_object_pattern-1.25.0/value_object_pattern/usables/internet/key_value_object.py +5 -7
- value_object_pattern-1.25.0/value_object_pattern/usables/internet/slug_value_object.py +43 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/.gitignore +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/LICENSE.md +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/README.md +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/pyproject.toml +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/classproperty.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/value_object_process.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/base_model.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/collections/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/collections/dict_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/collections/list_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/py.typed +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_not_registered_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/negative_or_zero_float_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/positive_or_zero_float_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/negative_or_zero_integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/positive_or_zero_integer_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/utils/__init__.py +0 -0
- {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/utils/luhn_validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: value-object-pattern
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.25.0
|
|
4
4
|
Summary: The Value Object Pattern is a Python package that streamlines the creation and management of value objects in your projects.
|
|
5
5
|
Project-URL: Homepage, https://github.com/adriamontoto/value-object-pattern
|
|
6
6
|
Project-URL: Repository, https://github.com/adriamontoto/value-object-pattern
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from .strict_string_identifier_value_object import StrictStringIdentifierValueObject
|
|
2
1
|
from .uuid import (
|
|
3
2
|
StringUuidV1ValueObject,
|
|
4
3
|
StringUuidV3ValueObject,
|
|
@@ -19,7 +18,6 @@ from .uuid import (
|
|
|
19
18
|
)
|
|
20
19
|
|
|
21
20
|
__all__ = (
|
|
22
|
-
'StrictStringIdentifierValueObject',
|
|
23
21
|
'StringUuidV1ValueObject',
|
|
24
22
|
'StringUuidV3ValueObject',
|
|
25
23
|
'StringUuidV4ValueObject',
|
|
@@ -7,8 +7,10 @@ from .ipv4_address_value_object import Ipv4AddressValueObject
|
|
|
7
7
|
from .ipv4_network_value_object import Ipv4NetworkValueObject
|
|
8
8
|
from .ipv6_address_value_object import Ipv6AddressValueObject
|
|
9
9
|
from .ipv6_network_value_object import Ipv6NetworkValueObject
|
|
10
|
+
from .key_value_object import KeyValueObject
|
|
10
11
|
from .mac_address_value_object import MacAddressValueObject
|
|
11
12
|
from .port_value_object import PortValueObject
|
|
13
|
+
from .slug_value_object import SlugValueObject
|
|
12
14
|
from .uri import HttpHttpsUrlValueObject, HttpUrlValueObject, HttpsUrlValueObject, UrlValueObject
|
|
13
15
|
|
|
14
16
|
__all__ = (
|
|
@@ -24,7 +26,9 @@ __all__ = (
|
|
|
24
26
|
'Ipv4NetworkValueObject',
|
|
25
27
|
'Ipv6AddressValueObject',
|
|
26
28
|
'Ipv6NetworkValueObject',
|
|
29
|
+
'KeyValueObject',
|
|
27
30
|
'MacAddressValueObject',
|
|
28
31
|
'PortValueObject',
|
|
32
|
+
'SlugValueObject',
|
|
29
33
|
'UrlValueObject',
|
|
30
34
|
)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
KeyValueObject value object.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from re import Pattern, compile as re_compile
|
|
@@ -9,14 +9,12 @@ from value_object_pattern.decorators import validation
|
|
|
9
9
|
from value_object_pattern.usables import NotEmptyStringValueObject, TrimmedStringValueObject
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
12
|
+
class KeyValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
13
13
|
"""
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
The allowed characters are lower-case letters (`a-z`), digits (`0-9`), and hyphen (`-`).
|
|
14
|
+
KeyValueObject ensures the provided value is a valid key string.
|
|
17
15
|
"""
|
|
18
16
|
|
|
19
|
-
_VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'[a-z0-9-]+')
|
|
17
|
+
_VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'^[a-z0-9]+(?:[.-][a-z0-9]+)*$')
|
|
20
18
|
|
|
21
19
|
@validation(order=0)
|
|
22
20
|
def _ensure_value_follows_validation_regex(self, value: str) -> None:
|
|
@@ -42,4 +40,4 @@ class StrictStringIdentifierValueObject(NotEmptyStringValueObject, TrimmedString
|
|
|
42
40
|
Raises:
|
|
43
41
|
ValueError: If the `value` contains invalid characters.
|
|
44
42
|
"""
|
|
45
|
-
raise ValueError(f'
|
|
43
|
+
raise ValueError(f'KeyValueObject value <<<{value}>>> has invalid format. Only lowercase letters and digits separated by single hyphens or dots are allowed.') # noqa: E501 # fmt: skip
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SlugValueObject value object.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from re import Pattern, compile as re_compile
|
|
6
|
+
from typing import NoReturn
|
|
7
|
+
|
|
8
|
+
from value_object_pattern.decorators import validation
|
|
9
|
+
from value_object_pattern.usables import NotEmptyStringValueObject, TrimmedStringValueObject
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SlugValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
13
|
+
"""
|
|
14
|
+
SlugValueObject ensures the provided value is a valid slug string.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
_VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'^[a-z0-9]+(?:-[a-z0-9]+)*$')
|
|
18
|
+
|
|
19
|
+
@validation(order=0)
|
|
20
|
+
def _ensure_value_follows_validation_regex(self, value: str) -> None:
|
|
21
|
+
"""
|
|
22
|
+
Ensures the value object `value` only contains allowed characters.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
value (str): The provided value.
|
|
26
|
+
|
|
27
|
+
Raises:
|
|
28
|
+
ValueError: If the `value` contains disallowed characters.
|
|
29
|
+
"""
|
|
30
|
+
if not self._VALIDATION_REGEX.fullmatch(string=value):
|
|
31
|
+
self._raise_value_contains_invalid_characters(value=value)
|
|
32
|
+
|
|
33
|
+
def _raise_value_contains_invalid_characters(self, value: str) -> NoReturn:
|
|
34
|
+
"""
|
|
35
|
+
Raises a ValueError if the value object `value` contains invalid characters.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
value (str): The provided value.
|
|
39
|
+
|
|
40
|
+
Raises:
|
|
41
|
+
ValueError: If the `value` contains invalid characters.
|
|
42
|
+
"""
|
|
43
|
+
raise ValueError(f'SlugValueObject value <<<{value}>>> has invalid format. Only lowercase letters and digits separated by single hyphens are allowed.') # noqa: E501 # fmt: skip
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|