Caching
Cache management utilities for Guardrail objects.
This module provides functions for efficient type-annotated retrieval and caching of Guardrail querysets. It includes utilities to:
Retrieve and cache Guardrails owned by a user profile
Retrieve and cache Guardrails shared with a user profile
Retrieve and cache Guardrails available to a user profile (owned or shared)
Invalidate caches for owned, shared, and available Guardrails
Invalidate all Guardrail-related caches for a user profile
Functions:
get_cached_guardrails_owned_by_user_profile(user_profile)
invalidate_cached_guardrails_owned_by_user_profile(user_profile)
get_cached_guardrails_shared_with_user_profile(user_profile)
invalidate_cached_guardrails_shared_with_user_profile(user_profile)
get_cached_guardrails_available_to_user_profile(user_profile)
invalidate_cached_guardrails_available_to_user_profile(user_profile)
invalidate_all_cached_guardrails_for_user_profile(user_profile)
Dependencies:
Django ORM
smarter.lib.cache.cache_results
smarter.apps.account.models.user_profile.UserProfile
smarter.apps.guardrail.models.Guardrail
smarter.apps.guardrail.serializers.GuardrailSerializer
- smarter.apps.guardrail.caching.get_cached_guardrails_available_to_user_profile(user_profile)[source]
Retrieve the Guardrails available to the given UserProfile, using caching to optimize performance.
This function returns a queryset of Guardrail objects that are available to the specified user profile, which may include both owned and shared Guardrails. The results are cached to reduce database queries and improve performance. If the cache is invalidated, the queryset is fetched from the database again and re-cached.
- Parameters:
user_profile (
UserProfile) – The user profile whose available Guardrails should be retrieved.- Returns:
A Django queryset containing the Guardrail objects available to the user.
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> available_guardrails = get_cached_guardrails_available_to_user_profile(user_profile) >>> for bot in available_guardrails: ... print(bot.name)
See also
invalidate_cached_guardrails_available_to_user_profile()- Invalidate the cache for available Guardrails of a user profile.
- smarter.apps.guardrail.caching.get_cached_guardrails_owned_by_user_profile(user_profile)[source]
Retrieve the Guardrails owned by the given UserProfile, using caching to optimize performance.
This function returns a queryset of Guardrail objects that are owned by the specified user profile. The results are cached to reduce database queries and improve performance. If the cache is invalidated, the queryset is fetched from the database again and re-cached.
- Parameters:
user_profile (
UserProfile) – The user profile whose owned Guardrails should be retrieved.- Returns:
A Django queryset containing the Guardrail objects owned by the user.
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> guardrails = get_cached_guardrails_owned_by_user_profile(user_profile) >>> for bot in guardrails: ... print(bot.name)
See also
invalidate_cached_guardrails_owned_by_user_profile()- Invalidate the cache for owned Guardrails of a user profile.
Retrieve the Guardrails shared with the given UserProfile, using caching to optimize performance.
This function returns a queryset of Guardrail objects that are shared with the specified user profile. The results are cached to reduce database queries and improve performance. If the cache is invalidated, the queryset is fetched from the database again and re-cached.
- Parameters:
user_profile (
UserProfile) – The user profile whose shared Guardrails should be retrieved.- Returns:
A Django queryset containing the Guardrail objects shared with the user.
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> shared_guardrails = get_cached_guardrails_shared_with_user_profile(user_profile) >>> for bot in shared_guardrails: ... print(bot.name)
See also
invalidate_cached_guardrails_shared_with_user_profile()- Invalidate the cache for shared Guardrails of a user profile.
- smarter.apps.guardrail.caching.invalidate_all_cached_guardrails_for_user_profile(user_profile)[source]
Invalidate all cached Guardrail querysets related to the given UserProfile.
This function invalidates the caches for all Guardrail querysets that are related to the specified user profile, including owned, shared, and available Guardrails. This is useful when a change occurs that may affect any of these querysets, ensuring that subsequent calls will fetch fresh data from the database.
- Parameters:
user_profile (
UserProfile) – The user profile for which to invalidate cached Guardrail querysets.- Returns:
None
- Return type:
>>> user_profile = UserProfile.objects.get(pk=1) >>> invalidate_all_cached_guardrails_for_user_profile(user_profile)
See also
invalidate_cached_guardrails_owned_by_user_profile()- Invalidate the cache for owned Guardrails of a user profile.invalidate_cached_guardrails_shared_with_user_profile()- Invalidate the cache for shared Guardrails of a user profile.invalidate_cached_guardrails_available_to_user_profile()- Invalidate the cache for available Guardrails of a user profile.
- smarter.apps.guardrail.caching.invalidate_cached_guardrails_available_to_user_profile(user_profile)[source]
- Return type:
- smarter.apps.guardrail.caching.invalidate_cached_guardrails_owned_by_user_profile(user_profile)[source]
- Return type:
- Return type: