290 Commits

Author SHA1 Message Date
Nyall Dawson
ad16817fba Fix enum compatibility with python full enum use of old values 2023-02-19 13:29:06 +10:00
Denis Rouzaud
dfd776aa90 [sipify] support forward declaration of template classes 2023-02-03 09:05:37 +01:00
Alessandro Pasotti
eb76172122 Raise proper exceptions from search 2022-09-01 11:32:13 +02:00
Nyall Dawson
5e40c9529f [sipify] Correctly handle " in enum member docstrings 2022-06-03 12:02:13 +10:00
Denis Rouzaud
f5bd1f2165 [sipify] support argument renaming + fix dosctring reset when cpp code is commented 2022-04-29 07:57:25 +10:00
Nyall Dawson
d83fd31815 [sipify] Correctly handle :: in enum comments 2022-04-28 13:54:47 +10:00
Denis Rouzaud
9671c90b41
[sipify] fix more complex member assignment removal (#48198) 2022-04-13 10:22:32 +02:00
Nyall Dawson
28bb05b0d5 Add method to retrieve axis order for a QgsCoordinateReferenceSystem 2022-04-06 11:45:32 +10:00
Denis Rouzaud
a923b339d2 qHash implementation for scoped enum type 2022-03-11 07:47:46 +01:00
Denis Rouzaud
1879f51781 [sipify] fix do not export template classes 2022-03-10 19:32:09 +01:00
Denis Rouzaud
b7c5d259c6 [sipify] add SIP_MAKE_PRIVATE macro
also handle std::numeric_limits<qlonglong>::min/max
2022-03-02 14:58:56 +01:00
Denis Rouzaud
08ada3aadf sipify + move sipify config file to ./python 2022-03-01 12:09:47 +01:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
nirvn
ce873d30e8 protected -> public 2021-10-12 16:34:05 +10:00
Denis Rouzaud
e3a77b9484 fix enum in protected section 2021-10-12 16:34:05 +10:00
Denis Rouzaud
070a3e97da [sipify] make all protected methods slots 2021-10-12 16:34:05 +10:00
Nyall Dawson
2fc60fcd7f Fix compatibility of moved QFLAGS 2021-09-26 11:24:51 +10:00
Nyall Dawson
4bb7f82f2e [sipify] Add check that doxygen //!< command is only used for enum
documentation

sipify can't handle it in other contexts
2021-07-19 16:05:53 +10:00
Nyall Dawson
711a615be3 Fix raises sphinx format 2021-06-25 10:50:04 +10:00
Nyall Dawson
2328f4fad8 Fix sipify handling of long long return types 2021-06-22 08:43:39 +10:00
Nyall Dawson
49e48f9383 Better approach to avoid duplicate docs 2021-06-10 11:03:43 +10:00
Nyall Dawson
4ff3f447dc Don't try to insert links in raises blocks in PyQGIS docs
These aren't formatted correctly if we do
2021-06-10 11:03:43 +10:00
Denis Rouzaud
e7ccf1fcc6 also do non scoped enums 2021-05-31 09:36:21 +02:00
Denis Rouzaud
759e3db119 [sipify] add attribute to know if an enum is monkey patched
this way it can be easily removed from the PyQGIS API docs
2021-05-31 09:36:21 +02:00
Nyall Dawson
b4fea529f1 Promote Qgis::DataType to enum class 2021-05-27 13:44:15 +10:00
Denis Rouzaud
2e81f3b172 [sipify] support unparsed/raw code 2021-05-26 14:30:54 +02:00
Denis Rouzaud
bd88d6ac38 [sipify] force line return before code block 2021-05-26 14:30:54 +02:00
Nyall Dawson
60f48bc6a2
Add typehint for QgsPoint constructor (#43385) 2021-05-25 15:20:59 +02:00
Nyall Dawson
2b6c3c1db2 Fix PyQGIS QgsLineString constructor only accepts lists of QgsPoint,
not QgsPointXY as indicated by the documentation

Also add support for constructing QgsLineString using arrays of
arrays of floats, given that we're having to hand-roll sip conversion
code anyway!

Now the following is supported:

  line = QgsLineString([[1,2], [3,4], [5,6]])

which is much nicer and more "pythonic" then the explicit
QgsPoint/QgsPointXY sequences!

Fixes #43200
2021-05-25 21:07:50 +10:00
Nyall Dawson
fc796b4c74 Fix sipify 2021-05-20 21:09:56 +10:00
Nyall Dawson
de406693c7 Move QgsVectorLayerExporter.ExportError to Qgis and promote to enum
class

This avoids an ugly include of qgsvectorlayerexporter.h in
qgsproviderregistry.h/qgsprovidermetadata.h, which in turn
triggers an inclusion of qgsvectorlayer.h and a bunch of
other heavy dependencies.
2021-05-20 21:09:56 +10:00
Nyall Dawson
b5dfe8f155 Refactor enum handling
- Add enums to qgis.h instead of qgscoreenums, so that they belong to
a Qgis namespace
- Split up the various symbol headers into multiple files so that we
can fine-tune their inclusion and forward declare more readily, speeding
up recompilation
- Move QgsSymbol enums to qgis
2021-05-18 16:59:22 +10:00
Nyall Dawson
239092e0f1 Move QgsVectorDataProvider::FeatureCountState enum to qgscoreenums.h 2021-05-18 16:59:22 +10:00
Denis Rouzaud
642deb194d
support QgsSettingsEntryEnumFlag in sipify (#42888) 2021-04-22 13:47:21 +02:00
Denis Rouzaud
6ff14b563d
[sipify] fix static const inline (#42607)
* [sipify] fix static const inline

* remove extra match
2021-04-01 08:41:18 +02:00
Matthias Kuhn
6ca82a2717 Fix sipify 2021-03-28 06:29:24 +10:00
Denis Rouzaud
8d7ec8b69b [pyqgis] move constructor docstring after the class docstring 2021-03-22 21:11:28 +01:00
Nyall Dawson
50b9beaad6 [sipify] Catch more class references and insert :py:class: annotations 2021-01-31 05:41:22 +10:00
Nyall Dawson
ffc71b54e1 spell 2020-10-09 11:20:09 +10:00
Nyall Dawson
0001ec27a4 Ensure SIP_OUT argument docs are always included as :returns: directives even when function returns void 2020-10-09 11:20:09 +10:00
Nyall Dawson
0e362652e3 [sipify] Catch **ALL** SIP_OUT arguments when generating docstrings and move them to :returns: directives 2020-10-09 11:20:09 +10:00
Nyall Dawson
c293d2c60d [sipify] Correctly collapse TypeHint annotations 2020-09-18 11:50:27 +10:00
Nyall Dawson
d4a2dddac5 Tag some inexpensive, frequently called methods with the HoldGIL annotation
This prevents the Python GIL from being released before calling the method
(which is the default behaviour). For very cheap to call c++ methods the
cost of releasing the GIL can outweigh the cost of the c++ call, which means
it's more efficient to retain the hold on the GIL.

Ideally we'd do this everywhere, and switch to an explicit ReleaseGIL
annotation on functions which are slow or risky (raise exceptions, or
do something which can cause a GIL deadlock). But those are very tricky
to identify, so instead just explicitly hold the gil on cheap methods
which are likely to be called many times and could have an impact on
script performance.
2020-09-18 04:34:57 +10:00
Denis Rouzaud
66b0f1d60c correctly remove title + slash 2020-07-09 16:22:06 +02:00
Denis Rouzaud
ca89fdff12 [sipify] format section/subsection to RST
because one should write some Perl everyday to realize how life is nicer without it
2020-07-09 16:11:09 +02:00
Nyall Dawson
74400c7ff8 Some fixes to numbered list handling in dox/PyQGIS API 2020-06-15 13:43:58 +10:00
Nyall Dawson
81a9db9f57 [sipify] Fix creation of cross references 2020-06-15 13:43:58 +10:00
Nyall Dawson
a5101f2ade [sipify] Fix header formatting 2020-06-13 16:49:14 +10:00
Nyall Dawson
84ec481aa8 [sipify] Correctly indent multiline list items 2020-06-11 13:29:59 +10:00
Denis Rouzaud
14b80de7ed
fix crash when a sink parameter definition is missing in a processing alg (#34978) 2020-03-14 01:03:13 +01:00