datatracker/ietf/submit/parsers/base.py
Emilio A. Sánchez López 37458917e0 Make critical parsing explicit. See #584
- Legacy-Id: 2828
2011-02-08 15:40:45 +00:00

51 lines
1.3 KiB
Python

import re
CUTOFF_HOUR = 17
class MetaDataDraft(object):
revision = None
filename = None
group = None
filesize = None
first_two_pages = None
page_count = None
submission_date = None
creation_date = None
authors = None
class ParseInfo(object):
def __init__(self):
self.errors = []
self.warnings = {}
self.metadraft = MetaDataDraft()
def add_error(self, error_str):
self.errors.append(error_str)
def add_warning(self, warning_type, warning_str):
warn_list = self.warnings.get(warning_type, [])
self.warnings[warning_type] = warn_list + [warning_str]
class FileParser(object):
def __init__(self, fd):
self.fd = fd
self.parsed_info = ParseInfo()
# If some error is found after this method invocation
# no other file parsing is recommended
def critical_parse(self):
self.parse_invalid_chars_in_filename()
return self.parsed_info
def parse_invalid_chars_in_filename(self):
name = self.fd.name
regexp = re.compile(r'&|\|\/|;|\*|\s|\$')
chars = regexp.findall(name)
if chars:
self.parsed_info.add_error('Invalid characters were found in the name of the file which was just submitted: %s' % ', '.join(set(chars)))