Skip to content

Commit 4fe99d8

Browse files
committedMar 24, 2021
Add better __repr__ methods for QgsDateTimeRange, QgsDateRange
1 parent 4be88aa commit 4fe99d8

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
 

‎python/core/__init__.py.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ from .additions.qgstaskwrapper import QgsTaskWrapper
3838
from .additions.readwritecontextentercategory import ReadWriteContextEnterCategory
3939
from .additions.runtimeprofiler import ScopedRuntimeProfileContextManager
4040
from .additions.validitycheck import check
41+
from .additions.ranges import datetime_range_repr, date_range_repr
4142

4243
# Injections into classes
4344
QgsFeature.__geo_interface__ = property(mapping_feature)
@@ -53,6 +54,8 @@ QgsSettings.enumValue = _qgssettings_enum_value
5354
QgsSettings.setEnumValue = _qgssettings_set_enum_value
5455
QgsSettings.flagValue = _qgssettings_flag_value
5556
QgsTask.fromFunction = fromFunction
57+
QgsDateTimeRange.__repr__ = datetime_range_repr
58+
QgsDateRange.__repr__ = date_range_repr
5659

5760
# Classes patched using a derived class
5861
QgsProviderMetadata = PyProviderMetadata

‎python/core/additions/ranges.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
3+
"""
4+
***************************************************************************
5+
ranges.py
6+
---------------------
7+
Date : Mar 2021
8+
Copyright : (C) 2021 by Nyall Dawson
9+
Email : nyall dot dawson at gmail dot com
10+
***************************************************************************
11+
* *
12+
* This program is free software; you can redistribute it and/or modify *
13+
* it under the terms of the GNU General Public License as published by *
14+
* the Free Software Foundation; either version 2 of the License, or *
15+
* (at your option) any later version. *
16+
* *
17+
***************************************************************************
18+
"""
19+
from qgis.PyQt.QtCore import Qt
20+
21+
22+
# add some __repr__ methods to QGIS range classes. We can't do this via sip because they are template based classes
23+
24+
25+
def datetime_range_repr(self):
26+
return f"<QgsDateTimeRange:{'[' if self.includeBeginning() else '('}{self.begin().toString(Qt.ISODate)}, {self.end().toString(Qt.ISODate)}{']' if self.includeEnd() else ')'}>"
27+
28+
29+
def date_range_repr(self):
30+
return f"<QgsDateTimeRange:{'[' if self.includeBeginning() else '('}{self.begin().toString(Qt.ISODate)}, {self.end().toString(Qt.ISODate)}{']' if self.includeEnd() else ')'}>"

0 commit comments

Comments
 (0)
Please sign in to comment.