From 95ecea897a85f7aebe7db8f9e1563536ac0866df Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Wed, 16 May 2018 11:29:28 -0400 Subject: [PATCH] move additions from top __init__ to core.__init__ --- python/__init__.py | 22 ---------------------- python/core/__init__.py | 24 ++++++++++++++---------- python/core/additions/qgsfeature.py | 7 +++++++ python/core/additions/qgsgeometry.py | 7 +++++++ 4 files changed, 28 insertions(+), 32 deletions(-) create mode 100644 python/core/additions/qgsfeature.py diff --git a/python/__init__.py b/python/__init__.py index 0cedfe0ca71..b0efd4a6288 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -69,25 +69,3 @@ if os.name == 'nt': from qgis.PyQt import QtCore -from qgis.core import QgsFeature, QgsGeometry - - -def mapping_feature(feature): - geom = feature.geometry() - properties = {} - fields = [field.name() for field in feature.fields()] - properties = dict(list(zip(fields, feature.attributes()))) - return {'type': 'Feature', - 'properties': properties, - 'geometry': geom.__geo_interface__} - - -def mapping_geometry(geometry): - geo = geometry.asJson() - # We have to use eval because exportToGeoJSON() gives us - # back a string that looks like a dictionary. - return eval(geo) - - -QgsFeature.__geo_interface__ = property(mapping_feature) -QgsGeometry.__geo_interface__ = property(mapping_geometry) diff --git a/python/core/__init__.py b/python/core/__init__.py index 765bb9d68c6..1474e3b9570 100644 --- a/python/core/__init__.py +++ b/python/core/__init__.py @@ -26,22 +26,26 @@ __revision__ = '$Format:%H$' from qgis.PyQt.QtCore import NULL from qgis._core import * -from .additions.readwritecontextentercategory import ReadWriteContextEnterCategory -from .additions.projectdirtyblocker import ProjectDirtyBlocker -from .additions.qgstaskwrapper import QgsTaskWrapper -from .additions.qgsfunction import register_function, qgsfunction from .additions.edit import edit, QgsEditError from .additions.fromfunction import fromFunction from .additions.processing import processing_output_layer_repr, processing_source_repr -from .additions.qgsgeometry import _geometryNonZero +from .additions.projectdirtyblocker import ProjectDirtyBlocker from .additions.qgsdefaultvalue import _isValid +from .additions.qgsfeature import mapping_feature +from .additions.qgsfunction import register_function, qgsfunction +from .additions.qgsgeometry import _geometryNonZero, mapping_geometry +from .additions.qgstaskwrapper import QgsTaskWrapper +from .additions.readwritecontextentercategory import ReadWriteContextEnterCategory # Injections into classes -QgsGeometry.__nonzero__ = _geometryNonZero -QgsGeometry.__bool__ = _geometryNonZero QgsDefaultValue.__bool__ = _isValid -QgsReadWriteContext.enterCategory = ReadWriteContextEnterCategory -QgsProject.blockDirtying = ProjectDirtyBlocker -QgsTask.fromFunction = fromFunction +QgsFeature.__geo_interface__ = property(mapping_feature) +QgsGeometry.__bool__ = _geometryNonZero +QgsGeometry.__geo_interface__ = property(mapping_geometry) +QgsGeometry.__nonzero__ = _geometryNonZero QgsProcessingFeatureSourceDefinition.__repr__ = processing_source_repr QgsProcessingOutputLayerDefinition.__repr__ = processing_output_layer_repr +QgsProject.blockDirtying = ProjectDirtyBlocker +QgsReadWriteContext.enterCategory = ReadWriteContextEnterCategory +QgsTask.fromFunction = fromFunction +QgsTolerance.UnitType.parentClass = QgsTolerance diff --git a/python/core/additions/qgsfeature.py b/python/core/additions/qgsfeature.py new file mode 100644 index 00000000000..49f15e1cc49 --- /dev/null +++ b/python/core/additions/qgsfeature.py @@ -0,0 +1,7 @@ +def mapping_feature(feature): + geom = feature.geometry() + fields = [field.name() for field in feature.fields()] + properties = dict(list(zip(fields, feature.attributes()))) + return {'type': 'Feature', + 'properties': properties, + 'geometry': geom.__geo_interface__} diff --git a/python/core/additions/qgsgeometry.py b/python/core/additions/qgsgeometry.py index cc25a0fffd5..59f3dd1ea06 100644 --- a/python/core/additions/qgsgeometry.py +++ b/python/core/additions/qgsgeometry.py @@ -20,3 +20,10 @@ def _geometryNonZero(self): return not self.isEmpty() + + +def mapping_geometry(geometry): + geo = geometry.asJson() + # We have to use eval because exportToGeoJSON() gives us + # back a string that looks like a dictionary. + return eval(geo)