Source code for datconv.filters.delfield
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""General Filter that allows to remove certain fields from record."""
# Libs installed using pip
from lxml import etree
# Datconv packages
from . import WRITE
Log = None
"""Log varaible is automatically set by main pandoc script using logging.getLogger method.
Use it for logging messages in need.
"""
[docs]class DCFilter:
"""Please see constructor description for more details."""
def __init__(self, field = []):
"""Constructor parameters are usually passed from YAML file as subkeys of Filter:CArg key.
:param field: list of fields to remove. Fields must be in form of XPaths understandable by lxml.etree._Element.find method (relative paths)
For more detailed descriptions see :ref:`conf_template.yaml <filters_conf_template>` file in this module folder.
"""
assert Log is not None
self._fields = field
def filterRecord(self, record):
for fld in self._fields:
tag = record.find(fld)
if tag is not None:
record.remove(tag)
return WRITE