Releases: jorenham/scipy-stubs
Releases · jorenham/scipy-stubs
v1.15.1.0 (scipy 1.15.1)
This is the first scipy-stubs
release that supports SciPy 1.15.1.
What's Changed
Improvements
- 🎨 remove outdated
# TODO
's by @jorenham in #408 - ✨
spatial
: generic[c]KDTree
and other improvements by @jorenham in #413
Dependencies
- ⬆️ bump
ruff
to0.8.5
by @jorenham in #396 - ⬆️ bump
scipy
to1.15.0
(final) by @jorenham in #409 - ⬆️ bump dev deps to latest by @jorenham in #410
- ⬆️ bump
ruff
to0.9.0
by @jorenham in #412 - 📌 SciPy 1.15.1 by @jorenham in #414
Other Changes
Full Changelog: v1.15.0.0...v1.15.1.0
v1.15.0.0 (scipy 1.15.0)
This is the first scipy-stubs
release that supports SciPy 1.15.0.
What's Changed
SciPy 1.15.0 compatability
- ⬆️ increase the minimum
scipy
version to1.15.0rc1
by @jorenham in #327 - 🚧 temporarily ignore all stubtest errors by @jorenham in #326
- ⚰️
misc
: remove all code by @jorenham in #328 - ✨
differentiate
: preliminary (yet complete) stubs by @jorenham in #329 - 🏷️
_typing
: SPEC-7 compliant (private)ToRNG
type alias (previouslySeed
) by @jorenham in #333 - 👽️
fft[pack]
: 1.15.0 support by @jorenham in #336 - 👽️
integrate
: 1.15.0 support by @jorenham in #337 - 👽️
interpolate
: 1.15.0 support by @jorenham in #338 - 👽️
constants
: 1.15.0 support by @jorenham in #330 - 👽️
_lib
: 1.15.0 support by @jorenham in #331 - 👽️
cluster
: 1.15.0 support by @jorenham in #334 - 👽️
io
: 1.15.0 support by @jorenham in #341 - 👽️
linalg.interpolative
: 1.15.0 support by @jorenham in #343 - 👽️
linalg
: 1.15.0 support by @jorenham in #344 - 👽️
version
: 1.15.0 removecommit_count
by @jorenham in #345 - 👽️
ndimage
: 1.15.0 support by @jorenham in #346 - 👽️
optimize
: SPEC 7 & scipy 1.15.0 support by @jorenham in #347 - 👽️
sparse
: 1.15.0 support by @jorenham in #349 - 👽️
special
: 1.15.0 support by @jorenham in #351 - 👽️
signal
: 1.15.0 support by @jorenham in #348 - 👽️
spatial
: 1.15.0 support and many improvements by @jorenham in #350 - 👽️
stats
: 1.15.0 support and several improvements by @jorenham in #353 - 👽️
sparse
: acceptaxes: tuple[int[:], int[:]]
incoo_array.tensordot
by @jorenham in #357 - 👽️
stats
: 1.15.0 new distribution infrastructure by @jorenham in #360 - 💬
interpolate
: fix scipy version ininterpnd
deprecation warning messages by @jorenham in #366 - 💬
special
: mention the deprecation version inlpn
and[c]lpmn
by @jorenham in #367 - 🗑️
interpolate
: deprecate thedfitpack
functions, fix & improve thesp*
functions by @jorenham in #372 - 📌 pin
scipy<1.16
by @jorenham in #371 - 👽️
scipy==1.15.0rc2
by @jorenham in #376
Improvements
- ✨ more precise
__config__
and__init__
annotations by @jorenham in #362 - ✨
_lib
: improved annotations by @jorenham in #364 - ✨
special
: several improved ufuncs by @jorenham in #374 - ✨
special
: ufunc improvements by @jorenham in #375 - ✨
signal
: complete_filter_design
, fix and improve_czt
by @jorenham in #378 - ✨
signal
: complete_signaltools
by @jorenham in #379 - ✨
signal
: complete_fir_filter_design.*
enmax_len_seq
by @jorenham in #384 - ✨
signal
: complete_ltisys.*
by @jorenham in #385 - 🎨
optype 0.8
simplifications by @jorenham in #382 - 🎨
stats
: simplify_distn_infrastructure
withoptype 0.8
by @jorenham in #387 - 🎨
_typing
: DRYFalsy
andTruthy
type aliases by @jorenham in #390
Fixes
Documentation
- 📝 several
README.md
improvements by @jorenham in #365 - 📝 better describe the supported numpy versions by @jorenham in #368
Dependencies
- 📌 upgrade
optype
to0.8.0
by @jorenham in #380 - ⬆️ update pre-commit hooks by @pre-commit-ci in #339
- ⬆️ bump
basedpyright
to1.23.1
by @jorenham in #356 - ⬆️ bump
ruff
to0.8.4
and disallowmdformat==0.7.20
by @jorenham in #358 - ⬆️ bump
mdformat
to0.7.21
by @jorenham in #359 - ⬆️ bump
basedmypy
to2.9.0
by @jorenham in #393 - Bump astral-sh/setup-uv from 4 to 5 in the actions group by @dependabot in #361
- Bump DavidAnson/markdownlint-cli2-action from 18 to 19 in the actions group by @dependabot in #386
Other Changes
- 🧑💻 remove mypy from pre-commit (too slow) by @jorenham in #355
- 👷 increase the timeout of the CI
typetest
step by @jorenham in #342 - 👷 PyPI trusted publishing workflow by @jorenham in #383
- 👷 exclude unsupported test matrix version combinations by @jorenham in #388
- 🔧 configure pre-commit ci to use gitmoji style by @jorenham in #340
- 🔧 de-duplicate the
scipy
version requirements by @jorenham in #389 - 🔧 regex'd
.mypyignore
by @jorenham in #335 - 🔧
.mypyignore
cleanup by @jorenham in #392
Full Changelog: v1.14.1.6...v1.15.0.0
v1.14.1.6
Highlights
scipy.interpolate
: The public API is now 100% annotated (by humans)scipy.sparse
: The public API is now 100% annotated (by humans)- the sparse array- and matrix- types optionally accept a generic type parameter for their scalar type, e.g.
coo_array[np.float64]
. {coo, csr, dok}_array
additionally accept a 2nd optional type parameter for their 1-d (tuple[int]
) or 2-d (tuple[int, int]
) shape-type.
- the sparse array- and matrix- types optionally accept a generic type parameter for their scalar type, e.g.
- fixed some typing issues on older numpy versions
What's Changed
Improvements
- 🎨
interpolate
: remove duplicated function and classes by @jorenham in #267 - ✨
interpolate
: stub_dfitpack
by @jorenham in #270 - ✨
spatial
: improve_qhull
by @jorenham in #271 - ✨
interpolate
: complete and improveinterpnd
by @jorenham in #272 - ✨
interpolate
: complete_bsplines
and_ndbspline
by @jorenham in #273 - ✨
interpolate
: completeRBFInterpolator
andRbf
by @jorenham in #274 - ✨
interpolate
: complete_fitpack_impl
(1/2) by @jorenham in #275 - ✨
interpolate
: complete_fitpack_impl
(2/2) by @jorenham in #276 - ✨
interpolate
: complete_fitpack2
by @jorenham in #277 - ✨
interpolate
: complete_polyint
by @jorenham in #279 - ✨
signal
: complete frequency response functions in_filter_design
by @jorenham in #287 - 🎨
sparse
: code cleanup by @jorenham in #294 - ✨
sparse.linalg
: complete theLinearOperator
s in_interface
by @jorenham in #295 - 🎨
sparse
explicit imports in__init__
by @jorenham in #296 - ✨
sparse.linalg
: complete the matrix operation functions by @jorenham in #298 - ✨
sparse.linalg
: complete the matrix norm functions by @jorenham in #300 - ✨
sparse.linalg
: completeLaplacianNd
& accept in dtypes inLinearOperator
by @jorenham in #301 - ✨
sparse.linalg
: complete_dsolve
by @jorenham in #302 - ✨
sparse.linalg
: complete_eigen.arpack
by @jorenham in #303 - ✨
sparse.linalg
: completelobpcg
by @jorenham in #305 - ✨
sparse.linalg
: completesvds
by @jorenham in #306 - ✨
sparse
: complete the sparse arrays and matrices by @jorenham in #307 - ✨
sparse
: completeeye[_array]
by @jorenham in #309 - ✨
sparse
: completeidentity
by @jorenham in #310 - ✨
sparse
: completekron[sum]
by @jorenham in #311 - ✨
sparse
: complete{h,v}stack
by @jorenham in #313 - ✨
sparse
: complete[sp]diags[_array]
by @jorenham in #314 - ✨
sparse
: complete{load,save}_npz
by @jorenham in #315 - ✨
sparse
: complete_sputils.*
(private) by @jorenham in #316 - ✨
sparse
: complete_spfuncs.*
(private) by @jorenham in #317 - ✨
sparse
: completefind
andtri{l,u}
by @jorenham in #318 - ✨
sparse
: completerand[om[_array]]
by @jorenham in #319 - ✨
sparse
: completebmat
andblock_{array,diag}
by @jorenham in #320 - ✨
sparse
: adopt the new generic sparse arrays inlinalg
andcsgraph
by @jorenham in #321 - 🎨
sparse
: variouslinalg.LinearOperator
tweaks and improvements by @jorenham in #322 - ✨
sparse
: completelinalg.ls{m,q}r
by @jorenham in #323 - ✨
sparse
: completelinalg._isolve.utils.*
(private) by @jorenham in #324 - ✨
sparse
: complete the remainingsparse.linalg
functions by @jorenham in #325
Fixes
- ✨
interpolate
: complete_rgi
by @jorenham in #278 - 🐛 fix typing errors on
numpy<1.24
by @jorenham in #292 - ⬆️ bump
basedmypy
to2.8.1
by @jorenham in #293 - 👽️ work around several
mypy
bugs withnumpy>=2.2.0
by @jorenham in #288
Documentation
- 🌕
interpolate
: mark as 100% annotated by @jorenham in #280 - 📝 correct the documented lowest supported numpy version by @jorenham in #281
- 📝 installation instructions for humans by @jorenham in #282
- 🎤 add podcast to
README.md
by @jorenham in #299 - 📝 update the coverage progress for
scipy.sparse
by @jorenham in #304 - 📝 mention gitmoji in
CONTRIBUTING.md
by @jorenham in #308
Dependencies
- ⬆️ bump
basedpyright
to1.22.1
andbasedmypy
to2.8.0
by @jorenham in #255 - dynamic minimum requirements by @miloth in #259
- ⬆️ bump
ruff
to0.8.2
by @jorenham in #265 - ⬆️ bump the dev deps by @jorenham in #312
Other Changes
- 🧑💻 uv-compatible mypy vscode config by @jorenham in #256
- 💡 add a comment to prevent breaking the
#installation
permalink by @jorenham in #266 - 🔧 fix caching issue in
poe {mypy,stubtest,typetest}
by @jorenham in #269 - 🔧 stricter
basedpyright
config by @jorenham in #283 - 👷 include
.mypyignore
in sdist build by @jorenham in #284 - ➖ remove broken
mdformat-pyproject
by @miloth in #262 - 💚 towards fixing the
typetest-oldest-supported-numpy
CI job by @jorenham in #289 - 👷 fix and simplify the CI workflow by @jorenham in #290
- Dynamic testing matrix for combinations of python and numpy versions. by @wolph in #286
New Contributors
AI generated Podcast
SciPy.Type.Hints.mp4
Full Changelog: v1.14.1.5...v1.14.1.6
v1.14.1.5
Highlights
scipy-stubs
is now also available on conda-forge, thanks to @lucascolleyscipy-stubs
now usesuv
for package- and project-management (previouslypoetry
)scipy.linalg
has been significantly improved- functions with either real or complex output now use overloads for more accurate return types
- almost all functions are now aware of the shape-type of input array-likes and output
ndarray
s.
scipy.optimize
is now 100% annotated (by hand)scipy.signal
now accurately type-hints the "waveform" functionssawtooth
,square
,chirp
,sweep_poly
,unit_impulse
andgausspulse
scipy.special
now accurately type-hints 80% of its ufuncs using type-signature-specific overloaded protocols.
What's Changed
Improvements
*
: switch to the shape-typedoptype.numpy
array-likes by @jorenham in #192special
: type-signature-specific annotations for 80% of the ufuncs by @jorenham in #189special
: update the development progress phase to 🌔 by @jorenham in #194signal
: Add type stubs to_waveforms.pyi
. by @pavyamsiri in #195datasets
: Improved type-hints withTypedDict
s andLiteral
s by @jorenham in #203- prefer
optype.numpy
for annotating arrays by @jorenham in #204 optimize
: complete_constraints
and_trustregion_constr.*
by @jorenham in #205optimize
: complete the root-finding functions by @jorenham in #207optimize
: completefixed_point
by @jorenham in #208optimize
: completecurve_fit
,leastsq
, andfsolve
by @jorenham in #209optimize
: completeHessianUpdateStrategy
,BFGS
, andSR1
by @jorenham in #210optimize
: completebasinhopping
by @jorenham in #211optimize
: fix and completedirect
by @jorenham in #212optimize
: complete_differentiable_functions
(private) by @jorenham in #214optimize
: complete_lsq
(private subpackage) by @jorenham in #215- Codemod for pos-only
self
parameters by @jorenham in #218 optimize
: completedifferential_evolution
by @jorenham in #219optimize
: completedual_annealing
by @jorenham in #220optimize
: fix and improveminimize
andbasinhopping
by @jorenham in #221optimize
: completeshgo
, improvebasinhopping
by @jorenham in #222optimize
: completeline_search
by @jorenham in #223optimize
: complete_dcsrch
(private) by @jorenham in #224optimize
: completelinear_sum_assignment
by @jorenham in #225optimize
: completequadratic_assignment
by @jorenham in #227signal
: Replace the finalUntyped
in_short_time_fft.pyi
. by @pavyamsiri in #226optimize
: complete_shgo_lib
(private) by @jorenham in #228optimize
: complete_trlib
and_trustregion*
(private) by @jorenham in #236optimize
: complete_numdiff
(private) by @jorenham in #237optimize
: complete_group_columns
(private) by @jorenham in #238optimize
: remove_remove_redundancy
(private) by @jorenham in #239optimize
: completefmin_cobyla
by @jorenham in #240optimize
: completefmin_l_bfgs_b
andLbfgsInvHessProduct
by @jorenham in #241optimize
: completefmin_slsqp
by @jorenham in #242linalg._basic
: add overloads for shapes and dtypes by @jorenham in #244linalg._decomp*
: add overloads for shapes and dtypes by @jorenham in #245linalg
: improved special matrix constructor signatures by @jorenham in #246linalg
: improvednorm
signature by @jorenham in #247linalg
: improve the shape- & scalar-type overloads of various functions by @jorenham in #252
Documentation
- add docs to the
codegen/
directory by @jorenham in #200 - improved
README.md
by @jorenham in #206 - document that
scipy-stubs
is installable with conda by @jorenham in #230 - 📝 update the
scipy
coverage phase table by @jorenham in #243 - Add a highlights section in
README.md
by @jorenham in #249 - update the
README.md
phase table to better reflect theUntyped
counts by @jorenham in #253 - prevent lock update with tools and
uv
setup guide by @miloth in #254
Dependencies
- bump
mdformat
andmdformat-pyproject
by @jorenham in #187 - bump
ruff
to0.8.0
by @jorenham in #191 - bump
basedpyright
to1.22.0
by @jorenham in #193 - bump
optype
to0.7.2
by @jorenham in #197 - Bump poethepoet from 0.31.0 to 0.31.1 in the actions group by @dependabot in #202
- configure (based)pyright to ignore
.venv
when opened by @jorenham in #213 - bump
ruff
to0.8.1
by @jorenham in #229 - bump
optype
to0.7.3
by @jorenham in #232
Other Changes
- prepare for further development by @jorenham in #186
- move libcst config out of the root dir by @jorenham in #188
optimize
: remove private testing module_tstutils
by @jorenham in #196- custom auto-generated release notes by @jorenham in #199
- enable all
ruff
rules by default by @jorenham in #201 - restore the
libcst
codemod config by @jorenham in #217 - test with the oldest supported numpy version in the CI by @jorenham in #231
- use the new 0-d
optype
array aliases to simplify the code by @jorenham in #234 - use the new
optype
strict-shape array-likes by @jorenham in #235 - security policy update by @jorenham in #251
- use
uv
as package manager by @miloth in #174
New Contributors
Full Changelog: v1.14.1.4...v1.14.1.5
v1.14.1.4
What's Changed
- Bump poethepoet from 0.29.0 to 0.30.0 in the actions group by @dependabot in #173
- bump
ruff
to0.7.4
by @jorenham in #178 - prepare for further development by @jorenham in #179
- configure dependabot to use the correct labels by @jorenham in #180
- Bump DavidAnson/markdownlint-cli2-action from 17 to 18 in the actions group by @dependabot in #181
- complete
scipy.interpolate._cubic
by @jorenham in #182 - bump
libcst
to1.5.1
by @jorenham in #183 - use the conventional
optype
import aliases by @jorenham in #184 - optype 0.7 by @jorenham in #185
New Contributors
- @dependabot made their first contribution in #173
Full Changelog: v1.14.1.3...v1.14.1.4
v1.14.1.3
Highlights
- annotated all of
scipy.signal.windows
(#153) - annotated and tested the
scipy.signal
spectral analysis functions (#157)periodogram
spectrogram
welch
lombscargle
csd
coherence
stft
andistft
check_COLA
andcheck_NOLA
- improved and fixed many
scipy.optimize
functions (#167), including
Resolved issues
- #134 - specializing
scipy.optimize.OptimizeResult
- #154 -
select_range
params inscipy.linalg._decomp
can only beint{16,32,64}
ifselect="i"
- #155 - sync
integrate._typing.QuadOpts
with the kwargs ofintegrate.quad
- #158 -
scipy.spatial
signature of[c]KDTree.query
does not match docs - #159 -
scipy.signal.find_peaks
returned dictionary type is missing the'widths'
key - #163 - Wrong return type for
scipy.fft.next_fast_len
- #168 -
scipy.stats.qmc.scale
does not accept numpy array with typed shape as input when type checked with pyright
Merged PR's
- use
basedmypy[faster-cache]
by @jorenham in #150 - bump
ruff
to0.7.2
by @jorenham in #151 - prepare for further development by @jorenham in #152
- sync
integrate._typing.QuadOpts
withintegrate.quad
kwargs by @jorenham in #156 signal.windows
: Add type stubs for_windows.pyi
. by @pavyamsiri in #153signal
: Add type stubs to_spectral_py.pyi
. by @pavyamsiri in #157- fix #159 and improve
scipy.signal._peak_finding
by @jorenham in #161 - fix #158 and improve
scipy.spatial._[c]kdtree
by @jorenham in #162 - fix #163 and improve
scipy.fft._helper
by @jorenham in #164 - fix #154 and improve
scipy.linalg._decomp
by @jorenham in #165 - add missing
__all__
inscipy.optimize
by @jorenham in #166 - fix #134 and improve
scipy.optimize._optimize
by @jorenham in #167 - bump
ruff
to0.7.3
by @jorenham in #170 - bump
basedpyright
to1.21.0
by @jorenham in #171 - fix incorrectly rejected
ndarray
inscipy.stats.qmc
by @jorenham in #172
Full Changelog: v1.14.1.2...v1.14.1.3
v1.14.1.2
scipy-stubs v1.14.1.2
Highlights
Fixes
scipy.integrate.quad
rejected all callables ifargs
was passed (#141)scipy.stats.permutation_test
rejectedstatistic
with multiple parameters (#143)
Merged PR's
- update development dependencies by @jorenham in #133
- complete
scipy.stats
by @jorenham in #135 - bump
basedpyright
to1.19.1
andtox
to4.23.2
by @jorenham in #136 - use utf8 emoji's for pypi compat by @jorenham in #137
- bump
ruff
to0.7.1
by @jorenham in #138 - fix
scipy.integrate
quad function parameter types by @jorenham in #141 - complete
scipy.fft
by @jorenham in #142 - fix permutation_test statistic callback type by @graingert-coef in #143
- bump
basedpyright
to1.20.0
by @jorenham in #144 - fix dependabot target branch and include github-actions by @jorenham in #145
- configure and enforce
repo-review
,codespell
, andmdformat
by @jorenham in #146 - bump to
basedmypy 2.7.0
(mypy 1.3.0
) by @jorenham in #147 - include more cache directories in the
poe clean
dev command by @jorenham in #148 - Restructured type-tests and related documentation by @jorenham in #149
New Contributors
- @graingert-coef made their first contribution in #143
Full Changelog: v1.14.1.1...v1.14.1.2
v1.14.1.1
What's Changed
- fix and improve
scipy.optimize.minimize
by @jorenham in #86 - bump
basedpyright
to1.19.0
andtox
to4.23.0
by @jorenham in #88 - codemod for missing annotations by @jorenham in #89
- bump
ruff
to0.7.0
, and enableANN
by @jorenham in #90 - add
.mypy_cache
to.gitignore
by @jorenham in #91 - codemod for params with missing trailing comma by @jorenham in #94
- fix the remaining pyright errors by @jorenham in #95
- made
scipy
optional, and loosened the version restrictions by @jorenham in #96 - complete
scipy.linalg
by @jorenham in #109 - run
basedpyright
inpre-commit
by @jorenham in #110 - complete
scipy.io
by @jorenham in #112 - simple contributing guide by @jorenham in #108
- refactor contextmanagers with a type-check-only mixins by @jorenham in #113
- use
Any
forUntyped
by @jorenham in #114 - complete and improve
scipy._lib
by @jorenham in #116 - complete
scipy.spatial
by @jorenham in #117 - Add type stubs to
scipy/signal/_peak_finding.pyi
by @pavyamsiri in #87 - complete
scipy.odr
by @jorenham in #119 - combine
allowlist.txt
rules as regexes by @jorenham in #122 - explicit python version pypi classifiers by @jorenham in #123
- configure pyright execution environments by @jorenham in #125
- complete
scipy.fft.dct
, and add relevant type aliases by @Avasam in #118 - complete
scipy.fftpack
by @jorenham in #121 - complete
scipy.signal._savitzky_golay
by @pavyamsiri in #124 - complete
scipy.integrate
by @jorenham in #128 - manual typing fixes on numpy 1.24 and python 3.10 by @jorenham in #131
New Contributors
Full Changelog: v1.14.1.0...v1.14.1.1
v1.14.1.0
What's Changed
- improved
scipy.stats.distributions
by @jorenham in #43 - bump basedpyright to 1.17.3 by @jorenham in #44
- more poe tasks & CI typetesting by @jorenham in #45
scipy.optimize
(partial) by @jorenham in #46- First pass on dealing with public private modules: Re-export attributes of public private modules through
__all__
by @pavyamsiri in #54 - update the development dependencies by @jorenham in #55
- use 4-space indentation for toml by @jorenham in #56
- configure pre-commit by @jorenham in #57
- stubtest specific packages by @jorenham in #58
- completed
scipy.io
by @jorenham in #59 - fix pyright error in
scipy.cluster
by @jorenham in #60 - deal with deprecated
scipy.integrate
modules by @jorenham in #61 - deal with deprecated
scipy.linalg
modules by @jorenham in #62 - deal with deprecated
scipy.constants
modules by @jorenham in #63 scipy.interpolate
by @jorenham in #64- bump
basedpyright
to1.18.4
by @jorenham in #65 - fix version number and stop using
verifytypes
by @jorenham in #67 - move
./typetests
to./tests/typetests
by @jorenham in #70 - improved
README.md
by @jorenham in #71 scipy.ndimage
by @jorenham in #72- fix pyright errors in
scipy.odr
by @jorenham in #73 scipy.spatial
by @jorenham in #74- Streamlined
README.md
by @jorenham in #75 scipy._lib
by @jorenham in #76- fix
stubtest
build errors inscipy.stats
by @jorenham in #77 - fix
scipy.signal
stubtest by @jorenham in #78 - Final pass over the deprecated public modules by @pavyamsiri in #79
- fix
scipy.stats
stubtest by @jorenham in #80 - improved
scipy.LowLevelCallable
by @jorenham in #82 - fix
scipy.sparse
stubtests by @jorenham in #83 - fix mypy errors in
scipy.signal
by @jorenham in #84 - configure tox by @jorenham in #85
New Contributors
- @pavyamsiri made their first contribution in #54
Full Changelog: v1.4.1a3...v1.14.1.0
v1.14.1a3
What's Changed
- fixes & improvements for
scipy.stats.distributions
by @jorenham in #37 - fix
scipy.integrate
quad integrand function signatures by @jorenham in #38 - loosened the type signature of the integrand in
scipy.integrate.nquad
by @jorenham in #39 - fix stubtest errors by @jorenham in #40
- various fixes and improvements in
scipy.stats._distn_infrastructure
by @jorenham in #41
Full Changelog: v1.14.1a2...v1.4.1a3