(l, p, max=1000)
| 70 | |
| 71 | |
| 72 | def logger_isa(l, p, max=1000): |
| 73 | this, seen = l, set() |
| 74 | for _ in range(max): |
| 75 | if this == p: |
| 76 | return True |
| 77 | else: |
| 78 | if this in seen: |
| 79 | raise RuntimeError( |
| 80 | f'Logger {l.name!r} parents recursive', |
| 81 | ) |
| 82 | seen.add(this) |
| 83 | this = this.parent |
| 84 | if not this: |
| 85 | break |
| 86 | else: # pragma: no cover |
| 87 | raise RuntimeError(f'Logger hierarchy exceeds {max}') |
| 88 | return False |
| 89 | |
| 90 | |
| 91 | def _using_logger_parent(parent_logger, logger_): |