Source code for regparser.layer.meta

import re

from regparser.layer.layer import Layer
from regparser.web.settings import parser as settings


[docs]class Meta(Layer): shorthand = 'meta' def __init__(self, tree, cfr_title, version, **context): super(Meta, self).__init__(tree, **context) self.cfr_title = cfr_title self.version = version
[docs] def process(self, node): """If this is the root element, add some 'meta' information about this regulation, including its cfr title, effective date, and any configured info""" if len(node.label) != 1: return layer = { 'cfr_title_number': self.cfr_title, 'cfr_title_text': settings.CFR_TITLES[self.cfr_title] } if node.title: # up till the paren match = re.search(r'part \d+[^\w]*([^\(]*)', node.title, re.I) if match: layer['statutory_name'] = match.group(1).strip() match = re.search(r'\(regulation (\w+)\)', node.title, re.I) if match: layer['reg_letter'] = match.group(1) effective_date = self.effective_date() if effective_date: layer['effective_date'] = effective_date result = {} result.update(layer) result.update(settings.META) return [result]
[docs] def effective_date(self): if self.version and self.version.effective: return self.version.effective.isoformat()