code: def grist (self):
          
          # Depending on target, there may be different approaches to generating
          # unique prefixes. We'll generate prefixes in the form
          # <one letter approach code> <the actual prefix>
          path = self.path ()
  
          if path:
              # The target will be generated to a known path. Just use the path
              # for identification, since path is as unique as it can get.
              return 'p' + path
  
          else:
              # File is either source, which will be searched for, or is not a file at
              # all. Use the location of project for distinguishing.
              project_location = self.project_.get ('location')
              path_components = b2.util.path.split(project_location)
              location_grist = '!'.join (path_components)
  
              if self.action_:
                  ps = self.action_.properties ()
                  property_grist = ps.as_path ()
                  # 'property_grist' can be empty when 'ps' is an empty
                  # property set.
                  if property_grist:
                      location_grist = location_grist + '/' + property_grist
  
              return 'l' + location_grist
docs: Helper to 'actual_name', above. Compute unique prefix used to distinguish
              this target from other targets with the same name which create different
              file.