Пример #1
0
    def get_metadata_xml(herds=(), maintainers=(), local_use=(), longdescription=None):
        hs = ms = us = ls = ""
        if herds:
            hs = "<herd>%s</herd>\n" % "</herd><herd>".join(herds)
        if maintainers:
            ms = []
            for x in maintainers:
                ms.append("<email>%s</email>" % x[0])
                if len(x) > 1:
                    ms[-1] = "%s\n<name>%s</name>" % (ms[-1], x[1])
            ms = "<maintainer>%s</maintainer>\n" % \
                "</maintainer><maintainer>".join(ms)
        if local_use:
            us = ['<use>']
            for flag in local_use:
                us.append('<flag name="%s">use flag description</flag>' % flag)
            us.append('</use>')
            us = '\n'.join(us)
        if longdescription:
            ls = "<longdescription>%s</longdescription>\n" % longdescription
        s = \
"""<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
%s%s%s%s</pkgmetadata>""" % (hs, ms, us, ls)
        return repo_objs.MetadataXml(data_source(s.encode('utf-8')))
Пример #2
0
    def get_metadata_xml(maintainers=(),
                         comments=(),
                         local_use={},
                         longdescription=None,
                         maint_type=None):
        cs = '\n'.join(comments)
        ms = us = ls = ""
        if maintainers:
            ms = []
            for x in maintainers:
                ms.append(f"<email>{x[0]}</email>")
                if len(x) > 1:
                    ms[-1] += f"\n<name>{x[1]}</name>"
                if len(x) > 2:
                    ms[-1] += f"\n<description>{x[2]}</description>"
                if len(x) > 3:
                    raise ValueError('maintainer data has too many fields')
            maint_type = (f'type="{maint_type}"'
                          if maint_type is not None else '')
            ms = '\n'.join(f'<maintainer {maint_type}>{x}</maintainer>'
                           for x in ms)
        if local_use:
            us = ['<use>']
            for flag, desc in local_use.items():
                us.append(f'<flag name="{flag}">{desc}</flag>')
            us.append('</use>')
            us = '\n'.join(us)
        if longdescription:
            ls = f"<longdescription>{longdescription}</longdescription>\n"
        s = \
f"""<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
{cs}{ms}{us}{ls}</pkgmetadata>"""
        return repo_objs.MetadataXml(data_source(s.encode('utf-8')))
Пример #3
0
    def get_metadata_xml(maintainers=(), local_use={}, longdescription=None):
        hs = ms = us = ls = ""
        if maintainers:
            ms = []
            for x in maintainers:
                ms.append(f"<email>{x[0]}</email>")
                if len(x) > 1:
                    ms[-1] = f"{ms[-1]}\n<name>{x[1]}</name>"
            ms = "<maintainer>%s</maintainer>\n" % "</maintainer><maintainer>".join(
                ms)
        if local_use:
            us = ['<use>']
            for flag, desc in local_use.items():
                us.append(f'<flag name="{flag}">{desc}</flag>')
            us.append('</use>')
            us = '\n'.join(us)
        if longdescription:
            ls = f"<longdescription>{longdescription}</longdescription>\n"
        s = \
f"""<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
{hs}{ms}{us}{ls}</pkgmetadata>"""
        return repo_objs.MetadataXml(data_source(s.encode('utf-8')))
Пример #4
0
 def generic_metadata_xml(self, attr):
     m = repo_objs.MetadataXml(None)
     object.__setattr__(m, "_"+attr, "foon")
     object.__setattr__(m, "_source", None)
     o = self.make_shared_pkg_data(metadata_xml=m)
     assert getattr(o, attr) == "foon"