Giter Site home page Giter Site logo

uberclerk / spintax Goto Github PK

View Code? Open in Web Editor NEW

This project forked from acelewis/spintax

0.0 1.0 0.0 19 KB

A Python module for parsing spintax, unlike any other module this works with nested spintax and also allows the user to escape the special characters used in its syntax.

License: Other

Python 100.00%

spintax's Introduction

spintax

A Python module for parsing spintax, unlike any other module this also allows both nested spintax and the ability to escape special characters.

How to Install

To install using pip run:

pip install spintax

Alternatively this module can be installed by downloading the zipped folder or cloning the repository and running:

python setup.py install

What is spintax

Spintax (also known as spin syntax) is a way to create random strings that have the same or similar meaning.

Spintax is very useful as it can be used in programs such as chat bots or video game character speach, it allows the dialog to not sound so repetitive and robotic. Spintax also has great applications in voice assistants such as in Amazon's Alexa, you can easily make skills (apps for the Alexa) that respond without saying the exact same thing every time.

There are examples of spintax in use in the examples folder

The syntax

Spintax replaces braces (also known as curly brackets, {}) containing text with a random predefined string. The random string is defined withing the braces by using a pipe | as a seperator.

Simple example:
"{Hey|Hello|Hi} this is {spin syntax|spintax}{.|!|}"
Can produce:
  • Hey this is spintax.
  • Hi this is spin syntax
  • Hello this is spintax
  • Hi this is spintax!

Unlike other modules, you can escape the special characters used in spintax by placing an odd number of "\"'s before the character.

Example:
r"""{Hey|Hello|Hi}{,|} this is {spin syntax|spintax}{.|!|}
To use {this module|spintax} enclose \{your|words\} in {those brackets|braces} and use {a \||the \||a pipe (\|)} to separate them
"""
Can produce:
  • Hi this is spintax!

    To use spintax enclose {your|words} in braces and use the | to separate them

  • Hi, this is spin syntax

    To use this module enclose {your|words} in those brackets and use a | to separate them

  • Hello this is spintax.

    To use spintax enclose {your|words} in those brackets and use a pipe (|) to separate them

Example of Nested Spintax:
   "This is nested {{s|S}pintax|spin syntax}"
Can produce:
  • This is nested Spintax
  • This is nested spin syntax
  • This is nested spintax

How to use this module

This module can be used to spin Spintax easily.

import spintax
print(spintax.spin("{Simple|Easy} {example|demonstration}"))

The Spin Function:

#####inputs:

  • string: The sting to parse, make sure it is a literal string if you use 's within the string.
  • seed: (Optional) if a seed for the random function is desired a seed can be set (Default no seed).

Regex help

I would like to say that http://regex101.com helped me a lot with the creation of the Regex, if you need to make Regex I recommend using this website as it is a great tool. They also have an IRC channel that is friendly, and the user OnlineCop helped me with the non capturing group I used to match the spintax brackets.

Licence

This software is licensed under the GNU General Public License (version 3) as published by the Free Software Foundation this licence http://www.gnu.org/licenses/ . If you would want a different licence please contact me, on twitter @_AceLewis or Reddit /u/_AceLewis.

spintax's People

Contributors

acelewis avatar mnmt avatar rattleycooper avatar

Watchers

Bryan S avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.