From 3c855abdf8d07f8b10c8701e94c5aa1aec0172a8 Mon Sep 17 00:00:00 2001 From: "shangkun.yu" Date: Wed, 16 Nov 2022 13:50:03 +0800 Subject: [PATCH] fix: django conf should not be modified --- channels_redis/core.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/channels_redis/core.py b/channels_redis/core.py index 7c04ecd1..c7594c99 100644 --- a/channels_redis/core.py +++ b/channels_redis/core.py @@ -1,6 +1,7 @@ import asyncio import base64 import collections + import functools import hashlib import itertools @@ -11,7 +12,7 @@ import msgpack from redis import asyncio as aioredis - +from copy import deepcopy from channels.exceptions import ChannelFull from channels.layers import BaseChannelLayer @@ -132,9 +133,10 @@ def create_pool(self, index): if "address" in host: return aioredis.ConnectionPool.from_url(host["address"]) elif "master_name" in host: - sentinels = host.pop("sentinels") - master_name = host.pop("master_name") - sentinel_kwargs = host.pop("sentinel_kwargs", None) + host_kwargs = deepcopy(host) + sentinels = host_kwargs.pop("sentinels") + master_name = host_kwargs.pop("master_name") + sentinel_kwargs = host_kwargs.pop("sentinel_kwargs",None) return aioredis.sentinel.SentinelConnectionPool( master_name, aioredis.sentinel.Sentinel(sentinels, sentinel_kwargs=sentinel_kwargs),