refgenie / refgenconf

A Python object for standardized reference genome assets.
http://refgenie.databio.org
BSD 2-Clause "Simplified" License
3 stars 6 forks source link

KeyError: 'aliases' #103

Closed nsheff closed 3 years ago

nsheff commented 4 years ago

/project/shefflab/deploy/plantref/genomes/submission/refgenie_Zoysia_japonica_ssp__nagirizaki_Z oysia_Genome_Database_v1_1-fasta.log

Traceback (most recent call last):                                                                                                 
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/ordattmap.py", line 45, in __getitem__                               
    return super(OrdAttMap, self).__getitem__(item)                                                                                
KeyError: 'aliases'                                                                                                                

During handling of the above exception, another exception occurred:                                                                

Traceback (most recent call last):                                                                                                 
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 61, in __init__                                      
    res = aliases(self)                                                                                                            
  File "/home/ns5bc/.local/lib/python3.6/site-packages/refgenconf/refgenconf.py", line 93, in <lambda>                             
    for k, v in list(x.items())},                                                                                                  
  File "/home/ns5bc/.local/lib/python3.6/site-packages/refgenconf/refgenconf.py", line 93, in <dictcomp>                           
    for k, v in list(x.items())},                                                                                                  
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/pathex_attmap.py", line 51, in __getitem__                           
    v = super(PathExAttMap, self).__getitem__(item)                                                                                
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/ordattmap.py", line 47, in __getitem__                               
    return AttMap.__getitem__(self, item)                                                                                          
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/attmap.py", line 32, in __getitem__                                  
    return self.__dict__[item]                                                                                                     
KeyError: 'aliases'                                                    

Then:

  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 150, in alias_dict
    return self[ALIASES_KEY]
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 98, in __getitem__
    key = self.get_key(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 192, in get_key
    if alias in list(self.alias_dict.keys()):
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/pathex_attmap.py", line 17, in __getattribute__
    res = super(PathExAttMap, self).__getattribute__(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 150, in alias_dict
    return self[ALIASES_KEY]
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 98, in __getitem__
    key = self.get_key(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 192, in get_key
    if alias in list(self.alias_dict.keys()):
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/pathex_attmap.py", line 17, in __getattribute__
    res = super(PathExAttMap, self).__getattribute__(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 150, in alias_dict
    return self[ALIASES_KEY]
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 98, in __getitem__
    key = self.get_key(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 192, in get_key
    if alias in list(self.alias_dict.keys()):
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/pathex_attmap.py", line 17, in __getattribute__
    res = super(PathExAttMap, self).__getattribute__(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 150, in alias_dict
    return self[ALIASES_KEY]
  File "/home/ns5bc/.local/lib/python3.6/site-packages/yacman/alias.py", line 95, in __getitem__
    expand=expand)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/pathex_attmap.py", line 51, in __getitem__
    v = super(PathExAttMap, self).__getitem__(item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/ordattmap.py", line 47, in __getitem__
    return AttMap.__getitem__(self, item)
  File "/home/ns5bc/.local/lib/python3.6/site-packages/attmap/attmap.py", line 32, in __getitem__
    return self.__dict__[item]
RecursionError: maximum recursion depth exceeded while calling a Python object

maybe due to not re-initializing my config? should there be a check to prevent this?

stolarczyk commented 4 years ago

You're right. Not initializing the config is the issue. And yes, there is a mechanism in place to prevent that, but now I see that the genomes section is initialized before the check happens, which I'll need to fix