mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-27 08:08:27 +02:00
30369ce1d4
Project now passes flake8 and black linter (also including more rst cleanup). Moved latex related things to dedicated ``latex.py`` module, and removed the ``makesheets -dF`` call from travis.
25 lines
616 B
Python
25 lines
616 B
Python
import re
|
|
from collections import namedtuple
|
|
|
|
from dungeonsheets.exceptions import DiceError
|
|
|
|
dice_re = re.compile(r"(\d+)d(\d+)", flags=re.I)
|
|
Dice = namedtuple("Dice", ("num", "faces"))
|
|
|
|
|
|
def read_dice_str(dice_str):
|
|
"""Interpret a D&D dice string, eg. 3d10.
|
|
|
|
Returns
|
|
-------
|
|
dice : tuple
|
|
A named tuple with the scheme (num, faces), so '3d10' return
|
|
(num=3, faces=10)
|
|
|
|
"""
|
|
match = dice_re.match(dice_str)
|
|
if match is None:
|
|
raise DiceError(f"Cannot interpret dice string {dice_str}")
|
|
dice = Dice(num=int(match.group(1)), faces=int(match.group(2)))
|
|
return dice
|