Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python workaround for wrong constructor selection cf #474 #483

Merged
merged 4 commits into from
Feb 9, 2020
Merged

Python workaround for wrong constructor selection cf #474 #483

merged 4 commits into from
Feb 9, 2020

Conversation

cmacdonald
Copy link
Contributor

Please see this as a possible workaround for #474. Constructors can take optional kwargs that provide the specification for the desired constructor. Unit tests included.

@cmacdonald cmacdonald changed the title Python workarounds for wrong constructor selection. #474 Python workaround for wrong constructor selection cf #474 Feb 8, 2020
@cmacdonald
Copy link
Contributor Author

In daylight, I prefer param_types to be renamed signature.

tshirtman
tshirtman previously approved these changes Feb 9, 2020
Copy link
Member

@tshirtman tshirtman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That looks good, i only wonder if get or pop will make a difference in the future, in case we want more kwargs there, but it's really not a biggy, i also agree that signature is better than param_types, if you want to do the change.

Nice job about the test, thanks.

jnius/jnius_export_class.pxi Outdated Show resolved Hide resolved
@tshirtman tshirtman merged commit 307659b into kivy:master Feb 9, 2020
@tshirtman
Copy link
Member

Thanks!

tshirtman added a commit that referenced this pull request May 3, 2020
Full Changelog: 1.2.1...1.3.0

Implemented enhancements:
- (#483) allow passing a `signature` argument to constructors, to force selection of the desired one
- (#497) support for more "dunder" methods/protocols on compatible interfaces than just `__len__`, and allow users to provide their own.
- (#500) allow ignoring private methods and fields in autoclass (both default to False)
- (#503) auto detect java_home on OSX, using `/usr/libexec/java_home` (if JAVA_HOME is not declared)
- (#514) writing to static fields (and fix reading from them)
- (#517) make signature exceptions more useful
- (#502) provide a stacktrace for where JVM was started.
- (#523) expose the class's class attribute
- (#524) fix handling of Java chars > 256 in Python3
- (#519) Always show the exception name

Fixed bugs:
- (#481) wrong use of strip on JRE path
- (#465) correct reflection to avoid missing any methods from parent classes or interfaces
- (#508) don't had error details with a custom exception when java class is not found
- (#510) add missing references to .pxi files in setup.py, speeding up recompilation
- (#518) ensure autoclass prefers methods over properties
- (#520) improved discovery of libjvm.so + provide a workaround if it doesn't work

Documentation:
- (#478) document automatic Thread detach feature
- (#512) document the requirement to keep reference to object/functions passed to java, for as long as it might use them
- (#521) fix inheritance in example

Many thanks to the contributors that stepped up to help this release, it wouldn't have been possible without them.

Craig Macdonald, Gabriel Pettier, Jim, André Miras, Young Ryul Bae, yyang, Pascal Chambon, Kevin Ollivier, Guillaume Gay, Christian M. Salamut, collaborated for this release.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants