import gradio as gr def select_custom_options(customisation): """Selects the custom options.""" if customisation: return ( gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), ) return ( gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), ) def select_github_repo_options(github_repo): """Selects the Github repo options.""" if github_repo: return ( gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), ) return ( gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), ) def customisation_block() -> dict: with gr.Column(): enable_customisation = gr.Checkbox( label="Enable customisation (Click to reveal options)", default=False, interactive=True, ) with gr.Row(): unit_tests = gr.Checkbox( label="Add Unit tests", default=False, interactive=True, visible=False, ) dockerization = gr.Checkbox( label="Add Docker support", default=False, interactive=True, visible=False, ) github_actions = gr.Checkbox( label="Add Github Actions support", default=False, interactive=True, visible=False, ) pre_commit_hooks = gr.Checkbox( label="Add Pre-commit hooks", default=False, interactive=True, visible=False, ) enable_customisation.change( fn=select_custom_options, inputs=enable_customisation, outputs=[unit_tests, dockerization, github_actions, pre_commit_hooks], ) return ( unit_tests, dockerization, github_actions, pre_commit_hooks, ) def github_repo_block() -> dict: with gr.Column(): with gr.Row(): gh_token = gr.Textbox( placeholder="Paste your Github Personal Access Token (Required scopes: repo, workflow)", label="Github Personal Access Token", lines=1, type="password", ) gh_repo_name = gr.Textbox( placeholder="Enter Github repo name", label="Github repo name", lines=1, ) private = gr.Checkbox( label="Make repo private?", default=False, interactive=True, ) return gh_token, gh_repo_name, private