| 1794 | |
| 1795 | |
| 1796 | def parse_forums(subparsers) -> None: |
| 1797 | parser_forums = subparsers.add_parser( |
| 1798 | "forums", formatter_class=argparse.RawTextHelpFormatter, help=Help.group_forums, aliases=["f"] |
| 1799 | ) |
| 1800 | subparsers_forums = parser_forums.add_subparsers(title="commands", dest="command") |
| 1801 | subparsers_forums.choices = Help.forums_choices |
| 1802 | |
| 1803 | # Default action: list forums (when no subcommand given) |
| 1804 | parser_forums.set_defaults(func=api.forums_list_cli) |
| 1805 | |
| 1806 | # Forums list (explicit) |
| 1807 | parser_forums_list = subparsers_forums.add_parser( |
| 1808 | "list", formatter_class=argparse.RawTextHelpFormatter, help=Help.command_forums_list |
| 1809 | ) |
| 1810 | parser_forums_list_optional = parser_forums_list._action_groups.pop() |
| 1811 | _add_output_format_args(parser_forums_list_optional) |
| 1812 | parser_forums_list_optional.add_argument("-q", "--quiet", dest="quiet", action="store_true", help=Help.param_quiet) |
| 1813 | parser_forums_list._action_groups.append(parser_forums_list_optional) |
| 1814 | parser_forums_list.set_defaults(func=api.forums_list_cli) |
| 1815 | |
| 1816 | shared_topics = _get_shared_topics_parser() |
| 1817 | |
| 1818 | # Forums topics |
| 1819 | parser_forums_topics = subparsers_forums.add_parser( |
| 1820 | "topics", |
| 1821 | formatter_class=argparse.RawTextHelpFormatter, |
| 1822 | help=Help.command_forums_topics, |
| 1823 | parents=[shared_topics], |
| 1824 | ) |
| 1825 | subparsers_forums_topics = parser_forums_topics.add_subparsers(title="commands", dest="command") |
| 1826 | subparsers_forums_topics.choices = Help.forums_topics_choices |
| 1827 | |
| 1828 | # Default action: list topics (when no subcommand given) |
| 1829 | parser_forums_topics.set_defaults(func=api.forums_list_topics_cli) |
| 1830 | |
| 1831 | # Forums topics list (explicit) |
| 1832 | parser_forums_topics_list = subparsers_forums_topics.add_parser( |
| 1833 | "list", |
| 1834 | formatter_class=argparse.RawTextHelpFormatter, |
| 1835 | help=Help.command_forums_topics, |
| 1836 | parents=[shared_topics], |
| 1837 | ) |
| 1838 | parser_forums_topics_list_optional = parser_forums_topics_list._action_groups.pop() |
| 1839 | parser_forums_topics_list_optional.add_argument("forum", nargs="?", default=None, help=Help.param_forum) |
| 1840 | parser_forums_topics_list_optional.add_argument( |
| 1841 | "--sort-by", |
| 1842 | dest="sort_by", |
| 1843 | required=False, |
| 1844 | help="Sort order. One of: " + ", ".join(KaggleApi.valid_forum_topic_sort_by), |
| 1845 | ) |
| 1846 | parser_forums_topics_list_optional.add_argument( |
| 1847 | "-s", "--search", dest="search", required=False, help=Help.param_search |
| 1848 | ) |
| 1849 | parser_forums_topics_list_optional.add_argument( |
| 1850 | "--category", |
| 1851 | dest="category", |
| 1852 | required=False, |
| 1853 | help="Filter by category. One of: " + ", ".join(KaggleApi.valid_forum_topic_categories), |