def WebModFormSpace_cached(level,weight,character,**kwds): if use_cache: label = space_label(level=level, weight=weight, character=character, make_cache_label = True) M= cache.get(label) emf_logger.debug("Looking for cached space:{0}".format(label)) if M is None: emf_logger.debug("M was not in cache!") M = WebModFormSpace(level,weight,character,**kwds) cache.set(label, M, timeout=5 * 60) else: emf_logger.debug("M was in cache!") else: M = WebModFormSpace(level,weight,character,**kwds) return M
def __init__(self, level=1, weight=12, character=1,cuspidal=True, new=True, prec=0, bitprec=53, update_from_db=True, update_hecke_orbits=True, **kwargs): # I added this reduction since otherwise there is a problem with # caching the hecke orbits (since they have self as parent) self._reduction = (type(self),(level,weight,character), {'cuspidal':cuspidal, 'prec':prec, 'bitprec':bitprec, 'update_from_db':update_from_db,'update_hecke_orbits':update_hecke_orbits}) if isinstance(character, WebChar): character_number = character.number else: character_number = character emf_logger.debug("level={0}".format(level)) emf_logger.debug("character={0},type={1}".format(character,type(character))) emf_logger.debug("character_number={0}".format(character_number)) self._properties = WebProperties( WebInt('level', value=level), WebInt('weight', value=weight), WebCharProperty('character', modulus=level, number=character_number), WebStr('character_naming_scheme', value='Conrey', save_to_fs=True), WebList('_character_galois_orbit', default_value=[character]), WebDict('_character_galois_orbit_embeddings', default_value={}), WebCharProperty('character_orbit_rep', modulus=level, save_to_fs=True), #WebCharProperty('character_used_in_computation', modulus=level, save_to_fs=True), WebStr('space_label', default_value=space_label(level=level, weight=weight, character=character), save_to_fs=True), WebStr('space_orbit_label', value='', save_to_db=True), #WebStr('galois_orbit_name', value='', save_to_fs=True), WebInt('dimension'), WebInt('dimension_cusp_forms'), WebInt('dimension_modular_forms'), WebInt('dimension_new_cusp_forms'), WebBool('cuspidal', value=cuspidal), WebBool('new', value=new), #WebInt('prec', value=int(prec)), #precision of q-expansions -- removed, does not make much sense for the space here WebSageObject('group'), WebInt('sturm_bound'), WebHeckeOrbits('hecke_orbits', level, weight, character, self, prec=prec, include_in_update=update_hecke_orbits), WebList('oldspace_decomposition', required=False), WebInt('bitprec', value=bitprec), WebFloat('version', value=float(emf_version), save_to_fs=True), WebList('zeta_orders',value=[],save_to_db=True), WebDate('creation_date',value=None,save_to_db=True) ) self.make_code_snippets() emf_logger.debug("Have set properties of space 1 !!") super(WebModFormSpace, self).__init__(update_from_db=update_from_db, **kwargs) emf_logger.debug("Have set properties of space 2 !!") emf_logger.debug("orbits={0}".format(self.hecke_orbits))