def test_other(self): c = Converter('Man', file='diff.man') c.translate() text = c.html.render() text = c.change_special_symbols(text) doc = tags.html(lang='en') doc = add_head(doc) doc_body = tags.body() row = tags.div(cls='row') row = add_row(row, 'GCC(1)', '', 'GCC(1)') doc_body.add(row) with doc_body: paragraph = tags.p() paragraph.add(tags.br()) paragraph.add('\n\\f(CW c c-header cpp-output\\fP') paragraph.add(tags.br()) paragraph.add(tags.br()) def_list = tags.dl() def_termin = tags.dt() def_termin.add('\n') def_termin.add('\\fB-x none\\fR') def_def = tags.dd(cls='indent') def_def.add('\nstandard_output.') def_list.add(def_termin) def_list.add(def_def) row = tags.div(cls='row') row = add_row(row, '', '2018-07-20', 'GCC(1)') doc_body.add(row) doc.add(doc_body) doc = c.change_special_symbols(doc.render()) self.assertEqual(doc, text)
def add_indent_paragraph(self, line): line = self.select_quotes(self.remove_operator(line)) if len(line) > 1: self.indent = int(line[1]) self.paragraph = None if self.div_subheader: par = self.div_subheader.add(tags.dl()) elif self.div_header: par = self.div_header.add(tags.dl()) else: par = self.body.add(tags.dl()) if len(line[0]) < self.indent: self.paragraph = par.add(tags.dt(cls='short')) else: self.paragraph = par.add(tags.dt()) if not self.process_line(line[0]): self.add_roman(line[0]) self.paragraph = par.add(tags.dd(cls='indent'))
def convert(self, limit, level=1): root = super().convert(limit) dl = tags.dl() dl += self._create_description('Number of trajectories', limit.number_trajectories) root += dl return root
def convert(self, analysis, level=1): root = super().convert(analysis, level) dl = tags.dl() dl += self._create_description('Detector', analysis.photon_detector.name) root += dl return root
def test_file_structure(self): c = Converter('Man', file='structured_file.man') c.translate() text = c.html.render() text = c.change_special_symbols(text) doc = tags.html(lang='en') doc = add_head(doc) doc_body = tags.body() row = tags.div(cls='row') row = add_row(row, 'BASH(1)', '', 'BASH(1)') doc_body.add(row) with doc_body: tags.h2('NAME') content = tags.div(cls='content') paragraph = tags.p() paragraph += '\ngrep, egrep, fgrep, rgrep' content.add(paragraph) content.add(tags.h4('Simple Commands')) content2 = tags.div(cls='content') content2.add(tags.br()) paragraph = tags.p() paragraph += '\nA \\fIsimple command\\fP' content2.add(paragraph) def_list = tags.dl() def_termin = tags.dt() def_termin.add('\nInterpret') def_list.add(def_termin) def_list.add(tags.dd(cls='indent')) content2.add(def_list) def_list = tags.dl() def_termin = tags.dt(cls='short') def_termin.add((tags.b('%%'))) def_list.add(def_termin) def_def = tags.dd(cls='indent') def_def.add('\nA literal') def_list.add(def_def) content2.add(def_list) content.add(content2) row = tags.div(cls='row') row = add_row(row, 'GNU Bash 4.4', '2016-08-26', 'BASH(1)') doc_body.add(row) doc.add(doc_body) doc = c.change_special_symbols(doc.render()) self.assertEqual(doc, text)
def add_hanging_paragraph(self, line): x = self.remove_operator(line) if x: self.indent = int(x) self.paragraph = None if self.div_subheader: par = self.div_subheader.add(tags.dl()) elif self.div_header: par = self.div_header.add(tags.dl()) else: par = self.body.add(tags.dl()) next_line = next(self.iterator) if len(self.remove_operator(next_line)) < self.indent: self.paragraph = par.add(tags.dt(cls='short')) else: self.paragraph = par.add(tags.dt()) if not self.process_line(next_line): self.add_roman(next_line) self.paragraph = par.add(tags.dd(cls='indent'))
def convert(self, beam, level=1): root = super().convert(beam, level=1) dl = tags.dl() dl += self._create_description('Energy', beam.energy_eV, 'eV', Beam.ENERGY_TOLERANCE_eV) dl += self._create_description('Particle', beam.particle) root += dl return root
def convert(self, sample, level=1): root = super().convert(sample, level=1) root += self._create_header(level, 'Substrate') dl = tags.dl() dl += self._create_description('Material', sample.substrate_material.name) root += dl return root
def convert(self, sample, level=1): root = super().convert(sample, level) root += self._create_header(level, 'Substrate') dl = tags.dl() dl += self._create_description('Material', sample.substrate_material.name) root += dl root += self._create_header(level, 'Inclusion') dl = tags.dl() dl += self._create_description('Material', sample.inclusion_material.name) dl += self._create_description( 'Diameter', sample.inclusion_diameter_m, 'm', InclusionSample.INCLUSION_DIAMETER_TOLERANCE_m) root += dl return root
def convert(self, sample, level=1): root = super().convert(sample, level) root += self._create_header(level, 'Sphere') dl = tags.dl() dl += self._create_description('Material', sample.material.name) dl += self._create_description('Diameter', sample.diameter_m, 'm', SphereSample.DIAMETER_TOLERANCE_m) root += dl return root
def convert(self, limit, level=1): root = super().convert(limit) dl = tags.dl() dl += self._create_description('X-ray line', limit.xrayline) dl += self._create_description('Detector', limit.detector.name) dl += self._create_description( 'Uncertainty', limit.uncertainty, tolerance=UncertaintyLimit.UNCERTAINTY_TOLERANCE) root += dl return root
def convert(self, sample, level=1): root = super().convert(sample, level=1) root += self._create_header(level, 'Angles') dl = tags.dl() dl += self._create_description('Tilt', sample.tilt_rad, 'rad', Sample.TILT_TOLERANCE_rad) dl += self._create_description('Azimuth', sample.azimuth_rad, 'rad', Sample.AZIMUTH_TOLERANCE_rad) root += dl root += self._create_header(level, 'Material(s)') root += self._create_table_objects(sample.materials) return root
def convert(self, sample, level=1): root = super().convert(sample, level=1) root += self._create_header(level, 'Substrates') dl = tags.dl() dl += self._create_description('Left material', sample.left_material.name) dl += self._create_description('Right material', sample.right_material.name) dl += self._create_description('Depth', sample.depth_m, 'm', VerticalLayerSample.DEPTH_TOLERANCE_m) root += dl return root
def dump_single_val(value): if isinstance(value, str): return text_or_ptr(value) elif isinstance(value, dict): if value.get("shortval"): return value["shortval"] elif value.get("type") == "romdata": return "romdata" sdl = t.dl() dump_dict(sdl, value) return sdl elif isinstance(value, list): ul = t.ul() for subval in value: ul.add(t.li(dump_single_val(subval))) return ul else: return str(value)
def convert(self, options, level=1): root = super().convert(options, level=1) root += self._create_header(level, 'Program') dl = tags.dl() dl += self._create_description('Identifier', options.program.getidentifier()) root += dl classname = camelcase_to_words(options.beam.__class__.__name__) root += self._create_header(level, classname) root += self._find_and_convert(options.beam, level + 1).children classname = camelcase_to_words(options.sample.__class__.__name__) root += self._create_header(level, classname) root += self._find_and_convert(options.sample, level + 1).children root += self._create_header(level, 'Detectors') for clasz, detectors in organize_by_type(options.detectors).items(): classname = camelcase_to_words(clasz.__name__) root += self._create_header(level + 1, classname) root += self._create_table_objects(detectors) root += self._create_header(level, 'Analyses') for analysis in options.analyses: classname = camelcase_to_words(analysis.__class__.__name__) root += self._create_header(level + 1, classname) root += self._find_and_convert(analysis, level + 1) root += self._create_header(level, 'Limits') for limit in options.limits: classname = camelcase_to_words(limit.__class__.__name__) root += self._create_header(level + 1, classname) root += self._find_and_convert(limit, level + 1) root += self._create_header(level, 'Models') root += self._create_table_objects(options.models) return root
ul.add(t.li(dump_single_val(subval))) return ul else: return str(value) def dump_dict(dl, d): for key, value in d.items(): dl.add(t.dt(key)) dl.add(t.dd(dump_single_val(value))) for item in allobjs: div = t.div(cls="entry") div.add(t.a("{", name=item.ptr)) dl = t.dl() dl.add(t.dt("Inferred name:")) dl.add(t.dd(str(item.name()))) dl.add(t.dt("Backrefs:")) refs = t.dd() for backref in item.backlinks: refs.add(text_or_ptr(backref.ptr)) refs.add(", ") dl.add(refs) dump_dict(dl, item.item) div.add(dl) doc.add(div) print("Writing to memorymap.html...") with open("memorymap.html", "w") as f: f.write(doc.render(pretty=False))