class_docstr: TFX Pusher executor to push the new TF model to a filesystem target.
  
  The Pusher component is used to deploy a validated model to a filesystem
  target or serving environment using tf.serving.  Pusher depends on the outputs
  of ModelValidator to determine if a model is ready to push. A model is
  considered to be safe to push only if ModelValidator has marked it as BLESSED.
  A push action delivers the model exports produced by Trainer to the
  destination defined in the ``push_destination`` of the component config.
  
  To include Pusher in a TFX pipeline, configure your pipeline similar to
  https://github.com/tensorflow/tfx/blob/master/tfx/examples/chicago_taxi_pipeline/taxi_pipeline_simple.py#L104.
  
  For more details on tf.serving itself, please refer to
  https://tensorflow.org/tfx/guide/pusher.  For a tutuorial on TF Serving,
  please refer to https://www.tensorflow.org/tfx/guide/serving.
class_docstr_tok: ["TFX","Pusher","executor","to","push","the","new","TF","model","to","a","filesystem","target",".","The","Pusher","component","is","used","to","deploy","a","validated","model","to","a","filesystem","target","or","serving","environment","using","tf.serving",".","Pusher","depends","on","the","outputs","of","ModelValidator","to","determine","if","a","model","is","ready","to","push",".","A","model","is","considered","to","be","safe","to","push","only","if","ModelValidator","has","marked","it","as","BLESSED",".","A","push","action","delivers","the","model","exports","produced","by","Trainer","to","the","destination","defined","in","the","``","push_destination","``","of","the","component","config",".","To","include","Pusher","in","a","TFX","pipeline",",","configure","your","pipeline","similar","to","https",":","\/\/github.com\/tensorflow\/tfx\/blob\/master\/tfx\/examples\/chicago_taxi_pipeline\/taxi_pipeline_simple.py","#","L104",".","For","more","details","on","tf.serving","itself",",","please","refer","to","https",":","\/\/tensorflow.org\/tfx\/guide\/pusher",".","For","a","tutuorial","on","TF","Serving",",","please","refer","to","https",":","\/\/www.tensorflow.org\/tfx\/guide\/serving","."]
code: def _MarkPushed(
      self,
      model_push: types.Artifact,
      pushed_destination: str,
      pushed_version: Optional[str] = None,
  ) -> None:
      model_push.set_int_custom_property(_PUSHED_KEY, 1)
      model_push.set_string_custom_property(
          _PUSHED_DESTINATION_KEY, pushed_destination
      )
      if pushed_version is not None:
          model_push.set_string_custom_property(
              _PUSHED_VERSION_KEY, pushed_version
          )
  
imports: import os
  import time
  from typing import Any, Dict, List, Optional
  from absl import logging
  from tfx import types
  from tfx.components.util import model_utils
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.io import fileio
  from tfx.proto import pusher_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_component_specs
  from tfx.utils import io_utils
  from tfx.utils import path_utils
  from tfx.utils import proto_utils
label_desc: Use image node_id 4 for calling the Executor obj's underlying member method code with example usage: obj._MarkPushed(model_push, pushed_destination, pushed_version) without return types