From b5c8d516e0a8b8138e84ae9e3956a0ca3b4dc401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:30:01 +0200 Subject: [PATCH 01/17] Add git pre-commit configuration --- .pre-commit-config.yaml | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..5cc0cfbac --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,42 @@ +repos: + - repo: https://github.com/psf/black + rev: 23.9.1 + hooks: + - id: black + args: [--quiet] + + # Ruff mne + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.0.291 + hooks: + - id: ruff + name: ruff mne + files: ^mne/ + + # Ruff tutorials and examples + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.0.291 + hooks: + - id: ruff + name: ruff tutorials and examples + # D103: missing docstring in public function + # D400: docstring first line must end with period + args: ["--ignore=D103,D400"] + files: ^tutorials/|^examples/ + + # Codespell + - repo: https://github.com/codespell-project/codespell + rev: v2.2.5 + hooks: + - id: codespell + additional_dependencies: + - tomli + files: ^mne/|^doc/|^examples/|^tutorials/ + types_or: [python, bib, rst, inc] + + # yamllint + - repo: https://github.com/adrienverge/yamllint.git + rev: v1.32.0 + hooks: + - id: yamllint + args: [--strict, -c, .yamllint.yml] From 8b646c3e17ed45354ca7a914fbef0d229864496e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:39:44 +0200 Subject: [PATCH 02/17] Add configs --- .pre-commit-config.yaml | 14 +++++++------- .yamllint.yml | 5 +++++ pyproject.toml | 13 +++++++++++++ 3 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 .yamllint.yml create mode 100644 pyproject.toml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5cc0cfbac..ac4125982 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,24 +5,24 @@ repos: - id: black args: [--quiet] - # Ruff mne + # Ruff mne-bids - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.0.291 hooks: - id: ruff - name: ruff mne - files: ^mne/ + name: ruff mne-bids + files: ^mne-bids/ - # Ruff tutorials and examples + # Ruff examples - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.0.291 hooks: - id: ruff - name: ruff tutorials and examples + name: ruff examples # D103: missing docstring in public function # D400: docstring first line must end with period args: ["--ignore=D103,D400"] - files: ^tutorials/|^examples/ + files: ^examples/ # Codespell - repo: https://github.com/codespell-project/codespell @@ -31,7 +31,7 @@ repos: - id: codespell additional_dependencies: - tomli - files: ^mne/|^doc/|^examples/|^tutorials/ + files: ^mne-bids/|^doc/|^examples/ types_or: [python, bib, rst, inc] # yamllint diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 000000000..669c8646f --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,5 @@ +extends: default + +rules: + line-length: disable + document-start: disable diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..de4f4565a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,13 @@ +[tool.codespell] +builtin = "clear,rare,informal,names,usage" + +[tool.ruff] +select = ["E", "F", "W", "D"] +ignore = [ + "D100", # Missing docstring in public module + "D104", # Missing docstring in public package + "D413", # Missing blank line after last section +] + +[tool.ruff.pydocstyle] +convention = "numpy" From 49df6af4dfa1ead4e0ca7f0ff60b556972bf70f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:40:48 +0200 Subject: [PATCH 03/17] Add black --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index de4f4565a..1d497ae10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,3 +11,6 @@ ignore = [ [tool.ruff.pydocstyle] convention = "numpy" + +[tool.black] +exclude = "(dist/)|(build/)|(.*\\.ipynb)" From 1141c464c15f042f16713838830bf404b61fd9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:42:12 +0200 Subject: [PATCH 04/17] Better naming --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ac4125982..ee837de3c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: rev: v0.0.291 hooks: - id: ruff - name: ruff mne-bids + name: ruff mne-bids/ files: ^mne-bids/ # Ruff examples @@ -18,7 +18,7 @@ repos: rev: v0.0.291 hooks: - id: ruff - name: ruff examples + name: ruff examples/ # D103: missing docstring in public function # D400: docstring first line must end with period args: ["--ignore=D103,D400"] From c2f323590673664aa1afb1f699d82a12a87c2cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:46:50 +0200 Subject: [PATCH 05/17] Fix path --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ee837de3c..a6423cfe9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,13 +5,13 @@ repos: - id: black args: [--quiet] - # Ruff mne-bids + # Ruff mne_bids - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.0.291 hooks: - id: ruff - name: ruff mne-bids/ - files: ^mne-bids/ + name: ruff mne_bids/ + files: ^mne_bids/ # Ruff examples - repo: https://github.com/astral-sh/ruff-pre-commit @@ -31,7 +31,7 @@ repos: - id: codespell additional_dependencies: - tomli - files: ^mne-bids/|^doc/|^examples/ + files: ^mne_bids/|^doc/|^examples/ types_or: [python, bib, rst, inc] # yamllint From 7c891f1532b87e768370202a7d6439c7bd558675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:50:43 +0200 Subject: [PATCH 06/17] Disable codespell & yamllint for now --- .pre-commit-config.yaml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a6423cfe9..7394cd65f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,19 +24,19 @@ repos: args: ["--ignore=D103,D400"] files: ^examples/ - # Codespell - - repo: https://github.com/codespell-project/codespell - rev: v2.2.5 - hooks: - - id: codespell - additional_dependencies: - - tomli - files: ^mne_bids/|^doc/|^examples/ - types_or: [python, bib, rst, inc] + # # Codespell + # - repo: https://github.com/codespell-project/codespell + # rev: v2.2.5 + # hooks: + # - id: codespell + # additional_dependencies: + # - tomli + # files: ^mne_bids/|^doc/|^examples/ + # types_or: [python, bib, rst, inc] - # yamllint - - repo: https://github.com/adrienverge/yamllint.git - rev: v1.32.0 - hooks: - - id: yamllint - args: [--strict, -c, .yamllint.yml] + # # yamllint + # - repo: https://github.com/adrienverge/yamllint.git + # rev: v1.32.0 + # hooks: + # - id: yamllint + # args: [--strict, -c, .yamllint.yml] From 9ca3046a5d9b656e6811395d4212775585768317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:54:28 +0200 Subject: [PATCH 07/17] More ruff config adjustments --- .pre-commit-config.yaml | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7394cd65f..c99e558fc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,7 +21,7 @@ repos: name: ruff examples/ # D103: missing docstring in public function # D400: docstring first line must end with period - args: ["--ignore=D103,D400"] + args: ["--ignore=D103,D400,D205"] files: ^examples/ # # Codespell diff --git a/pyproject.toml b/pyproject.toml index 1d497ae10..d62f87a91 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ builtin = "clear,rare,informal,names,usage" [tool.ruff] select = ["E", "F", "W", "D"] +exclude = ["__init__.py"] ignore = [ "D100", # Missing docstring in public module "D104", # Missing docstring in public package From 1be9b4acd74ad5e08fa6bb24edc84d28405c043d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 21:57:49 +0200 Subject: [PATCH 08/17] fix some ruff errors --- mne_bids/path.py | 2 +- mne_bids/tests/test_dig.py | 2 +- mne_bids/tests/test_path.py | 6 ++++-- mne_bids/tests/test_read.py | 2 +- mne_bids/utils.py | 1 + 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mne_bids/path.py b/mne_bids/path.py index 7d9e1b02a..e0769249f 100644 --- a/mne_bids/path.py +++ b/mne_bids/path.py @@ -1981,7 +1981,7 @@ def get_entity_vals( References ---------- - .. [1] https://bids-specification.rtfd.io/en/latest/common-principles.html#entities # noqa: E501 + .. [1] https://bids-specification.rtfd.io/en/latest/common-principles.html#entities """ root = _check_fname( diff --git a/mne_bids/tests/test_dig.py b/mne_bids/tests/test_dig.py index 93dd106fa..9f37b1a76 100644 --- a/mne_bids/tests/test_dig.py +++ b/mne_bids/tests/test_dig.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- """Test the digitizations. + For each supported coordinate frame, implement a test. """ # Authors: Alex Rockhill diff --git a/mne_bids/tests/test_path.py b/mne_bids/tests/test_path.py index 4d5780e3d..a6d0645b8 100644 --- a/mne_bids/tests/test_path.py +++ b/mne_bids/tests/test_path.py @@ -1039,8 +1039,10 @@ def test_match(return_bids_test_dir): @testing.requires_testing_data def test_find_matching_paths(return_bids_test_dir): - """We test by yielding the same results as BIDSPath.match() which - is extensively tested above.""" + """We test by yielding the same results as BIDSPath.match(). + + BIDSPath.match() is extensively tested above. + """ bids_root = Path(return_bids_test_dir) # Check a few exemplary entities diff --git a/mne_bids/tests/test_read.py b/mne_bids/tests/test_read.py index 39fb1ece6..fd4fc2ac6 100644 --- a/mne_bids/tests/test_read.py +++ b/mne_bids/tests/test_read.py @@ -619,7 +619,7 @@ def test_handle_scans_reading(tmp_path): @pytest.mark.filterwarnings(warning_str["channel_unit_changed"]) def test_handle_scans_reading_brainvision(tmp_path): - """Test stability of BrainVision's different file extensions""" + """Test stability of BrainVision's different file extensions.""" test_scan_eeg = OrderedDict( [ ("filename", [Path("eeg/sub-01_ses-eeg_task-rest_eeg.eeg")]), diff --git a/mne_bids/utils.py b/mne_bids/utils.py index fd255221e..892809bde 100644 --- a/mne_bids/utils.py +++ b/mne_bids/utils.py @@ -529,6 +529,7 @@ def warn( module="mne_bids", ignore_namespaces=("mne", "mne_bids"), ): # noqa: D103 + """Emit a warning.""" _warn( message, category=category, From 7e07bb91af2bc63297eb16089db4bb7b78c9a050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 22:09:44 +0200 Subject: [PATCH 09/17] fix ruff --- mne_bids/tests/test_path.py | 6 ++++++ mne_bids/tests/test_read.py | 1 + 2 files changed, 7 insertions(+) diff --git a/mne_bids/tests/test_path.py b/mne_bids/tests/test_path.py index a6d0645b8..44ad3b382 100644 --- a/mne_bids/tests/test_path.py +++ b/mne_bids/tests/test_path.py @@ -355,6 +355,7 @@ def test_parse_ext(): ], ) def test_get_bids_path_from_fname(fname): + """Test get_bids_path_from_fname().""" bids_path = get_bids_path_from_fname(fname) assert bids_path.basename == Path(fname).name @@ -1338,6 +1339,7 @@ def test_find_emptyroom_no_meas_date(tmp_path): def test_bids_path_label_vs_index_entity(): + """Test entities that must be strings vs those that may be an int.""" match = "subject must be an instance of None or str" with pytest.raises(TypeError, match=match): BIDSPath(subject=1) @@ -1350,6 +1352,7 @@ def test_bids_path_label_vs_index_entity(): @testing.requires_testing_data def test_meg_calibration_fpath(return_bids_test_dir): + """Test BIDSPath.meg_calibration_fpath.""" bids_root = return_bids_test_dir # File exists, so BIDSPath.meg_calibration_fpath should return a non-None @@ -1381,6 +1384,7 @@ def test_meg_calibration_fpath(return_bids_test_dir): @testing.requires_testing_data def test_meg_crosstalk_fpath(return_bids_test_dir): + """Test BIDSPath.meg_crosstalk_fpath.""" bids_root = return_bids_test_dir # File exists, so BIDSPath.crosstalk_fpath should return a non-None @@ -1412,6 +1416,7 @@ def test_meg_crosstalk_fpath(return_bids_test_dir): @testing.requires_testing_data def test_datasetdescription_with_bidspath(return_bids_test_dir): + """Test a BIDSPath can generate a valid path to dataset_description.json.""" with pytest.raises(ValueError, match="Unallowed"): bids_path = BIDSPath( root=return_bids_test_dir, suffix="dataset_description", extension=".json" @@ -1439,6 +1444,7 @@ def test_datasetdescription_with_bidspath(return_bids_test_dir): def test_update_fail_check_no_change(): + """Test BIDSPath.check works in preventing invalid changes.""" bids_path = BIDSPath(subject="test") try: bids_path.update(suffix="ave") diff --git a/mne_bids/tests/test_read.py b/mne_bids/tests/test_read.py index fd4fc2ac6..23f104ac4 100644 --- a/mne_bids/tests/test_read.py +++ b/mne_bids/tests/test_read.py @@ -1152,6 +1152,7 @@ def test_handle_non_mne_channel_type(tmp_path): @pytest.mark.filterwarnings(warning_str["channel_unit_changed"]) @testing.requires_testing_data def test_bads_reading(tmp_path): + """Test reading bad channels.""" bids_path = _bids_path.copy().update(root=tmp_path, datatype="meg") bads_raw = ["MEG 0112", "MEG 0113"] bads_sidecar = ["EEG 053", "MEG 2443"] From 2865f6b3e3af8488c27374a833a4661db903d7b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 22:11:01 +0200 Subject: [PATCH 10/17] no yamllint or codespell for now --- .pre-commit-config.yaml | 19 +------------------ .yamllint.yml | 5 ----- 2 files changed, 1 insertion(+), 23 deletions(-) delete mode 100644 .yamllint.yml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c99e558fc..40fa15ee9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,21 +22,4 @@ repos: # D103: missing docstring in public function # D400: docstring first line must end with period args: ["--ignore=D103,D400,D205"] - files: ^examples/ - - # # Codespell - # - repo: https://github.com/codespell-project/codespell - # rev: v2.2.5 - # hooks: - # - id: codespell - # additional_dependencies: - # - tomli - # files: ^mne_bids/|^doc/|^examples/ - # types_or: [python, bib, rst, inc] - - # # yamllint - # - repo: https://github.com/adrienverge/yamllint.git - # rev: v1.32.0 - # hooks: - # - id: yamllint - # args: [--strict, -c, .yamllint.yml] + files: ^examples/ \ No newline at end of file diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index 669c8646f..000000000 --- a/.yamllint.yml +++ /dev/null @@ -1,5 +0,0 @@ -extends: default - -rules: - line-length: disable - document-start: disable From 5ad7b53ff9ed95dc4499232e121fea87b1d52f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 22:11:58 +0200 Subject: [PATCH 11/17] Clean config --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d62f87a91..6b5d84f1c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,3 @@ -[tool.codespell] -builtin = "clear,rare,informal,names,usage" - [tool.ruff] select = ["E", "F", "W", "D"] exclude = ["__init__.py"] From eec698f455f29bbc8bfd76b70fb8e01bf9abf68d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 22:13:24 +0200 Subject: [PATCH 12/17] Add newline --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 40fa15ee9..28f3ba785 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,4 +22,4 @@ repos: # D103: missing docstring in public function # D400: docstring first line must end with period args: ["--ignore=D103,D400,D205"] - files: ^examples/ \ No newline at end of file + files: ^examples/ From 8e20b6a81e5527c0b8d792f7bb2fc5980c897ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 22:55:33 +0200 Subject: [PATCH 13/17] Simplify --- .pre-commit-config.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 28f3ba785..c6a8e3fa0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,21 +5,16 @@ repos: - id: black args: [--quiet] - # Ruff mne_bids - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.0.291 hooks: - id: ruff name: ruff mne_bids/ files: ^mne_bids/ - - # Ruff examples - - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.291 - hooks: - id: ruff name: ruff examples/ # D103: missing docstring in public function # D400: docstring first line must end with period + # D205: 1 blank line required between summary line and description args: ["--ignore=D103,D400,D205"] files: ^examples/ From 90bd64fd3a82e638c7c138ba0c2f6149022350a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Tue, 26 Sep 2023 22:58:12 +0200 Subject: [PATCH 14/17] Simplify --- pyproject.toml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6b5d84f1c..224a01c6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,6 @@ [tool.ruff] select = ["E", "F", "W", "D"] exclude = ["__init__.py"] -ignore = [ - "D100", # Missing docstring in public module - "D104", # Missing docstring in public package - "D413", # Missing blank line after last section -] [tool.ruff.pydocstyle] convention = "numpy" From 95075bbfde0262e4326035b39248cadf3a94bbf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Wed, 27 Sep 2023 07:43:12 +0200 Subject: [PATCH 15/17] Fix check-manifest --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 224a01c6b..a2ea6d3be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,3 +7,6 @@ convention = "numpy" [tool.black] exclude = "(dist/)|(build/)|(.*\\.ipynb)" + +[tool.check-manifest] +ignore = [".pre-commit-config.yaml"] From d1853b51a98ea5038715f15abb8c9a9607aa2ddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Thu, 28 Sep 2023 19:32:39 +0200 Subject: [PATCH 16/17] Update contributing guide --- CONTRIBUTING.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b210f16a..bcfb96ba3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -109,7 +109,7 @@ bids-validator --version We use [GNU Make](https://www.gnu.org/software/make/) for developing `mne-bids`. We recommend that you install GNU Make and make use of our `Makefile` at the root of the repository. -For most Linux and OSX operating systems, GNU Make will be already installed by default. +For most Linux and macOS operating systems, GNU Make will be already installed by default. Windows users can download the [Chocolatey package manager](https://chocolatey.org/) and install [GNU Make from their repository](https://community.chocolatey.org/packages/make). @@ -131,6 +131,22 @@ We use [Black](https://github.com/psf/black) to format our code. You can simply call `black .` from the root of the `mne-bids` repository to automatically convert your code to follow the appropriate style. +### git pre-commit hooks + +W suggest installing our git pre-commit hooks to automatically run style checks +before a commit is created: + +```Shell +pip install pre-commit +pre-commit install +``` + +You can also manually run the hooks via + +```Shell +pre-commit run -a +``` + ## Running tests We run tests using `pytest`. From 078819bcdd15e6b25f0bf1eb588512aa78807e07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Thu, 28 Sep 2023 19:34:36 +0200 Subject: [PATCH 17/17] Typo --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bcfb96ba3..875fea757 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -133,8 +133,8 @@ to automatically convert your code to follow the appropriate style. ### git pre-commit hooks -W suggest installing our git pre-commit hooks to automatically run style checks -before a commit is created: +We suggest installing our git pre-commit hooks to automatically run style +checks before a commit is created: ```Shell pip install pre-commit