# API
#### xdice.compile(pattern_string)
> Similar to `xdice.Pattern(pattern_string).compile()`
> Returns a compiled Pattern object.
> Pattern object can then be rolled to obtain a PatternScore object.
#### xdice.roll(pattern_string)
> Similar to `xdice.Pattern(pattern_string).roll()`
#### xdice.rolldice(faces, amount=1)
> Similar to `xdice.Dice(faces, amount).roll()`
## Dice object
> Set of dice.
#### Dice.__init__(sides, amount=1)
> Instantiate a set of dice.
#### dice.roll()
> Role the dice and return a Score object
####*[classmethod]* Dice.parse(cls, pattern)
> Parse a pattern of the form ‘AdX’, where A and X are positive integers. > Returns the corresponding Dice object.
## Score object
> Score is a subclass of integer, you can then manipulate it as you would do with an integer.
- > It also provides an access to the detailed score with the property ‘detail’.
- ‘detail’ is the list of the scores obtained by each dice.
> Score class can also be used as an iterable, to walk trough the individual scores.
- eg:
>>> s = Score([1,2,3]) >>> print(s) 6 >>> s + 1 7 >>> list(s) [1,2,3]
#### Score.__new__(iterable)
>*`iterable` should only contain integers*
> Score value will be the sum of the list’s values.
## Pattern object
> Dice notation pattern.
#### Pattern.__init__(instr)
> Instantiate a Pattern object.
#### pattern.compile()
> Parse the pattern. Two properties are updated at this time:
- pattern.format_string
> The ready-to-be-formatted string built from the instr argument.
> Eg: ‘1d6+4+1d4’ => ‘{0}+4-{1}’
- pattern.dices
> The list of parsed dice.
> Eg: ‘1d6+4+1d4’ => [(Dice; sides=6;amount=1), (Dice; sides=4;amount=1)]
#### pattern.roll()
> Compile the pattern if it has not been yet, then roll the dice.
> Return a PatternScore object.
## PatternScore object
> PatternScore is a subclass of integer, you can then manipulate it as you would do with an integer.
> Moreover, you can get the list of the scores with the score(i) or scores() methods, and retrieve a formatted result with the format() method.
#### pattern_score.scores()
> Returns the list of Score objects extracted from the pattern and rolled.
#### pattern_score.score(i)
> Returns the Score object at index i.
#### pattern_score.format()
> Return a formatted string detailing the result of the roll.
> Eg: ‘3d6+4’ => ‘[1,5,6]+4’