Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Union[Literal, ...] is unusable #322

Open
JasonGross opened this issue Aug 21, 2024 · 0 comments
Open

Union[Literal, ...] is unusable #322

JasonGross opened this issue Aug 21, 2024 · 0 comments

Comments

@JasonGross
Copy link

To Reproduce

from dataclasses import dataclass
from typing import Literal, Union
import simple_parsing

@dataclass
class Foo:
    bar: Union[Literal["a"], dict] = "a"

parser = simple_parsing.ArgumentParser()
parser.add_arguments(
    Foo,
    dest="foo",
    default=Foo(),
)
parser.parse_args()

Expected behavior
The code should run, just like it does if I replace Union[Literal["a"], dict] with Literal["a"]

Actual behavior

$ python issue.py
Couldn't parse value a, returning the value as-is. (exceptions: [TypeError('Cannot instantiate typing.Literal'), ValueError('dictionary update sequence element #0 has length 1; 2 is required')])
usage: test.py [-h] [--bar Literal|dict]
test.py: error: argument --bar: invalid Literal|dict value: 'a'

Desktop (please complete the following information):

  • simple-parsing = "^0.1.5"
  • Python version: 3.11
JasonGross added a commit to JasonGross/guarantees-based-mechanistic-interpretability that referenced this issue Aug 21, 2024
lebrice added a commit that referenced this issue Sep 5, 2024
Signed-off-by: Fabrice Normandin <[email protected]>
JasonGross added a commit to JasonGross/guarantees-based-mechanistic-interpretability that referenced this issue Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant