Doorway

Latest version: v0.6.3

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

Scan your dependencies

Page 1 of 2

0.6.2

What's Changed
* zero deps patch by nmichlo in https://github.com/nmichlo/doorway/pull/2


**Full Changelog**: https://github.com/nmichlo/doorway/compare/v0.6.0...v0.6.2

0.6.0

**docs**
- README examples
- added extensive typing for missing modules `doorway.x._proxy`, `doorway._shard` and many more

**added**
- added `ctx_do_undo`, pass in `do` fn and `undo` fn as part of a context manager
- additional SI/IEC units ronna `R` and quetta `Q` (coming after yotta) for `fmt_bytes_to_human`
- added `progress: bool` to `io_download`
- added new proxy scraper for `proxylist.geonode.com`
- added support for `python 3.9` through `python 3.13`

**breaking**
- renamed `sharded_and_grouped` to `sharded_weighted` to better reflect the nature of this API
- renamed `sharded_weighted` param from `group_sizes` to `shard_weights`
- re-write the `EnvVar` system
- changed default mode for `AtomicFile` from `x` to `r`
- replaced `overwrite_existing` in `io_download` with `exists_mode`
- fixed `io_download` should not require `tqdm`
- fixed `ProxyDownloader.download_threaded` should allow iterator instead of sequence
- renamed various proxy functions and classes to start with `[Pp]roxy` as the prefix
- drop support for `python 3.8`


**fixed**
- `kB` instead of `KB` in `fmt_bytes_to_human`
- added support for `pathlib.Path` to proxies and other APIs
- use `None` for return type instead of `NoReturn` which signals exit

**CI**
- upgraded CI steps
- added CI for ruff linting and formatting
- added CI version bump
- added local pre-commit hooks

What's Changed
* improvements minor by nmichlo in https://github.com/nmichlo/doorway/pull/1

**Full Changelog**: https://github.com/nmichlo/doorway/compare/v0.5.0...v0.6.0

0.5.0

- atomic file operations
+ `AtomicPath` ("r+", "w", "x", "a") -- doesn't actually open the file, just returns a temp path, and asserts that the destination exists or not and the temp file was created based on the mode, in the case of `a` and `r+`, the destination is copied to the temp file
+ `AtomicOpen` (any more supported by `open(...)`) -- wraps `AtomicPath` to return file objects like `open()`
+ cleans up the temp file if an error occurs, and if succeeds moves the temp file to the destination using atomic operations.

- improved `fmt_bytes_to_human`, better rounding of units

- added: `io_download`, to download files using `AtomicOpen`

- added: `basename_split_ext`, `basename_modify`, `path_basename_modify` to modify various attributes about the `<basename>` or `<name>.<ext>` of a path

- added: experimental proxy class

0.4.0

Sharding API changes

0.3.0

Sharding with key based function

0.2.0

Add context managers & rename shard functions

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.