def union_many(self, others):
this = self<EOL>for other in others:<EOL><INDENT>if not isinstance(this, DatetimeIndex):<EOL><INDENT>this = Index.union(this, other)<EOL>continue<EOL><DEDENT>if not isinstance(other, DatetimeIndex):<EOL><INDENT>try:<EOL><INDENT>other = DatetimeIndex(other)<EOL><DEDENT>except TypeError:<EOL><INDENT>pass<EOL><DEDENT><DEDENT>this, other = this._maybe_utc_convert(other)<EOL>if this._can_fast_union(other):<EOL><INDENT>this = this._fast_union(other)<EOL><DEDENT>else:<EOL><INDENT>dtype = this.dtype<EOL>this = Index.union(this, other)<EOL>if isinstance(this, DatetimeIndex):<EOL><INDENT>this._data._dtype = dtype<EOL><DEDENT><DEDENT><DEDENT>return this<EOL>
A bit of a hack to accelerate unioning a collection of indexes