Commit Graph

21 Commits

Author SHA1 Message Date
William S Fulton afc39844b4 [Python] Add %pythonstubcode and %pythonstubbegin directives
These are the .pyi stub file equivalents of %pythoncode and %pythonbegin,
for adding Python code to the stub file generated by the -pyi and -pyifile
options. They do nothing unless a stub file is being generated.

%pythonstubcode inserts the code at the point the directive appears,
indenting it into the class body when used inside a class. %pythonstubbegin
inserts the code just after the SWIG banner, before any real code.

The stub file is generated independently of the .py file, so code added with
%pythoncode or %pythonbegin does not appear in it. Classes configured with
%pythonabc use names from collections.abc as generated base classes and
pyabc.i imports this module into the .py file, but a separately generated
stub had no import, leaving its base class unresolved. Add the equivalent
%pythonstubcode block to pyabc.i.

Extend the python_pyi test with a collections.abc base class and blocks
exercising both new directives.

See #3473.

Assisted-by: Claude Code (Opus 5)
2026-08-04 23:41:57 +01:00
Olly Betts e4fceee12f Hard-wire -modern and -modernargs on
What SWIG calls "modern" classes are supported by Python 2.3 and up
which means they're supported by all the Python versions we aim to
support in 4.0.0.

 Conflicts:
	Source/Modules/python.cxx

This is a cherry-pick and merge from the patch in #1261
2018-10-12 07:10:47 +01:00
luz.paz 60dfa31a67 Misc. typos
found via `codespell` and `grep`
2018-05-17 10:04:23 -04:00
William S Fulton 9d87b9f099 Revert introduction of python:defaultargs feature
See issue #294
2015-01-12 21:35:47 +00:00
William S Fulton 38ba81811e Fix Python default argument handing broken since swig-3.0.3
Default values are no longer generated as Python code by default.
They must be explicitly turned on using the "python:defaultargs" feature.

Closes #294
Closes #296

The problems in these two issues when "python:defaultargs" is turned
on still need to be fixed and should be addressed in separate patches.
The important thing is the default code generation is now fixed.
2015-01-09 00:34:17 +00:00
William S Fulton d0af4f50d3 Add %pythonbegin directive.
For adding code at the beginning of the generated .py file.
2013-07-05 06:30:16 +01:00
Olly Betts be3662e29b Fix a few typos in comments.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9263 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-09-05 16:38:45 +00:00
Marcelo Matus 735ac78241 fix mispelled prepend, reported by Jeremy McCormick
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9007 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-03-16 01:44:26 +00:00
Marcelo Matus 750c9c1efb move %extend_smart_pointer to pyuserdir.swg
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8713 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-05 03:07:28 +00:00
Marcelo Matus 146958ad78 add and extend missing/deleted docs for the pythonappend/pythonpreppend features and the new directive forms %pythonappend/%pythonpreppend
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8573 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-27 18:47:15 +00:00
Marcelo Matus dd6954ba6d add %kwargs
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8152 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-31 10:43:59 +00:00
Marcelo Matus 0e4b388ec9 add implicitconv support and cosmetics for cast rank
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8095 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-27 22:06:26 +00:00
Marcelo Matus 2eeef5275d simplify the thread implementation, use feature 'nothread' to disable threads instead of 'thread' to enable them, plus other fixes around threads
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7933 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-06 19:35:03 +00:00
Marcelo Matus 0fd2fe23cf add thread support based in proposal #398495 by Joseph Winston
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7929 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-06 06:39:24 +00:00
Marcelo Matus 7e5e4fd1f9 massive typemap unification
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7676 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-18 13:24:15 +00:00
Marcelo Matus 54ba818937 fixes for new flag attribute convention
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7605 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-07 13:19:06 +00:00
William S Fulton 90db4bb7b3 remove %pythondynamic - it didn't work properly - use %pythonnondynamic instead
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7580 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-04 20:14:34 +00:00
Marcelo Matus 02a61719bd add -nortti option in python, to avoid using RTTI, mainly with directors
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6999 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-02-25 00:47:10 +00:00
Marcelo Matus c7982bbdc8 make %callback more uniform and usable
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6435 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-18 07:35:18 +00:00
Marcelo Matus a4a7a2ff1f better error messages, more comments, clean up for the next major modifications
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6284 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-02 01:43:17 +00:00
Marcelo Matus 3d5d0f535a cleaning + comments, and add the nondynamic feature handlers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6266 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-09-26 01:00:28 +00:00