Module Expr Str Import alias alias alias Import alias identifier Import alias alias alias alias alias Import alias ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad body Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return Num decorator_list FunctionDef arguments args NameParam defaults body Return Num decorator_list FunctionDef arguments args NameParam NameParam defaults body If BoolOpAnd AttributeLoad NameLoad attr CompareGt BinOpAdd AttributeLoad NameLoad attr NameLoad BinOpDiv AttributeLoad NameLoad attr Num body Raise Call NameLoad Assign NameStore BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore IfExp CompareLt NameLoad NameLoad NameLoad NameLoad AugAssignAdd AttributeStore NameLoad attr NameLoad Return BinOpSub BinOpMult Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Num Num decorator_list decorator_list ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults AttributeLoad NameLoad attr body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Lambda arguments args NameParam NameParam NameParam defaults Call NameLoad NameLoad Call NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Num Assign NameStore Num If CompareLt NameLoad Num body If CompareLtE BinOpAdd NameLoad NameLoad Num body Return IfExp NameLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr ListLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Assign NameStore UnaryOpUSub NameLoad Assign NameStore BinOpAdd NameLoad NameLoad If CompareGt NameLoad AttributeLoad NameLoad attr body Assign NameStore BinOpSub NameLoad AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore NameLoad If CompareGtE BinOpAdd NameLoad NameLoad AttributeLoad NameLoad attr body Assign NameStore BinOpSub AttributeLoad NameLoad attr NameLoad Assign NameStore BinOpSub NameLoad NameLoad TryExcept body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad handlers ExceptHandler type NameLoad body Return IfExp NameLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr Num If CompareGt AttributeLoad NameLoad attr Num body If CompareEq AttributeLoad NameLoad attr Num body Assign NameStore SubscriptLoad NameLoad ExtSlice Slice Index Num If CompareEq AttributeLoad NameLoad attr Num body Assign NameStore SubscriptLoad NameLoad ExtSlice Slice Index Num If BoolOpAnd NameLoad BoolOpOr CompareGt NameLoad Num CompareGt NameLoad Num body If CompareGt NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr NameLoad NameLoad keyword Num If CompareGt NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign SubscriptStore NameLoad Slice BinOpSub NameLoad NameLoad Num Return NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults Num body Expr Str Assign NameStore Call AttributeLoad NameLoad attr BinOpSub NameLoad BinOpDiv AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr NameLoad AugAssignMult NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore BinOpDiv Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Slice BinOpAdd BinOpDiv SubscriptLoad AttributeLoad NameLoad attr Index Num Num Num Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore BinOpDiv BinOpAdd Call AttributeLoad BinOpMult Num Call AttributeLoad NameLoad attr BinOpAdd NameLoad Num attr UnaryOpUSub NameLoad Num NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Num If CompareGt NameLoad Num body If CompareEq AttributeLoad NameLoad attr NameLoad body Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr NameLoad Assign NameStore BinOpMult BinOpMult BinOpDiv Call AttributeLoad BinOpMult NameLoad AttributeLoad NameLoad attr attr BinOpMult NameLoad BinOpSub NameLoad Num AttributeLoad NameLoad attr Num Assign NameStore BinOpDiv BinOpSub Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Num Assign NameStore Num Assign NameStore Num Assign NameStore Num Assign NameStore Num If CompareGt NameLoad AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If CompareGt NameLoad BinOpSub NameLoad NameLoad body Assign NameStore BinOpSub NameLoad NameLoad If CompareLtE NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Num Return TupleLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num orelse If CompareEq NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Return TupleLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num For NameStore Call NameLoad NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore SubscriptLoad NameLoad Index NameLoad If CompareGt NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore SubscriptLoad NameLoad Index NameLoad If CompareLt NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore NameLoad Return IfExp CompareLt NameLoad NameLoad TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad decorator_list decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad Num body Expr Str Assign NameStore ListLoad For NameStore Call NameLoad NameLoad body Assign NameStore BinOpDiv BinOpMult NameLoad BinOpSub Call NameLoad NameLoad Num BinOpSub NameLoad Num Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpSub NameLoad Call NameLoad NameLoad If CompareGt NameLoad Num body Assign NameStore BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num BinOpMult NameLoad SubscriptLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Index Num Assign NameStore BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num BinOpMult NameLoad SubscriptLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Index Num Assign NameStore BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num BinOpMult NameLoad SubscriptLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Index Num orelse Assign NameStore BinOpMult BinOpSub Num NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign NameStore BinOpMult BinOpSub Num NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Assign NameStore BinOpMult BinOpSub Num NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num If NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad Call NameLoad NameLoad Call NameLoad NameLoad Call NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr TupleLoad Call NameLoad NameLoad Call NameLoad NameLoad Call NameLoad NameLoad Return NameLoad decorator_list ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Str TupleLoad NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign TupleStore AttributeStore NameLoad attr AttributeStore NameLoad attr TupleLoad NameLoad NameLoad If CompareEq NameLoad Num body Assign NameStore ListLoad TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num orelse If CompareEq NameLoad Num body Assign NameStore ListLoad TupleLoad Num Num Num TupleLoad BinOpDiv Num Num BinOpDiv Num Num BinOpDiv Num Num TupleLoad BinOpDiv Num Num BinOpDiv Num Num BinOpDiv Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num Assign AttributeStore NameLoad attr Call NameLoad NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return Call AttributeLoad NameLoad attr BinOpMod Str TupleLoad Call NameLoad BinOpMult BinOpSub Num NameLoad Num Num Num decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore BinOpSub BinOpMult AttributeLoad NameLoad attr Num BinOpMult BinOpMult SubscriptLoad NameLoad Index Num BinOpSub AttributeLoad NameLoad attr Num Num Assign NameStore BinOpSub BinOpMult AttributeLoad NameLoad attr Num BinOpMult BinOpMult SubscriptLoad NameLoad Index Num BinOpSub AttributeLoad NameLoad attr Num Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Call NameLoad BinOpMult NameLoad Num If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr ListLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign TupleStore AttributeStore NameLoad attr AttributeStore NameLoad attr TupleLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpSub NameLoad NameLoad If BoolOpAnd CompareGt NameLoad Num CompareLt NameLoad Num CompareLt BinOpAdd NameLoad Num AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index TupleLoad NameLoad BinOpAdd NameLoad Num Assign NameStore Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Assign SubscriptStore AttributeLoad NameLoad attr Index TupleLoad NameLoad BinOpAdd NameLoad Num TupleLoad NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpSub Num BinOpSub NameLoad NameLoad If BoolOpAnd CompareGt NameLoad Num CompareLt NameLoad Num CompareGtE BinOpSub NameLoad Num Num body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index TupleLoad NameLoad BinOpSub NameLoad Num Assign NameStore Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num Assign SubscriptStore AttributeLoad NameLoad attr Index TupleLoad NameLoad BinOpSub NameLoad Num TupleLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore Num For NameStore Call NameLoad AttributeLoad NameLoad attr body Assign SubscriptStore AttributeLoad NameLoad attr Index TupleLoad NameLoad BinOpDiv AttributeLoad NameLoad attr Num Call NameLoad Call NameLoad Lambda arguments args NameParam defaults BinOpAdd NameLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index TupleLoad NameLoad BinOpDiv AttributeLoad NameLoad attr Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list decorator_list ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Str TupleLoad NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareLt NameLoad NameLoad body Print BinOpMod Str TupleLoad NameLoad NameLoad If CompareEq NameLoad Num body Assign NameStore ListLoad TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num orelse If CompareEq NameLoad Num body Assign NameStore ListLoad TupleLoad Num Num Num TupleLoad BinOpDiv Num Num BinOpDiv Num Num BinOpDiv Num Num TupleLoad BinOpDiv Num Num BinOpDiv Num Num BinOpDiv Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num TupleLoad Num Num Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr ListLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore BinOpAdd NameLoad BinOpMult BinOpDiv NameLoad BinOpSub NameLoad Num BinOpSub NameLoad NameLoad Assign NameStore BinOpMult BinOpDiv NameLoad NameLoad BinOpAdd BinOpDiv AttributeLoad NameLoad attr Num Num If CompareLt NameLoad BinOpDiv AttributeLoad NameLoad attr Num body Assign NameStore BinOpSub NameLoad Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Call NameLoad NameLoad BinOpMult NameLoad Num Assign AttributeStore NameLoad attr ListLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body For TupleStore NameStore NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad BinOpAdd BinOpMult BinOpSub Num NameLoad SubscriptLoad NameLoad Index NameLoad BinOpMult NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num For NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr attr NameLoad decorator_list decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Print BinOpMod Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore BinOpDiv Call AttributeLoad NameLoad attr Call NameLoad NameLoad Assign NameStore BinOpAdd BinOpDiv Call AttributeLoad NameLoad attr Num Num Expr Str Assign NameStore Call NameLoad NameLoad NameLoad NameLoad AttributeLoad NameLoad attr If CompareEq NameLoad Num body Assign NameStore Call NameLoad NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad For NameStore Call NameLoad NameLoad body If CompareEq BinOpMod NameLoad BinOpDiv NameLoad Num Num body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad BinOpMult NameLoad NameLoad Assign NameStore Call NameLoad BinOpMult BinOpAdd NameLoad Num NameLoad Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad If CompareEq NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad If CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Print Str decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad Str Import alias Import alias With Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Str NameStore body Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore BinOpDiv NameLoad Call NameLoad NameLoad AugAssignMult NameStore Num Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpDiv Call AttributeLoad NameLoad attr Call NameLoad NameLoad Assign NameStore BinOpAdd BinOpDiv Call AttributeLoad NameLoad attr Num Num Assign NameStore Call NameLoad NameLoad Num NameLoad AttributeLoad NameLoad attr Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad For NameStore Call NameLoad NameLoad body Assign NameStore Call NameLoad BinOpMult NameLoad NameLoad Assign NameStore Call NameLoad BinOpMult BinOpAdd NameLoad Num NameLoad Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index NameLoad BinOpAdd Call NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Call NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num For NameStore Call NameLoad Call NameLoad NameLoad body For NameStore Call NameLoad Call NameLoad SubscriptLoad NameLoad Index NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index NameLoad Call NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Num Return TupleLoad NameLoad NameLoad NameLoad decorator_list
N/A N/A 
svt.py [options] filename.wav
The options the script takes are:
<ul>
 <li>-a = output waveform image (default input filename + _w.png)</li>
 <li>-s = output spectrogram image (default input filename + _s.png)</li>
 <li>-w = image width in pixels (default 500)</li>
 <li>-h = image height in pixels (default 170)</li>
 <li>-f = fft size, power of 2 (default 2048)</li>
 <li>-m = maximum frequency to draw, in Hz (default 22050)</li>
 <li>-o = 1 if you want to draw the waveform too
</ul>
 N/A optparse math sys N/A scikits.audiolab audiolab N/A ImageFilter ImageChops Image ImageDraw ImageColor N/A numpy TestAudioFile N/A object N/A N/A A class that mimics audiolab.sndfile but generates noise instead of reading
    a wave file. Additionally it can be told to have a "broken" header and thus crashing
    in the middle of the file. Also useful for testing ultra-short files of 20 samples. __init__ N/A N/A self num_frames has_broken_header N/A False N/A N/A N/A self seekpoint 0 N/A N/A self num_frames num_frames N/A N/A self has_broken_header has_broken_header N/A seek N/A N/A self seekpoint N/A N/A N/A N/A self seekpoint seekpoint N/A get_nframes N/A N/A self N/A N/A N/A N/A self num_frames N/A get_samplerate N/A N/A self N/A N/A N/A 44100 N/A get_channels N/A N/A self N/A N/A N/A 1 N/A read_frames N/A N/A self frames_to_read N/A N/A N/A N/A N/A self has_broken_header N/A N/A N/A self seekpoint frames_to_read N/A N/A self num_frames 2 N/A N/A N/A IOError N/A num_frames_left N/A N/A self num_frames N/A self seekpoint N/A will_read N/A N/A num_frames_left frames_to_read num_frames_left frames_to_read N/A N/A self seekpoint will_read N/A N/A N/A N/A N/A N/A numpy random random will_read 2 1 N/A N/A AudioProcessor N/A object N/A __init__ N/A N/A self audio_file fft_size channel window_function N/A N/A numpy ones N/A N/A N/A self fft_size fft_size N/A N/A self window N/A window_function N/A self fft_size N/A N/A self audio_file audio_file N/A N/A self frames N/A N/A audio_file get_nframes N/A N/A self samplerate N/A N/A audio_file get_samplerate N/A N/A self channels N/A N/A audio_file get_channels N/A N/A self spectrum_range None N/A N/A self lower 100 N/A N/A self higher 22050 N/A N/A self lower_log N/A N/A math log10 N/A self lower N/A N/A self higher_log N/A N/A math log10 N/A self higher N/A N/A self clip N/A N/A N/A val low high N/A N/A min high N/A max low val N/A N/A self channel channel N/A read N/A N/A self start size resize_if_less N/A False N/A N/A  read size samples starting at start, if resize_if_less is True and less than size
        samples are read, resize the array to size and fill with zeros  N/A add_to_start 0 N/A add_to_end 0 N/A N/A start 0 N/A N/A N/A N/A size start 0 N/A N/A N/A resize_if_less N/A N/A numpy zeros size N/A N/A numpy array N/A N/A N/A N/A N/A N/A self audio_file seek 0 N/A add_to_start N/A start N/A to_read N/A size start N/A N/A to_read N/A self frames N/A N/A add_to_end N/A to_read N/A self frames N/A to_read N/A self frames N/A N/A N/A N/A N/A self audio_file seek start N/A to_read size N/A N/A N/A start to_read N/A self frames N/A N/A to_read N/A N/A self frames start N/A add_to_end N/A size to_read N/A N/A N/A samples N/A N/A N/A self audio_file read_frames to_read N/A N/A N/A IOError N/A N/A N/A resize_if_less N/A N/A numpy zeros size N/A N/A numpy zeros 2 N/A N/A N/A self channels 1 N/A N/A N/A N/A self channel 1 N/A N/A samples N/A samples N/A N/A N/A 0 N/A N/A N/A self channel 2 N/A N/A samples N/A samples N/A N/A N/A 1 N/A N/A resize_if_less N/A N/A add_to_start 0 N/A add_to_end 0 N/A N/A N/A add_to_start 0 N/A N/A samples N/A N/A numpy concatenate N/A N/A N/A numpy zeros add_to_start samples axis 1 N/A N/A add_to_end 0 N/A N/A samples N/A N/A numpy resize samples size N/A N/A samples N/A N/A size add_to_end 0 N/A samples N/A N/A 
    The spectral centroid is a measure used in digital signal processing to characterise
    a spectrum. It indicates where the "center of mass" of the spectrum is. Perceptually,
    it has a robust connection with the impression of "brightness" of a sound. It is calculated
    as the weighted mean of the frequencies present in the signal, determined using a Fourier
    transform, with their magnitudes as the wiehgts.
    The spectral centroid is widely used in digital audio and music processing as an automatic
    measure of musical timbre. -Wikipedia
    
    Probably extremely useful for visualization.
     spectral_centroid N/A N/A self seek_point spec_range N/A 120.0 N/A N/A  starting at seek_point read fft_size samples, and calculate the spectral centroid  N/A samples N/A N/A self read N/A seek_point N/A N/A self fft_size 2 N/A self fft_size True N/A samples N/A self window N/A fft N/A N/A N/A numpy fft fft samples N/A spectrum N/A N/A N/A numpy abs N/A fft N/A N/A N/A N/A N/A fft shape N/A 0 2 1 N/A float N/A self fft_size N/A length N/A N/A numpy float64 N/A N/A spectrum shape N/A 0 N/A db_spectrum N/A N/A N/A N/A N/A 20 N/A N/A numpy log10 N/A spectrum 1e-30 clip N/A spec_range 0.0 spec_range spec_range N/A energy N/A N/A spectrum sum N/A spectral_centroid 0 N/A N/A energy 1e-20 N/A N/A N/A N/A self spectrum_range None N/A N/A N/A self spectrum_range N/A N/A numpy arange length N/A spectral_centroid N/A N/A N/A N/A N/A N/A spectrum N/A self spectrum_range sum N/A energy N/A length 1 N/A self samplerate 0.5 N/A spectral_centroid N/A N/A N/A N/A math log10 N/A N/A self clip spectral_centroid N/A self lower N/A self higher N/A self lower_log N/A N/A self higher_log N/A self lower_log N/A N/A spectral_centroid db_spectrum N/A peaks N/A N/A self start_seek end_seek N/A N/A N/A  read all samples between start_seek and end_seek, then find the minimum and maximum peak
        in that range. Returns that pair in the order they were found. So if min was found first,
        it returns (min, max) else the other way around.  N/A block_size 4096 N/A max_index -1 N/A max_value -1 N/A min_index -1 N/A min_value 1 N/A N/A end_seek N/A self frames N/A N/A end_seek N/A self frames N/A N/A block_size N/A end_seek start_seek N/A N/A block_size N/A end_seek start_seek N/A N/A block_size 1 N/A N/A samples N/A N/A self read start_seek 1 N/A N/A N/A samples N/A 0 N/A samples N/A 0 N/A N/A N/A block_size 2 N/A N/A samples N/A N/A self read start_seek True N/A N/A N/A samples N/A 0 N/A samples N/A 1 N/A i N/A range start_seek end_seek block_size N/A N/A samples N/A N/A self read i block_size N/A local_max_index N/A N/A numpy argmax samples N/A local_max_value N/A samples N/A local_max_index N/A N/A local_max_value max_value N/A N/A max_value local_max_value N/A max_index local_max_index N/A local_min_index N/A N/A numpy argmin samples N/A local_min_value N/A samples N/A local_min_index N/A N/A local_min_value min_value N/A N/A min_value local_min_value N/A min_index local_min_index N/A N/A N/A min_index max_index N/A min_value max_value N/A max_value min_value N/A N/A interpolate_colors N/A N/A colors flat num_colors N/A False 256 N/A N/A  given a list of colors, create a larger list of colors interpolating
    the first one. If flatten is True a list of numers will be returned. If
    False, a list of (r,g,b) tuples. num_colors is the number of colors wanted
    in the final list  N/A palette N/A N/A i N/A range num_colors N/A N/A index N/A N/A i N/A N/A len colors 1 N/A num_colors 1.0 N/A index_int N/A int index N/A alpha N/A index N/A float index_int N/A N/A alpha 0 N/A N/A r N/A N/A N/A 1.0 alpha N/A N/A colors N/A index_int N/A 0 N/A alpha N/A N/A colors N/A N/A index_int 1 N/A 0 N/A g N/A N/A N/A 1.0 alpha N/A N/A colors N/A index_int N/A 1 N/A alpha N/A N/A colors N/A N/A index_int 1 N/A 1 N/A b N/A N/A N/A 1.0 alpha N/A N/A colors N/A index_int N/A 2 N/A alpha N/A N/A colors N/A N/A index_int 1 N/A 2 N/A N/A r N/A N/A 1.0 alpha N/A N/A colors N/A index_int N/A 0 N/A g N/A N/A 1.0 alpha N/A N/A colors N/A index_int N/A 1 N/A b N/A N/A 1.0 alpha N/A N/A colors N/A index_int N/A 2 N/A flat N/A N/A N/A N/A palette extend N/A N/A int r N/A int g N/A int b N/A N/A N/A N/A palette append N/A N/A int r N/A int g N/A int b N/A palette N/A WaveformImage N/A object N/A __init__ N/A N/A self image_width image_height palette N/A N/A N/A N/A self image N/A N/A Image new RGB N/A image_width image_height N/A N/A self image_width image_width N/A N/A self image_height image_height N/A N/A self draw N/A N/A ImageDraw Draw N/A self image N/A N/A N/A self previous_x N/A self previous_y N/A None None N/A N/A palette 2 N/A N/A colors N/A N/A 255 255 255 N/A 255 255 255 N/A 255 255 255 N/A 225 248 255 N/A 210 241 255 N/A 195 232 255 N/A 180 221 255 N/A 165 208 255 N/A 150 193 255 N/A 135 175 255 N/A 120 156 255 N/A 105 134 255 N/A 90 110 255 N/A 75 85 255 N/A 63 60 255 N/A 64 45 255 N/A 66 30 255 N/A 76 0 255 N/A 0 128 13 N/A 8 138 0 N/A 20 143 0 N/A 33 148 0 N/A 46 153 0 N/A 60 158 0 N/A 91 168 0 N/A 108 173 0 N/A 125 179 0 N/A 143 184 0 N/A 162 189 0 N/A 182 194 0 N/A 199 195 0 N/A 204 184 0 N/A 255 230 128 N/A 255 221 119 N/A 255 213 111 N/A 255 203 102 N/A 255 193 94 N/A 255 181 85 N/A 255 169 77 N/A 255 157 68 N/A 255 143 60 N/A 255 129 51 N/A 255 113 43 N/A 255 97 34 N/A 255 81 25 N/A 255 63 17 N/A 255 45 8 N/A 255 26 0 N/A N/A N/A palette 1 N/A N/A colors N/A N/A 0 0 0 N/A N/A 58 4 N/A 68 4 N/A 65 4 N/A N/A 80 2 N/A 100 2 N/A 153 2 N/A 90 180 100 N/A 224 224 44 N/A 255 60 30 N/A 255 255 255 N/A N/A self color_lookup N/A interpolate_colors colors N/A N/A self pix N/A N/A N/A self image load N/A color_from_value N/A N/A self value N/A N/A N/A  given a value between 0 and 1, return an (r,g,b) tuple  N/A N/A N/A ImageColor getrgb N/A hsl(%d,%d%%,%d%%) N/A N/A int N/A N/A 1.0 value 360 80 50 N/A draw_peaks N/A N/A self x peaks spectral_centroid N/A N/A N/A  draw 2 peaks at x using the spectral_centroid for color  N/A y1 N/A N/A N/A self image_height 0.5 N/A N/A N/A peaks N/A 0 N/A N/A self image_height 4 0.5 N/A y2 N/A N/A N/A self image_height 0.5 N/A N/A N/A peaks N/A 1 N/A N/A self image_height 4 0.5 N/A line_color N/A N/A self color_lookup N/A N/A int N/A spectral_centroid 255.0 N/A N/A N/A self previous_y None N/A N/A N/A N/A N/A self draw line N/A N/A self previous_x N/A self previous_y x y1 x y2 line_color N/A N/A N/A N/A N/A self draw line N/A x y1 x y2 line_color N/A N/A N/A self previous_x N/A self previous_y N/A x y2 N/A N/A N/A self draw_anti_aliased_pixels x y1 y2 line_color N/A draw_anti_aliased_pixels N/A N/A self x y1 y2 color N/A N/A N/A  vertical anti-aliasing at y1 and y2  N/A y_max N/A max y1 y2 N/A y_max_int N/A int y_max N/A alpha N/A y_max y_max_int N/A N/A N/A alpha 0.0 N/A alpha 1.0 N/A N/A y_max_int 1 N/A self image_height N/A N/A current_pix N/A N/A self pix N/A N/A x N/A y_max_int 1 N/A r N/A int N/A N/A N/A 1 alpha N/A current_pix N/A 0 N/A alpha N/A color N/A 0 N/A g N/A int N/A N/A N/A 1 alpha N/A current_pix N/A 1 N/A alpha N/A color N/A 1 N/A b N/A int N/A N/A N/A 1 alpha N/A current_pix N/A 2 N/A alpha N/A color N/A 2 N/A N/A N/A self pix N/A N/A x N/A y_max_int 1 N/A r g b N/A y_min N/A min y1 y2 N/A y_min_int N/A int y_min N/A alpha N/A 1.0 N/A y_min y_min_int N/A N/A N/A alpha 0.0 N/A alpha 1.0 N/A N/A y_min_int 1 0 N/A N/A current_pix N/A N/A self pix N/A N/A x N/A y_min_int 1 N/A r N/A int N/A N/A N/A 1 alpha N/A current_pix N/A 0 N/A alpha N/A color N/A 0 N/A g N/A int N/A N/A N/A 1 alpha N/A current_pix N/A 1 N/A alpha N/A color N/A 1 N/A b N/A int N/A N/A N/A 1 alpha N/A current_pix N/A 2 N/A alpha N/A color N/A 2 N/A N/A N/A self pix N/A N/A x N/A y_min_int 1 N/A r g b N/A save N/A N/A self filename N/A N/A N/A a 25 N/A x N/A range N/A self image_width N/A N/A N/A N/A self pix N/A N/A x N/A N/A self image_height 2 N/A tuple N/A map N/A N/A N/A p N/A N/A p a N/A N/A self pix N/A N/A x N/A N/A self image_height 2 N/A N/A N/A N/A self image save filename N/A N/A SpectrogramImage N/A object N/A __init__ N/A N/A self image_width image_height fft_size f_max f_min nyquist_freq palette N/A N/A N/A N/A self image N/A N/A Image new P N/A image_height image_width N/A N/A self image_width image_width N/A N/A self image_height image_height N/A N/A self fft_size fft_size N/A N/A self f_max f_max N/A N/A self f_min f_min N/A N/A self nyquist_freq nyquist_freq N/A N/A self palette palette N/A N/A nyquist_freq f_max N/A N/A N/A 
Warning: The specified maximum frequency to draw (%d Hz) is higher that what the digital file allows, which is %d Hz. The image file will have black areas on top that correspond to empty data.
 N/A f_max nyquist_freq N/A N/A palette 2 N/A N/A colors N/A N/A 255 255 255 N/A 255 255 255 N/A 255 255 255 N/A 225 248 255 N/A 210 241 255 N/A 195 232 255 N/A 180 221 255 N/A 165 208 255 N/A 150 193 255 N/A 135 175 255 N/A 120 156 255 N/A 105 134 255 N/A 90 110 255 N/A 75 85 255 N/A 63 60 255 N/A 64 45 255 N/A 66 30 255 N/A 76 0 255 N/A 0 128 13 N/A 8 138 0 N/A 20 143 0 N/A 33 148 0 N/A 46 153 0 N/A 60 158 0 N/A 91 168 0 N/A 108 173 0 N/A 125 179 0 N/A 143 184 0 N/A 162 189 0 N/A 182 194 0 N/A 199 195 0 N/A 204 184 0 N/A 255 230 128 N/A 255 221 119 N/A 255 213 111 N/A 255 203 102 N/A 255 193 94 N/A 255 181 85 N/A 255 169 77 N/A 255 157 68 N/A 255 143 60 N/A 255 129 51 N/A 255 113 43 N/A 255 97 34 N/A 255 81 25 N/A 255 63 17 N/A 255 45 8 N/A 255 26 0 N/A N/A N/A palette 1 N/A N/A colors N/A N/A 0 0 0 N/A N/A 58 4 N/A 68 4 N/A 65 4 N/A N/A 80 2 N/A 100 2 N/A 153 2 N/A 90 180 100 N/A 224 224 44 N/A 255 60 30 N/A 255 255 255 N/A N/A N/A N/A self image putpalette N/A interpolate_colors colors True N/A N/A self y_to_bin N/A N/A y_min N/A N/A math log10 f_min N/A y_max N/A N/A math log10 f_max N/A y N/A range N/A self image_height N/A N/A freq N/A f_min N/A N/A y N/A image_height 1.0 N/A f_max f_min N/A bin N/A N/A freq nyquist_freq N/A N/A N/A self fft_size 2 1 N/A N/A bin N/A N/A self fft_size 2 N/A N/A alpha N/A bin N/A int bin N/A N/A N/A N/A self y_to_bin append N/A N/A int bin N/A alpha 255 N/A N/A self pixels N/A N/A draw_spectrum N/A N/A self x spectrum N/A N/A N/A N/A index alpha N/A self y_to_bin N/A N/A N/A N/A N/A self pixels append N/A int N/A N/A N/A 255.0 alpha N/A spectrum N/A index N/A alpha N/A spectrum N/A N/A index 1 N/A y N/A range N/A len N/A self y_to_bin N/A self image_height N/A N/A N/A N/A N/A self pixels append 0 N/A save N/A N/A self filename N/A N/A N/A N/A N/A N/A self image putdata N/A self pixels N/A N/A N/A N/A N/A N/A self image transpose N/A Image ROTATE_90 save filename N/A N/A create_png N/A N/A input_filename output_filename_w output_filename_s image_width image_height fft_size f_max f_min wavefile palette channel N/A N/A N/A 
    Given command line arguments this basically does everything.

    WHAT I HAVE GATHERED:
    db_spectrum has the frequencies of the sound file.
    spectral_centroid tells us what the color of the sound is.
    peaks tell us what the amplitude of the sound is.

    Should be trivial to adapt this from image output to output
    to our JavaScript visualizer now.
     N/A N/A processing file %s:
	 input_file N/A audio_file N/A N/A audiolab sndfile input_filename read N/A samples_per_pixel N/A N/A N/A audio_file get_nframes N/A float image_width N/A nyquist_freq N/A N/A N/A N/A audio_file get_samplerate 2 0.0 N/A 
    Initializes AudioProcessor class, which does FFT analysis and spits 
    out amplitudes and frequencies to the SpectrogramImage and WaveformImage 
    classes below later. For a stereo wav file, this selects a single channel 
    to analyze. We might want to analyze both channels to give more input to
    the visualizer,though.
     N/A processor N/A AudioProcessor audio_file fft_size channel N/A numpy hanning N/A N/A wavefile 1 N/A N/A waveform N/A WaveformImage image_width image_height palette N/A spectrogram N/A SpectrogramImage image_width image_height fft_size f_max f_min nyquist_freq palette N/A x N/A range image_width N/A N/A N/A N/A x N/A image_width 10 0 N/A N/A N/A N/A N/A sys stdout write . N/A N/A N/A N/A sys stdout flush N/A seek_point N/A int N/A x samples_per_pixel N/A next_seek_point N/A int N/A N/A x 1 samples_per_pixel N/A N/A spectral_centroid db_spectrum N/A N/A processor spectral_centroid seek_point N/A N/A wavefile 1 N/A N/A peaks N/A N/A processor peaks seek_point next_seek_point N/A N/A N/A waveform draw_peaks x peaks spectral_centroid N/A N/A N/A spectrogram draw_spectrum x db_spectrum N/A N/A wavefile 1 N/A N/A N/A N/A waveform save output_filename_w N/A N/A N/A spectrogram save output_filename_s N/A  done N/A processWav N/A N/A filename channel N/A N/A N/A 
    filename: path to a wav file
    Channel: 1 for left, 2 for right
    Returns centroids, frequencies, volumes
     N/A audio_file N/A N/A audiolab sndfile filename read N/A contextlib N/A wave N/A N/A N/A contextlib closing N/A N/A wave open filename r f N/A N/A frames N/A N/A f getnframes N/A rate N/A N/A f getframerate N/A duration N/A frames N/A float rate N/A duration 30 N/A duration N/A int duration N/A samples_per_pixel N/A N/A N/A audio_file get_nframes N/A float duration N/A nyquist_freq N/A N/A N/A N/A audio_file get_samplerate 2 0.0 N/A processor N/A AudioProcessor audio_file 2048 channel N/A numpy hanning N/A centroids N/A N/A frequencies N/A N/A volumes N/A N/A x N/A range duration N/A N/A seek_point N/A int N/A x samples_per_pixel N/A next_seek_point N/A int N/A N/A x 1 samples_per_pixel N/A N/A spectral_centroid db_spectrum N/A N/A processor spectral_centroid seek_point N/A peaks N/A N/A processor peaks seek_point next_seek_point N/A N/A N/A centroids append spectral_centroid N/A N/A N/A frequencies append db_spectrum N/A N/A N/A volumes append peaks N/A i N/A range N/A len volumes N/A N/A N/A volumes N/A i N/A N/A abs N/A N/A volumes N/A i N/A 0 N/A abs N/A N/A volumes N/A i N/A 1 N/A i N/A range N/A len frequencies N/A N/A j N/A range N/A len N/A frequencies N/A i N/A N/A N/A N/A frequencies N/A i N/A j N/A round N/A N/A frequencies N/A i N/A j 4 N/A N/A centroids frequencies volumes N/A