Skip to content

Commit 2669400

Browse files
committed
remove api.py and adjust tests against libpysal & esda master branch
1 parent 45fcff3 commit 2669400

18 files changed

+115
-447
lines changed

.travis.yml

+7-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ python:
88
- 3.6
99

1010
env:
11-
- PYSAL_PYPI=true
11+
- PYSAL_PYPI=true #testing on dependencies libpysal, esda, mapcalssify on pypi
1212
- PYSAL_PYPI=false
1313

1414
matrix:
@@ -33,8 +33,12 @@ install:
3333
- pip install -r requirements_tests.txt
3434
- pip install https://github.com/pysal/splot/archive/master.zip
3535
- if "$PYSAL_PYPI"; then
36-
echo 'testing pypi libpysal' && pip install libpysal;
37-
else echo 'testing git libpysal'; git clone https://github.com/pysal/libpysal.git; cd libpysal; pip install .; cd ../;
36+
echo 'testing pypi libpysal esda mapclassify' && pip install libpysal esda mapclassify;
37+
else
38+
echo 'testing git libpysal esda mapclassify';
39+
git clone https://github.com/pysal/libpysal.git; cd libpysal; pip install .; cd ../;
40+
git clone https://github.com/pysal/mapclassify.git; cd mapclassify; pip install .; cd ../;
41+
git clone https://github.com/pysal/esda.git; cd esda; pip install .; cd ../;
3842
fi;
3943
# We need the Agg backend to use Matplotlib on TravisCI, otherwise
4044
# we get an error "DISPLAY variable not set"

LICENSE.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright 2017, pysal-giddy developers
1+
Copyright 2018, pysal-giddy developers
22

33
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
44

giddy/__init__.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,4 @@
1212
from . import markov
1313
from . import mobility
1414
from . import rank
15-
from . import util
16-
from . import api
15+
from . import util

giddy/api.py

-8
This file was deleted.

giddy/components.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ def check_contiguity(w, neighbors, leaver):
7979
8080
Setup imports and a 25x25 spatial weights matrix on a 5x5 square region.
8181
82-
>>> import libpysal.api as lps
83-
>>> w = lps.lat2W(5, 5)
82+
>>> import libpysal as lps
83+
>>> w = lps.weights.lat2W(5, 5)
8484
8585
Test removing various areas from a subset of the region's areas. In the
8686
first case the subset is defined as observations 0, 1, 2, 3 and 4. The

giddy/directional.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import warnings
1111

1212
import numpy as np
13-
from libpysal.weights.spatial_lag import lag_spatial
13+
from libpysal import weights
1414

1515
_POS8 = np.array([1, 1, 0, 0, 1, 1, 0, 0])
1616
_POS4 = np.array([1, 0, 1, 0])
@@ -93,9 +93,10 @@ def __init__(self, Y, w, k=8):
9393
Load comma delimited data file in and convert to a numpy array
9494
9595
>>> import libpysal
96-
>>> from giddy.api import Rose
96+
>>> from giddy.directional import Rose
9797
>>> import matplotlib.pyplot as plt
98-
>>> f=open(libpysal.examples.get_path("spi_download.csv"),'r')
98+
>>> file_path = libpysal.examples.get_path("spi_download.csv")
99+
>>> f=open(file_path,'r')
99100
>>> lines=f.readlines()
100101
>>> f.close()
101102
>>> lines=[line.strip().split(",") for line in lines]
@@ -132,7 +133,7 @@ def __init__(self, Y, w, k=8):
132133
Create our contiguity matrix from an external GAL file and row
133134
standardize the resulting weights
134135
135-
>>> gal=libpysal.open(libpysal.examples.get_path('states48.gal'))
136+
>>> gal=libpysal.io.open(libpysal.examples.get_path('states48.gal'))
136137
>>> w=gal.read()
137138
>>> w.transform='r'
138139
@@ -299,7 +300,7 @@ def permute(self, permutations=99, alternative='two.sided'):
299300
print(('Bad option for alternative: %s.' % alternative))
300301

301302
def _calc(self, Y, w, k):
302-
wY = lag_spatial(w, Y)
303+
wY = weights.lag_spatial(w, Y)
303304
dx = Y[:, -1] - Y[:,0]
304305
dy = wY[:, -1] - wY[:, 0]
305306
self.wY = wY
@@ -343,7 +344,6 @@ def plot(self, attribute=None, ax=None, **kwargs):
343344
344345
"""
345346

346-
use_splot = False
347347
try:
348348
import splot.giddy
349349
use_splot = True
@@ -412,7 +412,7 @@ def plot_vectors(self, arrows=True):
412412
Axes in which the figure is plotted
413413
414414
"""
415-
use_splot = False
415+
416416
try:
417417
import splot.giddy
418418
use_splot = True

giddy/ergodic.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def steady_state(P):
3434
is melting).
3535
3636
>>> import numpy as np
37-
>>> from giddy.api import steady_state
37+
>>> from giddy.ergodic import steady_state
3838
>>> p=np.array([[.5, .25, .25],[.5,0,.5],[.25,.25,.5]])
3939
>>> steady_state(p)
4040
array([0.4, 0.2, 0.4])
@@ -79,7 +79,7 @@ def fmpt(P):
7979
Examples
8080
--------
8181
>>> import numpy as np
82-
>>> from giddy.api import fmpt
82+
>>> from giddy.ergodic import fmpt
8383
>>> p=np.array([[.5, .25, .25],[.5,0,.5],[.25,.25,.5]])
8484
>>> fm=fmpt(p)
8585
>>> fm
@@ -137,7 +137,7 @@ def var_fmpt(P):
137137
Examples
138138
--------
139139
>>> import numpy as np
140-
>>> from giddy.api import var_fmpt
140+
>>> from giddy.ergodic import var_fmpt
141141
>>> p=np.array([[.5, .25, .25],[.5,0,.5],[.25,.25,.5]])
142142
>>> vfm=var_fmpt(p)
143143
>>> vfm

giddy/markov.py

+21-23
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
from .components import Graph
1313
from scipy import stats
1414
from operator import gt
15-
from libpysal.weights.spatial_lag import lag_spatial
16-
from libpysal.weights.spatial_lag import lag_categorical
15+
from libpysal import weights
1716
from esda.moran import Moran_Local
1817
import mapclassify as mc
1918
import itertools
@@ -76,7 +75,7 @@ class Markov(object):
7675
Examples
7776
--------
7877
>>> import numpy as np
79-
>>> from giddy.api import Markov
78+
>>> from giddy.markov import Markov
8079
>>> c = [['b','a','c'],['c','c','a'],['c','b','c']]
8180
>>> c.extend([['a','a','b'], ['a','b','c']])
8281
>>> c = np.array(c)
@@ -94,7 +93,7 @@ class Markov(object):
9493
9594
>>> import libpysal
9695
>>> import mapclassify as mc
97-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
96+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
9897
>>> pci = np.array([f.by_col[str(y)] for y in range(1929,2010)])
9998
10099
set classes to quintiles for each year
@@ -304,13 +303,13 @@ class Spatial_Markov(object):
304303
Examples
305304
--------
306305
>>> import libpysal
307-
>>> from giddy.api import Spatial_Markov
306+
>>> from giddy.markov import Spatial_Markov
308307
>>> import numpy as np
309-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
308+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
310309
>>> pci = np.array([f.by_col[str(y)] for y in range(1929,2010)])
311310
>>> pci = pci.transpose()
312311
>>> rpci = pci/(pci.mean(axis=0))
313-
>>> w = libpysal.open(libpysal.examples.get_path("states48.gal")).read()
312+
>>> w = libpysal.io.open(libpysal.examples.get_path("states48.gal")).read()
314313
>>> w.transform = 'r'
315314
316315
Now we create a `Spatial_Markov` instance for the continuous relative per
@@ -739,10 +738,10 @@ def _calc(self, y, w):
739738
'''
740739
if self.discrete:
741740
#np.random.seed(24788)
742-
self.lclass_ids = lag_categorical(w, self.class_ids,
741+
self.lclass_ids = weights.lag_categorical(w, self.class_ids,
743742
ties="tryself")
744743
else:
745-
ly = lag_spatial(w, y)
744+
ly = weights.lag_spatial(w, y)
746745
self.lclass_ids, self.lag_cutoffs,self.m = self._maybe_classify(
747746
ly, self.m, self.lag_cutoffs)
748747
self.lclasses = np.arange(self.m)
@@ -882,13 +881,12 @@ def chi2(T1, T2):
882881
Examples
883882
--------
884883
>>> import libpysal
885-
>>> from giddy.api import Spatial_Markov
886-
>>> from giddy.markov import chi2
887-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
884+
>>> from giddy.markov import Spatial_Markov, chi2
885+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
888886
>>> years = list(range(1929, 2010))
889887
>>> pci = np.array([f.by_col[str(y)] for y in years]).transpose()
890888
>>> rpci = pci/(pci.mean(axis=0))
891-
>>> w = libpysal.open(libpysal.examples.get_path("states48.gal")).read()
889+
>>> w = libpysal.io.open(libpysal.examples.get_path("states48.gal")).read()
892890
>>> w.transform='r'
893891
>>> sm = Spatial_Markov(rpci, w, fixed=True)
894892
>>> T1 = sm.T[0]
@@ -1079,11 +1077,11 @@ class LISA_Markov(Markov):
10791077
--------
10801078
>>> import libpysal
10811079
>>> import numpy as np
1082-
>>> from giddy.api import LISA_Markov
1083-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
1080+
>>> from giddy.markov import LISA_Markov
1081+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
10841082
>>> years = list(range(1929, 2010))
10851083
>>> pci = np.array([f.by_col[str(y)] for y in years]).transpose()
1086-
>>> w = libpysal.open(libpysal.examples.get_path("states48.gal")).read()
1084+
>>> w = libpysal.io.open(libpysal.examples.get_path("states48.gal")).read()
10871085
>>> lm = LISA_Markov(pci,w)
10881086
>>> lm.classes
10891087
array([1, 2, 3, 4])
@@ -1195,7 +1193,7 @@ def __init__(self, y, w, permutations=0,
11951193

11961194
ybar = y.mean(axis=0)
11971195
r = y / ybar
1198-
ylag = np.array([lag_spatial(w, yt) for yt in y])
1196+
ylag = np.array([weights.lag_spatial(w, yt) for yt in y])
11991197
rlag = ylag / ybar
12001198
rc = r < 1.
12011199
rlagc = rlag < 1.
@@ -1245,11 +1243,11 @@ def spillover(self, quadrant=1, neighbors_on=False):
12451243
Examples
12461244
--------
12471245
>>> import libpysal
1248-
>>> from giddy.api import LISA_Markov
1249-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
1246+
>>> from giddy.markov import LISA_Markov
1247+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
12501248
>>> years = list(range(1929, 2010))
12511249
>>> pci = np.array([f.by_col[str(y)] for y in years]).transpose()
1252-
>>> w = libpysal.open(libpysal.examples.get_path("states48.gal")).read()
1250+
>>> w = libpysal.io.open(libpysal.examples.get_path("states48.gal")).read()
12531251
>>> np.random.seed(10)
12541252
>>> lm_random = LISA_Markov(pci, w, permutations=99)
12551253
>>> r = lm_random.spillover()
@@ -1384,7 +1382,7 @@ def kullback(F):
13841382
Examples
13851383
--------
13861384
>>> import numpy as np
1387-
>>> from giddy.api import kullback
1385+
>>> from giddy.markov import kullback
13881386
>>> s1 = np.array([
13891387
... [ 22, 11, 24, 2, 2, 7],
13901388
... [ 5, 23, 15, 3, 42, 6],
@@ -1470,8 +1468,8 @@ def prais(pmat):
14701468
--------
14711469
>>> import numpy as np
14721470
>>> import libpysal
1473-
>>> from giddy.api import prais
1474-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
1471+
>>> from giddy.markov import Markov,prais
1472+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
14751473
>>> pci = np.array([f.by_col[str(y)] for y in range(1929,2010)])
14761474
>>> q5 = np.array([mc.Quantiles(y).yb for y in pci]).transpose()
14771475
>>> m = Markov(q5)

giddy/mobility.py

+19-13
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,10 @@ def markov_mobility(p, measure="P",ini=None):
5353
--------
5454
>>> import numpy as np
5555
>>> import libpysal
56-
>>> import mapclassify.api as mc
57-
>>> from giddy.api import Markov, markov_mobility
58-
>>> f = libpysal.open(libpysal.examples.get_path("usjoin.csv"))
56+
>>> import mapclassify as mc
57+
>>> from giddy.markov import Markov
58+
>>> from giddy.mobility import markov_mobility
59+
>>> f = libpysal.io.open(libpysal.examples.get_path("usjoin.csv"))
5960
>>> pci = np.array([f.by_col[str(y)] for y in range(1929,2010)])
6061
>>> q5 = np.array([mc.Quantiles(y).yb for y in pci]).transpose()
6162
>>> m = Markov(q5)
@@ -68,32 +69,37 @@ def markov_mobility(p, measure="P",ini=None):
6869
6970
(1) Estimate Shorrock1 mobility index:
7071
71-
>>> markov_mobility(m.p, measure="P")
72-
0.19758992000997844
72+
>>> mobi_1 = markov_mobility(m.p, measure="P")
73+
>>> print("{:.5f}".format(mobi_1))
74+
0.19759
7375
7476
(2) Estimate Shorrock2 mobility index:
7577
76-
>>> markov_mobility(m.p, measure="D")
77-
0.6068485462369559
78+
>>> mobi_2 = markov_mobility(m.p, measure="D")
79+
>>> print("{:.5f}".format(mobi_2))
80+
0.60685
7881
7982
(3) Estimate Sommers and Conlisk mobility index:
8083
81-
>>> markov_mobility(m.p, measure="L2")
82-
0.03978200230815965
84+
>>> mobi_3 = markov_mobility(m.p, measure="L2")
85+
>>> print("{:.5f}".format(mobi_3))
86+
0.03978
8387
8488
(4) Estimate Bartholomew1 mobility index (note that the initial
8589
distribution should be given):
8690
8791
>>> ini = np.array([0.1,0.2,0.2,0.4,0.1])
88-
>>> markov_mobility(m.p, measure = "B1", ini=ini)
89-
0.2277675878319787
92+
>>> mobi_4 = markov_mobility(m.p, measure = "B1", ini=ini)
93+
>>> print("{:.5f}".format(mobi_4))
94+
0.22777
9095
9196
(5) Estimate Bartholomew2 mobility index (note that the initial
9297
distribution should be given):
9398
9499
>>> ini = np.array([0.1,0.2,0.2,0.4,0.1])
95-
>>> markov_mobility(m.p, measure = "B2", ini=ini)
96-
0.04636660119478926
100+
>>> mobi_5 = markov_mobility(m.p, measure = "B2", ini=ini)
101+
>>> print("{:.5f}".format(mobi_5))
102+
0.04637
97103
98104
"""
99105

0 commit comments

Comments
 (0)