[Bug 1629131] [NEW] Unable to use 'filething' to open files in mutagen.mp3.MP3

Simon Lambourn simon.lambourn at gmail.com
Thu Sep 29 23:11:33 UTC 2016


Public bug reported:

Hi,  I have been trying to 'override' the file open parameters in the
MP3 module to improve scan performance of a large music library, using
python3-mutagen.

I can't get the supplied example to work: I get the following output:

$ python3 fileobj-gio.py
Traceback (most recent call last):
  File "fileobj-gio.py", line 130, in <module>
    print(mutagen.File(mutagen_file).pprint())
  File "/usr/lib/python3/dist-packages/mutagen/_file.py", line 239, in File
    with open(filename, "rb") as fileobj:
TypeError: invalid file: <__main__.GioMutagenFile object at 0x7f204fba4be0>

Looking through the code I can't see how it would treat a 'file-like
object' any differently: it seems that open(filename,"rb") will always
be called.

What I want to achieve is to understand if different buffering would
improve elapsed time to scan large numbers of files.  I was hoping to
open the file first using different buffering parameter and pass a file-
object to MP3, but the only documented way of doing this using open() is
by passing the fileno() attribute of an already open file, which also
fails on the open statement:

m=MP3(f.fileno())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/mutagen/_file.py", line 42, in __init__
    self.load(filename, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/mutagen/id3/__init__.py", line 1092, in load
    with open(filename, "rb") as fileobj:
OSError: [Errno 9] Bad file descriptor

Any advice would be most welcome on either how to fix the bug or other
ways to improve scan performance.   Thanks for your help.

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: python3-mutagen 1.31-1ubuntu1
ProcVersionSignature: Ubuntu 4.4.0-38.57-generic 4.4.19
Uname: Linux 4.4.0-38-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
CurrentDesktop: Unity
Date: Fri Sep 30 00:03:20 2016
Dependencies:
 
PackageArchitecture: all
SourcePackage: mutagen
UpgradeStatus: Upgraded to xenial on 2016-04-22 (160 days ago)

** Affects: mutagen (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug xenial

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mutagen in Ubuntu.
https://bugs.launchpad.net/bugs/1629131

Title:
  Unable to use 'filething' to open files in mutagen.mp3.MP3

Status in mutagen package in Ubuntu:
  New

Bug description:
  Hi,  I have been trying to 'override' the file open parameters in the
  MP3 module to improve scan performance of a large music library, using
  python3-mutagen.

  I can't get the supplied example to work: I get the following output:

  $ python3 fileobj-gio.py
  Traceback (most recent call last):
    File "fileobj-gio.py", line 130, in <module>
      print(mutagen.File(mutagen_file).pprint())
    File "/usr/lib/python3/dist-packages/mutagen/_file.py", line 239, in File
      with open(filename, "rb") as fileobj:
  TypeError: invalid file: <__main__.GioMutagenFile object at 0x7f204fba4be0>

  Looking through the code I can't see how it would treat a 'file-like
  object' any differently: it seems that open(filename,"rb") will always
  be called.

  What I want to achieve is to understand if different buffering would
  improve elapsed time to scan large numbers of files.  I was hoping to
  open the file first using different buffering parameter and pass a
  file-object to MP3, but the only documented way of doing this using
  open() is by passing the fileno() attribute of an already open file,
  which also fails on the open statement:

  m=MP3(f.fileno())
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib/python3/dist-packages/mutagen/_file.py", line 42, in __init__
      self.load(filename, *args, **kwargs)
    File "/usr/lib/python3/dist-packages/mutagen/id3/__init__.py", line 1092, in load
      with open(filename, "rb") as fileobj:
  OSError: [Errno 9] Bad file descriptor

  Any advice would be most welcome on either how to fix the bug or other
  ways to improve scan performance.   Thanks for your help.

  ProblemType: Bug
  DistroRelease: Ubuntu 16.04
  Package: python3-mutagen 1.31-1ubuntu1
  ProcVersionSignature: Ubuntu 4.4.0-38.57-generic 4.4.19
  Uname: Linux 4.4.0-38-generic x86_64
  ApportVersion: 2.20.1-0ubuntu2.1
  Architecture: amd64
  CurrentDesktop: Unity
  Date: Fri Sep 30 00:03:20 2016
  Dependencies:
   
  PackageArchitecture: all
  SourcePackage: mutagen
  UpgradeStatus: Upgraded to xenial on 2016-04-22 (160 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mutagen/+bug/1629131/+subscriptions



More information about the foundations-bugs mailing list