code: def generate_type(self):
          
          types = enforce_list(self._definition['type'])
          try:
              python_types = ', '.join(JSON_TYPE_TO_PYTHON_TYPE[t] for t in types)
          except KeyError as exc:
              raise JsonSchemaDefinitionException('Unknown type: {}'.format(exc))
  
          extra = ''
  
          if 'integer' in types:
              extra += ' and not (isinstance({variable}, float) and {variable}.is_integer())'.format(
                  variable=self._variable,
              )
  
          if ('number' in types or 'integer' in types) and 'boolean' not in types:
              extra += ' or isinstance({variable}, bool)'.format(variable=self._variable)
  
          with self.l('if not isinstance({variable}, ({})){}:', python_types, extra):
              self.l('raise JsonSchemaException("{name} must be {}")', ' or '.join(types))
docs: Validation of type. Can be one type or list of types.
  
          Since draft 06 a float without fractional part is an integer.
  
          .. code-block:: python
  
              {'type': 'string'}
              {'type': ['string', 'number']}