示例#1
0
def _write_issue_status(scope):
    """Writes ES-DOC errata status terms.

    """
    collection = pyessv.create_collection(scope,
                                          'status',
                                          create_date=utils.CREATE_DATE,
                                          label='Status',
                                          description="Errata status codes")

    pyessv.create_term(collection,
                       'new',
                       create_date=utils.CREATE_DATE,
                       label='New',
                       data={'color': '#00ff00'})

    pyessv.create_term(collection,
                       'onhold',
                       create_date=utils.CREATE_DATE,
                       label='On Hold',
                       data={'color': '#ff9900'})

    pyessv.create_term(collection,
                       'resolved',
                       create_date=utils.CREATE_DATE,
                       label='Resolved',
                       data={'color': '#0c343d'})
    pyessv.create_term(collection,
                       'wontfix',
                       create_date=utils.CREATE_DATE,
                       label='Wont Fix',
                       data={'color': '#38761d'})
def _create_term(collection, raw_name, data):
    """Creates & returns a new term.

    """
    try:
        description = data['description']
    except (TypeError, KeyError):
        description = None


#    else:
#        del data['description']

    try:
        label = data['label']
    except (TypeError, KeyError):
        label = raw_name
    else:
        del data['label']

    term = pyessv.create_term(collection,
                              raw_name,
                              description=description,
                              label=label,
                              create_date=_CREATE_DATE,
                              data=data)
示例#3
0
文件: map.py 项目: glevava/pyessv
def _get_term(collection, term_info):
    """Factory method to return vocabulary term.

    """
    # Unpack term information.
    name = label = description = synonym = None
    if isinstance(term_info, basestring):
        name = term_info
    else:
        try:
            name, label, description, synonym = term_info
        except ValueError:
            try:
                name, label, description = term_info
            except ValueError:
                try:
                    name, label = term_info
                except ValueError:
                    name = term_info

    alternative_names = [] if synonym is None else [synonym]

    if name.lower().replace('_',
                            '-') in [term.name for term in collection.terms]:
        term = collection[name.lower().replace('_', '-')]
        term.label = label
        term.description = description
        term.alternative_names = alternative_names
        return term
    else:
        return pyessv.create_term(collection,
                                  name,
                                  label=label,
                                  description=description,
                                  alternative_names=alternative_names)
示例#4
0
文件: map.py 项目: agstephens/pyessv
def _get_term(collection, term_info):
    """Factory method to return vocabulary term.

    """
    # Unpack term information.
    name = label = description = synonym = None
    if isinstance(term_info, compat.basestring):
        name = term_info
    else:
        try:
            name, label, description, synonym = term_info
        except ValueError:
            try:
                name, label, description = term_info
            except ValueError:
                try:
                    name, label = term_info
                except ValueError:
                    name = term_info

    alternative_names = [] if synonym is None else [synonym]

    return pyessv.create_term(collection,
                              name,
                              label=label,
                              description=description,
                              alternative_names=alternative_names)
示例#5
0
def _write_pid_task_action(scope):
    """Writes ES-DOC PID task action terms.

    """
    collection = pyessv.create_collection(
        scope,
        'pid-task-action',
        create_date=utils.CREATE_DATE,
        label='Action',
        description="Errata PID task action codes")

    pyessv.create_term(collection,
                       'insert',
                       create_date=utils.CREATE_DATE,
                       label='Insert')

    pyessv.create_term(collection,
                       'delete',
                       create_date=utils.CREATE_DATE,
                       label='Delete')
示例#6
0
def _write_pid_task_status(scope):
    """Writes ES-DOC PID task status terms.

    """
    collection = pyessv.create_collection(
        scope,
        'pid-task-status',
        create_date=utils.CREATE_DATE,
        label='Status',
        description="Errata PID task status codes")

    pyessv.create_term(collection,
                       'complete',
                       create_date=utils.CREATE_DATE,
                       label='Complete',
                       data={'color': '#e6b8af'})

    pyessv.create_term(collection,
                       'error',
                       create_date=utils.CREATE_DATE,
                       label='Error',
                       data={'color': '#a61c00'})

    pyessv.create_term(collection,
                       'queued',
                       create_date=utils.CREATE_DATE,
                       label='Queued',
                       data={'color': '#dd7e6b'})
def _create_collection_cmip6(source, collection_type, data_factory):
    """Creates cmip6 collection from a WCRP JSON files.

    """
    # Load WCRP json data.
    wcrp_cv_data = _get_wcrp_cv(source, collection_type, "CMIP6_")

    # Create collection.
    collection_name = collection_type.replace("_", "-")
    collection = pyessv.create_collection(
        scope=_SCOPE_CMIP6,
        name=collection_name,
        description="WCRP CMIP6 CV collection: ".format(collection_name),
        create_date=_CREATE_DATE)

    # Create terms.
    for name in wcrp_cv_data:
        pyessv.create_term(
            collection=collection,
            name=name,
            description=name,
            create_date=_CREATE_DATE,
            data=data_factory(wcrp_cv_data, name) if data_factory else None)
示例#8
0
def _write_projects(scope):
    """Writes ES-DOC errata project terms.

    """
    collection = pyessv.create_collection(
        scope,
        'project',
        create_date=utils.CREATE_DATE,
        label='Project',
        description="Errata supported project codes")

    pyessv.create_term(collection,
                       'cmip5',
                       create_date=utils.CREATE_DATE,
                       label='CMIP5',
                       data={
                           "facets": [
                               "wcrp:cmip5:institute", "wcrp:cmip5:experiment",
                               "wcrp:cmip5:model", "wcrp:cmip5:variable"
                           ],
                           "is_pid_client":
                           False,
                           "is_documented":
                           True
                       })

    pyessv.create_term(collection,
                       'cmip6',
                       create_date=utils.CREATE_DATE,
                       label='CMIP6',
                       data={
                           "facets": [
                               "wcrp:cmip6:institution-id",
                               "wcrp:cmip6:experiment-id",
                               "wcrp:cmip6:source-id", "wcrp:cmip6:variable-id"
                           ],
                           "is_pid_client":
                           True,
                           "is_documented":
                           True
                       })

    pyessv.create_term(collection,
                       'cordex',
                       create_date=utils.CREATE_DATE,
                       label='CORDEX',
                       data={
                           "facets": [
                               "wcrp:cordex:institute",
                               "wcrp:cordex:experiment",
                               "wcrp:cordex:rcm-model", "wcrp:cordex:variable"
                           ],
                           "is_pid_client":
                           False,
                           "is_documented":
                           False
                       })
示例#9
0
def _write_model_topic(scope):
    """Writes ES-DOC model topics.

    """
    collection = pyessv.create_collection(
        scope,
        'model-topic',
        create_date=utils.CREATE_DATE,
        label='Topics',
        description="Model documentation topics")

    pyessv.create_term(collection,
                       'toplevel',
                       create_date=utils.CREATE_DATE,
                       description='Top Level',
                       label='Top Level')

    for term in pyessv.WCRP.cmip6.realm:
        pyessv.create_term(
            collection,
            term.raw_name,
            create_date=utils.CREATE_DATE,
            label=term.description,
        )
示例#10
0
def _write_issue_severity(scope):
    """Writes ES-DOC errata severity terms.

    """
    collection = pyessv.create_collection(scope,
                                          'severity',
                                          create_date=utils.CREATE_DATE,
                                          label='Severity',
                                          description="Errata severity codes")

    pyessv.create_term(collection,
                       'low',
                       create_date=utils.CREATE_DATE,
                       label='Low',
                       data={
                           'color': '#e6b8af',
                           'sortOrdinal': 0
                       })

    pyessv.create_term(collection,
                       'medium',
                       create_date=utils.CREATE_DATE,
                       label='Medium',
                       data={
                           'color': '#dd7e6b',
                           'sortOrdinal': 1
                       })

    pyessv.create_term(collection,
                       'high',
                       create_date=utils.CREATE_DATE,
                       label='High',
                       data={
                           'color': '#cc4125',
                           'sortOrdinal': 2
                       })

    pyessv.create_term(collection,
                       'critical',
                       create_date=utils.CREATE_DATE,
                       label='Critical',
                       data={
                           'color': '#a61c00',
                           'sortOrdinal': 3
                       })
示例#11
0
def create_term_03(collection=None):
    """Creates & returns a test term.

    """
    global TERM_03

    if TERM_03 is not None:
        return TERM_03

    TERM_03 = LIB.create_term(collection=collection or COLLECTION_03
                              or create_collection_03(),
                              name=TERM_03_NAME,
                              description=TERM_03_DESCRIPTION,
                              alternative_names=TERM_03_ALTERNATIVE_NAMES,
                              url=TERM_03_URL)

    return TERM_03
示例#12
0
def _get_term(collection, term_info):
    """Factory method to return vocabulary term.

    """
    # Unpack term information.
    name = label = description = None
    if isinstance(term_info, basestring):
        name = term_info
    else:
        try:
            name, label, description = term_info
        except ValueError:
            try:
                name, label = term_info
            except ValueError:
                name = term_info

    return pyessv.create_term(collection,
                              name,
                              label=label,
                              description=description)
示例#13
0
    def parse(self, val):
        """Parses a val against a template.

        :returns: Set of terms extracted during parsing process.

        """
        # Verify that number of parts is equal.
        parts = val.split(self.separator)
        if len(parts) != len(self.template_parts):
            raise TemplateParsingError(
                'Number of elements is invalid: {}: is {}, expected {}'.format(
                    val, len(parts), len(self.template_parts)))

        # Iterate template.
        terms = set()
        for template_part, name in [(self.template_parts[i], j)
                                    for i, j in enumerate(parts)]:
            # Verify constant match.
            if isinstance(template_part, basestring):
                if template_part != name:
                    raise TemplateValueError('{} :: {}'.format(name, val))
                continue

            # Verify collection match.
            collection = template_part
            term = collection.is_matched(name, self.strictness)
            if term == False:
                raise TemplateValueError(
                    'vocab={} :: strictness={} :: value={}'.format(
                        collection, self.strictness, name))

            # Create a virtual term if needed.
            if isinstance(term, Term):
                terms.add(term)
            else:
                terms.add(pyessv.create_term(collection, name))

        return terms