@@ -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