%PDF- %PDF-
| Direktori : /snap/core/current/usr/lib/python3/dist-packages/__pycache__/ |
| Current File : //snap/core/current/usr/lib/python3/dist-packages/__pycache__/jsonpointer.cpython-35.pyc |
�KU�$ � @ sr d d l m Z y d d l m Z m Z Wn( e k
rT d d l m Z m Z Yn Xd Z d Z d Z d Z
y* d d l m Z d d l
m Z e Z Wn( e k
r� d d l m Z e Z Yn Xd d l
m Z d d
l Z d d
l Z e j d � Z Gd d
� d
e � Z Gd d � d e � Z e � Z e d d � Z d d d � Z Gd d � d e � Z d d � Z d
S)� )�unicode_literals)�Mapping�Sequenceu Stefan Kögl <stefan@skoegl.net>z1.9z2https://github.com/stefankoegl/python-json-pointerzModified BSD License)�unquote)�izip)�teeNz0|[1-9][0-9]*$c @ s e Z d Z d S)�JsonPointerExceptionN)�__name__�
__module__�__qualname__� r r �-/usr/lib/python3/dist-packages/jsonpointer.pyr B s r c @ s. e Z d Z d Z d d � Z d d � Z d S)� EndOfListz+ Result of accessing element "-" of a list c C s
| | _ d S)N)�list_)�selfr r r r
�__init__I s zEndOfList.__init__c C s% d j d | j j d t | j � � S)Nz{cls}({lst})�clsZlst)�format� __class__r �reprr )r r r r
�__repr__M s zEndOfList.__repr__N)r r
r �__doc__r r r r r r
r F s r c C s t | � } | j | | � S)an
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
)�JsonPointer�resolve)�doc�pointer�defaultr r r
�resolve_pointerU s r Tc C s t | � } | j | | | � S)aV
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
)r �set)r r �value�inplacer r r
�set_pointerr s r! c @ s� e Z d Z d Z d d � Z d d � Z e d d � Z e Z d d d
� Z d d � Z
d
d � Z d d � Z d d � Z
e d d � � Z d d � Z d d � Z e d d � � Z d S)r z= A JSON Pointer that can reference parts of an JSON document c C sr | j d � } | j d � d k r0 t d � � t t | � } d d � | D� } d d � | D� } | | _ d S)N�/r � zlocation must starts with /c S s"