code: def find_primitive(cell, symprec=1e-5, angle_tolerance=-1.0):
      
      _set_no_error()
  
      lattice, positions, numbers, _ = _expand_cell(cell)
      if lattice is None:
          return None
  
      num_atom_prim = spg.primitive(lattice,
                                    positions,
                                    numbers,
                                    symprec,
                                    angle_tolerance)
      _set_error_message()
  
      if num_atom_prim > 0:
          return (np.array(lattice.T, dtype='double', order='C'),
                  np.array(positions[:num_atom_prim], dtype='double', order='C'),
                  np.array(numbers[:num_atom_prim], dtype='intc'))
      else:
          return None
docs: Primitive cell is searched in the input cell.
  
      The primitive cell is returned by a tuple of (lattice, positions, numbers).
      If it fails, None is returned.