diff --git a/src/apify_shared/utils.py b/src/apify_shared/utils.py index 11e697e..013e30b 100644 --- a/src/apify_shared/utils.py +++ b/src/apify_shared/utils.py @@ -4,6 +4,7 @@ import io import json import re +import secrets from datetime import datetime, timezone from enum import Enum from typing import Any, TypeVar, cast @@ -115,3 +116,9 @@ def parse(key: str, value: object) -> object: return {key: parse(key, value) for (key, value) in data.items()} return data + +@ignore_docs +def crypto_random_object_id(length: int = 17) -> str: + """Generates a random object ID.""" + chars = 'abcdefghijklmnopqrstuvwxyzABCEDFGHIJKLMNOPQRSTUVWXYZ0123456789' + return ''.join(secrets.choice(chars) for _ in range(length))