python类debug()的实例源码

myLib.py 文件源码 项目:INCWO_auto_synchr 作者: vaelastrazs 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def manage_stock_movement(product_infos, product_id, cat_id_src):

    #  product_ref : reference sur produit (servira de nom de fichier contenant les stocks associe)
    product_ref = product_infos["reference"]
    #  cat_id_dest : id de la category du produit selon picata (la ou va etre stocke les infos de la synchro en cours)
    cat_id_dest = product_infos["product_category_id"]

    # creation de la variable stocks pour plus de lisibilité
    stocks = {}
    for tag, value in product_infos.iteritems():
        if tag in STOCK_PARAMS:
            stocks[ENTREPOTS_ID[tag]] = value
            # log.debug("Product {} : stock_id = {}, value = {}".format(product_infos["name"],ENTREPOTS_ID[tag], value))

    # Les stocks sont rangé par catégories pour des question de limite de nbrs de fichier
    filename_dest = "stock/"+cat_id_dest+"/"+product_ref+".txt"

    rs = []
    #Si le dossier n'existe pas, on le crée
    if not os.path.exists(os.path.dirname(filename_dest)):
        try:
            os.makedirs(os.path.dirname(filename_dest))
        except OSError as exc: # Guard against race condition
            if exc.errno != errno.EEXIST:
                raise

    if cat_id_src:
        filename_src = "stock/"+cat_id_src+"/"+product_ref+".txt"
        # Si le fichier existe, on lit les valeurs du stock precedent
        if (os.path.exists(filename_src)):
            with open(filename_src, 'r') as fp:
                datas = []
                for line in fp:            
                    difference = 0
                    data = line.split(":")
                    difference = int(stocks[data[0]]) - int(data[1])
                    if (difference > 0):
                        change_stock_value(data[0], difference, product_id, "1")
                    elif (difference < 0)  :
                        change_stock_value(data[0], abs(difference), product_id, "-1")
                    # else:
                    #     log.debug("Stock for product {} (id {}) up to date".format(product_infos["name"],product_id))

    # Sinon, crée les movement de stock correspondant
    else:
        for warehouse_id, quantity in stocks.iteritems():
            if (int(quantity) >= 0) :
                change_stock_value(warehouse_id, int(quantity), product_id, "1")
            else:
                change_stock_value(warehouse_id, abs(int(quantity)), product_id, "-1")


    # Dans tout les cas, on (re)ecrit le fichier avec les nouvelles valeurs
    with open(filename_dest, 'w') as fp:
        for warehouse_id, quantity in stocks.iteritems():
            fp.write(warehouse_id+":"+quantity+"\n")
        fp.close()


问题


面经


文章

微信
公众号

扫码关注公众号