Skip to content

Commit

Permalink
autopep8 action fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
roed314 authored Jun 14, 2024
1 parent 10333cf commit 2838cea
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 33 deletions.
2 changes: 1 addition & 1 deletion lmfdb/api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ def apierror(msg, flash_extras=[], code=404, table=False):
search_schema = {}
extra_schema = {}
for label, table, col, sort in zip(labels, tables, label_cols, sorts):
if type(col) == list: # Needed for gps_conj_classes, which effectively has a pair of columns for a label
if isinstance(col, list): # Needed for gps_conj_classes, which effectively has a pair of columns for a label
q = dict(zip(col, label))
else:
q = {col: label}
Expand Down
24 changes: 10 additions & 14 deletions lmfdb/groups/abstract/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,6 @@ def label_is_valid(lab):
return abstract_group_label_regex.fullmatch(lab)



#parser for conjugacy class search
@search_parser(clean_info=True, prep_ranges=True)
def parse_group(inp, query, qfield):
Expand Down Expand Up @@ -1252,7 +1251,7 @@ def indicator_type(strg):
strg = strg.replace("S","-1")
return strg

def char_to_sub(short_label, group, as_latex = None):
def char_to_sub(short_label, group, as_latex=None):
if short_label:
full_label = f"{group}.{short_label}"
if as_latex:
Expand Down Expand Up @@ -1333,31 +1332,30 @@ def complex_char_search(info, query={}):
# parse_regex_restricted(info, query, "kernel", regex=abstract_group_label_regex)



#need mathmode for MultiProcessedCol
def cc_repr(label,code , latex = True): #default is include dollar signs
def cc_repr(label,code , latex=True): #default is include dollar signs
gp = WebAbstractGroup(label)
if gp.representations.get("Lie") and gp.representations["Lie"][0]["family"][0] == "P" and gp.order < 2000:
return "" #Problem with PGL, PSL, etc
if latex:
return "$" + gp.decode(code,as_str= True) + "$"
return "$" + gp.decode(code,as_str=True) + "$"
else: # this is for download postprocess
if gp.element_repr_type == "Perm" or gp.element_repr_type == "PC":
return gp.decode(code,as_str= True)
return gp.decode(code,as_str=True)
else: # matrices as lists
return gp.decode(code,as_str= False)
return gp.decode(code,as_str=False)

def Power_col(i, ps):
p = ps[i]
return MultiProcessedCol("power_cols", None, f"{p}P", ["group_order", "group_counter", "powers","highlight_col"], lambda group_order, group_counter, powers, highlight_col: get_cc_url(group_order, group_counter, powers[i], highlight_col), align="center")
return MultiProcessedCol("power_cols", None, f"{p}P", ["group_order", "group_counter", "powers","highlight_col"], lambda group_order, group_counter, powers, highlight_col: get_cc_url(group_order, group_counter, powers[i], highlight_col), align="center")


def gp_link(gp_order,gp_counter, tex_cache):
gp = cc_data_to_gp_label(gp_order,gp_counter)
return display_url_cache(gp, tex_cache)

conjugacy_class_columns = SearchColumns([
MultiProcessedCol("group", "group.name", "Group", ["group_order", "group_counter", "tex_cache"], gp_link, apply_download=lambda group_order, group_counter, tex_cache: cc_data_to_gp_label(group_order, group_counter)),
MultiProcessedCol("group", "group.name", "Group", ["group_order", "group_counter", "tex_cache"], gp_link, apply_download=lambda group_order, group_counter, tex_cache: cc_data_to_gp_label(group_order, group_counter)),
MultiProcessedCol("label", "group.label_conjugacy_class", "Label",["group_order", "group_counter", "label","highlight_col"],get_cc_url, download_col="label"),
MathCol("order", "group.order_conjugacy_class", "Order"),
MathCol("size", "group.size_conjugacy_class", "Size"),
Expand Down Expand Up @@ -1423,7 +1421,7 @@ def cc_postprocess(res, info, query):
else:
highlight_col[(group, label)] = None
if missing:
for rec in db.gps_conj_classes.search({"$or":[{"group_order":group_order,"group_counter":group_counter, "counter":{"$in":counters}} for ((group_order,group_counter), counters) in missing.items()]}, ["group_order", "group_counter", "counter", "label"]):
for rec in db.gps_conj_classes.search({"$or":[{"group_order":group_order,"group_counter":group_counter, "counter":{"$in":counters}} for ((group_order,group_counter), counters) in missing.items()]}, ["group_order", "group_counter", "counter", "label"]):
gp_ord = rec.get("group_order")
gp_counter = rec.get("group_counter")
group = cc_data_to_gp_label(gp_ord,gp_counter)
Expand Down Expand Up @@ -1695,7 +1693,6 @@ def render_abstract_subgroup(label):

bread = get_bread([(label,)])


return render_template(
"abstract-show-subgroup.html",
title=title,
Expand Down Expand Up @@ -1871,8 +1868,8 @@ def gp_data(label):
if group_counter.isdigit():
group_counter = int(group_counter)
else:
group_counter = class_to_int(group_counter) + 1 # we start labeling at 1
return datapage([label, [group_order, group_counter], label, label, label], ["gps_groups", "gps_conj_classes", "gps_qchar", "gps_char", "gps_subgroups"], bread=bread, title=title, label_cols=["label", ["group_order","group_counter"], "group", "group", "ambient"])
group_counter = class_to_int(group_counter) + 1 # we start labeling at 1
return datapage([label, [group_order, group_counter], label, label, label], ["gps_groups", "gps_conj_classes", "gps_qchar", "gps_char", "gps_subgroups"], bread=bread, title=title, label_cols=["label", ["group_order","group_counter"], "group", "group", "ambient"])

@abstract_page.route("/sdata/<label>")
def sgp_data(label):
Expand Down Expand Up @@ -2736,7 +2733,6 @@ def cc_data(gp, label, typ="complex", representative=None):
sub_display_knowl(centralizer, "$" + wcent.subgroup_tex + "$")
)


if representative:
ans += "<br>Representative: "+representative
elif wacc.representative is None:
Expand Down
4 changes: 2 additions & 2 deletions lmfdb/groups/abstract/test_browse_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -579,8 +579,8 @@ def test_conj_class_search(self):
"""
self.check_args("/Groups/Abstract/?group=12.4&search_type=ConjugacyClasses", ["3.a1.a1", "6A"])
self.check_args("/Groups/Abstract/?group=128.15&search_type=ConjugacyClasses", r"\OD_{16}:C_8" #group name
)
)

def test_highlighted_conj_class(self):
r"""
Check that conjugacy class links work
Expand Down
31 changes: 15 additions & 16 deletions lmfdb/groups/abstract/web_groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def group_pretty_image(label):


# Functions below are for conjugacy class searches
def gp_label_to_cc_data(gp):
def gp_label_to_cc_data(gp):
gp_ord, gp_counter = gp.split(".")
gp_order = int(gp_ord)
if re.fullmatch(r'\d+',gp_counter):
Expand All @@ -110,19 +110,19 @@ def gp_label_to_cc_data(gp):
def in_small_gp_db(order):
if order == 1024:
return False
if order <= 2000 or order in {2187, 6561, 3125, 2401}:
if order <= 2000 or order in {2187, 6561, 3125, 2401}:
return True
f = factor(order)
if all(f[i][1] == 1 and f[i][0] < 1073741824 for i in range(len(f))):
return True
return True
if len(f) == 2:
pairs, n = exists((i for i in {0,1}), lambda i: f[i][1] == 1)
if pairs:
p = f[1-n]
if ( p[1] <= 2 or p[0] == 2 and p[1] <= 8
or p[0] == 3 and p[1] <= 6
or p[0] == 5 and p[1] <= 5
or p[0] == 7 and p[1] <= 4 ):
p = f[1-n]
if ( p[1] <= 2 or p[0] == 2 and p[1] <= 8
or p[0] == 3 and p[1] <= 6
or p[0] == 5 and p[1] <= 5
or p[0] == 7 and p[1] <= 4 ):
return True
if len(f) <= 3 and sum([p[1] for p in f]) == 4:
return True
Expand All @@ -134,9 +134,9 @@ def in_small_gp_db(order):
def cc_data_to_gp_label(order,counter):
if in_small_gp_db(order):
return str(order) + '.' + str(counter)
return str(order) + '.' + cremona_letter_code(counter-1)
return str(order) + '.' + cremona_letter_code(counter-1)



@cached_function(key=lambda label,name,pretty,ambient,aut,profiledata,cache: (label,name,pretty,ambient,aut,profiledata))
def abstract_group_display_knowl(label, name=None, pretty=True, ambient=None, aut=False, profiledata=None, cache={}):
# If you have the group in hand, set the name using gp.tex_name since that will avoid a database call
Expand Down Expand Up @@ -612,7 +612,6 @@ def cc_known(self):
# return False # problem with PGL, PSL, etc.
return db.gps_conj_classes.exists({'group_order': self.order, 'group_counter': self.counter})


@lazy_attribute
def element_repr_type(self):
if isinstance(self._data, (tuple, list)) and self.solvable:
Expand Down Expand Up @@ -1369,7 +1368,7 @@ def conjugacy_classes(self):
return cl
cl = [
WebAbstractConjClass(self.label, ccdata["label"], ccdata)
for ccdata in db.gps_conj_classes.search({"group_order": self.order, "group_counter": self.counter})
for ccdata in db.gps_conj_classes.search({"group_order": self.order, "group_counter": self.counter})
]
divs = defaultdict(list)
autjs = defaultdict(list)
Expand Down Expand Up @@ -2119,7 +2118,7 @@ def representation_line(self, rep_type, skip_head=False):
pres = " $" + pres + "$"
if self.abelian and not self.cyclic:
if skip_head:
pres = " of the abelian group " + pres
pres = " of the abelian group " + pres
else:
pres = "Abelian group " + pres
if skip_head:
Expand Down Expand Up @@ -2515,7 +2514,7 @@ def repr_strg(self, other_page=False):
return f"Elements of the group are displayed as permutations of degree {d}."
elif rep_type == "PC":
rep_str = "Elements of the group are displayed as words in the presentation"
if other_page:
if other_page:
return rep_str + self.representation_line("PC", skip_head=True)
else:
return rep_str + " generators from the presentation above."
Expand Down Expand Up @@ -3073,11 +3072,11 @@ def thesocle(self):

# Conjugacy class labels do not contain the group
class WebAbstractConjClass(WebObj):
table = db.gps_conj_classes
table = db.gps_conj_classes
def __init__(self, group, label, data=None):
if data is None:
group_order, group_counter = gp_label_to_cc_data(group)
data = db.gps_conj_classes.lucky({"group_order": group_order, "group_counter" : group_counter, "label": label})
data = db.gps_conj_classes.lucky({"group_order": group_order, "group_counter" : group_counter, "label": label})
WebObj.__init__(self, label, data)
self.force_repr_elt = False

Expand Down

0 comments on commit 2838cea

Please sign in to comment.