gunthercox/ChatterBot

View on GitHub
chatterbot/parsing.py

Summary

Maintainability
F
1 wk
Test Coverage

File parsing.py has 690 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import re
from datetime import timedelta, datetime
import calendar

# Variations of dates that the parser can capture
Severity: Major
Found in chatterbot/parsing.py - About 1 day to fix

    Function date_from_relative_week_year has a Cognitive Complexity of 28 (exceeds 5 allowed). Consider refactoring.
    Open

    def date_from_relative_week_year(base_date, time, dow, ordinal=1):
        """
        Converts relative day to time
        Eg. this tuesday, last tuesday
        """
    Severity: Minor
    Found in chatterbot/parsing.py - About 4 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function date_from_duration has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
    Open

    def date_from_duration(base_date, number_as_string, unit, duration, base_time=None):
        """
        Find dates from duration
        Eg: 20 days from now
        Currently does not support strings like "20 days from last monday".
    Severity: Minor
    Found in chatterbot/parsing.py - About 1 hr to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function date_from_duration has 5 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    def date_from_duration(base_date, number_as_string, unit, duration, base_time=None):
    Severity: Minor
    Found in chatterbot/parsing.py - About 35 mins to fix

      Function datetime_parsing has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
      Open

      def datetime_parsing(text, base_date=datetime.now()):
          """
          Extract datetime objects from a string of text.
          """
          matches = []
      Severity: Minor
      Found in chatterbot/parsing.py - About 35 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Avoid too many return statements within this function.
      Open

                  return datetime(
      Severity: Major
      Found in chatterbot/parsing.py - About 30 mins to fix

        Avoid too many return statements within this function.
        Open

                    return relative_date - timedelta(weeks=1)
        Severity: Major
        Found in chatterbot/parsing.py - About 30 mins to fix

          Avoid too many return statements within this function.
          Open

                      return relative_date
          Severity: Major
          Found in chatterbot/parsing.py - About 30 mins to fix

            Avoid too many return statements within this function.
            Open

                        return datetime(relative_date.year, relative_date.month, relative_date.day)
            Severity: Major
            Found in chatterbot/parsing.py - About 30 mins to fix

              Avoid too many return statements within this function.
              Open

                              return datetime(year, month, day)
              Severity: Major
              Found in chatterbot/parsing.py - About 30 mins to fix

                Avoid too many return statements within this function.
                Open

                            return relative_date + timedelta(weeks=ord)
                Severity: Major
                Found in chatterbot/parsing.py - About 30 mins to fix

                  Avoid too many return statements within this function.
                  Open

                              return relative_date - timedelta(days=relative_date.weekday())
                  Severity: Major
                  Found in chatterbot/parsing.py - About 30 mins to fix

                    Avoid too many return statements within this function.
                    Open

                                return datetime(relative_date.year, relative_date.month - 1, relative_date.day)
                    Severity: Major
                    Found in chatterbot/parsing.py - About 30 mins to fix

                      Avoid too many return statements within this function.
                      Open

                                  return relative_date - timedelta(days=1)
                      Severity: Major
                      Found in chatterbot/parsing.py - About 30 mins to fix

                        Avoid too many return statements within this function.
                        Open

                                        return datetime(relative_date.year, relative_date.month + ord, relative_date.day)
                        Severity: Major
                        Found in chatterbot/parsing.py - About 30 mins to fix

                          Avoid too many return statements within this function.
                          Open

                                      return datetime(relative_date.year, relative_date.month, relative_date.day, 23, 59, 59)
                          Severity: Major
                          Found in chatterbot/parsing.py - About 30 mins to fix

                            Avoid too many return statements within this function.
                            Open

                                        return relative_date + timedelta(days=ord)
                            Severity: Major
                            Found in chatterbot/parsing.py - About 30 mins to fix

                              Avoid too many return statements within this function.
                              Open

                                          return day_of_week + timedelta(days=6 - relative_date.weekday())
                              Severity: Major
                              Found in chatterbot/parsing.py - About 30 mins to fix

                                Similar blocks of code found in 2 locations. Consider refactoring.
                                Open

                                        re.compile(
                                            r'''
                                            (
                                                ((?P<dow>%s)[,\s]\s*)? #Matches Monday, 12 Jan 2012, 12 Jan 2012 etc
                                                (?P<day>\d{1,2}) # Matches a digit
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 1 day to fix
                                chatterbot/parsing.py on lines 173..194

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 146.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Similar blocks of code found in 2 locations. Consider refactoring.
                                Open

                                        re.compile(
                                            r'''
                                            (
                                                ((?P<dow>%s)[,\s][-\s]*)? #Matches Monday, Jan 12 2012, Jan 12 2012 etc
                                                (?P<month>%s) # Matches any month name
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 1 day to fix
                                chatterbot/parsing.py on lines 147..169

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 146.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Identical blocks of code found in 2 locations. Consider refactoring.
                                Open

                                        lambda m, base_date: datetime(
                                            int(m.group('year') if m.group('year') else base_date.year),
                                            int(HASHMONTHS[m.group('month').lower()] if m.group('month') else 1),
                                            int(m.group('ordinal_value') if m.group('ordinal_value') else 1),
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 5 hrs to fix
                                chatterbot/parsing.py on lines 298..301

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 92.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Identical blocks of code found in 2 locations. Consider refactoring.
                                Open

                                        lambda m, base_date: datetime(
                                            int(m.group('year') if m.group('year') else base_date.year),
                                            int(HASHMONTHS[m.group('month').lower()] if m.group('month') else 1),
                                            int(m.group('ordinal_value') if m.group('ordinal_value') else 1),
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 5 hrs to fix
                                chatterbot/parsing.py on lines 279..282

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 92.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Similar blocks of code found in 2 locations. Consider refactoring.
                                Open

                                        re.compile(
                                            r'''
                                            (
                                                (?P<month>%s) # Month, day
                                                [-\s] # One or more space
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 5 hrs to fix
                                chatterbot/parsing.py on lines 347..361

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 86.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Similar blocks of code found in 2 locations. Consider refactoring.
                                Open

                                        re.compile(
                                            r'''
                                            (
                                                (?P<day>\d{1,2}) # Day, Month
                                                (%s)
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 5 hrs to fix
                                chatterbot/parsing.py on lines 365..379

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 86.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Similar blocks of code found in 2 locations. Consider refactoring.
                                Open

                                HASHMONTHS = {
                                    'january': 1,
                                    'jan': 1,
                                    'february': 2,
                                    'feb': 2,
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 2 hrs to fix
                                chatterbot/parsing.py on lines 117..140

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 53.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Similar blocks of code found in 2 locations. Consider refactoring.
                                Open

                                HASHORDINALS = {
                                    'zeroth': 0,
                                    'first': 1,
                                    'second': 2,
                                    'third': 3,
                                Severity: Major
                                Found in chatterbot/parsing.py and 1 other location - About 2 hrs to fix
                                chatterbot/parsing.py on lines 72..95

                                Duplicated Code

                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                Tuning

                                This issue has a mass of 53.

                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                Refactorings

                                Further Reading

                                Line too long (87 > 79 characters)
                                Open

                                                ((?P<dow>%s)[,\s][-\s]*)? #Matches Monday, Jan 12 2012, Jan 12 2012 etc
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (87 > 79 characters)
                                Open

                                            ''' % (day_names, month_names, re_ordinal, re_year, re_separator, re_time),
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (81 > 79 characters)
                                Open

                                            int(HASHMONTHS[m.group('month').lower()] if m.group('month') else 1),
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (91 > 79 characters)
                                Open

                                    'january|february|march|april|may|june|july|august|september|october|november|december'
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (120 > 79 characters)
                                Open

                                re_dmy = '(' + '|'.join(day_variations + minute_variations + year_variations + week_variations + month_variations) + ')'
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (81 > 79 characters)
                                Open

                                            int(HASHMONTHS[m.group('month').lower()] if m.group('month') else 1),
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (97 > 79 characters)
                                Open

                                                return datetime(relative_date.year, relative_date.month + ord, relative_date.day)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (91 > 79 characters)
                                Open

                                            ''' % (numbers, re_dmy, re_duration, day_nearest_names, re_separator, re_time),
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (91 > 79 characters)
                                Open

                                            return datetime(base_date.year + args['years'], base_date.month, base_date.day)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (103 > 79 characters)
                                Open

                                re_time = r'(?P<hour>\d{1,2})(?=\s?(\:\d|(a|p)m))(\:(?P<minute>\d{1,2}))?(\s?(?P<convention>(am|pm)))?'
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (84 > 79 characters)
                                Open

                                def date_from_duration(base_date, number_as_string, unit, duration, base_time=None):
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (82 > 79 characters)
                                Open

                                    num_list = map(lambda s: NUMBERS[s], re.findall(numbers + '+', value.lower()))
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (92 > 79 characters)
                                Open

                                            '(?!<TAG[^>]*?>)' + match + '(?![^<]*?</TAG>)', '<TAG>' + match + '</TAG>', text
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (97 > 79 characters)
                                Open

                                                ((?P<number>\d+|(%s[-\s]?)+)\s)? # Matches any number or string 25 or twenty five
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (85 > 79 characters)
                                Open

                                            matches.append((match.group(), function(match, base_date), match.span()))
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (81 > 79 characters)
                                Open

                                                day = min(relative_date.day, calendar.monthrange(year, month)[1])
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (91 > 79 characters)
                                Open

                                            return datetime(relative_date.year, relative_date.month - 1, relative_date.day)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (99 > 79 characters)
                                Open

                                            return datetime(relative_date.year, relative_date.month, relative_date.day, 23, 59, 59)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (100 > 79 characters)
                                Open

                                # Start with the widest match and narrow it down because the order of the match in this list matters
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (84 > 79 characters)
                                Open

                                                ((?P<dow>%s)[,\s]\s*)? #Matches Monday, 12 Jan 2012, 12 Jan 2012 etc
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (87 > 79 characters)
                                Open

                                            return datetime(relative_date.year, relative_date.month, relative_date.day)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (83 > 79 characters)
                                Open

                                month_names = month_names_long + '|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec'
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (87 > 79 characters)
                                Open

                                            ''' % (day_names, re_ordinal, month_names, re_year, re_separator, re_time),
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (85 > 79 characters)
                                Open

                                        return adverb_date.today().replace(hour=0, minute=0, second=0, microsecond=0)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                Line too long (91 > 79 characters)
                                Open

                                            return datetime(base_date.year - args['years'], base_date.month, base_date.day)
                                Severity: Minor
                                Found in chatterbot/parsing.py by pep8

                                Limit all lines to a maximum of 79 characters.

                                There are still many devices around that are limited to 80 character
                                lines; plus, limiting windows to 80 characters makes it possible to have
                                several windows side-by-side.  The default wrapping on such devices looks
                                ugly.  Therefore, please limit all lines to a maximum of 79 characters.
                                For flowing long blocks of text (docstrings or comments), limiting the
                                length to 72 characters is recommended.
                                
                                Reports error E501.

                                There are no issues that match your filters.

                                Category
                                Status