[ChatterBot] Use relative imports

pull/49/head
Toby Harradine 6 years ago
parent 5ee1a6a84b
commit d4f3ed3742

@ -2,7 +2,7 @@ from __future__ import unicode_literals
import logging import logging
from chatter.chatterbot import utils from . import utils
class ChatBot(object): class ChatBot(object):
@ -11,7 +11,7 @@ class ChatBot(object):
""" """
def __init__(self, name, **kwargs): def __init__(self, name, **kwargs):
from chatter.chatterbot.logic import MultiLogicAdapter from .logic import MultiLogicAdapter
self.name = name self.name = name
kwargs['name'] = name kwargs['name'] = name
@ -136,7 +136,7 @@ class ChatBot(object):
""" """
Learn that the statement provided is a valid response. Learn that the statement provided is a valid response.
""" """
from chatter.chatterbot.conversation import Response from .conversation import Response
if previous_statement: if previous_statement:
statement.add_response( statement.add_response(

@ -92,7 +92,7 @@ class SynsetDistance(Comparator):
""" """
Download required NLTK corpora if they have not already been downloaded. Download required NLTK corpora if they have not already been downloaded.
""" """
from chatter.chatterbot.utils import nltk_download_corpus from .utils import nltk_download_corpus
nltk_download_corpus('corpora/wordnet') nltk_download_corpus('corpora/wordnet')
@ -100,7 +100,7 @@ class SynsetDistance(Comparator):
""" """
Download required NLTK corpora if they have not already been downloaded. Download required NLTK corpora if they have not already been downloaded.
""" """
from chatter.chatterbot.utils import nltk_download_corpus from .utils import nltk_download_corpus
nltk_download_corpus('tokenizers/punkt') nltk_download_corpus('tokenizers/punkt')
@ -108,7 +108,7 @@ class SynsetDistance(Comparator):
""" """
Download required NLTK corpora if they have not already been downloaded. Download required NLTK corpora if they have not already been downloaded.
""" """
from chatter.chatterbot.utils import nltk_download_corpus from .utils import nltk_download_corpus
nltk_download_corpus('corpora/stopwords') nltk_download_corpus('corpora/stopwords')
@ -124,7 +124,7 @@ class SynsetDistance(Comparator):
""" """
from nltk.corpus import wordnet from nltk.corpus import wordnet
from nltk import word_tokenize from nltk import word_tokenize
from chatter.chatterbot import utils from . import utils
import itertools import itertools
tokens1 = word_tokenize(statement.text.lower()) tokens1 = word_tokenize(statement.text.lower())
@ -177,7 +177,7 @@ class SentimentComparison(Comparator):
Download the NLTK vader lexicon for sentiment analysis Download the NLTK vader lexicon for sentiment analysis
that is required for this algorithm to run. that is required for this algorithm to run.
""" """
from chatter.chatterbot.utils import nltk_download_corpus from .utils import nltk_download_corpus
nltk_download_corpus('sentiment/vader_lexicon') nltk_download_corpus('sentiment/vader_lexicon')
@ -252,7 +252,7 @@ class JaccardSimilarity(Comparator):
Download the NLTK wordnet corpora that is required for this algorithm Download the NLTK wordnet corpora that is required for this algorithm
to run only if the corpora has not already been downloaded. to run only if the corpora has not already been downloaded.
""" """
from chatter.chatterbot.utils import nltk_download_corpus from .utils import nltk_download_corpus
nltk_download_corpus('corpora/wordnet') nltk_download_corpus('corpora/wordnet')

@ -3,9 +3,9 @@ from sqlalchemy.ext.declarative import declared_attr, declarative_base
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from sqlalchemy.sql import func from sqlalchemy.sql import func
from chatter.chatterbot.constants import TAG_NAME_MAX_LENGTH, STATEMENT_TEXT_MAX_LENGTH from ...constants import TAG_NAME_MAX_LENGTH, STATEMENT_TEXT_MAX_LENGTH
from chatter.chatterbot.conversation import StatementMixin from ...conversation import StatementMixin
from chatter.chatterbot.ext.sqlalchemy_app.types import UnicodeString from .types import UnicodeString
class ModelBase(object): class ModelBase(object):
@ -72,8 +72,8 @@ class Statement(Base, StatementMixin):
return [tag.name for tag in self.tags] return [tag.name for tag in self.tags]
def get_statement(self): def get_statement(self):
from chatter.chatterbot.conversation import Statement as StatementObject from ...conversation import Statement as StatementObject
from chatter.chatterbot.conversation import Response as ResponseObject from ...conversation import Response as ResponseObject
statement = StatementObject( statement = StatementObject(
self.text, self.text,

@ -2,8 +2,8 @@ from __future__ import unicode_literals
from time import sleep from time import sleep
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.input import InputAdapter from . import InputAdapter
class Gitter(InputAdapter): class Gitter(InputAdapter):

@ -2,8 +2,8 @@ from __future__ import unicode_literals
from time import sleep from time import sleep
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.input import InputAdapter from . import InputAdapter
class HipChat(InputAdapter): class HipChat(InputAdapter):

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.adapters import Adapter from ..adapters import Adapter
class InputAdapter(Adapter): class InputAdapter(Adapter):

@ -2,8 +2,8 @@ from __future__ import unicode_literals
import datetime import datetime
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.input import InputAdapter from . import InputAdapter
class Mailgun(InputAdapter): class Mailgun(InputAdapter):

@ -2,8 +2,8 @@ from __future__ import unicode_literals
from time import sleep from time import sleep
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.input import InputAdapter from . import InputAdapter
class Microsoft(InputAdapter): class Microsoft(InputAdapter):

@ -1,8 +1,8 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.input import InputAdapter from . import InputAdapter
from chatter.chatterbot.utils import input_function from ..utils import input_function
class TerminalAdapter(InputAdapter): class TerminalAdapter(InputAdapter):

@ -1,7 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.input import InputAdapter from . import InputAdapter
class VariableInputTypeAdapter(InputAdapter): class VariableInputTypeAdapter(InputAdapter):

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.logic import LogicAdapter from . import LogicAdapter
class BestMatch(LogicAdapter): class BestMatch(LogicAdapter):

@ -1,7 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.adapters import Adapter from ..adapters import Adapter
from chatter.chatterbot.utils import import_module from ..utils import import_module
class LogicAdapter(Adapter): class LogicAdapter(Adapter):
@ -18,8 +18,8 @@ class LogicAdapter(Adapter):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super(LogicAdapter, self).__init__(**kwargs) super(LogicAdapter, self).__init__(**kwargs)
from chatter.chatterbot.comparisons import levenshtein_distance from ..comparisons import levenshtein_distance
from chatter.chatterbot.response_selection import get_first_response from ..response_selection import get_first_response
# Import string module parameters # Import string module parameters
if 'statement_comparison_function' in kwargs: if 'statement_comparison_function' in kwargs:

@ -1,7 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.logic import BestMatch from . import BestMatch
class LowConfidenceAdapter(BestMatch): class LowConfidenceAdapter(BestMatch):

@ -1,7 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
from chatter.chatterbot.logic import LogicAdapter from . import LogicAdapter
class MathematicalEvaluation(LogicAdapter): class MathematicalEvaluation(LogicAdapter):

@ -2,8 +2,8 @@ from __future__ import unicode_literals
from collections import Counter from collections import Counter
from chatter.chatterbot import utils from .. import utils
from chatter.chatterbot.logic import LogicAdapter from . import LogicAdapter
class MultiLogicAdapter(LogicAdapter): class MultiLogicAdapter(LogicAdapter):

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.logic import LogicAdapter from . import LogicAdapter
class NoKnowledgeAdapter(LogicAdapter): class NoKnowledgeAdapter(LogicAdapter):

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.logic import LogicAdapter from . import LogicAdapter
class SpecificResponseAdapter(LogicAdapter): class SpecificResponseAdapter(LogicAdapter):
@ -16,7 +16,7 @@ class SpecificResponseAdapter(LogicAdapter):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super(SpecificResponseAdapter, self).__init__(**kwargs) super(SpecificResponseAdapter, self).__init__(**kwargs)
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
self.input_text = kwargs.get('input_text') self.input_text = kwargs.get('input_text')

@ -2,7 +2,7 @@ from __future__ import unicode_literals
from datetime import datetime from datetime import datetime
from chatter.chatterbot.logic import LogicAdapter from . import LogicAdapter
class TimeLogicAdapter(LogicAdapter): class TimeLogicAdapter(LogicAdapter):
@ -81,7 +81,7 @@ class TimeLogicAdapter(LogicAdapter):
return features return features
def process(self, statement): def process(self, statement):
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
now = datetime.now() now = datetime.now()

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.output import OutputAdapter from . import OutputAdapter
class Gitter(OutputAdapter): class Gitter(OutputAdapter):

@ -2,7 +2,7 @@ from __future__ import unicode_literals
import json import json
from chatter.chatterbot.output import OutputAdapter from . import OutputAdapter
class HipChat(OutputAdapter): class HipChat(OutputAdapter):

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.output import OutputAdapter from . import OutputAdapter
class Mailgun(OutputAdapter): class Mailgun(OutputAdapter):

@ -2,7 +2,7 @@ from __future__ import unicode_literals
import json import json
from chatter.chatterbot.output import OutputAdapter from . import OutputAdapter
class Microsoft(OutputAdapter): class Microsoft(OutputAdapter):

@ -1,4 +1,4 @@
from chatter.chatterbot.adapters import Adapter from ..adapters import Adapter
class OutputAdapter(Adapter): class OutputAdapter(Adapter):

@ -1,6 +1,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from chatter.chatterbot.output import OutputAdapter from . import OutputAdapter
class TerminalAdapter(OutputAdapter): class TerminalAdapter(OutputAdapter):

@ -1,4 +1,4 @@
from chatter.chatterbot.storage import StorageAdapter from . import StorageAdapter
class Query(object): class Query(object):
@ -119,7 +119,7 @@ class MongoDatabaseAdapter(StorageAdapter):
""" """
Return the class for the statement model. Return the class for the statement model.
""" """
from chatter.chatterbot.conversation import Statement from ..conversation import Statement
# Create a storage-aware statement # Create a storage-aware statement
statement = Statement statement = Statement
@ -131,7 +131,7 @@ class MongoDatabaseAdapter(StorageAdapter):
""" """
Return the class for the response model. Return the class for the response model.
""" """
from chatter.chatterbot.conversation import Response from ..conversation import Response
# Create a storage-aware response # Create a storage-aware response
response = Response response = Response

@ -1,8 +1,8 @@
from chatter.chatterbot.storage import StorageAdapter from . import StorageAdapter
def get_response_table(response): def get_response_table(response):
from chatter.chatterbot.ext.sqlalchemy_app.models import Response from ..ext.sqlalchemy_app.models import Response
return Response(text=response.text, occurrence=response.occurrence) return Response(text=response.text, occurrence=response.occurrence)
@ -86,28 +86,28 @@ class SQLStorageAdapter(StorageAdapter):
""" """
Return the statement model. Return the statement model.
""" """
from chatter.chatterbot.ext.sqlalchemy_app.models import Statement from ..ext.sqlalchemy_app.models import Statement
return Statement return Statement
def get_response_model(self): def get_response_model(self):
""" """
Return the response model. Return the response model.
""" """
from chatter.chatterbot.ext.sqlalchemy_app.models import Response from ..ext.sqlalchemy_app.models import Response
return Response return Response
def get_conversation_model(self): def get_conversation_model(self):
""" """
Return the conversation model. Return the conversation model.
""" """
from chatter.chatterbot.ext.sqlalchemy_app.models import Conversation from ..ext.sqlalchemy_app.models import Conversation
return Conversation return Conversation
def get_tag_model(self): def get_tag_model(self):
""" """
Return the conversation model. Return the conversation model.
""" """
from chatter.chatterbot.ext.sqlalchemy_app.models import Tag from ..ext.sqlalchemy_app.models import Tag
return Tag return Tag
def count(self): def count(self):
@ -379,14 +379,14 @@ class SQLStorageAdapter(StorageAdapter):
""" """
Drop the database attached to a given adapter. Drop the database attached to a given adapter.
""" """
from chatter.chatterbot.ext.sqlalchemy_app.models import Base from ..ext.sqlalchemy_app.models import Base
Base.metadata.drop_all(self.engine) Base.metadata.drop_all(self.engine)
def create(self): def create(self):
""" """
Populate the database with the tables. Populate the database with the tables.
""" """
from chatter.chatterbot.ext.sqlalchemy_app.models import Base from ..ext.sqlalchemy_app.models import Base
Base.metadata.create_all(self.engine) Base.metadata.create_all(self.engine)
def _session_finish(self, session, statement_text=None): def _session_finish(self, session, statement_text=None):

@ -2,8 +2,8 @@ import logging
import os import os
import sys import sys
from chatter.chatterbot import utils from . import utils
from chatter.chatterbot.conversation import Statement, Response from .conversation import Statement, Response
class Trainer(object): class Trainer(object):
@ -127,7 +127,7 @@ class ChatterBotCorpusTrainer(Trainer):
def __init__(self, storage, **kwargs): def __init__(self, storage, **kwargs):
super(ChatterBotCorpusTrainer, self).__init__(storage, **kwargs) super(ChatterBotCorpusTrainer, self).__init__(storage, **kwargs)
from chatter.chatterbot.corpus import Corpus from .corpus import Corpus
self.corpus = Corpus() self.corpus = Corpus()

@ -11,8 +11,16 @@ def import_module(dotted_path):
import importlib import importlib
module_parts = dotted_path.split('.') module_parts = dotted_path.split('.')
if module_parts[:2] == ["chatter", "chatterbot"]:
# An import path starting with chatter.chatterbot means it comes from this
# package, and should be imported relatively.
package = __package__
module_parts = module_parts[2:]
module_parts[0] = "." + module_parts[0]
else:
package = None
module_path = '.'.join(module_parts[:-1]) module_path = '.'.join(module_parts[:-1])
module = importlib.import_module(module_path) module = importlib.import_module(module_path, package=package)
return getattr(module, module_parts[-1]) return getattr(module, module_parts[-1])
@ -46,7 +54,7 @@ def validate_adapter_class(validate_class, adapter_class):
:raises: Adapter.InvalidAdapterTypeException :raises: Adapter.InvalidAdapterTypeException
""" """
from chatter.chatterbot.adapters import Adapter from .adapters import Adapter
# If a dictionary was passed in, check if it has an import_path attribute # If a dictionary was passed in, check if it has an import_path attribute
if isinstance(validate_class, dict): if isinstance(validate_class, dict):
@ -128,7 +136,7 @@ def remove_stopwords(tokens, language):
Stop words are words like "is, the, a, ..." Stop words are words like "is, the, a, ..."
Be sure to download the required NLTK corpus before calling this function: Be sure to download the required NLTK corpus before calling this function:
- from chatter.chatterbot.utils import nltk_download_corpus - from chatterbot.utils import nltk_download_corpus
- nltk_download_corpus('corpora/stopwords') - nltk_download_corpus('corpora/stopwords')
""" """
from nltk.corpus import stopwords from nltk.corpus import stopwords

Loading…
Cancel
Save