Mercurial > p > roundup > code
view roundup/backends/sessions_common.py @ 7698:4e37a7833708
doc: add FTS5 requirement for sqlite backend.
Document the requirement for FTS5 if you are using the sqlite backend.
Tonu Mikk reported issues with using a SQLite that was missing FTS5
support (RedHat 7 sqlite with python 3.6). Even though FTS5 has been
in the sqlite amalgamation since 2015-10-14 (v3.9.0) RedHat chose to
not build their package with that. This leads to a traceback when
initializing the database.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 11 Nov 2023 19:39:57 -0500 |
| parents | b04e44db7d8d |
| children |
line wrap: on
line source
import base64, logging import roundup.anypy.random_ as random_ from roundup.anypy.strings import b2s logger = logging.getLogger('roundup.hyperdb.backend.sessions') if not random_.is_weak: logger.debug("Importing good random generator") else: logger.warning("**SystemRandom not available. Using poor random generator") class SessionCommon: def log_debug(self, msg, *args, **kwargs): """Log a message with level DEBUG.""" logger = self.get_logger() logger.debug(msg, *args, **kwargs) def log_info(self, msg, *args, **kwargs): """Log a message with level INFO.""" logger = self.get_logger() logger.info(msg, *args, **kwargs) def log_warning(self, msg, *args, **kwargs): """Log a message with level INFO.""" logger = self.get_logger() logger.warning(msg, *args, **kwargs) def get_logger(self): """Return the logger for this database.""" # Because getting a logger requires acquiring a lock, we want # to do it only once. if not hasattr(self, '__logger'): self.__logger = logging.getLogger('roundup.hyperdb.backends.%s' % self.name or "basicdb" ) return self.__logger def getUniqueKey(self, length=40): otk = b2s(base64.urlsafe_b64encode( random_.token_bytes(length))).rstrip('=') while self.exists(otk): otk = b2s(base64.urlsafe_b64encode( random_.token_bytes(length))).rstrip('=') return otk
