code: def _generate_union_class_variant_creators(self, ns, data_type):
          # type: (ApiNamespace, Union) -> None
          
          union_type = class_name_for_data_type(data_type)
  
          for field in data_type.fields:
              if not is_void_type(field.data_type):
                  field_name_reserved_check = fmt_func(field.name, check_reserved=True)
                  val_type = self.map_stone_type_to_pep484_type(ns, field.data_type)
  
                  self.emit('@classmethod')
                  self.emit('def {field_name}(cls, val: {val_type}) -> {union_type}: ...'.format(
                      field_name=field_name_reserved_check,
                      val_type=val_type,
                      union_type=union_type,
                  ))
                  self.emit()
docs: Generate the following section in the 'union Shape' example:
          @classmethod
          def circle(cls, val: float) -> Shape: ...