Skip to content

Commit 1718a9a

Browse files
fix sjson delete
1 parent d22d4a4 commit 1718a9a

1 file changed

Lines changed: 21 additions & 17 deletions

File tree

modimporter.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -347,25 +347,29 @@ def sjsonmap(indata,mapdata):
347347
continue
348348
mapdata = S
349349
if type(indata)==type(mapdata):
350-
if isinstance(mapdata,list) and safeget(mapdata,0)==reserved_append:
350+
if safeget(mapdata,0)!=reserved_append or isinstance(mapdata,OrderedDict):
351+
if isinstance(mapdata,list):
352+
if safeget(mapdata,0)==reserved_delete:
353+
return DNE
354+
if safeget(mapdata,0)==reserved_replace:
355+
del mapdata[0]
356+
return mapdata
357+
indata.extend([DNE]*(len(mapdata)-len(indata)))
358+
for k,v in enumerate(mapdata):
359+
indata[k] = sjsonmap(safeget(indata,k),v)
360+
elif isinstance(mapdata,dict):
361+
if safeget(mapdata,reserved_delete):
362+
return DNE
363+
if safeget(mapdata,reserved_replace):
364+
del mapdata[reserved_replace]
365+
return mapdata
366+
for k,v in mapdata.items():
367+
indata[k] = sjsonmap(safeget(indata,k),v)
368+
return indata
369+
elif isinstance(mapdata,list):
351370
for i in range(1,len(mapdata)):
352371
indata.append(mapdata[i])
353-
elif isinstance(mapdata,list):
354-
if safeget(mapdata,0)==reserved_replace:
355-
del mapdata[0]
356-
return mapdata
357-
indata.extend([DNE]*(len(mapdata)-len(indata)))
358-
for k,v in enumerate(mapdata):
359-
indata[k] = sjsonmap(safeget(indata,k),v)
360-
elif isinstance(mapdata,dict):
361-
if safeget(mapdata,reserved_replace):
362-
del mapdata[reserved_replace]
363-
return mapdata
364-
for k,v in mapdata.items():
365-
indata[k] = sjsonmap(safeget(indata,k),v)
366-
else:
367-
return mapdata
368-
return indata
372+
return indata
369373
else:
370374
return mapdata
371375
return mapdata

0 commit comments

Comments
 (0)