docstr: SM Sample class to hold the necessary info
  and provide atomic operations.
  
  :param json data:  THe json obj that contains data info.
  :param ~Sample origin: Original sample obj.
  :param int sample_id: sample index
docstr_tok: ["SM","Sample","class","to","hold","the","necessary","info","and","provide","atomic","operations",".",":","param","json","data",":","THe","json","obj","that","contains","data","info",".",":","param","~Sample","origin",":","Original","sample","obj",".",":","param","int","sample_id",":","sample","index"]
code: def __init__(self, data, origin=None, sample_id=None):
      r"""
      SM Sample class to hold the necessary info
      and provide atomic operations.
  
      :param json data:  THe json obj that contains data info.
      :param ~Sample origin: Original sample obj.
      :param int sample_id: sample index
  
      """
      super().__init__(data, origin=origin, sample_id=sample_id)
  
file_path: textflint/textflint/input/component/sample/sm_sample.py
imports: from .sample import Sample
  from ..field import Field
  from ..field import TextField
label_desc: Use image node_id 1 to create a new SMSample object from inherited base classes: Sample with example: obj = SMSample(data, origin, sample_id)