python-attrs / python-attrs/cattrs
'_UnionGenericAlias' is deprecated and slated for removal in Python 3.17
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 159
- Avg merge
- 12h 21m
- Merged PRs (30d)
- 6
Description
Just a heads-up of a deprecation message emitted in Python3.14
/opt/hostedtoolcache/Python/3.14.0-alpha.6/x64/lib/python3.14/site-packages/cattrs/preconf/json.py:54: in make_converter
configure_converter(res)
args = ()
kwargs = {'unstruct_collection_overrides': {<class 'collections.abc.Set'>: <class 'list'>, <class 'collections.Counter'>: <class 'dict'>}}
res = <cattrs.preconf.json.JsonConverter object at 0x7fd7ad42f800>
/opt/hostedtoolcache/Python/3.14.0-alpha.6/x64/lib/python3.14/site-packages/cattrs/preconf/json.py:35: in configure_converter
converter.register_unstructure_hook(
converter = <cattrs.preconf.json.JsonConverter object at 0x7fd7ad42f800>
/opt/hostedtoolcache/Python/3.14.0-alpha.6/x64/lib/python3.14/site-packages/cattrs/converters.py:345: in register_unstructure_hook
if is_union_type(cls):
cls = <class 'bytes'>
func = <function configure_converter.<locals>.<lambda> at 0x7fd7ad68d010>
self = <cattrs.preconf.json.JsonConverter object at 0x7fd7ad42f800>
/opt/hostedtoolcache/Python/3.14.0-alpha.6/x64/lib/python3.14/site-packages/cattrs/_compat.py:292: in is_union_type
or (isinstance(obj, _UnionGenericAlias) and obj.__origin__ is Union)
UnionType = <class 'typing.Union'>
obj = <class 'bytes'>
/opt/hostedtoolcache/Python/3.14.0-alpha.6/x64/lib/python3.14/typing.py:1652: in __instancecheck__
warnings._deprecated("_UnionGenericAlias", remove=(3, 17))
inst = <class 'bytes'>
self = <class 'typing._UnionGenericAlias'>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Inspect cattrs/_compat.py, especially is_union_type around the deprecated _UnionGenericAlias check, and reproduce the warning under Python 3.14. Confirm that the compatibility logic no longer emits the deprecation warning while preserving union detection behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100