create-pywire-app 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- create_pywire_app/__init__.py +8 -0
- create_pywire_app/_version.py +34 -0
- create_pywire_app/main.py +125 -4
- create_pywire_app/templates/blog/explicit/about.wire +2 -1
- create_pywire_app/templates/blog/explicit/blog-posts.wire +5 -11
- create_pywire_app/templates/blog/explicit/home.wire +5 -2
- create_pywire_app/templates/blog/path-based/index.wire +5 -2
- create_pywire_app/templates/blog/path-based/posts_index.wire +5 -2
- create_pywire_app/templates/blog/path-based/posts_slug.wire +3 -9
- create_pywire_app/templates/common/__error__.wire +1 -2
- create_pywire_app/templates/counter/explicit/home.wire +6 -4
- create_pywire_app/templates/counter/path-based/index.wire +6 -4
- create_pywire_app/templates/saas/explicit/auth-layout.wire.j2 +2 -1
- create_pywire_app/templates/saas/explicit/dashboard-pages.wire +2 -1
- create_pywire_app/templates/saas/explicit/landing.wire +2 -1
- create_pywire_app/templates/saas/explicit/login.wire +2 -1
- create_pywire_app/templates/saas/explicit/pricing.wire +1 -1
- create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2 +2 -1
- create_pywire_app/templates/saas/path-based/dashboard_index.wire +0 -1
- create_pywire_app/templates/saas/path-based/dashboard_settings.wire +0 -1
- create_pywire_app/templates/saas/path-based/index.wire +0 -1
- create_pywire_app/templates/saas/path-based/login.wire +0 -1
- create_pywire_app/templates/saas/path-based/pricing.wire +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/explicit/about.wire +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/explicit/blog-posts.wire +5 -11
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/explicit/home.wire +5 -2
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/path-based/index.wire +5 -2
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/path-based/posts_index.wire +5 -2
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/path-based/posts_slug.wire +3 -9
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/__error__.wire +1 -2
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/counter/explicit/home.wire +6 -4
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/counter/path-based/index.wire +6 -4
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/explicit/auth-layout.wire.j2 +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/explicit/dashboard-pages.wire +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/explicit/landing.wire +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/explicit/login.wire +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/explicit/pricing.wire +1 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2 +2 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/dashboard_index.wire +0 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/dashboard_settings.wire +0 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/index.wire +0 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/login.wire +0 -1
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/pricing.wire +2 -1
- {create_pywire_app-0.1.2.dist-info → create_pywire_app-0.1.4.dist-info}/METADATA +1 -1
- create_pywire_app-0.1.4.dist-info/RECORD +80 -0
- create_pywire_app-0.1.2.dist-info/RECORD +0 -79
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/explicit/layout.wire.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/path-based/__layout__.wire.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/.gitignore +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/Dockerfile +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/README.md.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/extensions.json +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/main-explicit.py.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/main-path.py.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/pyproject.toml.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/common/render.yaml.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/counter/explicit/layout.wire.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/counter/path-based/__layout__.wire.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/explicit/public-layout.wire.j2 +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/models.py +0 -0
- {create_pywire_app-0.1.2.data → create_pywire_app-0.1.4.data}/data/share/create_pywire_app/templates/saas/path-based/__layout__.wire.j2 +0 -0
- {create_pywire_app-0.1.2.dist-info → create_pywire_app-0.1.4.dist-info}/WHEEL +0 -0
- {create_pywire_app-0.1.2.dist-info → create_pywire_app-0.1.4.dist-info}/entry_points.txt +0 -0
- {create_pywire_app-0.1.2.dist-info → create_pywire_app-0.1.4.dist-info}/licenses/LICENSE +0 -0
create_pywire_app/__init__.py
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '0.1.4'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 4)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
create_pywire_app/main.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import importlib.metadata
|
|
1
3
|
import os
|
|
2
4
|
import subprocess
|
|
3
5
|
import sys
|
|
@@ -6,11 +8,14 @@ from pathlib import Path
|
|
|
6
8
|
from typing import Any, Dict, List, Optional
|
|
7
9
|
|
|
8
10
|
import questionary
|
|
11
|
+
import tomllib
|
|
9
12
|
from jinja2 import Environment, PackageLoader, select_autoescape
|
|
10
13
|
from rich.console import Console
|
|
11
14
|
from rich.markdown import Markdown
|
|
12
15
|
from rich.panel import Panel
|
|
13
16
|
|
|
17
|
+
from create_pywire_app import __version__
|
|
18
|
+
|
|
14
19
|
console = Console()
|
|
15
20
|
|
|
16
21
|
LOGO = r"""
|
|
@@ -25,6 +30,58 @@ LOGO = r"""
|
|
|
25
30
|
"""
|
|
26
31
|
|
|
27
32
|
|
|
33
|
+
def get_local_version(path: Path) -> Optional[str]:
|
|
34
|
+
"""Try to read version from a local pyproject.toml file."""
|
|
35
|
+
try:
|
|
36
|
+
if path.exists():
|
|
37
|
+
with open(path, "rb") as f:
|
|
38
|
+
data = tomllib.load(f)
|
|
39
|
+
return data.get("project", {}).get("version")
|
|
40
|
+
except Exception:
|
|
41
|
+
pass
|
|
42
|
+
return None
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def get_version() -> str:
|
|
46
|
+
return __version__
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def resolve_pywire_version(pywire_dep: str) -> Optional[str]:
|
|
50
|
+
"""Resolve the actual pywire version that will be installed.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
pywire_dep: Dependency spec (e.g., 'pywire', 'pywire==0.1.4', 'pywire @ /path')
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
Resolved version string or None if resolution fails
|
|
57
|
+
"""
|
|
58
|
+
# For local paths, we can't resolve via uv pip compile
|
|
59
|
+
if "@" in pywire_dep:
|
|
60
|
+
return None
|
|
61
|
+
|
|
62
|
+
try:
|
|
63
|
+
# Use uv pip compile to resolve the version without installing
|
|
64
|
+
process = subprocess.run(
|
|
65
|
+
["uv", "pip", "compile", "-", "--quiet"],
|
|
66
|
+
input=pywire_dep,
|
|
67
|
+
text=True,
|
|
68
|
+
capture_output=True,
|
|
69
|
+
check=True,
|
|
70
|
+
timeout=10,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
# Parse the output for pywire==<version>
|
|
74
|
+
import re
|
|
75
|
+
match = re.search(r'pywire==([^\s]+)', process.stdout)
|
|
76
|
+
if match:
|
|
77
|
+
return match.group(1)
|
|
78
|
+
|
|
79
|
+
except (subprocess.CalledProcessError, subprocess.TimeoutExpired, FileNotFoundError):
|
|
80
|
+
pass
|
|
81
|
+
|
|
82
|
+
return None
|
|
83
|
+
|
|
84
|
+
|
|
28
85
|
class TemplateRenderer:
|
|
29
86
|
"""Handles template loading and rendering using Jinja2."""
|
|
30
87
|
|
|
@@ -268,17 +325,81 @@ class ProjectGenerator:
|
|
|
268
325
|
|
|
269
326
|
|
|
270
327
|
def main():
|
|
328
|
+
# Fix for macOS when running with redirected stdin (e.g. via pipe)
|
|
329
|
+
# KqueueSelector fails with /dev/tty on macOS, so we force SelectSelector.
|
|
330
|
+
if sys.platform == "darwin":
|
|
331
|
+
import asyncio
|
|
332
|
+
import selectors
|
|
333
|
+
|
|
334
|
+
class MacOSEventLoopPolicy(asyncio.DefaultEventLoopPolicy):
|
|
335
|
+
def new_event_loop(self):
|
|
336
|
+
selector = selectors.SelectSelector()
|
|
337
|
+
return asyncio.SelectorEventLoop(selector)
|
|
338
|
+
|
|
339
|
+
asyncio.set_event_loop_policy(MacOSEventLoopPolicy())
|
|
340
|
+
|
|
271
341
|
console.clear()
|
|
272
342
|
|
|
273
|
-
#
|
|
343
|
+
# Parse arguments
|
|
344
|
+
parser = argparse.ArgumentParser(description="Create a new PyWire application")
|
|
345
|
+
parser.add_argument(
|
|
346
|
+
"--pywire-version", help="Specify a specific version of pywire to install"
|
|
347
|
+
)
|
|
348
|
+
args = parser.parse_args()
|
|
349
|
+
|
|
350
|
+
# Check for local override for testing (highest priority)
|
|
274
351
|
use_local = os.environ.get("USE_LOCAL_PYWIRE") == "1"
|
|
275
|
-
|
|
352
|
+
|
|
276
353
|
if use_local:
|
|
277
354
|
pywire_dep = "pywire @ /Users/rholmdahl/projects/pywire-workspace/pywire"
|
|
278
|
-
|
|
355
|
+
# Try to resolve actual local version for display
|
|
356
|
+
# In a workspace structure, we might be in src/create_pywire_app, so up 3 levels is create-pywire-app, then up 1 is workspace
|
|
357
|
+
# actually let's try a safer relative resolution based on known structure
|
|
358
|
+
# /Users/rholmdahl/projects/pywire-workspace/create-pywire-app/src/create_pywire_app/main.py
|
|
359
|
+
# -> create-pywire-app (repo root) = parents[2]
|
|
360
|
+
# -> pywire-workspace = parents[3]
|
|
361
|
+
workspace_root = Path(__file__).resolve().parents[3]
|
|
362
|
+
local_pywire_path = workspace_root / "pywire"
|
|
363
|
+
|
|
364
|
+
# Try reading _version.py first (generated by hatch-vcs)
|
|
365
|
+
local_pywire_version_file = local_pywire_path / "src" / "pywire" / "_version.py"
|
|
366
|
+
pywire_version_display = "Local (Source)"
|
|
367
|
+
|
|
368
|
+
if local_pywire_version_file.exists():
|
|
369
|
+
# Basic regex search for version string to avoid importing it
|
|
370
|
+
import re
|
|
371
|
+
content = local_pywire_version_file.read_text()
|
|
372
|
+
match = re.search(r'version = ["\']([^"\']+)["\']', content)
|
|
373
|
+
if match:
|
|
374
|
+
pywire_version_display = f"{match.group(1)} (Local)"
|
|
375
|
+
|
|
376
|
+
if pywire_version_display == "Local (Source)":
|
|
377
|
+
# Fallback to toml if needed, though with hatch-vcs pyproject.toml won't have it.
|
|
378
|
+
# but check anyway? hatch-vcs usually cleans it.
|
|
379
|
+
# If completely failing, just stick with "Local (Source)"
|
|
380
|
+
pass
|
|
381
|
+
|
|
382
|
+
elif args.pywire_version:
|
|
383
|
+
pywire_dep = f"pywire=={args.pywire_version}"
|
|
384
|
+
pywire_version_display = args.pywire_version
|
|
385
|
+
else:
|
|
386
|
+
pywire_dep = "pywire" # Latest
|
|
387
|
+
pywire_version_display = "Latest"
|
|
388
|
+
|
|
389
|
+
# Resolve the actual version if not local
|
|
390
|
+
if not use_local and pywire_version_display == "Latest":
|
|
391
|
+
with console.status("[dim]Resolving version...", spinner="dots"):
|
|
392
|
+
resolved_version = resolve_pywire_version(pywire_dep)
|
|
393
|
+
if resolved_version:
|
|
394
|
+
pywire_version_display = resolved_version
|
|
395
|
+
|
|
396
|
+
tool_version = get_version()
|
|
279
397
|
|
|
280
398
|
console.print(LOGO)
|
|
281
|
-
console.print("[dim]
|
|
399
|
+
console.print(f"[dim]v{tool_version} • PyWire {pywire_version_display}[/dim]\n")
|
|
400
|
+
|
|
401
|
+
if use_local:
|
|
402
|
+
console.print("[yellow]WARNING: Using local pywire dependency[/yellow]")
|
|
282
403
|
|
|
283
404
|
try:
|
|
284
405
|
# Project Location
|
|
@@ -31,15 +31,9 @@ if path.detail:
|
|
|
31
31
|
"select title, body from posts where slug = ?",
|
|
32
32
|
(slug,),
|
|
33
33
|
).fetchone()
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
post_body_html = markdown.markdown(post["body"])
|
|
38
|
-
else:
|
|
39
|
-
post_title = "Post not found"
|
|
40
|
-
post_body_html = "<p>We couldn't find that post.</p>"
|
|
41
|
-
|
|
42
|
-
---html---
|
|
34
|
+
|
|
35
|
+
--- html ---
|
|
36
|
+
|
|
43
37
|
<main>
|
|
44
38
|
<!-- List view: /posts -->
|
|
45
39
|
<section $if={path.list}>
|
|
@@ -54,8 +48,8 @@ if path.detail:
|
|
|
54
48
|
|
|
55
49
|
<!-- Detail view: /posts/{slug} -->
|
|
56
50
|
<article $if={path.detail}>
|
|
57
|
-
<h1>{post_title}</h1>
|
|
58
|
-
<div>{
|
|
51
|
+
<h1>{post_title if post else "Post not found"}</h1>
|
|
52
|
+
<div>{!html markdown.markdown(post["body"]) if post else "<p>We couldn't find that post.</p>"}</div>
|
|
59
53
|
<p><a href="/posts">← Back to all posts</a></p>
|
|
60
54
|
</article>
|
|
61
55
|
</main>
|
|
@@ -48,11 +48,14 @@ posts = cursor.execute(
|
|
|
48
48
|
"select slug, title from posts order by id desc"
|
|
49
49
|
).fetchall()
|
|
50
50
|
|
|
51
|
-
---html---
|
|
51
|
+
--- html ---
|
|
52
|
+
|
|
52
53
|
<section>
|
|
53
54
|
<h1>Blog + Portfolio (Explicit)</h1>
|
|
54
55
|
<p>Routes are declared with <code>!path</code> and files are named semantically.</p>
|
|
55
56
|
<ul>
|
|
56
|
-
|
|
57
|
+
<li $for={post in posts} $key={post["slug"]}>
|
|
58
|
+
<a href="/posts/{row["slug"]}">{row["title"]}</a>
|
|
59
|
+
</li>
|
|
57
60
|
</ul>
|
|
58
61
|
</section>
|
|
@@ -45,11 +45,14 @@ posts = cursor.execute(
|
|
|
45
45
|
"select slug, title from posts order by id desc"
|
|
46
46
|
).fetchall()
|
|
47
47
|
|
|
48
|
-
---html---
|
|
48
|
+
--- html ---
|
|
49
|
+
|
|
49
50
|
<section>
|
|
50
51
|
<h1>Blog + Portfolio</h1>
|
|
51
52
|
<p>Markdown posts backed by SQLite.</p>
|
|
52
53
|
<ul>
|
|
53
|
-
|
|
54
|
+
<li $for={post in posts} $key={post["slug"]}>
|
|
55
|
+
<a href="/posts/{row["slug"]}">{row["title"]}</a>
|
|
56
|
+
</li>
|
|
54
57
|
</ul>
|
|
55
58
|
</section>
|
|
@@ -12,10 +12,13 @@ posts = cursor.execute(
|
|
|
12
12
|
"select slug, title from posts order by id desc"
|
|
13
13
|
).fetchall()
|
|
14
14
|
|
|
15
|
-
---html---
|
|
15
|
+
--- html ---
|
|
16
|
+
|
|
16
17
|
<section>
|
|
17
18
|
<h1>All posts</h1>
|
|
18
19
|
<ul>
|
|
19
|
-
|
|
20
|
+
<li $for={post in posts} $key={post["slug"]}>
|
|
21
|
+
<a href="/posts/{row["slug"]}">{row["title"]}</a>
|
|
22
|
+
</li>
|
|
20
23
|
</ul>
|
|
21
24
|
</section>
|
|
@@ -14,15 +14,9 @@ post = cursor.execute(
|
|
|
14
14
|
(slug,),
|
|
15
15
|
).fetchone()
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
title = post["title"]
|
|
19
|
-
body_html = markdown.markdown(post["body"])
|
|
20
|
-
else:
|
|
21
|
-
title = "Post not found"
|
|
22
|
-
body_html = "<p>We couldn't find that post.</p>"
|
|
17
|
+
--- html ---
|
|
23
18
|
|
|
24
|
-
---html---
|
|
25
19
|
<article>
|
|
26
|
-
<h1>{title}</h1>
|
|
27
|
-
<div>{
|
|
20
|
+
<h1>{post["title"] if post else "Post not found"}</h1>
|
|
21
|
+
<div>{!html markdown.markdown(post["body"]) if post else "<p>We couldn't find that post.</p>"}</div>
|
|
28
22
|
</article>
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
!path "/"
|
|
2
2
|
!layout "layout.wire"
|
|
3
3
|
|
|
4
|
-
count = 0
|
|
5
|
-
|
|
4
|
+
count = wire(0)
|
|
5
|
+
|
|
6
|
+
--- html ---
|
|
7
|
+
|
|
6
8
|
<div class="container">
|
|
7
9
|
<h1>Counter (Explicit Routing)</h1>
|
|
8
10
|
<p>This page uses explicit routing via <code>!path</code>.</p>
|
|
9
|
-
<p>Count is: {count}</p>
|
|
10
|
-
<button @click={count += 1}>Increment</button>
|
|
11
|
+
<p>Count is: {count.value}</p>
|
|
12
|
+
<button @click={count.value += 1}>Increment</button>
|
|
11
13
|
</div>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
count = 0
|
|
2
|
-
|
|
1
|
+
count = wire(0)
|
|
2
|
+
|
|
3
|
+
--- html ---
|
|
4
|
+
|
|
3
5
|
<div class="container">
|
|
4
6
|
<h1>Counter</h1>
|
|
5
7
|
<p>Edit <code>pages/index.wire</code> to watch hot reload in action.</p>
|
|
6
|
-
<p>Count is: {count}</p>
|
|
7
|
-
<button @click={count += 1}>Increment</button>
|
|
8
|
+
<p>Count is: {count.value}</p>
|
|
9
|
+
<button @click={count.value += 1}>Increment</button>
|
|
8
10
|
</div>
|
|
@@ -31,15 +31,9 @@ if path.detail:
|
|
|
31
31
|
"select title, body from posts where slug = ?",
|
|
32
32
|
(slug,),
|
|
33
33
|
).fetchone()
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
post_body_html = markdown.markdown(post["body"])
|
|
38
|
-
else:
|
|
39
|
-
post_title = "Post not found"
|
|
40
|
-
post_body_html = "<p>We couldn't find that post.</p>"
|
|
41
|
-
|
|
42
|
-
---html---
|
|
34
|
+
|
|
35
|
+
--- html ---
|
|
36
|
+
|
|
43
37
|
<main>
|
|
44
38
|
<!-- List view: /posts -->
|
|
45
39
|
<section $if={path.list}>
|
|
@@ -54,8 +48,8 @@ if path.detail:
|
|
|
54
48
|
|
|
55
49
|
<!-- Detail view: /posts/{slug} -->
|
|
56
50
|
<article $if={path.detail}>
|
|
57
|
-
<h1>{post_title}</h1>
|
|
58
|
-
<div>{
|
|
51
|
+
<h1>{post_title if post else "Post not found"}</h1>
|
|
52
|
+
<div>{!html markdown.markdown(post["body"]) if post else "<p>We couldn't find that post.</p>"}</div>
|
|
59
53
|
<p><a href="/posts">← Back to all posts</a></p>
|
|
60
54
|
</article>
|
|
61
55
|
</main>
|
|
@@ -48,11 +48,14 @@ posts = cursor.execute(
|
|
|
48
48
|
"select slug, title from posts order by id desc"
|
|
49
49
|
).fetchall()
|
|
50
50
|
|
|
51
|
-
---html---
|
|
51
|
+
--- html ---
|
|
52
|
+
|
|
52
53
|
<section>
|
|
53
54
|
<h1>Blog + Portfolio (Explicit)</h1>
|
|
54
55
|
<p>Routes are declared with <code>!path</code> and files are named semantically.</p>
|
|
55
56
|
<ul>
|
|
56
|
-
|
|
57
|
+
<li $for={post in posts} $key={post["slug"]}>
|
|
58
|
+
<a href="/posts/{row["slug"]}">{row["title"]}</a>
|
|
59
|
+
</li>
|
|
57
60
|
</ul>
|
|
58
61
|
</section>
|
|
@@ -45,11 +45,14 @@ posts = cursor.execute(
|
|
|
45
45
|
"select slug, title from posts order by id desc"
|
|
46
46
|
).fetchall()
|
|
47
47
|
|
|
48
|
-
---html---
|
|
48
|
+
--- html ---
|
|
49
|
+
|
|
49
50
|
<section>
|
|
50
51
|
<h1>Blog + Portfolio</h1>
|
|
51
52
|
<p>Markdown posts backed by SQLite.</p>
|
|
52
53
|
<ul>
|
|
53
|
-
|
|
54
|
+
<li $for={post in posts} $key={post["slug"]}>
|
|
55
|
+
<a href="/posts/{row["slug"]}">{row["title"]}</a>
|
|
56
|
+
</li>
|
|
54
57
|
</ul>
|
|
55
58
|
</section>
|
|
@@ -12,10 +12,13 @@ posts = cursor.execute(
|
|
|
12
12
|
"select slug, title from posts order by id desc"
|
|
13
13
|
).fetchall()
|
|
14
14
|
|
|
15
|
-
---html---
|
|
15
|
+
--- html ---
|
|
16
|
+
|
|
16
17
|
<section>
|
|
17
18
|
<h1>All posts</h1>
|
|
18
19
|
<ul>
|
|
19
|
-
|
|
20
|
+
<li $for={post in posts} $key={post["slug"]}>
|
|
21
|
+
<a href="/posts/{row["slug"]}">{row["title"]}</a>
|
|
22
|
+
</li>
|
|
20
23
|
</ul>
|
|
21
24
|
</section>
|
|
@@ -14,15 +14,9 @@ post = cursor.execute(
|
|
|
14
14
|
(slug,),
|
|
15
15
|
).fetchone()
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
title = post["title"]
|
|
19
|
-
body_html = markdown.markdown(post["body"])
|
|
20
|
-
else:
|
|
21
|
-
title = "Post not found"
|
|
22
|
-
body_html = "<p>We couldn't find that post.</p>"
|
|
17
|
+
--- html ---
|
|
23
18
|
|
|
24
|
-
---html---
|
|
25
19
|
<article>
|
|
26
|
-
<h1>{title}</h1>
|
|
27
|
-
<div>{
|
|
20
|
+
<h1>{post["title"] if post else "Post not found"}</h1>
|
|
21
|
+
<div>{!html markdown.markdown(post["body"]) if post else "<p>We couldn't find that post.</p>"}</div>
|
|
28
22
|
</article>
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
!path "/"
|
|
2
2
|
!layout "layout.wire"
|
|
3
3
|
|
|
4
|
-
count = 0
|
|
5
|
-
|
|
4
|
+
count = wire(0)
|
|
5
|
+
|
|
6
|
+
--- html ---
|
|
7
|
+
|
|
6
8
|
<div class="container">
|
|
7
9
|
<h1>Counter (Explicit Routing)</h1>
|
|
8
10
|
<p>This page uses explicit routing via <code>!path</code>.</p>
|
|
9
|
-
<p>Count is: {count}</p>
|
|
10
|
-
<button @click={count += 1}>Increment</button>
|
|
11
|
+
<p>Count is: {count.value}</p>
|
|
12
|
+
<button @click={count.value += 1}>Increment</button>
|
|
11
13
|
</div>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
count = 0
|
|
2
|
-
|
|
1
|
+
count = wire(0)
|
|
2
|
+
|
|
3
|
+
--- html ---
|
|
4
|
+
|
|
3
5
|
<div class="container">
|
|
4
6
|
<h1>Counter</h1>
|
|
5
7
|
<p>Edit <code>pages/index.wire</code> to watch hot reload in action.</p>
|
|
6
|
-
<p>Count is: {count}</p>
|
|
7
|
-
<button @click={count += 1}>Increment</button>
|
|
8
|
+
<p>Count is: {count.value}</p>
|
|
9
|
+
<button @click={count.value += 1}>Increment</button>
|
|
8
10
|
</div>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
create_pywire_app/__init__.py,sha256=2IfSa43uHBGsCagUmksbomg1I0sGSSpyEjVrqha4doY,253
|
|
2
|
+
create_pywire_app/_version.py,sha256=rLCrf4heo25FJtBY-2Ap7ZuWW-5FS7sqTjsolIUuI5c,704
|
|
3
|
+
create_pywire_app/main.py,sha256=obN6gsKmL0GNlgiynomMn8me78AgJjuHeupR14boVtw,23813
|
|
4
|
+
create_pywire_app/templates/blog/explicit/about.wire,sha256=wA4BnWUwJMY403tHaHlyktKrL5MNx-pj0f1PiAdsLcc,161
|
|
5
|
+
create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=h0OgRIZ0Khphloa5ot9oImccb_JybXFvKO2OKhty0z4,1467
|
|
6
|
+
create_pywire_app/templates/blog/explicit/home.wire,sha256=CyA0mNvVtsSi8YJDKrjvPCa4d7RMnko97AR6X6sZXUk,1479
|
|
7
|
+
create_pywire_app/templates/blog/explicit/layout.wire.j2,sha256=PHoRbKEg7YxBJUdCvRI5AI2MvX1WSfZaJ0sW1YaVlSY,719
|
|
8
|
+
create_pywire_app/templates/blog/path-based/__layout__.wire.j2,sha256=phZ1UmW0Qgtl_0_iNbPH--jhBy5tFzQ8RYgtGxIfm0Q,667
|
|
9
|
+
create_pywire_app/templates/blog/path-based/index.wire,sha256=kXTPtEu_LtQRrpHo6zH8MBqGkQrWUazR4HyChdAYjAM,1388
|
|
10
|
+
create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2,sha256=fsJM82UFdm4TXb5jo0uD5MJT0qyMiF4sQpeQR29nKtY,675
|
|
11
|
+
create_pywire_app/templates/blog/path-based/posts_index.wire,sha256=7oF8nK4zp4qClxbBh6AqqVkR3HgZP-jNLN4qMOmIZSQ,535
|
|
12
|
+
create_pywire_app/templates/blog/path-based/posts_slug.wire,sha256=wRYdW-pAZJSAru9gnXM1iy2ft6dxk2Iy8CyE1yU-S0w,554
|
|
13
|
+
create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlHVJzIeHrgIkoARZL4,26
|
|
14
|
+
create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
|
|
15
|
+
create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
|
|
16
|
+
create_pywire_app/templates/common/__error__.wire,sha256=gfD7cvGPbq8TSs4b_nzAjYQOeDSXfOxwpkMV_sCb2KI,170
|
|
17
|
+
create_pywire_app/templates/common/extensions.json,sha256=3Z8VrKu2ile4bLSUB4lvqGiEvuw58bAAZ6Y-KUC0_AA,51
|
|
18
|
+
create_pywire_app/templates/common/main-explicit.py.j2,sha256=0_2uVMb4oy9RK0xGpIi1znSiHTGdRzysKbwrOinw4gE,174
|
|
19
|
+
create_pywire_app/templates/common/main-path.py.j2,sha256=s1dChXg5baQFsNvISo45h4nQ1MqoFiMB-zrTnGYKdCs,144
|
|
20
|
+
create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
|
|
21
|
+
create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
|
|
22
|
+
create_pywire_app/templates/counter/explicit/home.wire,sha256=B2mRbHiuBj_cM56g4bA77kCe-voWvFWnlsuR1pJwbfI,294
|
|
23
|
+
create_pywire_app/templates/counter/explicit/layout.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
24
|
+
create_pywire_app/templates/counter/path-based/__layout__.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
25
|
+
create_pywire_app/templates/counter/path-based/index.wire,sha256=jFsumtbPJPAhuYAwAKRGe06WC1xs4XPwsWtz6RvqnNw,252
|
|
26
|
+
create_pywire_app/templates/saas/models.py,sha256=pgz85rmuhxL0-AB8jEdCuKj_hi5g3G2fJroUzOKG5zU,817
|
|
27
|
+
create_pywire_app/templates/saas/explicit/auth-layout.wire.j2,sha256=0eQ211YhFQBuYQ4ef3Q-YX3ng-1SAKjo7TCZ2XDPnQE,887
|
|
28
|
+
create_pywire_app/templates/saas/explicit/dashboard-pages.wire,sha256=kKvoo3PDZ9Rn0QCnBKy4sHoupZ9esjPbKpXUhS-TGDo,1260
|
|
29
|
+
create_pywire_app/templates/saas/explicit/landing.wire,sha256=hf9xpMs5juFai5NZRBof2FylfLrvaEmCrrrsAhpGveM,235
|
|
30
|
+
create_pywire_app/templates/saas/explicit/login.wire,sha256=0YlZ78TjnCblNXRzq0tdlU9qRPVBSTZzMBfvCfXDewA,157
|
|
31
|
+
create_pywire_app/templates/saas/explicit/pricing.wire,sha256=IvfE2gF0RQheRRe17_P2oySmZBcLLBRW85kdI-1x2UU,343
|
|
32
|
+
create_pywire_app/templates/saas/explicit/public-layout.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
33
|
+
create_pywire_app/templates/saas/path-based/__layout__.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
34
|
+
create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2,sha256=0eQ211YhFQBuYQ4ef3Q-YX3ng-1SAKjo7TCZ2XDPnQE,887
|
|
35
|
+
create_pywire_app/templates/saas/path-based/dashboard_index.wire,sha256=Cg0dm23tu2dCrjYjVU-L0Lans_o2hpCamQS4UKmXXi4,87
|
|
36
|
+
create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=AI_kP-Lgi9FwS9NJXNhJZUAHooDwOKiPAQVMVMHBUT0,87
|
|
37
|
+
create_pywire_app/templates/saas/path-based/index.wire,sha256=DsZ04Zi2_xvNaUJDLLmPnIMUyTqLseOMMFWJRyRCr98,181
|
|
38
|
+
create_pywire_app/templates/saas/path-based/login.wire,sha256=pZ5jDm014xB3k_DBf5O66tiHnvHgVHYcc9tAfDvwgjc,98
|
|
39
|
+
create_pywire_app/templates/saas/path-based/pricing.wire,sha256=jaDNLcPvfOkj7cG6nrLVo1_E5B9SW92HJPDWVt-yaOs,297
|
|
40
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/explicit/about.wire,sha256=wA4BnWUwJMY403tHaHlyktKrL5MNx-pj0f1PiAdsLcc,161
|
|
41
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=h0OgRIZ0Khphloa5ot9oImccb_JybXFvKO2OKhty0z4,1467
|
|
42
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/explicit/home.wire,sha256=CyA0mNvVtsSi8YJDKrjvPCa4d7RMnko97AR6X6sZXUk,1479
|
|
43
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/explicit/layout.wire.j2,sha256=PHoRbKEg7YxBJUdCvRI5AI2MvX1WSfZaJ0sW1YaVlSY,719
|
|
44
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/path-based/__layout__.wire.j2,sha256=phZ1UmW0Qgtl_0_iNbPH--jhBy5tFzQ8RYgtGxIfm0Q,667
|
|
45
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/path-based/index.wire,sha256=kXTPtEu_LtQRrpHo6zH8MBqGkQrWUazR4HyChdAYjAM,1388
|
|
46
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2,sha256=fsJM82UFdm4TXb5jo0uD5MJT0qyMiF4sQpeQR29nKtY,675
|
|
47
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/path-based/posts_index.wire,sha256=7oF8nK4zp4qClxbBh6AqqVkR3HgZP-jNLN4qMOmIZSQ,535
|
|
48
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/blog/path-based/posts_slug.wire,sha256=wRYdW-pAZJSAru9gnXM1iy2ft6dxk2Iy8CyE1yU-S0w,554
|
|
49
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlHVJzIeHrgIkoARZL4,26
|
|
50
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
|
|
51
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
|
|
52
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/__error__.wire,sha256=gfD7cvGPbq8TSs4b_nzAjYQOeDSXfOxwpkMV_sCb2KI,170
|
|
53
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/extensions.json,sha256=3Z8VrKu2ile4bLSUB4lvqGiEvuw58bAAZ6Y-KUC0_AA,51
|
|
54
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/main-explicit.py.j2,sha256=0_2uVMb4oy9RK0xGpIi1znSiHTGdRzysKbwrOinw4gE,174
|
|
55
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/main-path.py.j2,sha256=s1dChXg5baQFsNvISo45h4nQ1MqoFiMB-zrTnGYKdCs,144
|
|
56
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
|
|
57
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
|
|
58
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/counter/explicit/home.wire,sha256=B2mRbHiuBj_cM56g4bA77kCe-voWvFWnlsuR1pJwbfI,294
|
|
59
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/counter/explicit/layout.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
60
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/counter/path-based/__layout__.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
61
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/counter/path-based/index.wire,sha256=jFsumtbPJPAhuYAwAKRGe06WC1xs4XPwsWtz6RvqnNw,252
|
|
62
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/models.py,sha256=pgz85rmuhxL0-AB8jEdCuKj_hi5g3G2fJroUzOKG5zU,817
|
|
63
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/explicit/auth-layout.wire.j2,sha256=0eQ211YhFQBuYQ4ef3Q-YX3ng-1SAKjo7TCZ2XDPnQE,887
|
|
64
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/explicit/dashboard-pages.wire,sha256=kKvoo3PDZ9Rn0QCnBKy4sHoupZ9esjPbKpXUhS-TGDo,1260
|
|
65
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/explicit/landing.wire,sha256=hf9xpMs5juFai5NZRBof2FylfLrvaEmCrrrsAhpGveM,235
|
|
66
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/explicit/login.wire,sha256=0YlZ78TjnCblNXRzq0tdlU9qRPVBSTZzMBfvCfXDewA,157
|
|
67
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/explicit/pricing.wire,sha256=IvfE2gF0RQheRRe17_P2oySmZBcLLBRW85kdI-1x2UU,343
|
|
68
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/explicit/public-layout.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
69
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/__layout__.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
70
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2,sha256=0eQ211YhFQBuYQ4ef3Q-YX3ng-1SAKjo7TCZ2XDPnQE,887
|
|
71
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_index.wire,sha256=Cg0dm23tu2dCrjYjVU-L0Lans_o2hpCamQS4UKmXXi4,87
|
|
72
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=AI_kP-Lgi9FwS9NJXNhJZUAHooDwOKiPAQVMVMHBUT0,87
|
|
73
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/index.wire,sha256=DsZ04Zi2_xvNaUJDLLmPnIMUyTqLseOMMFWJRyRCr98,181
|
|
74
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/login.wire,sha256=pZ5jDm014xB3k_DBf5O66tiHnvHgVHYcc9tAfDvwgjc,98
|
|
75
|
+
create_pywire_app-0.1.4.data/data/share/create_pywire_app/templates/saas/path-based/pricing.wire,sha256=jaDNLcPvfOkj7cG6nrLVo1_E5B9SW92HJPDWVt-yaOs,297
|
|
76
|
+
create_pywire_app-0.1.4.dist-info/METADATA,sha256=541uTd8IBt_0X-fJk33Xbn8bZfP-Rqssf-_Ln67cl9w,1675
|
|
77
|
+
create_pywire_app-0.1.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
78
|
+
create_pywire_app-0.1.4.dist-info/entry_points.txt,sha256=xoM8npX09IcNMw4filAdOqXraJH53J6Sc2pOLgM3JU8,66
|
|
79
|
+
create_pywire_app-0.1.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
80
|
+
create_pywire_app-0.1.4.dist-info/RECORD,,
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
create_pywire_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
create_pywire_app/main.py,sha256=oqp2I4hWDO-drEO26n3se6_Za6nxO7lyFwNAg2yJENM,19355
|
|
3
|
-
create_pywire_app/templates/blog/explicit/about.wire,sha256=FJPqMcOZ87M5cfTft5PA-aR2tMidEBU-BuAnOv0VjS8,158
|
|
4
|
-
create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=4Fz06UyXBxIgiZ2Ss2YC7j_eWz8sbTtn3wZ28z07oNk,1581
|
|
5
|
-
create_pywire_app/templates/blog/explicit/home.wire,sha256=il2Dp7Dx4S-0O1gpF_7ij_Un5YjhUu8hOWWB4D_4c38,1446
|
|
6
|
-
create_pywire_app/templates/blog/explicit/layout.wire.j2,sha256=PHoRbKEg7YxBJUdCvRI5AI2MvX1WSfZaJ0sW1YaVlSY,719
|
|
7
|
-
create_pywire_app/templates/blog/path-based/__layout__.wire.j2,sha256=phZ1UmW0Qgtl_0_iNbPH--jhBy5tFzQ8RYgtGxIfm0Q,667
|
|
8
|
-
create_pywire_app/templates/blog/path-based/index.wire,sha256=k_KUz7rbCjxf95ypt25yIGP9Q50WTgByAdswdyQETh8,1355
|
|
9
|
-
create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2,sha256=fsJM82UFdm4TXb5jo0uD5MJT0qyMiF4sQpeQR29nKtY,675
|
|
10
|
-
create_pywire_app/templates/blog/path-based/posts_index.wire,sha256=msyxqeDoDIWUHHBHr7cTQBJs2nclPyJ39mc0DeklW9k,502
|
|
11
|
-
create_pywire_app/templates/blog/path-based/posts_slug.wire,sha256=cV49NLcYcBlWCmtyVE7Cx37sVcUeB_3UseIlxnxtDWM,607
|
|
12
|
-
create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlHVJzIeHrgIkoARZL4,26
|
|
13
|
-
create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
|
|
14
|
-
create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
|
|
15
|
-
create_pywire_app/templates/common/__error__.wire,sha256=lnb2opOala97L5XgcyXTQI90MOZ54RvnI1HvvktrEF4,166
|
|
16
|
-
create_pywire_app/templates/common/extensions.json,sha256=3Z8VrKu2ile4bLSUB4lvqGiEvuw58bAAZ6Y-KUC0_AA,51
|
|
17
|
-
create_pywire_app/templates/common/main-explicit.py.j2,sha256=0_2uVMb4oy9RK0xGpIi1znSiHTGdRzysKbwrOinw4gE,174
|
|
18
|
-
create_pywire_app/templates/common/main-path.py.j2,sha256=s1dChXg5baQFsNvISo45h4nQ1MqoFiMB-zrTnGYKdCs,144
|
|
19
|
-
create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
|
|
20
|
-
create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
|
|
21
|
-
create_pywire_app/templates/counter/explicit/home.wire,sha256=pX6yZzkxbNhjfysKbb6eWJ6-cAZP5Rnup4mwIZf7yQM,272
|
|
22
|
-
create_pywire_app/templates/counter/explicit/layout.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
23
|
-
create_pywire_app/templates/counter/path-based/__layout__.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
24
|
-
create_pywire_app/templates/counter/path-based/index.wire,sha256=EdCfkqJ1UwD3xiyC8qE2evOrk_rKkzaTJt5pS-kfbpU,230
|
|
25
|
-
create_pywire_app/templates/saas/models.py,sha256=pgz85rmuhxL0-AB8jEdCuKj_hi5g3G2fJroUzOKG5zU,817
|
|
26
|
-
create_pywire_app/templates/saas/explicit/auth-layout.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
|
|
27
|
-
create_pywire_app/templates/saas/explicit/dashboard-pages.wire,sha256=2QuxAj6-qYshQc__gJsrbJvPVNJtiLe-gnEAdTXHNpg,1257
|
|
28
|
-
create_pywire_app/templates/saas/explicit/landing.wire,sha256=3rDHpEIphEK7UEgIhU9x2YHWUgNuSbNngUWMm-J-FCo,232
|
|
29
|
-
create_pywire_app/templates/saas/explicit/login.wire,sha256=69D3iI7N-MopBT66zdXCv-QoIvdi5LH6cEjok4qTNyA,154
|
|
30
|
-
create_pywire_app/templates/saas/explicit/pricing.wire,sha256=6y08_uSPD9bYsLkrvO6_74qANQa-6Tb1S6kzYSrIGCw,341
|
|
31
|
-
create_pywire_app/templates/saas/explicit/public-layout.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
32
|
-
create_pywire_app/templates/saas/path-based/__layout__.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
33
|
-
create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
|
|
34
|
-
create_pywire_app/templates/saas/path-based/dashboard_index.wire,sha256=hRkYGoKJcWIJhZygugJdP7yKZJZoX5xPrM2ioUIJ1Ls,98
|
|
35
|
-
create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=Emw4tPu_U-42p1zAAS1jxbUIrZci3fGti6LaiHgH2Qc,98
|
|
36
|
-
create_pywire_app/templates/saas/path-based/index.wire,sha256=xAfYDhbdMvORf2gnlnkm_RUzfJqAly2CMGwxdu5cTJM,192
|
|
37
|
-
create_pywire_app/templates/saas/path-based/login.wire,sha256=voqqjRKNkDJLr8dO_2v-i1GQ9zvRGZ_SYLI6o9Q0qBI,109
|
|
38
|
-
create_pywire_app/templates/saas/path-based/pricing.wire,sha256=EClcQgm4277UiOMV13xAN3jzCqxlfsGagsn2tvLkP5I,294
|
|
39
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/explicit/about.wire,sha256=FJPqMcOZ87M5cfTft5PA-aR2tMidEBU-BuAnOv0VjS8,158
|
|
40
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=4Fz06UyXBxIgiZ2Ss2YC7j_eWz8sbTtn3wZ28z07oNk,1581
|
|
41
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/explicit/home.wire,sha256=il2Dp7Dx4S-0O1gpF_7ij_Un5YjhUu8hOWWB4D_4c38,1446
|
|
42
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/explicit/layout.wire.j2,sha256=PHoRbKEg7YxBJUdCvRI5AI2MvX1WSfZaJ0sW1YaVlSY,719
|
|
43
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/path-based/__layout__.wire.j2,sha256=phZ1UmW0Qgtl_0_iNbPH--jhBy5tFzQ8RYgtGxIfm0Q,667
|
|
44
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/path-based/index.wire,sha256=k_KUz7rbCjxf95ypt25yIGP9Q50WTgByAdswdyQETh8,1355
|
|
45
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2,sha256=fsJM82UFdm4TXb5jo0uD5MJT0qyMiF4sQpeQR29nKtY,675
|
|
46
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/path-based/posts_index.wire,sha256=msyxqeDoDIWUHHBHr7cTQBJs2nclPyJ39mc0DeklW9k,502
|
|
47
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/blog/path-based/posts_slug.wire,sha256=cV49NLcYcBlWCmtyVE7Cx37sVcUeB_3UseIlxnxtDWM,607
|
|
48
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlHVJzIeHrgIkoARZL4,26
|
|
49
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
|
|
50
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
|
|
51
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/__error__.wire,sha256=lnb2opOala97L5XgcyXTQI90MOZ54RvnI1HvvktrEF4,166
|
|
52
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/extensions.json,sha256=3Z8VrKu2ile4bLSUB4lvqGiEvuw58bAAZ6Y-KUC0_AA,51
|
|
53
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/main-explicit.py.j2,sha256=0_2uVMb4oy9RK0xGpIi1znSiHTGdRzysKbwrOinw4gE,174
|
|
54
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/main-path.py.j2,sha256=s1dChXg5baQFsNvISo45h4nQ1MqoFiMB-zrTnGYKdCs,144
|
|
55
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
|
|
56
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
|
|
57
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/counter/explicit/home.wire,sha256=pX6yZzkxbNhjfysKbb6eWJ6-cAZP5Rnup4mwIZf7yQM,272
|
|
58
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/counter/explicit/layout.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
59
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/counter/path-based/__layout__.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
|
|
60
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/counter/path-based/index.wire,sha256=EdCfkqJ1UwD3xiyC8qE2evOrk_rKkzaTJt5pS-kfbpU,230
|
|
61
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/models.py,sha256=pgz85rmuhxL0-AB8jEdCuKj_hi5g3G2fJroUzOKG5zU,817
|
|
62
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/explicit/auth-layout.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
|
|
63
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/explicit/dashboard-pages.wire,sha256=2QuxAj6-qYshQc__gJsrbJvPVNJtiLe-gnEAdTXHNpg,1257
|
|
64
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/explicit/landing.wire,sha256=3rDHpEIphEK7UEgIhU9x2YHWUgNuSbNngUWMm-J-FCo,232
|
|
65
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/explicit/login.wire,sha256=69D3iI7N-MopBT66zdXCv-QoIvdi5LH6cEjok4qTNyA,154
|
|
66
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/explicit/pricing.wire,sha256=6y08_uSPD9bYsLkrvO6_74qANQa-6Tb1S6kzYSrIGCw,341
|
|
67
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/explicit/public-layout.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
68
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/__layout__.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
|
|
69
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
|
|
70
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_index.wire,sha256=hRkYGoKJcWIJhZygugJdP7yKZJZoX5xPrM2ioUIJ1Ls,98
|
|
71
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=Emw4tPu_U-42p1zAAS1jxbUIrZci3fGti6LaiHgH2Qc,98
|
|
72
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/index.wire,sha256=xAfYDhbdMvORf2gnlnkm_RUzfJqAly2CMGwxdu5cTJM,192
|
|
73
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/login.wire,sha256=voqqjRKNkDJLr8dO_2v-i1GQ9zvRGZ_SYLI6o9Q0qBI,109
|
|
74
|
-
create_pywire_app-0.1.2.data/data/share/create_pywire_app/templates/saas/path-based/pricing.wire,sha256=EClcQgm4277UiOMV13xAN3jzCqxlfsGagsn2tvLkP5I,294
|
|
75
|
-
create_pywire_app-0.1.2.dist-info/METADATA,sha256=IrLeqQplo10r6BAZLz2x9FEDHosC7PdPmw9ZJC3p2xo,1675
|
|
76
|
-
create_pywire_app-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
77
|
-
create_pywire_app-0.1.2.dist-info/entry_points.txt,sha256=xoM8npX09IcNMw4filAdOqXraJH53J6Sc2pOLgM3JU8,66
|
|
78
|
-
create_pywire_app-0.1.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
79
|
-
create_pywire_app-0.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|