Advertisement
Guest User

Untitled

a guest
May 29th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. import os
  2.  
  3.  
  4. class PreProcessor:
  5.  
  6. def __init__(self,fn='null',index=-1):
  7. self.breakpoint = index
  8. self.file_name = fn
  9.  
  10. def setBreakpoint(self,index):
  11. self.breakpoint = index
  12.  
  13. def setFile(self,file_name):
  14. self.file_name = file_name
  15.  
  16. def clean(self):
  17. try:
  18. os.system("rm .debug_temp.py")
  19. return 1
  20. except:
  21. return 0
  22.  
  23. def _get_vars(self):
  24. f = open(self.file_name,"r")
  25. variables = []
  26. current_line = ""
  27. found_mark = False
  28. for line in f:
  29. current_line = line
  30. if (current_line == "#var_begin\n"):
  31. found_mark = True
  32. continue
  33. elif (current_line == "#var_end\n"):
  34. break
  35.  
  36. if (found_mark):
  37. variables.append(line[line.find("#")+1:line.find("\n")])
  38. variables2 = str(variables)
  39. variables2 = variables2.replace("'",'')
  40. return variables,variables2
  41.  
  42. def _insert_checks(self):
  43. variable_names,variables = self._get_vars()
  44. header_code1 = "variable_names = {}\n".format(variable_names)
  45. header_code2 = """
  46. def var_check():
  47. variables = {}
  48. next = str(input("")).lower()
  49. if (next == 'v'):
  50. print("Variables")
  51. print("---------")
  52. for var in len(variables)-1:
  53. print(variable_names[var]+": "+str(variables[var]))\n
  54. """.format(variables)
  55. code_to_insert = "var_check()\n"
  56.  
  57. text = self._get_text()
  58. new_file = open(".debug_temp.py","w")
  59. new_file.write(header_code1)
  60. new_file.write(header_code2)
  61. count = 0
  62. for line in text:
  63. new_file.write(line)
  64. if (count < self.breakpoint):
  65. count += 1
  66. else:
  67. new_file.write(code_to_insert)
  68.  
  69. return ".debug_temp.py"
  70.  
  71. def _get_text(self):
  72. return_text = []
  73. code = open(self.file_name,"r")
  74. for line in code:
  75. return_text.append(line)
  76.  
  77. return return_text
  78.  
  79. def process(self):
  80. return self._insert_checks()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement