An instance of the rotationplot class has the function add_rotation() that accepts strings in the shot notation format defined below. The object will then calculate the duration and damage of this rotation based on current damage stats and current haste. Currently, it does not handle any proc effects, but Improved Aspect of the Hawk procs can be added manually. They do currently not expire.
For an object that has an initialized rotation, calc_dps() can be called and returns the dps for this rotation. Also, calc_dur() is available and return the duration of this rotation given current haste values. Upon changing haste, recalc() can be called to recalculate for different haste and damage stats, but keeping the rotation as is.
For generating rotation plots, init_fig() must be called beforehand. Alternatively, recalc() can be used after initializing the figure. After either supplying a rotation or calling recalc(), complete_fig() can be called to add labels and thus finalize the plot.
a for auto shots for steady shotm for multi shotA for arcane shotr for raptor strikew for melee white hitsh manual Improved Aspect of the Hawk procimport rotationtools
r = rotationtools.rotationplot()
r.init_fig()
r.add_rotation('as')
r.complete_fig()
This will create the 1:1 rotation example shown below.

Simple 1:1 rotation.
import rotationtools
r = rotationtools.rotationplot()
r.init_fig()
r.add_rotation('asmasasAasas')
r.complete_fig()

French rotation (5:5:1:1)
pip3 install matplotlib