Release v23.01
PySAL 23.01, 2023-01-30
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
Changes by Package
libpysal
- #488: type vs. geom_type with shapely
- #487: address ShapelyDeprecationWarning The 'type' attribute is...
- #485: allow for individual downloads and access to remote urls in examples
- #486: ENH: more granularity in example handling
- #482: test against shapely prerelease
- #479: Creating Weights from dataframe: IndexError: index 0 is out of bounds for axis 0 with size 0
- #483: Networkx3.0
- #481: Platformdirs
- #478: Updates warnings, etc.
- #391: Test failures with GEOS 3.9.0
access
esda
giddy
inequality
pointpats
segregation
spaghetti
- #701: another
release_and_publish.yml
failures (due topyproject.toml
) - #703: Update Versioneer
- #700: Update Versioneer
- #702: add formatting exclusions properly in toml
- #699: Update Versioneer
- #698: Update Versioneer
- #697: try versioneer action
- #696: remove pygeos from environments
- #680: remove
pygeos
- #695: supplement
setup.py
with aname
kwarg for dep graph - #694: add
name
keyword insetup.py
- #693: [pre-commit.ci] pre-commit autoupdate
- #692: [pre-commit.ci] pre-commit autoupdate
- #690: try pyproject.toml; remove setup.cfg
- #691: [pre-commit.ci] pre-commit autoupdate
- #689: [pre-commit.ci] pre-commit autoupdate
- #688: adjust css for doc references
- #687: esda master -> main
- #686: update sphinx tooling, etc.
- #685: 1st attempt for Python 3.11 testing
- #684: [pre-commit.ci] pre-commit autoupdate
- #683: Bump actions/setup-python from 3 to 4
- #682: add linting in CI
- #681: Try out pre-commit.ci
- #679: Test against shapely pre-release
- #678: test against
shapely==2.0b1
- #677: rerun notebooks
- #676: Update warnings, etc.
mgwr
momepy
- #422: RLS: add 0.5.4 changelog
- #420: Add pyproject.toml file
- #415: add a project.toml?
- #419: proof README.md
- #416: Scour docs for consistency, grammar, etc.
- #414: scour docstrings (grammar, punctuation, etc.)
- #418: GHA: update PyPI release action
- #413: add flake8 and isort to CI
- #412: enhance CI with flake8 & isort
- #409: BUG: get_network_ratio non-interescting joins fix
- #408: BUG: get_network_ratio returns wrong ID for non-intersecting join
- #410: minor spelling and punctuation update
- #392: ENH: roundabout_simplification() notebook example
- #407: CI: test preprocessing part of user guide
- #405: Run user guide tests with Python 3.10
- #403: remove pygeos duplicate
- #400: standardize pytest.approx() in testing files
- #404: bump copyright year
- #402: pygeos occurs twice in asv.conf.json - matrix
- #401: test user guide against Python 3.10?
- #399: both pytest.approx() and approx() used in testing
- #398: Fix various warnings
- #397: Fix thrown warnings in dimension, elements, diversity
- #395: handle
All NaN slice
warning - #394: Handle
All-NaN slice encountered
warning in diversity.Percentiles() - #390: limit numpy version evaluations in diversity.Percentiles
- #393: DOC: create preprocessing section
- #388: suppress warnings in dimensions.StreetProfile()
- #389: handle scenarios leading to dimensions.StreetProfile() warnings
- #391: Rabs geom
- #386: numpy. nanpercentile() has a renamed keyword
- #383: update .append method for dataframes
- #382: REF: remove deprecated pandas append
- #384: REF: replace append with concat
- #387: address numpy.nanpercentile warning
- #385: DOC: temporarily pin theme
- #371: ENH: geometry-based simplification of roundabouts
- #379: Added warning for gdp_to_nx if geometries are not LineStrings
- #378: BUG: make coins independent of gdf index
- #373: DOC: compat with latest sphinx pydata theme
- #362: DOC: broken colours with new pydata_sphinx_theme
spglm
spint
spreg
- #108: update gitcount and conf.py
- #107: update workflows/ci
- #100: update tools/gitcount notebook
- #105: Fixing failed tests for new release
- #104: Version update
spvcm
tobler
mapclassify
- #165: Update Versioneer
- #167: Try skipping certain files with
isort
- #166: update master/main link issue
- #164: Update Versioneer
- #163: Update infrastructure (actions)
- #162: GHA for updating
versioneer
- #161: update branch of gh-action-pypi-publish
- #37: Add VBA functionality
- #159: [pre-commit.ci] pre-commit autoupdate
- #158: [pre-commit.ci] pre-commit autoupdate
- #157: [pre-commit.ci] pre-commit autoupdate
- #156: [pre-commit.ci] pre-commit autoupdate
- #142:
MaxP.update()
– bins used by not defined - #155: Remove
update
method fromMaxP
- #154: Use
libpysal.fuzzy_contiguity()
ingreedy
- #148: swap greedy. _geos_sw() for libpysal.fuzzy_contiguity
- #135: Thorough scouring of docs + doc build infrastructure
- #141: love and care for docstrings, etc.
- #152: ENH: addressing #145
- #153: remove spaces after table string title
- #145: remove spaces from title of classifier table string
- #150: Switch to pytest
- #146: convert from
unittest
topytest
- #147: improve warnings and exceptions
- #140: warn or raise vs. print statements for unexpected behavior
- #151: [pre-commit.ci] pre-commit autoupdate
- #149: silence warnings option when
k
classes not possible? - #144: update GHA for CI
- #143: remove _table_string() method
- #139: remove old/redundant MapClassifier._table_string() method
- #138: Bump actions/checkout from 2 to 3
- #137: Bump codecov/codecov-action from 2 to 3
- #136: update release action, etc.
- #105: Fix changelog builder to give proper attribution
- #134: updating branch in badges on README
- #133: resolves #132
- #132: update binder environment
- #129:
RuntimeWarning: invalid value encountered in double_scalars
- #131: ENH: handle invariant arrays
- #112:
plot
doesn't work for pooled classifications - #130: change default branch from master to main
- #128: [MAINT] lint & format repo; update CI; handle DeprWarns, etc.
splot
spopt
- #276: P-Median Problem Tutorial Binder example
- #344: Add
requirements_notebooks.txt
to MANIFEST - #343: The requirementes notebook is missing from the MANIFEST.in
- #342: Update Versioneer
- #340: add versioneer action
- #339: add a GHA for updating
versioneer
- #338: Update
release_and_publish.yml
- #337: update branch of
gh-action-pypi-publish
- #336: [BUG] bounds for client assignment variables
- #328: [BUG] client assignment variable bounds for CLSCP-SO
- #329: Clean up the implementation of the capacitated LSCP
- #320: clean up CLSCP-SO implementation
- #335: polish up docstrings, etc. in skater.py
- #333: [BUG]
affinity
in Skater spanning forest - #332: customize tqdm progress bar in Skater
- #321: [BUG] using
affinity
inskater.SpanningForest
- #334: doc build env correction
- #330: Update sphinx requirement from <=4.5.0 to <6.2.0
- #309: workaround for cascading references in docs
- #327: Update sphinx requirement from <=4.5.0 to <6.1.0
- #324: individual
locate
test, tqdm, & bare minimal testing env - #323: test against a minimal / bare bones environment
- #322: add
tqdm
as on optional req - #318: break out
test_locate.py
- #234: Factoring in Facility Capacities
- #319: Streamline redundant parameter passing in constraint constructors
- #317: streamline variable and constraint creation
- #7: input is not sanitised before it is used
- #316: Fix CLSCP-SO bugs and add tests
- #315: raise if demand > capacity in CLSCP-SO
- #314: [BUG] service radius threshold not respected in CLSCP-SO
- #273: Facility capacity for LSCP
- #313: [pre-commit.ci] pre-commit autoupdate
- #307: doc work and formatting continued (random_region, util, ward)
- #312: expose SPENC kwargs
- #310: remove external
spenc
from CI envs - #172: Allow passing all keywords into Spenc
- #305: utilize
BaseSpOptExactSolver
- #306: Update sphinx requirement from <=4.5.0 to <5.4.0
- #302: start of doc work – focusing on
locate
docs - #304: update locate images & add tutorial links
- #300: doc work and cleanup -- add locate formulations to docstrings
- #296: New attributes & functionality for
locate
models - #287: calculate
get_percentage()
withinMCLP.solve(results=True)
- #286: calculate
get_mean_distance()
withinPMedian.solve(results=True)
- #285: remove BaseOutputMixin from PDispersion
- #283: get_backup_percentage method for LSCP-B
- #282: maybe set solver as attribute in LSCPB?
- #267: pre-defined facilities for all location models?
- #301: [pre-commit.ci] pre-commit autoupdate
- #294: Region-k-means seed
- #213: K means heuristic test failure
- #297: keep or remove RegionMixin
- #215: maximum-coverage-location package
- #293: remove pip install in notebooks
- #290: more issues with binder for locate notebooks
- #292: Drop Py37, update binders, & test future shapely dev
- #291: update shapely_dev testing
- #284: drop testing/support for Python 3.7
- #288: Update/cleanup/standardize notebooks
- #289: test
spopt
against theshapely==2.0b1
- #269: update docs for new location models
- #57: Throws an error when silhoutte coefficients for two clusters are the same
- #187: The dissimilarity parameter should be able to accept a distance/dissimilarity matrix as an alternative to a callable distance function
- #188: [WIP] allow for precomputed distance matrices
- #263: LSCP Notebook Plots
- #21: differentiating spatial clusterers
- #281: comparing the LSCP and LSCP-B results
- #278: AttributeError: type object 'FacilityModelBuilder' has no attribute 'add_maximized_min_variable'
- #279: testing overhaul, etc
- #260: GSoC 2022 Interfaces for Consistent API Design
- #277: .coverage in .gitignore
- #265: Add .coverage to .gitignore
- #268: P dispersion
- #275: Update typo in p-median example
- #259: LSCP-B
- #271: Lscpb formulation
- #270: LSCP-B formulation?
- #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