Skip to content

Serialization and Trakt (?) #2583

@BrutuZ

Description

@BrutuZ

Previously discussed via chat

Log:

(click to expand)
2020-01-30 15:20:27 ERROR    entry         download-anime-series-rss BUG: Lazy lookup was not compatible with serialization. Please file a bug report: `<function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>` of type <class 'function'> is not serializable
Traceback (most recent call last):

  File "c:\python37\Lib\threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
    │    └ <function Thread._bootstrap_inner at 0x0000019F98F339D8>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\python37\Lib\threading.py", line 926, in _bootstrap_inner
    self.run()
    │    └ <function Thread.run at 0x0000019F98F33798>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\python37\Lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
    │    │        │    │        │    └ {}
    │    │        │    │        └ <Thread(task_queue, started daemon 6004)>
    │    │        │    └ ()
    │    │        └ <Thread(task_queue, started daemon 6004)>
    │    └ <bound method TaskQueue.run of <flexget.task_queue.TaskQueue object at 0x0000019F9F5D8A88>>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\users\brutuz\documents\github\flexget\flexget\task_queue.py", line 45, in run
    self.current_task.execute()
    │    │            └ <function Task.execute at 0x0000019F9B547168>
    │    └ <flexget.task.Task object at 0x0000019FA3E51348>
    └ <flexget.task_queue.TaskQueue object at 0x0000019F9F5D8A88>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 79, in wrapper
    return func(self, *args, **kw)
           │    │      │       └ {}
           │    │      └ ()
           │    └ <flexget.task.Task object at 0x0000019FA3E51348>
           └ <function Task.execute at 0x0000019F9B5470D8>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 696, in execute
    self._execute()
    │    └ <function Task._execute at 0x0000019F9B547048>
    └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 662, in _execute
    self.__run_task_phase(phase)
    │                     └ 'output'
    └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 488, in __run_task_phase
    response = self.__run_plugin(plugin, phase, args)
               │                 │       │      └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
               │                 │       └ 'output'
               │                 └ <PluginInfo(name=list_add)>
               └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 521, in __run_plugin
    result = method(*args, **kwargs)
             │       │       └ {}
             │       └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
             └ <Event(name=plugin.list_add.output,func=on_task_output,priority=0)>

  File "c:\users\brutuz\documents\github\flexget\flexget\event.py", line 20, in __call__
    return self.func(*args, **kwargs)
           │    │     │       └ {}
           │    │     └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
           │    └ <bound method ListAdd.on_task_output of <flexget.components.managed_lists.list_add.ListAdd object at 0x0000019F9E2274C8>>
           └ <Event(name=plugin.list_add.output,func=on_task_output,priority=0)>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\list_add.py", line 53, in on_task_output
    thelist |= task.accepted
    │          │    └ <property object at 0x0000019F9B546728>
    │          └ <flexget.task.Task object at 0x0000019FA3E51348>
    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>

  File "c:\users\brutuz\documents\github\flexget\lib\_collections_abc.py", line 606, in __ior__
    self.add(value)
    │    │   └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
    │    └ <function DBEntrySet.add at 0x0000019F9E6A6F78>
    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\lists\entry_list\db.py", line 157, in add
    stored_entry = EntryListEntry(entry=entry, entry_list_id=self._db_list(session).id)
                   │                    │                    │    │        └ <sqlalchemy.orm.session.ContextSession object at 0x0000019FA5488808>
                   │                    │                    │    └ <function DBEntrySet._db_list at 0x0000019F9E6A68B8>
                   │                    │                    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>
                   │                    └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
                   └ <class 'flexget.components.managed_lists.lists.entry_list.db.EntryListEntry'>

  File "<string>", line 4, in __init__

  File "c:\users\brutuz\documents\github\flexget\lib\site-packages\sqlalchemy\orm\state.py", line 438, in _initialize_instance
    return manager.original_init(*mixed[1:], **kwargs)
           │       │              │            └ {}
           │       │              └ (<sqlalchemy.orm.state.InstanceState object at 0x0000019FA5942948>, <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanak...
           │       └ <function EntryListEntry.__init__ at 0x0000019F9E697A68>
           └ <ClassManager of <class 'flexget.components.managed_lists.lists.entry_list.db.EntryListEntry'> at 19f9e693e88>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\lists\entry_list\db.py", line 80, in __init__
    self.entry = entry
    │    │       └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
    │    └ <sqlalchemy.orm.attributes.create_proxied_attribute.<locals>.Proxy object at 0x0000019F9E6A7048>
    └ <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,original_url=magnet:?xt=urn:btih:YWFSDQGOT2RQ7...

  File "<string>", line 1, in __set__

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\database.py", line 94, in setter
    setattr(self, name, serialization.dumps(entry))
            │     │     │             │     └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
            │     │     │             └ <function dumps at 0x0000019F9B164678>
            │     │     └ <module 'flexget.utils.serialization' from 'c:\\users\\brutuz\\documents\\github\\flexget\\flexget\\utils\\serialization.py'>
            │     └ '_json'
            └ <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,original_url=magnet:?xt=urn:btih:YWFSDQGOT2RQ7...

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 53, in dumps
    serialized = serialize(value)
                 │         └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
                 └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
             │ └ <classmethod object at 0x0000019F9B367048>
             └ <class 'flexget.entry.Entry'>

> File "c:\users\brutuz\documents\github\flexget\flexget\entry.py", line 314, in serialize
    lazy_lookups.append(serialize(ll))
    │            │      │         └ ('trakt_lazy_lookup', ['trakt_actors'], ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <boun...
    │            │      └ <function serialize at 0x0000019F9B157DC8>
    │            └ <method 'append' of 'list' objects>
    └ [{'serializer': 'TupleSerializer', 'version': 1, 'value': ['quality', ['quality'], None, None]}, {'serializer': 'TupleSeriali...

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ ('trakt_lazy_lookup', ['trakt_actors'], ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <boun...
             │ └ <classmethod object at 0x0000019F9B196E88>
             └ <class 'flexget.utils.serialization.TupleSerializer'>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 157, in serialize
    return serialize(list(value))
           │              └ ('trakt_lazy_lookup', ['trakt_actors'], ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <boun...
           └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in serialize
    return [serialize(v) for v in value]
            │                     └ ['trakt_lazy_lookup', ['trakt_actors'], ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <boun...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in <listcomp>
    return [serialize(v) for v in value]
            │         │      └ ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <bound method PluginTraktLookup._get_series o...
            │         └ ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <bound method PluginTraktLookup._get_series o...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <bound method PluginTraktLookup._get_series o...
             │ └ <classmethod object at 0x0000019F9B196E88>
             └ <class 'flexget.utils.serialization.TupleSerializer'>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 157, in serialize
    return serialize(list(value))
           │              └ ({'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <bound method PluginTraktLookup._get_series o...
           └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in serialize
    return [serialize(v) for v in value]
            │                     └ [{'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}, <bound method PluginTraktLookup._get_series o...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in <listcomp>
    return [serialize(v) for v in value]
            │         │      └ {'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}
            │         └ {'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 26, in serialize
    return {k: serialize(v) for k, v in value.items()}
               │                        │     └ <method 'items' of 'dict' objects>
               │                        └ {'trakt_actors': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>}
               └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 26, in <dictcomp>
    return {k: serialize(v) for k, v in value.items()}
            │  │         │      │  └ <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>
            │  │         │      └ 'trakt_actors'
            │  │         └ <function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>
            │  └ <function serialize at 0x0000019F9B157DC8>
            └ 'trakt_actors'

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 29, in serialize
    raise TypeError(f'`{value!r}` of type {type(value)!r} is not serializable')

TypeError: `<function PluginTraktLookup.<lambda> at 0x0000019F9F4C45E8>` of type <class 'function'> is not serializable
2020-01-30 15:20:27 ERROR    entry         download-anime-series-rss BUG: Lazy lookup was not compatible with serialization. Please file a bug report: `<function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>` of type <class 'function'> is not serializable
Traceback (most recent call last):

  File "c:\python37\Lib\threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
    │    └ <function Thread._bootstrap_inner at 0x0000019F98F339D8>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\python37\Lib\threading.py", line 926, in _bootstrap_inner
    self.run()
    │    └ <function Thread.run at 0x0000019F98F33798>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\python37\Lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
    │    │        │    │        │    └ {}
    │    │        │    │        └ <Thread(task_queue, started daemon 6004)>
    │    │        │    └ ()
    │    │        └ <Thread(task_queue, started daemon 6004)>
    │    └ <bound method TaskQueue.run of <flexget.task_queue.TaskQueue object at 0x0000019F9F5D8A88>>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\users\brutuz\documents\github\flexget\flexget\task_queue.py", line 45, in run
    self.current_task.execute()
    │    │            └ <function Task.execute at 0x0000019F9B547168>
    │    └ <flexget.task.Task object at 0x0000019FA3E51348>
    └ <flexget.task_queue.TaskQueue object at 0x0000019F9F5D8A88>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 79, in wrapper
    return func(self, *args, **kw)
           │    │      │       └ {}
           │    │      └ ()
           │    └ <flexget.task.Task object at 0x0000019FA3E51348>
           └ <function Task.execute at 0x0000019F9B5470D8>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 696, in execute
    self._execute()
    │    └ <function Task._execute at 0x0000019F9B547048>
    └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 662, in _execute
    self.__run_task_phase(phase)
    │                     └ 'output'
    └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 488, in __run_task_phase
    response = self.__run_plugin(plugin, phase, args)
               │                 │       │      └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
               │                 │       └ 'output'
               │                 └ <PluginInfo(name=list_add)>
               └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 521, in __run_plugin
    result = method(*args, **kwargs)
             │       │       └ {}
             │       └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
             └ <Event(name=plugin.list_add.output,func=on_task_output,priority=0)>

  File "c:\users\brutuz\documents\github\flexget\flexget\event.py", line 20, in __call__
    return self.func(*args, **kwargs)
           │    │     │       └ {}
           │    │     └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
           │    └ <bound method ListAdd.on_task_output of <flexget.components.managed_lists.list_add.ListAdd object at 0x0000019F9E2274C8>>
           └ <Event(name=plugin.list_add.output,func=on_task_output,priority=0)>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\list_add.py", line 53, in on_task_output
    thelist |= task.accepted
    │          │    └ <property object at 0x0000019F9B546728>
    │          └ <flexget.task.Task object at 0x0000019FA3E51348>
    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>

  File "c:\users\brutuz\documents\github\flexget\lib\_collections_abc.py", line 606, in __ior__
    self.add(value)
    │    │   └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
    │    └ <function DBEntrySet.add at 0x0000019F9E6A6F78>
    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\lists\entry_list\db.py", line 157, in add
    stored_entry = EntryListEntry(entry=entry, entry_list_id=self._db_list(session).id)
                   │                    │                    │    │        └ <sqlalchemy.orm.session.ContextSession object at 0x0000019FA5488808>
                   │                    │                    │    └ <function DBEntrySet._db_list at 0x0000019F9E6A68B8>
                   │                    │                    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>
                   │                    └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
                   └ <class 'flexget.components.managed_lists.lists.entry_list.db.EntryListEntry'>

  File "<string>", line 4, in __init__

  File "c:\users\brutuz\documents\github\flexget\lib\site-packages\sqlalchemy\orm\state.py", line 438, in _initialize_instance
    return manager.original_init(*mixed[1:], **kwargs)
           │       │              │            └ {}
           │       │              └ (<sqlalchemy.orm.state.InstanceState object at 0x0000019FA5942948>, <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanak...
           │       └ <function EntryListEntry.__init__ at 0x0000019F9E697A68>
           └ <ClassManager of <class 'flexget.components.managed_lists.lists.entry_list.db.EntryListEntry'> at 19f9e693e88>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\lists\entry_list\db.py", line 80, in __init__
    self.entry = entry
    │    │       └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
    │    └ <sqlalchemy.orm.attributes.create_proxied_attribute.<locals>.Proxy object at 0x0000019F9E6A7048>
    └ <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,original_url=magnet:?xt=urn:btih:YWFSDQGOT2RQ7...

  File "<string>", line 1, in __set__

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\database.py", line 94, in setter
    setattr(self, name, serialization.dumps(entry))
            │     │     │             │     └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
            │     │     │             └ <function dumps at 0x0000019F9B164678>
            │     │     └ <module 'flexget.utils.serialization' from 'c:\\users\\brutuz\\documents\\github\\flexget\\flexget\\utils\\serialization.py'>
            │     └ '_json'
            └ <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,original_url=magnet:?xt=urn:btih:YWFSDQGOT2RQ7...

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 53, in dumps
    serialized = serialize(value)
                 │         └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
                 └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
             │ └ <classmethod object at 0x0000019F9B367048>
             └ <class 'flexget.entry.Entry'>

> File "c:\users\brutuz\documents\github\flexget\flexget\entry.py", line 314, in serialize
    lazy_lookups.append(serialize(ll))
    │            │      │         └ ('trakt_lazy_lookup', ['trakt_translations'], ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4...
    │            │      └ <function serialize at 0x0000019F9B157DC8>
    │            └ <method 'append' of 'list' objects>
    └ [{'serializer': 'TupleSerializer', 'version': 1, 'value': ['quality', ['quality'], None, None]}, {'serializer': 'TupleSeriali...

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ ('trakt_lazy_lookup', ['trakt_translations'], ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4...
             │ └ <classmethod object at 0x0000019F9B196E88>
             └ <class 'flexget.utils.serialization.TupleSerializer'>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 157, in serialize
    return serialize(list(value))
           │              └ ('trakt_lazy_lookup', ['trakt_translations'], ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4...
           └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in serialize
    return [serialize(v) for v in value]
            │                     └ ['trakt_lazy_lookup', ['trakt_translations'], ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in <listcomp>
    return [serialize(v) for v in value]
            │         │      └ ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}, <bound method PluginTraktLookup._get_se...
            │         └ ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}, <bound method PluginTraktLookup._get_se...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}, <bound method PluginTraktLookup._get_se...
             │ └ <classmethod object at 0x0000019F9B196E88>
             └ <class 'flexget.utils.serialization.TupleSerializer'>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 157, in serialize
    return serialize(list(value))
           │              └ ({'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}, <bound method PluginTraktLookup._get_se...
           └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in serialize
    return [serialize(v) for v in value]
            │                     └ [{'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}, <bound method PluginTraktLookup._get_se...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in <listcomp>
    return [serialize(v) for v in value]
            │         │      └ {'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}
            │         └ {'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 26, in serialize
    return {k: serialize(v) for k, v in value.items()}
               │                        │     └ <method 'items' of 'dict' objects>
               │                        └ {'trakt_translations': <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>}
               └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 26, in <dictcomp>
    return {k: serialize(v) for k, v in value.items()}
            │  │         │      │  └ <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>
            │  │         │      └ 'trakt_translations'
            │  │         └ <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>
            │  └ <function serialize at 0x0000019F9B157DC8>
            └ 'trakt_translations'

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 29, in serialize
    raise TypeError(f'`{value!r}` of type {type(value)!r} is not serializable')

TypeError: `<function PluginTraktLookup.<lambda> at 0x0000019F9F4C4678>` of type <class 'function'> is not serializable
2020-01-30 15:20:27 ERROR    entry         download-anime-series-rss BUG: Lazy lookup was not compatible with serialization. Please file a bug report: `<function PluginTraktLookup.<lambda> at 0x0000019F9F4C4708>` of type <class 'function'> is not serializable
Traceback (most recent call last):

  File "c:\python37\Lib\threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
    │    └ <function Thread._bootstrap_inner at 0x0000019F98F339D8>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\python37\Lib\threading.py", line 926, in _bootstrap_inner
    self.run()
    │    └ <function Thread.run at 0x0000019F98F33798>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\python37\Lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
    │    │        │    │        │    └ {}
    │    │        │    │        └ <Thread(task_queue, started daemon 6004)>
    │    │        │    └ ()
    │    │        └ <Thread(task_queue, started daemon 6004)>
    │    └ <bound method TaskQueue.run of <flexget.task_queue.TaskQueue object at 0x0000019F9F5D8A88>>
    └ <Thread(task_queue, started daemon 6004)>

  File "c:\users\brutuz\documents\github\flexget\flexget\task_queue.py", line 45, in run
    self.current_task.execute()
    │    │            └ <function Task.execute at 0x0000019F9B547168>
    │    └ <flexget.task.Task object at 0x0000019FA3E51348>
    └ <flexget.task_queue.TaskQueue object at 0x0000019F9F5D8A88>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 79, in wrapper
    return func(self, *args, **kw)
           │    │      │       └ {}
           │    │      └ ()
           │    └ <flexget.task.Task object at 0x0000019FA3E51348>
           └ <function Task.execute at 0x0000019F9B5470D8>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 696, in execute
    self._execute()
    │    └ <function Task._execute at 0x0000019F9B547048>
    └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 662, in _execute
    self.__run_task_phase(phase)
    │                     └ 'output'
    └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 488, in __run_task_phase
    response = self.__run_plugin(plugin, phase, args)
               │                 │       │      └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
               │                 │       └ 'output'
               │                 └ <PluginInfo(name=list_add)>
               └ <flexget.task.Task object at 0x0000019FA3E51348>

  File "c:\users\brutuz\documents\github\flexget\flexget\task.py", line 521, in __run_plugin
    result = method(*args, **kwargs)
             │       │       └ {}
             │       └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
             └ <Event(name=plugin.list_add.output,func=on_task_output,priority=0)>

  File "c:\users\brutuz\documents\github\flexget\flexget\event.py", line 20, in __call__
    return self.func(*args, **kwargs)
           │    │     │       └ {}
           │    │     └ (<flexget.task.Task object at 0x0000019FA3E51348>, [{'entry_list': 'testy'}, {'trakt_list': {'account': 'brutuz', 'list': 'co...
           │    └ <bound method ListAdd.on_task_output of <flexget.components.managed_lists.list_add.ListAdd object at 0x0000019F9E2274C8>>
           └ <Event(name=plugin.list_add.output,func=on_task_output,priority=0)>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\list_add.py", line 53, in on_task_output
    thelist |= task.accepted
    │          │    └ <property object at 0x0000019F9B546728>
    │          └ <flexget.task.Task object at 0x0000019FA3E51348>
    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>

  File "c:\users\brutuz\documents\github\flexget\lib\_collections_abc.py", line 606, in __ior__
    self.add(value)
    │    │   └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
    │    └ <function DBEntrySet.add at 0x0000019F9E6A6F78>
    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\lists\entry_list\db.py", line 157, in add
    stored_entry = EntryListEntry(entry=entry, entry_list_id=self._db_list(session).id)
                   │                    │                    │    │        └ <sqlalchemy.orm.session.ContextSession object at 0x0000019FA5488808>
                   │                    │                    │    └ <function DBEntrySet._db_list at 0x0000019F9E6A68B8>
                   │                    │                    └ <flexget.components.managed_lists.lists.entry_list.db.DBEntrySet object at 0x0000019FA5487788>
                   │                    └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
                   └ <class 'flexget.components.managed_lists.lists.entry_list.db.EntryListEntry'>

  File "<string>", line 4, in __init__

  File "c:\users\brutuz\documents\github\flexget\lib\site-packages\sqlalchemy\orm\state.py", line 438, in _initialize_instance
    return manager.original_init(*mixed[1:], **kwargs)
           │       │              │            └ {}
           │       │              └ (<sqlalchemy.orm.state.InstanceState object at 0x0000019FA5942948>, <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanak...
           │       └ <function EntryListEntry.__init__ at 0x0000019F9E697A68>
           └ <ClassManager of <class 'flexget.components.managed_lists.lists.entry_list.db.EntryListEntry'> at 19f9e693e88>

  File "c:\users\brutuz\documents\github\flexget\flexget\components\managed_lists\lists\entry_list\db.py", line 80, in __init__
    self.entry = entry
    │    │       └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
    │    └ <sqlalchemy.orm.attributes.create_proxied_attribute.<locals>.Proxy object at 0x0000019F9E6A7048>
    └ <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,original_url=magnet:?xt=urn:btih:YWFSDQGOT2RQ7...

  File "<string>", line 1, in __set__

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\database.py", line 94, in setter
    setattr(self, name, serialization.dumps(entry))
            │     │     │             │     └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
            │     │     │             └ <function dumps at 0x0000019F9B164678>
            │     │     └ <module 'flexget.utils.serialization' from 'c:\\users\\brutuz\\documents\\github\\flexget\\flexget\\utils\\serialization.py'>
            │     └ '_json'
            └ <EntryListEntry,title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,original_url=magnet:?xt=urn:btih:YWFSDQGOT2RQ7...

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 53, in dumps
    serialized = serialize(value)
                 │         └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
                 └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ <Entry(title=[HorribleSubs] Jibaku Shounen Hanako-kun - 04 [720p].mkv,state=accepted)>
             │ └ <classmethod object at 0x0000019F9B367048>
             └ <class 'flexget.entry.Entry'>

> File "c:\users\brutuz\documents\github\flexget\flexget\entry.py", line 314, in serialize
    lazy_lookups.append(serialize(ll))
    │            │      │         └ ('trakt_lazy_lookup', ['trakt_ep_name', 'trakt_ep_imdb_id', 'trakt_ep_tvdb_id', 'trakt_ep_tmdb_id', 'trakt_ep_tvrage', 'trakt...
    │            │      └ <function serialize at 0x0000019F9B157DC8>
    │            └ <method 'append' of 'list' objects>
    └ [{'serializer': 'TupleSerializer', 'version': 1, 'value': ['quality', ['quality'], None, None]}, {'serializer': 'TupleSeriali...

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ ('trakt_lazy_lookup', ['trakt_ep_name', 'trakt_ep_imdb_id', 'trakt_ep_tvdb_id', 'trakt_ep_tmdb_id', 'trakt_ep_tvrage', 'trakt...
             │ └ <classmethod object at 0x0000019F9B196E88>
             └ <class 'flexget.utils.serialization.TupleSerializer'>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 157, in serialize
    return serialize(list(value))
           │              └ ('trakt_lazy_lookup', ['trakt_ep_name', 'trakt_ep_imdb_id', 'trakt_ep_tvdb_id', 'trakt_ep_tmdb_id', 'trakt_ep_tvrage', 'trakt...
           └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in serialize
    return [serialize(v) for v in value]
            │                     └ ['trakt_lazy_lookup', ['trakt_ep_name', 'trakt_ep_imdb_id', 'trakt_ep_tvdb_id', 'trakt_ep_tmdb_id', 'trakt_ep_tvrage', 'trakt...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in <listcomp>
    return [serialize(v) for v in value]
            │         │      └ ({'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'tra...
            │         └ ({'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'tra...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 21, in serialize
    'value': s.serialize(value),
             │ │         └ ({'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'tra...
             │ └ <classmethod object at 0x0000019F9B196E88>
             └ <class 'flexget.utils.serialization.TupleSerializer'>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 157, in serialize
    return serialize(list(value))
           │              └ ({'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'tra...
           └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in serialize
    return [serialize(v) for v in value]
            │                     └ [{'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'tra...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 24, in <listcomp>
    return [serialize(v) for v in value]
            │         │      └ {'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'trak...
            │         └ {'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'trak...
            └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 26, in serialize
    return {k: serialize(v) for k, v in value.items()}
               │                        │     └ <method 'items' of 'dict' objects>
               │                        └ {'trakt_ep_name': 'title', 'trakt_ep_imdb_id': 'imdb_id', 'trakt_ep_tvdb_id': 'tvdb_id', 'trakt_ep_tmdb_id': 'tmdb_id', 'trak...
               └ <function serialize at 0x0000019F9B157DC8>

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 26, in <dictcomp>
    return {k: serialize(v) for k, v in value.items()}
            │  │         │      │  └ <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4708>
            │  │         │      └ 'trakt_ep_id'
            │  │         └ <function PluginTraktLookup.<lambda> at 0x0000019F9F4C4708>
            │  └ <function serialize at 0x0000019F9B157DC8>
            └ 'trakt_ep_id'

  File "c:\users\brutuz\documents\github\flexget\flexget\utils\serialization.py", line 29, in serialize
    raise TypeError(f'`{value!r}` of type {type(value)!r} is not serializable')

TypeError: `<function PluginTraktLookup.<lambda> at 0x0000019F9F4C4708>` of type <class 'function'> is not serializable

Additional information:

  • FlexGet version: 3.1.15
  • Python version: 3.7
  • Installation method: git
  • Using daemon (yes/no): yes
  • OS and version: Win10

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions