Pysal

Latest version: v24.7

Safety actively analyzes 685838 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

23.07

Overall, there were 179 commits that closed 107 issues, together with 16 pull requests since our last release on 2023-02-01.


Changes by Package

giddy
* [187:](https://github.com/pysal/giddy/pull/187) small edits to long description
* [186:](https://github.com/pysal/giddy/pull/186) update github action for release
* [185:](https://github.com/pysal/giddy/issues/185) Update bleeding edge `libpysal` in dev envs
* [182:](https://github.com/pysal/giddy/pull/182) Prepare for v2.3.4 release


pointpats
* [62:](https://github.com/pysal/pointpats/issues/62) Update docs for 2.2.0
* [86:](https://github.com/pysal/pointpats/issues/86) Infrastructure
* [97:](https://github.com/pysal/pointpats/pull/97) Fix github action for docs building
* [96:](https://github.com/pysal/pointpats/pull/96) add packages for building docs in env file
* [95:](https://github.com/pysal/pointpats/pull/95) Docs
* [94:](https://github.com/pysal/pointpats/pull/94) bump to v2.3.0
* [92:](https://github.com/pysal/pointpats/pull/92) migrate docs from RTD to github page
* [91:](https://github.com/pysal/pointpats/pull/91) handle scipy deprecation
* [90:](https://github.com/pysal/pointpats/pull/90) add github action for release and doc building
* [64:](https://github.com/pysal/pointpats/pull/64) [WIP] Migrate to GitHub Actions for testing
* [80:](https://github.com/pysal/pointpats/issues/80) pointpats on conda-forge fails pip check
* [76:](https://github.com/pysal/pointpats/issues/76) Documentation for `pointpats` version 2.2.0 in Google Colab
* [63:](https://github.com/pysal/pointpats/issues/63) Move testing to github actions
* [79:](https://github.com/pysal/pointpats/issues/79) Deprecated statistics included in the manual
* [69:](https://github.com/pysal/pointpats/pull/69) update centrography test for dep induced precision breakage
* [88:](https://github.com/pysal/pointpats/pull/88) GHA: fix target
* [87:](https://github.com/pysal/pointpats/pull/87) Set up and update infrastructure
* [82:](https://github.com/pysal/pointpats/pull/82) Make opencv package optional
* [85:](https://github.com/pysal/pointpats/pull/85) DOC: fix API docs
* [84:](https://github.com/pysal/pointpats/issues/84) pointpats.random not in the API docs


segregation
* [217:](https://github.com/pysal/segregation/pull/217) dont run changelog on upload release
* [216:](https://github.com/pysal/segregation/pull/216) GHA: update release action for pyproject
* [215:](https://github.com/pysal/segregation/issues/215) publish workflow needs updating
* [213:](https://github.com/pysal/segregation/issues/213) Use of Total Population in Dissimilarity Index
* [200:](https://github.com/pysal/segregation/issues/200) simulate_evenness is forcing a geodataframe
* [212:](https://github.com/pysal/segregation/pull/212) infra
* [211:](https://github.com/pysal/segregation/pull/211) update infrastructure
* [210:](https://github.com/pysal/segregation/pull/210) remove pygeos


spaghetti
* [717:](https://github.com/pysal/spaghetti/issues/717) COMPAT: `geopandas==0.13.0` comp with `utils._points_as_gdf()`
* [726:](https://github.com/pysal/spaghetti/issues/726) `build_docs.yml` workflow failure with `v1.7.3` release
* [734:](https://github.com/pysal/spaghetti/pull/734) force reinstall package for version fetching in `build_docs.yaml`
* [731:](https://github.com/pysal/spaghetti/issues/731) local docs build "failure"
* [733:](https://github.com/pysal/spaghetti/pull/733) Doc patch
* [727:](https://github.com/pysal/spaghetti/issues/727) Swap`setup-micromamba` for `provision-with-micromamba` in CI
* [732:](https://github.com/pysal/spaghetti/pull/732) update micromamba in CI
* [730:](https://github.com/pysal/spaghetti/pull/730) [pre-commit.ci] pre-commit autoupdate
* [729:](https://github.com/pysal/spaghetti/issues/729) update pre-commit for new `ruff` GitHub
* [728:](https://github.com/pysal/spaghetti/pull/728) [pre-commit.ci] pre-commit autoupdate
* [724:](https://github.com/pysal/spaghetti/pull/724) refactor element_as_gdf internals
* [723:](https://github.com/pysal/spaghetti/issues/723) refactor `element_as_gdf()` internal constructors
* [721:](https://github.com/pysal/spaghetti/pull/721) Overhaul repo infrastructure
* [716:](https://github.com/pysal/spaghetti/issues/716) Update release action
* [704:](https://github.com/pysal/spaghetti/issues/704) Modernize infrastructure
* [715:](https://github.com/pysal/spaghetti/issues/715) Memory leak in `full_distance_matrix` when `n_processes > 1`
* [720:](https://github.com/pysal/spaghetti/pull/720) revisit `_points_as_gdf()`
* [718:](https://github.com/pysal/spaghetti/pull/718) compat with GeoPandas 0.13.0
* [719:](https://github.com/pysal/spaghetti/pull/719) Fix memory leak in `full_distance_matrix()`
* [713:](https://github.com/pysal/spaghetti/pull/713) Bump peter-evans/create-pull-request from 4 to 5
* [712:](https://github.com/pysal/spaghetti/pull/712) [pre-commit.ci] pre-commit autoupdate
* [711:](https://github.com/pysal/spaghetti/issues/711) Can we run network kernel density estimation using spaghetti?
* [709:](https://github.com/pysal/spaghetti/issues/709) Update bleeding edge `libpysal` in dev envs
* [710:](https://github.com/pysal/spaghetti/pull/710) swap master for main (libpysal)
* [708:](https://github.com/pysal/spaghetti/pull/708) update black pin in pre-commit
* [707:](https://github.com/pysal/spaghetti/pull/707) Update Versioneer


momepy
* [472:](https://github.com/pysal/momepy/issues/472) TypeError when using momepy.remove_false_nodes with shapely.geometry.linestring.LineString
* [486:](https://github.com/pysal/momepy/pull/486) RLS: fix PyPI long description
* [485:](https://github.com/pysal/momepy/pull/485) RLS: add 0.6.0 changelog
* [484:](https://github.com/pysal/momepy/pull/484) DOC: add note to COINS re undirected graphs
* [448:](https://github.com/pysal/momepy/issues/448) DOC: Unexpected results from momepy.COINS
* [483:](https://github.com/pysal/momepy/pull/483) [pre-commit.ci] pre-commit autoupdate
* [481:](https://github.com/pysal/momepy/issues/481) CI: `TestElements.test_get_node_id_ratio` failing in `311-dev.yaml`
* [480:](https://github.com/pysal/momepy/pull/480) [pre-commit.ci] pre-commit autoupdate
* [479:](https://github.com/pysal/momepy/pull/479) REF: update for shapely 2.0
* [443:](https://github.com/pysal/momepy/issues/443) Refactor code for shapely 2.0
* [464:](https://github.com/pysal/momepy/issues/464) Shapely no longer has 'lgeos' in version 2.0.0
* [477:](https://github.com/pysal/momepy/pull/477) [pre-commit.ci] pre-commit autoupdate
* [475:](https://github.com/pysal/momepy/pull/475) [pre-commit.ci] pre-commit autoupdate
* [476:](https://github.com/pysal/momepy/pull/476) update warnings for ruff
* [474:](https://github.com/pysal/momepy/pull/474) [pre-commit.ci] pre-commit autoupdate
* [473:](https://github.com/pysal/momepy/pull/473) TypeError when using momepy.remove_false_nodes with shapely.geometry.linestring.LineString
* [471:](https://github.com/pysal/momepy/pull/471) [pre-commit.ci] pre-commit autoupdate
* [470:](https://github.com/pysal/momepy/issues/470) remove `libpysal` pin in dev?
* [469:](https://github.com/pysal/momepy/pull/469) [pre-commit.ci] pre-commit autoupdate
* [468:](https://github.com/pysal/momepy/pull/468) remove redundant `requirements.txt`
* [467:](https://github.com/pysal/momepy/pull/467) MAINT: switch to pyproject and ruff
* [466:](https://github.com/pysal/momepy/issues/466) read_file: IllegalArgumentException: point array must contain 0 or >1 elements


spreg
* [113:](https://github.com/pysal/spreg/pull/113) Fixing minor bugs in the way results were bring printed in regimes models
* [112:](https://github.com/pysal/spreg/pull/112) Fixing a bug in the printing of results of Chow Test in ML_Lag_Regimes
* [111:](https://github.com/pysal/spreg/pull/111) Revision of Skater_reg's example notebook and its inclusion in the docs.


tobler
* [177:](https://github.com/pysal/tobler/pull/177) fix typo in pycno when nanhandle is false
* [176:](https://github.com/pysal/tobler/issues/176) Problems using pycno (handling of nulls)
* [175:](https://github.com/pysal/tobler/issues/175) Very Inaccurate results with area interpolation
* [173:](https://github.com/pysal/tobler/issues/173) 0.9 was not actually released
* [168:](https://github.com/pysal/tobler/issues/168) rename default branch from `master` to `main`
* [170:](https://github.com/pysal/tobler/issues/170) update testing & supported Python versions
* [140:](https://github.com/pysal/tobler/pull/140) [WIP] start kriging module
* [138:](https://github.com/pysal/tobler/pull/138) Categorization of notebooks
* [169:](https://github.com/pysal/tobler/issues/169) update infrastructure
* [174:](https://github.com/pysal/tobler/pull/174) update infrastructure
* [171:](https://github.com/pysal/tobler/issues/171) refactor to use shapely2 instead of pygeos
* [139:](https://github.com/pysal/tobler/pull/139) integrate smaup into tobler
* [172:](https://github.com/pysal/tobler/pull/172) REF: move from pygeos to shapely 2


mapclassify
* [182:](https://github.com/pysal/mapclassify/pull/182) [pre-commit.ci] pre-commit autoupdate
* [181:](https://github.com/pysal/mapclassify/pull/181) ENH: Pretty Breaks classifier
* [176:](https://github.com/pysal/mapclassify/pull/176) Add anchor option to StdMean
* [177:](https://github.com/pysal/mapclassify/pull/177) BUG: pass through lowest in User_Defined
* [178:](https://github.com/pysal/mapclassify/pull/178) DOC: surface find_bin
* [180:](https://github.com/pysal/mapclassify/pull/180) Bump peter-evans/create-pull-request from 4 to 5
* [179:](https://github.com/pysal/mapclassify/pull/179) [pre-commit.ci] pre-commit autoupdate
* [174:](https://github.com/pysal/mapclassify/pull/174) Update requirements_docs.txt
* [171:](https://github.com/pysal/mapclassify/pull/171) Update precommit and ignore formatting commits
* [172:](https://github.com/pysal/mapclassify/pull/172) [pre-commit.ci] pre-commit autoupdate
* [170:](https://github.com/pysal/mapclassify/pull/170) Update Versioneer



Contributors

Many thanks to all of the following individuals who contributed to this release:


- Eli Knaap
- James Gaboardi
- Levi John Wolf
- Martin Fleischmann
- Pedro Amaral
- Qiusheng Wu
- Serge Rey
- Wei Kang

23.01

Overall, there were 479 commits that closed 205 issues, together with 19 pull requests since our last release on 2022-07-31.

Highlights

- Version numbering has switched to YR.MO for the pysal meta-package release.
- The `spopt` package added a LSCP-B formulation and the P-Dispersion model through the excellent GSoC project by [Erin Olson](https://erinrolson.github.io/2022/09/08/GSOC-fifth-blog.html)



Changes by Package

libpysal
* [488:](https://github.com/pysal/libpysal/pull/488) type vs. geom_type with shapely
* [487:](https://github.com/pysal/libpysal/issues/487) address ShapelyDeprecationWarning The 'type' attribute is...
* [485:](https://github.com/pysal/libpysal/issues/485) allow for individual downloads and access to remote urls in examples
* [486:](https://github.com/pysal/libpysal/pull/486) ENH: more granularity in example handling
* [482:](https://github.com/pysal/libpysal/pull/482) test against shapely prerelease
* [479:](https://github.com/pysal/libpysal/issues/479) Creating Weights from dataframe: IndexError: index 0 is out of bounds for axis 0 with size 0
* [483:](https://github.com/pysal/libpysal/pull/483) Networkx3.0
* [481:](https://github.com/pysal/libpysal/pull/481) Platformdirs
* [478:](https://github.com/pysal/libpysal/pull/478) Updates warnings, etc.
* [391:](https://github.com/pysal/libpysal/issues/391) Test failures with GEOS 3.9.0


spaghetti
* [701:](https://github.com/pysal/spaghetti/issues/701) another `release_and_publish.yml` failures (due to `pyproject.toml`)
* [703:](https://github.com/pysal/spaghetti/pull/703) Update Versioneer
* [700:](https://github.com/pysal/spaghetti/pull/700) Update Versioneer
* [702:](https://github.com/pysal/spaghetti/pull/702) add formatting exclusions properly in toml
* [699:](https://github.com/pysal/spaghetti/pull/699) Update Versioneer
* [698:](https://github.com/pysal/spaghetti/pull/698) Update Versioneer
* [697:](https://github.com/pysal/spaghetti/pull/697) try versioneer action
* [696:](https://github.com/pysal/spaghetti/pull/696) remove pygeos from environments
* [680:](https://github.com/pysal/spaghetti/issues/680) remove `pygeos`
* [695:](https://github.com/pysal/spaghetti/pull/695) supplement `setup.py` with a `name` kwarg for dep graph
* [694:](https://github.com/pysal/spaghetti/issues/694) add `name` keyword in `setup.py`
* [693:](https://github.com/pysal/spaghetti/pull/693) [pre-commit.ci] pre-commit autoupdate
* [692:](https://github.com/pysal/spaghetti/pull/692) [pre-commit.ci] pre-commit autoupdate
* [690:](https://github.com/pysal/spaghetti/pull/690) try pyproject.toml; remove setup.cfg
* [691:](https://github.com/pysal/spaghetti/pull/691) [pre-commit.ci] pre-commit autoupdate
* [689:](https://github.com/pysal/spaghetti/pull/689) [pre-commit.ci] pre-commit autoupdate
* [688:](https://github.com/pysal/spaghetti/pull/688) adjust css for doc references
* [687:](https://github.com/pysal/spaghetti/pull/687) esda master -> main
* [686:](https://github.com/pysal/spaghetti/pull/686) update sphinx tooling, etc.
* [685:](https://github.com/pysal/spaghetti/pull/685) 1st attempt for Python 3.11 testing
* [684:](https://github.com/pysal/spaghetti/pull/684) [pre-commit.ci] pre-commit autoupdate
* [683:](https://github.com/pysal/spaghetti/pull/683) Bump actions/setup-python from 3 to 4
* [682:](https://github.com/pysal/spaghetti/pull/682) add linting in CI
* [681:](https://github.com/pysal/spaghetti/issues/681) Try out pre-commit.ci
* [679:](https://github.com/pysal/spaghetti/pull/679) Test against shapely pre-release
* [678:](https://github.com/pysal/spaghetti/issues/678) test against `shapely==2.0b1`
* [677:](https://github.com/pysal/spaghetti/pull/677) rerun notebooks
* [676:](https://github.com/pysal/spaghetti/pull/676) Update warnings, etc.



momepy
* [422:](https://github.com/pysal/momepy/pull/422) RLS: add 0.5.4 changelog
* [420:](https://github.com/pysal/momepy/pull/420) Add pyproject.toml fi# spvcm



mapclassify
* [165:](https://github.com/pysal/mapclassify/pull/165) Update Versioneer
* [167:](https://github.com/pysal/mapclassify/pull/167) Try skipping certain files with `isort`
* [166:](https://github.com/pysal/mapclassify/pull/166) update master/main link issue
* [164:](https://github.com/pysal/mapclassify/pull/164) Update Versioneer
* [163:](https://github.com/pysal/mapclassify/pull/163) Update infrastructure (actions)
* [162:](https://github.com/pysal/mapclassify/issues/162) GHA for updating `versioneer`
* [161:](https://github.com/pysal/mapclassify/issues/161) update branch of gh-action-pypi-publish
* [37:](https://github.com/pysal/mapclassify/issues/37) Add VBA functionality
* [159:](https://github.com/pysal/mapclassify/pull/159) [pre-commit.ci] pre-commit autoupdate
* [158:](https://github.com/pysal/mapclassify/pull/158) [pre-commit.ci] pre-commit autoupdate
* [157:](https://github.com/pysal/mapclassify/pull/157) [pre-commit.ci] pre-commit autoupdate
* [156:](https://github.com/pysal/mapclassify/pull/156) [pre-commit.ci] pre-commit autoupdate
* [142:](https://github.com/pysal/mapclassify/issues/142) `MaxP.update()` – bins used by not defined
* [155:](https://github.com/pysal/mapclassify/pull/155) Remove `update` method from `MaxP`
* [154:](https://github.com/pysal/mapclassify/pull/154) Use `libpysal.fuzzy_contiguity()` in `greedy`
* [148:](https://github.com/pysal/mapclassify/issues/148) swap greedy. _geos_sw() for libpysal.fuzzy_contiguity
* [135:](https://github.com/pysal/mapclassify/pull/135) Thorough scouring of docs + doc build infrastructure
* [141:](https://github.com/pysal/mapclassify/issues/141) love and care for docstrings, etc.
* [152:](https://github.com/pysal/mapclassify/pull/152) ENH: addressing #145
* [153:](https://github.com/pysal/mapclassify/pull/153) remove spaces after table string title
* [145:](https://github.com/pysal/mapclassify/issues/145) remove spaces from title of classifier table string
* [150:](https://github.com/pysal/mapclassify/pull/150) Switch to pytest
* [146:](https://github.com/pysal/mapclassify/issues/146) convert from `unittest` to `pytest`
* [147:](https://github.com/pysal/mapclassify/pull/147) improve warnings and exceptions
* [140:](https://github.com/pysal/mapclassify/issues/140) warn or raise vs. print statements for unexpected behavior
* [151:](https://github.com/pysal/mapclassify/pull/151) [pre-commit.ci] pre-commit autoupdate
* [149:](https://github.com/pysal/mapclassify/issues/149) silence warnings option when `k` classes not possible?
* [144:](https://github.com/pysal/mapclassify/pull/144) update GHA for CI
* [143:](https://github.com/pysal/mapclassify/pull/143) remove _table_string() method
* [139:](https://github.com/pysal/mapclassify/issues/139) remove old/redundant MapClassifier._table_string() method
* [138:](https://github.com/pysal/mapclassify/pull/138) Bump actions/checkout from 2 to 3
* [137:](https://github.com/pysal/mapclassify/pull/137) Bump codecov/codecov-action from 2 to 3
* [136:](https://github.com/pysal/mapclassify/pull/136) update release action, etc.
* [105:](https://github.com/pysal/mapclassify/issues/105) Fix changelog builder to give proper attribution
* [134:](https://github.com/pysal/mapclassify/pull/134) updating branch in badges on README
* [133:](https://github.com/pysal/mapclassify/pull/133) resolves #132
* [132:](https://github.com/pysal/mapclassify/issues/132) update binder environment
* [129:](https://github.com/pysal/mapclassify/issues/129) ``RuntimeWarning: invalid value encountered in double_scalars``
* [131:](https://github.com/pysal/mapclassify/pull/131) ENH: handle invariant arrays
* [112:](https://github.com/pysal/mapclassify/issues/112) `plot` doesn't work for pooled classifications
* [130:](https://github.com/pysal/mapclassify/issues/130) change default branch from master to main
* [128:](https://github.com/pysal/mapclassify/pull/128) [MAINT] lint & format repo; update CI; handle DeprWarns, etc.



spopt
* [276:](https://github.com/pysal/spopt/issues/276) P-Median Problem Tutorial Binder example
* [344:](https://github.com/pysal/spopt/pull/344) Add `requirements_notebooks.txt` to MANIFEST
* [343:](https://github.com/pysal/spopt/issues/343) The requirementes notebook is missing from the MANIFEST.in
* [342:](https://github.com/pysal/spopt/pull/342) Update Versioneer
* [340:](https://github.com/pysal/spopt/pull/340) add versioneer action
* [339:](https://github.com/pysal/spopt/issues/339) add a GHA for updating `versioneer`
* [338:](https://github.com/pysal/spopt/pull/338) Update `release_and_publish.yml`
* [337:](https://github.com/pysal/spopt/issues/337) update branch of `gh-action-pypi-publish`
* [336:](https://github.com/pysal/spopt/pull/336) [BUG] bounds for client assignment variables
* [328:](https://github.com/pysal/spopt/issues/328) [BUG] client assignment variable bounds for CLSCP-SO
* [329:](https://github.com/pysal/spopt/pull/329) Clean up the implementation of the capacitated LSCP
* [320:](https://github.com/pysal/spopt/issues/320) clean up CLSCP-SO implementation
* [335:](https://github.com/pysal/spopt/pull/335) polish up docstrings, etc. in skater.py
* [333:](https://github.com/pysal/spopt/pull/333) [BUG] `affinity` in Skater spanning forest
* [332:](https://github.com/pysal/spopt/issues/332) customize tqdm progress bar in Skater
* [321:](https://github.com/pysal/spopt/issues/321) [BUG] using `affinity` in `skater.SpanningForest`
* [334:](https://github.com/pysal/spopt/pull/334) doc build env correction
* [330:](https://github.com/pysal/spopt/pull/330) Update sphinx requirement from <=4.5.0 to <6.2.0
* [309:](https://github.com/pysal/spopt/pull/309) workaround for cascading references in docs
* [327:](https://github.com/pysal/spopt/pull/327) Update sphinx requirement from <=4.5.0 to <6.1.0
* [324:](https://github.com/pysal/spopt/pull/324) individual `locate` test, tqdm, & bare minimal testing env
* [323:](https://github.com/pysal/spopt/issues/323) test against a minimal / bare bones environment
* [322:](https://github.com/pysal/spopt/issues/322) add `tqdm` as on optional req
* [318:](https://github.com/pysal/spopt/issues/318) break out `test_locate.py`
* [234:](https://github.com/pysal/spopt/issues/234) Factoring in Facility Capacities
* [319:](https://github.com/pysal/spopt/pull/319) Streamline redundant parameter passing in constraint constructors
* [317:](https://github.com/pysal/spopt/issues/317) streamline variable and constraint creation
* [7:](https://github.com/pysal/spopt/issues/7) input is not sanitised before it is used
* [316:](https://github.com/pysal/spopt/pull/316) Fix CLSCP-SO bugs and add tests
* [315:](https://github.com/pysal/spopt/issues/315) raise if demand > capacity in CLSCP-SO
* [314:](https://github.com/pysal/spopt/issues/314) [BUG] service radius threshold not respected in CLSCP-SO
* [273:](https://github.com/pysal/spopt/pull/273) Facility capacity for LSCP
* [313:](https://github.com/pysal/spopt/pull/313) [pre-commit.ci] pre-commit autoupdate
* [307:](https://github.com/pysal/spopt/pull/307) doc work and formatting continued (random_region, util, ward)
* [312:](https://github.com/pysal/spopt/pull/312) expose SPENC kwargs
* [310:](https://github.com/pysal/spopt/issues/310) remove external `spenc` from CI envs
* [172:](https://github.com/pysal/spopt/issues/172) Allow passing all keywords into Spenc
* [305:](https://github.com/pysal/spopt/pull/305) utilize `BaseSpOptExactSolver`
* [306:](https://github.com/pysal/spopt/pull/306) Update sphinx requirement from <=4.5.0 to <5.4.0
* [302:](https://github.com/pysal/spopt/pull/302) start of doc work – focusing on `locate` docs
* [304:](https://github.com/pysal/spopt/issues/304) update locate images & add tutorial links
* [300:](https://github.com/pysal/spopt/issues/300) doc work and cleanup -- add locate formulations to docstrings
* [296:](https://github.com/pysal/spopt/pull/296) New attributes & functionality for `locate` models
* [287:](https://github.com/pysal/spopt/issues/287) calculate `get_percentage()` within ``MCLP.solve(results=True)``
* [286:](https://github.com/pysal/spopt/issues/286) calculate `get_mean_distance()` within ``PMedian.solve(results=True)``
* [285:](https://github.com/pysal/spopt/issues/285) remove BaseOutputMixin from PDispersion
* [283:](https://github.com/pysal/spopt/issues/283) get_backup_percentage method for LSCP-B
* [282:](https://github.com/pysal/spopt/issues/282) maybe set solver as attribute in LSCPB?
* [267:](https://github.com/pysal/spopt/issues/267) pre-defined facilities for all location models?
* [301:](https://github.com/pysal/spopt/pull/301) [pre-commit.ci] pre-commit autoupdate
* [294:](https://github.com/pysal/spopt/pull/294) Region-k-means seed
* [213:](https://github.com/pysal/spopt/issues/213) K means heuristic test failure
* [297:](https://github.com/pysal/spopt/issues/297) keep or remove RegionMixin
* [215:](https://github.com/pysal/spopt/issues/215) maximum-coverage-location package
* [293:](https://github.com/pysal/spopt/pull/293) remove pip install in notebooks
* [290:](https://github.com/pysal/spopt/issues/290) more issues with binder for locate notebooks
* [292:](https://github.com/pysal/spopt/pull/292) Drop Py37, update binders, & test future shapely dev
* [291:](https://github.com/pysal/spopt/issues/291) update shapely_dev testing
* [284:](https://github.com/pysal/spopt/issues/284) drop testing/support for Python 3.7
* [288:](https://github.com/pysal/spopt/pull/288) Update/cleanup/standardize notebooks
* [289:](https://github.com/pysal/spopt/issues/289) test `spopt` against the `shapely==2.0b1`
* [269:](https://github.com/pysal/spopt/issues/269) update docs for new location models
* [57:](https://github.com/pysal/spopt/issues/57) Throws an error when silhoutte coefficients for two clusters are the same
* [187:](https://github.com/pysal/spopt/issues/187) The dissimilarity parameter should be able to accept a distance/dissimilarity matrix as an alternative to a callable distance function
* [188:](https://github.com/pysal/spopt/pull/188) [WIP] allow for precomputed distance matrices
* [263:](https://github.com/pysal/spopt/issues/263) LSCP Notebook Plots
* [21:](https://github.com/pysal/spopt/issues/21) differentiating spatial clusterers
* [281:](https://github.com/pysal/spopt/issues/281) comparing the LSCP and LSCP-B results
* [278:](https://github.com/pysal/spopt/issues/278) AttributeError: type object 'FacilityModelBuilder' has no attribute 'add_maximized_min_variable'
* [279:](https://github.com/pysal/spopt/pull/279) testing overhaul, etc
* [260:](https://github.com/pysal/spopt/issues/260) GSoC 2022 Interfaces for Consistent API Design
* [277:](https://github.com/pysal/spopt/pull/277) .coverage in .gitignore
* [265:](https://github.com/pysal/spopt/issues/265) Add .coverage to .gitignore
* [268:](https://github.com/pysal/spopt/pull/268) P dispersion
* [275:](https://github.com/pysal/spopt/pull/275) Update typo in p-median example
* [259:](https://github.com/pysal/spopt/pull/259) LSCP-B
* [271:](https://github.com/pysal/spopt/pull/271) Lscpb formulation
* [270:](https://github.com/pysal/spopt/issues/270) LSCP-B formulation?
* [272:](https://github.com/pysal/spopt/pull/272) Rewrite LSCPB formulation

Contributors

Many thanks to all of the following individuals who contributed to this release:


- Andres Morfin Veytia
- Erin Olson
- Germano Barcelos
- Greg Maya
- James Gaboardi
- Levi John Wolf
- Martin Fleischmann
- Nick Bearman
- Pedro Amaral
- Serge Reyi

23.01.0rc1

Overall, there were 479 commits that closed 205 issues, together with 19 pull requests since our last release on 2022-07-31.

Highlights

- Version numbering has switched to YR.MO for the pysal meta-package release.
- The `spopt` package added a LSCP-B formulation and the P-Dispersion model through the excellent GSoC project by [Erin Olson](https://erinrolson.github.io/2022/09/08/GSOC-fifth-blog.html)


Changes by Package

libpysal
* [488:](https://github.com/pysal/libpysal/pull/488) type vs. geom_type with shapely
* [487:](https://github.com/pysal/libpysal/issues/487) address ShapelyDeprecationWarning The 'type' attribute is...
* [485:](https://github.com/pysal/libpysal/issues/485) allow for individual downloads and access to remote urls in examples
* [486:](https://github.com/pysal/libpysal/pull/486) ENH: more granularity in example handling
* [482:](https://github.com/pysal/libpysal/pull/482) test against shapely prerelease
* [479:](https://github.com/pysal/libpysal/issues/479) Creating Weights from dataframe: IndexError: index 0 is out of bounds for axis 0 with size 0
* [483:](https://github.com/pysal/libpysal/pull/483) Networkx3.0
* [481:](https://github.com/pysal/libpysal/pull/481) Platformdirs
* [478:](https://github.com/pysal/libpysal/pull/478) Updates warnings, etc.
* [391:](https://github.com/pysal/libpysal/issues/391) Test failures with GEOS 3.9.0


access


esda


giddy


inequality


pointpats


segregation


spaghetti
* [701:](https://github.com/pysal/spaghetti/issues/701) another `release_and_publish.yml` failures (due to `pyproject.toml`)
* [703:](https://github.com/pysal/spaghetti/pull/703) Update Versioneer
* [700:](https://github.com/pysal/spaghetti/pull/700) Update Versioneer
* [702:](https://github.com/pysal/spaghetti/pull/702) add formatting exclusions properly in toml
* [699:](https://github.com/pysal/spaghetti/pull/699) Update Versioneer
* [698:](https://github.com/pysal/spaghetti/pull/698) Update Versioneer
* [697:](https://github.com/pysal/spaghetti/pull/697) try versioneer action
* [696:](https://github.com/pysal/spaghetti/pull/696) remove pygeos from environments
* [680:](https://github.com/pysal/spaghetti/issues/680) remove `pygeos`
* [695:](https://github.com/pysal/spaghetti/pull/695) supplement `setup.py` with a `name` kwarg for dep graph
* [694:](https://github.com/pysal/spaghetti/issues/694) add `name` keyword in `setup.py`
* [693:](https://github.com/pysal/spaghetti/pull/693) [pre-commit.ci] pre-commit autoupdate
* [692:](https://github.com/pysal/spaghetti/pull/692) [pre-commit.ci] pre-commit autoupdate
* [690:](https://github.com/pysal/spaghetti/pull/690) try pyproject.toml; remove setup.cfg
* [691:](https://github.com/pysal/spaghetti/pull/691) [pre-commit.ci] pre-commit autoupdate
* [689:](https://github.com/pysal/spaghetti/pull/689) [pre-commit.ci] pre-commit autoupdate
* [688:](https://github.com/pysal/spaghetti/pull/688) adjust css for doc references
* [687:](https://github.com/pysal/spaghetti/pull/687) esda master -> main
* [686:](https://github.com/pysal/spaghetti/pull/686) update sphinx tooling, etc.
* [685:](https://github.com/pysal/spaghetti/pull/685) 1st attempt for Python 3.11 testing
* [684:](https://github.com/pysal/spaghetti/pull/684) [pre-commit.ci] pre-commit autoupdate
* [683:](https://github.com/pysal/spaghetti/pull/683) Bump actions/setup-python from 3 to 4
* [682:](https://github.com/pysal/spaghetti/pull/682) add linting in CI
* [681:](https://github.com/pysal/spaghetti/issues/681) Try out pre-commit.ci
* [679:](https://github.com/pysal/spaghetti/pull/679) Test against shapely pre-release
* [678:](https://github.com/pysal/spaghetti/issues/678) test against `shapely==2.0b1`
* [677:](https://github.com/pysal/spaghetti/pull/677) rerun notebooks
* [676:](https://github.com/pysal/spaghetti/pull/676) Update warnings, etc.


mgwr


momepy
* [422:](https://github.com/pysal/momepy/pull/422) RLS: add 0.5.4 changelog
* [420:](https://github.com/pysal/momepy/pull/420) Add pyproject.toml file
* [415:](https://github.com/pysal/momepy/issues/415) add a project.toml?
* [419:](https://github.com/pysal/momepy/pull/419) proof README.md
* [416:](https://github.com/pysal/momepy/pull/416) Scour docs for consistency, grammar, etc.
* [414:](https://github.com/pysal/momepy/issues/414) scour docstrings (grammar, punctuation, etc.)
* [418:](https://github.com/pysal/momepy/pull/418) GHA: update PyPI release action
* [413:](https://github.com/pysal/momepy/pull/413) add flake8 and isort to CI
* [412:](https://github.com/pysal/momepy/issues/412) enhance CI with flake8 & isort
* [409:](https://github.com/pysal/momepy/pull/409) BUG: get_network_ratio non-interescting joins fix
* [408:](https://github.com/pysal/momepy/issues/408) BUG: get_network_ratio returns wrong ID for non-intersecting join
* [410:](https://github.com/pysal/momepy/pull/410) minor spelling and punctuation update
* [392:](https://github.com/pysal/momepy/pull/392) ENH: roundabout_simplification() notebook example
* [407:](https://github.com/pysal/momepy/pull/407) CI: test preprocessing part of user guide
* [405:](https://github.com/pysal/momepy/pull/405) Run user guide tests with Python 3.10
* [403:](https://github.com/pysal/momepy/pull/403) remove pygeos duplicate
* [400:](https://github.com/pysal/momepy/pull/400) standardize pytest.approx() in testing files
* [404:](https://github.com/pysal/momepy/pull/404) bump copyright year
* [402:](https://github.com/pysal/momepy/issues/402) pygeos occurs twice in asv.conf.json - matrix
* [401:](https://github.com/pysal/momepy/issues/401) test user guide against Python 3.10?
* [399:](https://github.com/pysal/momepy/issues/399) both pytest.approx() and approx() used in testing
* [398:](https://github.com/pysal/momepy/pull/398) Fix various warnings
* [397:](https://github.com/pysal/momepy/issues/397) Fix thrown warnings in dimension, elements, diversity
* [395:](https://github.com/pysal/momepy/pull/395) handle `All NaN slice` warning
* [394:](https://github.com/pysal/momepy/issues/394) Handle `All-NaN slice encountered` warning in diversity.Percentiles()
* [390:](https://github.com/pysal/momepy/issues/390) limit numpy version evaluations in diversity.Percentiles
* [393:](https://github.com/pysal/momepy/pull/393) DOC: create preprocessing section
* [388:](https://github.com/pysal/momepy/issues/388) suppress warnings in dimensions.StreetProfile()
* [389:](https://github.com/pysal/momepy/pull/389) handle scenarios leading to dimensions.StreetProfile() warnings
* [391:](https://github.com/pysal/momepy/pull/391) Rabs geom
* [386:](https://github.com/pysal/momepy/issues/386) numpy. nanpercentile() has a renamed keyword
* [383:](https://github.com/pysal/momepy/issues/383) update .append method for dataframes
* [382:](https://github.com/pysal/momepy/pull/382) REF: remove deprecated pandas append
* [384:](https://github.com/pysal/momepy/pull/384) REF: replace append with concat
* [387:](https://github.com/pysal/momepy/pull/387) address numpy.nanpercentile warning
* [385:](https://github.com/pysal/momepy/pull/385) DOC: temporarily pin theme
* [371:](https://github.com/pysal/momepy/pull/371) ENH: geometry-based simplification of roundabouts
* [379:](https://github.com/pysal/momepy/pull/379) Added warning for gdp_to_nx if geometries are not LineStrings
* [378:](https://github.com/pysal/momepy/pull/378) BUG: make coins independent of gdf index
* [373:](https://github.com/pysal/momepy/pull/373) DOC: compat with latest sphinx pydata theme
* [362:](https://github.com/pysal/momepy/issues/362) DOC: broken colours with new pydata_sphinx_theme


spglm


spint


spreg
* [108:](https://github.com/pysal/spreg/pull/108) update gitcount and conf.py
* [107:](https://github.com/pysal/spreg/pull/107) update workflows/ci
* [100:](https://github.com/pysal/spreg/pull/100) update tools/gitcount notebook
* [105:](https://github.com/pysal/spreg/pull/105) Fixing failed tests for new release
* [104:](https://github.com/pysal/spreg/pull/104) Version update


spvcm


tobler


mapclassify
* [165:](https://github.com/pysal/mapclassify/pull/165) Update Versioneer
* [167:](https://github.com/pysal/mapclassify/pull/167) Try skipping certain files with `isort`
* [166:](https://github.com/pysal/mapclassify/pull/166) update master/main link issue
* [164:](https://github.com/pysal/mapclassify/pull/164) Update Versioneer
* [163:](https://github.com/pysal/mapclassify/pull/163) Update infrastructure (actions)
* [162:](https://github.com/pysal/mapclassify/issues/162) GHA for updating `versioneer`
* [161:](https://github.com/pysal/mapclassify/issues/161) update branch of gh-action-pypi-publish
* [37:](https://github.com/pysal/mapclassify/issues/37) Add VBA functionality
* [159:](https://github.com/pysal/mapclassify/pull/159) [pre-commit.ci] pre-commit autoupdate
* [158:](https://github.com/pysal/mapclassify/pull/158) [pre-commit.ci] pre-commit autoupdate
* [157:](https://github.com/pysal/mapclassify/pull/157) [pre-commit.ci] pre-commit autoupdate
* [156:](https://github.com/pysal/mapclassify/pull/156) [pre-commit.ci] pre-commit autoupdate
* [142:](https://github.com/pysal/mapclassify/issues/142) `MaxP.update()` – bins used by not defined
* [155:](https://github.com/pysal/mapclassify/pull/155) Remove `update` method from `MaxP`
* [154:](https://github.com/pysal/mapclassify/pull/154) Use `libpysal.fuzzy_contiguity()` in `greedy`
* [148:](https://github.com/pysal/mapclassify/issues/148) swap greedy. _geos_sw() for libpysal.fuzzy_contiguity
* [135:](https://github.com/pysal/mapclassify/pull/135) Thorough scouring of docs + doc build infrastructure
* [141:](https://github.com/pysal/mapclassify/issues/141) love and care for docstrings, etc.
* [152:](https://github.com/pysal/mapclassify/pull/152) ENH: addressing #145
* [153:](https://github.com/pysal/mapclassify/pull/153) remove spaces after table string title
* [145:](https://github.com/pysal/mapclassify/issues/145) remove spaces from title of classifier table string
* [150:](https://github.com/pysal/mapclassify/pull/150) Switch to pytest
* [146:](https://github.com/pysal/mapclassify/issues/146) convert from `unittest` to `pytest`
* [147:](https://github.com/pysal/mapclassify/pull/147) improve warnings and exceptions
* [140:](https://github.com/pysal/mapclassify/issues/140) warn or raise vs. print statements for unexpected behavior
* [151:](https://github.com/pysal/mapclassify/pull/151) [pre-commit.ci] pre-commit autoupdate
* [149:](https://github.com/pysal/mapclassify/issues/149) silence warnings option when `k` classes not possible?
* [144:](https://github.com/pysal/mapclassify/pull/144) update GHA for CI
* [143:](https://github.com/pysal/mapclassify/pull/143) remove _table_string() method
* [139:](https://github.com/pysal/mapclassify/issues/139) remove old/redundant MapClassifier._table_string() method
* [138:](https://github.com/pysal/mapclassify/pull/138) Bump actions/checkout from 2 to 3
* [137:](https://github.com/pysal/mapclassify/pull/137) Bump codecov/codecov-action from 2 to 3
* [136:](https://github.com/pysal/mapclassify/pull/136) update release action, etc.
* [105:](https://github.com/pysal/mapclassify/issues/105) Fix changelog builder to give proper attribution
* [134:](https://github.com/pysal/mapclassify/pull/134) updating branch in badges on README
* [133:](https://github.com/pysal/mapclassify/pull/133) resolves #132
* [132:](https://github.com/pysal/mapclassify/issues/132) update binder environment
* [129:](https://github.com/pysal/mapclassify/issues/129) ``RuntimeWarning: invalid value encountered in double_scalars``
* [131:](https://github.com/pysal/mapclassify/pull/131) ENH: handle invariant arrays
* [112:](https://github.com/pysal/mapclassify/issues/112) `plot` doesn't work for pooled classifications
* [130:](https://github.com/pysal/mapclassify/issues/130) change default branch from master to main
* [128:](https://github.com/pysal/mapclassify/pull/128) [MAINT] lint & format repo; update CI; handle DeprWarns, etc.


splot


spopt
* [344:](https://github.com/pysal/spopt/pull/344) Add `requirements_notebooks.txt` to MANIFEST
* [343:](https://github.com/pysal/spopt/issues/343) The requirementes notebook is missing from the MANIFEST.in
* [342:](https://github.com/pysal/spopt/pull/342) Update Versioneer
* [340:](https://github.com/pysal/spopt/pull/340) add versioneer action
* [339:](https://github.com/pysal/spopt/issues/339) add a GHA for updating `versioneer`
* [338:](https://github.com/pysal/spopt/pull/338) Update `release_and_publish.yml`
* [337:](https://github.com/pysal/spopt/issues/337) update branch of `gh-action-pypi-publish`
* [336:](https://github.com/pysal/spopt/pull/336) [BUG] bounds for client assignment variables
* [328:](https://github.com/pysal/spopt/issues/328) [BUG] client assignment variable bounds for CLSCP-SO
* [329:](https://github.com/pysal/spopt/pull/329) Clean up the implementation of the capacitated LSCP
* [320:](https://github.com/pysal/spopt/issues/320) clean up CLSCP-SO implementation
* [335:](https://github.com/pysal/spopt/pull/335) polish up docstrings, etc. in skater.py
* [333:](https://github.com/pysal/spopt/pull/333) [BUG] `affinity` in Skater spanning forest
* [332:](https://github.com/pysal/spopt/issues/332) customize tqdm progress bar in Skater
* [321:](https://github.com/pysal/spopt/issues/321) [BUG] using `affinity` in `skater.SpanningForest`
* [334:](https://github.com/pysal/spopt/pull/334) doc build env correction
* [330:](https://github.com/pysal/spopt/pull/330) Update sphinx requirement from <=4.5.0 to <6.2.0
* [309:](https://github.com/pysal/spopt/pull/309) workaround for cascading references in docs
* [327:](https://github.com/pysal/spopt/pull/327) Update sphinx requirement from <=4.5.0 to <6.1.0
* [324:](https://github.com/pysal/spopt/pull/324) individual `locate` test, tqdm, & bare minimal testing env
* [323:](https://github.com/pysal/spopt/issues/323) test against a minimal / bare bones environment
* [322:](https://github.com/pysal/spopt/issues/322) add `tqdm` as on optional req
* [318:](https://github.com/pysal/spopt/issues/318) break out `test_locate.py`
* [234:](https://github.com/pysal/spopt/issues/234) Factoring in Facility Capacities
* [319:](https://github.com/pysal/spopt/pull/319) Streamline redundant parameter passing in constraint constructors
* [317:](https://github.com/pysal/spopt/issues/317) streamline variable and constraint creation
* [7:](https://github.com/pysal/spopt/issues/7) input is not sanitised before it is used
* [316:](https://github.com/pysal/spopt/pull/316) Fix CLSCP-SO bugs and add tests
* [315:](https://github.com/pysal/spopt/issues/315) raise if demand > capacity in CLSCP-SO
* [314:](https://github.com/pysal/spopt/issues/314) [BUG] service radius threshold not respected in CLSCP-SO
* [273:](https://github.com/pysal/spopt/pull/273) Facility capacity for LSCP
* [313:](https://github.com/pysal/spopt/pull/313) [pre-commit.ci] pre-commit autoupdate
* [307:](https://github.com/pysal/spopt/pull/307) doc work and formatting continued (random_region, util, ward)
* [312:](https://github.com/pysal/spopt/pull/312) expose SPENC kwargs
* [310:](https://github.com/pysal/spopt/issues/310) remove external `spenc` from CI envs
* [172:](https://github.com/pysal/spopt/issues/172) Allow passing all keywords into Spenc
* [305:](https://github.com/pysal/spopt/pull/305) utilize `BaseSpOptExactSolver`
* [306:](https://github.com/pysal/spopt/pull/306) Update sphinx requirement from <=4.5.0 to <5.4.0
* [302:](https://github.com/pysal/spopt/pull/302) start of doc work – focusing on `locate` docs
* [304:](https://github.com/pysal/spopt/issues/304) update locate images & add tutorial links
* [300:](https://github.com/pysal/spopt/issues/300) doc work and cleanup -- add locate formulations to docstrings
* [296:](https://github.com/pysal/spopt/pull/296) New attributes & functionality for `locate` models
* [287:](https://github.com/pysal/spopt/issues/287) calculate `get_percentage()` within ``MCLP.solve(results=True)``
* [286:](https://github.com/pysal/spopt/issues/286) calculate `get_mean_distance()` within ``PMedian.solve(results=True)``
* [285:](https://github.com/pysal/spopt/issues/285) remove BaseOutputMixin from PDispersion
* [283:](https://github.com/pysal/spopt/issues/283) get_backup_percentage method for LSCP-B
* [282:](https://github.com/pysal/spopt/issues/282) maybe set solver as attribute in LSCPB?
* [267:](https://github.com/pysal/spopt/issues/267) pre-defined facilities for all location models?
* [301:](https://github.com/pysal/spopt/pull/301) [pre-commit.ci] pre-commit autoupdate
* [294:](https://github.com/pysal/spopt/pull/294) Region-k-means seed
* [213:](https://github.com/pysal/spopt/issues/213) K means heuristic test failure
* [297:](https://github.com/pysal/spopt/issues/297) keep or remove RegionMixin
* [215:](https://github.com/pysal/spopt/issues/215) maximum-coverage-location package
* [293:](https://github.com/pysal/spopt/pull/293) remove pip install in notebooks
* [290:](https://github.com/pysal/spopt/issues/290) more issues with binder for locate notebooks
* [292:](https://github.com/pysal/spopt/pull/292) Drop Py37, update binders, & test future shapely dev
* [291:](https://github.com/pysal/spopt/issues/291) update shapely_dev testing
* [284:](https://github.com/pysal/spopt/issues/284) drop testing/support for Python 3.7
* [288:](https://github.com/pysal/spopt/pull/288) Update/cleanup/standardize notebooks
* [289:](https://github.com/pysal/spopt/issues/289) test `spopt` against the `shapely==2.0b1`
* [276:](https://github.com/pysal/spopt/issues/276) P-Median Problem Tutorial Binder example
* [269:](https://github.com/pysal/spopt/issues/269) update docs for new location models
* [57:](https://github.com/pysal/spopt/issues/57) Throws an error when silhoutte coefficients for two clusters are the same
* [187:](https://github.com/pysal/spopt/issues/187) The dissimilarity parameter should be able to accept a distance/dissimilarity matrix as an alternative to a callable distance function
* [188:](https://github.com/pysal/spopt/pull/188) [WIP] allow for precomputed distance matrices
* [263:](https://github.com/pysal/spopt/issues/263) LSCP Notebook Plots
* [21:](https://github.com/pysal/spopt/issues/21) differentiating spatial clusterers
* [281:](https://github.com/pysal/spopt/issues/281) comparing the LSCP and LSCP-B results
* [278:](https://github.com/pysal/spopt/issues/278) AttributeError: type object 'FacilityModelBuilder' has no attribute 'add_maximized_min_variable'
* [279:](https://github.com/pysal/spopt/pull/279) testing overhaul, etc
* [260:](https://github.com/pysal/spopt/issues/260) GSoC 2022 Interfaces for Consistent API Design
* [277:](https://github.com/pysal/spopt/pull/277) .coverage in .gitignore
* [265:](https://github.com/pysal/spopt/issues/265) Add .coverage to .gitignore
* [268:](https://github.com/pysal/spopt/pull/268) P dispersion
* [275:](https://github.com/pysal/spopt/pull/275) Update typo in p-median example
* [259:](https://github.com/pysal/spopt/pull/259) LSCP-B
* [271:](https://github.com/pysal/spopt/pull/271) Lscpb formulation
* [270:](https://github.com/pysal/spopt/issues/270) LSCP-B formulation?
* [272:](https://github.com/pysal/spopt/pull/272) Rewrite LSCPB formulation

Contributors

Many thanks to all of the following individuals who contributed to this release:


- Andres Morfin Veytia
- Erin Olson
- Germano Barcelos
- Greg Maya
- James Gaboardi
- Levi John Wolf
- Martin Fleischmann
- Nick Bearman
- Pedro Amaral
- Serge Rey

2.7.0

Overall, there were 212 commits that closed 81 issues, together with 14 pull requests since our last release on 2022-02-01.


Highlights

- The `segregation` package added a new set of measures, the global and local Distortion indices, based on [Bezenac et al](https://onlinelibrary.wiley.com/doi/10.1111/gean.12271) thanks to an excellent GSoC project by [Noah Bouchier](https://github.com/noahbouchier)
- The `spreg` package added functionalities to estimate endogenous spatial regimes models based on [Anselin & Amaral (2021)](http://dx.doi.org/10.13140/RG.2.2.20310.78401)
- A [paper](https://joss.theoj.org/papers/10.21105/joss.03330) highlighting the `spopt` package was published in the Journal of Open Source Software.


<a name="changes-by-package"></a>
Changes by Package


<a name="libpysal"></a>
libpysal
* [454:](https://github.com/pysal/libpysal/pull/454) revert shapely hard dependecy
* [453:](https://github.com/pysal/libpysal/issues/453) Shapely Dependancy Added
* [457:](https://github.com/pysal/libpysal/pull/457) [WIP] Filter holes from alpha shape returns
* [461:](https://github.com/pysal/libpysal/pull/461) Bump actions/checkout from 2 to 3
* [460:](https://github.com/pysal/libpysal/pull/460) Update release_and_publish.yml
* [458:](https://github.com/pysal/libpysal/issues/458) Is 10.yaml missing in ci?
* [459:](https://github.com/pysal/libpysal/pull/459) Update build_docs.yml


<a name="access"></a>
access
* [36:](https://github.com/pysal/access/pull/36) key error from #34
* [28:](https://github.com/pysal/access/issues/28) Raam outputs
* [31:](https://github.com/pysal/access/issues/31) release + upload workflow failure
* [33:](https://github.com/pysal/access/pull/33) bump to v1.1.7
* [32:](https://github.com/pysal/access/pull/32) update gitcount tool for access
* [30:](https://github.com/pysal/access/pull/30) Update setup.py
* [29:](https://github.com/pysal/access/issues/29) generate pypi token for Secret in GH
* [26:](https://github.com/pysal/access/pull/26) Partial solution to #18
* [18:](https://github.com/pysal/access/issues/18) [BUG]: demand estimation is incorrect with asymmetric travel matrices



<a name="segregation"></a>
segregation
* [199:](https://github.com/pysal/segregation/pull/199) move pandana into function-level import inside reproject_network
* [198:](https://github.com/pysal/segregation/pull/198) pyproj pin
* [197:](https://github.com/pysal/segregation/pull/197) add pin for minimum pyproj
* [196:](https://github.com/pysal/segregation/pull/196) Sjr/docs
* [192:](https://github.com/pysal/segregation/pull/192) add KLDivergence class
* [195:](https://github.com/pysal/segregation/pull/195) feat: memory efficient and performant gini
* [170:](https://github.com/pysal/segregation/pull/170) Memory efficient Gini
* [194:](https://github.com/pysal/segregation/pull/194) add black to docs reqs
* [193:](https://github.com/pysal/segregation/pull/193) remove deprecated modules
* [185:](https://github.com/pysal/segregation/pull/185) Commit of `kl_divergence_profile` function and walkthrough notebook - following Google Summer of Code 2021



<a name="momepy"></a>
momepy
* [352:](https://github.com/pysal/momepy/pull/352) CI updates
* [353:](https://github.com/pysal/momepy/pull/353) RLS: 0.5.3 changelog
* [351:](https://github.com/pysal/momepy/pull/351) BUG: fix issue with blocks within another blocks
* [350:](https://github.com/pysal/momepy/pull/350) TST: skip to avoid geopandas regression
* [349:](https://github.com/pysal/momepy/pull/349) REF: simplify orientation calculation
* [347:](https://github.com/pysal/momepy/pull/347) BUG: Fix angle computation in graph creation with dual approach
* [346:](https://github.com/pysal/momepy/issues/346) BUG?: angular betweenness is returning strange results
* [345:](https://github.com/pysal/momepy/pull/345) Update actions versions in tests.yaml
* [344:](https://github.com/pysal/momepy/pull/344) Update release_to_pypi.yml





<a name="splot"></a>
splot
* [156:](https://github.com/pysal/splot/pull/156) [RLS] changelog for 1.1.5
* [155:](https://github.com/pysal/splot/pull/155) add GHA for release
* [154:](https://github.com/pysal/splot/issues/154) release GHA workflow
* [153:](https://github.com/pysal/splot/pull/153) Streamlining Unittest CI workflow
* [127:](https://github.com/pysal/splot/pull/127) [DOC] Add Codecov coverage testing
* [152:](https://github.com/pysal/splot/pull/152) DOC: update docs for bibtex>1
* [142:](https://github.com/pysal/splot/issues/142) Usage of tags in splot
* [143:](https://github.com/pysal/splot/pull/143) Use versioneer
* [151:](https://github.com/pysal/splot/pull/151) Drop Python 3.7 support
* [150:](https://github.com/pysal/splot/pull/150) Import ABC from collections.abc for Python 3.10 compatibility.
* [148:](https://github.com/pysal/splot/pull/148) DOC: change links from master to main


<a name="spopt"></a>
spopt
* [252:](https://github.com/pysal/spopt/pull/252) a 'final' proofing for JOSS manuscript
* [248:](https://github.com/pysal/spopt/issues/248) JOSS manuscript clean up [2]
* [250:](https://github.com/pysal/spopt/pull/250) clean out code block and add preexisting facility text
* [213:](https://github.com/pysal/spopt/issues/213) K means heuristic test failure (3.10)
* [249:](https://github.com/pysal/spopt/pull/249) address reference concerns, etc. [2]
* [246:](https://github.com/pysal/spopt/issues/246) JOSS manuscript clean up [1]
* [247:](https://github.com/pysal/spopt/pull/247) cleaning up JOSS manuscript -- references & links
* [245:](https://github.com/pysal/spopt/pull/245) add spopt ref to JOSS paper
* [242:](https://github.com/pysal/spopt/issues/242) General usability issues when working with coverage models
* [240:](https://github.com/pysal/spopt/issues/240) Consider documenting class properties
* [243:](https://github.com/pysal/spopt/pull/243) Document locate class properties
* [244:](https://github.com/pysal/spopt/pull/244) build(deps): bump actions/setup-python from 3 to 4
* [233:](https://github.com/pysal/spopt/issues/233) PuLP: cannot execute glpsol.exe when
* [241:](https://github.com/pysal/spopt/issues/241) Consider documenting units for the `max_coverage` parameter of MCLP/LSCP.from_geodataframe
* [237:](https://github.com/pysal/spopt/issues/237) issue with predefined facilities results?
* [239:](https://github.com/pysal/spopt/pull/239) Check feasibility following solution attempt
* [238:](https://github.com/pysal/spopt/issues/238) checking for model feasibility following solve
* [235:](https://github.com/pysal/spopt/pull/235) UBDC acknowledgement
* [232:](https://github.com/pysal/spopt/issues/232) ERROR: Package 'spopt' requires a different Python: 3.6.9 not in '>=3.7'
* [231:](https://github.com/pysal/spopt/pull/231) Add predefined locations to coverage models
* [229:](https://github.com/pysal/spopt/pull/229) build(deps): bump codecov/codecov-action from 2 to 3
* [228:](https://github.com/pysal/spopt/pull/228) Components
* [227:](https://github.com/pysal/spopt/pull/227) Components fix
* [226:](https://github.com/pysal/spopt/pull/226) doc: update policy options for maxp
* [224:](https://github.com/pysal/spopt/issues/224) islands argument ignored in skater
* [223:](https://github.com/pysal/spopt/pull/223) policy for multiple components in maxp
* [225:](https://github.com/pysal/spopt/pull/225) Fix skater islands kwarg being ignored
* [221:](https://github.com/pysal/spopt/pull/221) mclp and lscp jupyter notebooks using osrm routing
* [222:](https://github.com/pysal/spopt/issues/222) MCLP with optional Capacity of Facilities Constraint
* [220:](https://github.com/pysal/spopt/pull/220) Bump actions/checkout from 2 to 3
* [219:](https://github.com/pysal/spopt/pull/219) bump actions/setup-python from 2 to 3
* [209:](https://github.com/pysal/spopt/issues/209) Cut release for meta
* [217:](https://github.com/pysal/spopt/issues/217) Factoring in existing facilities
* [216:](https://github.com/pysal/spopt/pull/216) build(deps): bump actions/github-script from 5 to 6
* [214:](https://github.com/pysal/spopt/pull/214) Region docs

<a name="contributors"></a>
Contributors

Many thanks to all of the following individuals who contributed to this release:


- Eli Knaap
- Germano Barcelos
- James Gaboardi
- Jamie Saxon
- Karthikeyan Singaravelan
- Levi John Wolf
- Martin Fleischmann
- Serge Rey
- Stefanie Lumnitz
- Timothy Ellersiek

2.6.0

of test coverage, and improved documentation. All users are
encouraged to upgrade to this version as there are numerous
optimizations as well as new features (see below) that have been
implemented.

Highlights

New Package: [pysal/momempy](https://github.com/pysal/momepy)

>Momepy is a library for quantitative analysis of urban form - urban morphometrics

<a name="changes-by-package"></a>
Changes by Package

Overall, there were 181 commits that closed 99 issues since our last release on 2021-07-31.

<a name="libpysal"></a>
libpysal
* [450:](https://github.com/pysal/libpysal/pull/450) DOCS: Gabriel and related enhancements
* [449:](https://github.com/pysal/libpysal/pull/449) DOC: Update docs for Gabriel and related enhancements
* [448:](https://github.com/pysal/libpysal/pull/448) Gabriel docs
* [438:](https://github.com/pysal/libpysal/pull/438) add gabriel weights and more performant voronoi generation
* [442:](https://github.com/pysal/libpysal/pull/442) ENH: Moving to appdirs for example storage
* [443:](https://github.com/pysal/libpysal/pull/443) MAINT: replace LooseVersion with packaging
* [349:](https://github.com/pysal/libpysal/pull/349) Format UserWarning string in W.to_adjlist
* [285:](https://github.com/pysal/libpysal/pull/285) remove non-coincident points correctly from knn weights
* [439:](https://github.com/pysal/libpysal/pull/439) Bug fix for parallel execution environments
* [429:](https://github.com/pysal/libpysal/pull/429) Use versioneer to manage __version__
* [437:](https://github.com/pysal/libpysal/pull/437) REF: update for shapely 2.0
* [434:](https://github.com/pysal/libpysal/issues/434) tools/gitcount with versioneer
* [435:](https://github.com/pysal/libpysal/pull/435) update version import in gitcount
* [321:](https://github.com/pysal/libpysal/pull/321) represent islands as self-joins with zero weight in adjacency lists
* [431:](https://github.com/pysal/libpysal/pull/431) DOC: Fix several warnings during the build
* [430:](https://github.com/pysal/libpysal/pull/430) Fix test_voronoi on other architectures.
* [420:](https://github.com/pysal/libpysal/issues/420) Testraster failures without numba: 'dia_matrix' object is not subscriptable
* [232:](https://github.com/pysal/libpysal/pull/232) add neighbor_equality and write_gal to the imports from util
* [428:](https://github.com/pysal/libpysal/pull/428) Fix failure of "dia_matrix object is not subscriptable"
* [402:](https://github.com/pysal/libpysal/pull/402) Edgelist-based contiguity constructor
* [419:](https://github.com/pysal/libpysal/issues/419) scipy 1.7.0 breaking test_lat2SW
* [423:](https://github.com/pysal/libpysal/pull/423) use toarray in `W.full()`
* [426:](https://github.com/pysal/libpysal/pull/426) cast sw to csc and eliminate zeros
* [425:](https://github.com/pysal/libpysal/pull/425) skip scipy 1.7.1 for in test_lat2SW
* [422:](https://github.com/pysal/libpysal/pull/422) dense


<a name="access"></a>
access


<a name="esda"></a>
esda


<a name="giddy"></a>
giddy


<a name="inequality"></a>
inequality


<a name="pointpats"></a>
pointpats


<a name="segregation"></a>
segregation
* [184:](https://github.com/pysal/segregation/pull/184) prepare v2.1.0
* [35:](https://github.com/pysal/segregation/issues/35) parallelization simulation based indexes and inference wrappers
* [180:](https://github.com/pysal/segregation/issues/180) use rvlib for densitycorrecteddissim
* [183:](https://github.com/pysal/segregation/pull/183) performance enhancements


<a name="spaghetti"></a>
spaghetti
* [657:](https://github.com/pysal/spaghetti/pull/657) attempt Python 3.10 in CI
* [638:](https://github.com/pysal/spaghetti/issues/638) Update changelog tooling to report contributors
* [655:](https://github.com/pysal/spaghetti/pull/655) Try automated release notes action
* [653:](https://github.com/pysal/spaghetti/issues/653) update gitcount notebook for versioneer?
* [654:](https://github.com/pysal/spaghetti/pull/654) access version from pacakge in gitcount
* [652:](https://github.com/pysal/spaghetti/pull/652) add manual triggers for workflows
* [650:](https://github.com/pysal/spaghetti/issues/650) omit new versioner files from code coverage
* [651:](https://github.com/pysal/spaghetti/pull/651) ignore versioneer files for code coverage reporting
* [649:](https://github.com/pysal/spaghetti/pull/649) add deprecation warning for libpysal geometries
* [647:](https://github.com/pysal/spaghetti/issues/647) versioneer for version management
* [648:](https://github.com/pysal/spaghetti/pull/648) Versioneer
* [373:](https://github.com/pysal/spaghetti/issues/373) [ENH] Explore a "two workflows" style format


<a name="mgwr"></a>
mgwr


<a name="momepy"></a>
momepy
* [331:](https://github.com/pysal/momepy/pull/331) RLS: add 0.5.2 changelog
* [330:](https://github.com/pysal/momepy/pull/330) BUG: fix FormFactor
* [329:](https://github.com/pysal/momepy/issues/329) BUG: FormFactor uses incorrect formula
* [320:](https://github.com/pysal/momepy/pull/320) REF: simplify calculation of Simpson diversity
* [319:](https://github.com/pysal/momepy/pull/319) TST: redo CI matrix
* [327:](https://github.com/pysal/momepy/issues/327) Summary at the custom-zone level
* [325:](https://github.com/pysal/momepy/issues/325) QST: input data type for momepy
* [321:](https://github.com/pysal/momepy/issues/321) QST: mm.Blocks emits CRS mismatch warnings
* [323:](https://github.com/pysal/momepy/issues/323) QST: how to save graph to Shapefile?
* [318:](https://github.com/pysal/momepy/pull/318) TST: use mambaforge in CI
* [315:](https://github.com/pysal/momepy/pull/315) BUG: non-default index dropped in Blocks id series
* [316:](https://github.com/pysal/momepy/issues/316) 0.5.1 release
* [311:](https://github.com/pysal/momepy/issues/311) BUG: incorrect index in `Blocks.*_id` Series for non-default index
* [314:](https://github.com/pysal/momepy/issues/314) TST: CI failure due to geopandas regression
* [313:](https://github.com/pysal/momepy/pull/313) relicense under BSD
* [305:](https://github.com/pysal/momepy/issues/305) copyright and license
* [312:](https://github.com/pysal/momepy/pull/312) REF/TST: minimise warnings
* [309:](https://github.com/pysal/momepy/issues/309) Silence warnings from geopandas 0.10
* [306:](https://github.com/pysal/momepy/pull/306) update README.md
* [303:](https://github.com/pysal/momepy/pull/303) Fix links after the transfer under pysal org
* [301:](https://github.com/pysal/momepy/issues/301) Finish transfer under PySAL org
* [299:](https://github.com/pysal/momepy/pull/299) ENH: support shapely polygon as enclosures limit
* [254:](https://github.com/pysal/momepy/issues/254) ENH: allow limit of enclosures to be shapely polygon
* [293:](https://github.com/pysal/momepy/issues/293) Import causes ImportError
* [298:](https://github.com/pysal/momepy/pull/298) ENH: catch geographic CRS in Tessellation
* [297:](https://github.com/pysal/momepy/issues/297) Tesselation fails at Generating input point array... with ValueError: need at least one array to concatenate
* [286:](https://github.com/pysal/momepy/issues/286) momepy.Tessellation returns empty rows when buildings are outside of enclosures
* [296:](https://github.com/pysal/momepy/pull/296) PERF: use dask.bag in Tessellation
* [295:](https://github.com/pysal/momepy/issues/295) `momepy.Tessellation` doesn't appear to run faster on a machine with many more cores
* [292:](https://github.com/pysal/momepy/pull/292) DOC: edit/proof street network analysis notebooks
* [288:](https://github.com/pysal/momepy/pull/288) BUG: properly clip enclosures by limit
* [287:](https://github.com/pysal/momepy/issues/287) momepy.enclosures doesn't appear to observe limit parameter
* [270:](https://github.com/pysal/momepy/issues/270) Enclosure has problems with rivers
* [291:](https://github.com/pysal/momepy/pull/291) BUG: Tessellation error on non-standard enclosures
* [289:](https://github.com/pysal/momepy/issues/289) BUG: momepy.Tessellation fails with IndexError
* [290:](https://github.com/pysal/momepy/pull/290) small typo in gdf_to_nx


<a name="spglm"></a>
spglm


<a name="spint"></a>
spint


<a name="spreg"></a>
spreg


<a name="spvcm"></a>
spvcm


<a name="tobler"></a>
tobler


<a name="mapclassify"></a>
mapclassify


<a name="splot"></a>
splot


<a name="spopt"></a>
spopt
* [205:](https://github.com/pysal/spopt/pull/205) install pulp for docs build
* [196:](https://github.com/pysal/spopt/issues/196) rework JOSS manuscript
* [200:](https://github.com/pysal/spopt/pull/200) [WIP] JOSS paper revisions work
* [203:](https://github.com/pysal/spopt/issues/203) update the real-world facility location notebook.
* [204:](https://github.com/pysal/spopt/pull/204) Update fac-loc real world notebook
* [201:](https://github.com/pysal/spopt/issues/201) region_k_means not handling candidate move updates
* [202:](https://github.com/pysal/spopt/pull/202) Update candidates list after making a move
* [179:](https://github.com/pysal/spopt/issues/179) Update changelog tooling to report contributors
* [199:](https://github.com/pysal/spopt/pull/199) Generate Changelog notes automatically on release
* [197:](https://github.com/pysal/spopt/pull/197) access package version in tools/gitcount
* [198:](https://github.com/pysal/spopt/pull/198) Add examples section to locate module
* [190:](https://github.com/pysal/spopt/issues/190) update locate docs
* [194:](https://github.com/pysal/spopt/pull/194) switch to versioneer
* [193:](https://github.com/pysal/spopt/pull/193) Update locate docs
* [192:](https://github.com/pysal/spopt/issues/192) Reference error for Church and Murray book
* [2:](https://github.com/pysal/spopt/issues/2) facility location models in a class
* [189:](https://github.com/pysal/spopt/issues/189) Facility Location modeling solutions & CI
* [186:](https://github.com/pysal/spopt/pull/186) Add Locate Module
* [3:](https://github.com/pysal/spopt/issues/3) bug: maxp implementation is not using contiguity
* [49:](https://github.com/pysal/spopt/issues/49) spopt as solver agnostic?
* [61:](https://github.com/pysal/spopt/issues/61) solvers and solver APIs
* [18:](https://github.com/pysal/spopt/issues/18) new alternative to pulp

<a name="contributors"></a>
Contributors

Many thanks to all of the following individuals who contributed to this release:


- Charles Schmidt
- Eli Knaap
- Elliott Sales De Andrade
- Germano Barcelos
- James Gaboardi
- Levi John Wolf
- Martin Fleischmann
- Serge Rey

2.5.0

PySAL 2.5.0 represents 6 months of enhancements, bug-fixes, widening of test coverage, and improved documentation. All users are encouraged to upgrade to this version as there are numerous optimizations as well as new features (see below) that have been implemented.

Overall, there were 543 commits that closed 190 issues, together with 33 pull requests since our last release on 2021-01-31.


Package Highlights

esda
This version merges two large new sets of functionalities:

- map correspondence measures in [`esda.map_comparison`](https://github.com/pysal/esda/blob/master/esda/map_comparison.py)
- shape statistics in [`esda.shape`](https://github.com/pysal/esda/blob/master/esda/shape.py)

segregation
Version 2.0 of the `segregation` package brings a new API, a massive code restructuring, and dozens of new features, enhancements, and bug fixes. For a complete overview of the new API, please see the documentation page at <https://pysal.org/segregation/api>. The new version does away with the distinction between spatial and aspatial segregation indices and instead partitions the functions based on single-group and multi-group measures. The spatial/aspatial distinction is echewed in version 2.0 because *all* aspatial indices can be generalized into spatial versions, following the logic of Reardon and O'Sullivan (see a description in [this example notebook](https://nbviewer.jupyter.org/github/knaaptime/segregation/blob/2.0/notebooks/01_singlegroup_indices.ipynb)). Furthermore, "space" can be incorporated into the index calculation using either Euclidean distance or the shortest path along a travel network. With this logic, the package now offers multiscalar segregation profiles for 23 different segregation indices (a first in any software package).

tobler
Added [pychnophylactic interpolation](https://www.tandfonline.com/doi/abs/10.1080/01621459.1979.10481647).


spaghetti
The highlights of this release include functionality to [split network arcs by count](https://pysal.org/spaghetti/generated/spaghetti.Network.html#spaghetti.Network.split_arcs), which compliments the previously available distance splitting, and a [paper](https://doi.org/10.21105/joss.02826) in the Journal of Open Source Software. Also, Python 3.6 is no longer supported.


spopt
This release includes another model to add to the suite: RandomRegions. RandomRegions, originally written by David C. Folch (dfolch) and Serge Rey, builds regions based on an initial random seed while considering user-defined specifications such as: region count, cardinality, contiguity, and compactness (citation?). Also, we have improved the testing coverage for the models inlcuded in the initial release: AZP, Max-*p*-regions, Region-*k*-means, Skater, Spenc, and WardSpatial.


<a name="changes-by-package"></a>
Detailed Changes by Package

<a name="libpysal"></a>
libpysal
* [412:](https://github.com/pysal/libpysal/pull/412) Add missing endianness in WK1 reader.
* [413:](https://github.com/pysal/libpysal/pull/413) Update unittests, etc
* [415:](https://github.com/pysal/libpysal/pull/415) classify repo as Python
* [389:](https://github.com/pysal/libpysal/pull/389) add docs action workflow
* [411:](https://github.com/pysal/libpysal/pull/411) Return a dataframe with info on available datasets
* [409:](https://github.com/pysal/libpysal/issues/409) Do not fetch examples on import
* [410:](https://github.com/pysal/libpysal/pull/410) Do not poll remotes on init.
* [400:](https://github.com/pysal/libpysal/pull/400) Fixed `index2da` causing inverted output
* [399:](https://github.com/pysal/libpysal/issues/399) Raster weights `w2da` failing on 3.6
* [408:](https://github.com/pysal/libpysal/issues/408) Correct way to compute spatial weights in libpysal

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.