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)
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)
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)
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')
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)
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 })
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, )
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 })
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
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)
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