code: def proxy_model(self):
          
          if self.category != Category.MODEL:
              raise IllegalArgumentError("Part {} is not a model, therefore it cannot have a proxy model".format(self))
          if 'proxy' in self._json_data and self._json_data.get('proxy'):
              catalog_model_id = self._json_data['proxy'].get('id')
              return self._client.model(pk=catalog_model_id)
          else:
              raise NotFoundError("Part {} is not a proxy".format(self.name))
docs: Retrieve the proxy model of this proxied `Part` as a `Part`.
  
          Allows you to retrieve the model of a proxy. But trying to get the catalog model of a part that
          has no proxy, will raise an :exc:`NotFoundError`. Only models can have a proxy.
  
          :return: :class:`Part` with category `MODEL` and from which the current part is proxied
          :raises NotFoundError: When no proxy model is found
  
          Example
          -------
  
          >>> proxy_part = project.model('Proxy based on catalog model')
          >>> catalog_model_of_proxy_part = proxy_part.proxy_model()
  
          >>> proxied_material_of_the_bolt_model = project.model('Bolt Material')
          >>> proxy_basis_for_the_material_model = proxied_material_of_the_bolt_model.proxy_model()