lojack5
68f75d28dc
Fixup: using incorrect method names in some cases where they have been renamed
2025-03-13 18:35:14 -06:00
lojack5
bca7d10602
Implement hinting for types that are automatically converted
...
This handles any type with a defined `.convertFromPyObject` set in its
sip generator.
2025-03-13 18:35:13 -06:00
lojack5
03d7f1e8c9
reworks how typed-argstrings are handled
...
Pulls out the data into a separate class, `tweaker_tools.Signature`.
This simplifies stringizing the args string, and allows for some
checks to be written in a much less complex way. The motivator for
this was adding unions to type-hints (for the upcoming automatically
converted python->wx types). This made parsing the already stringized
args string very complex to be able to handle the potential for commas
in `Union`.
2025-03-13 18:35:13 -06:00
lojack5
58317175cd
Correct incorrect remove of wx from argument names
2025-03-13 18:31:40 -06:00
lojack5
62f820a8cf
Fixups for buildings docs (sphinx_generator):
...
- Remove typehints from argsString before checking signature
- lie and detect `_from`, `_is`, and `_def` as `from`, `is`, and `def for
signature validating purposes
- Fix: don't remove const from identifiers containing const (eg: constraint)
2025-03-13 18:31:39 -06:00
Scott Talbert
bb35bcd9d9
Fix bugs in Python2 / six removal
2025-02-03 20:13:56 -05:00
Alexandre Detiste
323e78c085
remove more Python2 hybridation
2025-02-02 20:29:49 -05:00
Scott Talbert
1b5cc2e67a
Allow overriding wxSizer.InformFirstDirection()
...
ci-build / build-source-dist (push) Waiting to run
ci-build / build-wheels (x64, macos-13, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, macos-13, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, ubuntu-22.04, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x64, windows-2022, 3.9) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.10) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.11) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.12) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.13) (push) Blocked by required conditions
ci-build / build-wheels (x86, windows-2022, 3.9) (push) Blocked by required conditions
ci-build / Build wxPython documentation (push) Waiting to run
ci-build / Publish Python distribution to PyPI (push) Blocked by required conditions
ci-build / Create GitHub Release and upload source (push) Blocked by required conditions
ci-build / Upload wheels to snapshot-builds on wxpython.org (push) Blocked by required conditions
It seems this is required in order to implement a non-trivial custom Sizer.
Fixes #2452 .
2025-01-26 17:21:08 -05:00
Scott Talbert
2adbeaa785
Implement __iter__ for wxList iterator classes
...
ci-build / build-source-dist (push) Has been cancelled
ci-build / Build wxPython documentation (push) Has been cancelled
ci-build / build-wheels (x64, macos-13, 3.10) (push) Has been cancelled
ci-build / build-wheels (x64, macos-13, 3.11) (push) Has been cancelled
ci-build / build-wheels (x64, macos-13, 3.12) (push) Has been cancelled
ci-build / build-wheels (x64, macos-13, 3.13) (push) Has been cancelled
ci-build / build-wheels (x64, macos-13, 3.9) (push) Has been cancelled
ci-build / build-wheels (x64, ubuntu-22.04, 3.10) (push) Has been cancelled
ci-build / build-wheels (x64, ubuntu-22.04, 3.11) (push) Has been cancelled
ci-build / build-wheels (x64, ubuntu-22.04, 3.12) (push) Has been cancelled
ci-build / build-wheels (x64, ubuntu-22.04, 3.13) (push) Has been cancelled
ci-build / build-wheels (x64, ubuntu-22.04, 3.9) (push) Has been cancelled
ci-build / build-wheels (x64, windows-2022, 3.10) (push) Has been cancelled
ci-build / build-wheels (x64, windows-2022, 3.11) (push) Has been cancelled
ci-build / build-wheels (x64, windows-2022, 3.12) (push) Has been cancelled
ci-build / build-wheels (x64, windows-2022, 3.13) (push) Has been cancelled
ci-build / build-wheels (x64, windows-2022, 3.9) (push) Has been cancelled
ci-build / build-wheels (x86, windows-2022, 3.10) (push) Has been cancelled
ci-build / build-wheels (x86, windows-2022, 3.11) (push) Has been cancelled
ci-build / build-wheels (x86, windows-2022, 3.12) (push) Has been cancelled
ci-build / build-wheels (x86, windows-2022, 3.13) (push) Has been cancelled
ci-build / build-wheels (x86, windows-2022, 3.9) (push) Has been cancelled
ci-build / Publish Python distribution to PyPI (push) Has been cancelled
ci-build / Create GitHub Release and upload source (push) Has been cancelled
ci-build / Upload wheels to snapshot-builds on wxpython.org (push) Has been cancelled
This fixes being able to use these classes in for loops, for example.
Specifically it fixes the cmdproc tests with Python 3.13.1.
2025-01-23 21:46:20 -05:00
Scott Talbert
c3092be458
Merge pull request #2468 from lojack5/lojack-typed-typestubs
...
ci-build / build-source-dist (push) Failing after 0s
ci-build / build-wheels (x64, macos-13, 3.10) (push) Has been skipped
ci-build / build-wheels (x64, macos-13, 3.11) (push) Has been skipped
ci-build / build-wheels (x64, macos-13, 3.12) (push) Has been skipped
ci-build / build-wheels (x64, macos-13, 3.13) (push) Has been skipped
ci-build / build-wheels (x64, macos-13, 3.9) (push) Has been skipped
ci-build / build-wheels (x64, ubuntu-22.04, 3.10) (push) Has been skipped
ci-build / build-wheels (x64, ubuntu-22.04, 3.11) (push) Has been skipped
ci-build / build-wheels (x64, ubuntu-22.04, 3.12) (push) Has been skipped
ci-build / build-wheels (x64, ubuntu-22.04, 3.13) (push) Has been skipped
ci-build / build-wheels (x64, ubuntu-22.04, 3.9) (push) Has been skipped
ci-build / build-wheels (x64, windows-2022, 3.10) (push) Has been skipped
ci-build / build-wheels (x64, windows-2022, 3.11) (push) Has been skipped
ci-build / build-wheels (x64, windows-2022, 3.12) (push) Has been skipped
ci-build / build-wheels (x64, windows-2022, 3.13) (push) Has been skipped
ci-build / build-wheels (x64, windows-2022, 3.9) (push) Has been skipped
ci-build / build-wheels (x86, windows-2022, 3.10) (push) Has been skipped
ci-build / build-wheels (x86, windows-2022, 3.11) (push) Has been skipped
ci-build / build-wheels (x86, windows-2022, 3.12) (push) Has been skipped
ci-build / build-wheels (x86, windows-2022, 3.13) (push) Has been skipped
ci-build / build-wheels (x86, windows-2022, 3.9) (push) Has been skipped
ci-build / Publish Python distribution to PyPI (push) Has been skipped
ci-build / Create GitHub Release and upload source (push) Has been skipped
ci-build / Upload wheels to snapshot-builds on wxpython.org (push) Has been skipped
ci-build / Build wxPython documentation (push) Has been cancelled
Improve Python type-stubs
2025-01-06 22:14:20 -05:00
DietmarSchwertberger
5279c3c344
add CreateAccessible for Windows only
2024-10-03 14:34:49 +02:00
Scott Talbert
78938da121
Revert CreateAccessible tweaker_tool change for now
2024-05-18 09:26:06 -04:00
Jorge Moraleda
a1c9554bbf
Update wxWidgets to v3.2.5. Add support for new, MSW-only Accessibility related methods.
2024-05-17 21:32:22 -04:00
Scott Talbert
2c6307142f
Update sip to v6.8.3 and fix deprecations
2024-02-12 23:20:17 -05:00
lojack5
804d3f15e3
fixup: union commit
2023-10-18 14:18:21 -06:00
lojack5
b23c5a83dc
Python <3.9 typing compat: tuples
...
Subscripting builtins.tuple was added in Python 3.9, so use
`typing.Tuple` where applicable.
2023-10-18 13:10:24 -06:00
lojack5
2ea917b0b5
Python <3.9 typing compat: list
...
Subscribing builtins.list wasn't added until Python 3.9 so use
`typing.List` where applicable.
2023-10-18 13:08:54 -06:00
lojack5
17438ac318
Python <3.10 typing compat: unions
...
Use `typing.Optional` and `typing.Union` where applicable, as direct
union (`|`) type annotations were added in Python 3.10
2023-10-18 13:06:31 -06:00
lojack5
3958d89217
Optional fixing of wx prefix in cleanName
...
This fixes erroneous wx. prepended to `version` variable in methods'
parameters.
2023-10-18 12:27:00 -06:00
lojack5
3d5290f46c
Another type-conversion edge case: void -> Any
2023-10-18 12:27:00 -06:00
lojack5
e84d7abcba
Possible way to handle enums.
...
Named enums with 'Flags' in the name use `enum.IntFlag`, all other enums
use `enum.IntEnum`. We have to bring the enum members into the containing
scope to match the original behaviour. Further, since these enums are typing
information only, and not actually in wx proper, we prevent them from appearing
to leak the the user by marking as non-exported (prepend '_' to the name), then
make a TypeAlias to the enum or an int. This way type signatures still claim
to accept integers as appropriate.
I like this solution best, because we preserved the information about which
enum members are expected for method/function parameters, while not leaking
non-existant classes out of the type-stubs, and not complaining about using
integers.
There's still a few undefined but referenced enums (ex:
richtext.TextAttrDimensionFlags). These are most likely a union of some of
the other flags/enum types already defined, but the work to pull that information
from the C++ source is probably too much.
2023-10-18 12:27:00 -06:00
lojack5
e14be4fbb4
Edge case on type-conversions: typdef int wxCoord
2023-10-18 12:26:59 -06:00
lojack5
7f74a5fd65
Prepare for changes in generated #define and global variables
...
These will be changing to annotation statements, so FixWxPrefix needs to
be able to detect this still (proper thing to look for in this case is
`ast.AnnAssign`).
2023-10-18 12:26:58 -06:00
lojack5
fa2bde419f
Extract type information in makePyArgsString
...
One unexpected type of '...' required adding a new transformation
that modifies both the name and the type to just '*args', so added
a preferred method `FixWxPrefix.parseNameAndType` which processes
both strings at once.
Also fixes cleanType to recursively call cleanType on sub-types
(was improperly calling cleanName).
With this, method and function signatures now have type annotations
which are mostly correct (100% correct in the "it compiles" sense).
Thankfully, the incorrect type-hints don't cause errors due to using
stringized annotations (by importing annotations from __future__).
Importantly, the overload signatures now have been fully sanitized.
Before this, there was one instance of a variable named `is`, and another
named `/Transfer/` - both invalid identifiers. I stopped looking after
those. Since theses signatures are valid Python code, this opens up the
opportunity to use `typing.overload` to fully expose those.
Edge-cases in type-hints will be addressed in later commits.
2023-10-18 12:26:58 -06:00
lojack5
d303548d43
Move local _cleanName to FixWxPrefix.cleanName
...
This allows for building `FixWxPrefix.cleanType` on top of it, for use
in processing type-hint strings in the future. It also exposes the method
to `FunctionDef.makePyArgString` in the future, which has easier access to
the types of arguments and returns. And possibly further in the future,
other `***Def` classes can make use of it (constant definitions, etc).
2023-10-18 12:19:00 -06:00
Scott Talbert
aa1ef7bd75
Update ETG scripts to support wxWidgets 3.1.6 functionality
...
Fixes #2136 .
2022-05-02 22:33:58 -04:00
Robin Dunn
12db41dad1
Ensure SIP knows about the item container pure virtuals.
2020-12-29 18:11:05 -08:00
Stefan Brüns
08c895a379
Do not strip wx prefix from parameter names
...
Parameter names should not be mangled, as this causes mismatches between
extractor and xml data:
```
SEVERE: Incompatibility between function/method signature and list of parameters in `wx.html.HtmlHelpWindow.__init__`:
The parameter `WindowID` appears in the method signature but could not be found in the parameter list.
==> Function/Method signature from `extractors`: __init__(parent, WindowID, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.TAB_TRAVERSAL|wx.BORDER_NONE, helpStyle=HF_DEFAULT_STYLE, data=None)
==> Parameter list from wxWidgets XML items: ['parent', 'wxWindowID', 'pos', 'size', 'style', 'helpStyle', 'data']
```
```
==> Function/Method signature from `extractors`: SetAssertMode(AppAssertMode)
==> Parameter list from wxWidgets XML items: ['wxAppAssertMode']
```
2020-10-02 00:12:08 +02:00
Robin Dunn
4b9b8ad93e
Add the EnableVisibleFocus virtual method to all window classes
2020-09-10 13:06:31 -07:00
Robin Dunn
92f8cd2d55
Fix lots of misspelled words
2020-07-14 11:38:32 -07:00
Stefan Brüns
b45ec07194
Use explicit wxString::c_str conversion for sipFindType(const char*)
2020-07-01 15:13:07 +02:00
Robin Dunn
06b08ecc05
Move fixDialogProperty to tweaker_tools, and use it on more property classes
2020-04-23 15:13:40 -07:00
Robin Dunn
a263e02639
Some additional default typeVal items for the stubs generator
2020-03-24 18:39:20 -07:00
Robin Dunn
799d94b50f
Enable adding extra TypeHeader text in wxListWrapperTemplate
2020-03-24 17:36:22 -07:00
Robin Dunn
b503793e5e
Add ability to make global name strings from a wchar_t constant
2020-03-17 17:46:56 -07:00
Robin Dunn
9f2cc54b48
Update copyright years
2020-03-10 11:41:39 -07:00
Robin Dunn
54dc9ac457
Add EnableSystemTheme method to the classes which support it
2019-06-12 13:33:26 -07:00
Robin Dunn
5d078557bf
Lots of updates to get caught up with wxWidgets master (3.1.3+)
2019-05-23 21:43:40 -07:00
Robin Dunn
b24dc5088b
Give char pointers a value in stubbed code
...
(cherry picked from commit fc14b8ecc4 )
2019-05-21 16:14:29 -07:00
Robin Dunn
0378328d45
Merge pull request #1201 from RobinD42/fix-issue1198
...
Fix access to members of transient wx.VisualAttributes
(cherry picked from commit d6324a0578 )
2019-04-13 16:25:55 -07:00
Robin Dunn
94ce8fc74a
Merge pull request #1124 from RobinD42/fix-issue1123
...
Generate optional stubs for the wxFileSystemWatcher* classes
(cherry picked from commit 792d32a1c4 )
2019-01-03 22:16:08 -08:00
Robin Dunn
2f540a91e6
Merge pull request #1034 from RobinD42/fix-issue958-291-wxAccessible
...
Add wxAccessible and a tool to generate C++ stubs
(cherry picked from commit 3a9f37f2aa )
2018-10-10 19:40:59 -07:00
Robin Dunn
41be300c46
Merge pull request #1022 from RobinD42/fix-issue972
...
Declare DeleteAllPages in the notebook subclasses
(cherry picked from commit 4b0f0e82c2 )
2018-09-27 21:13:04 -07:00
Mesalu
d1262c44e2
Silently ignore missing methods.
2018-08-07 17:37:16 -07:00
Mesalu
e91ae38e90
Refactor tweaks into a tweaker_tools method, apply to wx.TextEntry, wx.ComboBox, and wx.RichTextCtrl
2018-08-07 17:22:55 -07:00
Robin Dunn
b77c88a280
Merge tag 'wxPython-4.0.2' into wxPy-4.0.x
...
(cherry picked from commit 4c56c39e52 )
2018-06-17 22:04:22 -07:00
Metallicow
c76384d458
Trim trailing whitespace *.py files
2018-01-16 08:47:07 -06:00
Robin Dunn
92468c7a87
Merge branch 'master' into port-gizmos
2018-01-08 20:32:33 -08:00
Mesalu
24a6db6cd9
Add similar tactics to wxArray (and variants)
...
According to RobinD42, use cases in wxPython should be limited to Arrays that are full (no gaps)
2018-01-06 11:36:39 -08:00
Mesalu
af084599a6
Allow Py-like reverse indexing of wxList
2018-01-06 02:04:41 -08:00