def push(self, yts):
if not isinstance(yts, (YTStor, YTMetaStor, type(None))):<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT>k = <NUM_LIT:0><EOL>while k in self.keys():<EOL><INDENT>k += <NUM_LIT:1><EOL><DEDENT>self[k] = yts<EOL>return k<EOL>
Search for, add and return new file descriptor.

Parameters
----------
yts : YTStor-obj or None
    ``YTStor`` object for which we want to allocate a descriptor or ``None``, if we allocate descriptor for a
    control file.

Returns
-------
k : int
    File descriptor.