globocom / m3u8

Python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions
Other
1.98k stars 464 forks source link

Refactor parser.py to use consistent arguments #369

Closed bbayles closed 1 week ago

bbayles commented 2 weeks ago

This PR doesn't add any functionality, so I'll understand if you'd rather not take it. But I often found myself scrolling back and forth between sections of parser.py to look to see how a certain tag parser was called, and decided to try to make everything consistent.

The parse function now loops over the lines, checks for known tags, and always calls a parse function with these arguments:

The parse functions accept all of the arguments as keywords, and if they don't need them, they don't act on them. All state / data updating logic is handled inside the parse functions.

I find that this makes the parse loop easier to think about, and it makes the process of adding support for new tags easier.

mauricioabreu commented 1 week ago

Amazing job @bbayles Could you rebase please? Then I can merge it immediately.

bbayles commented 1 week ago

Should be one clean commit now - thanks!