Commit Graph

329 Commits

Author SHA1 Message Date
rdb e01cb590de Merge branch 'release/1.10.x' 2023-10-13 23:24:48 +02:00
rdb c45e14a563 interrogatedb: Switch T_OBJECT to T_OBJECT_EX for this_metatype
T_OBJECT has been deprecated.
2023-10-13 21:21:29 +02:00
Mitchell Stokes 893f5ce492 Fix assert on Py_SIZE(long) when using Python 3.12
Starting with Python 3.12, passing a PyLong into Py_SIZE() triggers an
assertion. PyLong (and the whole C API) is transitioning to be more
opaque and expose fewer implementation details.
2023-10-13 10:54:33 +02:00
rdb 3160d7f3e9 py_panda: Don't use _PyUnicode_EqualToASCIIString in Python 3.13+
See #1523
2023-08-03 22:22:45 +02:00
Disyer 596ff9ddb8 python: Remove usage of private _PyUnicode C API calls 2023-08-03 21:35:33 +03:00
rdb 115a716a7d Implement support for custom TypedWritable subclasses in Python
Fixes #1495
2023-07-26 19:55:40 +02:00
rdb a9e9cfae1c py_panda: Fix definition of _PyErr_OCCURRED for Python >3.12.0a5
It should not be redefined for Python versions after 3.3.3, and if it's not defined by Python, it should just map to PyErr_Occurred()

See also #1457
2023-02-12 13:22:16 +01:00
Disyer af4a1bc7a9 python: Use public PyErr_Occurred API instead of private macro
The _PyErr_OCCURRED macro was removed in Python 3.10, so we shouldn't keep any compat code left around for it
2023-02-12 02:36:57 +02:00
rdb fdcfaf69b0 interrogate: Optimizate creating Python wrapper instances
Fewer function pointer calls by moving the wrapper creation logic to the downcast function

This also paves the way for some classes to have custom wrapper creation logic
2022-12-15 20:25:48 +01:00
rdb a5610f217e Merge branch 'release/1.10.x' into incoming 2022-11-29 20:58:51 +01:00
rdb 50cfdebd9c pstats: Integrate Python profiler with PStats
Enabled with `pstats-python-profiler 1`, requires recent version of PStats server.

Currently, it is limited to the main thread only.  Support for other threads may be added at a later date.
2022-11-29 16:00:09 +01:00
rdb a28b641bf3 interrogatedb: Indicate whether types/function wrappers are deprecated 2022-10-24 13:24:20 +02:00
rdb 61ff260ee3 Merge branch 'release/1.10.x' 2022-10-20 20:59:45 +02:00
rdb bb8b08a690 interrogatedb: Add `interrogate_wrapper_is_extension()` function 2022-10-20 10:09:45 +02:00
rdb 25d11b3b17 interrogatedb: Add more query functions for seq/map elements 2022-10-19 16:04:37 +02:00
rdb e6036b5209 interrogatedb: More queries for function wrappers:
- `interrogate_wrapper_function(wrapper)`
- `interrogate_wrapper_is_copy_constructor(wrapper)`
- `interrogate_wrapper_is_coerce_constructor(wrapper)`
2022-10-10 15:09:28 +02:00
Paul m. p. P 590531a0b2 py_panda: Fix compilation issue with Python 3.11
(Cherry-picked from 833ad89eba)
2022-09-01 19:18:46 +02:00
rdb d239f48a43 Merge branch 'release/1.10.x' 2022-08-31 12:51:46 +02:00
WMOkiishi 813490b2c7 interrogatedb: Add functions to interrogate_interface.h:
- `interrogate_function_is_unary_op`
- `interrogate_function_is_operator_typecast`
- `interrogate_type_is_array`
- `interrogate_type_array_size`

Closes #1362
2022-08-31 11:56:10 +02:00
rdb cf04a04e32 Merge branch 'release/1.10.x' 2022-07-24 21:43:09 +02:00
rdb cb400b5e17 interrogatedb: Add functions to obtain getters of make-seqs 2022-07-24 21:37:44 +02:00
rdb ecf4d19e83 Merge branch 'release/1.10.x' 2022-05-10 16:12:36 +02:00
rdb 3d55945535 interrogatedb: Add new functions to interrogate_interface.h:
- `interrogate_function_is_constructor()`
- `interrogate_function_is_destructor()`
- `interrogate_wrapper_parameter_is_optional()`
- `interrogate_wrapper_parameter_is_scoped_enum()`
- `interrogate_wrapper_parameter_is_final()`

Only `interrogate_wrapper_parameter_is_optional()` requires a rebuild of the database with the new changes.
2022-05-10 15:58:34 +02:00
Paul m. p. P 833ad89eba py_panda: Fix compilation issue with Python 3.11 2022-02-07 19:33:19 +01:00
rdb 9dad304f85 interrogatedb: always define PyObject_CallNoArgs as inline 2021-12-06 22:23:44 +01:00
rdb 1739cef318 Merge branch 'release/1.10.x' into incoming 2021-08-31 14:03:57 +02:00
rdb 1fe5632ce2 interrogatedb: Fix compilation error on Windows due to typo 2021-08-30 21:37:54 +02:00
rdb 18e8918138 interrogate: Reimplement subscript assignment "operator"
This redoes the handling of `obj[n] = item` to occur in InterrogateBuilder instead so that it doesn't prevent the same remap from being used as getitem.

This fixes the non-const variant of InstanceList[n].
2021-04-25 11:27:18 +02:00
rdb 179f316b36 interrogate: Wrap anonymous parameter names as positional-only args 2021-03-01 19:33:43 +01:00
rdb 8cbe36b352 Merge branch 'release/1.10.x' 2021-03-01 19:33:27 +01:00
rdb bdb2ef1631 pipeline: Fix crash upon exception in custom thread
We can't call PyErr_Restore() without a valid thread state, which won't exist in a custom thread if we just called PyGILState_Release().  Not sure how this has ever worked.
2021-03-01 16:19:53 +01:00
rdb a7042091be py_panda: backport some py_compat.h definitions 2021-01-01 16:37:21 +01:00
rdb a1b2d5b8dc Make use of new function call methods in Python 3.9 2020-12-12 17:28:21 +01:00
rdb 93900a203e putil: Backport part of 9d8c523dfa
Fixes #886
2020-11-17 23:36:06 +01:00
rdb 66ac3be604 Merge branch 'release/1.10.x' into master 2020-09-12 23:23:58 +02:00
rdb 2402594808 interrogatedb: Fix faulty version comparison in Python 3.10 2020-09-12 22:50:29 +02:00
rdb 9d8c523dfa putil: Assorted improvements to BitArray, SparseArray, *BitMask*:
* Support converting BitMask types to int
* BitArray constructor accepts a Python long of arbitrary size
* DoubleBitMask (and QuadBitMask, by extension) supports Python long in constructor
* Support for pickling (except DoubleBitMask)
* All of them now properly define __bool__()
* More unit tests

Fixes #886
2020-04-01 20:31:16 +02:00
Leandro (Cerberus1746) Benedet Garcia 5f7809469c general: removed all WIN32, WIN32_VC and friends 2020-02-05 22:45:03 -07:00
rdb b272af8bbf Merge branch 'cmake' 2020-01-22 11:20:51 +01:00
rdb b78b7be326 Merge branch 'release/1.10.x' 2019-12-30 01:50:54 +01:00
rdb ac85b05400 py_compat: fix _PyObject_CallNoArg in Python 3.5 2019-12-25 16:32:19 +01:00
Sam Edwards 9b7bcf2564 Merge branch 'master' into cmake 2019-11-07 21:21:04 -07:00
Sam Edwards 856754a3de general: Don't abuse PyErr_Restore
The intended purpose of this function is to restore an exception
that has already been raised and saved with PyErr_Fetch. It should
not be used to raise new exceptions nor should it be used to clear
the current exception.

The especially egregious example is
`PyErr_Restore(exc_type, nullptr, nullptr);`
as the null value may not be handled correctly.
2019-11-05 18:44:20 -07:00
Sam Edwards cf59d3d983 CMake: Remove p3dtoolconfig from build
It's just p3prc now, so instead we install some symlinks
2019-11-04 14:02:06 -07:00
Sam Edwards 9ecaa0056b CMake: Break out p3interrogatedb as a first-class library 2019-10-15 23:27:03 -06:00
Sam Edwards 5fa4af9189 CMake: Rely on GNUInstallDirs to specify install paths
This makes multiarch OSes happy as they can dictate that
64-bit libraries go into 'lib64'
2019-08-31 00:48:42 -06:00
Sam Edwards 1a654cba04 CMake: Record the location that headers are installed
This populates INTERFACE_INCLUDE_DIRECTORIES on the targets
after they're installed.
2019-08-30 22:58:18 -06:00
Sam Edwards 19ed9f6b47 Merge branch 'master' into cmake 2019-08-24 18:07:12 -06:00
rdb df8ccdb7ab Add support for Python 3.8 2019-08-13 17:48:32 +02:00
Sam Edwards 6097d34ead CMake: Neatly format everything for readability and consistency 2019-04-14 22:37:18 -06:00