217a23271cf0e977d97d4f30363fd22f97b7adfe
[modeling/etsicatalog.git] / catalog / pub / redisco / __init__.py
1 #  Copyright (c) 2010 Tim Medina
2 #
3 #  Permission is hereby granted, free of charge, to any person
4 #  obtaining a copy of this software and associated documentation
5 #  files (the "Software"), to deal in the Software without
6 #  restriction, including without limitation the rights to use,
7 #  copy, modify, merge, publish, distribute, sublicense, and/or sell
8 #  copies of the Software, and to permit persons to whom the
9 #  Software is furnished to do so, subject to the following
10 #  conditions:
11 #
12 #  The above copyright notice and this permission notice shall be
13 #  included in all copies or substantial portions of the Software.
14 #
15 #  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 #  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 #  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 #  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 #  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 #  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 #  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 #  OTHER DEALINGS IN THE SOFTWARE.
23 #
24 #  The original code link is https://github.com/iamteem/redisco/tree/master/redisco/__init__.py
25
26
27 import redis
28
29
30 class Client(object):
31     def __init__(self, **kwargs):
32         self.connection_settings = kwargs or {'host': 'localhost', 'port': 6379, 'db': 0}
33
34     def redis(self):
35         return redis.Redis(**self.connection_settings)
36
37     def update(self, d):
38         self.connection_settings.update(d)
39
40
41 def connection_setup(**kwargs):
42     global connection, client
43     if client:
44         client.update(kwargs)
45     else:
46         client = Client(**kwargs)
47     connection = client.redis()
48
49
50 def get_client():
51     global connection
52     return connection
53
54
55 client = Client()
56 connection = client.redis()
57
58 __all__ = ['connection_setup', 'get_client']