def main(options): """Entry point for the HTML5 Linter.""" # Wrap sys stdout for python 2, so print can understand unicode. if sys.version_info[0] < 3: sys.stdout = codecs.getwriter('utf-8')(sys.stdout) disable_str = options.get('--disable') or '' disable = disable_str.split(',') invalid_disable = set(disable) - set(_DISABLE_MAP.keys()) - set(('', )) if invalid_disable: sys.stderr.write('Invalid --disable arguments: %s\n\n' % ', '.join(invalid_disable)) sys.stderr.write(__doc__) return 1 exclude = [_DISABLE_MAP[d] for d in disable if d in _DISABLE_MAP] filenames = options.get('FILENAME', []) results = False for filename in filenames: clean_html = template_remover.clean(io.open(filename).read()) result = lint(clean_html, exclude=exclude) if result: print(result) results = True if results: return 2 return 0
def handle(self, *args, **options): errors_found = 0 for template in get_templates(): with template.open() as f: content = f.read() content = template_remover.clean(content) exclude = ( html_linter.ProtocolMessage, html_linter.TypeAttributeMessage, html_linter.ExtraWhitespaceMessage, ) lines = content.splitlines() levels = {'Error', 'Warning'} result = html_linter.HTML5Linter(content) for message in result.messages: if message.level in levels and not isinstance(message, exclude): self.stdout.write(' File "%s", line %d, in <template>' % (template, message.line)) self.stdout.write(' %s' % lines[message.line - 1].strip()) self.stdout.write('%s: %s: %s: %s' % ( message.level, message.category, message.description, message.message, )) self.stdout.write('') errors_found += 1 if errors_found > 0: raise CommandError('Number of errors found: %d.' % errors_found)
def main(): """Entry point for the HTML5 Linter.""" # Wrap sys stdout for python 2, so print can understand unicode. if sys.version_info[0] < 3: sys.stdout = codecs.getwriter("utf-8")(sys.stdout) options = docopt.docopt(__doc__, help=True, version='html5_lint v%s' % __VERSION__) disable_str = options['--disable'] or '' disable = disable_str.split(',') invalid_disable = set(disable) - set(_DISABLE_MAP.keys()) - set(('', )) if invalid_disable: sys.stderr.write('Invalid --disable arguments: %s\n\n' % ', '.join(invalid_disable)) sys.stderr.write(__doc__) return 1 exclude = [_DISABLE_MAP[d] for d in disable if d in _DISABLE_MAP] clean_html = template_remover.clean(io.open(options['FILENAME']).read()) print(html_linter.lint(clean_html, exclude=exclude)) return 0
def main(options): """Entry point for the HTML5 Linter.""" # Wrap sys stdout for python 2, so print can understand unicode. if sys.version_info[0] < 3: sys.stdout = codecs.getwriter('utf-8')(sys.stdout) disable_str = options.get('--disable') or '' disable = disable_str.split(',') invalid_disable = set(disable) - set(_DISABLE_MAP.keys()) - set(('',)) if invalid_disable: sys.stderr.write( 'Invalid --disable arguments: %s\n\n' % ', '.join(invalid_disable)) sys.stderr.write(__doc__) return 1 exclude = [_DISABLE_MAP[d] for d in disable if d in _DISABLE_MAP] filenames = options.get('FILENAME', []) results = False for filename in filenames: clean_html = template_remover.clean(io.open(filename).read()) result = lint(clean_html, exclude=exclude) if result: print(result) results = True if results: return 2 return 0
def main(): """Entry point for remove_template.""" # Wrap sys stdout for python 2, so print can understand unicode. if sys.version_info[0] < 3: sys.stdout = codecs.getwriter("utf-8")(sys.stdout) options = docopt.docopt(__doc__, help=True, version='template_remover v%s' % __VERSION__) print(template_remover.clean(io.open(options['FILENAME']).read())) return 0
def main(options): """Entry point for the HTML5 Linter.""" # Wrap sys stdout for python 2, so print can understand unicode. if sys.version_info[0] < 3: sys.stdout = codecs.getwriter('utf-8')(sys.stdout) print_filename = options.get('--printfilename') disable_str = options.get('--disable') or '' disable = disable_str.split(',') invalid_disable = set(disable) - set(_DISABLE_MAP.keys()) - set(('',)) if invalid_disable: sys.stderr.write( 'Invalid --disable arguments: %s\n\n' % ', '.join(invalid_disable)) sys.stderr.write(__doc__) return 1 exclude = [_DISABLE_MAP[d] for d in disable if d in _DISABLE_MAP] filenames = [] if options.get('--recursive'): directory = options.get('DIRECTORY') for root, dirnames, names in os.walk(directory): filenames.extend([os.path.join(root, name) \ for name in names if name.endswith('.html')]) else: filenames = options.get('FILENAME', []) results = False for filename in filenames: clean_html = template_remover.clean(io.open(filename).read()) result = lint(clean_html, exclude=exclude) if result: if print_filename: result = "{}:{}".format(filename, result) print(result) results = True if results: return 2 return 0
def handle(self, *args, **options): errors_found = 0 for template in get_templates(): with template.open() as f: content = f.read() content = template_remover.clean(content) exclude = ( html_linter.ProtocolMessage, html_linter.TypeAttributeMessage, html_linter.ExtraWhitespaceMessage, ) lines = content.splitlines() levels = {'Error', 'Warning'} result = html_linter.HTML5Linter(content) for message in result.messages: if message.level in levels and not isinstance( message, exclude): self.stdout.write(' File "%s", line %d, in <template>' % (template, message.line)) self.stdout.write(' %s' % lines[message.line - 1].strip()) self.stdout.write('%s: %s: %s: %s' % ( message.level, message.category, message.description, message.message, )) self.stdout.write('') errors_found += 1 if errors_found > 0: raise CommandError('Number of errors found: %d.' % errors_found)
def test_clean_invalid_pattern(self): with self.assertRaises(AssertionError): template_remover.clean('foo', re.compile(r'\w'))
def clean_string(text): text = template_remover.clean(text) bs = BeautifulSoup(text, "html.parser") return " ".join(s for s in bs.stripped_strings if "amcharts" not in s.lower()).strip()