summaryrefslogtreecommitdiff
path: root/setuptools/extension.py
diff options
context:
space:
mode:
authorAnderson Bravalheri <andersonbravalheri@gmail.com>2022-06-14 02:06:49 +0100
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2022-06-14 09:29:52 +0000
commit6e4a1f394de2848f8adf99acc4ca4961b3cb009d (patch)
treeb5edbaf2dba1463d7d2d54dc9531f7d2106ae46f /setuptools/extension.py
parent78436032f9eed6f943074828b7c6ca926d23a280 (diff)
downloadpython-setuptools-git-6e4a1f394de2848f8adf99acc4ca4961b3cb009d.tar.gz
Add docstring documentation to setuptools.Extension
Diffstat (limited to 'setuptools/extension.py')
-rw-r--r--setuptools/extension.py73
1 files changed, 72 insertions, 1 deletions
diff --git a/setuptools/extension.py b/setuptools/extension.py
index f696c9c1..31c3a860 100644
--- a/setuptools/extension.py
+++ b/setuptools/extension.py
@@ -28,7 +28,78 @@ _Extension = get_unpatched(distutils.core.Extension)
class Extension(_Extension):
- """Extension that uses '.c' files in place of '.pyx' files"""
+ """
+ Describes a single extension module.
+
+ This means that all source files will be compiled into a single binary file
+ ``<module path>.<suffix>`` (with ``<module path>`` derived from ``name`` and
+ ``<suffix>`` defined by one of the values in
+ :mod:`importlib.machinery.EXTENSION_SUFFIXES`).
+
+ In the case ``.pyx`` files are passed as ``sources and`` ``Cython`` is **not**
+ installed in the build environment, ``setuptools`` may also try to look for the
+ equivalent ``.cpp`` or ``.c`` files.
+
+ :arg str name:
+ the full name of the extension, including any packages -- ie.
+ *not* a filename or pathname, but Python dotted name
+ :arg list[str] sources:
+ list of source filenames, relative to the distribution root
+ (where the setup script lives), in Unix form (slash-separated)
+ for portability. Source files may be C, C++, SWIG (.i),
+ platform-specific resource files, or whatever else is recognized
+ by the "build_ext" command as source for a Python extension.
+
+ :keyword list[str] include_dirs:
+ list of directories to search for C/C++ header files (in Unix
+ form for portability)
+ :keyword list[tuple[str, str|None]] define_macros:
+ list of macros to define; each macro is defined using a 2-tuple:
+ the first item corresponding to the name of the macro and the second
+ item either a string with its value or None to
+ define it without a particular value (equivalent of "#define
+ FOO" in source or -DFOO on Unix C compiler command line)
+ :keyword list[str] undef_macros:
+ list of macros to undefine explicitly
+ :keyword list[str] library_dirs:
+ list of directories to search for C/C++ libraries at link time
+ :keyword list[str] libraries:
+ list of library names (not filenames or paths) to link against
+ :keyword list[str] runtime_library_dirs:
+ list of directories to search for C/C++ libraries at run time
+ (for shared extensions, this is when the extension is loaded)
+ :keyword list[str] extra_objects:
+ list of extra files to link with (eg. object files not implied
+ by 'sources', static library that must be explicitly specified,
+ binary resource files, etc.)
+ :keyword list[str] extra_compile_args:
+ any extra platform- and compiler-specific information to use
+ when compiling the source files in 'sources'. For platforms and
+ compilers where "command line" makes sense, this is typically a
+ list of command-line arguments, but for other platforms it could
+ be anything.
+ :keyword list[str] extra_link_args:
+ any extra platform- and compiler-specific information to use
+ when linking object files together to create the extension (or
+ to create a new static Python interpreter). Similar
+ interpretation as for 'extra_compile_args'.
+ :keyword list[str] export_symbols:
+ list of symbols to be exported from a shared extension. Not
+ used on all platforms, and not generally necessary for Python
+ extensions, which typically export exactly one symbol: "init" +
+ extension_name.
+ :keyword list[str] swig_opts:
+ any extra options to pass to SWIG if a source file has the .i
+ extension.
+ :keyword list[str] depends:
+ list of files that the extension depends on
+ :keyword str language:
+ extension language (i.e. "c", "c++", "objc"). Will be detected
+ from the source extensions if not provided.
+ :keyword bool optional:
+ specifies that a build failure in the extension should not abort the
+ build process, but simply not install the failing extension.
+ """
def __init__(self, name, sources, *args, **kw):
# The *args is needed for compatibility as calls may use positional