
Security News
CVE Volume Surges Past 48,000 in 2025 as WordPress Plugin Ecosystem Drives Growth
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.
pyvalueobjects
Advanced tools
A collection of Value Objects to save time by generalizing data type and format validations.

A collection of Value Objects to save time by generalizing types and format validations.
Integer numbers without a fractional component that don't support decimal points.
from pyvalueobjects import Int
# Creation
my_integer = Int(9)
# Getting raw value
my_integer.value() # returns -> 9
Integer numbers and None.
from pyvalueobjects import NullableInt
# Creation
my_integer = NullableInt(9)
# Creating from None
my_nullable_integer = NullableInt(None)
# Getting raw value
my_integer.value() # returns -> 9
my_nullable_integer.value() # returns -> None
from pyvalueobjects import PositiveInt
# Creation
my_integer = PositiveInt(9)
# Getting raw value
my_integer.value() # returns -> 9
from pyvalueobjects import NullablePositiveInt
# Creation
my_integer = NullablePositiveInt(9)
# Creating from None
my_nullable_integer = NullablePositiveInt(None)
# Getting raw value
my_integer.value() # returns -> 9
my_nullable_integer.value() # returns -> None
from pyvalueobjects import PositiveOrZeroInt
# Creation
my_integer = PositiveOrZeroInt(9)
# Getting raw value
my_integer.value() # returns -> 9
from pyvalueobjects import NullablePositiveOrZeroInt
# Creation
my_integer = NullablePositiveOrZeroInt(9)
# Creating from None
my_nullable_integer = NullablePositiveOrZeroInt(None)
# Getting raw value
my_integer.value() # returns -> 9
my_nullable_integer.value() # returns -> None
from pyvalueobjects import NegativeInt
# Creation
my_integer = NegativeInt(-9)
# Getting raw value
my_integer.value() # returns -> -9
from pyvalueobjects import NullableNegativeInt
# Creation
my_integer = NullableNegativeInt(-9)
# Creating from None
my_nullable_integer = NullableNegativeInt(None)
# Getting raw value
my_integer.value() # returns -> -9
my_nullable_integer.value() # returns -> None
from pyvalueobjects import NegativeOrZeroInt
# Creation
my_integer = NegativeOrZeroInt(-9)
# Getting raw value
my_integer.value() # returns -> -9
from pyvalueobjects import NullableNegativeOrZeroInt
# Creation
my_integer = NullableNegativeOrZeroInt(-9)
# Creating from None
my_nullable_integer = NullableNegativeOrZeroInt(None)
# Getting raw value
my_integer.value() # returns -> -9
my_nullable_integer.value() # returns -> None
from pyvalueobjects import String
# Creation
my_str = String('potato')
# Getting raw value
my_str.value() # returns -> 'potato'
from pyvalueobjects import NullableString
# Creation
my_str = NullableString('potato')
# Getting raw value
my_str.value() # returns -> 'potato'
# Creation
my_nullable_str = NullableString(None)
# Getting raw value
my_nullable_str.value() # returns -> None
from pyvalueobjects import NonEmptyString
# Creation
my_str = NonEmptyString('potato')
# Getting raw value
my_str.value() # returns -> 'potato'
# Creation
my_str2 = NonEmptyString('') # raises error
from pyvalueobjects import NullableNonEmptyString
# Creation
my_str = NullableNonEmptyString('potato')
# Getting raw value
my_str.value() # returns -> 'potato'
# Creation
my_str2 = NullableNonEmptyString(None)
# Getting raw value
my_str2.value() # returns -> None
# Creation
my_str3 = NullableNonEmptyString('') # raises error
from pyvalueobjects import Uuid4
# Creation
my_uuid4 = Uuid4('6c7add12-bf35-459e-a6c5-3178a2a33011')
# Getting raw value
my_uuid4.value() # returns -> '6c7add12-bf35-459e-a6c5-3178a2a33011'
from pyvalueobjects import NullableUuid4
# Creation
my_uuid4 = NullableUuid4('6c7add12-bf35-459e-a6c5-3178a2a33011')
my_null_uuid4 = NullableUuid4(None)
# Getting raw value
my_uuid4.value() # returns -> '6c7add12-bf35-459e-a6c5-3178a2a33011'
my_null_uuid4.value() # returns -> 'None'
from pyvalueobjects import IsoDate
# Creation
my_date = IsoDate('2023-08-15T04:55:12.076Z')
# Getting raw value
my_date.value() # returns -> '2023-08-15T04:55:12.076Z'
from pyvalueobjects import ArrayList
from pyvalueobjects import Int
# Creation
my_int_array = ArrayList(Int)([39])
# Getting raw value
my_int_array.value() # returns -> [39]
from pyvalueobjects import ArrayList
from pyvalueobjects import Int
# Creation
my_int_array = ArrayList(Int)([39])
my_null_array = ArrayList(Int)(None)
# Getting raw value
my_int_array.value() # returns -> [39]
my_null_array.value() # returns -> None
from pyvalueobjects import Cve
# Creation
my_cve = Cve('CVE-2014-9418')
# Getting raw value
my_cve.value() # returns -> 'CVE-2014-9418'
from pyvalueobjects import NullableCve
# Creation
my_cve = NullableCve('CVE-2014-9418')
my_null_cve = NullableCve(None)
# Getting raw value
my_cve.value() # returns -> 'CVE-2014-9418'
my_null_cve.value() # returns -> None
from pyvalueobjects import Cpe
# Creation
my_cpe = Cpe('cpe:/a:openjdk:openjdk:8u282')
# Getting raw value
my_cpe.value() # returns -> 'cpe:/a:openjdk:openjdk:8u282'
from pyvalueobjects import NullableCpe
# Creation
my_cpe = NullableCpe('cpe:/a:openjdk:openjdk:8u282')
my_null_cpe = NullableCpe(None)
# Getting raw value
my_cpe.value() # returns -> 'cpe:/a:openjdk:openjdk:8u282'
my_null_cpe.value() # returns -> None
FAQs
A collection of Value Objects to save time by generalizing data type and format validations.
We found that pyvalueobjects demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.

Security News
Socket CEO Feross Aboukhadijeh joins Insecure Agents to discuss CVE remediation and why supply chain attacks require a different security approach.

Security News
Tailwind Labs laid off 75% of its engineering team after revenue dropped 80%, as LLMs redirect traffic away from documentation where developers discover paid products.