Hello community,
here is the log from the commit of package python-pymediainfo for
openSUSE:Factory checked in at 2018-09-13 12:13:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymediainfo (Old)
and /work/SRC/openSUSE:Factory/.python-pymediainfo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pymediainfo"
Thu Sep 13 12:13:10 2018 rev:3 rq:635324 version:2.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymediainfo/python-pymediainfo.changes
2017-11-12 18:10:22.167285391 +0100
+++
/work/SRC/openSUSE:Factory/.python-pymediainfo.new/python-pymediainfo.changes
2018-09-13 12:14:06.514118215 +0200
@@ -1,0 +2,9 @@
+Wed Sep 12 07:12:47 UTC 2018 - [email protected]
+
+- Update to version 2.3.0
+ * Add setuptools to install_requires (#50)
+ * Add an option to extract cover_data for libmediainfo ≥ 18.03
+ (#51)
+ * Get version from setuptools_scm
+
+-------------------------------------------------------------------
Old:
----
pymediainfo-2.2.0.tar.gz
New:
----
pymediainfo-2.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pymediainfo.spec ++++++
--- /var/tmp/diff_new_pack.BkuB49/_old 2018-09-13 12:14:07.066117590 +0200
+++ /var/tmp/diff_new_pack.BkuB49/_new 2018-09-13 12:14:07.074117581 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pymediainfo
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,21 +18,21 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pymediainfo
-Version: 2.2.0
+Version: 2.3.0
Release: 0
Summary: Python wrapper for the mediainfo library
License: MIT
Group: Development/Languages/Python
-Url: https://github.com/sbraz/pymediainfo
+URL: https://github.com/sbraz/pymediainfo
Source0:
https://files.pythonhosted.org/packages/source/p/pymediainfo/pymediainfo-%{version}.tar.gz
Source99: %{name}-rpmlintrc
BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
BuildRequires: libmediainfo0
Requires: libmediainfo0
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%python_subpackages
@@ -52,11 +52,13 @@
%check
export LANG=en_US.UTF-8
-%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python
%{_bindir}/py.test -v -k 'not MediaInfoURLTest'
+%{python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python
%{_bindir}/py.test -v \
+ -k 'not MediaInfoURLTest and not MediaInfoLibraryTest'
+}
%files %{python_files}
-%defattr(-,root,root,-)
%doc README.rst
+%license LICENSE
%{python_sitelib}/*
%changelog
++++++ pymediainfo-2.2.0.tar.gz -> pymediainfo-2.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/AUTHORS
new/pymediainfo-2.3.0/AUTHORS
--- old/pymediainfo-2.2.0/AUTHORS 1970-01-01 01:00:00.000000000 +0100
+++ new/pymediainfo-2.3.0/AUTHORS 2018-05-14 16:15:08.000000000 +0200
@@ -0,0 +1,3 @@
+Patrick Altman <[email protected]> (author)
+cjlucas https://github.com/cjlucas
+Louis Sautier <[email protected]> (maintainer since 2016)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/LICENSE
new/pymediainfo-2.3.0/LICENSE
--- old/pymediainfo-2.2.0/LICENSE 1970-01-01 01:00:00.000000000 +0100
+++ new/pymediainfo-2.3.0/LICENSE 2018-05-14 16:15:08.000000000 +0200
@@ -0,0 +1,24 @@
+The MIT License
+
+Copyright (c) 2010-2014, Patrick Altman <[email protected]>
+Copyright (c) 2016, Louis Sautier <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+http://www.opensource.org/licenses/mit-license.php
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/PKG-INFO
new/pymediainfo-2.3.0/PKG-INFO
--- old/pymediainfo-2.2.0/PKG-INFO 2017-11-08 00:10:33.000000000 +0100
+++ new/pymediainfo-2.3.0/PKG-INFO 2018-05-14 16:15:37.000000000 +0200
@@ -1,12 +1,36 @@
Metadata-Version: 1.1
Name: pymediainfo
-Version: 2.2.0
+Version: 2.3.0
Summary: A Python wrapper for the mediainfo library.
Home-page: https://github.com/sbraz/pymediainfo
Author: Louis Sautier
Author-email: [email protected]
License: MIT
-Description: UNKNOWN
+Description: pymediainfo
+ -----------
+
+ .. image:: https://img.shields.io/pypi/v/pymediainfo.svg
+ :target: https://pypi.org/project/pymediainfo
+
+ .. image:: https://img.shields.io/pypi/pyversions/pymediainfo.svg
+ :target: https://pypi.org/project/pymediainfo
+
+ .. image:: https://img.shields.io/pypi/implementation/pymediainfo.svg
+ :target: https://pypi.org/project/pymediainfo
+
+ .. image::
https://api.travis-ci.org/sbraz/pymediainfo.svg?branch=master
+ :target: https://travis-ci.org/sbraz/pymediainfo
+
+ .. image::
https://ci.appveyor.com/api/projects/status/g15a2daem1oub57n/branch/master?svg=true
+ :target: https://ci.appveyor.com/project/sbraz/pymediainfo
+
+
+ This small package is a wrapper around the MediaInfo library.
+
+ It works on Linux, Mac OS X and Windows and is tested with Python 2.6,
2.7, 3.4, 3.5, 3.6, PyPy and PyPy3.
+
+ See https://pymediainfo.readthedocs.io/ for more information.
+
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 2.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/README.rst
new/pymediainfo-2.3.0/README.rst
--- old/pymediainfo-2.2.0/README.rst 2017-11-08 00:10:07.000000000 +0100
+++ new/pymediainfo-2.3.0/README.rst 2018-05-14 16:15:08.000000000 +0200
@@ -13,9 +13,12 @@
.. image:: https://api.travis-ci.org/sbraz/pymediainfo.svg?branch=master
:target: https://travis-ci.org/sbraz/pymediainfo
+.. image::
https://ci.appveyor.com/api/projects/status/g15a2daem1oub57n/branch/master?svg=true
+ :target: https://ci.appveyor.com/project/sbraz/pymediainfo
-This small package is a wrapper around the MediaInfo library. It works on
-Linux, Mac OS X and Windows.
-It is tested on Python 2.6, 2.7, 3.4, 3.5, 3.6, PyPy and PyPy3.
+
+This small package is a wrapper around the MediaInfo library.
+
+It works on Linux, Mac OS X and Windows and is tested with Python 2.6, 2.7,
3.4, 3.5, 3.6, PyPy and PyPy3.
See https://pymediainfo.readthedocs.io/ for more information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/appveyor.yml
new/pymediainfo-2.3.0/appveyor.yml
--- old/pymediainfo-2.2.0/appveyor.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/pymediainfo-2.3.0/appveyor.yml 2018-05-14 16:15:08.000000000 +0200
@@ -0,0 +1,26 @@
+environment:
+ matrix:
+ - PYTHON: "C:/Python27"
+ - PYTHON: "C:/Python34"
+ - PYTHON: "C:/Python35"
+ - PYTHON: "C:/Python36"
+ - PYTHON: "C:/Python27-x64"
+ - PYTHON: "C:/Python34-x64"
+ - PYTHON: "C:/Python35-x64"
+ - PYTHON: "C:/Python36-x64"
+install:
+ - "SET PATH=%PYTHON%;%PYTHON%/Scripts;%PATH%"
+ - "python --version"
+ - "IF %PYTHON:~-4% == -x64 (SET ARCH=x64) ELSE (SET ARCH=i386)"
+ - ps: "Start-FileDownload
https://mediaarea.net/download/binary/mediainfo/18.05/MediaInfo_CLI_18.05_Windows_${Env:ARCH}.zip"
+ - ps: "unzip -o MediaInfo_CLI_18.05_Windows_${Env:ARCH}.zip"
+ - ps: "Start-FileDownload
https://mediaarea.net/download/binary/libmediainfo0/18.05/MediaInfo_DLL_18.05_Windows_${Env:ARCH}_WithoutInstaller.7z"
+ - ps: "7z -y x MediaInfo_DLL_18.05_Windows_${Env:ARCH}_WithoutInstaller.7z"
+ - "pip install pytest"
+ # see https://phabricator.wikimedia.org/T186991
+ # and
https://github.com/wikimedia/pywikibot/commit/c503a9bb225933066f2b9f40b061b0279c7f6ad3
+ - "IF %PYTHON:~0,11% == C:/Python34 (pip install pytest-runner==3.0) ELSE
(pip install pytest-runner)"
+build_script:
+ - "python setup.py build"
+test_script:
+ - "python setup.py test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/demo.py
new/pymediainfo-2.3.0/demo.py
--- old/pymediainfo-2.2.0/demo.py 1970-01-01 01:00:00.000000000 +0100
+++ new/pymediainfo-2.3.0/demo.py 2018-05-14 16:15:08.000000000 +0200
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+# encoding: utf-8
+
+"""
+a demo that shows how to call pymediainfo
+"""
+
+from __future__ import (absolute_import, division,
+ print_function, unicode_literals)
+
+import sys
+from pprint import pprint
+
+from pymediainfo import MediaInfo
+
+
+def print_frame(text):
+ print("+-{}-+".format("-" * len(text)))
+ print("| {} |".format(text))
+ print("+-{}-+".format("-" * len(text)))
+
+
+def process(fname):
+ media_info = MediaInfo.parse(fname)
+ for track in media_info.tracks:
+ print_frame(track.track_type)
+ pprint(track.to_data())
+ #
+ print()
+ for track in media_info.tracks:
+ if track.track_type == 'General' and track.duration:
+ print("Duration: {} sec.".format(track.duration / 1000.0))
+
+##############################################################################
+
+if __name__ == "__main__":
+ if len(sys.argv) == 1:
+ print("Usage: {} <media_file>".format(sys.argv[0]))
+ sys.exit(0)
+ if sys.version_info.major < 3:
+ process(sys.argv[1].decode(sys.getfilesystemencoding()))
+ else:
+ process(sys.argv[1])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/pymediainfo/__init__.py
new/pymediainfo-2.3.0/pymediainfo/__init__.py
--- old/pymediainfo-2.2.0/pymediainfo/__init__.py 2017-11-08
00:10:07.000000000 +0100
+++ new/pymediainfo-2.3.0/pymediainfo/__init__.py 2018-05-14
16:15:08.000000000 +0200
@@ -3,7 +3,7 @@
import locale
import json
import sys
-from pkg_resources import get_distribution
+from pkg_resources import get_distribution, DistributionNotFound
import xml.etree.ElementTree as ET
from ctypes import *
@@ -17,7 +17,10 @@
else:
import urllib.parse as urlparse
-__version__ = get_distribution("pymediainfo").version
+try:
+ __version__ = get_distribution("pymediainfo").version
+except DistributionNotFound:
+ pass
class Track(object):
"""
@@ -135,11 +138,14 @@
return None
@staticmethod
def _get_library(library_file=None):
+ os_is_nt = os.name in ("nt", "dos", "os2", "ce")
if library_file is not None:
- return CDLL(library_file)
- elif os.name in ("nt", "dos", "os2", "ce"):
- if library_file is None:
- return windll.MediaInfo
+ if os_is_nt:
+ return WinDLL(library_file)
+ else:
+ return CDLL(library_file)
+ elif os_is_nt:
+ return windll.MediaInfo
elif sys.platform == "darwin":
try:
return CDLL("libmediainfo.0.dylib")
@@ -160,7 +166,7 @@
except:
return False
@classmethod
- def parse(cls, filename, library_file=None):
+ def parse(cls, filename, library_file=None, cover_data=False):
"""
Analyze a media file using libmediainfo.
If libmediainfo is located in a non-standard location, the
`library_file` parameter can be used:
@@ -170,6 +176,7 @@
:param filename: path to the media file which will be analyzed.
:param str library_file: path to the libmediainfo library, this should
only be used if the library cannot be auto-detected.
+ :param bool cover_data: whether to retrieve cover data as base64.
:type filename: str or pathlib.Path
:rtype: MediaInfo
"""
@@ -199,12 +206,16 @@
lib.MediaInfo_Close.restype = None
# Obtain the library version
lib_version = lib.MediaInfo_Option(None, "Info_Version", "")
- lib_version = [int(_) for _ in re.search("^MediaInfoLib - v(\S+)",
lib_version).group(1).split(".")]
+ lib_version = tuple(int(_) for _ in re.search("^MediaInfoLib -
v(\S+)", lib_version).group(1).split("."))
# The XML option was renamed starting with version 17.10
- if lib_version >= [17, 10]:
+ if lib_version >= (17, 10):
xml_option = "OLDXML"
else:
xml_option = "XML"
+ # Cover_Data is not extracted by default since version 18.03
+ # See
https://github.com/MediaArea/MediaInfoLib/commit/d8fd88a1c282d1c09388c55ee0b46029e7330690
+ if cover_data and lib_version >= (18, 3):
+ lib.MediaInfo_Option(None, "Cover_Data", "base64")
# Create a MediaInfo handle
handle = lib.MediaInfo_New()
lib.MediaInfo_Option(handle, "CharSet", "UTF-8")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/pymediainfo.egg-info/PKG-INFO
new/pymediainfo-2.3.0/pymediainfo.egg-info/PKG-INFO
--- old/pymediainfo-2.2.0/pymediainfo.egg-info/PKG-INFO 2017-11-08
00:10:33.000000000 +0100
+++ new/pymediainfo-2.3.0/pymediainfo.egg-info/PKG-INFO 2018-05-14
16:15:37.000000000 +0200
@@ -1,12 +1,36 @@
Metadata-Version: 1.1
Name: pymediainfo
-Version: 2.2.0
+Version: 2.3.0
Summary: A Python wrapper for the mediainfo library.
Home-page: https://github.com/sbraz/pymediainfo
Author: Louis Sautier
Author-email: [email protected]
License: MIT
-Description: UNKNOWN
+Description: pymediainfo
+ -----------
+
+ .. image:: https://img.shields.io/pypi/v/pymediainfo.svg
+ :target: https://pypi.org/project/pymediainfo
+
+ .. image:: https://img.shields.io/pypi/pyversions/pymediainfo.svg
+ :target: https://pypi.org/project/pymediainfo
+
+ .. image:: https://img.shields.io/pypi/implementation/pymediainfo.svg
+ :target: https://pypi.org/project/pymediainfo
+
+ .. image::
https://api.travis-ci.org/sbraz/pymediainfo.svg?branch=master
+ :target: https://travis-ci.org/sbraz/pymediainfo
+
+ .. image::
https://ci.appveyor.com/api/projects/status/g15a2daem1oub57n/branch/master?svg=true
+ :target: https://ci.appveyor.com/project/sbraz/pymediainfo
+
+
+ This small package is a wrapper around the MediaInfo library.
+
+ It works on Linux, Mac OS X and Windows and is tested with Python 2.6,
2.7, 3.4, 3.5, 3.6, PyPy and PyPy3.
+
+ See https://pymediainfo.readthedocs.io/ for more information.
+
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 2.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/pymediainfo.egg-info/SOURCES.txt
new/pymediainfo-2.3.0/pymediainfo.egg-info/SOURCES.txt
--- old/pymediainfo-2.2.0/pymediainfo.egg-info/SOURCES.txt 2017-11-08
00:10:33.000000000 +0100
+++ new/pymediainfo-2.3.0/pymediainfo.egg-info/SOURCES.txt 2018-05-14
16:15:37.000000000 +0200
@@ -1,4 +1,8 @@
+AUTHORS
+LICENSE
README.rst
+appveyor.yml
+demo.py
setup.cfg
setup.py
docs/Makefile
@@ -12,10 +16,12 @@
pymediainfo.egg-info/dependency_links.txt
pymediainfo.egg-info/namespace_packages.txt
pymediainfo.egg-info/not-zip-safe
+pymediainfo.egg-info/requires.txt
pymediainfo.egg-info/top_level.txt
tests/test_pymediainfo.py
tests/data/accentué.txt
tests/data/invalid.xml
tests/data/sample.mkv
tests/data/sample.mp4
-tests/data/sample.xml
\ No newline at end of file
+tests/data/sample.xml
+tests/data/sample_with_cover.mp3
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/pymediainfo.egg-info/requires.txt
new/pymediainfo-2.3.0/pymediainfo.egg-info/requires.txt
--- old/pymediainfo-2.2.0/pymediainfo.egg-info/requires.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/pymediainfo-2.3.0/pymediainfo.egg-info/requires.txt 2018-05-14
16:15:37.000000000 +0200
@@ -0,0 +1 @@
+setuptools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/setup.py
new/pymediainfo-2.3.0/setup.py
--- old/pymediainfo-2.2.0/setup.py 2017-11-08 00:10:07.000000000 +0100
+++ new/pymediainfo-2.3.0/setup.py 2018-05-14 16:15:08.000000000 +0200
@@ -1,17 +1,24 @@
+#!/usr/bin/env python
from setuptools import setup, find_packages
+with open("README.rst") as f:
+ long_description = f.read()
+
setup(
name='pymediainfo',
- version='2.2.0',
author='Louis Sautier',
author_email='[email protected]',
url='https://github.com/sbraz/pymediainfo',
description="""A Python wrapper for the mediainfo library.""",
+ long_description=long_description,
packages=find_packages(),
namespace_packages=[],
include_package_data=True,
zip_safe=False,
license='MIT',
+ use_scm_version=True,
+ setup_requires=["setuptools_scm"],
+ install_requires=["setuptools"],
tests_require=["pytest", "pytest-runner"],
classifiers=[
"Development Status :: 5 - Production/Stable",
Binary files old/pymediainfo-2.2.0/tests/data/sample_with_cover.mp3 and
new/pymediainfo-2.3.0/tests/data/sample_with_cover.mp3 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymediainfo-2.2.0/tests/test_pymediainfo.py
new/pymediainfo-2.3.0/tests/test_pymediainfo.py
--- old/pymediainfo-2.2.0/tests/test_pymediainfo.py 2017-11-08
00:10:07.000000000 +0100
+++ new/pymediainfo-2.3.0/tests/test_pymediainfo.py 2018-05-14
16:15:08.000000000 +0200
@@ -95,3 +95,16 @@
def test_parse_pathlib_path(self):
mi = MediaInfo.parse(self.path)
self.assertEqual(len(mi.tracks), 3)
+
+class MediaInfoCoverDataTest(unittest.TestCase):
+ def setUp(self):
+ self.mi = MediaInfo.parse(
+ os.path.join(data_dir, "sample_with_cover.mp3"),
+ cover_data=True
+ )
+ def test_parse_cover_data(self):
+ self.assertEqual(
+ self.mi.tracks[0].cover_data,
+
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACXBIWXMAAAAAAA"
+
"AAAQCEeRdzAAAADUlEQVR4nGP4x8DwHwAE/AH+QSRCQgAAAABJRU5ErkJggg=="
+ )