From d95f29ead613bcd2554c65b1d1fdfd7c69d2bc73 Mon Sep 17 00:00:00 2001
From: Sebastian Krzyszkowiak <dos@dosowisko.net>
Date: Thu, 19 Oct 2023 17:30:51 +0200
Subject: [PATCH] py,st3m: Application: Rename _app_ctx to app_ctx

The underscore prefix is a convention that implies private
members that classes inheriting from this one aren't expected
to touch.

Since app_ctx is a useful thing to have for a vast majority
of apps, name it explicitly as somthing that's supposed to be
used.
---
 docs/badge/programming.rst                    | 4 ++--
 python_payload/apps/demo_harmonic/__init__.py | 4 ++--
 python_payload/apps/gay_drums/__init__.py     | 4 ++--
 python_payload/apps/scalar/__init__.py        | 2 +-
 python_payload/st3m/application.py            | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/docs/badge/programming.rst b/docs/badge/programming.rst
index 40ab29f2bd..63ee80a6dd 100644
--- a/docs/badge/programming.rst
+++ b/docs/badge/programming.rst
@@ -686,7 +686,7 @@ it should pick up your new application.
 Handling assets
 ^^^^^^^^^^^^^^^
 
-Using `Application` also gives you access to the `ApplicationContext` as ``self._app_ctx``,
+Using `Application` also gives you access to the `ApplicationContext` as ``self.app_ctx``,
 which for example gives you a way to find out the base path of your app in ``app_ctx.bundle_path``
 or its bundle metadata in ``app_ctx.bundle_metadata``. It's very important not to hardcode
 paths to your assets and use `bundle_path` instead, because applications can be installed
@@ -705,7 +705,7 @@ could look like this:
     class MyDemo(Application):
         def draw(self, ctx: Context) -> None:
             # Draw a image file
-            ctx.image(f"{self._app_ctx.bundle_path}/image.png", -120, -120, 240, 240)
+            ctx.image(f"{self.app_ctx.bundle_path}/image.png", -120, -120, 240, 240)
 
     if __name__ == '__main__':
         # Continue to make runnable via mpremote run.
diff --git a/python_payload/apps/demo_harmonic/__init__.py b/python_payload/apps/demo_harmonic/__init__.py
index d7ce3fc8bc..f09754d182 100644
--- a/python_payload/apps/demo_harmonic/__init__.py
+++ b/python_payload/apps/demo_harmonic/__init__.py
@@ -288,7 +288,7 @@ class HarmonicApp(Application):
                 raise  # ignore file not found
 
     def _save_settings(self):
-        default_path = self._app_ctx.bundle_path + "/harmonic_demo-default.json"
+        default_path = self.app_ctx.bundle_path + "/harmonic_demo-default.json"
         settings_path = "/flash/harmonic_demo.json"
         settings = self._try_load_settings(default_path)
         assert settings is not None, "failed to load default settings"
@@ -322,7 +322,7 @@ class HarmonicApp(Application):
             self._file_settings = settings
 
     def _load_settings(self):
-        default_path = self._app_ctx.bundle_path + "/harmonic_demo-default.json"
+        default_path = self.app_ctx.bundle_path + "/harmonic_demo-default.json"
         settings_path = "/flash/harmonic_demo.json"
 
         settings = self._try_load_settings(default_path)
diff --git a/python_payload/apps/gay_drums/__init__.py b/python_payload/apps/gay_drums/__init__.py
index 1ed974fe11..c92c21f5f6 100644
--- a/python_payload/apps/gay_drums/__init__.py
+++ b/python_payload/apps/gay_drums/__init__.py
@@ -100,7 +100,7 @@ class GayDrums(Application):
                 raise  # ignore file not found
 
     def _save_settings(self):
-        default_path = self._app_ctx.bundle_path + "/gay_drums-default.json"
+        default_path = self.app_ctx.bundle_path + "/gay_drums-default.json"
         settings_path = "/flash/gay_drums.json"
         settings = self._try_load_settings(default_path)
         assert settings is not None, "failed to load default settings"
@@ -124,7 +124,7 @@ class GayDrums(Application):
             self._file_settings = settings
 
     def _load_settings(self):
-        default_path = self._app_ctx.bundle_path + "/gay_drums-default.json"
+        default_path = self.app_ctx.bundle_path + "/gay_drums-default.json"
         settings_path = "/flash/gay_drums.json"
 
         settings = self._try_load_settings(default_path)
diff --git a/python_payload/apps/scalar/__init__.py b/python_payload/apps/scalar/__init__.py
index 2a170169dc..99df5f9203 100644
--- a/python_payload/apps/scalar/__init__.py
+++ b/python_payload/apps/scalar/__init__.py
@@ -82,7 +82,7 @@ class ScalarApp(Application):
         self._update_leds()
 
     def _load_settings(self) -> None:
-        default_path = self._app_ctx.bundle_path + "/scalar-default.json"
+        default_path = self.app_ctx.bundle_path + "/scalar-default.json"
         settings_path = "/flash/scalar.json"
 
         settings = self._try_load_settings(default_path)
diff --git a/python_payload/st3m/application.py b/python_payload/st3m/application.py
index 2c9ce60ced..ae5fad58ef 100644
--- a/python_payload/st3m/application.py
+++ b/python_payload/st3m/application.py
@@ -61,7 +61,7 @@ def setup_for_app(app_ctx: Optional[ApplicationContext]) -> None:
 
 class Application(BaseView):
     def __init__(self, app_ctx: ApplicationContext) -> None:
-        self._app_ctx = app_ctx
+        self.app_ctx = self._app_ctx = app_ctx
         super().__init__()
 
 
-- 
GitLab