| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Current coverage is 90.33%@@ master #272 diff @@
==========================================
Files 51 51
Lines 6926 6904 -22
Methods 0 0
Messages 0 0
Branches 1332 1329 -3
==========================================
- Hits 6264 6237 -27
- Misses 501 506 +5
Partials 161 161
|
Sorry, something went wrong.
|
@gsnedders Is this important? There's no explanatory issue, so I'm not sure what the value is here and whether we should spend time on it for 1.0 or not. |
Sorry, something went wrong.
|
@willkg Reduction in complexity and potentially performance gains by reducing indirection. |
Sorry, something went wrong.
|
Ok. I'm going to push this off until after 1.0, then. |
Sorry, something went wrong.
Codecov Report
@@ Coverage Diff @@
## master #272 +/- ##
==========================================
- Coverage 91.07% 91.03% -0.04%
==========================================
Files 50 50
Lines 7044 7016 -28
Branches 1341 1337 -4
==========================================
- Hits 6415 6387 -28
Misses 475 475
Partials 154 154
Continue to review full report at Codecov.
|
Sorry, something went wrong.
This added a fair bit of complexity, and notable made the Phase classes dynamically generated. However, by doing this, we no longer include "process the token using the rules for" phases in the debug log.
There was a problem hiding this comment.
NB: I've no write or commit access here, but to me these changes look good.
From local checkout & review:
Although there doesn't seem to be a performance improvement from this, in my opinion it does work towards making the code simpler and opens up future refactoring and cleanup work that is likely to improve performance in more significant ways.
Sorry, something went wrong.
| @@ -201,6 +188,9 @@ def mainLoop(self): | |||
| DoctypeToken = tokenTypes["Doctype"] | |||
| ParseErrorToken = tokenTypes["ParseError"] | |||
|
|
|||
| type_names = {value: key for key, value in tokenTypes.items()} | |||
| debug = self.debug | |||
There was a problem hiding this comment.
@gsnedders Is there a reason to bring tokenTypes and self.debug into local method variables here?
At L225 we could compare using if self.debug and similarly at L226 we could use info = {"type": tokenTypes[type]}.
(am guessing it's possibly an artifact of some IDE-based refactoring? Hopefully a straightforward cleanup either way)
Sorry, something went wrong.
| else: | ||
| return type |
There was a problem hiding this comment.
Nice :) I get some minor worries about difficult-to-debug future issues when built-in Python keywords like type get used as variables / returned as values. Removing this is a nice improvement 👍
Sorry, something went wrong.
| ('dataState', 'InBodyPhase', 'InBodyPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}), | ||
| ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'}), | ||
| ('dataState', 'InBodyPhase', 'InBodyPhase', 'processStartTag', {'name': 'script', 'type': 'StartTag'}), | ||
| ('dataState', 'InBodyPhase', 'InHeadPhase', 'processStartTag', {'name': 'script', 'type': 'StartTag'}), |
There was a problem hiding this comment.
Good catch! How did you discover this duplicate entry, out of interest?
Sorry, something went wrong.
| # pylint:enable=unused-argument | ||
|
|
||
|
|
||
| _phases = { |
There was a problem hiding this comment.
The core of the improvement - looks good generally. What do you think about going one step further and moving this to the initialization of the HTMLParser's self.phases at L121?
Sorry, something went wrong.
|
This was merged as #567. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
With this we no longer include "process the token using the rules for" phases in the debug log.
This also needs perf review given it touches mainLoop.
(If you want to view the diff, append ?w=1 to the URL to ignore whitespace, otherwise the reindenting of the phases just dominates.)