Starting with bash-completion 1.90 (released in November 2011) completion files should be installed in the share/ directory.
They must use the executable’s name for loading on demand, so for this reason, it was necessary to generate the completion file in a new directory, so that it does not clash with the `youtube-dl` executable.
This is because Python’s setup-tools does not support data files to be installed with a different base name.
I have tested this change with both `make install` and `pip install`, as these two install procedures have slightly different code paths.
I removed the `bash-completion` (phony) target from the make file, as we now have a directory with that name, and I could not see the target being referenced anywhere.
Closes#804.
[test_download] Print test names in case of network errors
[test_download] Add comments for nose parameters
[test_download] Modify outtmpl to prevent info JSON filename conflicts
Thanks @jaimeMF for the idea.
[travis] Only download tests should be run in parallel
In pycodestyle 2.1.0, E305 was introduced, which requires two blank
lines after top level declarations, too.
See https://github.com/PyCQA/pycodestyle/issues/400
See also #10689; thanks @stepshal for first mentioning this issue and
initial patches
The problem was in the following code:
class ArteTVPlus7IE(ArteTVBaseIE):
...
@classmethod
def suitable(cls, url):
return False if ArteTVPlaylistIE.suitable(url) else super(ArteTVPlus7IE, cls).suitable(url)
And its sublcasses like ArteTVCinemaIE.
Since in the lazy_extractors.py file ArteTVCinemaIE was not a subclass of ArteTVPlus7IE, super(ArteTVPlus7IE, cls) failed.
To fix it we have to make it a subclass. Since the order of _ALL_CLASSES is arbitrary we must sort them so that the base classes are defined first. We also must add base classes like YoutubeBaseInfoExtractor.
'make lazy-extractors' creates the youtube_dl/extractor/lazy_extractors.py (imported by youtube_dl/extractor/__init__.py), which contains simplified classes that only have the 'suitable' class method and that load the appropiate class with the '__new__' method when a instance is created.