value-object-pattern 1.31.0__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.0 → value_object_pattern-1.32.0}/PKG-INFO +1 -1
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/__init__.py +1 -1
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/collections/dict_value_object.py +7 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/collections/list_value_object.py +4 -1
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/union_value_object.py +4 -3
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/__init__.py +2 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/__init__.py +2 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/.gitignore +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/LICENSE.md +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/README.md +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/pyproject.toml +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/decorators/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/decorators/classproperty.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/decorators/value_object_process.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/base_model.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/collections/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/primitive_conversion.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/type_matching.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/models/value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/py.typed +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/keys/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/slug_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/user_agent_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/secret_string_value_object.py +0 -0
- {value_object_pattern-1.31.0 → 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.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
- {value_object_pattern-1.31.0 → value_object_pattern-1.32.0}/value_object_pattern/usables/utils/__init__.py +0 -0
- {value_object_pattern-1.31.0 → 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
|
|
@@ -25,6 +25,7 @@ from typing import (
|
|
|
25
25
|
TypeVar,
|
|
26
26
|
Union,
|
|
27
27
|
ValuesView,
|
|
28
|
+
cast,
|
|
28
29
|
get_args,
|
|
29
30
|
get_origin,
|
|
30
31
|
)
|
|
@@ -644,6 +645,9 @@ class DictValueObject(ValueObject[dict[K, V]], Generic[K, V]): # noqa: UP046
|
|
|
644
645
|
Returns:
|
|
645
646
|
Self: The created DictValueObject.
|
|
646
647
|
|
|
648
|
+
Raises:
|
|
649
|
+
TypeError: If the `value` is not a dict.
|
|
650
|
+
|
|
647
651
|
Example:
|
|
648
652
|
```python
|
|
649
653
|
from value_object_pattern.models import ValueObject
|
|
@@ -663,6 +667,9 @@ class DictValueObject(ValueObject[dict[K, V]], Generic[K, V]): # noqa: UP046
|
|
|
663
667
|
# >>> {'john': 30, 'jane': 25}
|
|
664
668
|
```
|
|
665
669
|
"""
|
|
670
|
+
if not isinstance(cast(Any, value), dict):
|
|
671
|
+
return cls(value=value)
|
|
672
|
+
|
|
666
673
|
dictionary: dict[Any, Any] = {}
|
|
667
674
|
|
|
668
675
|
for key, item in value.items():
|
|
@@ -15,7 +15,7 @@ from collections.abc import Iterator
|
|
|
15
15
|
from enum import Enum
|
|
16
16
|
from inspect import isclass
|
|
17
17
|
from types import UnionType
|
|
18
|
-
from typing import Any, ClassVar, Generic, NoReturn, Self, TypeVar, Union, get_args, get_origin
|
|
18
|
+
from typing import Any, ClassVar, Generic, NoReturn, Self, TypeVar, Union, cast, get_args, get_origin
|
|
19
19
|
|
|
20
20
|
from value_object_pattern.decorators import validation
|
|
21
21
|
from value_object_pattern.models import BaseModel, ValueObject
|
|
@@ -878,6 +878,9 @@ class ListValueObject(ValueObject[list[T]], Generic[T]): # noqa: UP046
|
|
|
878
878
|
# >>> [10, 20, 30]
|
|
879
879
|
```
|
|
880
880
|
"""
|
|
881
|
+
if not isinstance(cast(Any, value), list):
|
|
882
|
+
return cls(value=value)
|
|
883
|
+
|
|
881
884
|
return cls(value=[from_primitive(value=item, expected_type=cls._type) for item in value])
|
|
882
885
|
|
|
883
886
|
def to_primitives(self) -> list[Any]:
|
|
@@ -264,10 +264,11 @@ class UnionValueObject(ValueObject[T], Generic[T]): # noqa: UP046
|
|
|
264
264
|
except Exception as error:
|
|
265
265
|
last_error = error
|
|
266
266
|
|
|
267
|
-
|
|
268
|
-
|
|
267
|
+
try:
|
|
268
|
+
self._raise_value_is_not_of_type(value=value)
|
|
269
269
|
|
|
270
|
-
|
|
270
|
+
except Exception as error:
|
|
271
|
+
raise error from last_error
|
|
271
272
|
|
|
272
273
|
def _unwrap_candidate_value(self, *, value: Any, unwrap_enum: bool = True) -> Any:
|
|
273
274
|
"""
|
{value_object_pattern-1.31.0 → 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.0 → 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
|