docs: def product_metadata_path(self):
          """Return path to product metadata XML file."""
          data_object_section = self._manifest_safe.find("dataObjectSection")
          for data_object in data_object_section:
              # Find product metadata XML.
              if data_object.attrib.get("ID") == "S2_Level-1C_Product_Metadata":
                  relpath = os.path.relpath(
                      data_object.iter("fileLocation").next().attrib["href"])
                  try:
                      if self.is_zip:
                          abspath = os.path.join(self._zip_root, relpath)
                          assert abspath in self._zipfile.namelist()
                      else:
                          abspath = os.path.join(self.path, relpath)
                          assert os.path.isfile(abspath)
                  except AssertionError:
                      raise S2ReaderIOError(
                          "S2_Level-1C_product_metadata_path not found: %s \
                          " % abspath
                      )
                  return abspath