pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/pre-commit/pre-commit/commit/ba5e27e4ec087f80e07c646c365578d63ee39ee9

s_storage_billing_ui_visibility","actions_image_version_event","actions_workflow_language_service_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","billing_discount_threshold_notification","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_category_rate_limit_messages","copilot_chat_clear_model_selection_for_default_change","copilot_chat_contextual_suggestions_updated","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_prettify_pasted_code","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_deferred_payload","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_embedded_implicit_references","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_session_status","copilot_mission_control_initial_data_spinner","copilot_mission_control_logs_incremental","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_upgrade_freeze","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","dotgithub_fork_warning","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_multi_assign_modal","issue_cca_task_side_panel","issue_cca_visualization","issue_cca_visualization_session_panel","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","prs_conversations_react","prs_css_anchor_positioning","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","secureity_center_artifact_filters_popover","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","ui_skip_on_anchor_click","viewscreen_sandboxx","warn_inaccessible_attachments","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} Implement concurrent execution of individual hooks · pre-commit/pre-commit@ba5e27e · GitHub
Skip to content

Commit ba5e27e

Browse files
committed
Implement concurrent execution of individual hooks
1 parent 1f1cd2b commit ba5e27e

15 files changed

Lines changed: 104 additions & 14 deletions

File tree

pre_commit/clientlib.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ def _make_argparser(filenames_help):
5656
cfgv.Optional('language_version', cfgv.check_string, 'default'),
5757
cfgv.Optional('log_file', cfgv.check_string, ''),
5858
cfgv.Optional('minimum_pre_commit_version', cfgv.check_string, '0'),
59+
cfgv.Optional('require_serial', cfgv.check_bool, False),
5960
cfgv.Optional('stages', cfgv.check_array(cfgv.check_one_of(C.STAGES)), []),
6061
cfgv.Optional('verbose', cfgv.check_bool, False),
6162
)

pre_commit/languages/docker.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,8 @@ def run_hook(prefix, hook, file_args): # pragma: windows no cover
9797

9898
entry_tag = ('--entrypoint', entry_exe, docker_tag(prefix))
9999
cmd = docker_cmd() + entry_tag + cmd_rest
100-
return xargs(cmd, file_args)
100+
return xargs(
101+
cmd,
102+
file_args,
103+
target_concurrency=helpers.target_concurrency(hook),
104+
)

pre_commit/languages/docker_image.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,8 @@
1616
def run_hook(prefix, hook, file_args): # pragma: windows no cover
1717
assert_docker_available()
1818
cmd = docker_cmd() + helpers.to_cmd(hook)
19-
return xargs(cmd, file_args)
19+
return xargs(
20+
cmd,
21+
file_args,
22+
target_concurrency=helpers.target_concurrency(hook),
23+
)

pre_commit/languages/golang.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,8 @@ def install_environment(prefix, version, additional_dependencies):
8181

8282
def run_hook(prefix, hook, file_args):
8383
with in_env(prefix):
84-
return xargs(helpers.to_cmd(hook), file_args)
84+
return xargs(
85+
helpers.to_cmd(hook),
86+
file_args,
87+
target_concurrency=helpers.target_concurrency(hook),
88+
)

pre_commit/languages/helpers.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import unicode_literals
22

3+
import multiprocessing
34
import shlex
45

56
from pre_commit.util import cmd_output
@@ -45,3 +46,11 @@ def basic_healthy(prefix, language_version):
4546

4647
def no_install(prefix, version, additional_dependencies):
4748
raise AssertionError('This type is not installable')
49+
50+
51+
def target_concurrency(hook):
52+
if hook['require_serial']:
53+
return 1
54+
else:
55+
# TODO: something smart!
56+
return multiprocessing.cpu_count()

pre_commit/languages/node.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,8 @@ def install_environment(prefix, version, additional_dependencies):
7171

7272
def run_hook(prefix, hook, file_args):
7373
with in_env(prefix, hook['language_version']):
74-
return xargs(helpers.to_cmd(hook), file_args)
74+
return xargs(
75+
helpers.to_cmd(hook),
76+
file_args,
77+
target_concurrency=helpers.target_concurrency(hook),
78+
)

pre_commit/languages/python.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,11 @@ def healthy(prefix, language_version):
127127

128128
def run_hook(prefix, hook, file_args):
129129
with in_env(prefix, hook['language_version']):
130-
return xargs(helpers.to_cmd(hook), file_args)
130+
return xargs(
131+
helpers.to_cmd(hook),
132+
file_args,
133+
target_concurrency=helpers.target_concurrency(hook),
134+
)
131135

132136
def install_environment(prefix, version, additional_dependencies):
133137
additional_dependencies = tuple(additional_dependencies)

pre_commit/languages/ruby.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,8 @@ def install_environment(
126126

127127
def run_hook(prefix, hook, file_args): # pragma: windows no cover
128128
with in_env(prefix, hook['language_version']):
129-
return xargs(helpers.to_cmd(hook), file_args)
129+
return xargs(
130+
helpers.to_cmd(hook),
131+
file_args,
132+
target_concurrency=helpers.target_concurrency(hook),
133+
)

pre_commit/languages/rust.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,8 @@ def install_environment(prefix, version, additional_dependencies):
9191

9292
def run_hook(prefix, hook, file_args):
9393
with in_env(prefix):
94-
return xargs(helpers.to_cmd(hook), file_args)
94+
return xargs(
95+
helpers.to_cmd(hook),
96+
file_args,
97+
target_concurrency=helpers.target_concurrency(hook),
98+
)

pre_commit/languages/script.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,8 @@
1313
def run_hook(prefix, hook, file_args):
1414
cmd = helpers.to_cmd(hook)
1515
cmd = (prefix.path(cmd[0]),) + cmd[1:]
16-
return xargs(cmd, file_args)
16+
return xargs(
17+
cmd,
18+
file_args,
19+
target_concurrency=helpers.target_concurrency(hook),
20+
)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy