class_docstr: Derive from this abstract Reader class to create your own image reader in Python
  
  You need to implement the methods below in the derived class.
  
  Use this block of text to describe your reader to the user.
class_docstr_tok: ["Derive","from","this","abstract","Reader","class","to","create","your","own","image","reader","in","Python","You","need","to","implement","the","methods","below","in","the","derived","class",".","Use","this","block","of","text","to","describe","your","reader","to","the","user","."]
docstr: Should return a dictionary with the following keys:
  Key names are in cellprofiler_core.constants.image
  MD_SIZE_S - int reflecting the number of series
  MD_SIZE_X - list of X dimension sizes, one element per series.
  MD_SIZE_Y - list of Y dimension sizes, one element per series.
  MD_SIZE_Z - list of Z dimension sizes, one element per series.
  MD_SIZE_C - list of C dimension sizes, one element per series.
  MD_SIZE_T - list of T dimension sizes, one element per series.
  MD_SERIES_NAME - [Optional] list of human-readable series names, one string per series.
                              Must not contain '|' as this is used as a separator for storage.
docstr_tok: ["Should","return","a","dictionary","with","the","following","keys",":","Key","names","are","in","cellprofiler_core.constants.image","MD_SIZE_S","-","int","reflecting","the","number","of","series","MD_SIZE_X","-","list","of","X","dimension","sizes",",","one","element","per","series",".","MD_SIZE_Y","-","list","of","Y","dimension","sizes",",","one","element","per","series",".","MD_SIZE_Z","-","list","of","Z","dimension","sizes",",","one","element","per","series",".","MD_SIZE_C","-","list","of","C","dimension","sizes",",","one","element","per","series",".","MD_SIZE_T","-","list","of","T","dimension","sizes",",","one","element","per","series",".","MD_SERIES_NAME","-","[","Optional","]","list","of","human-readable","series","names",",","one","string","per","series",".","Must","not","contain","'|","'","as","this","is","used","as","a","separator","for","storage","."]
code: def get_series_metadata(self):
      """Should return a dictionary with the following keys:
      Key names are in cellprofiler_core.constants.image
      MD_SIZE_S - int reflecting the number of series
      MD_SIZE_X - list of X dimension sizes, one element per series.
      MD_SIZE_Y - list of Y dimension sizes, one element per series.
      MD_SIZE_Z - list of Z dimension sizes, one element per series.
      MD_SIZE_C - list of C dimension sizes, one element per series.
      MD_SIZE_T - list of T dimension sizes, one element per series.
      MD_SERIES_NAME - [Optional] list of human-readable series names, one string per series.
                                  Must not contain '|' as this is used as a separator for storage.
      """
      pass
  
file_path: CellProfiler/src/subpackages/core/cellprofiler_core/reader/_reader.py
imports: import uuid
  from abc import ABC, abstractmethod
  import numpy
label_desc: Use image node_id 12 for calling the Reader obj's underlying member method code with example usage: obj.get_series_metadata() without return types