Path: blob/main/scripts/galois_groups/import_gg_data.py
1127 views
#!/usr/local/bin/sage -python1# -*- coding: utf-8 -*-2import sys3#import os4import json56sys.path.append("../..")7from lmfdb import db89gr = db.gps_transitive1011# moddecompuniq and pretty are added later if known1213mykeys = ['ab', 'arith_equiv', 'auts', 'cyc', 'gapid', 'n', 'order', 'parity', 'prim', 'siblings', 'quotients', 'solv', 'subfields', 't', 'name', 'bound_siblings', 'bound_quotients', 'num_conj_classes', 'gens']1415myfile = open(sys.argv[1])1617outrecs=[]1819def dosubs(ent):20lis = ent['subfields']21lis2 = [(j[0], j[1]) for j in lis]22diflis = list(set(lis2))23diflis.sort()24ans = [[[j[0], j[1]], lis2.count(j)] for j in diflis]25ent['subfields'] = ans2627lis = ent['siblings']28lis2 = [(j[0], j[1]) for j in lis]29diflis = list(set(lis2))30diflis.sort()31ans = [[[j[0], j[1]], lis2.count(j)] for j in diflis]32ent['siblings'] = ans3334lis = ent['quotients']35lis2 = [(j[0], j[1][0], j[1][1]) for j in lis]36diflis = list(set(lis2))37diflis.sort()38ans = [[j[0], [j[1], j[2]], lis2.count(j)] for j in diflis]39ent['quotients'] = ans4041return(ent)4243for l in myfile:44v= json.loads(l)45for dd in v:46for vals in dd:47data=dict(zip(mykeys, vals))48# need to fix parity49if data['parity'] == 0:50data['parity'] = -151data['label'] = "%dT%d"%(data['n'], data['t'])52data['gapidfull'] = ""53if data['gapid']>0:54data['gapidfull'] = "[%d,%d]"%(data['order'],data['gapid'])55# no longer needed56# data = dosubs(data)57data['siblings'] = [[z[0],z[1][0]] for z in data['siblings']]58outrecs.append(data)5960if len(outrecs)>0:61gr.insert_many(outrecs)6263#for fld in ['ab', 'arith_equiv', 'auts', 'cyc', 'gapid', 'n', 'order', 'parity', 'prim', 'repns', 'resolve', 'solv', 'subs', 't']:64# if data[fld] != old[fld]:65# print "Mismatch (%d,%d) on %s: %s --- %s"%(data['n'],data['t'],fld, str(data[fld]), str(old[fld]))6667686970