Skip to content

Commit b007a24

Browse files
committed
Pass the printer into the _str and _latex_str methods
This means the printer can now have non-global state. This fixes a todo in the source code.
1 parent 503a652 commit b007a24

File tree

4 files changed

+18
-21
lines changed

4 files changed

+18
-21
lines changed

galgebra/dop.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def _with_sorted_terms(self):
116116
new_terms = sorted(self.terms, key=lambda term: Pdop.sort_key(term[1]))
117117
return Sdop(new_terms)
118118

119-
def Sdop_str(self):
119+
def Sdop_str(self, print_obj):
120120
if len(self.terms) == 0:
121121
return ZERO_STR
122122

@@ -144,7 +144,7 @@ def Sdop_str(self):
144144
s = '(' + s + ')'
145145
return s
146146

147-
def Sdop_latex_str(self):
147+
def Sdop_latex_str(self, print_obj):
148148
if len(self.terms) == 0:
149149
return ZERO_STR
150150

@@ -378,7 +378,7 @@ def __rmul__(self, other): # functional product of arg and self (arg*self)
378378
assert not isinstance(other, Pdop)
379379
return Sdop([(other, self)])
380380

381-
def Pdop_str(self):
381+
def Pdop_str(self, print_obj):
382382
if self.order == 0:
383383
return 'D{}'
384384
s = 'D'
@@ -389,7 +389,7 @@ def Pdop_str(self):
389389
s += '^' + str(n)
390390
return s
391391

392-
def Pdop_latex_str(self):
392+
def Pdop_latex_str(self, print_obj):
393393
if self.order == 0:
394394
return ''
395395
s = r'\frac{\partial'

galgebra/lt.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ def inv(self):
389389
raise ValueError('Lt inverse currently implemented only for spinor!\n')
390390
return Lt_inv
391391

392-
def Lt_str(self):
392+
def Lt_str(self, print_obj):
393393

394394
if self.spinor:
395395
return 'R = ' + str(self.R)
@@ -403,7 +403,7 @@ def Lt_str(self):
403403
s += pre + str(base) + ') = 0\n'
404404
return s[:-1]
405405

406-
def Lt_latex_str(self):
406+
def Lt_latex_str(self, print_obj):
407407

408408
if self.spinor:
409409
s = '\\left \\{ \\begin{array}{ll} '
@@ -586,10 +586,10 @@ def extact_basis_indexes(Ga):
586586
base_indexes.append(base_str[i:])
587587
return base_indexes
588588

589-
def Mlt_str(self):
589+
def Mlt_str(self, print_obj):
590590
return str(self.fvalue)
591591

592-
def Mlt_latex_str(self):
592+
def Mlt_latex_str(self, print_obj):
593593
if self.nargs <= 1:
594594
return printer.latex(self.fvalue)
595595
expr_lst = Mlt.expand_expr(self.fvalue, self.Ga)

galgebra/mv.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -583,10 +583,7 @@ def __getitem__(self, key):
583583
'''
584584
return self.grade(key)
585585

586-
def Mv_str(self):
587-
# todo: make this an argument?
588-
print_obj = printer.GaPrinter()
589-
586+
def Mv_str(self, print_obj):
590587
global print_replace_old, print_replace_new
591588
if self.i_grade == 0:
592589
return print_obj.doprint(self.obj)
@@ -654,7 +651,7 @@ def Mv_str(self):
654651
else:
655652
return print_obj.doprint(self.obj)
656653

657-
def Mv_latex_str(self):
654+
def Mv_latex_str(self, print_obj):
658655

659656
if self.obj == 0:
660657
return ZERO_STR
@@ -1719,7 +1716,7 @@ def Dop_mv_expand(self, modes=None):
17191716
terms = list(zip(coefs, bases))
17201717
return sorted(terms, key=lambda x: self.Ga.blades.flat.index(x[1]))
17211718

1722-
def Dop_str(self):
1719+
def Dop_str(self, print_obj):
17231720
if len(self.terms) == 0:
17241721
return ZERO_STR
17251722

@@ -1753,7 +1750,7 @@ def Dop_str(self):
17531750
s = s.replace('+ -', '-')
17541751
return s[:-3]
17551752

1756-
def Dop_latex_str(self):
1753+
def Dop_latex_str(self, print_obj):
17571754
if len(self.terms) == 0:
17581755
return ZERO_STR
17591756

galgebra/printer.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -372,22 +372,22 @@ def _print_Mv(self, expr):
372372
if expr.obj == S(0):
373373
return ZERO_STR
374374
else:
375-
return expr.Mv_str()
375+
return expr.Mv_str(self)
376376

377377
def _print_Pdop(self, expr):
378-
return expr.Pdop_str()
378+
return expr.Pdop_str(self)
379379

380380
def _print_Dop(self, expr):
381-
return expr.Dop_str()
381+
return expr.Dop_str(self)
382382

383383
def _print_Sdop(self, expr):
384-
return expr.Sdop_str()
384+
return expr.Sdop_str(self)
385385

386386
def _print_Lt(self, expr):
387-
return expr.Lt_str()
387+
return expr.Lt_str(self)
388388

389389
def _print_Mlt(self, expr):
390-
return expr.Mlt_str()
390+
return expr.Mlt_str(self)
391391

392392

393393
Basic.__str__ = lambda self: GaPrinter().doprint(self)

0 commit comments

Comments
 (0)