����JFIF��x�x����'403WebShell
403Webshell
Server IP : 78.140.185.180  /  Your IP : 3.129.194.130
Web Server : LiteSpeed
System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : builderbox ( 1072)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/local/lib/python3.6/site-packages/bmemcached/client/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/lib/python3.6/site-packages/bmemcached/client/mixin.py
import six

from bmemcached.client.constants import PICKLE_PROTOCOL, SOCKET_TIMEOUT
from bmemcached.compat import pickle
from bmemcached.protocol import Protocol


class ClientMixin(object):
    """ Client mixin with basic commands.

    :param servers: A list of servers with ip[:port] or unix socket.
    :type servers: list
    :param username: If your server requires SASL authentication, provide the username.
    :type username: six.string_types
    :param password: If your server requires SASL authentication, provide the password.
    :type password: six.string_types
    :param compression: This memcached client uses zlib compression by default,
        but you can change it to any Python module that provides
        `compress` and `decompress` functions, such as `bz2`.
    :type compression: Python module
    :param socket_timeout: The timeout applied to memcached connections.
    :type socket_timeout: float
    :param pickle_protocol: The pickling protocol to use, 0-5. See
        https://docs.python.org/3/library/pickle.html#data-stream-format
        default is 0 (human-readable, original format).
    :type pickle_protocol: int
    :param pickler: Use this to replace the object serialization mechanism.
    :type pickler: function
    :param unpickler: Use this to replace the object deserialization mechanism.
    :type unpickler: function
    :param tls_context: A TLS context in order to connect to TLS enabled
        memcached servers.
    :type tls_context: ssl.SSLContext
    """
    def __init__(self, servers=('127.0.0.1:11211',),
                 username=None,
                 password=None,
                 compression=None,
                 socket_timeout=SOCKET_TIMEOUT,
                 pickle_protocol=PICKLE_PROTOCOL,
                 pickler=pickle.Pickler,
                 unpickler=pickle.Unpickler,
                 tls_context=None):
        self.username = username
        self.password = password
        self.compression = compression
        self.socket_timeout = socket_timeout
        self.pickle_protocol = pickle_protocol
        self.pickler = pickler
        self.unpickler = unpickler
        self.tls_context = tls_context
        self.set_servers(servers)

    @property
    def servers(self):
        for server in self._servers:
            yield server

    def set_servers(self, servers):
        """
        Iter to a list of servers and instantiate Protocol class.

        :param servers: A list of servers
        :type servers: list
        :return: Returns nothing
        :rtype: None
        """
        if isinstance(servers, six.string_types):
            servers = [servers]

        assert servers, "No memcached servers supplied"
        self._servers = [Protocol(
            server=server,
            username=self.username,
            password=self.password,
            compression=self.compression,
            socket_timeout=self.socket_timeout,
            pickle_protocol=self.pickle_protocol,
            pickler=self.pickler,
            unpickler=self.unpickler,
            tls_context=self.tls_context,
        ) for server in servers]

    def flush_all(self, time=0):
        """
        Send a command to server flush|delete all keys.

        :param time: Time to wait until flush in seconds.
        :type time: int
        :return: True in case of success, False in case of failure
        :rtype: bool
        """
        returns = []
        for server in self.servers:
            returns.append(server.flush_all(time))

        return any(returns)

    def stats(self, key=None):
        """
        Return server stats.

        :param key: Optional if you want status from a key.
        :type key: six.string_types
        :return: A dict with server stats
        :rtype: dict
        """
        # TODO: Stats with key is not working.

        returns = {}
        for server in self.servers:
            returns[server.server] = server.stats(key)

        return returns

    def disconnect_all(self):
        """
        Disconnect all servers.

        :return: Nothing
        :rtype: None
        """
        for server in self.servers:
            server.disconnect()

    def get(self, key, default=None, get_cas=False):
        raise NotImplementedError()

    def gets(self, key):
        raise NotImplementedError()

    def get_multi(self, keys, get_cas=False):
        raise NotImplementedError()

    def set(self, key, value, time=0, compress_level=-1):
        raise NotImplementedError()

    def cas(self, key, value, cas, time=0, compress_level=-1):
        raise NotImplementedError()

    def set_multi(self, mappings, time=0, compress_level=-1):
        raise NotImplementedError()

    def add(self, key, value, time=0, compress_level=-1):
        raise NotImplementedError()

    def replace(self, key, value, time=0, compress_level=-1):
        raise NotImplementedError()

    def delete(self, key, cas=0):  # type: (six.string_types, int) -> bool
        raise NotImplementedError()

    def delete_multi(self, keys):
        raise NotImplementedError()

    def incr(self, key, value):
        # TODO: Implement missing parameters
        raise NotImplementedError()

    def decr(self, key, value):
        # TODO: Implement missing parameters
        raise NotImplementedError()

Youez - 2016 - github.com/yon3zu
LinuXploit