[QGIS-Developer] Understanding plugin management in QGIS - exposing QgsPluginRegistry to Python?

javier at panoimagen.com javier at panoimagen.com
Mon Mar 16 00:42:50 PDT 2020


Hi all,

> The issues we see most often stem not from any particular use of
> Python, but (as Matthias has pointed out) through the nature of
> Pythons weak typing and lack of compile time checks. A simple example:
> if I alter the signature of a virtual method in one of the c++ classes
> to add an extra argument or change a return type, I'll know right away
> (well, when I next compile) if I've broken some existing code. If I do
> the same in Python, I'm basically trusting that my particular IDE can
> correctly identify ALL use of that method, because I won't get any
> warning if I did break something. Unit tests help, but will never
> completely avoid this kind of breakage.

Just my 2 cents, not really related to QgsPluginRegistry but with the 
Python/C++ issues you have been describing in this thread.
Please note that I am not familiar with QGIS Python or C++ codebase so 
this might something you are aware of (maybe you are already using it), 
but I have not seen any reference to type hinting in Python (which is 
supported since Python 3.5) in this discussion.
Currently type hints are ignored by the interpreter (Good thing is 
nothing can be broken by annotating types), but there is an additional 
tool mypy that performs static analysis of the code and warns of type 
conflicts, identifying many of those bugs that would only have shown on 
runtime (or unit tests) otherwise.

I do not know how the Python bindings are generated, but if (and I know 
this is a big 'if') we can get type hinting automatically generated from 
the C++ API, and progressively annotate types for the rest of the code 
base, we should be able to catch most if not all of these problems you 
are describing.

Regards,
Javier



>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer


More information about the QGIS-Developer mailing list