annotate roundup/backends/sessions_common.py @ 8594:be128eb0a4e1

chore(ruff): refine imports and spacing fix.
author John Rouillard <rouilj@ieee.org>
date Sat, 25 Apr 2026 18:05:41 -0400
parents b04e44db7d8d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8594
be128eb0a4e1 chore(ruff): refine imports and spacing fix.
John Rouillard <rouilj@ieee.org>
parents: 6825
diff changeset
1 import base64
be128eb0a4e1 chore(ruff): refine imports and spacing fix.
John Rouillard <rouilj@ieee.org>
parents: 6825
diff changeset
2 import logging
6823
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
3
8594
be128eb0a4e1 chore(ruff): refine imports and spacing fix.
John Rouillard <rouilj@ieee.org>
parents: 6825
diff changeset
4 from roundup.anypy import random_
6823
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
5 from roundup.anypy.strings import b2s
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
6
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
7 logger = logging.getLogger('roundup.hyperdb.backend.sessions')
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
8 if not random_.is_weak:
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
9 logger.debug("Importing good random generator")
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
10 else:
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
11 logger.warning("**SystemRandom not available. Using poor random generator")
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
12
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
13
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
14 class SessionCommon:
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
15
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
16 def log_debug(self, msg, *args, **kwargs):
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
17 """Log a message with level DEBUG."""
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
18
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
19 logger = self.get_logger()
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
20 logger.debug(msg, *args, **kwargs)
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
21
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
22 def log_info(self, msg, *args, **kwargs):
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
23 """Log a message with level INFO."""
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
24
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
25 logger = self.get_logger()
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
26 logger.info(msg, *args, **kwargs)
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
27
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
28 def log_warning(self, msg, *args, **kwargs):
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
29 """Log a message with level INFO."""
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
30 logger = self.get_logger()
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
31 logger.warning(msg, *args, **kwargs)
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
32
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
33 def get_logger(self):
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
34 """Return the logger for this database."""
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
35
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
36 # Because getting a logger requires acquiring a lock, we want
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
37 # to do it only once.
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
38 if not hasattr(self, '__logger'):
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
39 self.__logger = logging.getLogger('roundup.hyperdb.backends.%s' %
8594
be128eb0a4e1 chore(ruff): refine imports and spacing fix.
John Rouillard <rouilj@ieee.org>
parents: 6825
diff changeset
40 self.name or "basicdb")
6823
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
41
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
42 return self.__logger
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
43
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
44 def getUniqueKey(self, length=40):
6825
b04e44db7d8d Modify unique token to use url safe characters.
John Rouillard <rouilj@ieee.org>
parents: 6823
diff changeset
45 otk = b2s(base64.urlsafe_b64encode(
6823
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
46 random_.token_bytes(length))).rstrip('=')
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
47 while self.exists(otk):
6825
b04e44db7d8d Modify unique token to use url safe characters.
John Rouillard <rouilj@ieee.org>
parents: 6823
diff changeset
48 otk = b2s(base64.urlsafe_b64encode(
6823
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
49 random_.token_bytes(length))).rstrip('=')
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
50
fe0091279f50 Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
51 return otk

Roundup Issue Tracker: http://roundup-tracker.org/