value-object-pattern 1.31.1__tar.gz → 1.32.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.31.1 → value_object_pattern-1.32.0}/PKG-INFO +1 -1
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/__init__.py +1 -1
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/__init__.py +2 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/__init__.py +2 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/__init__.py +2 -0
- value_object_pattern-1.32.0/value_object_pattern/usables/primitives/string/base64_value_object.py +60 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/.gitignore +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/LICENSE.md +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/README.md +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/pyproject.toml +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/decorators/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/decorators/classproperty.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/decorators/value_object_process.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/base_model.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/collections/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/collections/dict_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/collections/list_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/primitive_conversion.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/type_matching.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/union_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/models/value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/py.typed +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.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.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/keys/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/keys/kebab_case_key_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/keys/snake_case_key_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/slug_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/user_agent_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/negative_or_zero_float_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/positive_or_zero_float_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/negative_or_zero_integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/positive_or_zero_integer_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/camel_case_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/kebab_case_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/pascal_case_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/screaming_snake_case_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/secret_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/snake_case_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/utils/__init__.py +0 -0
- {value_object_pattern-1.31.1 → value_object_pattern-1.32.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.32.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
|
{value_object_pattern-1.31.1 → value_object_pattern-1.32.0}/value_object_pattern/usables/__init__.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from .primitives import (
|
|
2
2
|
AlphaStringValueObject,
|
|
3
3
|
AlphanumericStringValueObject,
|
|
4
|
+
Base64StringValueObject,
|
|
4
5
|
BooleanValueObject,
|
|
5
6
|
BytesValueObject,
|
|
6
7
|
CamelCaseStringValueObject,
|
|
@@ -37,6 +38,7 @@ from .primitives import (
|
|
|
37
38
|
__all__ = (
|
|
38
39
|
'AlphaStringValueObject',
|
|
39
40
|
'AlphanumericStringValueObject',
|
|
41
|
+
'Base64StringValueObject',
|
|
40
42
|
'BooleanValueObject',
|
|
41
43
|
'BytesValueObject',
|
|
42
44
|
'CamelCaseStringValueObject',
|
|
@@ -20,6 +20,7 @@ from .none import NoneValueObject, NotNoneValueObject
|
|
|
20
20
|
from .string import (
|
|
21
21
|
AlphaStringValueObject,
|
|
22
22
|
AlphanumericStringValueObject,
|
|
23
|
+
Base64StringValueObject,
|
|
23
24
|
CamelCaseStringValueObject,
|
|
24
25
|
DigitStringValueObject,
|
|
25
26
|
KebabCaseStringValueObject,
|
|
@@ -38,6 +39,7 @@ from .string import (
|
|
|
38
39
|
__all__ = (
|
|
39
40
|
'AlphaStringValueObject',
|
|
40
41
|
'AlphanumericStringValueObject',
|
|
42
|
+
'Base64StringValueObject',
|
|
41
43
|
'BooleanValueObject',
|
|
42
44
|
'BytesValueObject',
|
|
43
45
|
'CamelCaseStringValueObject',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from .alpha_value_object import AlphaStringValueObject
|
|
2
2
|
from .alphanumeric_value_object import AlphanumericStringValueObject
|
|
3
|
+
from .base64_value_object import Base64StringValueObject
|
|
3
4
|
from .camel_case_string_value_object import CamelCaseStringValueObject
|
|
4
5
|
from .digit_value_object import DigitStringValueObject
|
|
5
6
|
from .kebab_case_string_value_object import KebabCaseStringValueObject
|
|
@@ -17,6 +18,7 @@ from .uppercase_string_value_object import UppercaseStringValueObject
|
|
|
17
18
|
__all__ = (
|
|
18
19
|
'AlphaStringValueObject',
|
|
19
20
|
'AlphanumericStringValueObject',
|
|
21
|
+
'Base64StringValueObject',
|
|
20
22
|
'CamelCaseStringValueObject',
|
|
21
23
|
'DigitStringValueObject',
|
|
22
24
|
'KebabCaseStringValueObject',
|
value_object_pattern-1.32.0/value_object_pattern/usables/primitives/string/base64_value_object.py
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Base64StringValueObject value object.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from base64 import b64decode, b64encode
|
|
6
|
+
from binascii import Error
|
|
7
|
+
from typing import NoReturn
|
|
8
|
+
|
|
9
|
+
from value_object_pattern.decorators import validation
|
|
10
|
+
|
|
11
|
+
from .trimmed_string_value_object import TrimmedStringValueObject
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Base64StringValueObject(TrimmedStringValueObject):
|
|
15
|
+
"""
|
|
16
|
+
Ensure the provided value is canonical standard Base64. The empty string is accepted as the Base64 encoding of
|
|
17
|
+
empty bytes.
|
|
18
|
+
|
|
19
|
+
Example:
|
|
20
|
+
```python
|
|
21
|
+
from value_object_pattern.usables import Base64StringValueObject
|
|
22
|
+
|
|
23
|
+
string = Base64StringValueObject(value='aGVsbG8gd29ybGQ=')
|
|
24
|
+
|
|
25
|
+
print(repr(string))
|
|
26
|
+
# >>> Base64StringValueObject(value='aGVsbG8gd29ybGQ=')
|
|
27
|
+
```
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
@validation(order=0)
|
|
31
|
+
def _ensure_value_is_base64(self, value: str) -> None:
|
|
32
|
+
"""
|
|
33
|
+
Ensure the value is canonical standard Base64.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
value (str): The provided value.
|
|
37
|
+
|
|
38
|
+
Raises:
|
|
39
|
+
ValueError: If the value is not canonical standard Base64.
|
|
40
|
+
"""
|
|
41
|
+
try:
|
|
42
|
+
decoded_value = b64decode(s=value, validate=True)
|
|
43
|
+
|
|
44
|
+
except (Error, ValueError):
|
|
45
|
+
self._raise_value_is_not_base64(value=value)
|
|
46
|
+
|
|
47
|
+
if b64encode(s=decoded_value).decode() != value:
|
|
48
|
+
self._raise_value_is_not_base64(value=value)
|
|
49
|
+
|
|
50
|
+
def _raise_value_is_not_base64(self, value: str) -> NoReturn:
|
|
51
|
+
"""
|
|
52
|
+
Raise a ValueError when the value is not canonical standard Base64.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
value (str): The provided value.
|
|
56
|
+
|
|
57
|
+
Raises:
|
|
58
|
+
ValueError: Always raised because the value is not canonical standard Base64.
|
|
59
|
+
"""
|
|
60
|
+
raise ValueError(f'Base64StringValueObject value <<<{value}>>> must be canonical standard Base64.')
|
|
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.31.1 → value_object_pattern-1.32.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
|
|
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
|
|
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
|