diff --git a/docs/py_cc_toolchain_info.md b/docs/py_cc_toolchain_info.md
index 5807e9f..f0a94f4 100644
--- a/docs/py_cc_toolchain_info.md
+++ b/docs/py_cc_toolchain_info.md
@@ -20,7 +20,7 @@
 
 | Name  | Description |
 | :------------- | :------------- |
-| <a id="PyCcToolchainInfo-headers"></a>headers |  (struct) Information about the header files, with fields:   * providers_map: a dict of string to provider instances. The key should be     a fully qualified name (e.g. `@rules_foo//bar:baz.bzl#MyInfo`) of the     provider to uniquely identify its type.<br><br>    The following keys are always present:       * CcInfo: the CcInfo provider instance for the headers.       * DefaultInfo: the DefaultInfo provider instance for the headers.<br><br>    A map is used to allow additional providers from the originating headers     target (typically a `cc_library`) to be propagated to consumers (directly     exposing a Target object can cause memory issues and is an anti-pattern).<br><br>    When consuming this map, it's suggested to use `providers_map.values()` to     return all providers; or copy the map and filter out or replace keys as     appropriate. Note that any keys begining with `_` (underscore) are     considered private and should be forward along as-is (this better allows     e.g. `:current_py_cc_headers` to act as the underlying headers target it     represents).    |
+| <a id="PyCcToolchainInfo-headers"></a>headers |  (struct) Information about the header files, with fields:   * providers_map: a dict of string to provider instances. The key should be     a fully qualified name (e.g. `@rules_foo//bar:baz.bzl#MyInfo`) of the     provider to uniquely identify its type.<br><br>    The following keys are always present:       * CcInfo: the CcInfo provider instance for the headers.       * DefaultInfo: the DefaultInfo provider instance for the headers.<br><br>    A map is used to allow additional providers from the originating headers     target (typically a `cc_library`) to be propagated to consumers (directly     exposing a Target object can cause memory issues and is an anti-pattern).<br><br>    When consuming this map, it's suggested to use `providers_map.values()` to     return all providers; or copy the map and filter out or replace keys as     appropriate. Note that any keys beginning with `_` (underscore) are     considered private and should be forward along as-is (this better allows     e.g. `:current_py_cc_headers` to act as the underlying headers target it     represents).    |
 | <a id="PyCcToolchainInfo-python_version"></a>python_version |  (str) The Python Major.Minor version.    |
 
 
diff --git a/docs/py_console_script_binary.md b/docs/py_console_script_binary.md
index 2de67e7..5f88683 100644
--- a/docs/py_console_script_binary.md
+++ b/docs/py_console_script_binary.md
@@ -46,7 +46,7 @@
 )
 ```
 
-Alternatively, the the `py_console_script_binary.binary_rule` arg can be passed
+Alternatively, the `py_console_script_binary.binary_rule` arg can be passed
 the version-bound `py_binary` symbol, or any other `py_binary`-compatible rule
 of your choosing:
 ```starlark
diff --git a/python/entry_points/py_console_script_binary.bzl b/python/entry_points/py_console_script_binary.bzl
index 60e74f5..1991bba 100644
--- a/python/entry_points/py_console_script_binary.bzl
+++ b/python/entry_points/py_console_script_binary.bzl
@@ -59,7 +59,7 @@
 )
 ```
 
-Alternatively, the the `py_console_script_binary.binary_rule` arg can be passed
+Alternatively, the `py_console_script_binary.binary_rule` arg can be passed
 the version-bound `py_binary` symbol, or any other `py_binary`-compatible rule
 of your choosing:
 ```starlark
diff --git a/python/private/common/common.bzl b/python/private/common/common.bzl
index bffbf6f..1d788e4 100644
--- a/python/private/common/common.bzl
+++ b/python/private/common/common.bzl
@@ -355,7 +355,7 @@
     transitive_sources_depsets = []  # list of depsets
     transitive_sources_files = []  # list of Files
     for target in ctx.attr.deps:
-        # PyInfo may not be present for e.g. cc_library rules.
+        # PyInfo may not be present e.g. cc_library rules.
         if PyInfo in target:
             info = target[PyInfo]
             transitive_sources_depsets.append(info.transitive_sources)
diff --git a/python/private/common/py_executable_bazel.bzl b/python/private/common/py_executable_bazel.bzl
index 97712c5..a439ac1 100644
--- a/python/private/common/py_executable_bazel.bzl
+++ b/python/private/common/py_executable_bazel.bzl
@@ -203,7 +203,7 @@
 
     extra_files_to_build = []
 
-    # NOTE: --build_python_zip defauls to true on Windows
+    # NOTE: --build_python_zip defaults to true on Windows
     build_zip_enabled = ctx.fragments.py.build_python_zip
 
     # When --build_python_zip is enabled, then the zip file becomes
@@ -260,7 +260,7 @@
         # Double check this just to make sure.
         if not is_windows or not build_zip_enabled:
             fail(("Should not occur: The non-executable-zip and " +
-                  "non-boostrap-template case should have windows and zip " +
+                  "non-bootstrap-template case should have windows and zip " +
                   "both true, but got " +
                   "is_windows={is_windows} " +
                   "build_zip_enabled={build_zip_enabled}").format(
diff --git a/python/private/py_cc_toolchain_info.bzl b/python/private/py_cc_toolchain_info.bzl
index e7afc10..a2e62a8 100644
--- a/python/private/py_cc_toolchain_info.bzl
+++ b/python/private/py_cc_toolchain_info.bzl
@@ -33,7 +33,7 @@
 
     When consuming this map, it's suggested to use `providers_map.values()` to
     return all providers; or copy the map and filter out or replace keys as
-    appropriate. Note that any keys begining with `_` (underscore) are
+    appropriate. Note that any keys beginning with `_` (underscore) are
     considered private and should be forward along as-is (this better allows
     e.g. `:current_py_cc_headers` to act as the underlying headers target it
     represents).
diff --git a/python/private/py_console_script_gen.py b/python/private/py_console_script_gen.py
index 30e93c2..64ebea6 100644
--- a/python/private/py_console_script_gen.py
+++ b/python/private/py_console_script_gen.py
@@ -28,7 +28,7 @@
 The mitigation strategy is to remove the first entry in the `sys.path` if it does not have `.runfiles` and it seems
 to fix the behaviour of console_scripts under `bazel run`.
 
-This would not happen if we created an console_script binary in the root of an external repository, e.g.
+This would not happen if we created a console_script binary in the root of an external repository, e.g.
 `@pypi_pylint//` because the path for the external repository is already in the runfiles directory.
 """
 
@@ -102,7 +102,7 @@
         console_scripts = dict(config["console_scripts"])
     except KeyError:
         raise RuntimeError(
-            f"The package does not provide any console_scripts in it's {_ENTRY_POINTS_TXT}"
+            f"The package does not provide any console_scripts in its {_ENTRY_POINTS_TXT}"
         )
 
     if console_script:
diff --git a/tests/entry_points/py_console_script_gen_test.py b/tests/entry_points/py_console_script_gen_test.py
index 80b5f20..a5fceb6 100644
--- a/tests/entry_points/py_console_script_gen_test.py
+++ b/tests/entry_points/py_console_script_gen_test.py
@@ -50,7 +50,7 @@
                 )
 
         self.assertEqual(
-            "The package does not provide any console_scripts in it's entry_points.txt",
+            "The package does not provide any console_scripts in its entry_points.txt",
             cm.exception.args[0],
         )
 
