lihzahrd._generate¶
Utilities for code generation.
Used, for example, to convert Terraria static game data into Python-native code structures.
Warning
Requires the generate development dependency group to be installed.
Note
The reason why this module exists is to avoid having a bs4 dependency on the final package.
class_name_factory¶
- class lihzahrd._generate.class_name_factory.ClassNameFactory¶
A converter from strings to class names which ensures name uniqueness and validity.
- RE_UNWANTED = re.compile('[^a-zA-Z0-9]')¶
Finds characters that are unwanted in class names for a given string.
Example
>>> RE_UNWANTED.sub("", r"Jack-o'-Lantern") 'JackoLantern'
- RE_NUMBER = re.compile('^([0-9])')¶
Checks if a string starts with a number.
Example
>>> RE_NUMBER.sub("N", r"67Statue") 'N67Statue'
- used: set[str]¶
Set of all the class names that were already generated by
__call__().
- __call__(base: str, *suffixes: str) str¶
Generate a class name from the given string.
First, unwanted characters are removed using
RE_UNWANTEDThen, if
RE_NUMBERdetects that the name starts with a number, aNis prefixed to the name.Then,
usedis checked to see if the name does not already exist, and if it does, each of the*suffixesare tried in order, followed by a counter starting at 2, until a unique name is found.
Example
>>> factory = ClassNameFactory() >>> factory <ClassNameFactory (0 generated)> >>> factory("Jack-o'-Lantern") 'JackoLantern' >>> factory("Jack-o'-Lantern") 'JackoLantern2' >>> factory("Jack-o'-Lantern", "Block") 'JackoLanternBlock' >>> factory("Jack-o'-Lantern", "Block") 'JackoLantern3' >>> factory.used {'JackoLantern', 'JackoLantern2', 'JackoLanternBlock', 'JackoLantern3'}
terraria¶
Module for generating Terraria data.
tiles_generator¶
- class lihzahrd._generate.terraria.tiles_generator.TilesGenerator(soup: BeautifulSoup)¶
Class that reads a
tiles.xmlfile from TerraMap and outputs Python code usinglihzahrdstructures to represent it.- generate_blocks() str¶
Generate the new contents of
lihzahrd.terraria.data.classmembers.blocks.- Returns:
The contents, as a
str.
- generate_items() str¶
Generate the new contents of
lihzahrd.terraria.data.classmembers.items.- Returns:
The contents, as a
str.
- generate_npcs() str¶
Generate the new contents of
lihzahrd.terraria.data.classmembers.npcs.- Returns:
The contents, as a
str.
- generate_prefixes() str¶
Generate the new contents of
lihzahrd.terraria.data.classmembers.prefixes.- Returns:
The contents, as a
str.
- generate_walls() str¶
Generate the new contents of
lihzahrd.terraria.data.classmembers.walls.- Returns:
The contents, as a
str.