Accepting request 867960 from devel:languages:python:numeric

OBS-URL: https://build.opensuse.org/request/show/867960
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-librosa?expand=0&rev=8
This commit is contained in:
Richard Brown 2021-03-30 18:55:54 +00:00 committed by Git OBS Bridge
commit bf36f21b22
4 changed files with 100 additions and 19 deletions

View File

@ -0,0 +1,47 @@
""" librosa-create-pooch-cache.py
Create the pooch cache tarball for testing the package.
Copyright (c) 2021 SUSE LLC
Copyright (c) 2021 Ben Greiner <code@bnavigator.de>
All modifications and additions to the file contributed by third parties
remain the property of their copyright owners, unless otherwise agreed
upon. The license for this file, and modifications and additions to the
file, is the same license as for the pristine package itself (unless the
license for the pristine package is not an Open Source License, in which
case the license is the MIT License). An "Open Source License" is a
license that conforms to the Open Source Definition (Version 1.9)
published by the Open Source Initiative.
Please submit bugfixes or comments via https://bugs.opensuse.org/
"""
import os
import subprocess
import sys
import pooch
data_name = "librosa-pooch-cache"
registry_file = "librosa/util/example_data/registry.txt"
if len(sys.argv) != 2:
print(f"Usage: python3 {sys.argv[0]} <librosa-srcdir>")
print(f"Download test data into $PWD/{data_name} and compress the directory into $PWD/{data_name}.tar.gz")
sys.exit(1)
srcdir = os.path.abspath(sys.argv[1])
data_path = os.path.abspath(os.getcwd() + "/" + data_name)
pc = pooch.create(
data_path, base_url="https://librosa.org/data/audio/", registry=None
)
pc.load_registry(srcdir + "/" + registry_file)
with open(srcdir + "/" + registry_file) as fh:
for line in fh:
filename, hsum = line.split(" ")
pc.fetch(filename)
subprocess.run(["tar", "czf", f"{data_name}.tar.gz", data_name], check=True)

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aa4239679808fe7a814eb692ef58c9d1991b45e64ee3792c5dadc8f03baa79c4
size 8934562

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Thu Jan 28 23:09:45 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Disable python36 build because SciPy 1.6.0 dropped support for
Python 3.6. Other packages from the NumPy family do the same
(NEP29)
- Update requirements
- Enable tests. Use librosa-create-pooch-cache.py to provide the
test data in librosa-pooch-cache.tar.gz. These files are under
CC-BY-3.0 license.
-------------------------------------------------------------------
Fri Jan 8 14:29:45 UTC 2021 - Dilawar Singh <dilawar.s.rajput@gmail.com>

View File

@ -18,13 +18,29 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
# SciPy 1.6.0 dropped support for Python 3.6, many packages from the NumPy family follow. (NEP 29)
%define skip_python36 1
Name: python-librosa
Version: 0.8.0
Release: 0
Summary: Python module for audio and music processing
License: ISC
License: ISC AND CC-BY-3.0
URL: https://github.com/librosa/librosa
# The github archive has the tests
Source0: https://github.com/librosa/librosa/archive/%{version}.tar.gz#/librosa-%{version}.tar.gz
Source1: librosa-create-pooch-cache.py
# Test data. Use create librosa-create-pooch-cache.py to create this file
Source2: librosa-pooch-cache.tar.gz
BuildRequires: %{python_module SoundFile >= 0.9.0}
BuildRequires: %{python_module audioread >= 2.0.0}
BuildRequires: %{python_module decorator >= 3.0.0}
BuildRequires: %{python_module joblib >= 0.12}
BuildRequires: %{python_module numba >= 0.43.0}
BuildRequires: %{python_module numpy >= 1.15.0}
BuildRequires: %{python_module pooch >= 1.0}
BuildRequires: %{python_module resampy >= 0.2.0}
BuildRequires: %{python_module scikit-learn >= 0.14.0}
BuildRequires: %{python_module scipy >= 1.0.0}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@ -32,27 +48,22 @@ Requires: python-SoundFile >= 0.9.0
Requires: python-audioread >= 2.0.0
Requires: python-decorator >= 3.0.0
Requires: python-joblib >= 0.12
Requires: python-numba >= 0.38.0
Requires: python-numba >= 0.43.0
Requires: python-numpy >= 1.15.0
Requires: python-pooch >= 1.0
Requires: python-resampy >= 0.2.0
Requires: python-scikit-learn >= 0.14.0
Requires: python-scipy >= 1.0.0
Requires: python-six >= 1.3
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module SoundFile >= 0.9.0}
BuildRequires: %{python_module audioread >= 2.0.0}
BuildRequires: %{python_module decorator >= 3.0.0}
BuildRequires: %{python_module joblib >= 0.12}
BuildRequires: %{python_module numba >= 0.38.0}
BuildRequires: %{python_module numpy >= 1.15.0}
BuildRequires: %{python_module pytest-cov}
BuildRequires: %{python_module contextlib2}
BuildRequires: %{python_module matplotlib >= 2.0}
BuildRequires: %{python_module pytest-mpl}
# xdist not specified upstream but it uses resources more efficiently
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module resampy >= 0.2.0}
BuildRequires: %{python_module scikit-learn >= 0.14.0}
BuildRequires: %{python_module scipy >= 1.0.0}
BuildRequires: %{python_module six >= 1.3}
BuildRequires: %{python_module samplerate}
BuildRequires: ffmpeg
# /SECTION
%python_subpackages
@ -62,9 +73,11 @@ the building blocks necessary to create music information retrieval
systems.
%prep
%setup -q -n librosa-%{version}
%setup -q -n librosa-%{version} -a 2
# Remove unneeded shebangs
find librosa -name "*.py" -exec sed -i -e '/^#!\//, 1d' {} \;
# don't measure test coverage
sed -i '/tool:pytest/,/addopts/ s/--cov-report.*--cov librosa//' setup.cfg
%build
%python_build
@ -73,13 +86,20 @@ find librosa -name "*.py" -exec sed -i -e '/^#!\//, 1d' {} \;
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
# Tests files are missing, even from github sources
# %%check
# %%pytest
%check
export LIBROSA_DATA_DIR=$PWD/librosa-pooch-cache
# test data files not packaged
donttest+=" or (test_core and test_iirt)"
donttest+=" or (test_features and test_cens)"
donttest+=" or (test_filters and test_semitone_filterbank)"
# image files do not match without exact mpl version
donttest+=" or test_display"
%pytest -n auto -k "not (${donttest:4})"
%files %{python_files}
%doc AUTHORS.md README.md
%license LICENSE.md
%{python_sitelib}/*
%{python_sitelib}/librosa
%{python_sitelib}/librosa-%{version}*-info
%changelog