Django-cachalot

Latest version: v2.7.0

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 9

1.0.1

-----

- Fixes an invalidation issue discovered by Helen Warren that was occurring
when updating a ``ManyToManyField`` after executing using ``.exclude``
on that relation. For example, ``Permission.objects.all().delete()`` was not
invalidating ``User.objects.exclude(user_permissions=None)``
- Fixes a ``UnicodeDecodeError`` introduced with python-memcached 1.54
- Adds a ``post_invalidation`` signal

1.0.0

-----

Fixes a bug occurring when caching a SQL query using a non-ascii table name.

1.0.0rc

-------

Added:

- Adds an `invalidate_cachalot` command to invalidate django-cachalot
from a script without having to clear the whole cache
- Adds the benchmark introduction, conditions & results to the documentation
- Adds a short guide on how to configure Redis as a LRU cache

Fixed:

- Fixes a rare invalidation issue occurring when updating a many-to-many table
after executing a queryset generating a ``HAVING`` SQL statement –
for example,
``User.objects.first().user_permissions.add(Permission.objects.first())``
was not invalidating
``User.objects.annotate(n=Count('user_permissions')).filter(n__gte=1)``
- Fixes an even rarer invalidation issue occurring when updating a many-to-many
table after executing a queryset filtering nested subqueries
by another subquery through that many-to-many table – for example::

User.objects.filter(
pk__in=User.objects.filter(
pk__in=User.objects.filter(
user_permissions__in=Permission.objects.all())))

- Avoids setting useless cache keys by using table names instead of
Django-generated table alias

0.9.0

-----

Added:

- Caches all queries implying ``Queryset.extra``
- Invalidates raw queries
- Adds a simple API containing:
``invalidate_tables``, ``invalidate_models``, ``invalidate_all``
- Adds file-based cache support for Django 1.7
- Adds a setting to choose if random queries must be cached
- Adds 2 settings to customize how cache keys are generated
- Adds a django-debug-toolbar panel
- Adds a benchmark

Fixed:

- Rewrites invalidation for a better speed & memory performance
- Fixes a stale cache issue occurring when an invalidation is done
exactly during a SQL request on the invalidated table(s)
- Fixes a stale cache issue occurring after concurrent transactions
- Uses an infinite timeout

Removed:

- Simplifies ``cachalot_settings`` and forbids its use or modification

0.8.1

-----

- Fixes an issue with pip if Django is not yet installed

0.8.0

-----

- Adds multi-database support
- Adds invalidation when altering the DB schema using `migrate`, `syncdb`,
`flush`, `loaddata` commands (also invalidates South, if you use it)
- Small optimizations & simplifications
- Adds several tests

Page 7 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.