caching

assert _is_obj_str(str(object()))
assert _is_obj_str("<__main__.Foo at 0x120f36b10>")
assert _is_obj_str("<pkg.subpkg.Mod.Class object at 0xDEAD>")
assert _is_obj_str("<Foo at 0x120f36b10>")
assert _is_obj_str("  <Foo at 0x120f36b10> <pkg.subpkg.Mod.Class object at 0xDEAD>")
assert _is_obj_str("  <Foo at 0x120f36b10>  ")
assert not _is_obj_str("<__main__.Foo at xyz>")                  

get_cache_key

get_cache_key(
   model: str,
   func_name,
   content: any,
   key_prefix: Union[str, None],
   include_model_in_cache_key: bool
) -> tuple