[Git][debian-gis-team/python-geopandas][upstream] New upstream version 0.5.1

Bas Couwenberg gitlab at salsa.debian.org
Fri Jul 12 05:50:23 BST 2019



Bas Couwenberg pushed to branch upstream at Debian GIS Project / python-geopandas


Commits:
4cbcbc07 by Bas Couwenberg at 2019-07-12T04:22:36Z
New upstream version 0.5.1
- - - - -


8 changed files:

- .travis.yml
- CHANGELOG.md
- appveyor.yml
- doc/source/conf.py
- geopandas/_version.py
- geopandas/plotting.py
- geopandas/tests/test_plotting.py
- geopandas/tests/test_types.py


Changes:

=====================================
.travis.yml
=====================================
@@ -26,7 +26,7 @@ install:
   - bash miniconda.sh -b -p $HOME/miniconda
   - export PATH="$HOME/miniconda/bin:$PATH"
   - conda config --set always_yes yes --set changeps1 no
-  - conda update conda
+  - conda install conda=4.6
   - conda info
 
   # Install dependencies


=====================================
CHANGELOG.md
=====================================
@@ -1,8 +1,13 @@
 Changes
 =======
 
+Version 0.5.1 (July 11, 2019)
+------------------------------
+
+- Compatibility with latest mapclassify version 2.1.0 (#1025).
+
 Version 0.5.0 (April 25, 2019)
----------------------------------
+------------------------------
 
 Improvements:
 


=====================================
appveyor.yml
=====================================
@@ -11,9 +11,11 @@ environment:
   matrix:
     - PYTHON_VERSION: "2.7"
       MINICONDA: C:\Miniconda-x64
+      ENV_FILE: "ci/travis/27-latest-defaults.yaml"
 
     - PYTHON_VERSION: "3.7"
       MINICONDA: C:\Miniconda37-x64
+      ENV_FILE: "ci/travis/37-latest-conda-forge.yaml"
 
 # all our python builds have to happen in tests_script...
 build: false
@@ -31,12 +33,11 @@ install:
   # set up environment
   - "set PATH=%MINICONDA%;%MINICONDA%\\Scripts;%PATH%"
   - conda config --set always_yes yes --set show_channel_urls true --set changeps1 no
-  - conda update -q conda
-  - conda config --add channels conda-forge
+  - conda install conda=4.6
   - conda info -a
-  - "conda create --quiet --name test-environment python=%PYTHON_VERSION% pandas --file requirements.txt --file requirements.test.txt"
+  - conda env create --file="${ENV_FILE}"
 
 test_script:
-  - activate test-environment
+  - activate test
   - conda list
   - pytest geopandas -v


=====================================
doc/source/conf.py
=====================================
@@ -79,7 +79,7 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'GeoPandas'
-copyright = u'2013–2018, GeoPandas developers'
+copyright = u'2013–2019, GeoPandas developers'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the


=====================================
geopandas/_version.py
=====================================
@@ -23,8 +23,8 @@ def get_keywords():
     # setup.py/versioneer.py will grep for the variable names, so they must
     # each be defined on a line of their own. _version.py will just call
     # get_keywords().
-    git_refnames = " (HEAD -> master, tag: v0.5.0)"
-    git_full = "6eb7a0fa9828cda6d6a97007e0908776fb569446"
+    git_refnames = " (tag: v0.5.1, 0.5.x)"
+    git_full = "4a4ede8bf7ec27586621f615cad69efd060551f0"
     keywords = {"refnames": git_refnames, "full": git_full}
     return keywords
 


=====================================
geopandas/plotting.py
=====================================
@@ -352,13 +352,13 @@ def plot_dataframe(df, column=None, cmap=None, color=None, ax=None, cax=None,
         Plot a legend. Ignored if no `column` is given, or if `color` is given.
     scheme : str (default None)
         Name of a choropleth classification scheme (requires mapclassify).
-        A mapclassify.Map_Classifier object will be used
+        A mapclassify.MapClassifier object will be used
         under the hood. Supported are all schemes provided by mapclassify (e.g.
-        'Box_Plot', 'Equal_Interval', 'Fisher_Jenks', 'Fisher_Jenks_Sampled',
-        'HeadTail_Breaks', 'Jenks_Caspall', 'Jenks_Caspall_Forced',
-        'Jenks_Caspall_Sampled', 'Max_P_Classifier', 'Maximum_Breaks',
-        'Natural_Breaks', 'Quantiles', 'Percentiles', 'Std_Mean',
-        'User_Defined'). Arguments can be passed in classification_kwds.
+        'BoxPlot', 'EqualInterval', 'FisherJenks', 'FisherJenksSampled',
+        'HeadTailBreaks', 'JenksCaspall', 'JenksCaspallForced',
+        'JenksCaspallSampled', 'MaxP', 'MaximumBreaks',
+        'NaturalBreaks', 'Quantiles', 'Percentiles', 'StdMean',
+        'UserDefined'). Arguments can be passed in classification_kwds.
     k : int (default 5)
         Number of classes (ignored if scheme is None)
     vmin : None or float (default None)
@@ -543,11 +543,11 @@ def _mapclassify_choro(values, scheme, **classification_kwds):
         Series to be plotted
     scheme : str
         One of mapclassify classification schemes
-        Options are Box_Plot, Equal_Interval, Fisher_Jenks,
-        Fisher_Jenks_Sampled, HeadTail_Breaks, Jenks_Caspall,
-        Jenks_Caspall_Forced, Jenks_Caspall_Sampled, Max_P_Classifier,
-        Maximum_Breaks, Natural_Breaks, Quantiles, Percentiles, Std_Mean,
-        User_Defined
+        Options are BoxPlot, EqualInterval, FisherJenks,
+        FisherJenksSampled, HeadTailBreaks, JenksCaspall,
+        JenksCaspallForced, JenksCaspallSampled, MaxP,
+        MaximumBreaks, NaturalBreaks, Quantiles, Percentiles, StdMean,
+        UserDefined
 
     **classification_kwds : dict
         Keyword arguments for classification scheme
@@ -574,19 +574,51 @@ def _mapclassify_choro(values, scheme, **classification_kwds):
                                               classifier)
 
     scheme = scheme.lower()
-    if scheme not in schemes:
-        raise ValueError("Invalid scheme. Scheme must be in the"
-                         " set: %r" % schemes.keys())
+
+    # mapclassify < 2.1 cleaned up the scheme names (removing underscores)
+    # trying both to keep compatibility with older versions and provide
+    # compatibility with newer versions of mapclassify
+    oldnew = {
+        'Box_Plot': 'BoxPlot',
+        'Equal_Interval': 'EqualInterval',
+        'Fisher_Jenks': 'FisherJenks',
+        'Fisher_Jenks_Sampled': 'FisherJenksSampled',
+        'HeadTail_Breaks': 'HeadTailBreaks',
+        'Jenks_Caspall': 'JenksCaspall',
+        'Jenks_Caspall_Forced': 'JenksCaspallForced',
+        'Jenks_Caspall_Sampled': 'JenksCaspallSampled',
+        'Max_P_Plassifier': 'MaxP',
+        'Maximum_Breaks': 'MaximumBreaks',
+        'Natural_Breaks': 'NaturalBreaks',
+        'Std_Mean': 'StdMean',
+        'User_Defined': 'UserDefined'
+    }
+    scheme_names_mapping = {}
+    scheme_names_mapping.update(
+        {old.lower(): new.lower() for old, new in oldnew.items()})
+    scheme_names_mapping.update(
+        {new.lower(): old.lower() for old, new in oldnew.items()})
+
+    try:
+        scheme_class = schemes[scheme]
+    except KeyError:
+        scheme = scheme_names_mapping.get(scheme, scheme)
+        try:
+            scheme_class = schemes[scheme]
+        except KeyError:
+            raise ValueError("Invalid scheme. Scheme must be in the"
+                            " set: %r" % schemes.keys())
+
     if classification_kwds['k'] is not None:
         try:
             from inspect import getfullargspec as getspec
         except ImportError:
             from inspect import getargspec as getspec
-        spec = getspec(schemes[scheme].__init__)
+        spec = getspec(scheme_class.__init__)
         if 'k' not in spec.args:
             del classification_kwds['k']
     try:
-        binning = schemes[scheme](values, **classification_kwds)
+        binning = scheme_class(values, **classification_kwds)
     except TypeError:
         raise TypeError("Invalid keyword argument for %r " % scheme)
     return binning


=====================================
geopandas/tests/test_plotting.py
=====================================
@@ -425,6 +425,11 @@ class TestMapclassifyPlotting:
         expected = [u'-10.00 - -3.41', u'-3.41 - 3.30', u'3.30 - 10.00']
         assert labels == expected
 
+    @pytest.mark.parametrize('scheme', ['FISHER_JENKS', 'FISHERJENKS'])
+    def test_scheme_name_compat(self, scheme):
+        ax = self.df.plot(column='NEGATIVES', scheme=scheme, k=3, legend=True)
+        assert len(ax.get_legend().get_texts()) == 3
+
     def test_classification_kwds(self):
         ax = self.df.plot(column='pop_est', scheme='percentiles', k=3,
                           classification_kwds={'pct': [50, 100]}, cmap='OrRd',


=====================================
geopandas/tests/test_types.py
=====================================
@@ -43,12 +43,6 @@ class TestSeries:
     def test_take(self):
         assert type(self.pts.take(list(range(0, self.N, 2)))) is GeoSeries
 
-    def test_select(self):
-        with warnings.catch_warnings(record=True) as _:
-            # depending on pandas version this raises FutureWarning ->
-            # suppress it
-            assert type(self.pts.select(lambda x: x % 2 == 0)) is GeoSeries
-
     def test_groupby(self):
         for f, s in self.pts.groupby(lambda x: x % 2):
             assert type(s) is GeoSeries



View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geopandas/commit/4cbcbc071b7affc7663c811b40fb525185265e5d

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geopandas/commit/4cbcbc071b7affc7663c811b40fb525185265e5d
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20190712/e5881a23/attachment-0001.html>


More information about the Pkg-grass-devel mailing list