You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,29 @@
1
+
# 8.0.0, 2026-06-27
2
+
3
+
See [the migration docs](MIGRATING_FROM_OLDER_VERSIONS.md) for details on breaking changes.
4
+
5
+
- Remove deprecated top-level smart_open() function (PR [#928](https://github.com/piskvorky/smart_open/pull/928), [@ddelange](https://github.com/ddelange))
6
+
- Remove deprecated concurrency.create_pool and ConcurrentFuturesPool (PR [#931](https://github.com/piskvorky/smart_open/pull/931), [@ddelange](https://github.com/ddelange))
7
+
-[hdfs] Support host and port in HDFS URIs (PR [#168](https://github.com/piskvorky/smart_open/pull/168), [@vvaten](https://github.com/vvaten))
8
+
- Remove stale Python 2.7 references in comments and docstrings (PR [#932](https://github.com/piskvorky/smart_open/pull/932), [@ddelange](https://github.com/ddelange))
- Simplify inspect_kwargs() by dropping getargspec fallback (PR [#934](https://github.com/piskvorky/smart_open/pull/934), [@ddelange](https://github.com/ddelange))
11
+
-[s3] Pass session_kwargs as a dict to s3.iter_bucket (PR [#930](https://github.com/piskvorky/smart_open/pull/930), [@ddelange](https://github.com/ddelange))
-[gcs] Remove no-op _blob.terminate shim in Writer (PR [#936](https://github.com/piskvorky/smart_open/pull/936), [@ddelange](https://github.com/ddelange))
14
+
-[s3] Remove deprecated transport params from open_uri (PR [#937](https://github.com/piskvorky/smart_open/pull/937), [@ddelange](https://github.com/ddelange))
- Refresh stale RaRe-Technologies URLs and boto wording (PR [#938](https://github.com/piskvorky/smart_open/pull/938), [@ddelange](https://github.com/ddelange))
18
+
- Document #926 breaking changes in MIGRATING (PR [#939](https://github.com/piskvorky/smart_open/pull/939), [@ddelange](https://github.com/ddelange))
19
+
- Add compression_kwargs parameter to smart_open.open() (PR [#940](https://github.com/piskvorky/smart_open/pull/940), [@ddelange](https://github.com/ddelange))
20
+
-[s3] Drop host/port from S3 URIs, drop s3u scheme (PR [#943](https://github.com/piskvorky/smart_open/pull/943), [@ddelange](https://github.com/ddelange))
21
+
-[gcs] Use gcs:// as canonical GCS scheme, keep gs:// as alias (PR [#944](https://github.com/piskvorky/smart_open/pull/944), [@ddelange](https://github.com/ddelange))
22
+
- Parse versionId from s3:// URIs into version_id (PR [#945](https://github.com/piskvorky/smart_open/pull/945), [@ddelange](https://github.com/ddelange))
23
+
- Add pre-commit and migrate from flake8 to ruff (PR [#946](https://github.com/piskvorky/smart_open/pull/946), [@ddelange](https://github.com/ddelange))
24
+
- Migrate RST docs to Markdown (PR [#947](https://github.com/piskvorky/smart_open/pull/947), [@ddelange](https://github.com/ddelange))
25
+
- Add type annotations and ty type checker (PR [#948](https://github.com/piskvorky/smart_open/pull/948), [@ddelange](https://github.com/ddelange))
26
+
1
27
# 7.7.1, 2026-06-26
2
28
3
29
-[http,azure] Optimize forward seeks within buffered data to avoid redundant requests (PR [#923](https://github.com/piskvorky/smart_open/pull/923), [@ddelange](https://github.com/ddelange))
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -382,7 +382,7 @@ fout = open(
382
382
383
383
### Iterating Over an S3 Bucket's Contents
384
384
385
-
Since going over all (or select) keys in an S3 bucket is a very common operation, there's also an extra function `smart_open.s3.iter_bucket()` that does this efficiently, **processing the bucket keys in parallel** (using multiprocessing):
385
+
Since going over all (or select) keys in an S3 bucket is a very common operation, there's also an extra function `smart_open.s3.iter_bucket()` that does this efficiently, **processing the bucket keys in parallel** (using multithreading):
@@ -207,7 +215,8 @@ It is possible to save both CPU time and memory by sharing the same resource acr
207
215
208
216
```
209
217
210
-
Clients are thread-safe and multiprocess-safe, so you may share them between other threads and subprocesses.
218
+
Clients are generally thread-safe, so you may share a single client across threads ([ref](https://github.com/boto/boto3/blob/1.38.41/docs/source/guide/clients.rst?plain=1#L111)); note they cannot be shared across processes.
219
+
Note that long-lived clients can leak memory ([boto/boto3#1670](https://github.com/boto/boto3/issues/1670)), so prefer creating a client per operation (or periodically recreating it) for long-running processes.
211
220
212
221
## How to Write to S3 Efficiently
213
222
@@ -235,8 +244,8 @@ import boto3
235
244
from smart_open importopen
236
245
237
246
with tempfile.NamedTemporaryFile() as tmp:
238
-
tp= {"writebuffer": tmp}
239
-
withopen("s3://bucket/key", "w", transport_params=tp) as fout:
247
+
transport_params= {"writebuffer": tmp}
248
+
withopen("s3://bucket/key", "w", transport_params=transport_params) as fout:
0 commit comments