summaryrefslogtreecommitdiff
path: root/Biz/Storybook.py
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/Storybook.py')
-rwxr-xr-xBiz/Storybook.py51
1 files changed, 14 insertions, 37 deletions
diff --git a/Biz/Storybook.py b/Biz/Storybook.py
index f151394..253cf3b 100755
--- a/Biz/Storybook.py
+++ b/Biz/Storybook.py
@@ -19,7 +19,6 @@ this single file.
# : dep sqids
# : dep requests
# : dep types-requests
-import enum
import json
import logging
import ludic
@@ -31,6 +30,7 @@ import ludic.catalog.loaders as loaders
import ludic.catalog.pages as pages
import ludic.catalog.typography as typography
import ludic.web
+import Omni.App as App
import Omni.Log as Log
import openai
import os
@@ -53,55 +53,32 @@ DATA_DIR = pathlib.Path(
PORT = int(os.environ.get("PORT", "3000"))
-class Area(enum.Enum):
- """The area we are running."""
-
- Test = "Test"
- Live = "Live"
-
-
-def from_env() -> Area:
- """Load AREA from environment variable.
-
- Raises:
- ValueError: if AREA is not defined
- """
- var = os.getenv("AREA", "Test")
- if var == "Test":
- return Area.Test
- if var == "Live":
- return Area.Live
- msg = "AREA not defined"
- raise ValueError(msg)
-
-
-area = from_env()
-app = ludic.web.LudicApp(debug=area == Area.Test)
+area = App.from_env()
+app = ludic.web.LudicApp(debug=area == App.Area.Test)
Sqids = sqids.Sqids()
def main() -> None:
"""Run the Ludic application."""
- area = from_env()
if "test" in sys.argv:
test(area)
else:
move(area)
-def move(area: Area) -> None:
+def move(area: App.Area) -> None:
"""Run the application."""
- Log.setup(logging.DEBUG if area == Area.Test else logging.ERROR)
+ Log.setup(logging.DEBUG if area == App.Area.Test else logging.ERROR)
logging.info("area: %s", area)
# during test, bind to beryllium's VPN address, else localhost
- host = "100.127.197.132" if area == Area.Test else "127.0.0.1"
+ host = "100.127.197.132" if area == App.Area.Test else "127.0.0.1"
uvicorn.run(app, host=host, port=PORT)
-def test(area: Area = Area.Test) -> None:
+def test(area: App.Area = App.Area.Test) -> None:
"""Run the unittest suite manually."""
- Log.setup(logging.DEBUG if area == Area.Test else logging.ERROR)
+ Log.setup(logging.DEBUG if area == App.Area.Test else logging.ERROR)
suite = unittest.TestSuite()
tests = [IndexTest, StoryTest]
suite.addTests([
@@ -281,7 +258,7 @@ def generate_pages(inputs: StoryInputs) -> OpenAIStoryResponse:
ValueError: when openAI response is bad
"""
# when developing, don't run up the OpenAI tab
- if area == Area.Test:
+ if area == App.Area.Test:
name = inputs["character"]
ret = example_openai_story_response.copy()
ret["pages"] = [
@@ -311,7 +288,7 @@ def generate_pages(inputs: StoryInputs) -> OpenAIStoryResponse:
def generate_image(
- area: Area,
+ area: App.Area,
image_prompt: str,
story_id: str,
page: int,
@@ -323,7 +300,7 @@ def generate_image(
"""
logging.info("generating image %s.%s", story_id, page)
url = None
- if area == Area.Test:
+ if area == App.Area.Test:
time.sleep(1)
url = "https://placehold.co/1024.png"
else:
@@ -362,7 +339,7 @@ class Job(ludic.attrs.Attrs):
def generate_story_in_background(
- area: Area,
+ area: App.Area,
story_id: str,
inputs: StoryInputs,
) -> Story:
@@ -387,7 +364,7 @@ def generate_story_in_background(
def generate_story_pages(
- area: Area,
+ area: App.Area,
story_id: str,
inputs: StoryInputs,
) -> list[Page]:
@@ -423,7 +400,7 @@ class StoryTest(unittest.TestCase):
def test_story_creation(self) -> None:
"""Creates a story with 10 pages."""
story_id = "Uk"
- story = generate_story_pages(Area.Test, story_id, example_story)
+ story = generate_story_pages(App.Area.Test, story_id, example_story)
pages = db["pages"][story_id]
self.assertIsNotNone(story)
self.assertEqual(len(pages), 10)