Skip to content

Latest commit

 

History

History
703 lines (699 loc) · 75.4 KB

File metadata and controls

703 lines (699 loc) · 75.4 KB

Cyclomatic complexity.

https://www.qt.io/quality-assurance/blog/what-is-cyclomatic-complexity

threefive 3.0.73 Score

660 blocks (classes, functions, methods) analyzed.
Average complexity: A (1.9893939393939395)
a@fu:~/scratch/threefive$ radon cc --show-closures  -sa threefive
threefive/throttle.py
    M 95:4 Throttle.throttle_pts - A (3)
    M 84:4 Throttle._set_second - A (2)
    M 80:4 Throttle._set_first - A (2)
    M 68:4 Throttle.diff - A (2)
    M 57:4 Throttle.sleep - A (2)
    M 50:4 Throttle.print_throttle - A (2)
    M 41:4 Throttle.set_start - A (2)
    C 13:0 Throttle - A (2)
    M 88:4 Throttle.throttle - A (1)
    M 35:4 Throttle.reset_end - A (1)
    M 29:4 Throttle.reset - A (1)
    M 21:4 Throttle.__init__ - A (1)
threefive/packetdata.py
    C 9:0 PacketData - A (3)
    M 32:4 PacketData.mk_pts - A (2)
    M 22:4 PacketData.mk_pcr - A (2)
    M 16:4 PacketData.__init__ - A (1)
threefive/upids.py
    C 313:0 Umid - A (3)
    C 215:0 Mid - A (3)
    C 163:0 Eidr - A (3)
    M 75:4 Upid.xml - A (3)
    M 66:4 Upid._extra_xml_attrs - A (3)
    M 44:4 Upid.redecode - A (3)
    C 17:0 Upid - A (3)
    M 330:4 Umid.encode - A (2)
    M 318:4 Umid.decode - A (2)
    M 290:4 Mpu.decode - A (2)
    C 272:0 Mpu - A (2)
    M 256:4 Mid.xml - A (2)
    M 244:4 Mid.encode - A (2)
    M 220:4 Mid.decode - A (2)
    C 195:0 Isan - A (2)
    M 182:4 Eidr.encode - A (2)
    M 168:4 Eidr.decode - A (2)
    C 132:0 Atsc - A (2)
    C 113:0 AirId - A (2)
    C 95:0 NoUpid - A (2)
    M 58:4 Upid._xml_format_attr - A (2)
    M 302:4 Mpu.encode - A (1)
    M 277:4 Mpu._decode_adfr - A (1)
    M 207:4 Isan.encode - A (1)
    M 200:4 Isan.decode - A (1)
    M 151:4 Atsc.encode - A (1)
    M 137:4 Atsc.decode - A (1)
    M 125:4 AirId.encode - A (1)
    M 118:4 AirId.decode - A (1)
    M 106:4 NoUpid.encode - A (1)
    M 100:4 NoUpid.decode - A (1)
    M 37:4 Upid.encode - A (1)
    M 30:4 Upid.decode - A (1)
    M 22:4 Upid.__init__ - A (1)
threefive/encode.py
    F 49:0 mk_splice_insert - A (3)
    F 24:0 mk_time_signal - A (2)
    F 12:0 mk_splice_null - A (1)
threefive/stream.py
    M 698:4 Stream._parse_pmt - B (6)
    M 637:4 Stream._parse_sdt - B (6)
    M 673:4 Stream._parse_pat - A (5)
    M 613:4 Stream._parse_scte35 - A (5)
    M 371:4 Stream.show_pts - A (5)
    M 354:4 Stream.show - A (5)
    M 537:4 Stream._parse - A (4)
    M 459:4 Stream._parse_pts - A (4)
    M 236:4 Stream._find_start - A (4)
    M 752:4 Stream._set_scte35_pids - A (3)
    M 598:4 Stream._chk_maybe_pid - A (3)
    M 568:4 Stream._section_incomplete - A (3)
    M 506:4 Stream._sdt_pid - A (3)
    M 437:4 Stream._parse_cc - A (3)
    M 341:4 Stream.proxy - A (3)
    M 311:4 Stream.decode_next - A (3)
    M 281:4 Stream._decode2cues - A (3)
    M 247:4 Stream.rt - A (3)
    C 132:0 Stream - A (3)
    C 54:0 ProgramInfo - A (3)
    C 42:0 Based - A (3)
    M 727:4 Stream._parse_program_streams - A (2)
    M 630:4 Stream._mk_pinfo - A (2)
    M 607:4 Stream._mk_scte35_payload - A (2)
    M 594:4 Stream._pop_maybe_pid - A (2)
    M 585:4 Stream._strip_scte35_pes - A (2)
    M 577:4 Stream._parse_cue - A (2)
    M 561:4 Stream._same_as_last - A (2)
    M 556:4 Stream._chk_partial - A (2)
    M 550:4 Stream._pid_has_scte35 - A (2)
    M 531:4 Stream._chk_scte35 - A (2)
    M 523:4 Stream._chk_pcr - A (2)
    M 517:4 Stream._parse_info - A (2)
    M 502:4 Stream._pat_pid - A (2)
    M 495:4 Stream._pmt_pid - A (2)
    M 484:4 Stream._parse_payload - A (2)
    M 473:4 Stream._parse_pcr - A (2)
    M 414:4 Stream.pid2pcr - A (2)
    M 404:4 Stream.pid2pts - A (2)
    M 394:4 Stream.pid2prgm - A (2)
    M 332:4 Stream.decode_start_time - A (2)
    M 322:4 Stream.decode_pids - A (2)
    M 297:4 Stream.decode - A (2)
    M 284:4 Stream.speed - A (2)
    M 275:4 Stream._mk_pkts - A (2)
    M 267:4 Stream.iter_pkts - A (2)
    M 230:4 Stream._split_by_idx - A (2)
    M 151:4 Stream.__init__ - A (2)
    C 112:0 Maps - A (2)
    C 96:0 Pids - A (2)
    M 76:4 ProgramInfo.show - A (2)
    M 68:4 ProgramInfo._mk_vee - A (2)
    M 47:4 Based.__repr__ - A (2)
    M 742:4 Stream._parse_stream_type - A (1)
    M 527:4 Stream._chk_pts - A (1)
    M 511:4 Stream._parse_tables - A (1)
    M 448:4 Stream.mk_pts - A (1)
    M 430:4 Stream._mk_packet_data - A (1)
    M 427:4 Stream._unpad - A (1)
    M 424:4 Stream._unpad_afc - A (1)
    M 388:4 Stream.pts - A (1)
    M 223:4 Stream._parse_program - A (1)
    M 215:4 Stream._parse_pid - A (1)
    M 208:4 Stream._parse_length - A (1)
    M 203:4 Stream._pts_flag - A (1)
    M 199:4 Stream._spi_flag - A (1)
    M 195:4 Stream._pcr_flag - A (1)
    M 191:4 Stream._afc_flag - A (1)
    M 187:4 Stream._pusi_flag - A (1)
    M 180:4 Stream.as_90k - A (1)
    M 122:4 Maps.__init__ - A (1)
    M 104:4 Pids.__init__ - A (1)
    M 61:4 ProgramInfo.__init__ - A (1)
    F 34:0 show_cue_stderr - A (1)
    F 26:0 show_cue - A (1)
    F 18:0 no_op - A (1)
threefive/hls.py
    M 948:4 HlsParser._parse_new_media - B (6)
    M 496:4 HlsParser.set_cue_state - B (6)
    M 1013:4 HlsParser.pick_one - A (5)
    M 977:4 HlsParser._parse_manifest - A (5)
    M 727:4 HlsParser.extinf - A (5)
    M 665:4 HlsParser.scte35 - A (5)
    M 624:4 HlsParser.chk_x_daterange - A (5)
    M 550:4 HlsParser._set_break_duration - A (5)
    M 399:4 HlsParser.chk_aes - A (5)
    M 924:4 HlsParser.write_flat - A (4)
    M 819:4 HlsParser.chk_aac - A (4)
    M 804:4 HlsParser.chk_ts - A (4)
    M 771:4 HlsParser.ts_cues - A (4)
    M 699:4 HlsParser.auto_cuein - A (4)
    M 643:4 HlsParser.chk_x_oatcls - A (4)
    M 609:4 HlsParser.chk_x_scte35 - A (4)
    M 570:4 HlsParser.chk_x_cue_out_cont - A (4)
    M 533:4 HlsParser._set_break_timer - A (4)
    M 484:4 HlsParser._chk_cue_out - A (4)
    M 965:4 HlsParser._fixup_media - A (3)
    M 903:4 HlsParser.parse_header - A (3)
    M 889:4 HlsParser.parse_line - A (3)
    M 873:4 HlsParser.update_cue_state - A (3)
    M 858:4 HlsParser._mk_window_size - A (3)
    M 845:4 HlsParser.parse_target_duration - A (3)
    M 832:4 HlsParser.new_media - A (3)
    M 783:4 HlsParser.ts_set_cue - A (3)
    M 744:4 HlsParser.print_time - A (3)
    M 660:4 HlsParser._dump_by_key - A (3)
    M 444:4 HlsParser.diff_stuff - A (3)
    C 344:0 HlsParser - A (3)
    M 168:4 Scte35Profile._this_that_none - A (3)
    M 146:4 Scte35Profile._string2bool - A (3)
    M 118:4 Scte35Profile._is_comment - A (3)
    M 68:4 Scte35Profile._is_int - A (3)
    M 1000:4 HlsParser.pull - A (2)
    M 916:4 HlsParser.chk_endlist - A (2)
    M 883:4 HlsParser.decode_lines - A (2)
    M 861:4 HlsParser.chk_window_size - A (2)
    M 762:4 HlsParser.ts_pts - A (2)
    M 716:4 HlsParser.reset_break - A (2)
    M 526:4 HlsParser.show_tags - A (2)
    M 474:4 HlsParser._chk_cue_in - A (2)
    M 420:4 HlsParser.to_dump - A (2)
    M 388:4 HlsParser.clear_files - A (2)
    M 328:4 SlidingWindow.all_panes - A (2)
    M 321:4 SlidingWindow.pop_pane - A (2)
    C 311:0 SlidingWindow - A (2)
    C 290:0 Pane - A (2)
    M 280:4 Scte35Profile.validate_time_signal - A (2)
    M 274:4 Scte35Profile._validate_dscptr - A (2)
    M 268:4 Scte35Profile._is_dscptr_cuein - A (2)
    M 263:4 Scte35Profile._is_dscptr_cueout - A (2)
    M 257:4 Scte35Profile._incr_seg_type - A (2)
    M 248:4 Scte35Profile.validate_splice_insert - A (2)
    M 242:4 Scte35Profile._is_splice_insert_cueout - A (2)
    M 225:4 Scte35Profile.validate_cue - A (2)
    M 220:4 Scte35Profile._chk_splice_insert - A (2)
    M 215:4 Scte35Profile._chk_time_signal - A (2)
    M 211:4 Scte35Profile._chk_expand - A (2)
    M 205:4 Scte35Profile._chk_pts - A (2)
    M 188:4 Scte35Profile.read_profile - A (2)
    M 183:4 Scte35Profile._parse_profile - A (2)
    M 173:4 Scte35Profile.format4profile - A (2)
    M 162:4 Scte35Profile._hexed - A (2)
    M 155:4 Scte35Profile._new_that - A (2)
    M 123:4 Scte35Profile._split_this_that - A (2)
    M 113:4 Scte35Profile._vee_is_list - A (2)
    M 108:4 Scte35Profile._vee_is_ints - A (2)
    M 105:4 Scte35Profile._vee_to_hex - A (2)
    M 93:4 Scte35Profile._write_profile_lines - A (2)
    M 81:4 Scte35Profile._bool_in_profile - A (2)
    M 76:4 Scte35Profile._list_in_profile - A (2)
    M 62:4 Scte35Profile.__repr__ - A (2)
    C 29:0 Scte35Profile - A (2)
    F 1049:0 _chk_profile - A (2)
    F 1043:0 _chk_help - A (2)
    M 1035:4 HlsParser.find_renditions - A (1)
    M 971:4 HlsParser._post_parse - A (1)
    M 938:4 HlsParser.write_manifest - A (1)
    M 688:4 HlsParser.auto_cont - A (1)
    M 600:4 HlsParser.chk_x_cue_out - A (1)
    M 589:4 HlsParser.chk_x_cue_in - A (1)
    M 517:4 HlsParser.invalid - A (1)
    M 468:4 HlsParser.pts_stuff - A (1)
    M 462:4 HlsParser.dur_stuff - A (1)
    M 438:4 HlsParser.cue_stuff - A (1)
    M 430:4 HlsParser.media_stuff - A (1)
    M 413:4 HlsParser.to_sidecar - A (1)
    M 381:4 HlsParser.clear - A (1)
    M 349:4 HlsParser.__init__ - A (1)
    M 334:4 SlidingWindow.slide_panes - A (1)
    M 316:4 SlidingWindow.__init__ - A (1)
    M 307:4 Pane.__repr__ - A (1)
    M 299:4 Pane.get - A (1)
    M 295:4 Pane.__init__ - A (1)
    M 239:4 Scte35Profile._mk_cueout_line - A (1)
    M 196:4 Scte35Profile.set_pts - A (1)
    M 152:4 Scte35Profile._hex_or_int - A (1)
    M 139:4 Scte35Profile.clean_n_split - A (1)
    M 132:4 Scte35Profile._clean - A (1)
    M 98:4 Scte35Profile.write_profile - A (1)
    M 86:4 Scte35Profile._mk_profile_line - A (1)
    M 34:4 Scte35Profile.__init__ - A (1)
    F 1065:0 cli - A (1)
    F 1056:0 precheck - A (1)
threefive/aac.py
    C 12:0 AacParser - A (3)
    M 78:4 AacParser.parse - A (2)
    M 68:4 AacParser.parse_timestamp - A (2)
    M 56:4 AacParser.read_id3 - A (2)
    M 47:4 AacParser.has_applehead - A (2)
    M 37:4 AacParser.syncsafe5 - A (2)
    M 20:4 AacParser.is_header - A (2)
    M 29:4 AacParser.id3_len - A (1)
threefive/commands.py
    M 291:4 SpliceInsert.xml - A (5)
    M 252:4 SpliceInsert.encode - A (5)
    M 226:4 SpliceInsert.decode - A (5)
    C 194:0 SpliceInsert - A (4)
    M 177:4 TimeSignal.xml - A (3)
    M 163:4 TimeSignal._encode_splice_time - A (3)
    C 118:0 TimeSignal - A (3)
    M 278:4 SpliceInsert.encode_break_duration - A (2)
    M 151:4 TimeSignal._splice_time - A (2)
    C 101:0 SpliceNull - A (2)
    C 60:0 PrivateCommand - A (2)
    C 43:0 BandwidthReservation - A (2)
    C 11:0 SpliceCommand - A (2)
    M 217:4 SpliceInsert.decode_break_duration - A (1)
    M 199:4 SpliceInsert.__init__ - A (1)
    M 141:4 TimeSignal.encode - A (1)
    M 132:4 TimeSignal.decode - A (1)
    M 123:4 TimeSignal.__init__ - A (1)
    M 111:4 SpliceNull.xml - A (1)
    M 106:4 SpliceNull.__init__ - A (1)
    M 91:4 PrivateCommand.xml - A (1)
    M 81:4 PrivateCommand.encode - A (1)
    M 72:4 PrivateCommand.decode - A (1)
    M 65:4 PrivateCommand.__init__ - A (1)
    M 53:4 BandwidthReservation.xml - A (1)
    M 48:4 BandwidthReservation.__init__ - A (1)
    M 34:4 SpliceCommand.encode - A (1)
    M 27:4 SpliceCommand._set_len - A (1)
    M 22:4 SpliceCommand.decode - A (1)
    M 16:4 SpliceCommand.__init__ - A (1)
threefive/sixfix.py
    M 110:4 SixFix.pmt2packets - B (6)
    M 154:4 SixFix._parse_pmt - A (5)
    M 81:4 SixFix._parse_pkts - A (4)
    M 69:4 SixFix._parse_by_pid - A (4)
    C 41:0 SixFix - A (3)
    C 27:0 PreFix - A (3)
    M 140:4 SixFix._pmt_precheck - A (2)
    M 49:4 SixFix.__init__ - A (2)
    M 32:4 PreFix.decode - A (2)
    F 207:0 cli - A (2)
    F 186:0 sixfix - A (2)
    M 150:4 SixFix.mk_pmt - A (1)
    M 106:4 SixFix._chk_payload - A (1)
    M 97:4 SixFix.convert_pids - A (1)
    M 62:4 SixFix.iter_pkts - A (1)
    F 16:0 passed - A (1)
threefive/xml.py
    F 63:0 iter_attrs - A (4)
    M 369:4 Node.set_depth - A (3)
    M 356:4 Node.rendr_all - A (3)
    M 339:4 Node.rendr_attrs - A (3)
    M 329:4 Node.mk_ans - A (3)
    M 295:4 Node.a2c - A (3)
    M 280:4 Node.findtag - A (3)
    M 267:4 Node.findattr - A (3)
    M 218:4 Node.addchild - A (3)
    M 211:4 Node._handle_attrs - A (3)
    C 164:0 Node - A (3)
    M 145:4 NameSpace.xmlns - A (3)
    F 25:0 un_camel - A (3)
    F 13:0 t2s - A (3)
    C 413:0 Comment - A (2)
    M 396:4 Node.children_namespaces - A (2)
    M 386:4 Node.set_parent - A (2)
    M 351:4 Node._rendrd_children - A (2)
    M 320:4 Node.mk_tag - A (2)
    M 305:4 Node.mk - A (2)
    M 201:4 Node.chk_obj - A (2)
    C 119:0 NameSpace - A (2)
    C 93:0 NodeList - A (2)
    F 85:0 mk_xml_attrs - A (2)
    F 54:0 strip_ns - A (2)
    F 35:0 un_xml - A (2)
    M 437:4 Comment.mk - A (1)
    M 405:4 Node.get_indent - A (1)
    M 380:4 Node.set_ns - A (1)
    M 259:4 Node.drop - A (1)
    M 253:4 Node.dropattr - A (1)
    M 244:4 Node.dropchild - A (1)
    M 238:4 Node.addattr - A (1)
    M 231:4 Node.addcomment - A (1)
    M 198:4 Node.__repr__ - A (1)
    M 187:4 Node.__init__ - A (1)
    M 155:4 NameSpace.clear - A (1)
    M 138:4 NameSpace.prefix_all - A (1)
    M 135:4 NameSpace.__repr__ - A (1)
    M 130:4 NameSpace.__init__ - A (1)
    M 110:4 NodeList.remove - A (1)
    M 101:4 NodeList.pop - A (1)
    M 98:4 NodeList.__init__ - A (1)
    F 80:0 key2xml - A (1)
    F 73:0 val2xml - A (1)
threefive/stuff.py
    F 115:0 pif - A (5)
    F 192:0 print2 - A (3)
    F 103:0 isxml - A (3)
    F 83:0 isjson - A (3)
    F 58:0 clean - A (3)
    F 31:0 codec_detect - A (3)
    F 234:0 reblue - A (2)
    F 142:0 rmap - A (2)
    F 134:0 k_by_v - A (2)
    F 95:0 isfloat - A (2)
    F 72:0 ishex - A (2)
    F 226:0 blue - A (1)
    F 217:0 red - A (1)
    F 207:0 iso8601 - A (1)
    F 182:0 no_ESC - A (1)
    F 168:0 badtype - A (1)
    F 157:0 _type2string - A (1)
threefive/new_reader.py
    F 55:0 reader - B (7)
    C 33:0 Socked - A (2)
    F 131:0 _mk_socked - A (2)
    F 119:0 lshiftbuf - A (2)
    M 39:4 Socked.read - A (1)
    F 164:0 _open_mcast - A (1)
    F 155:0 _open_udp - A (1)
    F 144:0 _mk_udp_sock - A (1)
    F 104:0 do_srt - A (1)
    F 46:0 corsreader - A (1)
threefive/bump.py
    M 140:4 StreamBumper.bump_scte35 - A (3)
    M 125:4 StreamBumper._scte35 - A (2)
    C 111:0 StreamBumper - A (2)
    F 97:0 bumped - A (2)
    F 73:0 bump_pts - A (2)
    F 47:0 bump_pts_time - A (2)
    M 164:4 StreamBumper._parse_args - A (1)
    M 155:4 StreamBumper._apply_args - A (1)
    M 130:4 StreamBumper._parse2 - A (1)
    M 118:4 StreamBumper.__init__ - A (1)
    F 193:0 cli - A (1)
    F 87:0 repad - A (1)
    F 66:0 show_bump - A (1)
    F 58:0 bump_pts_adjust - A (1)
threefive/cue.py
    M 422:4 Cue.load - A (4)
    M 169:4 Cue._xj_bits - A (4)
    M 480:4 Cue._xml_mk_descriptor - A (3)
    M 452:4 Cue._from_xml - A (3)
    M 402:4 Cue._load_descriptors - A (3)
    M 387:4 Cue._load_command - A (3)
    M 359:4 Cue._unloop_descriptors - A (3)
    M 192:4 Cue._str_bits - A (3)
    M 115:4 Cue.get - A (3)
    M 79:4 Cue.decode - A (3)
    M 471:4 Cue._xml_segmentation_comment - A (2)
    M 377:4 Cue._load_info_section - A (2)
    M 301:4 Cue.base64 - A (2)
    M 265:4 Cue._set_splice_command - A (2)
    M 240:4 Cue._mk_descriptors - A (2)
    M 221:4 Cue._mk_bits - A (2)
    M 208:4 Cue._byte_bits - A (2)
    M 200:4 Cue._pkt_bits - A (2)
    M 182:4 Cue._xjd_bits - A (2)
    M 175:4 Cue._digit_bits - A (2)
    M 137:4 Cue.fix_bad_b64 - A (2)
    M 130:4 Cue.get_descriptors - A (2)
    M 110:4 Cue._get_packet_data - A (2)
    M 98:4 Cue._descriptor_loop - A (2)
    M 59:4 Cue.__init__ - A (2)
    C 33:0 Cue - A (2)
    M 503:4 Cue.xmlbin - A (1)
    M 490:4 Cue.xml - A (1)
    M 416:4 Cue._no_cmd - A (1)
    M 351:4 Cue._encode_crc - A (1)
    M 345:4 Cue.encode_as_int - A (1)
    M 339:4 Cue.encode_as_hex - A (1)
    M 333:4 Cue.encode - A (1)
    M 326:4 Cue.int - A (1)
    M 319:4 Cue.hex - A (1)
    M 313:4 Cue.bytes - A (1)
    M 283:4 Cue._assemble - A (1)
    M 254:4 Cue.mk_info_section - A (1)
    M 218:4 Cue._dict_bits - A (1)
    M 214:4 Cue._node_bits - A (1)
    M 162:4 Cue._b64_bits - A (1)
    M 155:4 Cue._hex_bits - A (1)
    M 147:4 Cue._int_bits - A (1)
    M 74:4 Cue.__repr__ - A (1)
threefive/iframes.py
    M 147:4 IFramer.first - A (4)
    M 115:4 IFramer.ticks - A (3)
    M 106:4 IFramer._get_pts - A (3)
    M 96:4 IFramer._is_key - A (3)
    M 69:4 IFramer._parse_pts - A (3)
    M 138:4 IFramer.do - A (2)
    M 124:4 IFramer.parse - A (2)
    M 93:4 IFramer._afc_approved - A (2)
    M 85:4 IFramer._chk_rai - A (2)
    M 61:4 IFramer._parse_payload - A (2)
    M 24:4 IFramer._to90k - A (2)
    C 15:0 IFramer - A (2)
    M 132:4 IFramer.iter_pkts - A (1)
    M 58:4 IFramer._rai_flag - A (1)
    M 54:4 IFramer._pusi_flag - A (1)
    M 49:4 IFramer._pts_flag - A (1)
    M 45:4 IFramer._pcr_flag - A (1)
    M 41:4 IFramer._nal - A (1)
    M 37:4 IFramer._afc_flag - A (1)
    M 30:4 IFramer._abc_flags - A (1)
    M 20:4 IFramer.__init__ - A (1)
    F 178:0 firstcli - A (1)
    F 161:0 cli - A (1)
threefive/base.py
    F 140:8 kv_clean.b2l - B (7)
    M 134:4 SCTE35Base.kv_clean - A (3)
    M 100:4 SCTE35Base._chk_var - A (3)
    M 168:4 SCTE35Base._load_dict - A (2)
    M 165:4 SCTE35Base._vrfy_load - A (2)
    M 161:4 SCTE35Base._chk_vars - A (2)
    M 118:4 SCTE35Base.has - A (2)
    M 95:4 SCTE35Base._json2dict - A (2)
    M 81:4 SCTE35Base.idxsplit - A (2)
    M 60:4 SCTE35Base.as_hms - A (2)
    M 36:4 SCTE35Base._bool_int - A (2)
    M 23:4 SCTE35Base._chk_nbin - A (2)
    C 11:0 SCTE35Base - A (2)
    M 181:4 SCTE35Base.show - A (1)
    M 172:4 SCTE35Base.load - A (1)
    M 128:4 SCTE35Base.json - A (1)
    M 112:4 SCTE35Base.get - A (1)
    M 74:4 SCTE35Base.fix_hex - A (1)
    M 53:4 SCTE35Base.as_ticks - A (1)
    M 46:4 SCTE35Base.as_90k - A (1)
    M 42:4 SCTE35Base._wrong_type - A (1)
    M 29:4 SCTE35Base._err2 - A (1)
    M 19:4 SCTE35Base.__repr__ - A (1)
threefive/segment.py
    M 120:4 Segment.decode - A (3)
    M 58:4 Segment.__init__ - A (3)
    M 110:4 Segment.show_cue - A (2)
    C 17:0 Segment - A (2)
    M 103:4 Segment.shushed - A (1)
    M 96:4 Segment._add_cue - A (1)
    M 89:4 Segment._aes_decrypt - A (1)
    M 85:4 Segment._aes_get_key - A (1)
    M 81:4 Segment._mk_tmp - A (1)
    M 78:4 Segment.__repr__ - A (1)
threefive/bitn.py
    M 189:4 NBin.zeroed - A (2)
    M 172:4 NBin.reserve - A (2)
    M 149:4 NBin.add_hex - A (2)
    M 131:4 NBin.add_int - A (2)
    M 119:4 NBin.add_bites - A (2)
    C 95:0 NBin - A (2)
    M 49:4 Bitn.as_charset - A (2)
    M 31:4 Bitn.as_int - A (2)
    C 8:0 Bitn - A (2)
    M 183:4 NBin.forward - A (1)
    M 163:4 NBin.add_flag - A (1)
    M 140:4 NBin.add_90k - A (1)
    M 108:4 NBin.nbits2bites - A (1)
    M 103:4 NBin.__init__ - A (1)
    M 86:4 Bitn.negative_shift - A (1)
    M 79:4 Bitn.forward - A (1)
    M 73:4 Bitn.as_flag - A (1)
    M 64:4 Bitn.as_bytes - A (1)
    M 41:4 Bitn.as_hex - A (1)
    M 23:4 Bitn.as_90k - A (1)
    M 20:4 Bitn.__repr__ - A (1)
    M 16:4 Bitn.__init__ - A (1)
threefive/superkabuki.py
    M 230:4 SuperKabuki._chk_sidecar_pts - A (4)
    M 180:4 SuperKabuki.encode - A (4)
    M 265:4 SuperKabuki.chk_sidecar_cues - A (3)
    M 240:4 SuperKabuki._read_sidecar_file - A (3)
    M 111:4 SuperKabuki.pid2int - A (3)
    C 24:0 SuperKabuki - A (3)
    M 255:4 SuperKabuki.load_sidecar - A (2)
    M 160:4 SuperKabuki.iframe_action - A (2)
    M 151:4 SuperKabuki.parse_pkt - A (2)
    M 143:4 SuperKabuki.add_scte35_pkt - A (2)
    M 135:4 SuperKabuki.auto_time_signals - A (2)
    M 127:4 SuperKabuki.open_output - A (2)
    M 37:4 SuperKabuki.__init__ - A (2)
    M 277:4 SuperKabuki.mk_scte35_pkt - A (1)
    M 248:4 SuperKabuki.clobber_file - A (1)
    M 204:4 SuperKabuki._gen_time_signal - A (1)
    M 172:4 SuperKabuki.mk_pmt - A (1)
    M 124:4 SuperKabuki._bump_cc - A (1)
    M 100:4 SuperKabuki._apply_args - A (1)
    M 52:4 SuperKabuki._parse_args - A (1)
    F 302:0 cli - A (1)
threefive/pmt.py
    M 187:4 PMT.mk - A (4)
    M 171:4 PMT._add_pmt_cuei - A (3)
    M 134:4 PMT.parse_descriptors - A (3)
    C 103:0 PMT - A (3)
    M 43:4 PmtStream.__init__ - A (3)
    C 38:0 PmtStream - A (3)
    M 182:4 PMT._prog_info_len - A (2)
    M 150:4 PMT.parse_streams - A (2)
    M 90:4 PmtStream.add - A (2)
    M 70:4 PmtStream._chk_conv_pids - A (2)
    M 55:4 PmtStream.parse - A (2)
    M 15:4 Dscptr.__init__ - A (2)
    C 10:0 Dscptr - A (2)
    M 160:4 PMT.add_scte35stream - A (1)
    M 131:4 PMT.__repr__ - A (1)
    M 108:4 PMT.__init__ - A (1)
    M 87:4 PmtStream.__repr__ - A (1)
    M 74:4 PmtStream.add_cuei - A (1)
    M 29:4 Dscptr.add - A (1)
    M 26:4 Dscptr.__repr__ - A (1)
threefive/gums.py
    M 91:4 GumS.send_stream - A (3)
    M 71:4 GumS.iter_dgrams - A (3)
    C 29:0 GumS - A (3)
    M 53:4 GumS.mk_sock - A (2)
    M 43:4 GumS.is_multicast - A (2)
    F 161:0 fork - A (2)
    M 34:4 GumS.__init__ - A (1)
    F 181:0 cli - A (1)
    F 171:0 daemonize - A (1)
    F 119:0 parse_args - A (1)
threefive/hlstags.py
    M 143:4 TagParser._split_key - A (4)
    M 101:4 TagParser.precheck - A (4)
    M 183:4 TagParser._unquoted - A (3)
    M 130:4 TagParser._split_tail - A (3)
    M 115:4 TagParser.parse_tags - A (3)
    C 51:0 TagParser - A (3)
    M 170:4 TagParser._quoted - A (2)
    M 159:4 TagParser._split_value - A (2)
    M 80:4 TagParser.__init__ - A (2)
    M 98:4 TagParser._colon_in_line - A (1)
    M 94:4 TagParser._starts_with_octothorpe - A (1)
    M 89:4 TagParser._oated - A (1)
    M 86:4 TagParser._strip_last_comma - A (1)
threefive/descriptors.py
    M 414:4 SegmentationDescriptor._encode_segments - A (4)
    M 58:4 SpliceDescriptor.encode - A (4)
    M 475:4 SegmentationDescriptor.xml_redecode - A (3)
    M 446:4 SegmentationDescriptor.xml - A (3)
    M 423:4 SegmentationDescriptor._xml_sub_segs - A (3)
    M 398:4 SegmentationDescriptor._encode_segmentation - A (3)
    M 346:4 SegmentationDescriptor._decode_segments - A (3)
    M 333:4 SegmentationDescriptor._decode_segmentation - A (3)
    C 266:0 SegmentationDescriptor - A (3)
    C 13:0 SpliceDescriptor - A (3)
    M 434:4 SegmentationDescriptor._xml_delivery_node - A (2)
    M 383:4 SegmentationDescriptor.mk_the_upid - A (2)
    M 370:4 SegmentationDescriptor._encode_flags - A (2)
    M 354:4 SegmentationDescriptor.encode - A (2)
    M 321:4 SegmentationDescriptor._decode_flags - A (2)
    M 308:4 SegmentationDescriptor.decode - A (2)
    C 218:0 TimeDescriptor - A (2)
    M 189:4 DtmfDescriptor.encode - A (2)
    C 167:0 DtmfDescriptor - A (2)
    C 131:0 AvailDescriptor - A (2)
    M 100:4 DVBDASDescriptor.decode - A (2)
    C 81:0 DVBDASDescriptor - A (2)
    M 51:4 SpliceDescriptor.decode - A (2)
    M 40:4 SpliceDescriptor.parse_id - A (2)
    M 29:4 SpliceDescriptor.parse_tag_and_len - A (2)
    F 504:0 splice_descriptor - A (2)
    M 282:4 SegmentationDescriptor.__init__ - A (1)
    M 250:4 TimeDescriptor.xml - A (1)
    M 240:4 TimeDescriptor.encode - A (1)
    M 231:4 TimeDescriptor.decode - A (1)
    M 223:4 TimeDescriptor.__init__ - A (1)
    M 203:4 DtmfDescriptor.xml - A (1)
    M 180:4 DtmfDescriptor.decode - A (1)
    M 172:4 DtmfDescriptor.__init__ - A (1)
    M 157:4 AvailDescriptor.xml - A (1)
    M 149:4 AvailDescriptor.encode - A (1)
    M 142:4 AvailDescriptor.decode - A (1)
    M 136:4 AvailDescriptor.__init__ - A (1)
    M 117:4 DVBDASDescriptor.encode - A (1)
    M 86:4 DVBDASDescriptor.__init__ - A (1)
    M 72:4 SpliceDescriptor._encode_id - A (1)
    M 20:4 SpliceDescriptor.__init__ - A (1)
threefive/streamtypes.py
    F 116:0 mk_streamtype_map - A (2)
    F 105:0 add_stream_types - A (2)
    F 98:0 hex_literal - A (1)
threefive/uxp.py
    M 119:4 UltraXmlParser.parse - A (4)
    M 20:4 UltraXmlParser.mk_attrs - A (4)
    M 345:4 NodeConverter.xmldescriptors - A (3)
    M 272:4 NodeConverter.xmlupid - A (3)
    M 235:4 NodeConverter._xmlspliceinsert_children - A (3)
    M 154:4 NodeConverter.xmlcommand - A (3)
    M 83:4 UltraXmlParser.endtag - A (3)
    M 53:4 UltraXmlParser.mk_node - A (3)
    C 11:0 UltraXmlParser - A (3)
    M 302:4 NodeConverter._xmlsegmentation_message - A (2)
    M 290:4 NodeConverter._xmlsegmentationdescriptor_children - A (2)
    M 261:4 NodeConverter._xmldeliveryrestrictions - A (2)
    M 222:4 NodeConverter._xmlbreakduration - A (2)
    M 209:4 NodeConverter._xmlsplicetime - A (2)
    M 171:4 NodeConverter._xmltimesignal_children - A (2)
    M 144:4 NodeConverter.xmlspliceinfosection - A (2)
    C 139:0 NodeConverter - A (2)
    M 116:4 UltraXmlParser._nocomment - A (2)
    M 99:4 UltraXmlParser.ultraclean - A (2)
    M 70:4 UltraXmlParser.starttag - A (2)
    F 369:0 xml2cue - A (2)
    M 361:4 NodeConverter.convert - A (1)
    M 337:4 NodeConverter._xmltimedescriptor - A (1)
    M 328:4 NodeConverter._xmlavaildescriptor - A (1)
    M 309:4 NodeConverter._xmlsegmentationdescriptor - A (1)
    M 245:4 NodeConverter._xmlspliceinsert - A (1)
    M 195:4 NodeConverter._xmlprivatecommand - A (1)
    M 181:4 NodeConverter._xmltimesignal - A (1)
    M 45:4 UltraXmlParser.mk_line - A (1)
    M 37:4 UltraXmlParser.mk_tag - A (1)
    M 16:4 UltraXmlParser.__init__ - A (1)
threefive/crc.py
    F 14:0 crc32 - A (2)
    F 26:0 crc32hex - A (1)
threefive/speedo.py
    C 16:0 Speedo - A (2)
    M 46:4 Speedo.end - A (1)
    M 34:4 Speedo.plus - A (1)
    M 27:4 Speedo.print_out - A (1)
    M 21:4 Speedo.__init__ - A (1)
threefive/section.py
    M 116:4 SpliceInfoSection._encode_encrypted - A (3)
    M 142:4 SpliceInfoSection._encode_tier - A (2)
    M 134:4 SpliceInfoSection._encode_cw_index - A (2)
    M 108:4 SpliceInfoSection._encode_protocol_version - A (2)
    M 100:4 SpliceInfoSection._encode_section_length - A (2)
    M 91:4 SpliceInfoSection._encode_sap - A (2)
    M 47:4 SpliceInfoSection.decode - A (2)
    C 21:0 SpliceInfoSection - A (2)
    M 182:4 SpliceInfoSection.xml - A (1)
    M 162:4 SpliceInfoSection.encode - A (1)
    M 150:4 SpliceInfoSection._encode_splice_command - A (1)
    M 128:4 SpliceInfoSection._encode_pts_adjustment - A (1)
    M 84:4 SpliceInfoSection._encode_private_flag - A (1)
    M 77:4 SpliceInfoSection._encode_section_syntax_indicator - A (1)
    M 70:4 SpliceInfoSection._encode_table_id - A (1)
    M 27:4 SpliceInfoSection.__init__ - A (1)

660 blocks (classes, functions, methods) analyzed.
Average complexity: A (1.9893939393939395)