clipstick icon indicating copy to clipboard operation
clipstick copied to clipboard

Allow positional parameters for a collection to be passed without a name

Open richieadler opened this issue 6 months ago • 0 comments

Given

# adder1.py
from clipstick import parse
from pydantic import BaseModel

class Adder(BaseModel):
    ints: int

    def run(self):
        print(sum([self.ints]))

cmd = parse(Adder)
cmd.run()

this runs OK:

$ adder1.py 10
10

but this

# adder2.py
from clipstick import parse
from pydantic import BaseModel

class Adder(BaseModel):
    ints: list[int]

    def run(self):
        print(sum(self.ints))

cmd = parse(Adder)
cmd.run()

fails for multiple arguments:

$ adder2.py 10 20

ERROR:
Missing a value for positional argument '--ints'

and requires

$ adder2.py --ints 10 --ints 20
30

It would be desirable that positional arguments for a collection could be passed just as values.

richieadler avatar Aug 15 '24 13:08 richieadler