File: CHANGELOG.md

package info (click to toggle)
universal-pathlib 0.3.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,656 kB
  • sloc: python: 20,552; makefile: 5
file content (395 lines) | stat: -rw-r--r-- 15,788 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
# universal_pathlib changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.3.10] - 2026-02-22

### Fixed
- upath.extensions: fix ProxyUPath as copy or move target on 3.14+ (#547)

### Changed
- upath: updated flavours (#545)
- ci: updated development dependencies (#550)

## [0.3.9] - 2026-01-31

### Fixed
- upath.core: raise TypeError if using subclass directly with wrong protocol (#541)
- upath.core: (backcompat) TypeError on protocol incompatibility (#540)
- upath.extensions: Pydantic serialize ProxyUPath (#538)

### Changed
- upath: updated flavours (#512)

## [0.3.8] - 2026-01-11

### Added
- tests: add missing pathlib abc tests (#511)
- tests: split base test cases into joinable/readable/writable tests (#507)
- docs: describe UPath/s3fs behavior with `is_dir()` (#503)

### Fixed
- upath.implementations.cloud: fix S3Path copy to local with name collision of file/dir (#533)
- upath.core: fix behaviour of `UPath.parent` and `UPath.parents` (#529)
- upath.implementations.github: adjust GitHubPath error reporting (#522)
- upath.implementations.cloud: fix error handling on HfPath (#521)
- upath.implementations.zip: disable write mode in universal-pathlib (#520)
- upath.implementations.tar: fix error handling for write methods (#519)
- upath.implementations.http: fix HTTPPath error handling for unsupported methods (#518)
- upath.implementations.data: fix DataPath error handling for unsupported methods (#517)
- upath.core: fix `touch()` method (#515)
- upath.extensions: fix `is_relative_to()` for extensions (#510)
- upath.extensions: fix error behavior for `hardlink_to()` backport and `symlink_to()` (#508)
- upath: fix `iterdir()` behaviour when raising NotADirectoryError for all UPath subclasses (#506)
- tests: xfail on name resolution error in github suite (#523)
- tests: fix GitHub tests without a network connection (#509)

### Changed
- upath: adjust behavior of `UPath.copy()` and `UPath.copy_into()` with str and Path targets (#530)
- upath.core: handover cached fs instances in `with_segments()` (#516)
- tests: split test suite according to abcs and cleanup tests (#513)
- tests: remove two unused helper functions introduced in #492 (#505)
- ci: do not hardcode Python executable name (#504)
- ci: updated development dependencies (#501)

## [0.3.7] - 2025-12-03

### Added
- upath.implementations.ftp: added FTPPath support (#485)
- tests: added comprehensive warning checks in test suite (#487)
- tests: added xfail handling for network connectivity issues (#492)

### Fixed
- upath: fixed trailing slash behavior for cloud paths (#488)
- upath.core: fixed rename implementation for relative paths (#493)
- upath.implementations.memory: fixed MemoryPath root (#495)
- upath.implementations.ftp: added support for FTP modification time info format (#485)
- upath.implementations.local: fixed rename return type on Python 3.14+ (#493)
- upath.extensions: fixed .cwd() behavior for ProxyUPath (#493)
- upath.extensions: fixed typing of .cwd() method (#493)
- docs: fixed typing example in README (#484)
- pypi: fixed maintainer display on PyPI (#486)

### Changed
- upath.core: deprecated keyword arguments for UPath.rename() (#496)
- ci: updated development dependencies (dvc, huggingface-hub)

## [0.3.6] - 2025-11-13
### Added
- upath: add `UnsupportedOperation` exception for better pathlib compatibility (#474)
- upath: backport pathlib 3.10-3.14 method signatures (follow_symlinks, newline, case_sensitive, recurse_symlinks, walk_up, etc.) (#476)
- docs: add ProxyUPath usage example (#475)
- tests: add comprehensive pathlib backport signature tests (#474, #476, #477)

### Fixed
- upath.types: correct `st_birthtime` and `st_birthtime_ns` availability (Windows 3.12+, macOS, FreeBSD only) (#476, #477)
- upath: fix `stat()` return type to use `StatResultType` protocol (#476)
- upath: fix equality checks for extensions and local paths (#477)
- upath.implementations.local: fix `_copy_from` method (#477)
- upath.core: remove unneeded lines in `_fs_factory` (#478)

### Changed
- upath.core: raise `TypeError` when creating UPath with incompatible protocols (#477)

## [0.3.5] - 2025-11-09
### Added
- upath.implementations.cloud: add `HfPath` for Hugging Face Hub support (#457)
- docs: MkDocs documentation on Read The Docs (#468, #469)

### Fixed
- upath: fix `relative_to` for simplecache, smb, sftp and extensions (#458)

### Changed
- ci: nox and ci updates (#466)
- upath: update flavours (#467)

## [0.3.4] - 2025-10-16
### Added
- upath.implementations: add `SimpleCachePath` for simplecache protocol support (#453)
- upath: support JSON schema generation for Pydantic integration (#451)

### Changed
- upath: move pathlib-abc from `0.5.1` to `>=0.5.1,<0.6.0` (#450)
- upath.core: deprecate `_protocol_dispatch=False` parameter (#454)

## [0.3.3] - 2025-10-08
### Added
- upath.implementations: add `ZipPath` for ZIP archive filesystem access (#442)
- upath.implementations: add `TarPath` for TAR archive filesystem access (#443)
- tests: add chained ZIP and TAR path tests (#440)

### Fixed
- upath.core: remove `chain_parser` parameter from type overloads to improve type narrowing (#436)

### Changed
- docs: update README with notes about `__fspath__()` behavior

## [0.3.2] - 2025-10-05
### Added
- upath.types: add storage_options submodule with TypedDict classes for all filesystem implementations (#432)
- upath.implementations: add storage_options type annotations to all UPath subclass constructors (#432)
- upath: add type overloads to narrow UPath type based on protocol parameter (#431)
- upath.registry: add overloads to `get_upath_class()` to return correct subclass type based on protocol (#429)
- typesafety: add comprehensive tests for storage_options type checking (#432)
- typesafety: add tests for protocol-based type narrowing (#429, #431)

### Fixed
- upath: fix chained paths `.path` property to return correct normalized paths (#426)
- upath.implementations: correct `.path` normalization for cloud and http paths (#426)
- upath._protocol: raise error when explicitly requesting empty protocol but another protocol is found (#430)
- upath.core: adjust Pydantic v2 schema to support None protocol (#430)
- tests: add xfail when hitting GitHub rate limit (#429)

## [0.3.1] - 2025-10-03
### Added
- upath: add `UPath.from_uri()` classmethod (#423)
- upath: add `UPath.move_into()` method (#422)
- upath: implement `.info` property (#416)
- typesafety: add thorough typechecks to UPath interface (#414)

### Fixed
- upath: fix type annotations for upath.core, upath.extensions and upath.implementations (#420)
- upath: backport types and methods to local implementations (#421)
- upath: stricter upath types and remove Compat* protocol (#417)

### Changed
- maintenance: update license identifier and restrict ci permissions (#424)

## [0.3.0] - 2025-09-29
### Fixed
- upath: support relative paths (#405)
- upath: implement chain functionality (#346)
- upath: fix upath suffixes (#407)
- upath: update flavours (#350, #351, #400, #403, #411)
- upath: fix GH test skipping (#361)
- ci: update ubuntu runners (#359)
- ci: address skip_existing deprecation (#369)
- tests: split protocol mismatch test (#365)
- tests: ensure non-local upaths raise with builtin open (#368)
- tests: add an xfail test for // behaviour on s3 (#370)
- tests: fix xfail call args (#409)
- tests: add a os.PathLike test (#410)

### Added
- upath: api extensions via `upath.extensions.ProxyUPath` (#372)
- upath: add upath.types in preparation for deriving from pathlib-abc (#364)
- upath: add optional support for pydantic (#395)
- upath: list late registered protocols (#358)
- repo: add a security policy (#327)
- ci: start running against 3.14 (#363)

### Changed
- upath: inherit from `pathlib_abc.ReadablePath` and `pathlib_abc.WritablePath` (#366, #402, #404)
- upath: drop Python 3.8 (#360)
- upath: remove deprecated accessor support (#362)

## [0.2.6] - 2024-12-13
### Fixed
- upath: add support for 'abfss' protocol in WrappedFileSystemFlavour (#311)
- upath: fixed sftp join issue for non-root prefixed paths (#294)
- upath: fixed missing typing-extension dependency (#290)
- upath: updated flavour sources (#285, #299, #313, #319)
- tests: minor fixes for moto and gcs tests without internet connectivity (#312)

### Changed
- ci: switch to trusted publishing

### Added
- tests: allow configuring smb port via env var (#314)

## [0.2.5] - 2024-09-08
### Fixed
- upath.implementations.cloud: move bucket check to subclasses (#277)
- upath: enable local tests on windows and fix is_absolute (#278)
- upath: updated flavour sources (#273)

### Added
- upath: adds support for python-3.13 (#275)

## [0.2.4] - 2024-09-07
### Fixed
- upath: fix UPath.rename type signature (#258)
- upath: prevent SMBPath.rename warnings (#259)
- upath: implement UPath.samefile (#261)
- upath: fix UPath.touch(exists_ok=False) if file exists (#262)
- upath: UPath.joinpath() raise error on protocol mismatch (#264)
- tests: silence test warnings (#267)
- tests: fix http xpass test (#266)
- tests: use newer moto server (#248)
- tests: mkdir test on existing gcs bucket (#263)

### Added
- upath: add SFTPPath implementation (#265)

### Changed
- upath: move setup.cfg to pyproject.toml (#260)
- upath: UPath.lstat now returns but raises a warning (#271)
- upath: updated flavours to the newest versions (#272)

## [0.2.3] - 2024-08-23
### Added
- upath: add st_birthtime as standard field (#254)
- upath: added SMBPath and tests (#219)
- ci: added typesafety checks (#212)

### Fixed
- upath: fix UPath.is_absolute on <3.12 (#256)
- upath: fix UPath.rename for absolute paths (#225)
- upath._flavour: fix path parsing due to change in urllib.parse.SplitResult behavior (#236)
- upath: fixed typing regressions (#212)
- upath: update flavour sources (#224, #237, #252)
- docs: fix link to filesystem spec optional dependencies (#232)

## [0.2.2] - 2024-03-04
### Fixed
- upath: fixed comparison with pathlib.Path on py<3.12 (#203)
- upath: imports of filesystem classes are now lazy (#200)
- upath: open() now passes fsspec options through to fsspec (#204)
- upath: fixed regression for args that implement `__fspath__` different from `__str__` (#200)
- docs: fixed entrypoint examples for UPath subclass registration (#196)

## [0.2.1] - 2024-02-18
### Added
- upath: added `UPath.joinuri()` (#189)

### Fixed
- fixed `UPath` instances not hashable (#188)
- fixed missing `packaging` dependency (#187)
- fixed pypi package classifiers

## [0.2.0] - 2024-02-13
### Added
- upath: support Python 3.12 (#152)
- upath: improved subclass customization options (#173)
- upath: support `local` uri scheme (#150)
- upath: added `GitHubPath` (#155)
- upath: added `DataPath` for data uris (#169)

### Changed
- tests: xfail tests if optional dependency is missing (#160)

### Fixed
- fixed netloc handling of `memory://netloc/a/b` style uris (#162)
- fixed broken mkdir for cloud filesystems (#177)
- fixed UPath().stat() now returns a `os.stat_result`-like object (#179)

## [0.1.4]
### Changed
- upath: require fsspec>=2022.1.0 (#148).

### Fixed
- upath.implementation.local: fixes _kwargs in local sub paths (#158).
- upath: fix iterdir trailing slash (#149).
- upath: consistent glob behaviour for "**" patterns (#143).

## [0.1.3]
### Fixed
- upath: restore compatibility with "fsspec<2022.03.0" in line with setup.cfg (#139).

## [0.1.2]
### Added
- upath.registry: provide `available_implementations()` and `register_implementation()` (#134).
- upath: add `UPath.storage_options` and `UPath.protocol` (#135).

### Fixed
- upath: fix `UPath.as_uri()` (#133).

## [0.1.1]
### Fixed
- restore `._kwargs` and `._url` on `PosixUPath` and `WindowsUPath` subclasses (#131).
- tests: fixed and refactored core tests (#130).

## [0.1.0]
### Changed
- updated past changelog entries.
- changed `UPath.__new__` behavior to return `UPath` subclasses for local paths (#125).

### Fixed
- improved azure test separation (#123).

### Added
- tests to confirm pydantic `BaseSettings` behavior (#127).

## [0.0.24] - 2023-06-19
### Added
- started a changelog to keep track of significant changes (#118).
- add support for abfss protocol (#113).
- add cpython pathlib tests (#104).
- implemented `.rename` (#96).

### Fixed
- various webdav test fixes (#103, #107, #109).
- fixed issue with `._url` parsing (#102).
- improved error messages (#96).
- fixed `.rglob()` method (#96).

### Changed
- modernized package dev tools (#105).
- updated ipynb example notebook (#96).

## [0.0.23] - 2023-03-24
### Added
- Implement `UPath.resolve` with a special redirect-following implementation for `HTTPPath` (#86).

## [0.0.22] - 2023-03-11
### Fixed
- Respect exist_ok in mkdir when creating parent directories (#83).

## [0.0.21] - 2022-09-19
### Changed
- Changed the `UPath` implementation registry to lazily import implementations (#78).
- Refactored class methods (#77).

### Fixed
- Fixed S3 paths with a `+` (#76).

## [0.0.20] - 2022-08-30
### Added
- Python 3.11 compatibility (#69).

### Fixed
- Fix `.parents` (#75).
- Fix `.with_*` methods (#73).

### Changed
- Use `NotADirectoryError` instead of custom error (#74).

## [0.0.19] - 2022-06-22
### Added
- started a changelog to keep track of significant changes

[Unreleased]: https://github.com/fsspec/universal_pathlib/compare/v0.3.10...HEAD
[0.3.10]: https://github.com/fsspec/universal_pathlib/compare/v0.3.9...v0.3.10
[0.3.9]: https://github.com/fsspec/universal_pathlib/compare/v0.3.8...v0.3.9
[0.3.8]: https://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8
[0.3.7]: https://github.com/fsspec/universal_pathlib/compare/v0.3.6...v0.3.7
[0.3.6]: https://github.com/fsspec/universal_pathlib/compare/v0.3.5...v0.3.6
[0.3.5]: https://github.com/fsspec/universal_pathlib/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/fsspec/universal_pathlib/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/fsspec/universal_pathlib/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/fsspec/universal_pathlib/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/fsspec/universal_pathlib/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/fsspec/universal_pathlib/compare/v0.2.6...v0.3.0
[0.2.6]: https://github.com/fsspec/universal_pathlib/compare/v0.2.5...v0.2.6
[0.2.5]: https://github.com/fsspec/universal_pathlib/compare/v0.2.4...v0.2.5
[0.2.4]: https://github.com/fsspec/universal_pathlib/compare/v0.2.3...v0.2.4
[0.2.3]: https://github.com/fsspec/universal_pathlib/compare/v0.2.2...v0.2.3
[0.2.2]: https://github.com/fsspec/universal_pathlib/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/fsspec/universal_pathlib/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/fsspec/universal_pathlib/compare/v0.1.4...v0.2.0
[0.1.4]: https://github.com/fsspec/universal_pathlib/compare/v0.1.3...v0.1.4
[0.1.3]: https://github.com/fsspec/universal_pathlib/compare/v0.1.2...v0.1.3
[0.1.2]: https://github.com/fsspec/universal_pathlib/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/fsspec/universal_pathlib/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/fsspec/universal_pathlib/compare/v0.0.24...v0.1.0
[0.0.24]: https://github.com/fsspec/universal_pathlib/compare/v0.0.23...v0.0.24
[0.0.23]: https://github.com/fsspec/universal_pathlib/compare/v0.0.22...v0.0.23
[0.0.22]: https://github.com/fsspec/universal_pathlib/compare/v0.0.21...v0.0.22
[0.0.21]: https://github.com/fsspec/universal_pathlib/compare/v0.0.20...v0.0.21
[0.0.20]: https://github.com/fsspec/universal_pathlib/compare/v0.0.19...v0.0.20
[0.0.19]: https://github.com/fsspec/universal_pathlib/tree/v0.0.19