Spaces:
Runtime error
Runtime error
File size: 1,198 Bytes
82a7a28 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import hashlib
from typing import Union
AgentOrWorld = Union["TinyPerson", "TinyWorld"]
################################################################################
# Other
################################################################################
def name_or_empty(named_entity: AgentOrWorld):
"""
Returns the name of the specified agent or environment, or an empty string if the agent is None.
"""
if named_entity is None:
return ""
else:
return named_entity.name
def custom_hash(obj):
"""
Returns a hash for the specified object. The object is first converted
to a string, to make it hashable. This method is deterministic,
contrary to the built-in hash() function.
"""
return hashlib.sha256(str(obj).encode()).hexdigest()
_fresh_id_counter = 0
def fresh_id():
"""
Returns a fresh ID for a new object. This is useful for generating unique IDs for objects.
"""
global _fresh_id_counter
_fresh_id_counter += 1
return _fresh_id_counter
def reset_fresh_id():
"""
Resets the fresh ID counter. This is useful for testing purposes.
"""
global _fresh_id_counter
_fresh_id_counter = 0
|