Skip to content

Commit 7e56d05

Browse files
authored
Merge pull request #499: Update dependencies
2 parents 6905314 + 87ad32f commit 7e56d05

4 files changed

Lines changed: 29 additions & 25 deletions

File tree

CHANGES.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@ development source code and as such may not be routinely kept up to date.
4141
existing `--resources` given to Snakemake.
4242
([#514](https://github.com/nextstrain/cli/pull/514))
4343

44+
## Bug fixes
45+
46+
* Updated code to support the latest version of `wrapt`, used to show
47+
`--dry-run` outputs.
48+
([#499](https://github.com/nextstrain/cli/pull/499))
49+
* Updated the dependency list to explicitly include `boto3`, used for various
50+
commands.
51+
([#499](https://github.com/nextstrain/cli/pull/499))
52+
4453
# 10.4.2 (7 January 2026)
4554

4655
## Improvements

doc/changes.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ development source code and as such may not be routinely kept up to date.
4747
existing `--resources` given to Snakemake.
4848
([#514](https://github.com/nextstrain/cli/pull/514))
4949

50+
(v-next-bug-fixes)=
51+
### Bug fixes
52+
53+
* Updated code to support the latest version of `wrapt`, used to show
54+
`--dry-run` outputs.
55+
([#499](https://github.com/nextstrain/cli/pull/499))
56+
* Updated the dependency list to explicitly include `boto3`, used for various
57+
commands.
58+
([#499](https://github.com/nextstrain/cli/pull/499))
59+
5060
(v10-4-2)=
5161
## 10.4.2 (7 January 2026)
5262

nextstrain/cli/console.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from contextlib import contextmanager, ExitStack, redirect_stdout, redirect_stderr
77
from functools import wraps
88
from typing import Callable, TextIO
9-
from wrapt import ObjectProxy
9+
from wrapt import BaseObjectProxy # pyright: ignore[reportAttributeAccessIssue]
1010

1111

1212
def auto_dry_run_indicator(getter: Callable[..., bool] = lambda opts, *args, **kwargs: opts.dry_run):
@@ -83,7 +83,7 @@ def dry_run_indicator(dry_run: bool = False):
8383
yield dry_run
8484

8585

86-
class LinePrefixer(ObjectProxy): # pyright: ignore[reportUntypedBaseClass]
86+
class LinePrefixer(BaseObjectProxy): # pyright: ignore[reportUntypedBaseClass]
8787
"""
8888
Add *prefix* to every line written to *file*.
8989

setup.py

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def find_namespaced_packages(namespace):
102102
"requests",
103103
"typing_extensions >=3.7.4",
104104
"wcmatch >=6.0",
105-
"wrapt",
105+
"wrapt >=2.0.0",
106106

107107
# We use fsspec's S3 support, which has a runtime dep on s3fs. s3fs
108108
# itself requires aiobotocore, which in turn requires very specific
@@ -112,33 +112,18 @@ def find_namespaced_packages(namespace):
112112
# versions closely matching the boto3 version (they're released in near
113113
# lock step).
114114
#
115-
# If we declare a dep on boto3 directly, this leads to conflicts during
116-
# dependency resolution when a newer boto3 (from our declaration here)
117-
# requires a newer botocore than is supported by s3fs → aiobotocore's
118-
# declarations.
119-
#
120-
# Resolve the issue by using a specially-provided package extra from
121-
# s3fs (first introduced with 2021.4.0, removed in 2025.12.0) which
122-
# causes them to declare an explicit dependency on aiobotocore's
123-
# specially-provided package extra on boto3 so that dependency resolver
124-
# can figure it out properly.
125-
#
126-
# Note that the upper limit is not future-proof and will likely cause
127-
# issues down the road. There may be a better combination to use here,
128-
# but that needs extra digging.
115+
# boto3 must be unconstrained. Adding any constraint causes pip to lock
116+
# the boto3/botocore version early in resolution, often resulting in a
117+
# version newer than what aiobotocore supports.
129118
#
130119
# More background:
131-
# <https://github.com/dask/s3fs/issues/357>
132-
# <https://github.com/nextstrain/cli/issues/133>
133-
# <https://github.com/fsspec/s3fs/issues/994>
134-
#
135-
# What a mess.
136-
#
120+
# <https://github.com/nextstrain/cli/issues/496>
121+
"boto3",
122+
137123
# Avoiding 2023.9.1 due to change in `auto_mkdir` parameter in
138124
# https://github.com/fsspec/filesystem_spec/pull/1358 that causes the
139125
# error described in https://github.com/fsspec/s3fs/issues/790
140-
"fsspec !=2023.9.1",
141-
"s3fs[boto3] >=2021.04.0, !=2023.9.1, <2025.12.0",
126+
"fsspec[s3] !=2023.9.1",
142127

143128
# From 2.0.0 onwards, urllib3 is better typed, but not usable (given
144129
# our dep tree) on 3.8 and 3.9 so we use types-urllib3 there (see

0 commit comments

Comments
 (0)