1- .. SCons documentation master file, originally created by
2- sphinx-quickstart on Mon Apr 30 09:36:53 2018.
1+ .. SCons documentation master file, originally created by sphinx-quickstart on Mon Apr 30 09:36:53 2018.
32 You can adapt this file completely to your liking, but it should at least
43 contain the root `toctree` directive.
54
65 SCons API Documentation
76=======================
87
98.. Attention ::
10- This is the **internal ** API Documentation for SCons (aka
11- "everything"). It is generated automatically from code docstrings using
12- the `Sphinx <https://www.sphinx-doc.org >`_ documentation generator.
139
14- Any missing/incomplete information is due to shortcomings in the
15- docstrings in the code. To not be too flippant about it, filling
16- in all the docstrings has not always been a priority across the
17- two-plus decades SCons has been in existence (contributions on this
18- front are welcomed). Additionally, for SCons classes which inherit
19- from Python standard library classes (such as ``UserList ``,
20- ``UserDict ``, ``UserString ``), the generated pages will show methods
21- that are inherited, sometimes with no information at all, sometimes
22- with a signature/description that seems mangled: Python upstream has
23- similar limitations as to the quality of dosctrings vs the current
24- standards Sphinx expects. Inherited interfaces from outside SCons
25- code can be identified by the lack of a ``[source] `` button to the
26- right of the method signature.
27-
28- If you are looking for the Public API - the interfaces that have
10+ This is the **internal ** API Documentation for SCons.
11+ It is generated automatically from code docstrings using
12+ the `Sphinx <https://www.sphinx-doc.org >`_ documentation generator,
13+ and covers much more than the Public API.
14+ If you were looking for the Public API - the interfaces that have
2915 long-term consistency guarantees, which you can reliably use when
3016 writing a build system for a project - see the `SCons Reference Manual
3117 <https://scons.org/doc/production/HTML/scons-man.html> `_. Note that
32- what is Public API and what is not is not clearly delineated in these
33- API Docs.
18+ what is Public API and what is not is often not clearly delineated in
19+ these API Docs.
3420
35- The target audience is both developers contributing to SCons itself,
21+ The target audience is developers contributing to SCons itself,
3622 and those writing external Tools, Builders, and other related
3723 functionality for their project, who may need to reach beyond the
3824 Public API to accomplish their tasks. Reaching into internals is fine,
3925 but comes with the usual risks of "things here could change, it's up
4026 to you to keep your code working".
4127
28+ Any missing/incomplete information is due to shortcomings in the
29+ docstrings in the code. Without being flippant, filling
30+ in all the docstrings has not always been a priority across the
31+ two-plus decades SCons has been in existence. Contributions
32+ improving the docstring front are welcome. It is often useful when
33+ making some larger change to fill in docstrings and suitable
34+ type annotations in the code being modified, "leaving the world
35+ a better place", as it were.
36+
37+ Note that the Sphinx configuration is limited, still a work
38+ in progress. SCons classes which inherit from Python standard
39+ library classes (e.g. ``UserList ``, ``UserDict ``, ``UserString ``),
40+ may be allowed to show inherited mmembers; the Python standard library
41+ occasionally has little to no helpful docstring information.
42+ Inherited interfaces from outside SCons code can be identified by the
43+ lack of a ``[source] `` button to the right of the method signature.
44+ Such classes should be evaluated case-by-case and possibly
45+ switched to not show inherited members, depending on which way
46+ seems to provide the more useful result.
4247
4348.. toctree ::
4449 :maxdepth: 2
@@ -55,7 +60,6 @@ SCons API Documentation
5560 SCons.Util
5661 SCons.Variables
5762
58-
5963Indices and Tables
6064==================
6165
0 commit comments