aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/wrap/wraptool.py
AgeCommit message (Collapse)AuthorFilesLines
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz1-8/+8
performed by running "pyupgrade --py36-plus" and committing the results
2020-09-08typing: fully annotate wrapDaniel Mensinger1-18/+24
2020-01-27Always disable interpolation for ini parsers.Jussi Pakkanen1-1/+1
2019-12-06Update Python2 syntax to Python3 syntax in WrapMichael Brockus1-8/+8
2019-11-07wrap.py: catch connection error with WrapExceptionMichael Hirsch, Ph.D1-2/+2
fixes #6130 wrap: more error verbosity
2019-11-07wrap.py: apply type annotation, modernize syntaxMichael Hirsch, Ph.D1-24/+17
correct syntax issues, missing imports revealed by type annotation checking
2019-04-29Fixed unnecessary .items()Daniel Mensinger1-1/+1
2018-12-02Add 'meson subprojects update' commandXavier Claessens1-7/+12
This is inspired by gst-build's git-update script.
2018-10-04Use a single ArgumentParser for all subcommandsXavier Claessens1-5/+1
This has the adventage that "meson --help" shows a list of all commands, making them discoverable. This also reduce the manual parsing of arguments to the strict minimum needed for backward compatibility.
2018-08-22Remove useless __main__ in files that cannot be executedXavier Claessens1-3/+1
2018-08-17wraptool: fix manual selection of wrap file to promoteDaniel Pirch1-12/+15
Fixed manually promoting wrap files with a full path, e.g. `meson wrap promote subprojects/s1/subprojects/projname.wrap`, which resulted in an error before (new test added: `./run_unittests.py AllPlatformTests.test_subproject_promotion_wrap`). Additionally, running promote with an invalid subproject path now fails properly. Before, it just silently did nothing (added to test: `./run_unittests.py AllPlatformTests.test_subproject_promotion`).
2018-06-06wraptool: Convert to argparseXavier Claessens1-62/+39
2018-01-30Use os.path: basename() and dirname() instead of split()Aleksey Filippov1-2/+2
According to Python documentation[1] dirname and basename are defined as follows: os.path.dirname() = os.path.split()[0] os.path.basename() = os.path.split()[1] For the purpose of better readability split() is replaced by appropriate function if only one part of returned tuple is used. [1]: https://docs.python.org/3/library/os.path.html#os.path.split
2018-01-06Add promote to list of wrap commands.Jussi Pakkanen1-0/+1
2017-12-17Also promote wrap files.Jussi Pakkanen1-5/+9
2017-12-17Print instructions on how to promote subsubprojects.Jussi Pakkanen1-20/+3
2017-12-17Add functionality to promote nested dependencies to top level.Jussi Pakkanen1-0/+50
2017-05-02Don't use len() to test emptiness vs not emptinessDylan Baker1-2/+2
Meson has a common pattern of using 'if len(foo) == 0:' or 'if len(foo) != 0:', however, this is a common anti-pattern in python. Instead tests for emptiness/non-emptiness should be done with a simple 'if foo:' or 'if not foo:' Consider the following: >>> import timeit >>> timeit.timeit('if len([]) == 0: pass') 0.10730923599840025 >>> timeit.timeit('if not []: pass') 0.030033907998586074 >>> timeit.timeit('if len(['a', 'b', 'c', 'd']) == 0: pass') 0.1154778649979562 >>> timeit.timeit("if not ['a', 'b', 'c', 'd']: pass") 0.08259823200205574 >>> timeit.timeit('if len("") == 0: pass') 0.089759664999292 >>> timeit.timeit('if not "": pass') 0.02340641999762738 >>> timeit.timeit('if len("foo") == 0: pass') 0.08848102600313723 >>> timeit.timeit('if not "foo": pass') 0.04032287199879647 And for the one additional case of 'if len(foo.strip()) == 0', which can be replaced with 'if not foo.isspace()' >>> timeit.timeit('if len(" ".strip()) == 0: pass') 0.15294511600222904 >>> timeit.timeit('if " ".isspace(): pass') 0.09413968399894657 >>> timeit.timeit('if len(" abc".strip()) == 0: pass') 0.2023209120015963 >>> timeit.timeit('if " abc".isspace(): pass') 0.09571301700270851 In other words, it's always a win to not use len(), when you don't actually want to check the length.
2017-01-18cleanup: Remove redundant parenthesesMike Sinkovsky1-2/+2
2016-12-18remove shebang from wraptoolIgor Gnatenko1-2/+0
meson.noarch: E: non-executable-script /usr/lib/python3.5/site-packages/mesonbuild/wrap/wraptool.py 644 /usr/bin/python3 Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2016-08-27Use context manager for file I/O.Elliott Sales de Andrade1-2/+4
There are a few cases where a context manager cannot be used, such as the logger.
2016-01-17Some more command line guarding.Jussi Pakkanen1-1/+1
2016-01-16Renamed meson package to mesonbuild so that we can have a script named meson ↵Jussi Pakkanen1-0/+200
in the same toplevel dir.