@@ -426,7 +426,7 @@ def DiamondPoset(n, facade=None):
426
426
"""
427
427
n = check_int (n , 3 )
428
428
c = [[n - 1 ] for x in range (n )]
429
- c [0 ] = [ x for x in range (1 , n - 1 )]
429
+ c [0 ] = list ( range (1 , n - 1 ))
430
430
c [n - 1 ] = []
431
431
D = DiGraph ({v : c [v ] for v in range (n )}, format = 'dict_of_lists' )
432
432
return FiniteLatticePoset (hasse_diagram = D ,
@@ -719,9 +719,9 @@ def ProductOfChains(chain_lengths, facade=None):
719
719
try :
720
720
l = [Integer (x ) for x in chain_lengths ]
721
721
except TypeError :
722
- raise TypeError ("parameter chain_lengths must be a list of integers, not {0 }" .format (chain_lengths ))
722
+ raise TypeError ("parameter chain_lengths must be a list of integers, not {}" .format (chain_lengths ))
723
723
if any (x < 0 for x in l ):
724
- raise TypeError ("parameter chain_lengths must be a list of nonnegative integers, not {0 }" .format (l ))
724
+ raise TypeError ("parameter chain_lengths must be a list of nonnegative integers, not {}" .format (l ))
725
725
726
726
# given the empty list, we expect the empty poset.
727
727
if not chain_lengths :
@@ -781,9 +781,9 @@ def RandomPoset(n, p):
781
781
try :
782
782
p = float (p )
783
783
except (TypeError , ValueError ):
784
- raise TypeError ("probability must be a real number, not {0}" . format ( p ) )
784
+ raise TypeError (f "probability must be a real number, not { p } " )
785
785
if p < 0 or p > 1 :
786
- raise ValueError ("probability must be between 0 and 1, not {0}" . format ( p ) )
786
+ raise ValueError (f "probability must be between 0 and 1, not { p } " )
787
787
788
788
D = DiGraph (loops = False , multiedges = False )
789
789
D .add_vertices (range (n ))
@@ -867,9 +867,9 @@ def RandomLattice(n, p, properties=None):
867
867
try :
868
868
p = float (p )
869
869
except Exception :
870
- raise TypeError ("probability must be a real number, not {0}" . format ( p ) )
870
+ raise TypeError (f "probability must be a real number, not { p } " )
871
871
if p < 0 or p >= 1 :
872
- raise ValueError ("probability must be a positive real number and below 1, not {0 }" .format (p ))
872
+ raise ValueError ("probability must be a positive real number and below 1, not {}" .format (p ))
873
873
874
874
if properties is None :
875
875
# Basic case, no special properties for lattice asked.
@@ -882,11 +882,11 @@ def RandomLattice(n, p, properties=None):
882
882
return LatticePoset (D , cover_relations = True )
883
883
884
884
if isinstance (properties , str ):
885
- properties = set ([ properties ])
885
+ properties = { properties }
886
886
else :
887
887
properties = set (properties )
888
888
889
- known_properties = set ([ 'planar' , 'dismantlable' , 'distributive' , 'stone' ])
889
+ known_properties = { 'planar' , 'dismantlable' , 'distributive' , 'stone' }
890
890
errors = properties .difference (known_properties )
891
891
if errors :
892
892
raise ValueError ("unknown value %s for 'properties'" % errors .pop ())
@@ -907,22 +907,22 @@ def RandomLattice(n, p, properties=None):
907
907
if 'stone' in properties and len (properties ) > 1 :
908
908
raise NotImplementedError ("combining 'stone' with other properties is not implemented" )
909
909
910
- if properties == set ([ 'planar' ]) :
910
+ if properties == { 'planar' } :
911
911
D = _random_planar_lattice (n )
912
912
D .relabel ([i - 1 for i in Permutations (n ).random_element ()])
913
913
return LatticePoset (D )
914
914
915
- if properties == set ([ 'dismantlable' ]) :
915
+ if properties == { 'dismantlable' } :
916
916
D = _random_dismantlable_lattice (n )
917
917
D .relabel ([i - 1 for i in Permutations (n ).random_element ()])
918
918
return LatticePoset (D )
919
919
920
- if properties == set ([ 'stone' ]) :
920
+ if properties == { 'stone' } :
921
921
D = _random_stone_lattice (n )
922
922
D .relabel ([i - 1 for i in Permutations (n ).random_element ()])
923
923
return LatticePoset (D )
924
924
925
- if properties == set ([ 'distributive' ]) :
925
+ if properties == { 'distributive' } :
926
926
tmp = Poset (_random_distributive_lattice (n )).order_ideals_lattice (as_ideals = False )
927
927
D = copy (tmp ._hasse_diagram )
928
928
D .relabel ([i - 1 for i in Permutations (n ).random_element ()])
@@ -1106,18 +1106,17 @@ def SymmetricGroupBruhatIntervalPoset(start, end):
1106
1106
start = Permutation (start )
1107
1107
end = Permutation (end )
1108
1108
if len (start ) != len (end ):
1109
- raise TypeError ("start (%s ) and end (%s ) must have same length" % ( start , end ) )
1109
+ raise TypeError (f "start ({ start } ) and end ({ end } ) must have same length" )
1110
1110
if not start .bruhat_lequal (end ):
1111
- raise TypeError ("must have start (%s ) <= end (%s ) in Bruhat order" % ( start , end ) )
1111
+ raise TypeError (f "must have start ({ start } ) <= end ({ end } ) in Bruhat order" )
1112
1112
unseen = [start ]
1113
1113
nodes = {}
1114
1114
while unseen :
1115
1115
perm = unseen .pop (0 )
1116
1116
nodes [perm ] = [succ_perm for succ_perm in perm .bruhat_succ ()
1117
1117
if succ_perm .bruhat_lequal (end )]
1118
- for succ_perm in nodes [perm ]:
1119
- if succ_perm not in nodes :
1120
- unseen .append (succ_perm )
1118
+ unseen .extend (succ_perm for succ_perm in nodes [perm ]
1119
+ if succ_perm not in nodes )
1121
1120
return Poset (nodes )
1122
1121
1123
1122
@staticmethod
@@ -1393,9 +1392,9 @@ def UpDownPoset(n, m=1):
1393
1392
try :
1394
1393
m = Integer (m )
1395
1394
except TypeError :
1396
- raise TypeError ("parameter m must be an integer, not {0}" . format ( m ) )
1395
+ raise TypeError (f "parameter m must be an integer, not { m } " )
1397
1396
if m < 1 :
1398
- raise ValueError ("parameter m must be positive, not {0}" . format ( m ) )
1397
+ raise ValueError (f "parameter m must be positive, not { m } " )
1399
1398
1400
1399
covers = [[i , i + 1 ] if (i + 1 ) % (m + 1 ) else [i + 1 , i ]
1401
1400
for i in range (n - 1 )]
@@ -1681,7 +1680,7 @@ def PermutationPatternInterval(bottom, top):
1681
1680
top = P (top )
1682
1681
bottom = P (bottom )
1683
1682
if not top .has_pattern (bottom ):
1684
- raise ValueError ("{ } doesn't contain {} as a pattern". format ( top , bottom ) )
1683
+ raise ValueError (f" { top } doesn't contain { bottom } as a pattern" )
1685
1684
# Make a list of lists of elements in the interval divided by rank.
1686
1685
# List will be flattened at the end
1687
1686
elem = [[top ]]
@@ -1833,19 +1832,17 @@ def MobilePoset(ribbon, hangers, anchor=None):
1833
1832
elements .extend (ribbon ._elements )
1834
1833
1835
1834
if anchor :
1836
- for cr in anchor [2 ]. cover_relations ():
1837
- cover_relations . append ((( anchor [ 0 ], cr [ 0 ]), ( anchor [0 ], cr [ 1 ]) ))
1835
+ cover_relations . extend ((( anchor [ 0 ], cr [ 0 ]), ( anchor [0 ], cr [ 1 ]))
1836
+ for cr in anchor [2 ]. cover_relations ( ))
1838
1837
cover_relations .append ((anchor [0 ], (anchor [0 ], anchor [1 ])))
1839
1838
1840
- for elmt in anchor [2 ]._elements :
1841
- elements .append ((anchor [0 ], elmt ))
1839
+ elements .extend ((anchor [0 ], elmt ) for elmt in anchor [2 ]._elements )
1842
1840
1843
1841
for r , hangs in hangers .items ():
1844
1842
for i , h in enumerate (hangs ):
1845
- for v in h ._elements :
1846
- elements .append ((r , i , v ))
1847
- for cr in h .cover_relations ():
1848
- cover_relations .append (((r , i , cr [0 ]), (r , i , cr [1 ])))
1843
+ elements .extend ((r , i , v ) for v in h ._elements )
1844
+ cover_relations .extend (((r , i , cr [0 ]), (r , i , cr [1 ]))
1845
+ for cr in h .cover_relations ())
1849
1846
cover_relations .append (((r , i , h .top ()), r ))
1850
1847
1851
1848
return Mobile (DiGraph ([elements , cover_relations ]))
@@ -1896,7 +1893,7 @@ def _random_lattice(n, p):
1896
1893
n = n - 1
1897
1894
meets = [[None ] * n for _ in range (n )]
1898
1895
meets [0 ][0 ] = 0
1899
- maxs = set ([ 0 ])
1896
+ maxs = { 0 }
1900
1897
lc_all = [[]] # No lower covers for the bottom element.
1901
1898
1902
1899
for i in range (1 , n ):
0 commit comments