Files
california-equity-git/.venv/lib/python3.12/site-packages/fiona/logutils.py
2024-09-28 22:58:22 -07:00

37 lines
872 B
Python

"""Logging helper classes."""
import logging
class FieldSkipLogFilter(logging.Filter):
"""Filter field skip log messages.
At most, one message per field skipped per loop will be passed.
"""
def __init__(self, name=''):
super().__init__(name)
self.seen_msgs = set()
def filter(self, record):
"""Pass record if not seen."""
msg = record.getMessage()
if msg.startswith("Skipping field"):
retval = msg not in self.seen_msgs
self.seen_msgs.add(msg)
return retval
else:
return 1
class LogFiltering:
def __init__(self, logger, filter):
self.logger = logger
self.filter = filter
def __enter__(self):
self.logger.addFilter(self.filter)
def __exit__(self, *args, **kwargs):
self.logger.removeFilter(self.filter)