Is your feature request related to a problem? Please describe.
The e2b Python SDK pins wcmatch>=10.1,<11 (see pyproject.toml/Requires-Dist in the published wheel, e.g. e2b==2.37.0). This makes e2b impossible to install alongside any package that requires wcmatch>=11.0 — for example, deepagents>=0.7.0 requires wcmatch>=11.0, so pip install e2b deepagents fails with a dependency resolution conflict (<11 vs >=11.0, no overlapping version satisfies both).
Describe the solution you'd like
Could the constraint be relaxed to something like wcmatch>=10.1,<12 ? This would let e2b coexist with newer packages (e.g. deepagents>=0.7.0) that have already moved to wcmatch>=11.0, without any code changes needed on the SDK side as far as I can tell.
Describe alternatives you've considered
None. Blocks our needed upgrade to deepagents>=0.7.0 (see here)
Additional context
wcmatch is used in exactly one place in the SDK, e2b/template/utils.py:
from wcmatch import glob
...
files_glob = glob.glob(
src,
flags=glob.GLOBSTAR | glob.DOTMATCH,
root_dir=abs_context_path,
exclude=ignore_patterns,
)
This is used for the Template build system's file-copying/.dockerignore matching logic (get_all_files_in_path, calculate_files_hash, tar_file_stream).
Why <11 looks unnecessary
I checked wcmatch's changelog between 10.1 and 11.0 (https://github.com/facelessuser/wcmatch/releases):
10.2: required bracex>=3.0, dropped Python 3.9
10.2.1: fixed the bracex requirement declaration
11.0: added EXTGLOB/EXTMATCH regex-nesting reduction and a new NUMRANGE flag; the only breaking change is that translate() no longer emits a capture group per extended-glob pattern by default (opt back in via the CAPTURE flag)
That break only affects callers using wcmatch's translate() function with EXTGLOB/EXTMATCH enabled. The SDK's usage — glob.glob() with GLOBSTAR | DOTMATCH — doesn't touch translate() or extended-glob capture groups at all, so wcmatch 11.0 should be a functional no-op for this codebase.
Is your feature request related to a problem? Please describe.
The e2b Python SDK pins wcmatch>=10.1,<11 (see pyproject.toml/Requires-Dist in the published wheel, e.g. e2b==2.37.0). This makes e2b impossible to install alongside any package that requires wcmatch>=11.0 — for example, deepagents>=0.7.0 requires wcmatch>=11.0, so pip install e2b deepagents fails with a dependency resolution conflict (<11 vs >=11.0, no overlapping version satisfies both).
Describe the solution you'd like
Could the constraint be relaxed to something like wcmatch>=10.1,<12 ? This would let e2b coexist with newer packages (e.g. deepagents>=0.7.0) that have already moved to wcmatch>=11.0, without any code changes needed on the SDK side as far as I can tell.
Describe alternatives you've considered
None. Blocks our needed upgrade to deepagents>=0.7.0 (see here)
Additional context
wcmatch is used in exactly one place in the SDK, e2b/template/utils.py:
This is used for the Template build system's file-copying/.dockerignore matching logic (get_all_files_in_path, calculate_files_hash, tar_file_stream).
Why <11 looks unnecessary
I checked wcmatch's changelog between 10.1 and 11.0 (https://github.com/facelessuser/wcmatch/releases):
10.2: required bracex>=3.0, dropped Python 3.9
10.2.1: fixed the bracex requirement declaration
11.0: added EXTGLOB/EXTMATCH regex-nesting reduction and a new NUMRANGE flag; the only breaking change is that translate() no longer emits a capture group per extended-glob pattern by default (opt back in via the CAPTURE flag)
That break only affects callers using wcmatch's translate() function with EXTGLOB/EXTMATCH enabled. The SDK's usage — glob.glob() with GLOBSTAR | DOTMATCH — doesn't touch translate() or extended-glob capture groups at all, so wcmatch 11.0 should be a functional no-op for this codebase.