| 272 | ) |
| 273 | |
| 274 | def representation( |
| 275 | self, |
| 276 | trace_spans=TRACE_REPR_SPAN_DETAILS, |
| 277 | trace_thresholds=TRACE_REPR_THRESHOLDS, |
| 278 | trace_rule=TRACE_REPR_MATCHED_RULE, |
| 279 | trace_text=TRACE_REPR_ALL_MATCHED_TEXTS, |
| 280 | ): |
| 281 | spans = '' |
| 282 | if trace_spans: |
| 283 | spans = ( |
| 284 | f'\n qspan={self.qspan!r}, ' |
| 285 | f'\n ispan={self.ispan!r}, ' |
| 286 | f'\n hispan={self.hispan!r}' |
| 287 | ) |
| 288 | |
| 289 | thresh = '' |
| 290 | if trace_thresholds: |
| 291 | qdens = round(self.qdensity() * 100, 2) |
| 292 | idens = round(self.idensity() * 100, 2) |
| 293 | thresh = f'\n qdens={qdens!r}, idens={idens!r}' |
| 294 | |
| 295 | rule_id = self.rule.identifier |
| 296 | if trace_rule: |
| 297 | rule_id = '\n ' + repr(self.rule) |
| 298 | |
| 299 | qreg = (self.qstart, self.qend) |
| 300 | ireg = (self.istart, self.iend) |
| 301 | spans = spans |
| 302 | thresh = thresh |
| 303 | |
| 304 | if trace_text: |
| 305 | text = f' matched_text: {self.matched_text()!r}\n' |
| 306 | else: |
| 307 | text = '' |
| 308 | return ( |
| 309 | f'LicenseMatch: ' |
| 310 | f'{self.rule.license_expression!r}, ' |
| 311 | f'lines={self.lines()!r}, ' |
| 312 | f'matcher={self.matcher!r}, ' |
| 313 | f'rid={rule_id}, ' |
| 314 | f'sc={self.score()!r}, ' |
| 315 | f'cov={self.coverage()!r}, ' |
| 316 | f'len={self.len()}, ' |
| 317 | f'hilen={self.hilen()}, ' |
| 318 | f'rlen={self.rule.length}, ' |
| 319 | f'qreg={qreg!r}, ' |
| 320 | f'ireg={ireg!r}' |
| 321 | f'{thresh}{spans}' |
| 322 | f'{text}' |
| 323 | ) |
| 324 | |
| 325 | def __eq__(self, other): |
| 326 | """ |