404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.117.98.194: ~ $
# Copyright (C) 2020 Canonical Ltd.
#
# Author: Daniel Watkins <oddbloke@ubuntu.com>
#
# This file is part of cloud-init. See LICENSE file for license information.


class CloudInitPickleMixin:
    """Scaffolding for versioning of pickles.

    This class implements ``__getstate__`` and ``__setstate__`` to provide
    lightweight versioning of the pickles that are generated for classes which
    use it.  Versioning is done at the class level.

    The current version of a class's pickle should be set in the class variable
    ``_ci_pkl_version``, as an int.  If not overriden, it will default to 0.

    On unpickle, the object's state will be restored and then
    ``self._unpickle`` is called with the version of the stored pickle as the
    only argument: this is where classes should implement any deserialization
    fixes they require.  (If the stored pickle has no version, 0 is passed.)
    """

    _ci_pkl_version = 0

    def __getstate__(self):
        """Persist instance state, adding a pickle version attribute.

        This adds a ``_ci_pkl_version`` attribute to ``self.__dict__`` and
        returns that for serialisation.  The attribute is stripped out in
        ``__setstate__`` on unpickle.

        The value of ``_ci_pkl_version`` is ``type(self)._ci_pkl_version``.
        """
        state = self.__dict__.copy()
        state["_ci_pkl_version"] = type(self)._ci_pkl_version
        return state

    def __setstate__(self, state: dict) -> None:
        """Restore instance state and handle missing attributes on upgrade.

        This will be called when an instance of this class is unpickled; the
        previous instance's ``__dict__`` is passed as ``state``.  This method
        removes the pickle version from the stored state, restores the
        remaining state into the current instance, and then calls
        ``self._unpickle`` with the version (or 0, if no version is found in
        the stored state).

        See https://docs.python.org/3/library/pickle.html#object.__setstate__
        for further background.
        """
        version = state.pop("_ci_pkl_version", 0)
        self.__dict__.update(state)
        self._unpickle(version)

    def _unpickle(self, ci_pkl_version: int) -> None:
        """Perform any deserialization fixes required.

        By default, this does nothing.  Classes using this mixin should
        override this method if they have fixes they need to apply.

        ``ci_pkl_version`` will be the version stored in the pickle for this
        object, or 0 if no version is present.
        """

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
analyze Folder 0755
cmd Folder 0755
config Folder 0755
distros Folder 0755
filters Folder 0755
handlers Folder 0755
mergers Folder 0755
net Folder 0755
reporting Folder 0755
sources Folder 0755
__init__.py File 0 B 0644
apport.py File 7.05 KB 0644
atomic_helper.py File 2.45 KB 0644
cloud.py File 3.22 KB 0644
dmi.py File 6.77 KB 0644
event.py File 2 KB 0644
features.py File 3.38 KB 0644
gpg.py File 4.28 KB 0644
helpers.py File 16.41 KB 0644
importer.py File 2.43 KB 0644
log.py File 5.47 KB 0644
netinfo.py File 22.97 KB 0644
persistence.py File 2.52 KB 0644
registry.py File 1022 B 0644
safeyaml.py File 10.28 KB 0644
settings.py File 2.02 KB 0644
signal_handler.py File 1.74 KB 0644
simpletable.py File 1.93 KB 0644
ssh_util.py File 22.28 KB 0644
stages.py File 38.88 KB 0644
subp.py File 13.23 KB 0644
temp_utils.py File 3.15 KB 0644
templater.py File 5.95 KB 0644
type_utils.py File 703 B 0644
url_helper.py File 27.32 KB 0644
user_data.py File 14.43 KB 0644
util.py File 96.43 KB 0644
version.py File 565 B 0644
warnings.py File 3.76 KB 0644