pysal/pysal: Release v26.07
Authors/Creators
- Sergio Rey1
- Philip Stephens
- Taylor Oshan2
- Charles Schmidt
- Jay Laura3
- Levi John Wolf4
- Dani Arribas-Bel
- David C. Folch5
- James Gaboardi6
- mhwang4
- Nicholas Malizia
- Wei Kang7
- Pedro Amaral8
- eli knaap9
- Luc Anselin10
- Qunshan11
- Martin Fleischmann12
- Stefanie Lumnitz13
- Samay Mehar
- Andrew Winslow
- Bas Couwenberg
- Marynia
- Omar Khursheed14
- Kritin Sathi15
- yogabonito
- Karl Dunkle Werner
- Peter Quackenbush
- Ryan Zomorrodi16
- Stuart Lynn17
- 1. Center for Open Geographical Science
- 2. Geoda/ASU
- 3. USGS Astrogeology
- 4. @geogbristol
- 5. Northern Arizona University
- 6. ORNL
- 7. University of California Riverside
- 8. Universidade Federal de Minas Gerais
- 9. UC Irvine
- 10. Center for Spatial Data Science - University of Chicago
- 11. University of Glasgow
- 12. Charles University
- 13. ESA | European Commission
- 14. Amazon
- 15. @Uber
- 16. Children's Environmental Health Initiative - UIC
- 17. Two Sigma
Description
Overall, there were 704 commits that closed 363 issues since our last release on 2026-01-31.
<a name="changes-by-package"></a>
Changes by Package
<a name="libpysal-v4.15.0"></a>
libpysal v4.15.0
- #882: DOC: switch to sphinx-immaterial theme
- #925: Bump actions/checkout from 6 to 7
- #924: feat: support array-like bandwidth in kernel functions
- #922: GHA: fix reverse dependency testing
- #923: DEP: pin Pulp to <4
- #921: update path for raster test data
- #917: ENH: add kernel input validation
- #920: Bump codecov/codecov-action from 6 to 7
- #889: Support build of "adaptive" kernel graphs
- #905: ENH: Add adaptive bandwidth support to Graph.build_kernel
- #915: BUG: fix situations where linear geometries disappear in voronoi_frames
- #914: GHA: use dedicated environment for docs action
- #913: TST: eliminate warning about unary_union
- #912: ENH: add Graph.from_lattice
- #911: Sparse kernel weights
- #909: ENH: use sparse distance computation for compact-support kernels in
Graph.build_kernel() - #904: FIX: Fix index space mismatch in coplanar clique
- #897: BUG: cannot reindex on an axis with duplicate labels when using clique on coplanar points
- #910: add
pulpand a "plus" dep topyproject.toml - #908: Bump actions/github-script from 8 to 9
- #906: [pre-commit.ci] pre-commit autoupdate
- #903: Bump mamba-org/setup-micromamba from 2 to 3
- #902: DOC: update docs infra based on momepy lessons
- #900: source version info in docs from
packaging - #901: cancel doc builds in progress
- #899: Bump codecov/codecov-action from 5 to 6
- #890: Delete .ipynb_checkpoints directory
- #891: move to new
docs/dir structure - #898: DOC: fix table rendering
- #441: Getting an error while trying to calculate knn weights from dataframe
- #896: DOC: resolve sphinx warnings
- #895: DOC: fold ReadMe to the docs
- #893: Optimise default weights generation using dict comprehension
- #894: Fix reverse dependency check
- #892: drop Python 311 support - spec0
- #881: Add deprecation for
KDtreeandArc_KDTree - #886: pandana link in build_travel_cost should point to pandarm instead
- #879: deprecate
Arc_KDTree - #885: Ref/docs
- #838: ENH: construction of distance-based weights directly from KDTree/BallTree
- #805: Allow construction of distance-based weights directly from KDTree/BallTree
- #887: add make_symmetric function to Graph
- #664: Interest in a mutual knn?
- #888: DOC: link to source from pages
- #884: DOC: convert RST to MD
- #883: DOC: CI for documentation and version switching
- #835: fix: handle distance arrays when calculating bandwidth
- #834: Improve
graph._kernely.pyperformance - #837: ENH: Implement Graph.from_dense
- #828: ENH: add Graph.from_dense
- #870: Add next steps guidance after installation
- #875: Add Python 3.14 support to testing matrix
- #876: trusted publishing to pypi via action –
release_and_publish.yml - #871: Enable MyST Markdown support for libpysal documentation
- #864: Docs : added guidance on what to do after the installation
- #867: Change return type from numpy.array to pandas.Series
- #866: Docstring return type mismatch in component_labels
- #865: Docs: add next steps after installation
- #860: DOC: clarify Rook and Queen contiguity for point geometries
- #706: Contiguity weight docs
<a name="access-v1.1.10.post3"></a>
access v1.1.10.post3
<a name="esda-v2.10.0"></a>
esda v2.10.0
- #509: Bump actions/checkout from 6 to 7
- #404:
moa_ratioandnmiin the shapes module are the same thing, and should yield the same result - #507: DOC: polish user guide
- #496: Docs user guide
- #505: Bump codecov/codecov-action from 6 to 7
- #275: Local G Autocorrelation causing Numba TypingError
- #442: BUG: cast integers to floats for numba compatibility in Getis-Ord
- #503: DOC: fix citation
- #501: DOC: properly expose LocalCrossPlot
- #502: DOC: fix expected value in docstring
- #445: Implement the Westerholt Plot and/or combined LISALOSH plot
- #446: ENH: add LocalCrossPlot (Westerholt) plot and ability to scale Moran scatterplot by LOSH
- #487: BUG: Moran_Local p_sim calculation should use crand
- #486: alternative argument propagating?
- #498: GHA: use dedicated env for docs build
- #497: Doc 2.9 fix
- #493: TST: load test data ahead of time
- #492: fix rough edges in
upload_package.yml - #490: Doc: missing ref for LOSH
- #489: DOC: fixing sphinx warnings on doc build for shape.py
- #491: DOC: update sphinx pin in env for doc build action
- #488: Debugging broken search on esda docs
- #389: test our examples nightly/regularly
- #481: get doctests of Examples back running
- #485:
map_comparisionexamples using data from testing suite - #484: not passing
seedin tocrand()within the.fit()method - #482:
seednot being passed tocrand()inGeary_Local.fit() - #480: Update version string in v2.9.0 and stable
- #199: Add
alternativeargument for determining one-tailed or two-tailed permutation tests - #479: actually add (and pass through) the
alternativekeyword arg for classes usingcrand() - #478:
alternativekeyword needed for classes that callcrand.crand() - #477: reup SPEC000 - [2026-05-02]
- #476: only run
pushCI on main branch - #292: Error when importing esda package in Python
- #475: Handle more CI warnings CI – [2026-05-02]
- #429: BUG: Replace deprecated np.row_stack with np.vstack for NumPy 1.25+ compatibility
- #212: GSoC 2022 Interfaces for Consistent API Design
- #473: Add root files for gh-pages versioning
- #291: smoothers are undocumented
- #474: update_versions_json.py belongs only in gh-pages
- #472: clean up some warnings in CI – [2026-05-01]
- #471: Update build docs for versioning
- #469: dependencies;
- #470: add deps for nb build
- #468: Doc map comparison
- #465: Move tests in main blocks to actual tests or remove
- #467: Docs federation build
- #460:
G_Local.__crand()-- time to deprecate? - #466: Deprecate legacy __crand in getisord
- #430: fix(#428): convert strict raise DeprecationWarning to warnings.warn in smoothing.py
- #428: BUG: raising DeprecationWarning halts execution instead of warning in smoothing.py
- #463: remove deprecated 'by_col()' -
smoothing.py - #462: remove deprecated 'by_col()' - join_counts.py
- #461: remove
CHANGELOG.md- no longer used - #338:
TestGeary::test_by_col[W]failure --312-numba-dev - #458: remove deprecated 'by_col()' -
{gamma,geary}.py - #447: DOC: refactor to federation structure
- #399: revisit outstanding items in docs build
- #456: mark
by_col()methods as deprecated - #457: remove deprecated 'by_col()' -
getisord.py - #455: remove deprecated HeadBanging after 9 years
- #11: WIP: Headbang re-work
- #229: is
HeadBangingdeprecated? - #452: Stricter linting following #451
- #416: Failing Moran plotting tests in dev
- #451: Lint+turn on pre-commit for PRs -- [2026-04-25]
- #450: unnecessary variable declaration in
shape.moment_of_inertia_regions() - #449: re-up formatting [2026-04-19]
- #444: DOC: move to new
docs/dir structure - #443: Bump actions/github-script from 8 to 9
- #440: Bump codecov/codecov-action from 5 to 6
- #441: Bump mamba-org/setup-micromamba from 2 to 3
- #438: Fix to calculation of normalized mass moment of inertia (in
moment_of_inertia_regionsfunction) - #439: Shape notebook
- #437: Normalized mass moment of inertia is incorrect.
- #436: BUG: fix the shapely version check
- #435: shapely version isolator troubles
- #402: update PyPI &
upload_package.ymlto use trusted publisher - #434: MAINT: Trusted publisher on pypi
- #433: TST: geopandas plotting compatibility
- #432: Fix for #431: changed incorrect sign for result of length_width_diff
- #431: Sign on Length-Width Difference shape measure is backwards.
- #420: Inertial shape measures - mass moment of inertia, speed improvements, other fixes
- #411: Fix: Replace deprecated 3-argument np.minimum/np.maximum calls for NumPy 2.0+ compatibility
- #410: Fix: NumPy 2.0+ compatibility replace deprecated 3-argument np.minimum/np.maximum calls
- #419: fix: Add alternative hypothesis support to spatial statistics
- #412: Update
.gitignoreto correctly exclude generated documentation (as opposed to source files) - #418: Fix broken citation link in documentation
<a name="giddy-v2.3.9"></a>
giddy v2.3.9
- #257: [pre-commit.ci] pre-commit autoupdate
- #256: reup SPEC000 - [2026 05 10]
- #255: DEP: remove upper pin on esda
- #254: [pre-commit.ci] pre-commit autoupdate
- #253: github as trusted publisher on pypi
- #251: remove
CHANGELOG.md- no longer used
<a name="inequality-v1.1.2"></a>
inequality v1.1.2
<a name="pointpats-v2.6.0"></a>
pointpats v2.6.0
- #205: some
numba-enhanced functionality failing tests - #206: fix skyums algorithm
- #204: reup spec000 & some linting [2026-04-15]
- #201: add ruff configuration - pre-commit
- #203: rename
shapelyinenvironment.yml - #202: shapely dep wrong in environment file
- #200: format+lint -
docs/user-guide/ - #184: ruff – format & lint
pointpats - #132: distance_statistics.ipynb is corrupted
- #71: BUG: statistics are now lower case. Notebooks and tutorials need to be updated
- #100: operands could not be broadcast together with shapes (16,) (18,)
- #68: PoissonPointProcess - ValueError: Length mismatch
- #83: Tree types is missing now from Ripley.py
- #101: cannot import name 'G' from 'pointpats'
- #113: usage of
intensitywithinrandom.pydistributions? - #70: HAS_NUMBA left undefined
- #199: retire the
notebooks/directory - #198: time to scrap the
notebook/sdirectory? - #196: format+lint -
{centography,distance_statistics}.py+ previous missed - #144: Figure out how to get legend for plot_density
- #197: Added ContourSet object to return statement in plot_density.py
- #178: need to adopt trusted publishing for release action
- #194: swap to
FutureWarningforknox()function - #189: deprecate old
knoxfunction - #193:
_spacetime_points_to_arrays()- convert assertion to ValueError - #190: raise
ValueErrorin_spacetime_points_to_arrays()rather than assertion - #192: remove deprecated
numpy.row_stackfornumpy.vstack - #191: format+lint -
{geometry,kde,pointpattern,process,quadrat_statistics}.py - #188: format+lint -
{random,spacetime,window,util}.py - #187: docstring for
cluster_normal()seems to be copied fromcluster_poisson() - #186: format /tests/*; lint + refactor
tests/*.py - #185: format
/tests/*; lint + refactortests/test_spacetime.py - #183: REGR: fix GeoDataFrame input to QStatistics
- #182: REGR: Qstatistics no longer accepts GeoDataFrame
- #181: consistent
rngforcluster_poisson() - #180:
rngnot passed into_uniform_circle()withincluster_poisson() - #179: prepare
release_and_publish.ymlfor trusted publishing - #177: adopt dynamic versioning
- #176:
__version__never got updated when we switched to dynamic versioning
<a name="segregation-v2.5.5"></a>
segregation v2.5.5
- #266: GHA: bump github-script
- #265: Segregation JOSS paper: V1
- #263: respect spec000, add oldest & dev testing
- #262: pinned oldest dependencies & tests against them
- #258: Pandarm obscured
- #260: fix pandarm link on Readme
- #259: MAINT: Trusted publisher on pypi
- #218: update build_docs.yml
- #248: current failing tests (<= Python 3.12 envs)
- #249: CI env dependency problem == Python 3.13
- #255: cleanup
pyproject.toml- min Python version etc - #256: dont use loky backend in tests
- #257: cast to strict ints in inference workflows
- #241: modernize macOS testing
- #243: Add Python 3.14 to CI test matrix (#1382)
- #247:
urbanaccessdependency & Python 3.14 - #251: pandana-->pandarm
<a name="spaghetti-v1.7.6"></a>
spaghetti v1.7.6
<a name="mgwr-v2.2.1"></a>
mgwr v2.2.1
<a name="momepy-v1.0.0"></a>
momepy v1.0.0
- #765: GHA: fix release action
- #739: ValueError when running "corners" and "squareness"
- #763: BUG: raise informative error for MultiPolygon in corner-based shape metrics (#739)
- #764: Bump actions/checkout from 6 to 7
- #762: DOC: update funding
- #761: Images not rendering on landing page
- #760: DOC: fix allowed and expected type docs in graph metrics
- #759: Bump codecov/codecov-action from 6 to 7
- #758: REF: refactor Streetscape to increase its performance
- #757: ENH: support generation of proximity bands
- #756: REF: simplify implementation of enclosures
- #755: GHA: use dedicated docs env
- #754: CI: remove iprogress
- #753: Reup spec000 [2026-04-25]
- #752: simplify by default in
*_tessellation() - #686: ENH: Added Cellular Automata-based Enclosed Tessellation
- #751: Bump actions/github-script from 8 to 9
- #750: [pre-commit.ci] pre-commit autoupdate
- #749: Bump mamba-org/setup-micromamba from 2 to 3
- #748: Bump codecov/codecov-action from 5 to 6
- #747: correct markdown link syntax in README
- #746: DOC: fix the versioning switcher
- #745: DOC: switch theme to new PySAL standard
- #744: DOC: fix docstring of neighbors
- #741: REF: refactor elongation and simplify its docstring
- #742: DOC: fix convexity reference
- #740: Wrong citations in the documentation
- #738: adapt
release_to_pypi.ymlfor trusted publishing
<a name="spglm-v1.1.0"></a>
spglm v1.1.0
<a name="spint-v1.1.0"></a>
spint v1.1.0
- #55: add release action - non-trusted publisher
- #54: [pre-commit.ci] pre-commit autoupdate
- #53: README cleanup and report code coverage
- #52: migrate from
unittesttopytest - #51: Lint notebooks & add notebooks dir to pre-commit
- #50: Revise README with new badges and formatting
- #47: proper linting of
spintcodebase - #46: format remaining notebooks Python 2.x syntax
- #45: format
spint/and some of notebooks - #44: Add Python 3.1{3,4} support; get testing green
- #40: working out testing failures
- #41: modernize infra -
pyproject.toml[2024-07-08] - #37: update infra – pyproject.toml, setuptools_scm, ruff, etc.
- #42: support Python 3.12 - add to CI matrix
- #43: Update infra, supported Python, GHA, etc.
- #36: rename
mastertomain - #39: permissions for the steering council
<a name="spml-v0.2.2"></a>
spml v0.2.2
- #130: spatialml -> spml
- #129: TST: ignore deprecation warning solved by joblib in upstream
- #128: Bump actions/checkout from 6 to 7 in the github-actions group
- #91: Add documentation contribution guide to
CONTRIBUTING.md - #87: Add examples for GWLinearRegression and GWLogisticRegression
- #127: rename package to spatialml
- #126: Bump codecov/codecov-action from 6 to 7 in the github-actions group
- #124: DOC: update examples for sklearn 1.9
- #122: TST: ignore warnings about OOB scores
- #121: GHA: use dedicated docs environment
- #120: TST: use linear models in tests where possible for speed up
- #114: Add validation for bandwidth and kernel parameters
- #118: Add score_ attribute based on pooled local model performance (BaseClassifier)
- #119: reup SPEC000 - 2026-04-18
- #117: Bump actions/github-script from 8 to 9 in the github-actions group
- #115: [pre-commit.ci] pre-commit autoupdate
- #113: ENH: Added validation for bandwidth and kernel parameters in GWR models
- #112: ENH: expose local_metric on regressors as well
- #111: open-ended license
- #110: DOC: update config
- #109: Bump the github-actions group with 2 updates
- #107: source version info in docs from
packaging - #108: cancel doc builds in progress
- #106: ENH: expose handling of coplanar points
- #105: DOC: link to source and new libpysal location
- #104: DOC: use markdown instead of RST in references
- #103: [GSoC 2026] Proposal: Geographically Weighted Matrix Decomposition (GWPCA) with scikit-learn compatibility
- #102: REF: rely on sklearn wrappers around joblib Parallel
- #94: Fix inconsistent bandwidth validation for numpy scalar and non-scalar inputs
- #101: BUG: fix batch fitting with non-default index
- #100: compute information criteria only for linear models
- #92: BUG: inconsistent bandwidth validation for numpy scalar and non-scalar inputs
- #97: Added pooled scoring and robust aggregation
- #99: Refactor: Centralize local model initialization in _BaseModel
- #96: Add Spatial Consistency and Convergence Tests for Kernels
- #98: Bump actions/upload-artifact from 6 to 7 in the github-actions group
- #95: Modularize matrix operations and leverage calculation
- #93: [BUG] Incorrect use of oob_score parameter in GWRandomForest models
- #86: BUG: fix failure of BandwidthSearch in case of an invariant y
- #84: BUG: bandwidth search fails if y is all True
- #89: Remove outdated TODO block for performance metrics in parallel validation test
- #88: Clarification: Equality vs Tolerance for Parallel Metric Validation Tests
- #82: Expose local_class_support_ as fitted attribute
- #83: Add structured fit-time input validation
- #81: FMT: Ruff format ipynb files
- #80: Missing ruff formats on ipynb files
- #77: Add scikit-learn metadata routing support to BaseRegressor
- #78: DOC: fix outdated BaseRegressor prediction docstring
<a name="spreg-v1.9.0"></a>
spreg v1.9.0
- #192: Adding new panels module
<a name="tobler-v0.14.0"></a>
tobler v0.14.0
- #280: [pre-commit.ci] pre-commit autoupdate
- #274: strict linting for code health
- #268: suggestion
miniforge, not Anaconda - #276: fix broken docs build action
- #275: broken docs recipe
- #273: catch several more expected warnings in CI
- #272: Delete
.gitattributes-- no longer usingversioneer - #271: Format and lint
docs/*-- check duringpre-commit - #270: Format and lint
tobler/tests/* - #269: clean up actions workflow yamls - run testing CI only on
mainpush - #261: migrate docs
- #266: Setup precommit & re-lint + format codebase
- #265: [maint] fix package name in license
- #267: fewer maps in dotdensity example
- #263: add pixel_values in notebook
- #262: Total area population not matching original population after interpolation
- #264: new structure of gh-pages
- #260: robust nan_handle
- #167: Issue with the version in docs
- #247: [ENH] add pointpattern functions
- #259: MAINT: Trusted publisher for pypi
<a name="mapclassify-v2.10.0"></a>
mapclassify v2.10.0
<a name="splot-v1.1.7"></a>
splot v1.1.7
<a name="spopt-v0.7.0"></a>
spopt v0.7.0
<a name="pysal-v26.07rc1"></a>
pysal v26.07rc1
- #1441: Bump actions/setup-python from 6 to 7
- #1440: Bump actions/checkout from 6 to 7
- #1438: Bump codecov/codecov-action from 6 to 7
- #1436: failure to install development (
giddy/esda) inubuntu-latest, ci/314-dev.yaml - #1434: Bump codecov/codecov-action from 5 to 6
- #1433: Bump mamba-org/setup-micromamba from 2 to 3
- #1375: Adopt spec 0 across pysal
- #1435: minor docs cleanup
- #1324: update docs & README
- #1339: testing against oldest dependencies across federation
- #1277: distutils will be deprecated in Python 3.12
- #1338: standardize CI environment naming conventions
- #1340: testing against Python 3.12 across federation
- #1216: Consider using SCVersioning for docs
- #1282: consider new theme and GHA for versioned docs
- #1298: add Apple silicon CI envs across ecosystem
- #1372: Testing against Python 3.13 across federation
- #1373: remove testing against Python 3.10 across federation
- #1380: CI: retire macOS-13 for macOS-15-intel
- #1382: CI: Testing against Python 3.14 across federation
- #1383: Modernize supported Python, etc
- #1431: GHA: fix the release action
- #1430: remove
publish.yml? - #1427: REF: support older import style for lib
- #1403: Add structured warnings to requires decorator
- #1356: CI: pin fiona
- #1414: Fix typo in README
- #1421: Automate updating PySAL subpackage dependencies in pyproject.toml using release_info.py
- #1422: ENH: Automate updating
pyproject.tomldependencies usingrelease_info.py - #1420: [DOC] Add user guide and example for GWLinearRegression and GWLogisticRegression
- #1419: Add test for _installed_version with non-existent package
- #1416: Add type hints to pysal/base.py and modernize version checking with importlib.metadata
- #1417: GSoC project sizes.
- #1418: Add return value to Versions.check() method and comprehensive tests
- #1412: Build Docs Action is Failing
- #1413: Add lazy_loader when running building docs action
- #1404: Tooling updated for 26.01rc1
- #1411: Drop 3.10 testing
<a name="contributors"></a>
Contributors
Many thanks to all of the following individuals who contributed to this release:
- Ashish Raj
- Dylan
- Eli Knaap
- Elliott Sales De Andrade
- James Gaboardi
- Jigyasa
- Knaaptime
- Lee Hachadoorian
- Levi John Wolf
- Martin Fleischmann
- Pedro Amaral
- Philip Stephens
- Ps098
- R Virinchi
- Ramji Purwar
- Renan Xavier Cortes
- Serge Rey
- Shubham Singh
- Vincent Gao
- Wei Kang
- Yuta Sato
Files
pysal/pysal-v26.07.zip
Files
(2.0 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:f4a991b7c125733115139ad276db1373
|
2.0 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/pysal/pysal/tree/v26.07 (URL)
Software
- Repository URL
- https://github.com/pysal/pysal