Skip to content

Commit

Permalink
mako: update version to 1.2.1 from 1.2.0
Browse files Browse the repository at this point in the history
This is to import sqlalchemy/mako#361.

This update shows 14% improvement in walltime and uses only 80% of cpu
time compared to current HEAD.

```
$ hyperfine --parameter-list branch origin/main,mako_optimize --setup 'git checkout {branch}' 'python3 ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py --web_idl_database gen/third_party/blink/renderer/bindings/web_idl_database.pickle --root_src_dir ../../ --root_gen_dir gen --output_reldir core=third_party/blink/renderer/bindings/core/v8/ --output_reldir modules=third_party/blink/renderer/bindings/modules/v8/ enumeration callback_function callback_interface dictionary interface namespace observable_array typedef union'
Benchmark 1: python3 ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py --web_idl_database gen/third_party/blink/renderer/bindings/web_idl_database.pickle --root_src_dir ../../ --root_gen_dir gen --output_reldir core=third_party/blink/renderer/bindings/core/v8/ --output_reldir modules=third_party/blink/renderer/bindings/modules/v8/ enumeration callback_function callback_interface dictionary interface namespace observable_array typedef union
  Time (mean ± σ):     33.499 s ±  0.289 s    [User: 930.572 s, System: 20.354 s]
  Range (min … max):   32.971 s … 33.915 s    10 runs

Benchmark 2: python3 ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py --web_idl_database gen/third_party/blink/renderer/bindings/web_idl_database.pickle --root_src_dir ../../ --root_gen_dir gen --output_reldir core=third_party/blink/renderer/bindings/core/v8/ --output_reldir modules=third_party/blink/renderer/bindings/modules/v8/ enumeration callback_function callback_interface dictionary interface namespace observable_array typedef union
  Time (mean ± σ):     29.261 s ±  0.298 s    [User: 737.851 s, System: 20.448 s]
  Range (min … max):   28.737 s … 29.835 s    10 runs

Summary
  'python3 ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py --web_idl_database gen/third_party/blink/renderer/bindings/web_idl_database.pickle --root_src_dir ../../ --root_gen_dir gen --output_reldir core=third_party/blink/renderer/bindings/core/v8/ --output_reldir modules=third_party/blink/renderer/bindings/modules/v8/ enumeration callback_function callback_interface dictionary interface namespace observable_array typedef union' ran
    1.14 ± 0.02 times faster than 'python3 ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py --web_idl_database gen/third_party/blink/renderer/bindings/web_idl_database.pickle --root_src_dir ../../ --root_gen_dir gen --output_reldir core=third_party/blink/renderer/bindings/core/v8/ --output_reldir modules=third_party/blink/renderer/bindings/modules/v8/ enumeration callback_function callback_interface dictionary interface namespace observable_array typedef union'
```

Bug: 1214033
Change-Id: I54eab0e27872d40256d3ecb04c47c876652b5596
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3685551
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1019918}
NOKEYCHECK=True
GitOrigin-RevId: c4edcb406fe832cad04012fcbe000b8c09a836a2
  • Loading branch information
Takuto Ikuta authored and Copybara-Service committed Jul 1, 2022
1 parent 4ed7f2e commit 915cacc
Show file tree
Hide file tree
Showing 33 changed files with 102 additions and 77 deletions.
10 changes: 5 additions & 5 deletions mako/README.chromium
@@ -1,20 +1,20 @@
Name: Mako Templates for Python
Short Name: python-mako
URL: https://www.makotemplates.org
Version: 1.2.0
Date: March 11, 2022
Version: 1.2.1
Date: July 1, 2022
License: MIT
License File: NOT_SHIPPED
Security Critical: no

Description:
Template engine in Python, used for code generation in Blink.

Source: https://files.pythonhosted.org/packages/50/ec/1d687348f0954bda388bfd1330c158ba8d7dea4044fc160e74e080babdb9/Mako-1.2.0.tar.gz
SHA-256: 9a7c7e922b87db3686210cf49d5d767033a41d4010b284e747682c92bddd8b39
Source: https://files.pythonhosted.org/packages/ad/dd/34201dae727bb183ca14fd8417e61f936fa068d6f503991f09ee3cac6697/Mako-1.2.1.tar.gz
SHA-256: f054a5ff4743492f1aa9ecc47172cb33b42b9d993cffcc146c9de17e717b0307

Local Modifications:
* add DIR_METADATA, OWNERS, README.chromium, and .gitattributes files in this directory.
* run following commands to pass PRESUBMIT.
$ rm -rf mako/doc/ mako/example/ mako/Mako.egg-info mako/PKG-INFO
$ rm -rf mako/doc/ mako/examples/ mako/Mako.egg-info mako/PKG-INFO
$ chmod -x mako/mako/cmd.py
4 changes: 2 additions & 2 deletions mako/mako/LICENSE
@@ -1,4 +1,4 @@
Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>.
Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
Expand All @@ -16,4 +16,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
4 changes: 2 additions & 2 deletions mako/mako/mako/__init__.py
@@ -1,8 +1,8 @@
# mako/__init__.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php


__version__ = "1.2.0"
__version__ = "1.2.1"
2 changes: 1 addition & 1 deletion mako/mako/mako/_ast_util.py
@@ -1,5 +1,5 @@
# mako/_ast_util.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ast.py
@@ -1,5 +1,5 @@
# mako/ast.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/cache.py
@@ -1,5 +1,5 @@
# mako/cache.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/cmd.py
@@ -1,5 +1,5 @@
# mako/cmd.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/codegen.py
@@ -1,5 +1,5 @@
# mako/codegen.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/compat.py
@@ -1,5 +1,5 @@
# mako/compat.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/exceptions.py
@@ -1,5 +1,5 @@
# mako/exceptions.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/autohandler.py
@@ -1,5 +1,5 @@
# ext/autohandler.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/babelplugin.py
@@ -1,5 +1,5 @@
# ext/babelplugin.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/beaker_cache.py
@@ -1,5 +1,5 @@
# ext/beaker_cache.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/extract.py
@@ -1,5 +1,5 @@
# ext/extract.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/linguaplugin.py
@@ -1,5 +1,5 @@
# ext/linguaplugin.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/preprocessors.py
@@ -1,5 +1,5 @@
# ext/preprocessors.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/pygmentplugin.py
@@ -1,5 +1,5 @@
# ext/pygmentplugin.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/ext/turbogears.py
@@ -1,5 +1,5 @@
# ext/turbogears.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/filters.py
@@ -1,5 +1,5 @@
# mako/filters.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
9 changes: 4 additions & 5 deletions mako/mako/mako/lexer.py
@@ -1,5 +1,5 @@
# mako/lexer.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down Expand Up @@ -74,12 +74,11 @@ def match_reg(self, reg):
(start, end) = match.span()
self.match_position = end + 1 if end == start else end
self.matched_lineno = self.lineno
lines = re.findall(r"\n", self.text[mp : self.match_position])
cp = mp - 1
while cp >= 0 and cp < self.textlength and self.text[cp] != "\n":
cp -= 1
if cp >= 0 and cp < self.textlength:
cp = self.text[: cp + 1].rfind("\n")
self.matched_charpos = mp - cp
self.lineno += len(lines)
self.lineno += self.text[mp : self.match_position].count("\n")
return match

def parse_until_text(self, watch_nesting, *text):
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/lookup.py
@@ -1,5 +1,5 @@
# mako/lookup.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/parsetree.py
@@ -1,5 +1,5 @@
# mako/parsetree.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
28 changes: 19 additions & 9 deletions mako/mako/mako/pygen.py
@@ -1,5 +1,5 @@
# mako/pygen.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down Expand Up @@ -43,6 +43,15 @@ def __init__(self, stream):
# source lines
self.source_map = {}

self._re_space_comment = re.compile(r"^\s*#")
self._re_space = re.compile(r"^\s*$")
self._re_indent = re.compile(r":[ \t]*(?:#.*)?$")
self._re_compound = re.compile(r"^\s*(if|try|elif|while|for|with)")
self._re_indent_keyword = re.compile(
r"^\s*(def|class|else|elif|except|finally)"
)
self._re_unindentor = re.compile(r"^\s*(else|elif|except|finally).*\:")

def _update_lineno(self, num):
self.lineno += num

Expand Down Expand Up @@ -86,8 +95,8 @@ def writeline(self, line):

if (
line is None
or re.match(r"^\s*#", line)
or re.match(r"^\s*$", line)
or self._re_space_comment.match(line)
or self._re_space.match(line)
):
hastext = False
else:
Expand Down Expand Up @@ -121,12 +130,12 @@ def writeline(self, line):
# note that a line can both decrase (before printing) and
# then increase (after printing) the indentation level.

if re.search(r":[ \t]*(?:#.*)?$", line):
if self._re_indent.search(line):
# increment indentation count, and also
# keep track of what the keyword was that indented us,
# if it is a python compound statement keyword
# where we might have to look for an "unindent" keyword
match = re.match(r"^\s*(if|try|elif|while|for|with)", line)
match = self._re_compound.match(line)
if match:
# its a "compound" keyword, so we will check for "unindentors"
indentor = match.group(1)
Expand All @@ -137,9 +146,7 @@ def writeline(self, line):
# its not a "compound" keyword. but lets also
# test for valid Python keywords that might be indenting us,
# else assume its a non-indenting line
m2 = re.match(
r"^\s*(def|class|else|elif|except|finally)", line
)
m2 = self._re_indent_keyword.match(line)
if m2:
self.indent += 1
self.indent_detail.append(indentor)
Expand Down Expand Up @@ -167,7 +174,7 @@ def _is_unindentor(self, line):

# if the current line doesnt have one of the "unindentor" keywords,
# return False
match = re.match(r"^\s*(else|elif|except|finally).*\:", line)
match = self._re_unindentor.match(line)
# if True, whitespace matches up, we have a compound indentor,
# and this line has an unindentor, this
# is probably good enough
Expand All @@ -193,6 +200,9 @@ def _indent_line(self, line, stripspace=""):
stripspace is a string of space that will be truncated from the
start of the line before indenting."""
if stripspace == "":
# Fast path optimization.
return self.indentstring * self.indent + line

return re.sub(
r"^%s" % stripspace, self.indentstring * self.indent, line
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/pyparser.py
@@ -1,5 +1,5 @@
# mako/pyparser.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/template.py
@@ -1,5 +1,5 @@
# mako/template.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
10 changes: 10 additions & 0 deletions mako/mako/mako/testing/fixtures.py
Expand Up @@ -80,6 +80,16 @@ def _do_test(
output = filters(output)
eq_(output, expected)

def indicates_unbound_local_error(self, rendered_output, unbound_var):
var = f"&#39;{unbound_var}&#39;"
error_msgs = (
# < 3.11
f"local variable {var} referenced before assignment",
# >= 3.11
f"cannot access local variable {var} where it is not associated",
)
return any((msg in rendered_output) for msg in error_msgs)


class PlainCacheImpl(CacheImpl):
"""Simple memory cache impl so that tests which
Expand Down
2 changes: 1 addition & 1 deletion mako/mako/mako/util.py
@@ -1,5 +1,5 @@
# mako/util.py
# Copyright 2006-2021 the Mako authors and contributors <see AUTHORS file>
# Copyright 2006-2022 the Mako authors and contributors <see AUTHORS file>
#
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
Expand Down
7 changes: 5 additions & 2 deletions mako/mako/setup.cfg
Expand Up @@ -8,7 +8,7 @@ url = https://www.makotemplates.org/
author = Mike Bayer
author_email = mike@zzzcomputing.com
license = MIT
license_file = LICENSE
license_files = LICENSE
classifiers =
Development Status :: 5 - Production/Stable
License :: OSI Approved :: MIT License
Expand Down Expand Up @@ -69,9 +69,12 @@ tag_build =
tag_date = 0

[tool:pytest]
addopts = --tb native -v -r fxX -W error
addopts = --tb native -v -r fxX -p warnings
python_files = test/*test_*.py
python_classes = *Test
filterwarnings =
error::DeprecationWarning:test
error::DeprecationWarning:mako

[upload]
sign = 1
Expand Down

0 comments on commit 915cacc

Please sign in to comment.