value-object-pattern 1.27.0__tar.gz → 1.28.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 (186) hide show
  1. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/PKG-INFO +1 -1
  2. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/pyproject.toml +0 -2
  3. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/__init__.py +1 -1
  4. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/__init__.py +2 -0
  5. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/utils/tld_domains.txt +2 -1
  6. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/__init__.py +2 -0
  7. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/__init__.py +2 -0
  8. value_object_pattern-1.28.0/value_object_pattern/usables/primitives/string/pascal_case_string_value_object.py +55 -0
  9. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/.gitignore +0 -0
  10. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/LICENSE.md +0 -0
  11. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/README.md +0 -0
  12. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/decorators/__init__.py +0 -0
  13. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/decorators/classproperty.py +0 -0
  14. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/decorators/value_object_process.py +0 -0
  15. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/decorators/value_object_validation.py +0 -0
  16. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/__init__.py +0 -0
  17. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/base_model.py +0 -0
  18. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/collections/__init__.py +0 -0
  19. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/collections/dict_value_object.py +0 -0
  20. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/collections/list_value_object.py +0 -0
  21. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/enumeration_value_object.py +0 -0
  22. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/primitive_conversion.py +0 -0
  23. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/type_matching.py +0 -0
  24. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/union_value_object.py +0 -0
  25. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/models/value_object.py +0 -0
  26. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/py.typed +0 -0
  27. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/__init__.py +0 -0
  28. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/date/__init__.py +0 -0
  29. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
  30. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
  31. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
  32. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
  33. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
  34. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
  35. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
  36. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
  37. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/__init__.py +0 -0
  38. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/__init__.py +0 -0
  39. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v1_value_object.py +0 -0
  40. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v3_value_object.py +0 -0
  41. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v4_value_object.py +0 -0
  42. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v5_value_object.py +0 -0
  43. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v6_value_object.py +0 -0
  44. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v7_value_object.py +0 -0
  45. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_v8_value_object.py +0 -0
  46. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/string_uuid_value_object.py +0 -0
  47. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v1_value_object.py +0 -0
  48. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v3_value_object.py +0 -0
  49. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v4_value_object.py +0 -0
  50. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v5_value_object.py +0 -0
  51. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v6_value_object.py +0 -0
  52. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v7_value_object.py +0 -0
  53. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_v8_value_object.py +0 -0
  54. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/uuid/uuid_value_object.py +0 -0
  55. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/__init__.py +0 -0
  56. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/country_tld_value_object.py +0 -0
  57. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/__init__.py +0 -0
  58. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/__init__.py +0 -0
  59. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/dni_value_object.py +0 -0
  60. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/nie_value_object.py +0 -0
  61. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/nif_value_object.py +0 -0
  62. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/nuss_value_object.py +0 -0
  63. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/passport_value_object.py +0 -0
  64. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/phone_number_value_object.py +0 -0
  65. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/__init__.py +0 -0
  66. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/administrative_technician_vehicle_plate_value_object.py +0 -0
  67. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/air_force_vehicle_plate_value_object.py +0 -0
  68. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/army_vehicle_plate_value_object.py +0 -0
  69. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/canarias_police_vehicle_plate_value_object.py +0 -0
  70. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/catalan_police_vehicle_plate_value_object.py +0 -0
  71. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/civil_guard_vehicle_plate_value_object.py +0 -0
  72. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/consular_corps_vehicle_plate_value_object.py +0 -0
  73. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/diplomatic_corps_vehicle_plate_value_object.py +0 -0
  74. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/especial_plate_vehicle_plate_value_object.py +0 -0
  75. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/historical_vehicle_plate_value_object.py +0 -0
  76. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/international_organization_vehicle_plate_value_object.py +0 -0
  77. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_development_vehicle_plate_value_object.py +0 -0
  78. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ministry_environment_vehicle_plate_value_object.py +0 -0
  79. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/national_police_vehicle_plate_value_object.py +0 -0
  80. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/navy_vehicle_plate_value_object.py +0 -0
  81. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_truck_vehicle_plate_value_object.py +0 -0
  82. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/ordinary_vehicle_plate_value_object.py +0 -0
  83. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/provincial_system_vehicle_plate_value_object.py +0 -0
  84. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/state_motor_pool_vehicle_plate_value_object.py +0 -0
  85. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_not_registered_vehicle_plate_value_object.py +0 -0
  86. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_company_registered_vehicle_plate_value_object.py +0 -0
  87. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/temporal_private_individual_vehicle_plate_value_object.py +0 -0
  88. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/two_wheels_vehicle_plate_value_object.py +0 -0
  89. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/__init__.py +0 -0
  90. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/plates/utils/provincial_plate_codes.txt +0 -0
  91. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/__init__.py +0 -0
  92. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/utils/provincial_codes.txt +0 -0
  93. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/europe/spain/vehicle_plate_value_object.py +0 -0
  94. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha2_code_value_object.py +0 -0
  95. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/iso3166_alpha3_code_value_object.py +0 -0
  96. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/iso3166_numeric_code_value_object.py +0 -0
  97. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/phone_code_value_object.py +0 -0
  98. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/__init__.py +0 -0
  99. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_codes.txt +0 -0
  100. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_alpha3_mapping.txt +0 -0
  101. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_numeric_mapping.txt +0 -0
  102. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_phone_code_mapping.txt +0 -0
  103. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha2_to_tld_mapping.txt +0 -0
  104. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_alpha3_codes.txt +0 -0
  105. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/utils/iso3166_numeric_codes.txt +0 -0
  106. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/identifiers/world/vin_value_object.py +0 -0
  107. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/__init__.py +0 -0
  108. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
  109. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
  110. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/email_address_value_object.py +0 -0
  111. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/host_value_object.py +0 -0
  112. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/ip_address_value_object.py +0 -0
  113. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
  114. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
  115. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
  116. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
  117. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/keys/__init__.py +0 -0
  118. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/keys/kebab_case_key_value_object.py +0 -0
  119. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/keys/snake_case_key_value_object.py +0 -0
  120. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
  121. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_addresses/__init__.py +0 -0
  122. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_addresses/cisco_mac_address_value_object.py +0 -0
  123. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_addresses/raw_mac_address_value_object.py +0 -0
  124. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_addresses/space_mac_address_value_object.py +0 -0
  125. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_addresses/universal_mac_address_value_object.py +0 -0
  126. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mac_addresses/windows_mac_address_value_object.py +0 -0
  127. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mobile/__init__.py +0 -0
  128. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/mobile/imei_value_object.py +0 -0
  129. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/port_value_object.py +0 -0
  130. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/slug_value_object.py +0 -0
  131. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
  132. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
  133. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
  134. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
  135. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
  136. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/user_agent_value_object.py +0 -0
  137. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/utils/__init__.py +0 -0
  138. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/internet/utils/aws_regions.txt +0 -0
  139. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/__init__.py +0 -0
  140. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/credit_card_value_object.py +0 -0
  141. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/credit_cards/__init__.py +0 -0
  142. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/credit_cards/amex_credit_card_value_object.py +0 -0
  143. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/credit_cards/discover_credit_card_value_object.py +0 -0
  144. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/credit_cards/mastercard_credit_card_value_object.py +0 -0
  145. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/credit_cards/visa_credit_card_value_object.py +0 -0
  146. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/iban_value_object.py +0 -0
  147. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/utils/__init__.py +0 -0
  148. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/money/utils/iban_lengths.txt +0 -0
  149. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
  150. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
  151. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
  152. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
  153. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
  154. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
  155. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
  156. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
  157. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
  158. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/float/negative_or_zero_float_value_object.py +0 -0
  159. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
  160. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/float/positive_or_zero_float_value_object.py +0 -0
  161. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
  162. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
  163. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
  164. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
  165. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/negative_or_zero_integer_value_object.py +0 -0
  166. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
  167. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
  168. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/integer/positive_or_zero_integer_value_object.py +0 -0
  169. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
  170. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
  171. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
  172. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
  173. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
  174. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/camel_case_string_value_object.py +0 -0
  175. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
  176. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/kebab_case_string_value_object.py +0 -0
  177. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
  178. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
  179. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
  180. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/screaming_snake_case_string_value_object.py +0 -0
  181. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/snake_case_string_value_object.py +0 -0
  182. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
  183. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
  184. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
  185. {value_object_pattern-1.27.0 → value_object_pattern-1.28.0}/value_object_pattern/usables/utils/__init__.py +0 -0
  186. {value_object_pattern-1.27.0 → value_object_pattern-1.28.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.27.0
3
+ Version: 1.28.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
@@ -50,7 +50,6 @@ Issues = 'https://github.com/adriamontoto/value-object-pattern/issues'
50
50
 
51
51
 
52
52
  [dependency-groups]
53
- audit = ['pip-audit>=2.9.0']
54
53
  coverage = ['coverage[toml]>=7.0.0', 'smokeshow>=0.5.0']
55
54
  develop = ['pre-commit>=3.0.0']
56
55
  format = ['ruff>=0.11.10']
@@ -69,7 +68,6 @@ test = [
69
68
  ]
70
69
  types = ['types-python-dateutil>=2.9.0.20241206']
71
70
  all = [
72
- { include-group = 'audit' },
73
71
  { include-group = 'coverage' },
74
72
  { include-group = 'develop' },
75
73
  { include-group = 'format' },
@@ -1,4 +1,4 @@
1
- __version__ = '1.27.0'
1
+ __version__ = '1.28.0'
2
2
 
3
3
  from .decorators import process, validation
4
4
  from .models import BaseModel, EnumerationValueObject, UnionValueObject, ValueObject
@@ -19,6 +19,7 @@ from .primitives import (
19
19
  NotEmptyStringValueObject,
20
20
  NotNoneValueObject,
21
21
  OddIntegerValueObject,
22
+ PascalCaseStringValueObject,
22
23
  PositiveFloatValueObject,
23
24
  PositiveIntegerValueObject,
24
25
  PositiveOrZeroFloatValueObject,
@@ -55,6 +56,7 @@ __all__ = (
55
56
  'NotEmptyStringValueObject',
56
57
  'NotNoneValueObject',
57
58
  'OddIntegerValueObject',
59
+ 'PascalCaseStringValueObject',
58
60
  'PositiveFloatValueObject',
59
61
  'PositiveIntegerValueObject',
60
62
  'PositiveOrZeroFloatValueObject',
@@ -1,4 +1,4 @@
1
- # This file was automatically updated using "update_lists.py" on 2026-02-15T03:55:23.881612+00:00
1
+ # This file was automatically updated using "update_lists.py" on 2026-04-19T04:07:29.141154+00:00
2
2
 
3
3
  aaa
4
4
  aarp
@@ -742,6 +742,7 @@ meme
742
742
  memorial
743
743
  men
744
744
  menu
745
+ merck
745
746
  merckmsd
746
747
  mg
747
748
  mh
@@ -25,6 +25,7 @@ from .string import (
25
25
  KebabCaseStringValueObject,
26
26
  LowercaseStringValueObject,
27
27
  NotEmptyStringValueObject,
28
+ PascalCaseStringValueObject,
28
29
  PrintableStringValueObject,
29
30
  ScreamingSnakeCaseStringValueObject,
30
31
  SnakeCaseStringValueObject,
@@ -54,6 +55,7 @@ __all__ = (
54
55
  'NotEmptyStringValueObject',
55
56
  'NotNoneValueObject',
56
57
  'OddIntegerValueObject',
58
+ 'PascalCaseStringValueObject',
57
59
  'PositiveFloatValueObject',
58
60
  'PositiveIntegerValueObject',
59
61
  'PositiveOrZeroFloatValueObject',
@@ -5,6 +5,7 @@ from .digit_value_object import DigitStringValueObject
5
5
  from .kebab_case_string_value_object import KebabCaseStringValueObject
6
6
  from .lowercase_string_value_object import LowercaseStringValueObject
7
7
  from .non_empty_string_value_object import NotEmptyStringValueObject
8
+ from .pascal_case_string_value_object import PascalCaseStringValueObject
8
9
  from .printable_string_value_object import PrintableStringValueObject
9
10
  from .screaming_snake_case_string_value_object import ScreamingSnakeCaseStringValueObject
10
11
  from .snake_case_string_value_object import SnakeCaseStringValueObject
@@ -20,6 +21,7 @@ __all__ = (
20
21
  'KebabCaseStringValueObject',
21
22
  'LowercaseStringValueObject',
22
23
  'NotEmptyStringValueObject',
24
+ 'PascalCaseStringValueObject',
23
25
  'PrintableStringValueObject',
24
26
  'ScreamingSnakeCaseStringValueObject',
25
27
  'SnakeCaseStringValueObject',
@@ -0,0 +1,55 @@
1
+ """
2
+ PascalCaseStringValueObject 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
+
10
+ from .non_empty_string_value_object import NotEmptyStringValueObject
11
+ from .trimmed_string_value_object import TrimmedStringValueObject
12
+
13
+
14
+ class PascalCaseStringValueObject(NotEmptyStringValueObject, TrimmedStringValueObject):
15
+ """
16
+ PascalCaseStringValueObject value object ensures the provided value is PascalCase.
17
+
18
+ Example:
19
+ ```python
20
+ from value_object_pattern.usables import PascalCaseStringValueObject
21
+
22
+ string = PascalCaseStringValueObject(value='Abcd1234Word')
23
+
24
+ print(repr(string))
25
+ # >>> PascalCaseStringValueObject(value='Abcd1234Word')
26
+ ```
27
+ """
28
+
29
+ _VALIDATION_REGEX: Pattern[str] = re_compile(pattern=r'^[A-Z][a-z0-9]*(?:[A-Z][a-z0-9]*)*$')
30
+
31
+ @validation(order=0)
32
+ def _ensure_value_is_pascal_case(self, value: str) -> None:
33
+ """
34
+ Ensures the value object `value` is PascalCase.
35
+
36
+ Args:
37
+ value (str): The provided value.
38
+
39
+ Raises:
40
+ ValueError: If the `value` is not PascalCase.
41
+ """
42
+ if not self._VALIDATION_REGEX.fullmatch(string=value):
43
+ self._raise_value_is_not_pascal_case(value=value)
44
+
45
+ def _raise_value_is_not_pascal_case(self, value: str) -> NoReturn:
46
+ """
47
+ Raises a ValueError if the value object `value` is PascalCase.
48
+
49
+ Args:
50
+ value (str): The provided value.
51
+
52
+ Raises:
53
+ ValueError: If the `value` is not PascalCase.
54
+ """
55
+ raise ValueError(f'PascalCaseStringValueObject value <<<{value}>>> has invalid format. Only PascalCase strings starting with an uppercase letter and continuing with alphanumeric words are allowed.') # noqa: E501 # fmt: skip