Update ulid-transform to 0.10.1 (#121321)

This commit is contained in:
J. Nick Koston 2024-07-05 14:07:39 -05:00 committed by GitHub
parent 94db251aea
commit 89ffee9ad5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 13 additions and 54 deletions

View File

@ -7,33 +7,16 @@ from functools import lru_cache
import logging import logging
from uuid import UUID from uuid import UUID
from homeassistant.util.ulid import bytes_to_ulid, ulid_to_bytes from homeassistant.util.ulid import ( # noqa: F401
bytes_to_ulid,
bytes_to_ulid_or_none,
ulid_to_bytes,
ulid_to_bytes_or_none,
)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
def ulid_to_bytes_or_none(ulid: str | None) -> bytes | None:
"""Convert an ulid to bytes."""
if ulid is None:
return None
try:
return ulid_to_bytes(ulid)
except ValueError:
_LOGGER.exception("Error converting ulid %s to bytes", ulid)
return None
def bytes_to_ulid_or_none(_bytes: bytes | None) -> str | None:
"""Convert bytes to a ulid."""
if _bytes is None:
return None
try:
return bytes_to_ulid(_bytes)
except ValueError:
_LOGGER.exception("Error converting bytes %s to ulid", _bytes)
return None
@lru_cache(maxsize=16) @lru_cache(maxsize=16)
def uuid_hex_to_bytes_or_none(uuid_hex: str | None) -> bytes | None: def uuid_hex_to_bytes_or_none(uuid_hex: str | None) -> bytes | None:
"""Convert a uuid hex to bytes.""" """Convert a uuid hex to bytes."""

View File

@ -56,7 +56,7 @@ PyYAML==6.0.1
requests==2.32.3 requests==2.32.3
SQLAlchemy==2.0.31 SQLAlchemy==2.0.31
typing-extensions>=4.12.2,<5.0 typing-extensions>=4.12.2,<5.0
ulid-transform==0.9.0 ulid-transform==0.10.1
urllib3>=1.26.5,<2 urllib3>=1.26.5,<2
voluptuous-openapi==0.0.4 voluptuous-openapi==0.0.4
voluptuous-serialize==2.6.0 voluptuous-serialize==2.6.0

View File

@ -4,10 +4,12 @@ from __future__ import annotations
from ulid_transform import ( from ulid_transform import (
bytes_to_ulid, bytes_to_ulid,
bytes_to_ulid_or_none,
ulid_at_time, ulid_at_time,
ulid_hex, ulid_hex,
ulid_now, ulid_now,
ulid_to_bytes, ulid_to_bytes,
ulid_to_bytes_or_none,
) )
__all__ = [ __all__ = [
@ -17,6 +19,8 @@ __all__ = [
"ulid_to_bytes", "ulid_to_bytes",
"bytes_to_ulid", "bytes_to_ulid",
"ulid_now", "ulid_now",
"ulid_to_bytes_or_none",
"bytes_to_ulid_or_none",
] ]

View File

@ -62,7 +62,7 @@ dependencies = [
"requests==2.32.3", "requests==2.32.3",
"SQLAlchemy==2.0.31", "SQLAlchemy==2.0.31",
"typing-extensions>=4.12.2,<5.0", "typing-extensions>=4.12.2,<5.0",
"ulid-transform==0.9.0", "ulid-transform==0.10.1",
# Constrain urllib3 to ensure we deal with CVE-2020-26137 and CVE-2021-33503 # Constrain urllib3 to ensure we deal with CVE-2020-26137 and CVE-2021-33503
# Temporary setting an upper bound, to prevent compat issues with urllib3>=2 # Temporary setting an upper bound, to prevent compat issues with urllib3>=2
# https://github.com/home-assistant/core/issues/97248 # https://github.com/home-assistant/core/issues/97248

View File

@ -37,7 +37,7 @@ PyYAML==6.0.1
requests==2.32.3 requests==2.32.3
SQLAlchemy==2.0.31 SQLAlchemy==2.0.31
typing-extensions>=4.12.2,<5.0 typing-extensions>=4.12.2,<5.0
ulid-transform==0.9.0 ulid-transform==0.10.1
urllib3>=1.26.5,<2 urllib3>=1.26.5,<2
voluptuous==0.15.2 voluptuous==0.15.2
voluptuous-serialize==2.6.0 voluptuous-serialize==2.6.0

View File

@ -944,8 +944,6 @@ async def test_saving_event_invalid_context_ulid(
) )
} }
assert "invalid" in caplog.text
assert len(events) == 1 assert len(events) == 1
assert json_loads(events["test_event"]) == event_data assert json_loads(events["test_event"]) == event_data

View File

@ -15,11 +15,9 @@ from homeassistant.components.recorder.db_schema import (
) )
from homeassistant.components.recorder.models import ( from homeassistant.components.recorder.models import (
LazyState, LazyState,
bytes_to_ulid_or_none,
process_datetime_to_timestamp, process_datetime_to_timestamp,
process_timestamp, process_timestamp,
process_timestamp_to_utc_isoformat, process_timestamp_to_utc_isoformat,
ulid_to_bytes_or_none,
) )
from homeassistant.const import EVENT_STATE_CHANGED from homeassistant.const import EVENT_STATE_CHANGED
import homeassistant.core as ha import homeassistant.core as ha
@ -428,27 +426,3 @@ async def test_process_datetime_to_timestamp_mirrors_utc_isoformat_behavior(
process_datetime_to_timestamp(datetime_hst_timezone) process_datetime_to_timestamp(datetime_hst_timezone)
== dt_util.parse_datetime("2016-07-09T21:00:00+00:00").timestamp() == dt_util.parse_datetime("2016-07-09T21:00:00+00:00").timestamp()
) )
def test_ulid_to_bytes_or_none(caplog: pytest.LogCaptureFixture) -> None:
"""Test ulid_to_bytes_or_none."""
assert (
ulid_to_bytes_or_none("01EYQZJXZ5Z1Z1Z1Z1Z1Z1Z1Z1")
== b"\x01w\xaf\xf9w\xe5\xf8~\x1f\x87\xe1\xf8~\x1f\x87\xe1"
)
assert ulid_to_bytes_or_none("invalid") is None
assert "invalid" in caplog.text
assert ulid_to_bytes_or_none(None) is None
def test_bytes_to_ulid_or_none(caplog: pytest.LogCaptureFixture) -> None:
"""Test bytes_to_ulid_or_none."""
assert (
bytes_to_ulid_or_none(b"\x01w\xaf\xf9w\xe5\xf8~\x1f\x87\xe1\xf8~\x1f\x87\xe1")
== "01EYQZJXZ5Z1Z1Z1Z1Z1Z1Z1Z1"
)
assert bytes_to_ulid_or_none(b"invalid") is None
assert "invalid" in caplog.text
assert bytes_to_ulid_or_none(None) is None