def from_sac(sac_files, lowcut, highcut, samp_rate, filt_order, length, swin,<EOL>prepick, all_horiz=False, delayed=True, plot=False, debug=<NUM_LIT:0>,<EOL>return_event=False, min_snr=None):
EQcorrscanDeprecationWarning(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>")<EOL>temp_list = template_gen(<EOL>method="<STR_LIT>", sac_files=sac_files,<EOL>lowcut=lowcut, highcut=highcut, samp_rate=samp_rate,<EOL>filt_order=filt_order, length=length, prepick=prepick,<EOL>swin=swin, all_horiz=all_horiz, delayed=delayed, plot=plot,<EOL>debug=debug, return_event=return_event, min_snr=min_snr,<EOL>parallel=False)<EOL>return temp_list<EOL>
Generate a multiplexed template from a list of SAC files.

Function to read picks and waveforms from SAC data, and generate a \
template from these. Usually sac_files is a list of all single-channel \
SAC files for a given event, a single, multi-channel template will be \
created from these traces.

**All files listed in sac_files should be associated with a single event.**

:type sac_files: list
:param sac_files: osbpy.core.stream.Stream of sac waveforms, or
    list of paths to sac waveforms.
:type lowcut: float
:param lowcut: Low cut (Hz), if set to None will not apply a lowcut.
:type highcut: float
:param highcut: High cut (Hz), if set to None will not apply a highcut.
:type samp_rate: float
:param samp_rate: New sampling rate in Hz.
:type filt_order: int
:param filt_order: Filter level.
:type length: float
:param length: Extract length in seconds.
:type swin: str
:param swin:
    P, S, P_all, S_all or all, defaults to all: see note in
    :func:`eqcorrscan.core.template_gen.template_gen`
:type prepick: float
:param prepick: Length to extract prior to the pick in seconds.
:type all_horiz: bool
:param all_horiz: To use both horizontal channels even if there is only \
    a pick on one of them.  Defaults to False.
:type delayed: bool
:param delayed: If True, each channel will begin relative to it's own \
    pick-time, if set to False, each channel will begin at the same time.
:type plot: bool
:param plot: Turns template plotting on or off.
:type debug: int
:param debug: Debug level, higher number=more output.
:type return_event: bool
:param return_event: Whether to return the event and process length or not.
:type min_snr: float
:param min_snr:
    Minimum signal-to-noise ratio for a channel to be included in the
    template, where signal-to-noise ratio is calculated as the ratio of
    the maximum amplitude in the template window to the rms amplitude in
    the whole window given.

:returns: Newly cut template.
:rtype: :class:`obspy.core.stream.Stream`

.. note:: This functionality is not supported for obspy versions below \
    1.0.0 as references times are not read in by SACIO, which are needed \
    for defining pick times.

.. rubric:: Example

>>> from eqcorrscan.core.template_gen import from_sac
>>> import glob
>>> # Get the path to the test data
>>> import eqcorrscan
>>> import os
>>> TEST_PATH = os.path.dirname(eqcorrscan.__file__) + '/tests/test_data'
>>> # Get all the SAC-files associated with one event.
>>> sac_files = glob.glob(TEST_PATH + '/SAC/2014p611252/*')
>>> templates = from_sac(sac_files=sac_files, lowcut=2.0, highcut=10.0,
...                      samp_rate=25.0, filt_order=4, length=2.0,
...                      swin='all', prepick=0.1, all_horiz=True)
>>> print(templates[0][0].stats.sampling_rate)
25.0
>>> print(len(templates[0]))
15