5.5 to 5.7 The fixes

Build it yourself. Read the tutorial is the other way to read this part.

This walk goes through rahuldave/cheesecracker on GitHub. This part starts from the code at b947593e84b7, partway through step-05. The code before this part

If you start at this part, make your clone as Get the project says, and then run this command. It puts in your clone the files that this part starts from. A file that the project deleted before this part stays, so delete it if git check lists it:

git rm -rq --cached --ignore-unmatch -- :/ && git restore --source b947593e84b7 --staged --worktree -- :/
just setup

The formatter fixes the layout, and the linter removes the import that nothing uses. A person shortens the long line.

5.5 the formatter fixes the spaces, the blank lines and the line breaks

The formatter writes every file in one layout, so nobody fixes spaces by hand.

just fmt

ruff prints 2 files reformatted. In service.py, z=power(x,2)+power(y,2) now has its spaces, and two blank lines separate the routes. The long return now spreads its dictionary over six lines, one key on each line. In utils.py, the blank lines are two.

just fmt --check

ruff prints 6 files already formatted.

Check your files against this move. The command prints nothing when they match, and otherwise shows what differs:

git check 42642115394d

If you are stuck, this command puts the files of this move in place of yours. A file that you made yourself stays:

git restore --source b947593e84b7 --staged -- :/ && git restore --source 42642115394d --staged --worktree -- :/

What changed

  • src/api-service/api/service.py: the spaces, the blank lines, and the long return on six lines. 10 lines added, 2 removed. It comes from just fmt. The file
    • look at z = power(x, 2) + power(y, 2)
  • src/api-service/api/utils.py: the space after the comma, and two blank lines before unused_function(). 1 line added, 2 removed. It comes from just fmt. The file
    • look at def power(base, exponent):

The diff that just fmt makes in src/api-service/api/service.py
@@ -20,10 +20,13 @@ app.add_middleware(
     allow_headers=["*"],
 )
 
+
 # Routes
 @app.get("/")
 async def get_index():
     return {"message": "Welcome to the Cheese App CI/CD Tutorial!"}
+
+
 @app.get("/health")
 async def health_check():
     return {"status": "healthy"}
@@ -34,6 +37,11 @@ async def calculate_euclidean_distance(x: float = 1, y: float = 2):
     """Calculate the Euclidean distance from origin: sqrt(x^2 + y^2)
     Returns the distance of a point (x, y) from the origin (0, 0)
     """
-    z=power(x,2)+power(y,2)
+    z = power(x, 2) + power(y, 2)
     result = math.sqrt(z)
-    return {"x": x, "y": y, "distance": result, "message": "This is a very long line that exceeds 120 characters and Black will complain about it so we need to fix this formatting issue"}
+    return {
+        "x": x,
+        "y": y,
+        "distance": result,
+        "message": "This is a very long line that exceeds 120 characters and Black will complain about it so we need to fix this formatting issue",
+    }

The diff that just fmt makes in src/api-service/api/utils.py
@@ -4,11 +4,10 @@ Used by the Cheese App API Service
 """
 
 
-def power(base,exponent):
+def power(base, exponent):
     """Calculate base raised to the power of exponent"""
     return base**exponent
 
 
-
 def unused_function():
     pass

This change on GitHub The code after it

5.6 the linter removes the import that nothing uses

ruff can remove an import that nothing uses, because the change cannot alter what the code does. The linter still fails after the fix, because one error is left. || true makes the command count as a success all the same.

just lint --fix || true

ruff removes the line import os from service.py, and still reports the long line.

just lint

ruff finds 1 error, E501, and fails. The line of the message is 147 characters long, and no tool can shorten words.

Check your files against this move. The command prints nothing when they match, and otherwise shows what differs:

git check cfd2ebb050dd

If you are stuck, this command puts the files of this move in place of yours. A file that you made yourself stays:

git restore --source 42642115394d --staged -- :/ && git restore --source cfd2ebb050dd --staged --worktree -- :/

What changed

  • src/api-service/api/service.py: the import of os, removed. 0 lines added, 1 removed. It comes from just lint --fix || true. The file

The diff that just lint --fix || true makes in src/api-service/api/service.py
@@ -5,7 +5,6 @@ Cheese App API Service
 from fastapi import FastAPI
 from starlette.middleware.cors import CORSMiddleware
 import math
-import os
 from api.utils import power
 
 # Setup FastAPI app

This change on GitHub The code after it

5.7 a shorter line, by hand

A long message is a choice of words, so a person has to shorten it. The new message is short enough for one line.

Apply the patch to src/api-service/api/service.py, from the top of the project:

curl -fsSL https://github.com/rahuldave/cheesecracker/commit/693a713a458db01debdd7ebc3b084ed1b0350b08.diff | git apply --include=src/api-service/api/service.py

Apply the patch. It changes the value of "message" in the return at the end of the file.

just lint

ruff prints All checks passed!. Note that ruff never reports unused_function(). No rule of E, W or F looks for a function that nothing calls.

Check your files against this move. The command prints nothing when they match, and otherwise shows what differs:

git check 693a713a458d

If you are stuck, this command puts the files of this move in place of yours. A file that you made yourself stays:

git restore --source cfd2ebb050dd --staged -- :/ && git restore --source 693a713a458d --staged --worktree -- :/

What changed

  • src/api-service/api/service.py: a shorter message. 1 line added, 1 removed. The file
    • look at "message": "This is a very long line that exceeds 120 characters blah",

The patch to src/api-service/api/service.py
@@ -42,5 +42,5 @@ async def calculate_euclidean_distance(x: float = 1, y: float = 2):
         "x": x,
         "y": y,
         "distance": result,
-        "message": "This is a very long line that exceeds 120 characters and Black will complain about it so we need to fix this formatting issue",
+        "message": "This is a very long line that exceeds 120 characters blah",
     }

This change on GitHub

This part ends at the code at 693a713a458d, partway through step-05. The code after this part