mirror of
https://github.com/instaloader/instaloader.git
synced 2024-10-04 06:17:13 +02:00
Improve docs on how to load/save FrozenNodeIterator
This commit is contained in:
parent
2bf175a111
commit
e67b9e6c37
@ -25,6 +25,13 @@ Iterator :class:`NodeIterator` and a context manager
|
|||||||
.. autoclass:: FrozenNodeIterator
|
.. autoclass:: FrozenNodeIterator
|
||||||
:no-show-inheritance:
|
:no-show-inheritance:
|
||||||
|
|
||||||
|
A serializable representation of a :class:`NodeIterator` instance, saving
|
||||||
|
its iteration state.
|
||||||
|
|
||||||
|
It can be serialized and deserialized with :func:`save_structure_to_file`
|
||||||
|
and :func:`load_structure_from_file`, as well as with :mod:`json` and
|
||||||
|
:mod:`pickle` thanks to being a :func:`~collections.namedtuple`.
|
||||||
|
|
||||||
``resumable_iteration``
|
``resumable_iteration``
|
||||||
"""""""""""""""""""""""
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
@ -18,8 +18,6 @@ FrozenNodeIterator = NamedTuple('FrozenNodeIterator',
|
|||||||
('total_index', int),
|
('total_index', int),
|
||||||
('best_before', Optional[float]),
|
('best_before', Optional[float]),
|
||||||
('remaining_data', Optional[Dict])])
|
('remaining_data', Optional[Dict])])
|
||||||
FrozenNodeIterator.__doc__ = \
|
|
||||||
"""A serializable representation of a :class:`NodeIterator` instance, saving its iteration state."""
|
|
||||||
FrozenNodeIterator.query_hash.__doc__ = """The GraphQL ``query_hash`` parameter."""
|
FrozenNodeIterator.query_hash.__doc__ = """The GraphQL ``query_hash`` parameter."""
|
||||||
FrozenNodeIterator.query_variables.__doc__ = """The GraphQL ``query_variables`` parameter."""
|
FrozenNodeIterator.query_variables.__doc__ = """The GraphQL ``query_variables`` parameter."""
|
||||||
FrozenNodeIterator.query_referer.__doc__ = """The HTTP referer used for the GraphQL query."""
|
FrozenNodeIterator.query_referer.__doc__ = """The HTTP referer used for the GraphQL query."""
|
||||||
@ -55,6 +53,9 @@ class NodeIterator(Iterator[T]):
|
|||||||
post_iterator = profile.get_posts()
|
post_iterator = profile.get_posts()
|
||||||
post_iterator.thaw(load("resume_information.json"))
|
post_iterator.thaw(load("resume_information.json"))
|
||||||
|
|
||||||
|
(an appropriate method to load and save the :class:`FrozenNodeIterator` is e.g.
|
||||||
|
:func:`load_structure_from_file` and :func:`save_structure_to_file`.)
|
||||||
|
|
||||||
A :class:`FrozenNodeIterator` can only be thawn with a matching NodeIterator, i.e. a NodeIterator instance that has
|
A :class:`FrozenNodeIterator` can only be thawn with a matching NodeIterator, i.e. a NodeIterator instance that has
|
||||||
been constructed with the same parameters as the instance that is represented by the :class:`FrozenNodeIterator` in
|
been constructed with the same parameters as the instance that is represented by the :class:`FrozenNodeIterator` in
|
||||||
question. This is to ensure that an iteration cannot be resumed in a wrong, unmatching loop. As a quick way to
|
question. This is to ensure that an iteration cannot be resumed in a wrong, unmatching loop. As a quick way to
|
||||||
|
@ -1535,8 +1535,8 @@ JsonExportable = Union[Post, Profile, StoryItem, Hashtag, FrozenNodeIterator]
|
|||||||
|
|
||||||
|
|
||||||
def save_structure_to_file(structure: JsonExportable, filename: str) -> None:
|
def save_structure_to_file(structure: JsonExportable, filename: str) -> None:
|
||||||
"""Saves a :class:`Post`, :class:`Profile`, :class:`StoryItem` or :class:`Hashtag` to a '.json' or '.json.xz' file
|
"""Saves a :class:`Post`, :class:`Profile`, :class:`StoryItem`, :class:`Hashtag` or :class:`FrozenNodeIterator` to a
|
||||||
such that it can later be loaded by :func:`load_structure_from_file`.
|
'.json' or '.json.xz' file such that it can later be loaded by :func:`load_structure_from_file`.
|
||||||
|
|
||||||
If the specified filename ends in '.xz', the file will be LZMA compressed. Otherwise, a pretty-printed JSON file
|
If the specified filename ends in '.xz', the file will be LZMA compressed. Otherwise, a pretty-printed JSON file
|
||||||
will be created.
|
will be created.
|
||||||
@ -1556,8 +1556,8 @@ def save_structure_to_file(structure: JsonExportable, filename: str) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def load_structure_from_file(context: InstaloaderContext, filename: str) -> JsonExportable:
|
def load_structure_from_file(context: InstaloaderContext, filename: str) -> JsonExportable:
|
||||||
"""Loads a :class:`Post`, :class:`Profile`, :class:`StoryItem` or :class:`Hashtag` from a '.json' or '.json.xz' file
|
"""Loads a :class:`Post`, :class:`Profile`, :class:`StoryItem`, :class:`Hashtag` or :class:`FrozenNodeIterator` from
|
||||||
that has been saved by :func:`save_structure_to_file`.
|
a '.json' or '.json.xz' file that has been saved by :func:`save_structure_to_file`.
|
||||||
|
|
||||||
:param context: :attr:`Instaloader.context` linked to the new object, used for additional queries if neccessary.
|
:param context: :attr:`Instaloader.context` linked to the new object, used for additional queries if neccessary.
|
||||||
:param filename: Filename, ends in '.json' or '.json.xz'
|
:param filename: Filename, ends in '.json' or '.json.xz'
|
||||||
|
Loading…
Reference in New Issue
Block a user