コード例 #1
0
def listallcomponentcategories( ):
    '''list all component categories'''
    ret = []
    for name, supplier in getsuppliers().iteritems():
        ret += supplier.listallcomponentcategories()
        continue
    from utils import uniquelist
    return uniquelist( ret )
コード例 #2
0
def listallcomponentcategories():
    '''list all component categories'''
    ret = []
    for name, supplier in getsuppliers().iteritems():
        ret += supplier.listallcomponentcategories()
        continue
    from utils import uniquelist
    return uniquelist(ret)
コード例 #3
0
def listcomponentsincategory( category ):
    ret = []
    for name, supplier in getsuppliers().iteritems():
        if category not in supplier.listallcomponentcategories(): 
            continue
        l = supplier.listcomponentsincategory( category )
        l = [ (i, name) for i in l ]
        ret += l
        continue
    return ret
コード例 #4
0
def listcomponentsincategory(category):
    ret = []
    for name, supplier in getsuppliers().iteritems():
        if category not in supplier.listallcomponentcategories():
            continue
        l = supplier.listcomponentsincategory(category)
        l = [(i, name) for i in l]
        ret += l
        continue
    return ret
コード例 #5
0
ファイル: __init__.py プロジェクト: McStasMcXtrace/MCViNE
def componentfactory( category, type, supplier = 'mcni'):
    from component_suppliers import all as getsuppliers
    suppliers = getsuppliers()
    suppliername = supplier
    supplier = suppliers[ suppliername ]
    get = getattr(supplier, 'componentfactory')
    f = get(category, type)
    f.category = category
    f.type = type
    f.supplier = suppliername
    return f
コード例 #6
0
ファイル: __init__.py プロジェクト: McStasMcXtrace/MCViNE
def componentfactory(category, type, supplier='mcni'):
    from component_suppliers import all as getsuppliers
    suppliers = getsuppliers()
    suppliername = supplier
    supplier = suppliers[suppliername]
    get = getattr(supplier, 'componentfactory')
    f = get(category, type)
    f.category = category
    f.type = type
    f.supplier = suppliername
    return f
コード例 #7
0
def find(type, category=None, supplier=None):
    if category and supplier:
        return type, category, supplier

    from component_suppliers import all as getsuppliers
    suppliers = getsuppliers()

    if supplier is None:
        suppliernames = suppliers.iterkeys()
    else:
        suppliernames = [supplier]

    found = []
    categoryin = category
    close_matches = []
    for suppliername in suppliernames:
        supplier = suppliers[suppliername]
        if categoryin is None:
            categories = supplier.listallcomponentcategories()
        else:
            categories = [categoryin]
        for category in categories:
            types = supplier.listcomponentsincategory(category)
            if type in types:
                found.append((category, suppliername))
                continue
            matches = get_close_matches(type, types)
            if matches:
                close_matches += matches
            continue
        continue
    if not found:
        if close_matches:
            import warnings
            marker = '*' * 70
            msg = ("\n%s\nCannot find the component you requested: %r, \n"
                   "maybe you mean %r?\n%s\n") % (marker, type,
                                                  close_matches[0], marker)
            warnings.warn(msg)
        return

    if len(found) > 1:
        raise RuntimeError, 'found more than 1 component for type %s: %s' % (
            type, found)

    category, suppliername = found[0]
    return type, category, suppliername
コード例 #8
0
def find(type, category=None, supplier=None):
    if category and supplier:
        return type, category, supplier

    from component_suppliers import all as getsuppliers
    suppliers = getsuppliers()
    
    if supplier is None:
        suppliernames = suppliers.iterkeys()
    else:
        suppliernames = [supplier]
    
    found = []; categoryin = category
    close_matches = []
    for suppliername in suppliernames:
        supplier = suppliers[suppliername]
        if categoryin is None:
            categories = supplier.listallcomponentcategories()
        else:
            categories = [categoryin]
        for category in categories:
            types = supplier.listcomponentsincategory(category)
            if type in types:
                found.append((category, suppliername))
                continue
            matches = get_close_matches(type, types)
            if matches:
                close_matches += matches
            continue
        continue
    if not found: 
        if close_matches:
            import warnings
            marker = '*'*70
            msg = ("\n%s\nCannot find the component you requested: %r, \n"
                   "maybe you mean %r?\n%s\n") %(
                marker, type, close_matches[0], marker)
            warnings.warn(msg)
        return

    if len(found) > 1:
        raise RuntimeError, 'found more than 1 component for type %s: %s' % (
            type, found)
    
    category, suppliername = found[0]
    return type, category, suppliername