According document of 'What’s New In Python 3.7', 'async' are reserved keywords now.

Code in line 105 of 'odoo/addons/base/ir/ir_qweb/assetsbundle.py' 
`def to_html(self, sep=None, css=True, js=True, debug=False, async=False, url_for=(lambda url: url)):`
will throw SyntaxError out if we launch odoo with this update python.
odoo/addons/base/ir/ir_qweb/assetsbundle.py
""" Return the ir.attachment records for a given bundle. This method takes care of mitigating
        an issue happening when parallel transactions generate the same bundle: while the file is not
        duplicated on the filestore (as it is stored according to its hash), there are multiple
        ir.attachment records referencing the same version of a bundle. As we don't want to source
        multiple time the same bundle in our `to_html` function, we group our ir.attachment records
        by file name and only return the one with the max id for each group.
        """
        version = "%" if ignore_version else self.version
        url_pattern = '/web/content/%-{0}/{1}{2}.{3}'.format(version, self.name, '.%' if type == 'css' else '', type)
        self.env.cr.execute("""
             SELECT max(id)
               FROM ir_attachment
              WHERE url like %s
           GROUP BY datas_fname
           ORDER BY datas_fname
         """, [url_pattern])
        attachment_ids = [r[0] for r in self.env.cr.fetchall()]
        return self.env['ir.attachment'].sudo().browse(attachment_ids)
    def save_attachment(self, type, content, inc=None):