-
Notifications
You must be signed in to change notification settings - Fork 4
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
Merging to form final, release v0.0.1 branch (eventually) #7
Changes from all commits
393544d
f91f73c
9d96ed6
868d432
125e3e7
61e39df
d1d7bf0
df3e3aa
d7127e8
109d153
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,47 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import sys | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from itertools import combinations | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def format_print(permutations): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Args: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
permutations: List of all possible permutations of length > 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>>> format_print([('2',), ('2', '3'), ('2', '3', '4'), ('2', '4'), ('3',), ('3', '4'), ('4',)]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[2],[2,3],[2,3,4],[2,4],[3],[3,4],[4] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
out_str = "" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for item in permutations: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
out_str += f"[{','.join(item)}]," | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
out_str = out_str[:-1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
print(out_str) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def get_permutations(list_of_options): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"""Generate all possible permutations of a list of options passed as an arg. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Args: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- list_of_options (list): List of options. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Returns: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- list: List of all possible permutations of length > 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>>> get_permutations(['2', '3', '4']) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[2],[2,3],[2,3,4],[2,4],[3],[3,4],[4] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
permutations = [] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for i in range(1, len(list_of_options) + 1): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
permutations.extend(list(combinations(list_of_options, r=i))) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
format_print(sorted(permutations)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+21
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The + if not list_of_options:
+ return [] Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def main(): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"""Generate all possible permutations of a list of options.""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
list_of_options = list(sys.argv[1].strip("[]").split(",")) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get_permutations(list_of_options) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if __name__ == "__main__": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
main() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+40
to
+47
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Tip Codebase Verification The current implementation of the
Analysis chainThe Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Description: Verify that the command-line arguments are correctly parsed and handled.
# Test: Search for the command-line argument handling. Expect: Proper error handling for incorrect formats.
rg --type python $'sys.argv'
Length of output: 58 Script: #!/bin/bash
# Description: Verify that the command-line arguments are correctly parsed and handled.
# Test: Search for the command-line argument handling. Expect: Proper error handling for incorrect formats.
rg 'sys.argv' --glob '*.py'
Length of output: 147 Script: #!/bin/bash
# Description: Verify error handling for incorrect input formats in generate_permutations.py.
# Test: Search for try-except blocks or input validation in generate_permutations.py.
rg 'try|except|if' src/MEDS_tabular_automl/scripts/generate_permutations.py
Length of output: 104 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove unused import:
json
.- import json
Committable suggestion
Tools
Ruff