From 4b50737cd7210704387055903c0f6a459ae8bdda Mon Sep 17 00:00:00 2001 From: bxdd Date: Fri, 27 Oct 2023 03:19:41 +0800 Subject: [PATCH] [MNT] add market module --- learnware/market/__init__.py | 14 +++++---- learnware/market/anchor/__init__.py | 36 +--------------------- learnware/market/easy2/__init__.py | 12 ++------ learnware/market/evolve/__init__.py | 1 + learnware/market/evolve_anchor/__init__.py | 1 + learnware/market/hetergeneous/__init__.py | 1 + learnware/market/module.py | 19 ++++++++++++ 7 files changed, 34 insertions(+), 50 deletions(-) diff --git a/learnware/market/__init__.py b/learnware/market/__init__.py index bf18990..ff30c4b 100644 --- a/learnware/market/__init__.py +++ b/learnware/market/__init__.py @@ -1,6 +1,8 @@ -from .anchor import AnchoredUserInfo, AnchoredMarket -from .base import BaseUserInfo, LearnwareMarket -from .evolve_anchor import EvolvedAnchoredMarket -from .evolve import EvolvedMarket -from .easy import EasyMarket -from .heterogeneous_feature import HeterogeneousFeatureMarket +from .anchor import AnchoredUserInfo, AnchoredOrganizer +from .base import BaseUserInfo, LearnwareMarket, LearnwareChecker, LearnwareOrganizer +from .evolve_anchor import EvolveAnchoredOrganizer +from .evolve import EvolvedOrganizer +from .easy2 import EasyChecker, EasyOrganizer, EasySearcher +from .hetergeneous import HeterogeneousOrganizer, MappingFunction + +from .module import instatiate_learnware_market \ No newline at end of file diff --git a/learnware/market/anchor/__init__.py b/learnware/market/anchor/__init__.py index 39d77a1..66b07d2 100644 --- a/learnware/market/anchor/__init__.py +++ b/learnware/market/anchor/__init__.py @@ -1,35 +1 @@ -class AnchoredUserInfo(BaseUserInfo): - """ - User Information for searching learnware (add the anchor design) - - - UserInfo contains the anchor list acquired from the market - - UserInfo can update stat_info based on anchors - """ - - def __init__(self, id: str, semantic_spec: dict = dict(), stat_info: dict = dict()): - super(AnchoredUserInfo, self).__init__(id, semantic_spec, stat_info) - self.anchor_learnware_list = {} # id: Learnware - - def add_anchor_learnware(self, learnware_id: str, learnware: Learnware): - """Add the anchor learnware acquired from the market - - Parameters - ---------- - learnware_id : str - Id of anchor learnware - learnware : Learnware - Anchor learnware for capturing user requirements - """ - self.anchor_learnware_list[learnware_id] = learnware - - def update_stat_info(self, name: str, item: Any): - """Update stat_info based on anchor learnwares - - Parameters - ---------- - name : str - Name of stat_info - item : Any - Statistical information calculated on anchor learnwares - """ - self.stat_info[name] = item +from .organizer import AnchoredOrganizer, AnchoredUserInfo \ No newline at end of file diff --git a/learnware/market/easy2/__init__.py b/learnware/market/easy2/__init__.py index 722e93d..ef05bb9 100644 --- a/learnware/market/easy2/__init__.py +++ b/learnware/market/easy2/__init__.py @@ -1,9 +1,3 @@ -from ..base import LearnwareSearcher, LearnwareOrganizer - - -class EasySearcher(LearnwareSearcher): - pass - - -class EasyOrganizer(LearnwareOrganizer): - pass +from .organizer import EasyOrganizer +from .checker import EasyChecker +from .searcher import EasySearcher \ No newline at end of file diff --git a/learnware/market/evolve/__init__.py b/learnware/market/evolve/__init__.py index e69de29..c096db0 100644 --- a/learnware/market/evolve/__init__.py +++ b/learnware/market/evolve/__init__.py @@ -0,0 +1 @@ +from .organizer import EvolvedOrganizer \ No newline at end of file diff --git a/learnware/market/evolve_anchor/__init__.py b/learnware/market/evolve_anchor/__init__.py index e69de29..030b444 100644 --- a/learnware/market/evolve_anchor/__init__.py +++ b/learnware/market/evolve_anchor/__init__.py @@ -0,0 +1 @@ +from .organizer import EvolveAnchoredOrganizer \ No newline at end of file diff --git a/learnware/market/hetergeneous/__init__.py b/learnware/market/hetergeneous/__init__.py index e69de29..77943cd 100644 --- a/learnware/market/hetergeneous/__init__.py +++ b/learnware/market/hetergeneous/__init__.py @@ -0,0 +1 @@ +from .organizer import MappingFunction, HeterogeneousOrganizer \ No newline at end of file diff --git a/learnware/market/module.py b/learnware/market/module.py index e69de29..fbd5978 100644 --- a/learnware/market/module.py +++ b/learnware/market/module.py @@ -0,0 +1,19 @@ +from .base import LearnwareMarket +from .easy2 import EasyChecker, EasyOrganizer, EasySearcher + +MARKET_CONFIG = { + 'easy': { + 'organizer': EasyOrganizer(), + 'checker': EasyChecker(), + 'searcher': EasySearcher(), + } +} + +def instatiate_learnware_market(market_id, name='easy'): + + return LearnwareMarket( + market_id=market_id, + organizer=MARKET_CONFIG[name]['organizer'], + checker=MARKET_CONFIG[name]['checker'], + searcher=MARKET_CONFIG[name]['searcher'], + ) \ No newline at end of file