Advertisement
Guest User

Untitled

a guest
Aug 26th, 2011
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.78 KB | None | 0 0
  1. import re,tokenize
  2. ⶼس=ImportError
  3. ⶼص=enumerate
  4. ⶼܘ=list
  5. ⶼر=None
  6. ⶼܕ=IndexError
  7. ⶼܦ=False
  8. ⶼخ=len
  9. ⶼܓ=True
  10. ⶼⶺ=str
  11. ⶼܙ=tokenize.COMMENT
  12. ⶼܭ=tokenize.NEWLINE
  13. ⶼد=tokenize.OP
  14. ⶼض=tokenize.DEDENT
  15. ⶼظ=tokenize.STRING
  16. ⶼج=re.compile
  17. ⶼⶹ=tokenize.INDENT
  18. ⶼܤ=tokenize.generate_tokens
  19. ⶼܡ=tokenize.NL
  20. try:
  21. import cStringIO as io
  22. except ⶼس:
  23. import io
  24. import analyze,obfuscate,token_utils
  25. ⶼٹ=analyze.encoding
  26. ⶼܖ=token_utils.untokenize
  27. ⶼܚ=analyze.shebang
  28. ⶼ=ⶼج(r'(\'\'\'|\"\"\")')
  29. ܬ=ⶼج(r'(\".*\'\'\'.*\"|\'.*\"\"\".*\')')
  30. ش=ⶼج(r'\n\n')
  31. ح=ⶼج('\\\\(\s*#.*)?\n')
  32. ܧ=ⶼج('^.*?=')
  33. ܗ=ⶼج(r'((?<!\\)".*?(?<!\\)")')
  34. ط=ⶼج(r"((?<!\\)'.*?(?<!\\)')")
  35. ٺ=ⶼج(r"((?<!\\)'''.*?(?<!\\)''')")
  36. ܞ=ⶼج(r"((?<!\\)'''.*?(?<!\\)''')")
  37. def ⶼٻ(ܔ):
  38. ܫ=""
  39. ٸ=""
  40. for ⶻ in ܔ[0:4]:
  41. ܪ=ⶻ[4]
  42. if ⶼܚ.match(ܪ):
  43. ܫ=ܪ
  44. elif ⶼٹ.match(ܪ):
  45. ٸ=ܪ
  46. ٻ=0
  47. for ܟ,ⶻ in ⶼص(ܔ):
  48. ܠ=ⶻ[0]
  49. if ܠ==ⶼܙ:
  50. ܔ[ܟ][1]=''
  51. ٻ=ܠ
  52. if ܫ:
  53. ٽ=io.StringIO(ܫ+ٸ)
  54. ⶽ=[ⶼܘ(a)for a in ⶼܤ(ٽ.readline)]
  55. ⶽ.pop()
  56. ⶽ.reverse()
  57. for ذ in ⶽ:
  58. ܔ.insert(0,ذ)
  59. def ⶼܟ(ܔ):
  60. ٻ=ⶼر
  61. for ܟ,ⶻ in ⶼص(ܔ):
  62. ܠ=ⶻ[0]
  63. if ܠ==ⶼظ:
  64. if ٻ==ⶼⶹ:
  65. ܔ[ܟ][1]=''
  66. ܔ[ܟ-1][1]=''
  67. ܔ[ܟ-2][1]=''
  68. elif ٻ==ⶼܡ:
  69. if ܔ[ܟ+1][0]==ⶼܭ:
  70. ܔ[ܟ][1]=''
  71. ܔ[ܟ+1][1]=''
  72. ٻ=ܠ
  73. def ⶼܠ(ⶼⶻ):
  74. ٽ=io.StringIO(ⶼⶻ)
  75. ⶸ=""
  76. ټ=ⶼⶹ
  77. ج=-1
  78. ܙ=0
  79. for ⶻ in ⶼܤ(ٽ.readline):
  80. ܠ=ⶻ[0]
  81. ܤ=ⶻ[1]
  82. ظ,ⶹ=ⶻ[2]
  83. ܡ,ܭ=ⶻ[3]
  84. د=ⶻ[4]
  85. if ظ>ج:
  86. ܙ=0
  87. if ⶹ>ܙ:
  88. ⶸ+=(" "*(ⶹ-ܙ))
  89. if ܠ==ⶼܙ:
  90. pass
  91. elif ܠ==ⶼظ:
  92. if ټ!=ⶼⶹ:
  93. if ټ!=ⶼܭ:
  94. if ⶹ>0:
  95. ⶸ+=ܤ
  96. else:
  97. ⶸ+=ܤ
  98. ټ=ܠ
  99. ܙ=ܭ
  100. ج=ܡ
  101. return ⶸ
  102. def ⶼܔ(ⶼⶻ):
  103. ٽ=io.StringIO(ⶼⶻ)
  104. ض=[]
  105. ⶸ=""
  106. ܚ=""
  107. ټ=ⶼⶹ
  108. ٹ=ⶼر
  109. ج=-1
  110. ܙ=0
  111. ܖ=1
  112. for ⶻ in ⶼܤ(ٽ.readline):
  113. ܠ=ⶻ[0]
  114. ܤ=ⶻ[1]
  115. ظ,ⶹ=ⶻ[2]
  116. ܡ,ܭ=ⶻ[3]
  117. د=ⶻ[4]
  118. if ظ>ج:
  119. ܙ=0
  120. if ⶹ>ܙ:
  121. ܚ+=(" "*(ⶹ-ܙ))
  122. if ܠ==ⶼد:
  123. س=[ⶼܭ,ⶼض,ⶼⶹ]
  124. if ټ not in س:
  125. ض.append(ⶹ)
  126. ض.append(ܭ+1)
  127. if ܤ.endswith('\n'):
  128. ܚ+=ܤ
  129. if ض:
  130. for ص in ض:
  131. ص=ص-ܖ
  132. try:
  133. if ܚ[ص]==" ":
  134. ܚ=ܚ[:ص]+ܚ[ص+1:]
  135. ܖ+=1
  136. except ⶼܕ:
  137. pass
  138. ⶸ+=ܚ
  139. ض=[]
  140. ܚ=""
  141. ܖ=1
  142. else:
  143. ܚ+=ܤ
  144. ټ=ܠ
  145. ܘ=ⶻ
  146. ܙ=ܭ
  147. ج=ܡ
  148. ⶸ+=ܚ
  149. return ⶸ
  150. def ⶼٽ(text,pair="()"):
  151. ر=pair[0]
  152. ܕ=pair[1]
  153. ܦ=ⶼܦ
  154. خ=ⶼܦ
  155. ܓ=ⶼܦ
  156. ⶺ=ⶼܦ
  157. ܣ=ⶼܦ
  158. ܥ=0
  159. ܨ=0
  160. پ=0
  161. ܝ=ⶼج('\%s'%ر)
  162. ܢ=ⶼج('\%s'%ܕ)
  163. ܛ=""
  164. for ܪ in text.split('\n'):
  165. ܜ=ⶼܦ
  166. ع=ⶼ.search(ܪ)
  167. ܩ=ܬ.search(ܪ)
  168. if ع and not ܩ and not ܣ:
  169. if ⶼخ(ܪ.split('"""'))>1 or ⶼخ(ܪ.split("'''")):
  170. ܛ+=ܪ+'\n'
  171. ܣ=ⶼܦ
  172. else:
  173. ܛ+=ܪ+'\n'
  174. ܣ=ⶼܓ
  175. elif ܣ and ⶼ.search(ܪ):
  176. ܛ+=ܪ+'\n'
  177. ܣ=ⶼܦ
  178. elif not ܣ:
  179. if ܝ.search(ܪ)or ܢ.search(ܪ)or ܦ:
  180. for ز in ܪ:
  181. if ز==ر:
  182. if not ܜ and not خ:
  183. ܥ+=1
  184. ܦ=ⶼܓ
  185. ܛ+=ز
  186. else:
  187. ܜ=ⶼܦ
  188. ܛ+=ز
  189. elif ز==ܕ:
  190. if not ܜ and not خ:
  191. if ܥ and ܥ==(ܨ+1):
  192. ܨ=0
  193. ܥ=0
  194. ܦ=ⶼܦ
  195. ܛ+=ز
  196. else:
  197. ܨ+=1
  198. ܛ+=ز
  199. else:
  200. ܜ=ⶼܦ
  201. ܛ+=ز
  202. elif ز=='\\':
  203. if ܜ:
  204. ܜ=ⶼܦ
  205. ܛ+=ز
  206. else:
  207. ܜ=ⶼܓ
  208. ܛ+=ز
  209. elif ز=='"' and ܜ:
  210. ܛ+=ز
  211. ܜ=ⶼܦ
  212. elif ز=="'" and ܜ:
  213. ܛ+=ز
  214. ܜ=ⶼܦ
  215. elif ز=='"' and خ:
  216. if ⶺ:
  217. ܛ+=ز
  218. else:
  219. خ=ⶼܦ
  220. ܓ=ⶼܦ
  221. ܛ+=ز
  222. elif ز=="'" and خ:
  223. if ܓ:
  224. ܛ+=ز
  225. else:
  226. خ=ⶼܦ
  227. ⶺ=ⶼܦ
  228. ܛ+=ز
  229. elif ز=='"' and not خ:
  230. خ=ⶼܓ
  231. ܓ=ⶼܓ
  232. ܛ+=ز
  233. elif ز=="'" and not خ:
  234. خ=ⶼܓ
  235. ⶺ=ⶼܓ
  236. ܛ+=ز
  237. elif ز==' ' and ܦ and not خ:
  238. if not ܛ[-1]in[' ',ر]:
  239. ܛ+=' '
  240. else:
  241. if ܜ:
  242. ܜ=ⶼܦ
  243. ܛ+=ز
  244. if ܦ==ⶼܦ:
  245. ܛ+='\n'
  246. else:
  247. ܛ+=ܪ+'\n'
  248. else:
  249. ܛ+=ܪ+'\n'
  250. ܛ=ش.sub('\n',ܛ)
  251. return ܛ
  252. def ⶼⶽ(ⶼⶻ,use_tabs=ⶼܦ):
  253. if use_tabs:
  254. ⶼܬ='\t'
  255. else:
  256. ⶼܬ=' '
  257. ٽ=io.StringIO(ⶼⶻ)
  258. ⶸ=""
  259. ج=-1
  260. ܙ=0
  261. ⶼش=0
  262. ⶼح=""
  263. ⶼܧ=0
  264. for i,ⶻ in ⶼص(ⶼܤ(ٽ.readline)):
  265. ܠ=ⶻ[0]
  266. ܤ=ⶻ[1]
  267. ظ,ⶹ=ⶻ[2]
  268. ܡ,ܭ=ⶻ[3]
  269. if ظ>ج:
  270. ܙ=0
  271. if ܠ==ⶼⶹ:
  272. ⶼܧ+=1
  273. continue
  274. if ܠ==ⶼض:
  275. ⶼܧ-=1
  276. continue
  277. ⶼح=ⶼܬ*ⶼܧ
  278. if ظ>ⶼش:
  279. ⶸ+=ⶼح+ⶼⶺ(ܤ)
  280. elif ⶹ>ܙ:
  281. ⶸ+=ⶼܬ+ⶼⶺ(ܤ)
  282. else:
  283. ⶸ+=ܤ
  284. ⶼش=ظ
  285. ܙ=ܭ
  286. ج=ܡ
  287. return ⶸ
  288. def ⶼذ(ⶼⶻ):
  289. ⶼܗ=0
  290. ܛ=""
  291. ⶼط=ⶼܦ
  292. ⶼٺ=ⶼر
  293. ⶼܞ=ⶼج(r'^\s*def\s*.*\(.*\):.*$')
  294. for ܪ in ⶼⶻ.split('\n'):
  295. if ⶼخ(ܪ.strip())>0:
  296. if ⶼط==ⶼܓ:
  297. ⶼܫ=ⶼخ(ܪ.rstrip())-ⶼخ(ܪ.strip())
  298. if ⶼܗ==ⶼܫ:
  299. ⶼٸ=" "*(ⶼܗ+1)
  300. ܛ+="%s\n%spass\n%s\n"%(ⶼٺ,ⶼٸ,ܪ)
  301. else:
  302. ܛ+="%s\n%s\n"%(ⶼٺ,ܪ)
  303. ⶼط=ⶼܦ
  304. elif ⶼܞ.match(ܪ):
  305. ⶼܗ=ⶼخ(ܪ)-ⶼخ(ܪ.strip())
  306. ⶼط=ⶼܓ
  307. ⶼٺ=ܪ
  308. else:
  309. ܛ+="%s\n"%ܪ
  310. else:
  311. ܛ+="\n"
  312. return ܛ
  313. def ⶼⶸ(ⶼⶻ):
  314. ٽ=io.StringIO(ⶼⶻ)
  315. ⶼⶻ=[a for a in ٽ.readlines()if a.strip()]
  316. return "".join(ⶼⶻ)
  317. def ⶼټ(ܔ,options):
  318. ⶼٻ(ܔ)
  319. ⶼܟ(ܔ)
  320. ⶼܪ=ⶼܖ(ܔ)
  321. ⶼܪ=ح.sub('',ⶼܪ)
  322. ⶼܪ=ⶼذ(ⶼܪ)
  323. ⶼܪ=ⶼٽ(ⶼܪ)
  324. ⶼܪ=ⶼٽ(ⶼܪ,'[]')
  325. ⶼܪ=ⶼٽ(ⶼܪ,'{}')
  326. ⶼܪ=ⶼⶸ(ⶼܪ)
  327. ⶼܪ=ⶼܔ(ⶼܪ)
  328. ⶼܪ=ⶼⶻ=ⶼⶽ(ⶼܪ,use_tabs=options.tabs)
  329. return ⶼܪ
  330. # Created by pyminifier.py
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement