value-object-pattern 1.23.0__tar.gz → 1.24.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 (174) hide show
  1. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/PKG-INFO +1 -1
  2. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/__init__.py +1 -1
  3. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/base_model.py +34 -2
  4. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/collections/dict_value_object.py +54 -1
  5. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/value_object.py +32 -2
  6. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +1 -3
  7. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/.gitignore +0 -0
  8. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/LICENSE.md +0 -0
  9. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/README.md +0 -0
  10. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/pyproject.toml +0 -0
  11. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/decorators/__init__.py +0 -0
  12. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/decorators/classproperty.py +0 -0
  13. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/decorators/value_object_process.py +0 -0
  14. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
  15. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/__init__.py +0 -0
  16. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/collections/__init__.py +0 -0
  17. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/collections/list_value_object.py +0 -0
  18. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
  19. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/py.typed +0 -0
  20. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/__init__.py +0 -0
  21. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/__init__.py +0 -0
  22. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
  23. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
  24. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
  25. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
  26. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
  27. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
  28. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
  29. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
  30. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
  31. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/__init__.py +0 -0
  32. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/strict_string_identifier_value_object.py +0 -0
  33. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
  34. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +0 -0
  35. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +0 -0
  36. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +0 -0
  37. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +0 -0
  38. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +0 -0
  39. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +0 -0
  40. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +0 -0
  41. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
  42. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
  43. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
  44. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
  45. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
  46. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
  47. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
  48. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
  49. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
  50. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
  51. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
  52. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
  53. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
  54. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
  55. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
  56. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
  57. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
  58. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
  59. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
  60. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
  61. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
  62. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
  63. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
  64. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
  65. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
  66. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
  67. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
  68. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
  69. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
  70. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
  71. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
  72. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
  73. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
  74. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
  75. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
  76. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
  77. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
  78. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
  79. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
  80. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_not_registered_vehicle_plate_value_object.py +0 -0
  81. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
  82. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
  83. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
  84. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
  85. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
  86. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
  87. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
  88. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
  89. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
  90. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
  91. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
  92. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
  93. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
  94. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
  95. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
  96. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
  97. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
  98. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
  99. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
  100. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
  101. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
  102. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/__init__.py +0 -0
  103. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
  104. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
  105. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
  106. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
  107. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
  108. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
  109. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
  110. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
  111. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
  112. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
  113. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
  114. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
  115. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
  116. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
  117. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
  118. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
  119. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
  120. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
  121. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
  122. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
  123. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
  124. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
  125. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
  126. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
  127. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
  128. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
  129. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/__init__.py +0 -0
  130. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
  131. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
  132. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
  133. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
  134. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
  135. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
  136. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
  137. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
  138. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
  139. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/__init__.py +0 -0
  140. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
  141. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
  142. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
  143. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
  144. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
  145. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
  146. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
  147. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
  148. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
  149. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/float/negative_or_zero_float_value_object.py +0 -0
  150. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
  151. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/float/positive_or_zero_float_value_object.py +0 -0
  152. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
  153. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
  154. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
  155. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
  156. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/negative_or_zero_integer_value_object.py +0 -0
  157. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
  158. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
  159. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/integer/positive_or_zero_integer_value_object.py +0 -0
  160. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
  161. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
  162. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
  163. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/__init__.py +0 -0
  164. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
  165. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
  166. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
  167. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
  168. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
  169. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
  170. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
  171. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
  172. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
  173. {value_object_pattern-1.23.0 → value_object_pattern-1.24.0}/value_object_pattern/usables/utils/__init__.py +0 -0
  174. {value_object_pattern-1.23.0 → value_object_pattern-1.24.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.23.0
3
+ Version: 1.24.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.23.0'
1
+ __version__ = '1.24.0'
2
2
 
3
3
  from .decorators import process, validation
4
4
  from .models import BaseModel, EnumerationValueObject, ValueObject
@@ -242,7 +242,23 @@ class BaseModel(ABC):
242
242
 
243
243
  Example:
244
244
  ```python
245
- # TODO:
245
+ from copy import copy
246
+
247
+ from value_object_pattern import BaseModel
248
+
249
+
250
+ class User(BaseModel):
251
+ def __init__(self, tags: list[str]) -> None:
252
+ self.tags = tags
253
+
254
+
255
+ user = User(tags=['admin'])
256
+ clone = copy(user)
257
+
258
+ print(clone is user)
259
+ print(clone.tags is user.tags)
260
+ # >>> False
261
+ # >>> True
246
262
  ```
247
263
  """
248
264
  cls = self.__class__
@@ -264,7 +280,23 @@ class BaseModel(ABC):
264
280
 
265
281
  Example:
266
282
  ```python
267
- # TODO:
283
+ from copy import deepcopy
284
+
285
+ from value_object_pattern import BaseModel
286
+
287
+
288
+ class User(BaseModel):
289
+ def __init__(self, tags: list[str]) -> None:
290
+ self.tags = tags
291
+
292
+
293
+ user = User(tags=['admin'])
294
+ clone = deepcopy(user)
295
+
296
+ print(clone is user)
297
+ print(clone.tags is user.tags)
298
+ # >>> False
299
+ # >>> False
268
300
  ```
269
301
  """
270
302
  if id(self) in memo:
@@ -15,7 +15,7 @@ from collections.abc import Iterator
15
15
  from enum import Enum
16
16
  from inspect import isclass
17
17
  from types import UnionType
18
- from typing import Any, Generic, ItemsView, KeysView, NoReturn, TypeVar, Union, ValuesView, get_args, get_origin
18
+ from typing import Any, Generic, ItemsView, KeysView, NoReturn, Self, TypeVar, Union, ValuesView, get_args, get_origin
19
19
 
20
20
  from value_object_pattern.decorators import validation
21
21
  from value_object_pattern.models import BaseModel, ValueObject
@@ -525,6 +525,59 @@ class DictValueObject(ValueObject[dict[K, V]], Generic[K, V]): # noqa: UP046
525
525
 
526
526
  return str(type).replace('typing.', '')
527
527
 
528
+ @classmethod
529
+ def from_primitives(cls, value: dict[Any, Any]) -> Self:
530
+ """
531
+ Creates a DictValueObject from a dictionary of primitives.
532
+
533
+ Args:
534
+ value (dict[Any, Any]): The dictionary of primitives.
535
+
536
+ Returns:
537
+ Self: The created DictValueObject.
538
+ """
539
+ items: dict[Any, Any] = {}
540
+
541
+ for key, item in value.items():
542
+ primitive_key = cls._convert_from_primitives(value=key, expected_type=cls._key_type)
543
+ primitive_value = cls._convert_from_primitives(value=item, expected_type=cls._value_type)
544
+ items[primitive_key] = primitive_value
545
+
546
+ return cls(value=items)
547
+
548
+ @classmethod
549
+ def _convert_from_primitives(cls, *, value: Any, expected_type: Any) -> Any:
550
+ """
551
+ Converts a primitive value to the expected type.
552
+
553
+ Args:
554
+ value (Any): The primitive value to convert.
555
+ expected_type (Any): The expected type.
556
+
557
+ Returns:
558
+ Any: The converted value.
559
+ """
560
+ if expected_type is Any:
561
+ return value
562
+
563
+ origin = get_origin(tp=expected_type)
564
+ if origin in (Union, UnionType):
565
+ return value
566
+
567
+ if hasattr(expected_type, 'from_primitives'):
568
+ return expected_type.from_primitives(value)
569
+
570
+ if isclass(expected_type) and issubclass(expected_type, Enum):
571
+ if isinstance(value, expected_type):
572
+ return value
573
+
574
+ return expected_type(value)
575
+
576
+ if hasattr(expected_type, 'value'):
577
+ return expected_type(value=value)
578
+
579
+ return value
580
+
528
581
  def to_primitives(self) -> dict[Any, Any]: # noqa: C901
529
582
  """
530
583
  Returns the dictionary as a dictionary of primitives, recursively converting each key and value.
@@ -256,7 +256,22 @@ class ValueObject(ABC, Generic[T]): # noqa: UP046
256
256
 
257
257
  Example:
258
258
  ```python
259
- # TODO:
259
+ from copy import copy
260
+
261
+ from value_object_pattern import ValueObject
262
+
263
+
264
+ class IntegerValueObject(ValueObject[int]):
265
+ pass
266
+
267
+
268
+ value_object = IntegerValueObject(value=7)
269
+ clone = copy(value_object)
270
+
271
+ print(clone is value_object)
272
+ print(clone == value_object)
273
+ # >>> False
274
+ # >>> True
260
275
  ```
261
276
  """
262
277
  return self.__class__(
@@ -277,7 +292,22 @@ class ValueObject(ABC, Generic[T]): # noqa: UP046
277
292
 
278
293
  Example:
279
294
  ```python
280
- # TODO:
295
+ from copy import deepcopy
296
+
297
+ from value_object_pattern import ValueObject
298
+
299
+
300
+ class ListValueObject(ValueObject[list[int]]):
301
+ pass
302
+
303
+
304
+ value_object = ListValueObject(value=[1, 2])
305
+ clone = deepcopy(value_object)
306
+
307
+ print(clone is value_object)
308
+ print(clone.value is value_object.value)
309
+ # >>> False
310
+ # >>> False
281
311
  ```
282
312
  """
283
313
  if id(self) in memo:
@@ -1,4 +1,4 @@
1
- # This file was automatically updated using "update_lists.py" on 2025-12-09T16:29:57.669510+00:00
1
+ # This file was automatically updated using "update_lists.py" on 2026-02-15T03:55:23.881612+00:00
2
2
 
3
3
  aaa
4
4
  aarp
@@ -487,7 +487,6 @@ godaddy
487
487
  gold
488
488
  goldpoint
489
489
  golf
490
- goo
491
490
  goodyear
492
491
  goog
493
492
  google
@@ -1251,7 +1250,6 @@ windows
1251
1250
  wine
1252
1251
  winners
1253
1252
  wme
1254
- wolterskluwer
1255
1253
  woodside
1256
1254
  work
1257
1255
  works