Emote utilities for text-based games.
Project description
emote-utils
Emote utilities for text-based games.
This package is most useful for formatting social strings for use with text-based games like MUDs and MOOs.
A social string might look like:
%1N smile%1s at %2n.
Quickstart
First get a factory ready. You could use the base SocialsFactory
class or the helpfully-populated PopulatedSocialsFactory
.
This second class contains useful english grammar suffixes for properly converting words like are to is and proper use of e and s for use at the end of words.
from emote_utils import PopulatedSocialsFactory
f = PopulatedSocialsFactory()
@f.suffix('n', 'name')
def get_name(obj, suffix):
return ('you', obj.name)
Next let's create a test class.
class Person:
def __init__(self, name):
self.name = name
p1 = Person('Jack')
p2 = Person('Jill')
Now we'll get strings which can be sent to Jack, Jill and anyone else who should see the message.
jack_string, jill_string, others_string = f.get_strings('%1N smile%1s at %2n.', [p1, p2])
print(jack_string)
You smile at Jill.
print(jill_string)
Jack smiles at you.
print(others_string)
Jack smiles at Jill.
More advanced usage
Social Formatters
Each social formatter is made up of three parts:
- a per cent (%) sign representing the start of a social formatter.
- an optional number indicating the index of the object you wish to reference in the list of objects.
- An optional filter name preceded by a vertical bar (
|
).
Defaults
- If no index is provided,
SocialsFactory.default_index
is used. - If no suffix is provided,
SocialsFactory.default_suffix
is used. - If no filter is provided then one of 3 things will happen.
In the below list suffix refers either to the name of a suffix provided as part of the social string or the default_suffix
attribute on the instance of SocialsFactory
that get_strings
is being called on.
Attribute names refer to the attributes of SocialsFactory
that get_strings
is being called on.
- If the suffix is title case then the title_case_filter attribute will be used.
- If the suffix is all upper case then the upper_case_filter attribute will be used.
- If neither of these things are true then suffix is assumed to be lower case and the lower_case_filter is used.
Of course any of these names could be None
in which case no filtering is applied.
Filters
Here is an example of a custom filter:
f.filters['strong'] = lambda string: f'<strong>{string}</strong>'
If you were printing your socil strings to HTML you could use this filter to make certain parts of the text stand out.
With this filter created, you could do:
%1N punch%1e %2n|strong.
A string might then look like:
John punches Jack.
Conclusion
To see all the other configuration options see the docstrings in the package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file emote_utils-2.0.0.tar.gz
.
File metadata
- Download URL: emote_utils-2.0.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e28f4696d215fa28d6499f36fede90cb974a2d226f00fd9ddb8e723d10ee9e8 |
|
MD5 | 0e156a93329f2c9f1251908d5be66284 |
|
BLAKE2b-256 | 63810b3d1a37775d2a7702d6af955ac04ff1a40ab68fe5a83c4b062d0850192a |
File details
Details for the file emote_utils-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: emote_utils-2.0.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8ce6fc11e86dc5878e20aa6e88c1d5a83f753d998c1a2c1cc6329479f7fefc6 |
|
MD5 | 038af7c5656ed32a2a431536f2a2e615 |
|
BLAKE2b-256 | d4721cb048ec6e6145490d537994ad0cbb8aa9f79a8cbd17e2ada630597945d2 |