예제 #1
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)
예제 #2
0
 def test_time(self):
     v = datetime.time(13, 17, 43, 279000)
     self.assertEqual('13:17:43.279000',
                      XSDTime(v))  # A date can be a datetime
     self.assertEqual('13:17:43.279000',
                      XSDTime(Literal(
                          v, datatype=XSD.time)))  # An RDFLIB Literal
     self.assertEqual('13:17:43.279000', v.isoformat())  # A string
     self.assertEqual('13:17:43.279000',
                      XSDTime(XSDTime(v)))  # An existing date
     strict()
     with self.assertRaises(ValueError):
         XSDTime('Jan 12, 2019')
     with self.assertRaises(ValueError):
         XSDTime(datetime.datetime.now())
     lax()
     self.assertEqual('Jan 12, 2019', XSDTime('Jan 12, 2019'))
     XSDDate(datetime.datetime.now())
     self.assertFalse(XSDTime.is_valid('Jan 12, 2019'))
     self.assertFalse(XSDTime.is_valid(datetime.datetime.now()))
     self.assertTrue(XSDTime.is_valid(v))
예제 #3
0
 def test_datetime(self):
     v = datetime.datetime(2019, 7, 6, 17, 22, 39, 7300)
     self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(v))
     self.assertEqual('2019-07-06T17:22:39.007300',
                      XSDDateTime(Literal(v, datatype=XSD.datetime)))
     self.assertEqual('2019-07-06T17:22:39.007300',
                      XSDDateTime(Literal(v).value))
     self.assertEqual('2019-07-06T17:22:39.007300', v.isoformat())
     self.assertEqual('2019-07-06T17:22:39.007300',
                      XSDDateTime(XSDDateTime(v)))
     vstr = str(Literal(v).value)
     self.assertEqual('2019-07-06 17:22:39.007300',
                      vstr)  # Note that this has no 'T'
     self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(vstr))
     with self.assertRaises(ValueError):
         XSDDateTime('Jan 12, 2019')
     lax()
     self.assertEqual('penguins', XSDDateTime('penguins'))
     XSDDateTime(datetime.datetime.now())
     self.assertFalse(XSDDateTime.is_valid('Jan 12, 2019'))
     self.assertTrue(XSDDateTime.is_valid(datetime.datetime.now()))
     self.assertTrue(
         XSDDateTime.is_valid(XSDDate(datetime.datetime.now().date())))
     self.assertTrue(XSDDateTime.is_valid(v))
예제 #4
0
 def test_date(self):
     v = datetime.date(2019, 7, 6)
     self.assertEqual('2019-07-06', XSDDate(v))  # A date can be a datetime
     self.assertEqual('2019-07-06', XSDDate(Literal(
         v, datatype=XSD.date)))  # An RDFLIB Literal
     self.assertEqual('2019-07-06', v.isoformat())  # A string
     self.assertEqual('2019-07-06', XSDDate(XSDDate(v)))  # An existing date
     strict()
     with self.assertRaises(ValueError):
         XSDDate('Jan 12, 2019')
     with self.assertRaises(ValueError):
         XSDDate(datetime.datetime.now())
     lax()
     bv = XSDDate('Jan 12, 2019')
     self.assertEqual('Jan 12, 2019', bv)
     self.assertFalse(XSDDate.is_valid(bv))
     XSDDate(datetime.datetime.now())
     self.assertFalse(XSDDate.is_valid('Jan 12, 2019'))
     self.assertFalse(XSDDate.is_valid(datetime.datetime.now()))
     self.assertTrue(
         XSDDate.is_valid(XSDDate(datetime.datetime.now().date())))
     self.assertTrue(XSDDate.is_valid(v))