summaryrefslogtreecommitdiffstats
path: root/SCons/Builder.py
Commit message (Collapse)AuthorAgeFilesLines
* Integrate `from __future__ import annotations`Thaddeus Crews2024-11-161-3/+4
|
* Tweak some things about Command() docsMats Wichmann2024-05-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjust the description of the Command function (and builder entry), mainly to try out new terminology. We've said it's not really a builder, but it feels better to me to admit it is *exactly* a builder call, just not to one of the existing named builders. So the term introduced is "anonymous builder". Changes in docstring for Command, too, plus a little tweak to kwarg processing. This change actually started with reformatting some examples in the manpage, which used Command, which used the chdir argument which didn't seem to be mentioned in the description of how to use Command, which lists four keyword args and says all the rest are treated as construction variable settings (not true for chdir, which isn't one of the four). That led to thinking about rewording. The original code reformatting changes, no longer directly related to the current change subject, are left in just because they seem low burden, tough could back them out if it makes reviewing to hard. A couple of other small tweaks: * some places referred to a section named "File and Directory Nodes" but it's no longer named that. Actual links to the section updated fine when it was renamed, but in Environment.xml, which produces shared content, you can't use manpage-specific links, so the _textual_ references needed updating. * the code example for a warning was moved inside the warning - the effect on output is just an indent to match the warning. * Configure used both terms "custom checks" and "custom tests", now only the former; plus a link reference added. Signed-off-by: Mats Wichmann <mats@linux.com>
* Implement framework for hinting complex typesThaddeus Crews2024-01-151-1/+3
| | | | • Showcase potential with `ExecutorType`
* Allow PathLib objects in sourcesMats Wichmann2023-08-231-0/+7
| | | | | | | | | | | | Changes BuilderBase._adjustixes() to try converting the files arguments to path string - in a way that doesn't flip an existing SCons Node back to a string. Unittest for _adjustixes is added to validate. Fixes #4398 Signed-off-by: Mats Wichmann <mats@linux.com>
* Followon to PR #4348: more bool fixesMats Wichmann2023-06-161-3/+3
| | | | | | | | | | | | | | Manually fixed up some things related to bool, e.g. simple functions which just did "return 1" were interpreted by the tool as returning int, when bool was really the intent. Functions/methods named like "is*", "has*", "exists", "rexists" (and others) are now pretty consistently marked as returning bool. A couple of minor alignments of branched definitions, and a couple of docstring adjustments made. If Tools which had old heading style were touched, they got the new style. Signed-off-by: Mats Wichmann <mats@linux.com>
* Add some cheap return and parameter annotationsMats Wichmann2023-05-011-21/+21
| | | | | | | | | | | | | | | | | Use: https://github.com/JelleZijlstra/autotyping to add "safe" return annotations. Where a parameter has a default value that is an obvious scalar type (bool, int, str, etc.) add those annotations as well. Also fixed two small bugs that popped up when sanity-checking with mypy. One in FortranCommon, where a return had been previously annotated to be a tuple of Action, which should be ActionBase - Action is the factory function, not the base class. The other was a typo in the error raised in _add_cppdefines - the message was formatted with the value of "define" which should have been "defines". Signed-off-by: Mats Wichmann <mats@linux.com>
* Use super call instead of direct class callMats Wichmann2022-03-151-6/+7
| | | | | | | | | - super used where direct call to superclass existed - convert a few older-style super() (two-argument) uses - in a few places, where there was an intersection with a super change, variables that override a builtin (e.g. "dict") were renamed. Signed-off-by: Mats Wichmann <mats@linux.com>
* Add rest of comparison ops to EmitterProxyMats Wichmann2021-08-281-1/+9
| | | | | | | | Python 3 expects that a full set of rich comparison operators be implemented if any of them are. A checked complained that __lt__ existed but the class was incomplete because le, gt and ge did not. Signed-off-by: Mats Wichmann <mats@linux.com>
* fixed minor issues related to is_conftest for PRDaniel Moody2021-07-211-1/+1
|
* make sure multi target and intermediate SConf files are mark is_conftestDaniel Moody2021-07-201-0/+4
|
* Fix some imports and other checker warningsMats Wichmann2021-05-051-2/+2
| | | | | | | | | | | | | * Removed a number of imports reported as unused. * Reorganize imports in a few places. * Checker reported warnings problems ("Instantiating an exception, but not raising it, has no effect"): serveral tool modules instantiated a warning class thinking (?) it would issue the warning; changed these to the standard use - calling the warn() function with the warnclass as an arg. * Tool modules that were touched had the copyright header munging applied. * Removed irritating "####" lines from gettext and msgfmt tools. Signed-off-by: Mats Wichmann <mats@linux.com>
* Merge remote-tracking branch 'upstream/master' into reimplement_soname_soversionWilliam Deegan2021-01-151-4/+1
|\
| * Work around Py3.10 optimizing out a builder testMats Wichmann2021-01-121-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | BuilderBase class traps __bool__ call and raises InternalError. On Py 3.10a the unit test for this got optimized out, avoid this. While we're at it, eliminate remaining references to __nonzero__, which was a Py2-ism, replaced by __bool__. Closes #3860 Signed-off-by: Mats Wichmann <mats@linux.com>
* | Address sider issuesWilliam Deegan2020-12-211-1/+1
| |
* | Merge remote-tracking branch 'upstream/master' into reimplement_soname_soversionWilliam Deegan2020-12-201-24/+23
|\ \ | |/
| * Update some copyright strings and drop __revision__ [skip appveyor]Mats Wichmann2020-09-231-24/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Touches the first and second levels of SCons (except SCons.Tool), not tests or docs which remain TODO. Make sure docstring is first non-comment content, eliminate cases where docstring is set elsewhere but assigns to __doc__ - this approach of course worked inside Python, but confuses various tools. Some module-level docstrings modified a bit, in particular the convention of having the name of the module as the first line is dropped, replaced by a summary description going there instead - this improves the look in the API Docs, which otherwise display something like: SCons.Foo - SCons.Foo Signed-off-by: Mats Wichmann <mats@linux.com>
* | docstrings and minor code cleanupWilliam Deegan2020-12-081-0/+1
|/
* classes no longer explicitly inherit from objectMats Wichmann2020-05-241-3/+3
| | | | | | In Python3 this is the default. Signed-off-by: Mats Wichmann <mats@linux.com>
* Reorganize the repo. Moved src/engine/SCons to ./SCons to be more in line ↵William Deegan2020-05-061-0/+896
with current python packaging practices