value-object-pattern 1.24.0__tar.gz → 1.25.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/PKG-INFO +1 -1
  2. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/__init__.py +1 -1
  3. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/__init__.py +0 -2
  4. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/__init__.py +4 -0
  5. value_object_pattern-1.24.0/value_object_pattern/usables/identifiers/strict_string_identifier_value_object.py → value_object_pattern-1.25.0/value_object_pattern/usables/internet/key_value_object.py +5 -7
  6. value_object_pattern-1.25.0/value_object_pattern/usables/internet/slug_value_object.py +43 -0
  7. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/.gitignore +0 -0
  8. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/LICENSE.md +0 -0
  9. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/README.md +0 -0
  10. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/pyproject.toml +0 -0
  11. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/__init__.py +0 -0
  12. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/classproperty.py +0 -0
  13. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/value_object_process.py +0 -0
  14. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
  15. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/__init__.py +0 -0
  16. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/base_model.py +0 -0
  17. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/collections/__init__.py +0 -0
  18. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/collections/dict_value_object.py +0 -0
  19. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/collections/list_value_object.py +0 -0
  20. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
  21. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/models/value_object.py +0 -0
  22. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/py.typed +0 -0
  23. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/__init__.py +0 -0
  24. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/__init__.py +0 -0
  25. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
  26. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
  27. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
  28. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
  29. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
  30. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
  31. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
  32. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
  33. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
  34. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
  35. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +0 -0
  36. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +0 -0
  37. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +0 -0
  38. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +0 -0
  39. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +0 -0
  40. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +0 -0
  41. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +0 -0
  42. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
  43. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
  44. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
  45. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
  46. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
  47. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
  48. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
  49. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
  50. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
  51. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
  52. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
  53. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
  54. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
  55. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
  56. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
  57. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
  58. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
  59. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
  60. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
  61. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
  62. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
  63. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
  64. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
  65. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
  66. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
  67. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
  68. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
  69. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
  70. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
  71. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
  72. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
  73. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
  74. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
  75. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
  76. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
  77. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
  78. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
  79. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
  80. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
  81. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_not_registered_vehicle_plate_value_object.py +0 -0
  82. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
  83. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
  84. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
  85. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
  86. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
  87. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
  88. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
  89. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
  90. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
  91. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
  92. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
  93. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
  94. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
  95. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
  96. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
  97. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
  98. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
  99. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
  100. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
  101. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
  102. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
  103. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
  104. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
  105. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
  106. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
  107. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
  108. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
  109. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
  110. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
  111. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
  112. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
  113. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
  114. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
  115. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
  116. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
  117. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
  118. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
  119. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
  120. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
  121. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
  122. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
  123. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
  124. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
  125. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
  126. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
  127. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
  128. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
  129. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +0 -0
  130. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/__init__.py +0 -0
  131. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
  132. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
  133. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
  134. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
  135. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
  136. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
  137. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
  138. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
  139. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
  140. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/__init__.py +0 -0
  141. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
  142. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
  143. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
  144. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
  145. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
  146. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
  147. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
  148. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
  149. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
  150. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/negative_or_zero_float_value_object.py +0 -0
  151. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
  152. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/float/positive_or_zero_float_value_object.py +0 -0
  153. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
  154. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
  155. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
  156. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
  157. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/negative_or_zero_integer_value_object.py +0 -0
  158. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
  159. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
  160. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/integer/positive_or_zero_integer_value_object.py +0 -0
  161. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
  162. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
  163. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
  164. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/__init__.py +0 -0
  165. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
  166. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
  167. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
  168. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
  169. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
  170. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
  171. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
  172. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
  173. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
  174. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/utils/__init__.py +0 -0
  175. {value_object_pattern-1.24.0 → value_object_pattern-1.25.0}/value_object_pattern/usables/utils/luhn_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: value-object-pattern
3
- Version: 1.24.0
3
+ Version: 1.25.0
4
4
  Summary: The Value Object Pattern is a Python package that streamlines the creation and management of value objects in your projects.
5
5
  Project-URL: Homepage, https://github.com/adriamontoto/value-object-pattern
6
6
  Project-URL: Repository, https://github.com/adriamontoto/value-object-pattern
@@ -1,4 +1,4 @@
1
- __version__ = '1.24.0'
1
+ __version__ = '1.25.0'
2
2
 
3
3
  from .decorators import process, validation
4
4
  from .models import BaseModel, EnumerationValueObject, ValueObject
@@ -1,4 +1,3 @@
1
- from .strict_string_identifier_value_object import StrictStringIdentifierValueObject
2
1
  from .uuid import (
3
2
  StringUuidV1ValueObject,
4
3
  StringUuidV3ValueObject,
@@ -19,7 +18,6 @@ from .uuid import (
19
18
  )
20
19
 
21
20
  __all__ = (
22
- 'StrictStringIdentifierValueObject',
23
21
  'StringUuidV1ValueObject',
24
22
  'StringUuidV3ValueObject',
25
23
  'StringUuidV4ValueObject',
@@ -7,8 +7,10 @@ from .ipv4_address_value_object import Ipv4AddressValueObject
7
7
  from .ipv4_network_value_object import Ipv4NetworkValueObject
8
8
  from .ipv6_address_value_object import Ipv6AddressValueObject
9
9
  from .ipv6_network_value_object import Ipv6NetworkValueObject
10
+ from .key_value_object import KeyValueObject
10
11
  from .mac_address_value_object import MacAddressValueObject
11
12
  from .port_value_object import PortValueObject
13
+ from .slug_value_object import SlugValueObject
12
14
  from .uri import HttpHttpsUrlValueObject, HttpUrlValueObject, HttpsUrlValueObject, UrlValueObject
13
15
 
14
16
  __all__ = (
@@ -24,7 +26,9 @@ __all__ = (
24
26
  'Ipv4NetworkValueObject',
25
27
  'Ipv6AddressValueObject',
26
28
  'Ipv6NetworkValueObject',
29
+ 'KeyValueObject',
27
30
  'MacAddressValueObject',
28
31
  'PortValueObject',
32
+ 'SlugValueObject',
29
33
  'UrlValueObject',
30
34
  )
@@ -1,5 +1,5 @@
1
1
  """
2
- StrictStringIdentifierValueObject value object.
2
+ KeyValueObject value object.
3
3
  """
4
4
 
5
5
  from re import Pattern, compile as re_compile
@@ -9,14 +9,12 @@ from value_object_pattern.decorators import validation
9
9
  from value_object_pattern.usables import NotEmptyStringValueObject, TrimmedStringValueObject
10
10
 
11
11
 
12
- class StrictStringIdentifierValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
12
+ class KeyValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
13
13
  """
14
- StrictStringIdentifierValueObject ensures the provided value is a strict identifier string.
15
-
16
- The allowed characters are lower-case letters (`a-z`), digits (`0-9`), and hyphen (`-`).
14
+ KeyValueObject ensures the provided value is a valid key string.
17
15
  """
18
16
 
19
- _VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'[a-z0-9-]+')
17
+ _VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'^[a-z0-9]+(?:[.-][a-z0-9]+)*$')
20
18
 
21
19
  @validation(order=0)
22
20
  def _ensure_value_follows_validation_regex(self, value: str) -> None:
@@ -42,4 +40,4 @@ class StrictStringIdentifierValueObject(NotEmptyStringValueObject, TrimmedString
42
40
  Raises:
43
41
  ValueError: If the `value` contains invalid characters.
44
42
  """
45
- raise ValueError(f'StrictStringIdentifierValueObject value <<<{value}>>> contains invalid characters. Only a-z, 0-9, and - are allowed.') # noqa: E501 # fmt: skip
43
+ raise ValueError(f'KeyValueObject value <<<{value}>>> has invalid format. Only lowercase letters and digits separated by single hyphens or dots are allowed.') # noqa: E501 # fmt: skip
@@ -0,0 +1,43 @@
1
+ """
2
+ SlugValueObject value object.
3
+ """
4
+
5
+ from re import Pattern, compile as re_compile
6
+ from typing import NoReturn
7
+
8
+ from value_object_pattern.decorators import validation
9
+ from value_object_pattern.usables import NotEmptyStringValueObject, TrimmedStringValueObject
10
+
11
+
12
+ class SlugValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
13
+ """
14
+ SlugValueObject ensures the provided value is a valid slug string.
15
+ """
16
+
17
+ _VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'^[a-z0-9]+(?:-[a-z0-9]+)*$')
18
+
19
+ @validation(order=0)
20
+ def _ensure_value_follows_validation_regex(self, value: str) -> None:
21
+ """
22
+ Ensures the value object `value` only contains allowed characters.
23
+
24
+ Args:
25
+ value (str): The provided value.
26
+
27
+ Raises:
28
+ ValueError: If the `value` contains disallowed characters.
29
+ """
30
+ if not self._VALIDATION_REGEX.fullmatch(string=value):
31
+ self._raise_value_contains_invalid_characters(value=value)
32
+
33
+ def _raise_value_contains_invalid_characters(self, value: str) -> NoReturn:
34
+ """
35
+ Raises a ValueError if the value object `value` contains invalid characters.
36
+
37
+ Args:
38
+ value (str): The provided value.
39
+
40
+ Raises:
41
+ ValueError: If the `value` contains invalid characters.
42
+ """
43
+ raise ValueError(f'SlugValueObject value <<<{value}>>> has invalid format. Only lowercase letters and digits separated by single hyphens are allowed.') # noqa: E501 # fmt: skip