Skip to content

Commit 763dfd2

Browse files
committed
use SIP to define Python __repr__ rather than injections
because it's a bit more clever!
1 parent a719605 commit 763dfd2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+170
-51
lines changed

python/core/auto_additions/qgscircle.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgscircularstring.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgscompoundcurve.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgscurvepolygon.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsellipse.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsgeometry.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@
22
QgsGeometry.BufferSide.baseClass = QgsGeometry
33
QgsGeometry.EndCapStyle.baseClass = QgsGeometry
44
QgsGeometry.JoinStyle.baseClass = QgsGeometry
5-
QgsGeometry.__repr__ = lambda self: '<QgsGeometry {}>'.format(self.asWkt())

python/core/auto_additions/qgslinestring.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsmulticurve.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsmultilinestring.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsmultipoint.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsmultipolygon.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgspoint.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgspointxy.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgspolygon.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_additions/qgsrectangle.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

python/core/auto_generated/geometry/qgscircle.sip.in

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,11 @@ Returns true if the circle contains the ``point``.
253253
virtual QString toString( int pointPrecision = 17, int radiusPrecision = 17, int azimuthPrecision = 2 ) const;
254254

255255

256-
256+
SIP_PYOBJECT __repr__();
257+
%MethodCode
258+
QString str = QString( "<QgsCircle %1>" ).arg( sipCpp->toString() );
259+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
260+
%End
257261
};
258262

259263
/************************************************************************

python/core/auto_generated/geometry/qgscircularstring.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,11 @@ Sets the circular string's points
162162
virtual QgsCircularString *createEmptyWithSameType() const /Factory/;
163163

164164

165+
SIP_PYOBJECT __repr__();
166+
%MethodCode
167+
QString str = QString( "<QgsCircularString %1>" ).arg( sipCpp->asWkt() );
168+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
169+
%End
165170

166171
protected:
167172

python/core/auto_generated/geometry/qgscompoundcurve.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,11 @@ Appends first point if not already closed.
166166
virtual QgsCompoundCurve *createEmptyWithSameType() const /Factory/;
167167

168168

169+
SIP_PYOBJECT __repr__();
170+
%MethodCode
171+
QString str = QString( "<QgsCompoundCurve %1>" ).arg( sipCpp->asWkt() );
172+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
173+
%End
169174

170175
protected:
171176

python/core/auto_generated/geometry/qgscurvepolygon.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ Returns approximate rotation angle for a vertex. Usually average angle between a
216216
virtual QgsCurvePolygon *createEmptyWithSameType() const /Factory/;
217217

218218

219+
SIP_PYOBJECT __repr__();
220+
%MethodCode
221+
QString str = QString( "<QgsCurvePolygon %1>" ).arg( sipCpp->asWkt() );
222+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
223+
%End
219224

220225
protected:
221226

python/core/auto_generated/geometry/qgsellipse.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,11 @@ returns a string representation of the ellipse.
248248
Members will be truncated to the specified precision.
249249
%End
250250

251+
SIP_PYOBJECT __repr__();
252+
%MethodCode
253+
QString str = QString( "<QgsEllipse %1>" ).arg( sipCpp->toString() );
254+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
255+
%End
251256

252257
protected:
253258

python/core/auto_generated/geometry/qgsgeometry.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,6 +1290,11 @@ Exports the geometry to WKT
12901290
precision parameter added in QGIS 2.4
12911291
%End
12921292

1293+
SIP_PYOBJECT __repr__();
1294+
%MethodCode
1295+
QString str = QString( "<QgsGeometry %1>" ).arg( sipCpp->asWkt() );
1296+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
1297+
%End
12931298

12941299
QString asJson( int precision = 17 ) const;
12951300
%Docstring

python/core/auto_generated/geometry/qgslinestring.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,11 @@ of the curve.
317317
virtual QgsLineString *createEmptyWithSameType() const /Factory/;
318318

319319

320+
SIP_PYOBJECT __repr__();
321+
%MethodCode
322+
QString str = QString( "<QgsLineString %1>" ).arg( sipCpp->asWkt() );
323+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
324+
%End
320325

321326
protected:
322327

python/core/auto_generated/geometry/qgsmulticurve.sip.in

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ Returns a copy of the multi curve, where each component curve has had its line d
5656
virtual QgsMultiCurve *createEmptyWithSameType() const /Factory/;
5757

5858

59-
59+
SIP_PYOBJECT __repr__();
60+
%MethodCode
61+
QString str = QString( "<QgsMulitCurve %1>" ).arg( sipCpp->asWkt() );
62+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
63+
%End
6064

6165
};
6266

python/core/auto_generated/geometry/qgsmultilinestring.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ Returns the geometry converted to the more generic curve type :py:class:`QgsMult
5353
virtual QgsMultiLineString *createEmptyWithSameType() const /Factory/;
5454

5555

56+
SIP_PYOBJECT __repr__();
57+
%MethodCode
58+
QString str = QString( "<QgsMultiLineString %1>" ).arg( sipCpp->asWkt() );
59+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
60+
%End
5661

5762
protected:
5863

python/core/auto_generated/geometry/qgsmultipoint.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ Multi point geometry collection.
5555
virtual QgsMultiPoint *createEmptyWithSameType() const /Factory/;
5656

5757

58+
SIP_PYOBJECT __repr__();
59+
%MethodCode
60+
QString str = QString( "<QgsMultiPoint %1>" ).arg( sipCpp->asWkt() );
61+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
62+
%End
5863

5964
protected:
6065

python/core/auto_generated/geometry/qgsmultipolygon.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ Returns the geometry converted to the more generic curve type :py:class:`QgsMult
5454
virtual QgsMultiPolygon *createEmptyWithSameType() const /Factory/;
5555

5656

57+
SIP_PYOBJECT __repr__();
58+
%MethodCode
59+
QString str = QString( "<QgsMultiPolygon %1>" ).arg( sipCpp->asWkt() );
60+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
61+
%End
5762

5863
protected:
5964

python/core/auto_generated/geometry/qgspoint.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,11 @@ Angle undefined. Always returns 0.0
426426
virtual QgsPoint *createEmptyWithSameType() const /Factory/;
427427

428428

429+
SIP_PYOBJECT __repr__();
430+
%MethodCode
431+
QString str = QString( "<QgsPoint %1>" ).arg( sipCpp->asWkt() );
432+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
433+
%End
429434

430435
protected:
431436

python/core/auto_generated/geometry/qgspolygon.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ negative if the point lies outside the polygon.
6565
virtual QgsPolygon *createEmptyWithSameType() const /Factory/;
6666

6767

68+
SIP_PYOBJECT __repr__();
69+
%MethodCode
70+
QString str = QString( "<QgsPolygon %1>" ).arg( sipCpp->asWkt() );
71+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
72+
%End
6873

6974
protected:
7075

python/core/auto_generated/geometry/qgsrectangle.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,11 @@ Converts the rectangle to a 3D box, with the specified
322322

323323
operator QVariant() const;
324324

325+
SIP_PYOBJECT __repr__();
326+
%MethodCode
327+
QString str = QString( "<QgsRectangle %1>" ).arg( sipCpp->asWktCoordinates() );
328+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
329+
%End
325330

326331
};
327332

python/core/auto_generated/qgspointxy.sip.in

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,7 @@ Multiply x and y by the given value
230230

231231
SIP_PYOBJECT __repr__();
232232
%MethodCode
233-
QString str = "(" + QString::number( sipCpp->x() ) + "," + QString::number( sipCpp->y() ) + ")";
234-
//QString str("(%f,%f)").arg(sipCpp->x()).arg(sipCpp->y());
233+
QString str = QString( "<QgsPointXY %1>" ).arg( sipCpp->asWkt() );
235234
sipRes = PyUnicode_FromString( str.toUtf8().data() );
236235
%End
237236

src/core/geometry/qgscircle.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,13 @@ class CORE_EXPORT QgsCircle : public QgsEllipse
247247

248248
QString toString( int pointPrecision = 17, int radiusPrecision = 17, int azimuthPrecision = 2 ) const override;
249249

250-
SIP_PYTHON_SPECIAL_REPR( "'<QgsPoint {}>'.format(self.toString())" )
251-
250+
#ifdef SIP_RUN
251+
SIP_PYOBJECT __repr__();
252+
% MethodCode
253+
QString str = QString( "<QgsCircle %1>" ).arg( sipCpp->toString() );
254+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
255+
% End
256+
#endif
252257
};
253258

254259
#endif // QGSCIRCLE_H

src/core/geometry/qgscircularstring.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,13 @@ class CORE_EXPORT QgsCircularString: public QgsCurve
146146

147147
QgsCircularString *createEmptyWithSameType() const override SIP_FACTORY;
148148

149-
SIP_PYTHON_SPECIAL_REPR( "'<QgsCircularString {}>'.format(self.asWkt())" )
149+
#ifdef SIP_RUN
150+
SIP_PYOBJECT __repr__();
151+
% MethodCode
152+
QString str = QString( "<QgsCircularString %1>" ).arg( sipCpp->asWkt() );
153+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
154+
% End
155+
#endif
150156

151157
protected:
152158

src/core/geometry/qgscompoundcurve.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,13 @@ class CORE_EXPORT QgsCompoundCurve: public QgsCurve
146146

147147
QgsCompoundCurve *createEmptyWithSameType() const override SIP_FACTORY;
148148

149-
SIP_PYTHON_SPECIAL_REPR( "'<QgsCompoundCurve {}>'.format(self.asWkt())" )
149+
#ifdef SIP_RUN
150+
SIP_PYOBJECT __repr__();
151+
% MethodCode
152+
QString str = QString( "<QgsCompoundCurve %1>" ).arg( sipCpp->asWkt() );
153+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
154+
% End
155+
#endif
150156

151157
protected:
152158

src/core/geometry/qgscurvepolygon.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,13 @@ class CORE_EXPORT QgsCurvePolygon: public QgsSurface
204204

205205
QgsCurvePolygon *createEmptyWithSameType() const override SIP_FACTORY;
206206

207-
SIP_PYTHON_SPECIAL_REPR( "'<QgsCurvePolygon {}>'.format(self.asWkt())" )
207+
#ifdef SIP_RUN
208+
SIP_PYOBJECT __repr__();
209+
% MethodCode
210+
QString str = QString( "<QgsCurvePolygon %1>" ).arg( sipCpp->asWkt() );
211+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
212+
% End
213+
#endif
208214

209215
protected:
210216

src/core/geometry/qgsellipse.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,13 @@ class CORE_EXPORT QgsEllipse
240240
*/
241241
virtual QString toString( int pointPrecision = 17, int axisPrecision = 17, int azimuthPrecision = 2 ) const;
242242

243-
SIP_PYTHON_SPECIAL_REPR( "'<QgsEllipse {}>'.format(self.toString())" )
243+
#ifdef SIP_RUN
244+
SIP_PYOBJECT __repr__();
245+
% MethodCode
246+
QString str = QString( "<QgsEllipse %1>" ).arg( sipCpp->toString() );
247+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
248+
% End
249+
#endif
244250

245251
protected:
246252
QgsPoint mCenter;

src/core/geometry/qgsgeometry.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1248,7 +1248,13 @@ class CORE_EXPORT QgsGeometry
12481248
*/
12491249
QString asWkt( int precision = 17 ) const;
12501250

1251-
SIP_PYTHON_SPECIAL_REPR( "'<QgsGeometry {}>'.format(self.asWkt())" )
1251+
#ifdef SIP_RUN
1252+
SIP_PYOBJECT __repr__();
1253+
% MethodCode
1254+
QString str = QString( "<QgsGeometry %1>" ).arg( sipCpp->asWkt() );
1255+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
1256+
% End
1257+
#endif
12521258

12531259
/**
12541260
* Exports the geometry to a GeoJSON string.

src/core/geometry/qgslinestring.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,13 @@ class CORE_EXPORT QgsLineString: public QgsCurve
346346

347347
QgsLineString *createEmptyWithSameType() const override SIP_FACTORY;
348348

349-
SIP_PYTHON_SPECIAL_REPR( "'<QgsLineString {}>'.format(self.asWkt())" )
349+
#ifdef SIP_RUN
350+
SIP_PYOBJECT __repr__();
351+
% MethodCode
352+
QString str = QString( "<QgsLineString %1>" ).arg( sipCpp->asWkt() );
353+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
354+
% End
355+
#endif
350356

351357
protected:
352358

src/core/geometry/qgsmulticurve.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,13 @@ class CORE_EXPORT QgsMultiCurve: public QgsGeometryCollection
7373

7474
QgsMultiCurve *createEmptyWithSameType() const override SIP_FACTORY;
7575

76-
SIP_PYTHON_SPECIAL_REPR( "'<QgsMulitCurve {}>'.format(self.asWkt())" )
77-
76+
#ifdef SIP_RUN
77+
SIP_PYOBJECT __repr__();
78+
% MethodCode
79+
QString str = QString( "<QgsMulitCurve %1>" ).arg( sipCpp->asWkt() );
80+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
81+
% End
82+
#endif
7883

7984
};
8085

src/core/geometry/qgsmultilinestring.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,13 @@ class CORE_EXPORT QgsMultiLineString: public QgsMultiCurve
6565

6666
QgsMultiLineString *createEmptyWithSameType() const override SIP_FACTORY;
6767

68-
SIP_PYTHON_SPECIAL_REPR( "'<QgsMultiLineString {}>'.format(self.asWkt())" )
68+
#ifdef SIP_RUN
69+
SIP_PYOBJECT __repr__();
70+
% MethodCode
71+
QString str = QString( "<QgsMultiLineString %1>" ).arg( sipCpp->asWkt() );
72+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
73+
% End
74+
#endif
6975

7076
protected:
7177

src/core/geometry/qgsmultipoint.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,13 @@ class CORE_EXPORT QgsMultiPoint: public QgsGeometryCollection
6666

6767
QgsMultiPoint *createEmptyWithSameType() const override SIP_FACTORY;
6868

69-
SIP_PYTHON_SPECIAL_REPR( "'<QgsMultiPoint {}>'.format(self.asWkt())" )
69+
#ifdef SIP_RUN
70+
SIP_PYOBJECT __repr__();
71+
% MethodCode
72+
QString str = QString( "<QgsMultiPoint %1>" ).arg( sipCpp->asWkt() );
73+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
74+
% End
75+
#endif
7076

7177
protected:
7278

src/core/geometry/qgsmultipolygon.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,13 @@ class CORE_EXPORT QgsMultiPolygon: public QgsMultiSurface
6565

6666
QgsMultiPolygon *createEmptyWithSameType() const override SIP_FACTORY;
6767

68-
SIP_PYTHON_SPECIAL_REPR( "'<QgsMultiPolygon {}>'.format(self.asWkt())" )
68+
#ifdef SIP_RUN
69+
SIP_PYOBJECT __repr__();
70+
% MethodCode
71+
QString str = QString( "<QgsMultiPolygon %1>" ).arg( sipCpp->asWkt() );
72+
sipRes = PyUnicode_FromString( str.toUtf8().data() );
73+
% End
74+
#endif
6975

7076
protected:
7177

0 commit comments

Comments
 (0)