Best Python code snippet using avocado_python
progress.py
Source:progress.py  
...31        self.span = maxValue - minValue32        self.width = totalWidth33        self.amount = 0       # When amount == max, we are 100% done 34        self.autoreturn = autoreturn35        self.update_amount(0)  # Build progress bar string36    def update_amount(self, newAmount=0):37        if newAmount < self.min: newAmount = self.min38        if newAmount > self.max: newAmount = self.max39        self.amount = newAmount40        # Figure out the new percent done, round to an integer41        diffFromMin = float(self.amount - self.min)42        try:43            percentDone = (diffFromMin / float(self.span)) * 100.044        except ZeroDivisionError:45            percentDone = 10046        percentDone = int(percentDone)47        # Figure out how many hash bars the percentage should be48        allFull = self.width - 249        numHashes = (percentDone / 100.0) * allFull50        numHashes = int(round(numHashes))51        # build a progress bar with hashes and spaces52        self.progBar = "[" + '=' * numHashes + ' ' * (allFull - numHashes) + "]"53        # figure out where to put the percentage, roughly centered54        percentPlace = (len(self.progBar) / 2.0) - len(str(percentDone)) 55        percentPlace = int(percentPlace)56        percentString = " %s%% " % percentDone57        # slice the percentage into the bar58        self.progBar = ''.join((self.progBar[0:percentPlace], 59                                percentString,60                                self.progBar[percentPlace+len(percentString):]))61        if self.autoreturn:62            self.progBar = '\r' + self.progBar63    def __str__(self):64        return str(self.progBar)65    def display(self, stream=sys.stdout):66        stream.write(str(self))67        stream.flush()68    def finish(self, stream=sys.stdout):69        stream.write('\r' + ' ' * self.width + '\r')70        stream.flush()71def autoprogressbar(seq, **progressbar_params):72    """Returns an iterator over seq while displaying a progress bar of73    the appropriate length.  Usage is simple:74    for x in autoprogressbar(some_seq):75        f(x)76    """77    length = len(seq)78    bar = ProgressBar(maxValue=length, **progressbar_params)79    for i, item in enumerate(seq):80        bar.update_amount(i)81        if i < length:82            bar.display()83        else:84            bar.finish()85        yield item86    bar.finish()87if __name__ == "__main__":88    import time, sys89    prog = ProgressBar(0, 100, 34, autoreturn=False)90    prog2 = ProgressBar(0, 100, 34)91    for i in range(1001):92        prog.update_amount(i / 10.0)93        prog2.update_amount(100 - (i / 5.0))94        sys.stdout.write("\r%s" % prog)95        sys.stdout.write("%s" % prog2)96        sys.stdout.flush()...account_move_force_update.py
Source:account_move_force_update.py  
1from odoo import fields, models, api2class AccountMoveForceUpdateAmount(models.TransientModel):3    _name = "account.move.force.update.amount"4    def _default_account_move(self):5        if self._context.get('active_ids'):6            return self.env['account.move'].browse(self._context.get('active_ids'))7    account_moves = fields.Many2many('account.move',8                                     string="Record", required=True, default=_default_account_move)9    update_amount = fields.Float('New Amount', store=True, help='Update New Amount', digits=(16, 2))10    @api.model11    def default_get(self, fields):12        defaults = super(AccountMoveForceUpdateAmount, self).default_get(fields)13        default_account_move_id = self.env.context.get('default_account_move_id')14        if default_account_move_id:15            account_move_line = self.env['account.move.line'].sudo().search([('move_id', '=', default_account_move_id)])16            sample_update_amount = 017            for e in account_move_line:18                if e['debit'] is not None and e['debit'] > e['credit'] and sample_update_amount == 0:19                    sample_update_amount = e['debit']20            defaults['update_amount'] = sample_update_amount21        return defaults22    def force_update_amount_now(self):23        self.env.cr.execute("""update account_move set amount_total_signed=%s where id=%s""",24                            (self.update_amount, self.account_moves.id,))25        self.env.cr.execute(26            """update account_move_line set debit=%s,balance=%s where debit > credit and move_id=%s""",27            (self.update_amount, self.update_amount, self.account_moves.id,))28        self.env.cr.execute(29            """update account_move_line set credit=%s,balance=%s where credit > debit and move_id=%s""",30            (self.update_amount, -self.update_amount, self.account_moves.id,))31        self.env.cr.execute(32            """update account_move_line set amount_residual=%s where debit > credit and move_id=%s and amount_residual_currency>0""",33            (self.update_amount, self.account_moves.id,))34        self.env.cr.execute(35            """update account_move_line set amount_residual=%s where credit > debit and move_id=%s and amount_residual_currency<0""",36            (-self.update_amount, self.account_moves.id,))37        # attendee = self.env['calendar.attendee'].sudo().search([('partner_id', '=', self.env['res.users'].sudo().browse(38        #     self._uid).partner_id.id), ('state', '!=', 'accepted'),39        #                                                         ('event_id', 'in', tuple(self.calendar_events.ids))])40        # if attendee:41        #     attendee.do_accept()42        # return {'type': 'ir.actions.act_window_close'}...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
