示例#1
0
 def test_ncname(self):
     self.assertEqual('A123', NCName('A123'))
     x = NCName('A1.B_C-')
     self.assertEqual('A1.B_C-', x)
     self.assertIsInstance(x, str)
     self.assertIsInstance(x, NCName)
     self.assertEqual(x, NCName(x))
     x = str(x)
     self.assertIsInstance(x, str)
     self.assertFalse(isinstance(x, NCName))
     with self.assertRaises(ValueError):
         NCName('1')
     with self.assertRaises(ValueError):
         NCName('A12!')
示例#2
0
 def _fix_elements(self):
     super()._fix_elements()
     self.id_prefixes = [
         v if isinstance(v, NCName) else NCName(v) for v in self.id_prefixes
     ]
     if not isinstance(self.name, ElementName):
         self.name = ElementName(self.name)
     for k, v in self.local_names.items():
         if not isinstance(v, LocalName):
             self.local_names[k] = LocalName(k, v)
     self.mappings = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.mappings
     ]
     for k, v in self.alt_descriptions.items():
         if not isinstance(v, AltDescription):
             self.alt_descriptions[k] = AltDescription(k, v)
     self.examples = [
         v if isinstance(v, Example) else Example(**v)
         for v in self.examples
     ]
     self.in_subset = [
         v
         if isinstance(v, SubsetDefinitionName) else SubsetDefinitionName(v)
         for v in self.in_subset
     ]
     if self.from_schema is not None and not isinstance(
             self.from_schema, URI):
         self.from_schema = URI(self.from_schema)
     self.see_also = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.see_also
     ]
示例#3
0
 def __setitem__(self, key, value):
     k = NCName(key)
     v = Namespace(str(value))
     if k in self:
         if self[k] != v:
             raise ValueError(f"Namespace {k} is already mapped to {self[k]}")
     else:
         super().__setitem__(k, v)
示例#4
0
 def __post_init__(self, **kwargs: Dict[str, Any]):
     self.id_prefixes = [
         v if isinstance(v, NCName) else NCName(v) for v in self.id_prefixes
     ]
     if self.name is None:
         raise ValueError(f"name must be supplied")
     if not isinstance(self.name, ElementName):
         self.name = ElementName(self.name)
     if self.definition_uri is not None and not isinstance(
             self.definition_uri, URIorCURIE):
         self.definition_uri = URIorCURIE(self.definition_uri)
     for k, v in self.local_names.items():
         if not isinstance(v, LocalName):
             self.local_names[k] = LocalName(k, v)
     self.mappings = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.mappings
     ]
     for k, v in self.alt_descriptions.items():
         if not isinstance(v, AltDescription):
             self.alt_descriptions[k] = AltDescription(k, v)
     self.examples = [
         v if isinstance(v, Example) else Example(**v)
         for v in self.examples
     ]
     self.in_subset = [
         v
         if isinstance(v, SubsetDefinitionName) else SubsetDefinitionName(v)
         for v in self.in_subset
     ]
     if self.from_schema is not None and not isinstance(
             self.from_schema, URI):
         self.from_schema = URI(self.from_schema)
     self.see_also = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.see_also
     ]
     self.exact_mappings = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.exact_mappings
     ]
     self.close_mappings = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.close_mappings
     ]
     self.related_mappings = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.related_mappings
     ]
     if self.deprecated_element_has_exact_replacement is not None and not isinstance(
             self.deprecated_element_has_exact_replacement, URIorCURIE):
         self.deprecated_element_has_exact_replacement = URIorCURIE(
             self.deprecated_element_has_exact_replacement)
     if self.deprecated_element_has_possible_replacement is not None and not isinstance(
             self.deprecated_element_has_possible_replacement, URIorCURIE):
         self.deprecated_element_has_possible_replacement = URIorCURIE(
             self.deprecated_element_has_possible_replacement)
     super().__post_init__(**kwargs)
示例#5
0
 def __post_init__(self, **kwargs: Dict[str, Any]):
     if self.id is None:
         raise ValueError(f"id must be supplied")
     if not isinstance(self.id, C1Id):
         self.id = C1Id(self.id)
     if self.hasCurie is not None and not isinstance(self.hasCurie, Curie):
         self.hasCurie = Curie(self.hasCurie)
     if self.hasURI is not None and not isinstance(self.hasURI, URI):
         self.hasURI = URI(self.hasURI)
     if self.hasNcName is not None and not isinstance(
             self.hasNcName, NCName):
         self.hasNcName = NCName(self.hasNcName)
     if self.id2 is not None and not isinstance(self.id2, NodeIdentifier):
         self.id2 = NodeIdentifier(self.id2)
     super().__post_init__(**kwargs)
示例#6
0
 def __post_init__(self, **kwargs: Dict[str, Any]):
     if self.default_prefix is None:
         self.default_prefix = sfx(str(self.id))
     if self.name is None:
         raise ValueError(f"name must be supplied")
     if not isinstance(self.name, SchemaDefinitionName):
         self.name = SchemaDefinitionName(self.name)
     if self.id is None:
         raise ValueError(f"id must be supplied")
     if not isinstance(self.id, URI):
         self.id = URI(self.id)
     self.imports = [
         v if isinstance(v, URIorCURIE) else URIorCURIE(v)
         for v in self.imports
     ]
     for k, v in self.prefixes.items():
         if not isinstance(v, Prefix):
             self.prefixes[k] = Prefix(k, v)
     self.emit_prefixes = [
         v if isinstance(v, NCName) else NCName(v)
         for v in self.emit_prefixes
     ]
     if self.default_range is not None and not isinstance(
             self.default_range, TypeDefinitionName):
         self.default_range = TypeDefinitionName(self.default_range)
     for k, v in self.subsets.items():
         if not isinstance(v, SubsetDefinition):
             self.subsets[k] = SubsetDefinition(name=k,
                                                **({} if v is None else v))
     for k, v in self.types.items():
         if not isinstance(v, TypeDefinition):
             self.types[k] = TypeDefinition(name=k,
                                            **({} if v is None else v))
     for k, v in self.slots.items():
         if not isinstance(v, SlotDefinition):
             self.slots[k] = SlotDefinition(name=k,
                                            **({} if v is None else v))
     for k, v in self.classes.items():
         if not isinstance(v, ClassDefinition):
             self.classes[k] = ClassDefinition(name=k,
                                               **({} if v is None else v))
     if self.source_file_date is not None and not isinstance(
             self.source_file_date, XSDDateTime):
         self.source_file_date = XSDDateTime(self.source_file_date)
     if self.generation_date is not None and not isinstance(
             self.generation_date, XSDDateTime):
         self.generation_date = XSDDateTime(self.generation_date)
     super().__post_init__(**kwargs)
示例#7
0
 def _fix_elements(self):
     super()._fix_elements()
     if self.name is not None and not isinstance(self.name,
                                                 SchemaDefinitionName):
         self.name = SchemaDefinitionName(self.name)
     if self.id is not None and not isinstance(self.id, URI):
         self.id = URI(self.id)
     self.imports = [
         v if isinstance(v, URI) else URI(v) for v in self.imports
     ]
     for k, v in self.prefixes.items():
         if not isinstance(v, Prefix):
             self.prefixes[k] = Prefix(k, v)
     self.emit_prefixes = [
         v if isinstance(v, NCName) else NCName(v)
         for v in self.emit_prefixes
     ]
     if self.default_range is not None and not isinstance(
             self.default_range, DefinitionName):
         self.default_range = DefinitionName(self.default_range)
     for k, v in self.subsets.items():
         if not isinstance(v, SubsetDefinition):
             self.subsets[k] = SubsetDefinition(name=k,
                                                **({} if v is None else v))
     for k, v in self.types.items():
         if not isinstance(v, TypeDefinition):
             self.types[k] = TypeDefinition(name=k,
                                            **({} if v is None else v))
     for k, v in self.slots.items():
         if not isinstance(v, SlotDefinition):
             self.slots[k] = SlotDefinition(name=k,
                                            **({} if v is None else v))
     for k, v in self.classes.items():
         if not isinstance(v, ClassDefinition):
             self.classes[k] = ClassDefinition(name=k,
                                               **({} if v is None else v))
     if self.source_file_date is not None and not isinstance(
             self.source_file_date, XSDDate):
         self.source_file_date = XSDDate(self.source_file_date)
     if self.generation_date is not None and not isinstance(
             self.generation_date, XSDDate):
         self.generation_date = XSDDate(self.generation_date)