def updateAmount(self, newAmount = None):
        if newAmount == None: newAmount = self.amount + 1
        if newAmount < self.min: newAmount = self.min
        if newAmount > self.max: newAmount = self.max
        self.amount = newAmount

        # Figure out the new percent done, round to an integer
        diffFromMin = float(self.amount - self.min)
        fracDone = diffFromMin / float(self.span)
        percentDone = (diffFromMin / float(self.span)) * 100.0
        percentDone = round(percentDone)
        percentDone = int(percentDone)

        # Figure out how many hash bars the percentage should be
        allFull = self.width - 2
        numHashes = (percentDone / 100.0) * allFull
        numHashes = int(round(numHashes))

        # build a progress bar with hashes and spaces
        self.progBar = "[" + '#'*numHashes + ' '*(allFull-numHashes) + "]"

        # figure out where to put the percentage, roughly centered
        percentPlace = (len(self.progBar) / 2) - len(str(percentDone)) 
        percentString = str(percentDone) + "%"

        # slice the percentage into the bar
        self.progBar = self.progBar[0:percentPlace-1] + " " + percentString + " " + self.progBar[percentPlace+len(percentString)+1:]

        # compute time remaining in hours, min, and sec
        current_time = time.time()
        elapsed_time = current_time - self.start_time
        if fracDone > 0.01:
            remaining_time = elapsed_time * (1-fracDone) / fracDone
            hours,minutes,seconds = secToHMS(remaining_time)
            self.time_string = "%02dh %02dm %02ds"%(hours,minutes,seconds)
        else: 
            self.time_string = "--h --m --s"
file_saver is an object with the save() method without parameters
dataset/ETHPy150Open bolme/pyvision/src/pyvision/analysis/progress_bar.py/ProgressBar.updateAmount--crossover with--dataset/ETHPy150Open conan-io/conan/conans/server/service/service.py/FileUploadDownloadService.put_file