The Installation class feels bloated, rigid, and proprietary. It is not versatile in many scenarios and use cases, in my experience. For example, getting all resources from an installation, or specifically acquiring a list of rims, is not currently possible.
This PR attempts to address these problems. It also will:
Only build the FileResources' when they're needed (similar to the Capsule class). For my purposes, I usually don't need to load all the BIFs if I just want to grab for example an Override file.
Make all filename args optional (e.g. in module_resources, lip_resources, etc). None of the cached lists are public, so the most backward-compatible way to add support here is by building a full List[FileResource] when a filename is not passed.
Use multi threading from concurrent.futures.ThreadPoolExecutor to massively improve the time required to load resources from an installation.
This PR contains all the changes from #28, if you are considering this PR please merge the aforementioned PR first.
The Installation class feels bloated, rigid, and proprietary. It is not versatile in many scenarios and use cases, in my experience. For example, getting all resources from an installation, or specifically acquiring a list of rims, is not currently possible.
This PR attempts to address these problems. It also will:
FileResource
s' when they're needed (similar to theCapsule
class). For my purposes, I usually don't need to load all the BIFs if I just want to grab for example an Override file.filename
args optional (e.g. inmodule_resources
,lip_resources
, etc). None of the cached lists are public, so the most backward-compatible way to add support here is by building a fullList[FileResource]
when afilename
is not passed.This PR contains all the changes from #28, if you are considering this PR please merge the aforementioned PR first.