value-object-pattern 1.33.0__tar.gz → 1.33.1__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.33.0 → value_object_pattern-1.33.1}/PKG-INFO +1 -1
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/__init__.py +1 -1
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/email_address_value_object.py +1 -2
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +16 -1
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/uri/https_url_value_object.py +16 -1
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/uri/url_value_object.py +126 -18
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/.gitignore +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/LICENSE.md +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/README.md +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/pyproject.toml +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/decorators/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/decorators/classproperty.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/decorators/value_object_process.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/decorators/value_object_validation.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/base_model.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/collections/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/collections/dict_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/collections/list_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/enumeration_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/primitive_conversion.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/type_matching.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/union_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/models/value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/py.typed +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/date/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_not_registered_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/domain_or_localhost_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/host_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/keys/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/keys/kebab_case_key_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/keys/snake_case_key_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/port_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/slug_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/user_agent_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/internet/utils/tld_domains.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/iban_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/utils/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/float/negative_or_zero_float_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/float/positive_or_zero_float_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/negative_or_zero_integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/integer/positive_or_zero_integer_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/base64_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/camel_case_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/kebab_case_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/pascal_case_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/screaming_snake_case_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/secret_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/snake_case_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/value_object_pattern/usables/utils/__init__.py +0 -0
- {value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/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.33.
|
|
3
|
+
Version: 1.33.1
|
|
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
|
|
@@ -214,8 +214,7 @@ class EmailAddressValueObject(NotEmptyStringValueObject, TrimmedStringValueObjec
|
|
|
214
214
|
try:
|
|
215
215
|
self._internal_domain_part = DomainValueObject(value=self._internal_domain_part).value
|
|
216
216
|
|
|
217
|
-
except
|
|
218
|
-
print(f'{exception}')
|
|
217
|
+
except (TypeError, ValueError):
|
|
219
218
|
self._raise_value_invalid_domain_error(value=value, domain_part=self._internal_domain_part)
|
|
220
219
|
|
|
221
220
|
def _raise_email_address_domain_contains_invalid_characters_error(self, value: str, domain_part: str) -> NoReturn:
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
HttpHttpsUrlValueObject value object.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
+
from typing import NoReturn
|
|
6
|
+
|
|
5
7
|
from value_object_pattern import validation
|
|
6
8
|
|
|
7
9
|
from .url_value_object import UrlValueObject, split_url
|
|
@@ -36,4 +38,17 @@ class HttpHttpsUrlValueObject(UrlValueObject):
|
|
|
36
38
|
scheme, *_ = split_url(value=value)
|
|
37
39
|
|
|
38
40
|
if scheme not in ('http', 'https'):
|
|
39
|
-
|
|
41
|
+
self._raise_value_is_not_http_https_url(value=value, scheme=scheme)
|
|
42
|
+
|
|
43
|
+
def _raise_value_is_not_http_https_url(self, value: str, scheme: str) -> NoReturn:
|
|
44
|
+
"""
|
|
45
|
+
Raise an error if the URL scheme is not HTTP or HTTPS.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
value (str): The URL value.
|
|
49
|
+
scheme (str): The invalid scheme.
|
|
50
|
+
|
|
51
|
+
Raises:
|
|
52
|
+
ValueError: If the URL scheme is not HTTP or HTTPS.
|
|
53
|
+
"""
|
|
54
|
+
raise ValueError(f'HttpHttpsUrlValueObject value <<<{value}>>> scheme is not HTTP or HTTPS')
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
HttpsUrlValueObject value object.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
+
from typing import NoReturn
|
|
6
|
+
|
|
5
7
|
from value_object_pattern import validation
|
|
6
8
|
|
|
7
9
|
from .url_value_object import UrlValueObject, split_url
|
|
@@ -36,4 +38,17 @@ class HttpsUrlValueObject(UrlValueObject):
|
|
|
36
38
|
scheme, *_ = split_url(value=value)
|
|
37
39
|
|
|
38
40
|
if scheme != 'https':
|
|
39
|
-
|
|
41
|
+
self._raise_value_is_not_https_url(value=value, scheme=scheme)
|
|
42
|
+
|
|
43
|
+
def _raise_value_is_not_https_url(self, value: str, scheme: str) -> NoReturn:
|
|
44
|
+
"""
|
|
45
|
+
Raise an error if the URL scheme is not HTTPS.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
value (str): The URL value.
|
|
49
|
+
scheme (str): The invalid scheme.
|
|
50
|
+
|
|
51
|
+
Raises:
|
|
52
|
+
ValueError: If the URL scheme is not HTTPS.
|
|
53
|
+
"""
|
|
54
|
+
raise ValueError(f'HttpsUrlValueObject value <<<{value}>>> scheme is not HTTPS')
|
|
@@ -4,6 +4,7 @@ UrlValueObject value object.
|
|
|
4
4
|
|
|
5
5
|
from functools import lru_cache
|
|
6
6
|
from re import Pattern, compile as re_compile
|
|
7
|
+
from typing import NoReturn
|
|
7
8
|
from urllib.parse import parse_qs, urlsplit
|
|
8
9
|
|
|
9
10
|
from value_object_pattern import process, validation
|
|
@@ -178,11 +179,23 @@ class UrlValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
|
178
179
|
try:
|
|
179
180
|
scheme, netloc, path, query, fragment = split_url(value=value)
|
|
180
181
|
|
|
181
|
-
except ValueError
|
|
182
|
-
|
|
182
|
+
except ValueError:
|
|
183
|
+
self._raise_value_is_not_valid_url(value=value)
|
|
183
184
|
|
|
184
185
|
if not scheme and not netloc and not path and not query and not fragment:
|
|
185
|
-
|
|
186
|
+
self._raise_value_is_not_valid_url(value=value)
|
|
187
|
+
|
|
188
|
+
def _raise_value_is_not_valid_url(self, value: str) -> NoReturn:
|
|
189
|
+
"""
|
|
190
|
+
Raise an error if the value is not a valid URL.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
value (str): The invalid URL value.
|
|
194
|
+
|
|
195
|
+
Raises:
|
|
196
|
+
ValueError: If the value is not a valid URL.
|
|
197
|
+
"""
|
|
198
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> is not a valid url.')
|
|
186
199
|
|
|
187
200
|
@validation(order=1)
|
|
188
201
|
def _validate_url_scheme(self, value: str) -> None:
|
|
@@ -200,7 +213,20 @@ class UrlValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
|
200
213
|
"""
|
|
201
214
|
scheme, *_ = split_url(value=value)
|
|
202
215
|
if not self._URL_SCHEME_REGEX.match(string=scheme):
|
|
203
|
-
|
|
216
|
+
self._raise_value_has_not_valid_scheme(value=value, scheme=scheme)
|
|
217
|
+
|
|
218
|
+
def _raise_value_has_not_valid_scheme(self, value: str, scheme: str) -> NoReturn:
|
|
219
|
+
"""
|
|
220
|
+
Raise an error if the URL scheme is invalid.
|
|
221
|
+
|
|
222
|
+
Args:
|
|
223
|
+
value (str): The URL value.
|
|
224
|
+
scheme (str): The invalid scheme.
|
|
225
|
+
|
|
226
|
+
Raises:
|
|
227
|
+
ValueError: If the URL scheme is invalid.
|
|
228
|
+
"""
|
|
229
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> contains an invalid scheme <<<{scheme}>>>.')
|
|
204
230
|
|
|
205
231
|
@validation(order=2)
|
|
206
232
|
def _validate_url_netloc(self, value: str) -> None:
|
|
@@ -222,24 +248,67 @@ class UrlValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
|
222
248
|
try:
|
|
223
249
|
user_information, host, port = split_netloc(value=netloc)
|
|
224
250
|
|
|
225
|
-
except ValueError
|
|
226
|
-
|
|
251
|
+
except ValueError:
|
|
252
|
+
if netloc.count(':') > 1 and not netloc.startswith('['):
|
|
253
|
+
self._raise_value_is_not_valid_url(value=value)
|
|
254
|
+
|
|
255
|
+
invalid_port = netloc.rsplit(sep=':', maxsplit=1)[-1]
|
|
256
|
+
self._raise_value_has_not_valid_port(value=value, port=invalid_port)
|
|
227
257
|
|
|
228
258
|
if user_information is not None and not self._URL_USER_INFORMATION_REGEX.match(string=user_information): # noqa: E501 # fmt: skip
|
|
229
|
-
|
|
259
|
+
self._raise_value_has_not_valid_user_information(value=value, user_information=user_information)
|
|
230
260
|
|
|
231
261
|
try:
|
|
232
262
|
HostValueObject(value=host)
|
|
233
263
|
|
|
234
|
-
except ValueError
|
|
235
|
-
|
|
264
|
+
except (TypeError, ValueError):
|
|
265
|
+
self._raise_value_has_not_valid_host(value=value, host=host)
|
|
236
266
|
|
|
237
|
-
|
|
238
|
-
|
|
267
|
+
if port is not None:
|
|
268
|
+
try:
|
|
239
269
|
PortValueObject(value=port)
|
|
240
270
|
|
|
241
|
-
|
|
242
|
-
|
|
271
|
+
except (TypeError, ValueError):
|
|
272
|
+
self._raise_value_has_not_valid_port(value=value, port=port)
|
|
273
|
+
|
|
274
|
+
def _raise_value_has_not_valid_user_information(self, value: str, user_information: str) -> NoReturn:
|
|
275
|
+
"""
|
|
276
|
+
Raise an error if the URL user information is invalid.
|
|
277
|
+
|
|
278
|
+
Args:
|
|
279
|
+
value (str): The URL value.
|
|
280
|
+
user_information (str): The invalid user information.
|
|
281
|
+
|
|
282
|
+
Raises:
|
|
283
|
+
ValueError: If the URL user information is invalid.
|
|
284
|
+
"""
|
|
285
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> has not a valid user information <<<{user_information}>>>.') # noqa: E501 # fmt: skip
|
|
286
|
+
|
|
287
|
+
def _raise_value_has_not_valid_host(self, value: str, host: str) -> NoReturn:
|
|
288
|
+
"""
|
|
289
|
+
Raise an error if the URL host is invalid.
|
|
290
|
+
|
|
291
|
+
Args:
|
|
292
|
+
value (str): The URL value.
|
|
293
|
+
host (str): The invalid host.
|
|
294
|
+
|
|
295
|
+
Raises:
|
|
296
|
+
ValueError: If the URL host is invalid.
|
|
297
|
+
"""
|
|
298
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> has not a valid host <<<{host}>>>.')
|
|
299
|
+
|
|
300
|
+
def _raise_value_has_not_valid_port(self, value: str, port: int | str) -> NoReturn:
|
|
301
|
+
"""
|
|
302
|
+
Raise an error if the URL port is invalid.
|
|
303
|
+
|
|
304
|
+
Args:
|
|
305
|
+
value (str): The URL value.
|
|
306
|
+
port (int | str): The invalid port.
|
|
307
|
+
|
|
308
|
+
Raises:
|
|
309
|
+
ValueError: If the URL port is invalid.
|
|
310
|
+
"""
|
|
311
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> has not a valid port <<<{port}>>>.')
|
|
243
312
|
|
|
244
313
|
@validation(order=3)
|
|
245
314
|
def _validate_url_path(self, value: str) -> None:
|
|
@@ -260,7 +329,20 @@ class UrlValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
|
260
329
|
return
|
|
261
330
|
|
|
262
331
|
if not self._URL_PATH_REGEX.match(string=path):
|
|
263
|
-
|
|
332
|
+
self._raise_value_has_not_valid_path(value=value, path=path)
|
|
333
|
+
|
|
334
|
+
def _raise_value_has_not_valid_path(self, value: str, path: str) -> NoReturn:
|
|
335
|
+
"""
|
|
336
|
+
Raise an error if the URL path is invalid.
|
|
337
|
+
|
|
338
|
+
Args:
|
|
339
|
+
value (str): The URL value.
|
|
340
|
+
path (str): The invalid path.
|
|
341
|
+
|
|
342
|
+
Raises:
|
|
343
|
+
ValueError: If the URL path is invalid.
|
|
344
|
+
"""
|
|
345
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> has not a valid path <<<{path}>>>.')
|
|
264
346
|
|
|
265
347
|
@validation(order=4)
|
|
266
348
|
def _validate_url_query(self, value: str) -> None:
|
|
@@ -283,11 +365,24 @@ class UrlValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
|
283
365
|
try:
|
|
284
366
|
parse_qs(qs=query)
|
|
285
367
|
|
|
286
|
-
except ValueError
|
|
287
|
-
|
|
368
|
+
except ValueError:
|
|
369
|
+
self._raise_value_has_not_valid_query(value=value, query=query)
|
|
288
370
|
|
|
289
371
|
if not self._URL_QUERY_REGEX.match(string=query):
|
|
290
|
-
|
|
372
|
+
self._raise_value_has_not_valid_query(value=value, query=query)
|
|
373
|
+
|
|
374
|
+
def _raise_value_has_not_valid_query(self, value: str, query: str) -> NoReturn:
|
|
375
|
+
"""
|
|
376
|
+
Raise an error if the URL query is invalid.
|
|
377
|
+
|
|
378
|
+
Args:
|
|
379
|
+
value (str): The URL value.
|
|
380
|
+
query (str): The invalid query.
|
|
381
|
+
|
|
382
|
+
Raises:
|
|
383
|
+
ValueError: If the URL query is invalid.
|
|
384
|
+
"""
|
|
385
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> has not a valid query <<<{query}>>>.')
|
|
291
386
|
|
|
292
387
|
@validation(order=5)
|
|
293
388
|
def _validate_url_fragment(self, value: str) -> None:
|
|
@@ -308,7 +403,20 @@ class UrlValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
|
|
|
308
403
|
return
|
|
309
404
|
|
|
310
405
|
if not self._URL_FRAGMENT_REGEX.match(string=fragment):
|
|
311
|
-
|
|
406
|
+
self._raise_value_has_not_valid_fragment(value=value, fragment=fragment)
|
|
407
|
+
|
|
408
|
+
def _raise_value_has_not_valid_fragment(self, value: str, fragment: str) -> NoReturn:
|
|
409
|
+
"""
|
|
410
|
+
Raise an error if the URL fragment is invalid.
|
|
411
|
+
|
|
412
|
+
Args:
|
|
413
|
+
value (str): The URL value.
|
|
414
|
+
fragment (str): The invalid fragment.
|
|
415
|
+
|
|
416
|
+
Raises:
|
|
417
|
+
ValueError: If the URL fragment is invalid.
|
|
418
|
+
"""
|
|
419
|
+
raise ValueError(f'UrlValueObject value <<<{value}>>> has not a valid fragment <<<{fragment}>>>.')
|
|
312
420
|
|
|
313
421
|
@property
|
|
314
422
|
def scheme(self) -> str:
|
|
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.33.0 → value_object_pattern-1.33.1}/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
|
{value_object_pattern-1.33.0 → value_object_pattern-1.33.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|