value-object-pattern 1.16.0__tar.gz → 1.18.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 (170) hide show
  1. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/PKG-INFO +2 -1
  2. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/pyproject.toml +1 -0
  3. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/__init__.py +1 -1
  4. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/__init__.py +37 -0
  5. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/__init__.py +35 -0
  6. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +52 -0
  7. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +52 -0
  8. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +4 -5
  9. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +52 -0
  10. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +53 -0
  11. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +52 -0
  12. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +53 -0
  13. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +3 -4
  14. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +53 -0
  15. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +53 -0
  16. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +1 -2
  17. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +53 -0
  18. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +53 -0
  19. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +53 -0
  20. value_object_pattern-1.18.0/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +53 -0
  21. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +2 -3
  22. value_object_pattern-1.16.0/value_object_pattern/usables/identifiers/__init__.py +0 -13
  23. value_object_pattern-1.16.0/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -11
  24. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/.gitignore +0 -0
  25. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/LICENSE.md +0 -0
  26. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/README.md +0 -0
  27. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/decorators/__init__.py +0 -0
  28. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/decorators/classproperty.py +0 -0
  29. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/decorators/value_object_process.py +0 -0
  30. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
  31. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/models/__init__.py +0 -0
  32. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/models/base_model.py +0 -0
  33. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/models/collections/__init__.py +0 -0
  34. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/models/collections/list_value_object.py +0 -0
  35. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
  36. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/models/value_object.py +0 -0
  37. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/py.typed +0 -0
  38. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/__init__.py +0 -0
  39. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/__init__.py +0 -0
  40. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
  41. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
  42. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
  43. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
  44. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
  45. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
  46. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
  47. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
  48. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
  49. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
  50. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
  51. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
  52. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
  53. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
  54. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
  55. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
  56. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
  57. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
  58. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
  59. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
  60. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
  61. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
  62. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
  63. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
  64. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
  65. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
  66. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
  67. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
  68. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
  69. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
  70. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
  71. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
  72. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
  73. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
  74. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
  75. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
  76. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
  77. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
  78. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
  79. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_not_registered_vehicle_plate_value_object.py +0 -0
  80. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
  81. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
  82. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
  83. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
  84. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
  85. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
  86. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
  87. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
  88. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
  89. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
  90. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
  91. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
  92. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
  93. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
  94. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
  95. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
  96. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
  97. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
  98. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
  99. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
  100. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
  101. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/__init__.py +0 -0
  102. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
  103. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
  104. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
  105. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
  106. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
  107. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
  108. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
  109. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
  110. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
  111. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
  112. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
  113. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
  114. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
  115. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
  116. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
  117. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
  118. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
  119. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
  120. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
  121. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
  122. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
  123. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
  124. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
  125. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
  126. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
  127. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
  128. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +0 -0
  129. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/__init__.py +0 -0
  130. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
  131. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
  132. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
  133. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
  134. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
  135. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
  136. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
  137. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
  138. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
  139. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/__init__.py +0 -0
  140. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
  141. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
  142. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
  143. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
  144. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
  145. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
  146. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
  147. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
  148. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
  149. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
  150. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
  151. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
  152. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
  153. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
  154. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
  155. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
  156. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
  157. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
  158. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
  159. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/__init__.py +0 -0
  160. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
  161. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
  162. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
  163. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
  164. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
  165. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
  166. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
  167. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
  168. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
  169. {value_object_pattern-1.16.0 → value_object_pattern-1.18.0}/value_object_pattern/usables/utils/__init__.py +0 -0
  170. {value_object_pattern-1.16.0 → value_object_pattern-1.18.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.16.0
3
+ Version: 1.18.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
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
20
21
  Classifier: Typing :: Typed
21
22
  Requires-Python: >=3.11
22
23
  Requires-Dist: python-dateutil>=2.9.0
@@ -26,6 +26,7 @@ classifiers = [
26
26
  'Programming Language :: Python :: 3.11',
27
27
  'Programming Language :: Python :: 3.12',
28
28
  'Programming Language :: Python :: 3.13',
29
+ 'Programming Language :: Python :: 3.14',
29
30
  ]
30
31
  keywords = [
31
32
  'python',
@@ -1,4 +1,4 @@
1
- __version__ = '1.16.0'
1
+ __version__ = '1.18.0'
2
2
 
3
3
  from .decorators import process, validation
4
4
  from .models import BaseModel, EnumerationValueObject, ValueObject
@@ -0,0 +1,37 @@
1
+ from .uuid import (
2
+ StringUuidV1ValueObject,
3
+ StringUuidV3ValueObject,
4
+ StringUuidV4ValueObject,
5
+ StringUuidV5ValueObject,
6
+ StringUuidV6ValueObject,
7
+ StringUuidV7ValueObject,
8
+ StringUuidV8ValueObject,
9
+ StringUuidValueObject,
10
+ UuidV1ValueObject,
11
+ UuidV3ValueObject,
12
+ UuidV4ValueObject,
13
+ UuidV5ValueObject,
14
+ UuidV6ValueObject,
15
+ UuidV7ValueObject,
16
+ UuidV8ValueObject,
17
+ UuidValueObject,
18
+ )
19
+
20
+ __all__ = (
21
+ 'StringUuidV1ValueObject',
22
+ 'StringUuidV3ValueObject',
23
+ 'StringUuidV4ValueObject',
24
+ 'StringUuidV5ValueObject',
25
+ 'StringUuidV6ValueObject',
26
+ 'StringUuidV7ValueObject',
27
+ 'StringUuidV8ValueObject',
28
+ 'StringUuidValueObject',
29
+ 'UuidV1ValueObject',
30
+ 'UuidV3ValueObject',
31
+ 'UuidV4ValueObject',
32
+ 'UuidV5ValueObject',
33
+ 'UuidV6ValueObject',
34
+ 'UuidV7ValueObject',
35
+ 'UuidV8ValueObject',
36
+ 'UuidValueObject',
37
+ )
@@ -0,0 +1,35 @@
1
+ from .string_uuid_v1_value_object import StringUuidV1ValueObject
2
+ from .string_uuid_v3_value_object import StringUuidV3ValueObject
3
+ from .string_uuid_v4_value_object import StringUuidV4ValueObject
4
+ from .string_uuid_v5_value_object import StringUuidV5ValueObject
5
+ from .string_uuid_v6_value_object import StringUuidV6ValueObject
6
+ from .string_uuid_v7_value_object import StringUuidV7ValueObject
7
+ from .string_uuid_v8_value_object import StringUuidV8ValueObject
8
+ from .string_uuid_value_object import StringUuidValueObject
9
+ from .uuid_v1_value_object import UuidV1ValueObject
10
+ from .uuid_v3_value_object import UuidV3ValueObject
11
+ from .uuid_v4_value_object import UuidV4ValueObject
12
+ from .uuid_v5_value_object import UuidV5ValueObject
13
+ from .uuid_v6_value_object import UuidV6ValueObject
14
+ from .uuid_v7_value_object import UuidV7ValueObject
15
+ from .uuid_v8_value_object import UuidV8ValueObject
16
+ from .uuid_value_object import UuidValueObject
17
+
18
+ __all__ = (
19
+ 'StringUuidV1ValueObject',
20
+ 'StringUuidV3ValueObject',
21
+ 'StringUuidV4ValueObject',
22
+ 'StringUuidV5ValueObject',
23
+ 'StringUuidV6ValueObject',
24
+ 'StringUuidV7ValueObject',
25
+ 'StringUuidV8ValueObject',
26
+ 'StringUuidValueObject',
27
+ 'UuidV1ValueObject',
28
+ 'UuidV3ValueObject',
29
+ 'UuidV4ValueObject',
30
+ 'UuidV5ValueObject',
31
+ 'UuidV6ValueObject',
32
+ 'UuidV7ValueObject',
33
+ 'UuidV8ValueObject',
34
+ 'UuidValueObject',
35
+ )
@@ -0,0 +1,52 @@
1
+ """
2
+ StringUuidV1ValueObject value object.
3
+ """
4
+
5
+ from typing import NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .string_uuid_value_object import StringUuidValueObject
11
+
12
+
13
+ class StringUuidV1ValueObject(StringUuidValueObject):
14
+ """
15
+ StringUuidV1ValueObject value object ensures the provided value is a valid UUID version 1.
16
+
17
+ Example:
18
+ ```python
19
+ from value_object_pattern.usables.identifiers import StringUuidV1ValueObject
20
+
21
+ uuid = StringUuidV1ValueObject(value='53734b8c-d517-11f0-a57a-452bbcae0235')
22
+ print(repr(uuid))
23
+ # >>> StringUuidV1ValueObject(value=53734b8c-d517-11f0-a57a-452bbcae0235)
24
+ ```
25
+ """
26
+
27
+ @validation(order=1)
28
+ def _ensure_value_is_uuid1(self, value: str) -> None:
29
+ """
30
+ Ensures the value object `value` is a UUID version 1.
31
+
32
+ Args:
33
+ value (str): The provided value.
34
+
35
+ Raises:
36
+ ValueError: If the `value` is not a UUID version 1.
37
+ """
38
+ uuid_object = UUID(value)
39
+ if uuid_object.version != 1:
40
+ self._raise_value_is_not_uuid1(value=value)
41
+
42
+ def _raise_value_is_not_uuid1(self, value: str) -> NoReturn:
43
+ """
44
+ Raises a ValueError if the value object `value` is not a UUID version 1.
45
+
46
+ Args:
47
+ value (str): The provided value.
48
+
49
+ Raises:
50
+ ValueError: If the `value` is not a UUID version 1.
51
+ """
52
+ raise ValueError(f'StringUuidV1ValueObject value <<<{value}>>> must be a UUID version 1. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -0,0 +1,52 @@
1
+ """
2
+ StringUuidV3ValueObject value object.
3
+ """
4
+
5
+ from typing import NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .string_uuid_value_object import StringUuidValueObject
11
+
12
+
13
+ class StringUuidV3ValueObject(StringUuidValueObject):
14
+ """
15
+ StringUuidV3ValueObject value object ensures the provided value is a valid UUID version 3.
16
+
17
+ Example:
18
+ ```python
19
+ from value_object_pattern.usables.identifiers import StringUuidV3ValueObject
20
+
21
+ uuid = StringUuidV3ValueObject(value='9073926b-929f-31c2-abc9-fad77ae3e8eb')
22
+ print(repr(uuid))
23
+ # >>> StringUuidV3ValueObject(value=9073926b-929f-31c2-abc9-fad77ae3e8eb)
24
+ ```
25
+ """
26
+
27
+ @validation(order=1)
28
+ def _ensure_value_is_uuid3(self, value: str) -> None:
29
+ """
30
+ Ensures the value object `value` is a UUID version 3.
31
+
32
+ Args:
33
+ value (str): The provided value.
34
+
35
+ Raises:
36
+ ValueError: If the `value` is not a UUID version 3.
37
+ """
38
+ uuid_object = UUID(value)
39
+ if uuid_object.version != 3:
40
+ self._raise_value_is_not_uuid3(value=value)
41
+
42
+ def _raise_value_is_not_uuid3(self, value: str) -> NoReturn:
43
+ """
44
+ Raises a ValueError if the value object `value` is not a UUID version 3.
45
+
46
+ Args:
47
+ value (str): The provided value.
48
+
49
+ Raises:
50
+ ValueError: If the `value` is not a UUID version 3.
51
+ """
52
+ raise ValueError(f'StringUuidV3ValueObject value <<<{value}>>> must be a UUID version 3. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -18,10 +18,9 @@ class StringUuidV4ValueObject(StringUuidValueObject):
18
18
  ```python
19
19
  from value_object_pattern.usables.identifiers import StringUuidV4ValueObject
20
20
 
21
- uuid = StringUuidV4ValueObject(value='9908bb2d-54b4-426f-bef0-b09aa978ed21')
22
-
21
+ uuid = StringUuidV4ValueObject(value='3e9e0f3a-64a3-474f-9127-368e723f389f')
23
22
  print(repr(uuid))
24
- # >>> StringUuidV4ValueObject(value=9908bb2d-54b4-426f-bef0-b09aa978ed21)
23
+ # >>> StringUuidV4ValueObject(value=3e9e0f3a-64a3-474f-9127-368e723f389f)
25
24
  ```
26
25
  """
27
26
 
@@ -36,7 +35,7 @@ class StringUuidV4ValueObject(StringUuidValueObject):
36
35
  Raises:
37
36
  ValueError: If the `value` is not a UUID version 4.
38
37
  """
39
- uuid_object = UUID(hex=value)
38
+ uuid_object = UUID(value)
40
39
  if uuid_object.version != 4:
41
40
  self._raise_value_is_not_uuid4(value=value)
42
41
 
@@ -50,4 +49,4 @@ class StringUuidV4ValueObject(StringUuidValueObject):
50
49
  Raises:
51
50
  ValueError: If the `value` is not a UUID version 4.
52
51
  """
53
- raise ValueError(f'StringUuidV4ValueObject value <<<{value}>>> must be a UUID version 4. Got version <<<{UUID(hex=value).version}>>>.') # noqa: E501 # fmt: skip
52
+ raise ValueError(f'StringUuidV4ValueObject value <<<{value}>>> must be a UUID version 4. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -0,0 +1,52 @@
1
+ """
2
+ StringUuidV5ValueObject value object.
3
+ """
4
+
5
+ from typing import NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .string_uuid_value_object import StringUuidValueObject
11
+
12
+
13
+ class StringUuidV5ValueObject(StringUuidValueObject):
14
+ """
15
+ StringUuidV5ValueObject value object ensures the provided value is a valid UUID version 5.
16
+
17
+ Example:
18
+ ```python
19
+ from value_object_pattern.usables.identifiers import StringUuidV5ValueObject
20
+
21
+ uuid = StringUuidV5ValueObject(value='cfbff0d1-9375-5685-968c-48ce8b15ae17')
22
+ print(repr(uuid))
23
+ # >>> StringUuidV5ValueObject(value=cfbff0d1-9375-5685-968c-48ce8b15ae17)
24
+ ```
25
+ """
26
+
27
+ @validation(order=1)
28
+ def _ensure_value_is_uuid5(self, value: str) -> None:
29
+ """
30
+ Ensures the value object `value` is a UUID version 5.
31
+
32
+ Args:
33
+ value (str): The provided value.
34
+
35
+ Raises:
36
+ ValueError: If the `value` is not a UUID version 5.
37
+ """
38
+ uuid_object = UUID(value)
39
+ if uuid_object.version != 5:
40
+ self._raise_value_is_not_uuid5(value=value)
41
+
42
+ def _raise_value_is_not_uuid5(self, value: str) -> NoReturn:
43
+ """
44
+ Raises a ValueError if the value object `value` is not a UUID version 5.
45
+
46
+ Args:
47
+ value (str): The provided value.
48
+
49
+ Raises:
50
+ ValueError: If the `value` is not a UUID version 5.
51
+ """
52
+ raise ValueError(f'StringUuidV5ValueObject value <<<{value}>>> must be a UUID version 5. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -0,0 +1,53 @@
1
+ """
2
+ StringUuidV6ValueObject value object.
3
+ """
4
+
5
+ from typing import NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .string_uuid_value_object import StringUuidValueObject
11
+
12
+
13
+ class StringUuidV6ValueObject(StringUuidValueObject):
14
+ """
15
+ StringUuidV6ValueObject value object ensures the provided value is a valid UUID version 6.
16
+
17
+ Example:
18
+ ```python
19
+ from value_object_pattern.usables.identifiers import StringUuidV6ValueObject
20
+
21
+ uuid = StringUuidV6ValueObject(value='1f0d455c-76e5-6210-b032-46ef6b2a93e1')
22
+
23
+ print(repr(uuid))
24
+ # >>> StringUuidV6ValueObject(value=1f0d455c-76e5-6210-b032-46ef6b2a93e1)
25
+ ```
26
+ """
27
+
28
+ @validation(order=1)
29
+ def _ensure_value_is_uuid6(self, value: str) -> None:
30
+ """
31
+ Ensures the value object `value` is a UUID version 6.
32
+
33
+ Args:
34
+ value (str): The provided value.
35
+
36
+ Raises:
37
+ ValueError: If the `value` is not a UUID version 6.
38
+ """
39
+ uuid_object = UUID(value)
40
+ if uuid_object.version != 6:
41
+ self._raise_value_is_not_uuid6(value=value)
42
+
43
+ def _raise_value_is_not_uuid6(self, value: str) -> NoReturn:
44
+ """
45
+ Raises a ValueError if the value object `value` is not a UUID version 6.
46
+
47
+ Args:
48
+ value (str): The provided value.
49
+
50
+ Raises:
51
+ ValueError: If the `value` is not a UUID version 6.
52
+ """
53
+ raise ValueError(f'StringUuidV6ValueObject value <<<{value}>>> must be a UUID version 6. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -0,0 +1,52 @@
1
+ """
2
+ StringUuidV7ValueObject value object.
3
+ """
4
+
5
+ from typing import NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .string_uuid_value_object import StringUuidValueObject
11
+
12
+
13
+ class StringUuidV7ValueObject(StringUuidValueObject):
14
+ """
15
+ StringUuidV7ValueObject value object ensures the provided value is a valid UUID version 7.
16
+
17
+ Example:
18
+ ```python
19
+ from value_object_pattern.usables.identifiers import StringUuidV7ValueObject
20
+
21
+ uuid = StringUuidV7ValueObject(value='019afedd-025c-7f00-b22f-796d93c9b9cb')
22
+ print(repr(uuid))
23
+ # >>> StringUuidV7ValueObject(value=019afedd-025c-7f00-b22f-796d93c9b9cb)
24
+ ```
25
+ """
26
+
27
+ @validation(order=1)
28
+ def _ensure_value_is_uuid7(self, value: str) -> None:
29
+ """
30
+ Ensures the value object `value` is a UUID version 7.
31
+
32
+ Args:
33
+ value (str): The provided value.
34
+
35
+ Raises:
36
+ ValueError: If the `value` is not a UUID version 7.
37
+ """
38
+ uuid_object = UUID(value)
39
+ if uuid_object.version != 7:
40
+ self._raise_value_is_not_uuid7(value=value)
41
+
42
+ def _raise_value_is_not_uuid7(self, value: str) -> NoReturn:
43
+ """
44
+ Raises a ValueError if the value object `value` is not a UUID version 7.
45
+
46
+ Args:
47
+ value (str): The provided value.
48
+
49
+ Raises:
50
+ ValueError: If the `value` is not a UUID version 7.
51
+ """
52
+ raise ValueError(f'StringUuidV7ValueObject value <<<{value}>>> must be a UUID version 7. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -0,0 +1,53 @@
1
+ """
2
+ StringUuidV8ValueObject value object.
3
+ """
4
+
5
+ from typing import NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .string_uuid_value_object import StringUuidValueObject
11
+
12
+
13
+ class StringUuidV8ValueObject(StringUuidValueObject):
14
+ """
15
+ StringUuidV8ValueObject value object ensures the provided value is a valid UUID version 8.
16
+
17
+ Example:
18
+ ```python
19
+ from value_object_pattern.usables.identifiers import StringUuidV8ValueObject
20
+
21
+ uuid = StringUuidV8ValueObject(value='1f6b82d1-1a39-4607-8a28-4dd1453104d3')
22
+
23
+ print(repr(uuid))
24
+ # >>> StringUuidV8ValueObject(value=1f6b82d1-1a39-4607-8a28-4dd1453104d3)
25
+ ```
26
+ """
27
+
28
+ @validation(order=1)
29
+ def _ensure_value_is_uuid8(self, value: str) -> None:
30
+ """
31
+ Ensures the value object `value` is a UUID version 8.
32
+
33
+ Args:
34
+ value (str): The provided value.
35
+
36
+ Raises:
37
+ ValueError: If the `value` is not a UUID version 8.
38
+ """
39
+ uuid_object = UUID(value)
40
+ if uuid_object.version != 8:
41
+ self._raise_value_is_not_uuid8(value=value)
42
+
43
+ def _raise_value_is_not_uuid8(self, value: str) -> NoReturn:
44
+ """
45
+ Raises a ValueError if the value object `value` is not a UUID version 8.
46
+
47
+ Args:
48
+ value (str): The provided value.
49
+
50
+ Raises:
51
+ ValueError: If the `value` is not a UUID version 8.
52
+ """
53
+ raise ValueError(f'StringUuidV8ValueObject value <<<{value}>>> must be a UUID version 8. Got version <<<{UUID(value).version}>>>.') # noqa: E501 # fmt: skip
@@ -17,10 +17,9 @@ class StringUuidValueObject(NotEmptyStringValueObject, TrimmedStringValueObject)
17
17
  ```python
18
18
  from value_object_pattern.usables.identifiers import StringUuidValueObject
19
19
 
20
- uuid = StringUuidValueObject(value='9908bb2d-54b4-426f-bef0-b09aa978ed21')
21
-
20
+ uuid = StringUuidValueObject(value='3e9e0f3a-64a3-474f-9127-368e723f389f')
22
21
  print(repr(uuid))
23
- # >>> StringUuidValueObject(value=9908bb2d-54b4-426f-bef0-b09aa978ed21)
22
+ # >>> StringUuidValueObject(value=3e9e0f3a-64a3-474f-9127-368e723f389f)
24
23
  ```
25
24
  """
26
25
 
@@ -49,7 +48,7 @@ class StringUuidValueObject(NotEmptyStringValueObject, TrimmedStringValueObject)
49
48
  ValueError: If the `value` is not a UUID.
50
49
  """
51
50
  try:
52
- UUID(hex=value)
51
+ UUID(value)
53
52
 
54
53
  except ValueError:
55
54
  self._raise_value_is_not_uuid(value=value)
@@ -0,0 +1,53 @@
1
+ """
2
+ UuidV1ValueObject value object.
3
+ """
4
+
5
+ from typing import Any, NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .uuid_value_object import UuidValueObject
11
+
12
+
13
+ class UuidV1ValueObject(UuidValueObject):
14
+ """
15
+ UuidV1ValueObject value object ensures the provided value is a valid UUID version 1.
16
+
17
+ Example:
18
+ ```python
19
+ from uuid import uuid1
20
+
21
+ from value_object_pattern.usables.identifiers import UuidV1ValueObject
22
+
23
+ uuid = UuidV1ValueObject(value=uuid1())
24
+ print(repr(uuid))
25
+ # >>> UuidV1ValueObject(value=26afb422-824d-11f0-9bbf-325096b39f47)
26
+ ```
27
+ """
28
+
29
+ @validation(order=1)
30
+ def _ensure_value_is_uuid1(self, value: UUID) -> None:
31
+ """
32
+ Ensures the value object `value` is a UUID version 1.
33
+
34
+ Args:
35
+ value (UUID): The provided value.
36
+
37
+ Raises:
38
+ ValueError: If the `value` is not a UUID version 1.
39
+ """
40
+ if value.version != 1:
41
+ self._raise_value_is_not_uuid1(value=value)
42
+
43
+ def _raise_value_is_not_uuid1(self, value: Any) -> NoReturn:
44
+ """
45
+ Raises a ValueError if the value object `value` is not a UUID version 1.
46
+
47
+ Args:
48
+ value (Any): The provided value.
49
+
50
+ Raises:
51
+ ValueError: If the `value` is not a UUID version 1.
52
+ """
53
+ raise ValueError(f'UuidV1ValueObject value <<<{value}>>> must be a UUID version 1. Got version <<<{value.version}>>>.') # noqa: E501 # fmt: skip
@@ -0,0 +1,53 @@
1
+ """
2
+ UuidV3ValueObject value object.
3
+ """
4
+
5
+ from typing import Any, NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .uuid_value_object import UuidValueObject
11
+
12
+
13
+ class UuidV3ValueObject(UuidValueObject):
14
+ """
15
+ UuidV3ValueObject value object ensures the provided value is a valid UUID version 3.
16
+
17
+ Example:
18
+ ```python
19
+ from uuid import NAMESPACE_DNS, uuid3
20
+
21
+ from value_object_pattern.usables.identifiers import UuidV3ValueObject
22
+
23
+ uuid = UuidV3ValueObject(value=uuid3(namespace=NAMESPACE_DNS, name='example.com'))
24
+ print(repr(uuid))
25
+ # >>> UuidV3ValueObject(value=9073926b-929f-31c2-abc9-fad77ae3e8eb)
26
+ ```
27
+ """
28
+
29
+ @validation(order=1)
30
+ def _ensure_value_is_uuid3(self, value: UUID) -> None:
31
+ """
32
+ Ensures the value object `value` is a UUID version 3.
33
+
34
+ Args:
35
+ value (UUID): The provided value.
36
+
37
+ Raises:
38
+ ValueError: If the `value` is not a UUID version 3.
39
+ """
40
+ if value.version != 3:
41
+ self._raise_value_is_not_uuid3(value=value)
42
+
43
+ def _raise_value_is_not_uuid3(self, value: Any) -> NoReturn:
44
+ """
45
+ Raises a ValueError if the value object `value` is not a UUID version 3.
46
+
47
+ Args:
48
+ value (Any): The provided value.
49
+
50
+ Raises:
51
+ ValueError: If the `value` is not a UUID version 3.
52
+ """
53
+ raise ValueError(f'UuidV3ValueObject value <<<{value}>>> must be a UUID version 3. Got version <<<{value.version}>>>.') # noqa: E501 # fmt: skip
@@ -21,9 +21,8 @@ class UuidV4ValueObject(UuidValueObject):
21
21
  from value_object_pattern.usables.identifiers import UuidV4ValueObject
22
22
 
23
23
  uuid = UuidV4ValueObject(value=uuid4())
24
-
25
24
  print(repr(uuid))
26
- # >>> UuidV4ValueObject(value=9908bb2d-54b4-426f-bef0-b09aa978ed21)
25
+ # >>> UuidV4ValueObject(value=3e9e0f3a-64a3-474f-9127-368e723f389f)
27
26
  ```
28
27
  """
29
28
 
@@ -0,0 +1,53 @@
1
+ """
2
+ UuidV5ValueObject value object.
3
+ """
4
+
5
+ from typing import Any, NoReturn
6
+ from uuid import UUID
7
+
8
+ from value_object_pattern.decorators import validation
9
+
10
+ from .uuid_value_object import UuidValueObject
11
+
12
+
13
+ class UuidV5ValueObject(UuidValueObject):
14
+ """
15
+ UuidV5ValueObject value object ensures the provided value is a valid UUID version 5.
16
+
17
+ Example:
18
+ ```python
19
+ from uuid import NAMESPACE_DNS, uuid5
20
+
21
+ from value_object_pattern.usables.identifiers import UuidV5ValueObject
22
+
23
+ uuid = UuidV5ValueObject(value=uuid5(namespace=NAMESPACE_DNS, name='example.com'))
24
+ print(repr(uuid))
25
+ # >>> UuidV5ValueObject(value=cfbff0d1-9375-5685-968c-48ce8b15ae17)
26
+ ```
27
+ """
28
+
29
+ @validation(order=1)
30
+ def _ensure_value_is_uuid5(self, value: UUID) -> None:
31
+ """
32
+ Ensures the value object `value` is a UUID version 5.
33
+
34
+ Args:
35
+ value (UUID): The provided value.
36
+
37
+ Raises:
38
+ ValueError: If the `value` is not a UUID version 5.
39
+ """
40
+ if value.version != 5:
41
+ self._raise_value_is_not_uuid5(value=value)
42
+
43
+ def _raise_value_is_not_uuid5(self, value: Any) -> NoReturn:
44
+ """
45
+ Raises a ValueError if the value object `value` is not a UUID version 5.
46
+
47
+ Args:
48
+ value (Any): The provided value.
49
+
50
+ Raises:
51
+ ValueError: If the `value` is not a UUID version 5.
52
+ """
53
+ raise ValueError(f'UuidV5ValueObject value <<<{value}>>> must be a UUID version 5. Got version <<<{value.version}>>>.') # noqa: E501 # fmt: skip