From: Paul Brossier Date: Mon, 5 Nov 2018 13:02:20 +0000 (+0100) Subject: [py] move cut_slice from cut to cmd to avoid cyclic import X-Git-Tag: 0.4.8~67 X-Git-Url: https://git.aubio.org/?p=aubio.git;a=commitdiff_plain;h=dc74f69e5d1ca32f9dbd4fc0e23de5ed015f7a13;ds=sidebyside [py] move cut_slice from cut to cmd to avoid cyclic import --- diff --git a/python/lib/aubio/cmd.py b/python/lib/aubio/cmd.py index 5b7acb89..05780ead 100644 --- a/python/lib/aubio/cmd.py +++ b/python/lib/aubio/cmd.py @@ -11,6 +11,7 @@ readable code examples, check out the `python/demos` folder.""" import sys import argparse +import warnings import aubio def aubio_parser(): @@ -507,7 +508,6 @@ class process_cut(process_onset): return ret def flush(self, frames_read, samplerate): - from aubio.cut import _cut_slice _cut_slice(self.options, self.slices) duration = float(frames_read) / float(samplerate) base_info = '%(source_file)s' % \ @@ -518,6 +518,32 @@ class process_cut(process_onset): info += base_info sys.stderr.write(info) +def _cut_slice(options, timestamps): + # cutting pass + nstamps = len(timestamps) + if nstamps > 0: + # generate output files + timestamps_end = None + if options.cut_every_nslices: + timestamps = timestamps[::options.cut_every_nslices] + nstamps = len(timestamps) + if options.cut_until_nslices and options.cut_until_nsamples: + msg = "using cut_until_nslices, but cut_until_nsamples is set" + warnings.warn(msg) + if options.cut_until_nsamples: + lag = options.cut_until_nsamples + timestamps_end = [t + lag for t in timestamps[1:]] + timestamps_end += [1e120] + if options.cut_until_nslices: + slice_lag = options.cut_until_nslices + timestamps_end = [t for t in timestamps[1 + slice_lag:]] + timestamps_end += [1e120] * (options.cut_until_nslices + 1) + aubio.slice_source_at_stamps(options.source_uri, + timestamps, timestamps_end = timestamps_end, + output_dir = options.output_directory, + samplerate = options.samplerate, + create_first = options.create_first) + def main(): parser = aubio_parser() if sys.version_info[0] != 3: diff --git a/python/lib/aubio/cut.py b/python/lib/aubio/cut.py index 09f44a12..a31e38dd 100644 --- a/python/lib/aubio/cut.py +++ b/python/lib/aubio/cut.py @@ -5,10 +5,7 @@ """ import sys -import warnings -from aubio.cmd import AubioArgumentParser -from aubio.slicing import slice_source_at_stamps - +from aubio.cmd import AubioArgumentParser, _cut_slice def aubio_cut_parser(): parser = AubioArgumentParser() @@ -136,33 +133,6 @@ def _cut_analyze(options): del s return timestamps, total_frames - -def _cut_slice(options, timestamps): - # cutting pass - nstamps = len(timestamps) - if nstamps > 0: - # generate output files - timestamps_end = None - if options.cut_every_nslices: - timestamps = timestamps[::options.cut_every_nslices] - nstamps = len(timestamps) - if options.cut_until_nslices and options.cut_until_nsamples: - msg = "using cut_until_nslices, but cut_until_nsamples is set" - warnings.warn(msg) - if options.cut_until_nsamples: - lag = options.cut_until_nsamples - timestamps_end = [t + lag for t in timestamps[1:]] - timestamps_end += [1e120] - if options.cut_until_nslices: - slice_lag = options.cut_until_nslices - timestamps_end = [t for t in timestamps[1 + slice_lag:]] - timestamps_end += [1e120] * (options.cut_until_nslices + 1) - slice_source_at_stamps(options.source_uri, - timestamps, timestamps_end = timestamps_end, - output_dir = options.output_directory, - samplerate = options.samplerate, - create_first = options.create_first) - def main(): parser = aubio_cut_parser() options = parser.parse_args()