blueprints.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:yamlloader 作者: fuzzysteve 项目源码 文件源码
def importyaml(connection,metadata,sourcePath):

    activityIDs={"copying":5,"manufacturing":1,"research_material":4,"research_time":3,"invention":8,"reaction":11};

    industryBlueprints=Table('industryBlueprints',metadata)
    industryActivity = Table('industryActivity',metadata)
    industryActivityMaterials = Table('industryActivityMaterials',metadata)
    industryActivityProducts = Table('industryActivityProducts',metadata)
    industryActivitySkills = Table('industryActivitySkills',metadata)
    industryActivityProbabilities = Table('industryActivityProbabilities',metadata)




    print "importing Blueprints"
    print "opening Yaml"
    trans = connection.begin()
    with open(os.path.join(sourcePath,'fsd','blueprints.yaml'),'r') as yamlstream:
        blueprints=load(yamlstream,Loader=SafeLoader)
        print "Yaml Processed into memory"
        for blueprint in blueprints:
            connection.execute(industryBlueprints.insert(),typeID=blueprint,maxProductionLimit=blueprints[blueprint]["maxProductionLimit"])
            for activity in blueprints[blueprint]['activities']:
                connection.execute(industryActivity.insert(),
                                    typeID=blueprint,
                                    activityID=activityIDs[activity],
                                    time=blueprints[blueprint]['activities'][activity]['time'])
                if blueprints[blueprint]['activities'][activity].has_key('materials'):
                    for material in blueprints[blueprint]['activities'][activity]['materials']:
                        connection.execute(industryActivityMaterials.insert(),
                                            typeID=blueprint,
                                            activityID=activityIDs[activity],
                                            materialTypeID=material['typeID'],
                                            quantity=material['quantity'])
                if blueprints[blueprint]['activities'][activity].has_key('products'):
                    for product in blueprints[blueprint]['activities'][activity]['products']:
                        connection.execute(industryActivityProducts.insert(),
                                            typeID=blueprint,
                                            activityID=activityIDs[activity],
                                            productTypeID=product['typeID'],
                                            quantity=product['quantity'])
                        if product.has_key('probability'):
                            connection.execute(industryActivityProbabilities.insert(),
                                                typeID=blueprint,
                                                activityID=activityIDs[activity],
                                                productTypeID=product['typeID'],
                                                probability=product['probability'])
                try:
                    if blueprints[blueprint]['activities'][activity].has_key('skills'):
                        for skill in blueprints[blueprint]['activities'][activity]['skills']:
                            connection.execute(industryActivitySkills.insert(),
                                                typeID=blueprint,
                                                activityID=activityIDs[activity],
                                                skillID=skill['typeID'],
                                                level=skill['level'])
                except:
                    print '{} has a bad skill'.format(blueprint)
    trans.commit()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号