svn commit: r502817 - in head/www/py-flexget: . files

Jan Beich jbeich at FreeBSD.org
Mon May 27 19:40:17 UTC 2019


Author: jbeich
Date: Mon May 27 19:40:14 2019
New Revision: 502817
URL: https://svnweb.freebsd.org/changeset/ports/502817

Log:
  www/py-flexget: update to 2.21.1
  
  Changes:	https://github.com/Flexget/Flexget/compare/2.14.24...2.21.1

Added:
  head/www/py-flexget/files/patch-01-guessit-2.1.4   (contents, props changed)
  head/www/py-flexget/files/patch-02-path.py-8.1   (contents, props changed)
Modified:
  head/www/py-flexget/Makefile   (contents, props changed)
  head/www/py-flexget/distinfo   (contents, props changed)
  head/www/py-flexget/files/patch-requirements.txt   (contents, props changed)

Modified: head/www/py-flexget/Makefile
==============================================================================
--- head/www/py-flexget/Makefile	Mon May 27 19:32:31 2019	(r502816)
+++ head/www/py-flexget/Makefile	Mon May 27 19:40:14 2019	(r502817)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	flexget
-PORTVERSION=	2.14.24
+PORTVERSION=	2.21.1
 PORTEPOCH=	1
 CATEGORIES=	www python
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -14,18 +14,19 @@ LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy12>0:databases/py-sqlalchemy12@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10:devel/py-Jinja2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rebulk>=0.9.0:devel/py-rebulk@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}rpyc>0:devel/py-RPyC@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}apscheduler>=3.2.0:devel/py-apscheduler@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dateutil>=2.5.3:devel/py-dateutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}future>=0.15.2:devel/py-future@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}jsonschema>=2.0:devel/py-jsonschema@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}path.py>=8.1.1:devel/py-path.py@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}path.py<10.6:devel/py-path.py@${PY_FLAVOR} \
 		${PY_PATHLIB} \
 		${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.3:devel/py-pyparsing@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}progressbar>0:misc/py-progressbar@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}guessit>=2.1.4:multimedia/py-guessit@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}yaml>=3.13:devel/py-yaml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}progressbar>=2.5:misc/py-progressbar@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}guessit<3.0.0:multimedia/py-guessit@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pynzb>0:news/py-pynzb@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}zxcvbn>0:security/py-zxcvbn@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}plumbum>=1.2:sysutils/py-plumbum@${PY_FLAVOR} \
@@ -42,7 +43,7 @@ RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy12>0:dat
 		${PYTHON_PKGNAMEPREFIX}Flask-RESTful>=0.3.3:www/py-flask-restful@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}flask-restplus>=0.10.1:www/py-flask-restplus@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}html5lib>=0.11:www/py-html5lib@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}requests>=2.8.0:www/py-requests@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}requests>=2.20.0:www/py-requests@${PY_FLAVOR}
 TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pytest>=3.3:devel/py-pytest@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}vcrpy>0:devel/py-vcrpy@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR}

Modified: head/www/py-flexget/distinfo
==============================================================================
--- head/www/py-flexget/distinfo	Mon May 27 19:32:31 2019	(r502816)
+++ head/www/py-flexget/distinfo	Mon May 27 19:40:14 2019	(r502817)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1538359480
-SHA256 (flexget-Flexget-2.14.24_GH0.tar.gz) = 3459a600848f7f44f4dc0119f26a30c0959c338a157f957d58d457d3dde9977c
-SIZE (flexget-Flexget-2.14.24_GH0.tar.gz) = 6633696
+TIMESTAMP = 1558749819
+SHA256 (flexget-Flexget-2.21.1_GH0.tar.gz) = 9a612657e087229d4f8ca13fd10deb9af39347ba1f96b8a028f3a6ed2ae30a7e
+SIZE (flexget-Flexget-2.21.1_GH0.tar.gz) = 7141563

Added: head/www/py-flexget/files/patch-01-guessit-2.1.4
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/py-flexget/files/patch-01-guessit-2.1.4	Mon May 27 19:40:14 2019	(r502817)
@@ -0,0 +1,141 @@
+Revert https://github.com/Flexget/Flexget/commit/f6b01c1176ff
+
+--- flexget/components/imdb/utils.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/components/imdb/utils.py
+@@ -96,7 +96,7 @@ class ImdbSearch(object):
+         parser = plugin.get('parsing', 'imdb_search').parse_movie(raw_name)
+         name = parser.name
+         year = parser.year
+-        if not name:
++        if name == '':
+             log.critical('Failed to parse name from %s', raw_name)
+             return None
+         log.debug('smart_match name=%s year=%s' % (name, str(year)))
+--- flexget/components/parsing/parsers/parser_guessit.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/components/parsing/parsers/parser_guessit.py
+@@ -40,16 +40,9 @@ _id_regexps = Rebulk().functional(
+ )
+ 
+ 
+-def rules_builder(config):
+-    rebulk = rebulk_builder(config)
+-    rebulk.rebulk(_id_regexps)
+-    return rebulk
++guessit_api = GuessItApi(rebulk_builder().rebulk(_id_regexps))
+ 
+ 
+-guessit_api = GuessItApi()
+-guessit_api.configure(options={}, rules_builder=rules_builder, force=True)
+-
+-
+ def normalize_component(data):
+     if data is None:
+         return []
+@@ -66,19 +59,6 @@ except AttributeError:
+ 
+ 
+ class ParserGuessit(object):
+-    SOURCE_MAP = {
+-        'Camera': 'cam',
+-        'HD Camera': 'cam',
+-        'HD Telesync': 'telesync',
+-        'Pay-per-view': 'ppv',
+-        'Digital TV': 'dvb',
+-        'Video on Demand': 'vod',
+-        'Analog HDTV': 'ahdtv',
+-        'Ultra HDTV': 'uhdtv',
+-        'HD Telecine': 'hdtc',
+-        'Web': 'web-dl',
+-    }
+-
+     @staticmethod
+     def _guessit_options(options):
+         settings = {
+@@ -87,6 +67,7 @@ class ParserGuessit(object):
+             'allowed_countries': ['us', 'uk', 'gb'],
+             'single_value': True,
+         }
++        # 'clean_function': clean_value
+         options['episode_prefer_number'] = not options.get('identified_by') == 'ep'
+         if options.get('allow_groups'):
+             options['expected_group'] = options['allow_groups']
+@@ -114,18 +95,17 @@ class ParserGuessit(object):
+         else:
+             version -= 1
+         proper_count = guessit_result.get('proper_count', 0)
+-        fastsub = 'fast subtitled' in normalize_component(guessit_result.values_list.get('other'))
++        fastsub = 'fastsub' in normalize_component(guessit_result.values_list.get('other'))
+         return version + proper_count - (5 if fastsub else 0)
+ 
+-    def _source(self, guessit_result):
+-        other = normalize_component(guessit_result.values_list.get('other'))
+-        source = self.SOURCE_MAP.get(guessit_result.get('source'), guessit_result.get('source'))
+-        # special case
+-        if source == 'web-dl' and 'rip' in other:
+-            source = 'webrip'
++    def _quality(self, guessit_result):
++        """Generate a FlexGet Quality from a guessit result."""
++        resolution = normalize_component(guessit_result.values_list.get('screen_size'))
++        other = normalize_component(guessit_result.get('other'))
++        if not resolution and 'hr' in other:
++            resolution.append('hr')
+ 
+-        source = normalize_component(source)
+-
++        source = normalize_component(guessit_result.get('format'))
+         if 'preair' in other:
+             source.append('preair')
+         if 'screener' in other:
+@@ -136,17 +116,6 @@ class ParserGuessit(object):
+         if 'region 5' in other or 'region c' in other:
+             source.append('r5')
+ 
+-        return source
+-
+-    def _quality(self, guessit_result):
+-        """Generate a FlexGet Quality from a guessit result."""
+-        resolution = normalize_component(guessit_result.values_list.get('screen_size'))
+-        other = normalize_component(guessit_result.values_list.get('other'))
+-        if not resolution and 'high resolution' in other:
+-            resolution.append('hr')
+-
+-        source = self._source(guessit_result)
+-
+         codec = normalize_component(guessit_result.values_list.get('video_codec'))
+         if '10bit' in normalize_component(guessit_result.values_list.get('color_depth')):
+             codec.append('10bit')
+@@ -155,11 +124,9 @@ class ParserGuessit(object):
+         audio_profile = normalize_component(guessit_result.values_list.get('audio_profile'))
+         audio_channels = normalize_component(guessit_result.values_list.get('audio_channels'))
+         # unlike the other components, audio can be a bit iffy with multiple codecs, so we limit it to one
+-        if 'dts' in audio and any(hd in audio_profile for hd in ['hd', 'master audio']):
++        if 'dts' in audio and any(hd in audio_profile for hd in ['HD', 'HDMA']):
+             audio = ['dtshd']
+-        elif '5.1' in audio_channels and 'dolby digital plus' in audio:
+-            audio = ['dd+5.1']
+-        elif '5.1' in audio_channels and 'dolby digital' in audio:
++        elif '5.1' in audio_channels and any(dd in audio for dd in ['ac3', 'dolbydigital']):
+             audio = ['dd5.1']
+ 
+         # Make sure everything are strings (guessit will return lists when there are multiples)
+--- flexget/tests/test_seriesparser.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/tests/test_seriesparser.py
+@@ -114,7 +114,6 @@ class TestSeriesParser(object):
+         s = parse(name='Something', data='Something - Season2 Episode2')
+         assert s.season == 2 and s.episode == 2, 'failed to parse %s' % s
+ 
+-    @pytest.mark.xfail(reason='Not supported in guessit, works for internal parser')
+     def test_series_episode(self, parse):
+         """SeriesParser: series X, episode Y"""
+         s = parse(name='Something', data='Something - Series 2, Episode 2')
+--- requirements.txt.orig	2019-05-25 02:03:39 UTC
++++ requirements.txt
+@@ -15,7 +15,7 @@ python-dateutil
+ jsonschema>=2.0
+ path.py>=10.6
+ pathlib>=1.0; python_version<'3.4'
+-guessit==3.0.3
++guessit<3.0.0
+ rebulk>=0.9.0
+ apscheduler>=3.2.0
+ terminaltables>=3.1.0

Added: head/www/py-flexget/files/patch-02-path.py-8.1
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/py-flexget/files/patch-02-path.py-8.1	Mon May 27 19:40:14 2019	(r502817)
@@ -0,0 +1,69 @@
+Revert https://github.com/Flexget/Flexget/commit/0a401204a107
+
+--- flexget/api/core/server.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/api/core/server.py
+@@ -571,6 +571,6 @@ class ServerCrashLogAPI(APIResource):
+         path = Path(self.manager.config_base)
+         crashes = [
+             {'name': file.name, 'content': file.open().readlines()}
+-            for file in path.listdir(match='crash_report*.log')
++            for file in path.listdir(pattern='crash_report*.log')
+         ]
+         return jsonify(crashes)
+--- flexget/plugin.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/plugin.py
+@@ -476,7 +476,7 @@ def _load_plugins_from_dirs(dirs):
+                 _f for _f in plugin_path.relpath(plugins_dir).parent.splitall() if _f
+             ]
+             module_name = '.'.join(
+-                [plugins_pkg.__name__] + plugin_subpackages + [plugin_path.stem]
++                [plugins_pkg.__name__] + plugin_subpackages + [plugin_path.namebase]
+             )
+             _import_plugin(module_name, plugin_path)
+     _check_phase_queue()
+@@ -498,7 +498,7 @@ def _load_components_from_dirs(dirs):
+                 _f for _f in component_path.relpath(component_dir).parent.splitall() if _f
+             ]
+             package_name = '.'.join(
+-                [components_pkg.__name__] + plugin_subpackages + [component_path.stem]
++                [components_pkg.__name__] + plugin_subpackages + [component_path.namebase]
+             )
+             _import_plugin(package_name, component_path)
+     _check_phase_queue()
+--- flexget/plugins/input/filesystem.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/plugins/input/filesystem.py
+@@ -129,7 +129,7 @@ class Filesystem(object):
+             entry['url'] = pathlib.Path(filepath).absolute().as_uri()
+         entry['filename'] = filepath.name
+         if filepath.isfile():
+-            entry['title'] = filepath.stem
++            entry['title'] = filepath.namebase
+         else:
+             entry['title'] = filepath.name
+         try:
+--- flexget/tests/test_filesystem.py.orig	2019-05-25 02:03:39 UTC
++++ flexget/tests/test_filesystem.py
+@@ -137,10 +137,10 @@ class TestFilesystem(object):
+                     task_name,
+                     file,
+                 )
+-                assert task.find_entry(title=file.stem), assertion_error
++                assert task.find_entry(title=file.namebase), assertion_error
+             else:
+                 assertion_error = 'Failed %s %s test, found %s' % (test_type, task_name, file)
+-                assert not task.find_entry(title=file.stem), assertion_error
++                assert not task.find_entry(title=file.namebase), assertion_error
+ 
+     def test_string(self, execute_task):
+         task_name = 'string'
+--- requirements.txt.orig	2019-05-25 02:03:39 UTC
++++ requirements.txt
+@@ -13,7 +13,7 @@ jinja2~=2.10
+ requests>=2.20.0
+ python-dateutil
+ jsonschema>=2.0
+-path.py>=10.6
++path.py>=8.1.1,<10.6
+ pathlib>=1.0; python_version<'3.4'
+ guessit==3.0.3
+ rebulk>=0.9.0

Modified: head/www/py-flexget/files/patch-requirements.txt
==============================================================================
--- head/www/py-flexget/files/patch-requirements.txt	Mon May 27 19:32:31 2019	(r502816)
+++ head/www/py-flexget/files/patch-requirements.txt	Mon May 27 19:40:14 2019	(r502817)
@@ -1,28 +1,17 @@
---- requirements.txt.orig	2017-06-21 02:13:55 UTC
+--- requirements.txt.orig	2019-05-25 02:03:39 UTC
 +++ requirements.txt
-@@ -7,18 +7,15 @@ html5lib>=0.11
+@@ -7,8 +7,8 @@ html5lib>=0.11
  PyRSS2Gen
  pynzb
  #PY3 progressbar
--rpyc==3.3.0
+-rpyc~=4.0
+-jinja2~=2.10
 +rpyc
- jinja2
++jinja2
  # There is a bug in requests 2.4.0 where it leaks urllib3 exceptions
--requests~=2.16.3
--#Guessit requires python-dateutil<=2.5.2
-+requests>=2.8.0, <3.0
- python-dateutil>=2.5.3
- jsonschema>=2.0
- path.py>=8.1.1
- pathlib>=1.0; python_version<'3.4'
--guessit<=2.1.4
--# Rebulk changes how guessit works higher than 0.8.2
--rebulk==0.9.0
-+guessit>=2.1.0
- apscheduler>=3.2.0
- terminaltables>=3.1.0
- colorclass>=2.2.0
-@@ -26,10 +23,10 @@ colorclass>=2.2.0
+ requests>=2.20.0
+ python-dateutil
+@@ -24,11 +24,11 @@ colorclass>=2.2.0
  cherrypy>=3.7.0
  flask>=0.7
  flask-restful>=0.3.3
@@ -35,3 +24,6 @@
 -zxcvbn-python
 +zxcvbn
  future>=0.15.2
+-progressbar==2.5
+\ No newline at end of file
++progressbar>=2.5


More information about the svn-ports-all mailing list