Creates a database.
(self, db_module, keywords)
| 632 | """Database""" |
| 633 | |
| 634 | def __init__(self, db_module, keywords): |
| 635 | """Creates a database.""" |
| 636 | # some DB implementations take optional parameter `driver` to use a |
| 637 | # specific driver module but it should not be passed to `connect`. |
| 638 | keywords.pop("driver", None) |
| 639 | |
| 640 | self.db_module = db_module |
| 641 | self.keywords = keywords |
| 642 | |
| 643 | self._ctx = threadeddict() |
| 644 | # flag to enable/disable printing queries |
| 645 | self.printing = config.get("debug_sql", config.get("debug", False)) |
| 646 | self.supports_multiple_insert = False |
| 647 | |
| 648 | try: |
| 649 | import dbutils # noqa: F401 |
| 650 | |
| 651 | # enable pooling if DBUtils module is available. |
| 652 | self.has_pooling = True |
| 653 | except ImportError: |
| 654 | self.has_pooling = False |
| 655 | |
| 656 | # Pooling can be disabled by passing pooling=False in the keywords. |
| 657 | self.has_pooling = self.keywords.pop("pooling", True) and self.has_pooling |
| 658 | |
| 659 | def _getctx(self): |
| 660 | if not self._ctx.get("db"): |