Beispiel #1
0
    def _parse_basic_info(self):

        self._info['vendor'] = self._get_field(VENDOR_XPATH, self._resource_description).strip()
        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(_('ERROR: the format of the vendor is invalid.'))

        self._info['name'] = self._get_field(NAME_XPATH, self._resource_description).strip()
        if not is_valid_name(self._info['name']):
            raise TemplateParseException(_('ERROR: the format of the name is invalid.'))

        self._info['version'] = self._get_field(VERSION_XPATH, self._resource_description).strip()
        if not is_valid_version(self._info['version']):
            raise TemplateParseException(_('ERROR: the format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'))

        self._info['display_name'] = self._get_field(DISPLAY_NAME_XPATH, self._resource_description, required=False)
        self._add_translation_index(self._info['display_name'], type='resource', field='display_name')

        if not self._info['display_name']:
            self._info['display_name'] = self._info['name']

        self._info['description'] = self._get_field(DESCRIPTION_XPATH, self._resource_description, required=False)
        self._add_translation_index(self._info['description'], type='resource', field='description')

        self._info['author'] = self._get_field(AUTHOR_XPATH, self._resource_description, required=False)
        self._info['email'] = self._get_field(MAIL_XPATH, self._resource_description)
        self._get_url_field('image_uri', IMAGE_URI_XPATH, self._resource_description, required=False)
        self._get_url_field('doc_uri', DOC_URI_XPATH, self._resource_description, required=False)
        self._parse_requirements()
Beispiel #2
0
    def _parse_basic_info(self):

        self._info["vendor"] = self._get_field(VENDOR_XPATH, self._resource_description).strip()
        if not is_valid_vendor(self._info["vendor"]):
            raise TemplateParseException(_("ERROR: the format of the vendor is invalid."))

        self._info["name"] = self._get_field(NAME_XPATH, self._resource_description).strip()
        if not is_valid_name(self._info["name"]):
            raise TemplateParseException(_("ERROR: the format of the name is invalid."))

        self._info["version"] = self._get_field(VERSION_XPATH, self._resource_description).strip()
        if not is_valid_version(self._info["version"]):
            raise TemplateParseException(
                _(
                    'ERROR: the format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'
                )
            )

        self._info["display_name"] = self._get_field(DISPLAY_NAME_XPATH, self._resource_description, required=False)
        self._add_translation_index(self._info["display_name"], type="resource", field="display_name")

        if not self._info["display_name"]:
            self._info["display_name"] = self._info["name"]

        self._info["description"] = self._get_field(DESCRIPTION_XPATH, self._resource_description, required=False)
        self._add_translation_index(self._info["description"], type="resource", field="description")

        self._info["author"] = self._get_field(AUTHOR_XPATH, self._resource_description, required=False)
        self._info["email"] = self._get_field(MAIL_XPATH, self._resource_description)
        self._info["image_uri"] = self._get_field(IMAGE_URI_XPATH, self._resource_description, required=False)
        self._info["iphone_image_uri"] = self._get_field(
            IPHONE_IMAGE_URI_XPATH, self._resource_description, required=False
        )
        self._info["doc_uri"] = self._get_field(DOC_URI_XPATH, self._resource_description, required=False)
        self._parse_requirements()
Beispiel #3
0
    def _parse_basic_info(self):

        self._info['vendor'] = self._get_field(VENDOR_XPATH, self._resource_description).strip()
        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(_('The format of the vendor is invalid.'))

        self._info['name'] = self._get_field(NAME_XPATH, self._resource_description).strip()
        if not is_valid_name(self._info['name']):
            raise TemplateParseException(_('The format of the name is invalid.'))

        self._info['version'] = self._get_field(VERSION_XPATH, self._resource_description).strip()
        if not is_valid_version(self._info['version']):
            raise TemplateParseException(_('ERROR: the format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'))

        self._info['title'] = self._get_field(DISPLAY_NAME_XPATH, self._resource_description, required=False)
        self._add_translation_index(self._info['title'], type='resource', field='title')

        self._info['description'] = self._get_field(DESCRIPTION_XPATH, self._resource_description, required=False)
        self._add_translation_index(self._info['description'], type='resource', field='description')
        self._info['longdescription'] = self._get_field(LONG_DESCRIPTION_XPATH, self._resource_description, required=False)

        self._info['authors'] = parse_contacts_info(self._get_field(AUTHOR_XPATH, self._resource_description, required=False))
        self._info['contributors'] = parse_contacts_info(self._get_field(CONTRIBUTORS_XPATH, self._resource_description, required=False))
        self._info['email'] = self._get_field(MAIL_XPATH, self._resource_description, required=False)
        self._info['image'] = self._get_field(IMAGE_URI_XPATH, self._resource_description, required=False)
        self._info['smartphoneimage'] = self._get_field(IPHONE_IMAGE_URI_XPATH, self._resource_description, required=False)
        self._info['homepage'] = self._get_field(HOMEPAGE_URI_XPATH, self._resource_description, required=False)
        self._info['doc'] = self._get_field(DOC_URI_XPATH, self._resource_description, required=False)
        self._info['license'] = self._get_field(LICENCE_XPATH, self._resource_description, required=False)
        self._info['licenseurl'] = self._get_field(LICENCE_URL_XPATH, self._resource_description, required=False)
        self._info['issuetracker'] = self._get_field(ISSUETRACKER_XPATH, self._resource_description, required=False)
        self._info['changelog'] = self._get_field(CHANGE_LOG_XPATH, self._resource_description, required=False)
        self._parse_requirements()
Beispiel #4
0
    def get_resource_info(self):

        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(_('ERROR: the format of the vendor is invalid.'))

        if not is_valid_name(self._info['name']):
            raise TemplateParseException(_('ERROR: the format of the name is invalid.'))

        if not is_valid_version(self._info['version']):
            raise TemplateParseException(_('ERROR: the format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'))

        return dict(self._info)
Beispiel #5
0
    def get_resource_info(self):

        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(_('The format of the vendor is invalid.'))

        if not is_valid_name(self._info['name']):
            raise TemplateParseException(_('The format of the name is invalid.'))

        if not is_valid_version(self._info['version']):
            raise TemplateParseException(_('The format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'))

        return dict(self._info)
Beispiel #6
0
    def _parse_basic_info(self):

        self._info['translations'] = {}

        # ------------------------------------------
        if self._info['type'] == 'widget':
            self._rootURI = self._graph.subjects(RDF['type'], WIRE['Widget']).next()
        elif self._info['type'] == 'mashup':
            self._rootURI = self._graph.subjects(RDF['type'], WIRE_M['Mashup']).next()
        elif self._info['type'] == 'operator':
            self._rootURI = self._graph.subjects(RDF['type'], WIRE['Operator']).next()

        vendor = self._get_field(USDL, 'hasProvider', self._rootURI, id_=True)
        self._info['vendor'] = self._get_field(FOAF, 'name', vendor)
        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(_('ERROR: the format of the vendor is invalid.'))

        self._info['name'] = self._get_field(DCTERMS, 'title', self._rootURI)
        if not is_valid_name(self._info['name']):
            raise TemplateParseException(_('ERROR: the format of the name is invalid.'))

        self._info['version'] = self._get_field(USDL, 'versionInfo', self._rootURI)
        if not is_valid_version(self._info['version']):
            raise TemplateParseException(_('ERROR: the format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'))

        license = self._get_field(DCTERMS, 'license', self._rootURI, required=False, default=None, id_=True)
        if license is not None:
            self._info['licenseurl'] = unicode(license)
            self._info['license'] = self._get_field(RDFS, 'label', license, required=False)
        else:
            self._info['licenseurl'] = ''
            self._info['license'] = ''

        self._info['description'] = self._get_translation_field(DCTERMS, 'description', self._rootURI, 'description', type='resource', field='description')

        authors = self._get_field(DCTERMS, 'creator', self._rootURI, required=False, id_=True)
        self._info['authors'] = self._get_field(FOAF, 'name', authors, required=False)

        self._info['image'] = self._get_field(WIRE, 'hasImageUri', self._rootURI, required=False)
        self._info['smartphoneimage'] = self._get_field(WIRE, 'hasiPhoneImageUri', self._rootURI, required=False)

        self._info['doc'] = self._get_field(FOAF, 'page', self._rootURI, required=False)

        self._info['title'] = self._get_translation_field(WIRE, 'displayName', self._rootURI, 'title', required=False, type='resource', field='title')

        addr_element = self._get_field(VCARD, 'addr', self._rootURI, id_=True)
        self._info['email'] = self._get_field(VCARD, 'email', addr_element)
        self._parse_requirements()
Beispiel #7
0
    def _parse_basic_info(self):

        self._info['vendor'] = self._get_field(
            VENDOR_XPATH, self._resource_description).strip()
        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(
                _('The format of the vendor is invalid.'))

        self._info['name'] = self._get_field(
            NAME_XPATH, self._resource_description).strip()
        if not is_valid_name(self._info['name']):
            raise TemplateParseException(
                _('The format of the name is invalid.'))

        self._info['version'] = self._get_field(
            VERSION_XPATH, self._resource_description).strip()
        if not is_valid_version(self._info['version']):
            raise TemplateParseException(
                _('ERROR: the format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'
                  ))

        self._info['title'] = self._get_field(DISPLAY_NAME_XPATH,
                                              self._resource_description,
                                              required=False)
        self._add_translation_index(self._info['title'],
                                    type='resource',
                                    field='title')

        self._info['description'] = self._get_field(DESCRIPTION_XPATH,
                                                    self._resource_description,
                                                    required=False)
        self._add_translation_index(self._info['description'],
                                    type='resource',
                                    field='description')
        self._info['longdescription'] = self._get_field(
            LONG_DESCRIPTION_XPATH, self._resource_description, required=False)

        self._info['authors'] = parse_contacts_info(
            self._get_field(AUTHOR_XPATH,
                            self._resource_description,
                            required=False))
        self._info['contributors'] = parse_contacts_info(
            self._get_field(CONTRIBUTORS_XPATH,
                            self._resource_description,
                            required=False))
        self._info['email'] = self._get_field(MAIL_XPATH,
                                              self._resource_description,
                                              required=False)
        self._info['image'] = self._get_field(IMAGE_URI_XPATH,
                                              self._resource_description,
                                              required=False)
        self._info['smartphoneimage'] = self._get_field(
            IPHONE_IMAGE_URI_XPATH, self._resource_description, required=False)
        self._info['homepage'] = self._get_field(HOMEPAGE_URI_XPATH,
                                                 self._resource_description,
                                                 required=False)
        self._info['doc'] = self._get_field(DOC_URI_XPATH,
                                            self._resource_description,
                                            required=False)
        self._info['license'] = self._get_field(LICENCE_XPATH,
                                                self._resource_description,
                                                required=False)
        self._info['licenseurl'] = self._get_field(LICENCE_URL_XPATH,
                                                   self._resource_description,
                                                   required=False)
        self._info['issuetracker'] = self._get_field(
            ISSUETRACKER_XPATH, self._resource_description, required=False)
        self._info['changelog'] = self._get_field(CHANGE_LOG_XPATH,
                                                  self._resource_description,
                                                  required=False)
        self._parse_requirements()
Beispiel #8
0
    def _parse_basic_info(self):

        self._info['translations'] = {}

        # ------------------------------------------
        if self._info['type'] == 'widget':
            self._rootURI = next(self._graph.subjects(RDF['type'], WIRE['Widget']))
        elif self._info['type'] == 'mashup':
            self._rootURI = next(self._graph.subjects(RDF['type'], WIRE_M['Mashup']))
        elif self._info['type'] == 'operator':
            self._rootURI = next(self._graph.subjects(RDF['type'], WIRE['Operator']))

        vendor = self._get_field(USDL, 'hasProvider', self._rootURI, id_=True)
        self._info['vendor'] = self._get_field(FOAF, 'name', vendor)
        if not is_valid_vendor(self._info['vendor']):
            raise TemplateParseException(_('The format of the vendor is invalid.'))

        self._info['name'] = self._get_field(DCTERMS, 'title', self._rootURI)
        if not is_valid_name(self._info['name']):
            raise TemplateParseException(_('The format of the name is invalid.'))

        self._info['version'] = self._get_field(USDL, 'versionInfo', self._rootURI)
        if not is_valid_version(self._info['version']):
            raise TemplateParseException(_('The format of the version number is invalid. Format: X.X.X where X is an integer. Ex. "0.1", "1.11" NOTE: "1.01" should be changed to "1.0.1" or "1.1"'))

        license = self._get_field(DCTERMS, 'license', self._rootURI, required=False, default=None, id_=True)
        if license is not None:
            self._info['licenseurl'] = text_type(license)
            self._info['license'] = self._get_field(RDFS, 'label', license, required=False)
        else:
            self._info['licenseurl'] = ''
            self._info['license'] = ''

        longdescription = self._get_field(DCTERMS, 'description', self._rootURI, id_=True, required=False)
        if longdescription != '' and isinstance(longdescription, rdflib.Literal):
            # Old and deprecated behaviour
            self._info['description'] = self._get_translation_field(DCTERMS, 'description', self._rootURI, 'description', required=False, type='resource', field='description')
            self._info['longdescription'] = ''
        else:
            self._info['longdescription'] = '%s' % longdescription
            self._info['description'] = self._get_translation_field(DCTERMS, 'abstract', self._rootURI, 'description', required=False, type='resource', field='description')

        self._info['authors'] = self._parse_people_field(DCTERMS, 'creator', self._rootURI)
        self._info['contributors'] = self._parse_people_field(DCTERMS, 'contributor', self._rootURI)

        self._info['image'] = self._get_field(WIRE, 'hasImageUri', self._rootURI, required=False)
        self._info['smartphoneimage'] = self._get_field(WIRE, 'hasiPhoneImageUri', self._rootURI, required=False)

        self._info['changelog'] = self._get_field(WIRE, 'hasChangeLog', self._rootURI, required=False)
        self._info['homepage'] = self._get_field(FOAF, 'homepage', self._rootURI, required=False)
        self._info['issuetracker'] = self._get_field(DOAP, 'bug-database', self._rootURI, required=False)
        self._info['doc'] = self._get_field(FOAF, 'page', self._rootURI, required=False)

        self._info['title'] = self._get_translation_field(WIRE, 'displayName', self._rootURI, 'title', required=False, type='resource', field='title')

        self._info['email'] = ''
        addr_element = self._get_field(VCARD, 'addr', self._rootURI, id_=True, default=None, required=False)
        if addr_element is not None:
            self._info['email'] = self._get_field(VCARD, 'email', addr_element, required=False)

        self._parse_requirements()