Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import itertools
- from fractions import Fraction
- open('__init__.py','w')
- import symbols
- def verify(self, n, f):
- self.ns_v = 0,0,n,n
- for ([x1,y1],[x2,y2]) in f():
- for x in [x1,y1,x2,y2]:
- if Fraction(x).denominator!=1:
- return False
- return True
- def search(self, f):
- for i in itertools.count(start=1):
- if verify(self, i, f):
- return i
- def gen(self,n, f,fname):
- def toStr(a,b):
- num = Fraction(int(a), b)
- s = '%s' % num
- if s == '0': return ' 0'
- if '/' in s: s = s+'.'
- if '-' in s: return s
- return '+'+s
- def l(n): return 4*(n+1)
- self.ns_v = 0,0,n,n
- print ' '*l(0)+'def %s(self):' % fname
- print ' '*l(1)+'x,y,x2,y2 = self.ns(%s)' % self.ns_w
- print ' '*l(1)+'return [ [x+x2*ax, y+y2*ay], [x+x2*bx, y+y2*by]) \\'
- print ' '*l(2)+'for ([ax,ay],[bx,by]) in ['
- for ([x1,y1],[x2,y2]) in f():
- lst = (x1,y1,x2,y2)
- lst = tuple([toStr(x,n) for x in lst])
- print ' '*l(2)+'([%-6s,%-6s],[%-6s,%-6s]),' % lst
- print ' '*l(1)+']]'
- def fix(Class):
- print '# Fix: %s' % Class.__name__
- def empty(self):
- pass
- def ns(self, w=1):
- if w==1: w = ''
- self.ns_w = w
- return self.ns_v
- Class.__init__ = empty
- Class.ns = ns
- obj = Class()
- for i in dir(Class):
- if '__' in i: continue
- if 'ns' == i: continue
- if 'ns_v' == i: continue
- if 'ns_w' == i: continue
- method = getattr(obj, i)
- gen(obj,search(obj, method), method, i)
- import sys
- sys.stdout = open('symbols.py.fix','w')
- fix(symbols.Text_TXT)
- fix(symbols.Text_arch)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement