pricedb/app.py
def add_price_entity(self, price: dal.Price):
        """ Adds the price """
        from decimal import Decimal

        # check if the price already exists in db.
        repo = self.get_price_repository()
        existing = (
            repo.query
            .filter(dal.Price.namespace == price.namespace)
            .filter(dal.Price.symbol == price.symbol)
            .filter(dal.Price.date == price.date)
            .filter(dal.Price.time == price.time)
            .first()
        )
        if existing:
            # Update existing price.
            new_value = Decimal(price.value) / Decimal(price.denom)
            self.logger.info(f"Exists: {price}")
            if price.currency != existing.currency:
                raise ValueError(
                    f"The currency is different for price {price}!")
            if existing.value != price.value:
                existing.value = price.value
                self.logger.info(f"Updating to {new_value}.")
            if existing.denom != price.denom:
                existing.denom = price.denom
        else:
            # Insert new price
            self.session.add(price)
            self.logger.info(f"Added {price}")
def add_price_entity(self, price: dal.Price):
        """ Adds the price """
        from decimal import Decimal

        # check if the price already exists in db.
        repo = self.get_price_repository()
        existing = (
            repo.query
            .filter(dal.Price.namespace == price.namespace)
            .filter(dal.Price.symbol == price.symbol)
            .filter(dal.Price.date == price.date)
            .filter(dal.Price.time == price.time)
            .first()
        )
        if existing:
            # Update existing price.
            new_value = Decimal(price.value) / Decimal(price.denom)
            self.logger.info(f"Exists: {price}")
            if price.currency != existing.currency:
                raise ValueError(
                    f"The currency is different for price {price}!")
            if existing.value != price.value:
                existing.value = price.value
                self.logger.info(f"Updating to {new_value}.")
            if existing.denom != price.denom:
                existing.denom = price.denom
        else:
            # Insert new price
            self.session.add(price)
            self.logger.info(f"Added {price}")
def add_price_entity ( self , price : dal . Price ) : from decimal import Decimal # check if the price already exists in db. repo = self . get_price_repository ( ) existing = ( repo . query . filter ( dal . Price . namespace == price . namespace ) . filter ( dal . Price . symbol == price . symbol ) . filter ( dal . Price . date == price . date ) . filter ( dal . Price . time == price . time ) . first ( ) ) if existing : # Update existing price. new_value = Decimal ( price . value ) / Decimal ( price . denom ) self . logger . info ( f"Exists: {price}" ) if price . currency != existing . currency : raise ValueError ( f"The currency is different for price {price}!" ) if existing . value != price . value : existing . value = price . value self . logger . info ( f"Updating to {new_value}." ) if existing . denom != price . denom : existing . denom = price . denom else : # Insert new price self . session . add ( price ) self . logger . info ( f"Added {price}" )
Adds the price
Adds the price