def METHOD_NAME(self, *path_args, **path_kwargs):
    '''
    Request to /model/name/ with no params will create a blank model.
    Request to /model/name/ with args will interpret as model paramters.
    Set Model-Retrain: true in headers to either train a model from scratch or extend it.
    To Extend a trained model, don't update the parameters and send Model-Retrain in headers.
    Request to /model/name/data with args will update the training data,
    doesn't currently work on DF's thanks to the gramex.data bug.
    '''
    try:
        model = gramex.cache.open(self.pickle_file_path, gramex.ml.load)
    except EnvironmentError:
        model = gramex.ml.Classifier(**self.request_body)
    if self.get_data_flag():
        file_kwargs = self.listify(model.input + [model.output] + ['id'])
        gramex.data.update(model.url, args=file_kwargs, id=file_kwargs['id'])
    else:
        if not self._train(model):
            model.save(self.pickle_file_path)