Django-->TypeError: __init__() got an unexpected keyword argument 'providing_args'

Viewed 27

I'm running my django-app-api server on docker and I'm stuck at a particular place. The server doesnt spawn due to the following error :

TypeError: init() got an unexpected keyword argument 'providing_args'

I'm getting the following error trace while running my django-api docker container using docker-compose

myproject-api-webserver         | 2022-09-23 11:09:26,477 myprojectnetwork.settings INFO     ALLOWED_HOSTS environment variable ignored.
myproject-api-webserver         | Traceback (most recent call last):
myproject-api-webserver         |   File "manage.py", line 25, in <module>
myproject-api-webserver         |     execute_from_command_line(sys.argv)
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
myproject-api-webserver         |     utility.execute()
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 420, in execute
myproject-api-webserver         |     django.setup()
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
myproject-api-webserver         |     apps.populate(settings.INSTALLED_APPS)
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
myproject-api-webserver         |     app_config = AppConfig.create(entry)
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/django/apps/config.py", line 193, in create
myproject-api-webserver         |     import_module(entry)
myproject-api-webserver         |   File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
myproject-api-webserver         |     return _bootstrap._gcd_import(name[level:], package, level)
myproject-api-webserver         |   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
myproject-api-webserver         |   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
myproject-api-webserver         |   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
myproject-api-webserver         |   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
myproject-api-webserver         |   File "<frozen importlib._bootstrap_external>", line 843, in exec_module
myproject-api-webserver         |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/cacheops/__init__.py", line 8, in <module>
myproject-api-webserver         |     from .query import *
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/cacheops/query.py", line 31, in <module>
myproject-api-webserver         |     from .invalidation import invalidate_obj, invalidate_dict, no_invalidation
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/cacheops/invalidation.py", line 10, in <module>
myproject-api-webserver         |     from .signals import cache_invalidated
myproject-api-webserver         |   File "/usr/local/lib/python3.8/site-packages/cacheops/signals.py", line 3, in <module>
myproject-api-webserver         |     cache_read = django.dispatch.Signal(providing_args=["func", "hit"])
myproject-api-webserver         | TypeError: __init__() got an unexpected keyword argument 'providing_args'

My Django version==4.1.1 & Django CacheOps==6.0.0

I've mentioned the Django & Django CacheOps since I believe this could be due to version mismatch and subsequent changes that have to made, but I do not know where to make the changes. Also note that , the moment I upgrade to django-cacheops==6.1.0 (latest) , i get the following error which I have posted as a different question.

Django rest-api - attributeerror: 'str' object has no attribute '_meta'

1 Answers

It really looks like the cacheops package in version 6.0.0 still passes a keyword argument providing_args that was apparently supported up to Django 2.2 (docs), but definitely no longer in the current Django 4.1 (docs). Cacheops fixed this on 2021-02-19 (github commit), so you definitely need a version newer than that.

Related