Skip to content

Releases: aichaos/rivescript-python

1.15.0 - Apr 9, 2020

10 Apr 00:20
Choose a tag to compare


1.15.0 - Mar 29 2020

This release provides a major (~5x) speedup for RiveScripts that have
a large number of substitutions, and also fixes the following issues:

  • Add a prepare_brain_transplant method to clear the RiveScript brain
    in preparation to load in a new one, while optionally preserving
    much of the current state (enh #81)
  • Implement the trigger_info method (bug #120)
  • Fix the issue of a "=" appearing in a variable value (bug #130)
  • Allow nested brackets (bug #132)
  • Fix trigger sorting to only count the existance of stars, optionals,
    etc. instead of how many there are in a trigger (bug #133)
  • Fix the debug message for incomment (bug #138)
  • Fix substitutions if they occur more than 3 times on a line (bug #140)
  • Fix crash in set_substitution method (bug #142)
  • Fix issue in set_person method (bug #143)
  • Significantly improve code coverage of tests (add

1.14.9 - Sept 21 2017

21 Sep 18:29
Choose a tag to compare


This release fixes some regular expressions and adds better Unicode
compatibility for trigger matching.

  • Fix the regexp that matches {weight} tags in replies to use
    instead of re.match(). This ensures that random replies are chosen with the
    correct weighting applied (bug #102; PR #106)
  • Fix the way arrays are interpolated into triggers so that array names are
    now allowed to contain underscores (bug #101; PR #107)
  • Fix Unicode handling in regular expressions by using the re.UNICODE flag.
    This allows for a trigger containing optionals, like [*], to match
    correctly when adjacent to Unicode symbols such as umlauts (bug #37; PR #108)

1.14.8 - Sept 5 2017

05 Sep 19:39
Choose a tag to compare


This release focuses on bug fixes and backwards compatible improvements.

  • Improvements to the new trigger sorting algorithm:
    • Triggers containing no text (wildcards only) are sorted nearer to the end
      (bug #94)
  • Trigger components containing an empty string between pipes (e.g. [|]) now
    raises a syntax error at parsing time (bug #87)
  • Fix the parsing of ^ when used on a +Trigger not being fully evaluated
    before syntax checking for the trigger was done (bug #86)
  • Remove extra space characters inside optionals (bug #98)
  • Improve the syntax checker by having it raise errors when certain "tag
    characters" are mismatched or opened and closed in the wrong order -- for
    example {<}> (PR #103)
  • Fix the deparse() and write() functions so they work again with the
    latest version of RiveScript (bug #76)

1.14.7 - May 19 2017

19 May 18:06
Choose a tag to compare


  • Various fixes and improvements that catch RiveScript-Python up with the other
    implementations, to pass the RiveScript Test Suite (PR #89):
    • Implement arrays in replies -- so you could write a reply like
      My favorite color is (@colors) and the array gets expanded to a random
      item from the !array by the same name.
    • Fix the regexp for {weight} tag removal so that it still works if you
      include extra spaces on either end of the tag.
    • Fix the _ wildcard to allow matching Unicode letters.
    • Fix division with the <div> tag to use integer division for Python 3.
  • Improvements to the trigger sorting algorithm:
    • Add special handling so that a trigger of [*] gets sorted above the
      usual catch-all trigger of * (PR #92)
    • Fix a logic bug with bitwise operators for handling the case that a trigger
      contains * wildcards but does not contain any optionals or wildcards of
      different types (bug #90, PR #91)

1.14.6 - March 23 2017

23 Mar 17:38
Choose a tag to compare


  • Fix regexp for validating RiveScript syntax to use instead of
    re.match (bug #82).
  • Allow object macros to contain capital letters in their names (PR #83).

1.14.5 - February 20, 2017

21 Feb 03:58
Choose a tag to compare


  • Bugfix when storing the user's last_match variable when a %Previous is
    active (it was storing a regexp object and not a string), to help third party
    session drivers (e.g. Redis) to work.

1.14.4 - December 14 2016

14 Dec 18:40
Choose a tag to compare


  • Fix the last_match() function so that it returns None when there was no
    match instead of "undefined" (PR #63).
  • Strip leading and trailing whitespace from user messages, and consolidate
    repeated whitespace into a single space character (PR #62).

1.14.3 - December 8 2016

08 Dec 21:23
Choose a tag to compare


1.14.3 Dec 8 2016

  • Fix sorting algorithm for triggers with %Previous, making their sort order
    deterministic and correct regardless of the order they appeared in the
    source file (PR #60; bug #59)
  • Fix a possible crash when interpolating a <star> tag when the trigger
    had captured no stars. In this cases the <star> tag will become the string
    "None"; it is a user error that this situation arises anyway and this fix
    just prevents Python from crashing (bugs #51 and #54)
  • Fix a possible crash when calling random.choice on an empty list by
    wrapping it in a safety function at rivescript.utils.random_choice
    (bug #36)
  • Better error reporting on the JSON Interactive Mode: if there is an
    exception raised when decoding the input JSON, the output JSON now contains
    an error key with the text of the exception to help diagnose what went

1.14.2 - October 18 2016

18 Oct 17:39
Choose a tag to compare


1.14.2 Oct 18 2016

  • Fix numeric tags like <add> raising a TypeError exception.

1.14.1 - August 9 2016

09 Aug 18:15
Choose a tag to compare


1.14.1 Aug 9 2016

  • Fix a regression when handling Unicode strings under Python 2 (bug #40).