Comments (5)
AnySet
is a Predicate
(something you can put in the condition of If
), not a Constraint
. You want to use require_any
instead.
from cloup.
Thanks for this awesome package!
You're welcome :)
from cloup.
You can't do require_any("param1", "param2")
though. A constraint applied to an option group applies to all options of the group. It's possible to express what you want but not as you did. Check the docs: https://cloup.readthedocs.io/en/stable/pages/constraints.html#applying-constraints
from cloup.
Oh, my bad. Thanks for explaining!
Yes, so I figure I could use the group's kwarg constraint
for the unconditional require_one
, and then add another top-level decorator with If
just for the two options.
from cloup.
Fantastic, that worked:
@cloup.option_group(
'list to be replaced',
cloup.option('--strings1', cls=OptionEatAll, type=tuple, help='as strings'),
cloup.option('--files1', cls=OptionEatAll, type=tuple, help='as file paths of strings'),
cloup.option('--filelist1', type=cloup.File('r'), help='as text file with file paths of strings'),
constraint=cloup.constraints.require_one)
@cloup.constraint(
cloup.constraints.If('show_files',
then=cloup.constraints.require_one),
['files1', 'filelist1'])
nmalign -f --strings1 "${STRINGS1[@]}" --strings2 "${STRINGS2[@]}"
Error: when --show-files is set, exactly 1 of the following parameters must be set:
--files1
--filelist1
from cloup.
Related Issues (20)
- Minor language issue in documentation HOT 3
- Optional parenthesis for `@command` and `@option` HOT 5
- Require one constraint prevents subcommand help from working HOT 5
- Consider renaming __constraints to __cloup_constraints__ HOT 4
- Test for Python 3.11
- Pytest: replace deprecated `pytest.warns(None)` with something else
- Rename `sorted` attribute of `Section` to `is_sorted` to solve conflict with `Section.sorted` static method HOT 6
- Use ruff and a code formatter HOT 3
- mutually_exclusive constraint doesn't work with multiple flags with flag_value HOT 1
- Styling of aliases HOT 1
- Custom MultiCommands (with styling) HOT 3
- Over-highlighting of heading's extra space HOT 2
- Change `HelpTheme` type to allow sub-classing HOT 3
- `cloup.Group` ignores `command_class` to produce sub-commands HOT 9
- Exception when creating copy of `Option` object with `Constraint` HOT 5
- Consider adding support to async commands
- Aliases not added if `Group` is initialized with a list of commands HOT 2
- Overwrite `to_info_dict()` method in `Context` and command classes HOT 3
- Drop support for python 3.7, add it for 3.12
- `cloup.Color` cannot be rendered by Sphinx: `Exception: you can't set attributes on this class` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cloup.