Commit Graph

40 Commits

Author SHA1 Message Date
William S Fulton 2598574915 Complete the Python 2 removal and fix issues found reviewing it
Follow-up work on top of the initial Python 2.x removal: it finishes the
removal and fixes several issues found while reviewing the change.

Correctness fixes:
- pyrun.swg: SwigPyPacked_str passed the type name straight to
  PyUnicode_FromFormat as its format string, so a type name containing a
  '%' would be misinterpreted. Use PyUnicode_FromString instead.
- Doc/Manual/Varargs.html: the (...) varargs freearg typemap example lost
  its free() loop when the surrounding Python 2 guard was removed, leaking
  the memory the in typemap allocates. Restore the loop, now unconditional.
- Doc/Manual/Typemaps.html: the PyInt_Check to PyLong_Check substitution
  left two typecheck excerpts reading PyLong_Check || PyLong_Check; collapse
  each back to a single check.

Code generator (Source/Modules/python.cxx):
- Emit the native class X(..., metaclass=_SwigNonDynamicMeta) form for
  nondynamic classes in all three base-list branches (object, Exception and
  explicit bases), and drop the Python 2 _swig_add_metaclass helper.
- Emit a plain import builtins as __builtin__ instead of the Python 2
  try/except import fallback.
- Update a stale Python 2.x comment.

Remove the deprecated embed.i library (it only ever worked with Python 2):
- Delete Lib/python/embed.i and the Lib/python/Makefile.in reference to it.
- Remove the python_static and python_static_cpp targets from
  Examples/Makefile.in and the now-orphaned static: targets that used them
  from the Examples/python example Makefiles.
- Remove the embed.i section from the manual.

Python test suite (Examples/test-suite/python):
- profiletest_runme.py: convert the Python 2 print statements to print().
- doxygen_constructors_runme.py: drop the dead sys.version_info < (3, 0)
  branch, keeping the Python 3 super().__init__() form.
- li_cdata_bytes_runme.py and li_cdata_bytes_cpp_runme.py: drop the dead
  exit-on-Python-2 version guard.
- file_test_runme.py and python_abstractbase_runme.py: drop the now-unused
  import sys left behind by guard removal.

Documentation (Doc/Manual/Python.html):
- Drop the embed.i and SWIG_PYTHON_STRICT_UNICODE_WCHAR sections; the latter
  macro was Python 2 only and no longer exists, wide strings are unicode-only
  by default.
- De-duplicate the %pythonabc example and drop a stale collections.abc
  compatibility note.
- Update the version support statement and other stale Python 2 mentions.

Other cleanups:
- Tools/mkdist.py: raise the minimum Python version check to Python 3.
- Reword stale Python 2 comments in pyrun.swg, pyiterators.swg and
  pycontainer.swg, and fix a PyString_FromFormat left in a pyclasses.swg
  doc comment.
- CHANGES.current: record that Python 2 support has been dropped.

Assisted-by: Claude Code (Opus 4.8)
2026-07-06 23:50:31 +01:00
Julien Schueller f505f2566f Python: Drop PY_VERSION_HEX<3.5 code
Closes #3201
2026-07-06 23:50:30 +01:00
Jonatan Wallmander 51430f7dd9
Python: Fix warnings about implicit type conversions (#3287)
* Python: Fix warnings about implicit type conversions

When compiling with -Wconversion -Wsign-conversion on
gcc, these places resulted in warnings.

Add explicit type casts to be clear to the compiler.

* new_copy_array casts size to size_t

This alleviates warnings when -Wconversion -Wsign-conversion
are enabled.

* Fix various conversions to correct integer signedness

len can be signed as is the case with python's size_t.
This casts it to size_t to avoid compilation warnings.

* Add -Wconversion and -Wsign-conversion compilation flags for tests
2025-12-05 07:30:05 +00:00
William S Fulton 953e280f5e Update Python examples to Visual Studio 2019 project files 2024-10-19 15:45:21 +01:00
William S Fulton 4516ddb8c3 Change Python example to use SWIG_AppendOutput 2024-10-15 08:59:51 +01:00
William S Fulton 462fb665af Update python example for removed t_output_helper 2024-06-15 23:35:31 +01:00
William S Fulton 5b710e3298 Py_DecRef Py_IncRef for examples and html docs 2024-03-24 18:12:21 +00:00
William S Fulton fd846be18b Remove some usage of strdup
To fix visual c++ warning:
  warning C4996: 'strdup': The POSIX name for this item is deprecated.
2022-05-07 07:09:44 +01:00
William S Fulton 89bee6a7fa Modify examples to be both Python 2 and 3 compatible
For removing dependency on 2to3
2020-08-15 16:46:01 +01:00
William S Fulton b0e29fbdf3 Add missing checks for failures in calls to PyUnicode_AsUTF8String.
Previously a seg fault could occur when passing invalid UTF8 strings (low
surrogates), eg passing u"\udcff" to the C layer (Python 3).
2017-12-04 20:14:04 +00:00
William S Fulton 129ef8ea8f Correct docs and examples to call SWIG_fail after setting a Python error
Although 'return NULL' works, it may miss out on some cleanup and NULL
is the wrong value to return in generated code for overloaded functions.
2016-10-23 20:16:35 +01:00
William S Fulton 8e2bc595c6 Remove use of preinst-swig script
Complete the prototype removal in ca1431.

The script prevents SWIGTOOL=gdb from working as gdb can't be used to
debug a shell script, it requires a binary.

Add support for SWIGTOOL in all the examples.

SWIG_LIB_DIR and SWIGEXE must now instead be set by all Makefiles.

See issue #473.
2015-08-21 22:43:17 +01:00
William S Fulton 2b4dda39bb Warning fixes in generated Python code for 64bit Visual C++ on Windows. 2015-07-03 20:59:25 +01:00
Jon Schlueter 7770715457 autopep8 cleanup of Examples/python whitespace
automated cleanup only of the Examples/python example code
2015-05-08 08:46:06 -04:00
William S Fulton ec7e7145aa Portability fixes for python example 2015-04-04 02:17:57 +01:00
Karl Wette f574a34155 Allow examples and test-suite to be built out of source tree
- Examples/Makefile.in rules use SRCDIR as the relative source directory

- ./config.status replicates Examples/ source directory tree in build
  directory, and copies each Makefile to build directory, prefixed with
  a header which sets SRCDIR to source directory

- Examples/test-suite/.../Makefile.in set SRCDIR from Autoconf-set srcdir

- Examples/test-suite/errors/Makefile.in needs to filter out source
  directory from SWIG error messages

- Lua: embedded interpreters are passed location of run-time test

- Python: copy run-time scripts to build directory because of 2to3
  conversion; import_packages example copies __init__.py from source
  directory; test-suite sets SCRIPTDIR to location of run-time tests

- Javascript: binding.gyp renamed to binding.gyp.in so that $srcdir
  can be substituted with SRCDIR; removed './' from require() statements
  so that NODE_PATH can be used to point Node.js to build directory
2014-05-11 23:21:10 +02:00
Olly Betts 2f3bf144c6 Fix assorted comment and documentation typos 2014-02-23 17:15:22 +13:00
William S Fulton 7f95c7bb3e Use a less confusing macro name, SWIG_PYTHON_NO_DEBUG => SWIG_PYTHON_INTERPRETER_NO_DEBUG 2013-06-11 19:15:57 +01:00
William S Fulton 5cdfc503e1 Add SWIG_PYTHON_NO_DEBUG macro for building Debug wrappers against the Python Debug dll 2013-06-11 00:22:21 -07:00
William S Fulton b3ca22dc33 Fix Python examples to compile and run under Python 3 2013-05-26 23:02:13 +01:00
William S Fulton cc4ac0a9e9 Python examples makefiles clean target fixed and use RUNPIPE and tidyup 2013-04-19 22:47:26 +01:00
William S Fulton 78cd350fe9 Fix Visual Studio examples to work when SWIG is unzipped into a directory containing spaces. 2013-01-15 07:18:20 +00:00
William S Fulton 48203afbd0 invoke using swig.exe instead of just swig in Visual Studio project files
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11166 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-03-20 23:54:43 +00:00
William S Fulton 9c53670fed warning fix
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11045 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-09 22:19:06 +00:00
Haoyu Bai 3d8ddfc442 Merged the Python 3.0 support branch. The merging progress is not so smooth, so hope this commit won't make anything broken.
This is the (incomplemete) log produced by svnmerge.py:

Merged revisions 10405-10409,10420-10422,10426,10438,10445,10451,10454-10465,10467,10473-10475,10485,10488-10489,10493-10495,10497,10509-10510,10513-10514,10517,10520,10525,10528-10529,10533-10535,10554-10557,10570,10573,10593,10614,10666-10669,10673,10678,10687,10690,10704-10706,10731,10744,10750-10752,10755,10759,10770,10775-10776,10813,10819 via svnmerge from 
https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-bhy



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10834 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-09-11 17:18:07 +00:00
William S Fulton 532cb45882 eol-style set to CRLF
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10011 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-18 21:20:27 +00:00
John Lenz 6dda6f8321 Remove cvsignore files: this is stored on svn:igonre property now
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9593 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-12-03 08:28:42 +00:00
William S Fulton 6a4eaadc7f *** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9572 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-11-20 21:34:47 +00:00
William S Fulton e1b7dc9de3 Use .pyd instead of .dll as Python-2.5 stops working with dlls
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9570 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-11-20 21:28:16 +00:00
William S Fulton 5e638de46c Correct some comments
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9185 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-07-04 20:48:08 +00:00
William S Fulton 615df3789a Fix for Visual Studio Express 2005 without database support installed - no need to link against database libs
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8742 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-07 20:50:27 +00:00
Marcelo Matus aca35dbcde add %typemap(LANG,..) warning 1387184
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8220 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-05 19:48:55 +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
William S Fulton c47c930f59 fix extern declarations
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7321 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-06-28 21:14:24 +00:00
William S Fulton 49b2144e84 warning fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6628 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-02 21:29:44 +00:00
William S Fulton 5941257668 .cvsignore
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5653 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-20 21:25:32 +00:00
William S Fulton 7381bddd84 Warning fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5604 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-07 21:27:23 +00:00
William S Fulton d66890561e example.dll fixed to _example.dll
Missing quotes for environment variables - fixes problem when it contains a space


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4812 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-05-21 21:24:28 +00:00
William S Fulton b6c618447c VC++ pollution
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4395 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-02-25 22:11:44 +00:00
Dave Beazley 12a43edc2d The great merge
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4141 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2002-11-30 22:01:28 +00:00