Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_get_random_no_data(self):
from chatterbot.storage import StorageAdapter
with self.assertRaises(StorageAdapter.EmptyDatabaseException):
self.adapter.get_random()
def test_get_random_no_data(self):
from chatterbot.storage import StorageAdapter
with self.assertRaises(StorageAdapter.EmptyDatabaseException):
self.adapter.get_random()
def setUpClass(cls):
cls.adapter = StorageAdapter()
def test_get_random_no_data(self):
from chatterbot.storage import StorageAdapter
with self.assertRaises(StorageAdapter.EmptyDatabaseException):
self.adapter.get_random()
def __init__(self, name, **kwargs):
self.name = name
storage_adapter = kwargs.get('storage_adapter', 'chatterbot.storage.SQLStorageAdapter')
logic_adapters = kwargs.get('logic_adapters', [
'chatterbot.logic.BestMatch'
])
# Check that each adapter is a valid subclass of it's respective parent
utils.validate_adapter_class(storage_adapter, StorageAdapter)
# Logic adapters used by the chat bot
self.logic_adapters = []
self.storage = utils.initialize_class(storage_adapter, **kwargs)
primary_search_algorithm = IndexedTextSearch(self, **kwargs)
text_search_algorithm = TextSearch(self, **kwargs)
self.search_algorithms = {
primary_search_algorithm.name: primary_search_algorithm,
text_search_algorithm.name: text_search_algorithm
}
for adapter in logic_adapters:
utils.validate_adapter_class(adapter, LogicAdapter)
from chatterbot.storage import StorageAdapter
class SQLStorageAdapter(StorageAdapter):
"""
The SQLStorageAdapter allows ChatterBot to store conversation
data in any database supported by the SQL Alchemy ORM.
All parameters are optional, by default a sqlite database is used.
It will check if tables are present, if they are not, it will attempt
to create the required tables.
:keyword database_uri: eg: sqlite:///database_test.sqlite3',
The database_uri can be specified to choose database driver.
:type database_uri: str
"""
def __init__(self, **kwargs):
super().__init__(**kwargs)
import warnings
from chatterbot.storage import StorageAdapter
from chatterbot.conversation import Response
class JsonFileStorageAdapter(StorageAdapter):
"""
This adapter allows ChatterBot to store conversation
data in a file in JSON format.
:keyword database: The path to the json file you wish to store data in.
:type database: str
:keyword silence_performance_warning: If set to True, the :code:`UnsuitableForProductionWarning`
will not be displayed.
:type silence_performance_warning: bool
"""
def __init__(self, **kwargs):
super(JsonFileStorageAdapter, self).__init__(**kwargs)
from jsondb import Database
from chatterbot.storage import StorageAdapter
from chatterbot import constants
class DjangoStorageAdapter(StorageAdapter):
"""
Storage adapter that allows ChatterBot to interact with
Django storage backends.
"""
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.django_app_name = kwargs.get(
'django_app_name',
constants.DEFAULT_DJANGO_APP_NAME
)
def get_statement_model(self):
from django.apps import apps
return apps.get_model(self.django_app_name, 'Statement')
if '$elemMatch' not in query['in_response_to']:
query['in_response_to']['$elemMatch'] = {}
query['in_response_to']['$elemMatch']['text'] = statement_text
return Query(query)
def statement_response_list_equals(self, response_list):
query = self.query.copy()
query['in_response_to'] = response_list
return Query(query)
class MongoDatabaseAdapter(StorageAdapter):
"""
The MongoDatabaseAdapter is an interface that allows
ChatterBot to store statements in a MongoDB database.
:keyword database: The name of the database you wish to connect to.
:type database: str
.. code-block:: python
database='chatterbot-database'
:keyword database_uri: The URI of a remote instance of MongoDB.
:type database_uri: str
.. code-block:: python
if '$elemMatch' not in query['in_response_to']:
query['in_response_to']['$elemMatch'] = {}
query['in_response_to']['$elemMatch']['text'] = statement_text
return Query(query)
def statement_response_list_equals(self, response_list):
query = self.query.copy()
query['in_response_to'] = response_list
return Query(query)
class MongoDatabaseAdapter(StorageAdapter):
"""
The MongoDatabaseAdapter is an interface that allows
ChatterBot to store statements in a MongoDB database.
:keyword database: The name of the database you wish to connect to.
:type database: str
.. code-block:: python
database='chatterbot-database'
:keyword database_uri: The URI of a remote instance of MongoDB.
:type database_uri: str
.. code-block:: python