Browse Source

[MNT] add market module

tags/v0.3.2
bxdd 2 years ago
parent
commit
4b50737cd7
7 changed files with 34 additions and 50 deletions
  1. +8
    -6
      learnware/market/__init__.py
  2. +1
    -35
      learnware/market/anchor/__init__.py
  3. +3
    -9
      learnware/market/easy2/__init__.py
  4. +1
    -0
      learnware/market/evolve/__init__.py
  5. +1
    -0
      learnware/market/evolve_anchor/__init__.py
  6. +1
    -0
      learnware/market/hetergeneous/__init__.py
  7. +19
    -0
      learnware/market/module.py

+ 8
- 6
learnware/market/__init__.py View File

@@ -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

+ 1
- 35
learnware/market/anchor/__init__.py View File

@@ -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

+ 3
- 9
learnware/market/easy2/__init__.py View File

@@ -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

+ 1
- 0
learnware/market/evolve/__init__.py View File

@@ -0,0 +1 @@
from .organizer import EvolvedOrganizer

+ 1
- 0
learnware/market/evolve_anchor/__init__.py View File

@@ -0,0 +1 @@
from .organizer import EvolveAnchoredOrganizer

+ 1
- 0
learnware/market/hetergeneous/__init__.py View File

@@ -0,0 +1 @@
from .organizer import MappingFunction, HeterogeneousOrganizer

+ 19
- 0
learnware/market/module.py View File

@@ -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'],
)

Loading…
Cancel
Save