mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-07-28 07:57:44 +00:00
e0a24fb46f
* ignore result csv file * fix app scripts * rename taskgenerator to developer and generate to develop * fix a config bug in coder * fix a small bug in factor coder evaluators * remove a single logger in factor coder evaluators * fix a small bug in model coder main.py * rename Implementation to Workspace * move the prepare the inject_code into FBWorkspace to align all the behavior * fix a small bug in model feedback * remove debug lines for multi processing and simplify evaluators multi proc * add a copy function to workspace to freeze the workspace && add config prefix to speed up debugging * make hypothesisgen a abc class * use Qlib***Experiment * fix a small bug * rename Imp to Ws * rename sub_implementations to sub_workspace_list * fix a bug in feedback not presented as content in prompts * move proposal pys to proposal folder * reformat the folder * align factor and model qlib workspace and use template to handle the workspace * add a filter to evoagent to filter out false evo * align multi_proc_n into RDAGENT seeting * handle when runner gets empty experiment * fix logger merge remaining problems * fix black and isort automatically
64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from abc import abstractmethod
|
|
from pathlib import Path
|
|
|
|
|
|
class Storage:
|
|
"""
|
|
Basic storage to support saving objects;
|
|
|
|
# Usage:
|
|
|
|
The storage has mainly two kind of users:
|
|
- The logging end: you can choose any of the following method to use the object
|
|
- We can use it directly with the native logging storage
|
|
- We can use it with other logging tools; For example, serve as a handler for loggers
|
|
- The view end:
|
|
- Mainly for the subclass of `logging.base.View`
|
|
- It should provide two kind of ways to provide content
|
|
- offline content provision.
|
|
- online content preovision.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def log(self, obj: object, name: str = "", **kwargs: dict) -> str | Path:
|
|
"""
|
|
|
|
Parameters
|
|
----------
|
|
obj : object
|
|
The object for logging.
|
|
name : str
|
|
The name of the object. For example "a.b.c"
|
|
We may log a lot of objects to a same name
|
|
|
|
Returns
|
|
-------
|
|
str | Path
|
|
The storage identifier of the object.
|
|
"""
|
|
...
|
|
|
|
|
|
class View:
|
|
"""
|
|
Motivation:
|
|
|
|
Display the content in the storage
|
|
"""
|
|
|
|
# TODO: pleas fix me
|
|
@abstractmethod
|
|
def display(s: Storage, watch: bool = False):
|
|
"""
|
|
|
|
Parameters
|
|
----------
|
|
s : Storage
|
|
|
|
watch : bool
|
|
should we watch the new content and display them
|
|
"""
|
|
...
|