create-pywire-app 0.1.1__py3-none-any.whl → 0.1.3__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.
Files changed (45) hide show
  1. create_pywire_app/main.py +119 -21
  2. create_pywire_app/templates/common/extensions.json +5 -0
  3. create_pywire_app/templates/common/main-explicit.py.j2 +1 -1
  4. create_pywire_app/templates/common/main-path.py.j2 +1 -1
  5. create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/extensions.json +5 -0
  6. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/main-explicit.py.j2 +1 -1
  7. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/main-path.py.j2 +1 -1
  8. {create_pywire_app-0.1.1.dist-info → create_pywire_app-0.1.3.dist-info}/METADATA +18 -2
  9. {create_pywire_app-0.1.1.dist-info → create_pywire_app-0.1.3.dist-info}/RECORD +45 -43
  10. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/explicit/about.wire +0 -0
  11. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/explicit/blog-posts.wire +0 -0
  12. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/explicit/home.wire +0 -0
  13. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/explicit/layout.wire.j2 +0 -0
  14. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/path-based/__layout__.wire.j2 +0 -0
  15. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/path-based/index.wire +0 -0
  16. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2 +0 -0
  17. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/path-based/posts_index.wire +0 -0
  18. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/blog/path-based/posts_slug.wire +0 -0
  19. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/.gitignore +0 -0
  20. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/Dockerfile +0 -0
  21. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/README.md.j2 +0 -0
  22. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/__error__.wire +0 -0
  23. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/pyproject.toml.j2 +0 -0
  24. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/common/render.yaml.j2 +0 -0
  25. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/counter/explicit/home.wire +0 -0
  26. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/counter/explicit/layout.wire.j2 +0 -0
  27. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/counter/path-based/__layout__.wire.j2 +0 -0
  28. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/counter/path-based/index.wire +0 -0
  29. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/explicit/auth-layout.wire.j2 +0 -0
  30. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/explicit/dashboard-pages.wire +0 -0
  31. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/explicit/landing.wire +0 -0
  32. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/explicit/login.wire +0 -0
  33. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/explicit/pricing.wire +0 -0
  34. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/explicit/public-layout.wire.j2 +0 -0
  35. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/models.py +0 -0
  36. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/__layout__.wire.j2 +0 -0
  37. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2 +0 -0
  38. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/dashboard_index.wire +0 -0
  39. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/dashboard_settings.wire +0 -0
  40. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/index.wire +0 -0
  41. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/login.wire +0 -0
  42. {create_pywire_app-0.1.1.data → create_pywire_app-0.1.3.data}/data/share/create_pywire_app/templates/saas/path-based/pricing.wire +0 -0
  43. {create_pywire_app-0.1.1.dist-info → create_pywire_app-0.1.3.dist-info}/WHEEL +0 -0
  44. {create_pywire_app-0.1.1.dist-info → create_pywire_app-0.1.3.dist-info}/entry_points.txt +0 -0
  45. {create_pywire_app-0.1.1.dist-info → create_pywire_app-0.1.3.dist-info}/licenses/LICENSE +0 -0
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
@@ -25,6 +27,13 @@ LOGO = r"""
25
27
  """
26
28
 
27
29
 
30
+ def get_version() -> str:
31
+ try:
32
+ return importlib.metadata.version("create-pywire-app")
33
+ except importlib.metadata.PackageNotFoundError:
34
+ return "0.0.0"
35
+
36
+
28
37
  class TemplateRenderer:
29
38
  """Handles template loading and rendering using Jinja2."""
30
39
 
@@ -113,6 +122,7 @@ class ProjectGenerator:
113
122
  self._generate_gitignore()
114
123
  self._generate_main()
115
124
  self._generate_error_page()
125
+ self._generate_vscode_settings()
116
126
 
117
127
  # Generate template-specific files
118
128
  if self.template == "counter":
@@ -150,10 +160,19 @@ class ProjectGenerator:
150
160
  """Generate .gitignore."""
151
161
  self.renderer.copy_static("common/.gitignore", self.project_path / ".gitignore")
152
162
 
163
+ def _generate_vscode_settings(self) -> None:
164
+ """Generate VS Code settings."""
165
+ vscode_dir = self.project_path / ".vscode"
166
+ vscode_dir.mkdir(exist_ok=True)
167
+ self.renderer.copy_static("common/extensions.json", vscode_dir / "extensions.json")
168
+
153
169
  def _generate_main(self) -> None:
154
170
  """Generate main.py."""
155
171
  template_name = "main-path.py.j2" if self.routing_strategy == "path" else "main-explicit.py.j2"
156
- content = self.renderer.render(f"common/{template_name}", {})
172
+ context = {
173
+ "pages_dir": "src/pages" if self.use_src else "pages",
174
+ }
175
+ content = self.renderer.render(f"common/{template_name}", context)
157
176
  (self.app_root / "main.py").write_text(content)
158
177
 
159
178
  def _generate_error_page(self) -> None:
@@ -260,15 +279,31 @@ class ProjectGenerator:
260
279
  def main():
261
280
  console.clear()
262
281
 
263
- # Check for local override for testing
282
+ # Parse arguments
283
+ parser = argparse.ArgumentParser(description="Create a new PyWire application")
284
+ parser.add_argument(
285
+ "--pywire-version", help="Specify a specific version of pywire to install"
286
+ )
287
+ args = parser.parse_args()
288
+
289
+ # Check for local override for testing (highest priority)
264
290
  use_local = os.environ.get("USE_LOCAL_PYWIRE") == "1"
265
- pywire_dep = "pywire"
291
+
266
292
  if use_local:
267
293
  pywire_dep = "pywire @ /Users/rholmdahl/projects/pywire-workspace/pywire"
268
- console.print("[yellow]WARNING: Using local pywire dependency[/yellow]")
294
+ # We don't warn yet, wait until after LOGO
295
+ elif args.pywire_version:
296
+ pywire_dep = f"pywire=={args.pywire_version}"
297
+ else:
298
+ pywire_dep = "pywire" # Latest
299
+
300
+ tool_version = get_version()
269
301
 
270
302
  console.print(LOGO)
271
- console.print("[dim]v0.1.0 • The Python Web Framework[/dim]\n")
303
+ console.print(f"[dim]v{tool_version} • The Python Web Framework[/dim]\n")
304
+
305
+ if use_local:
306
+ console.print("[yellow]WARNING: Using local pywire dependency[/yellow]")
272
307
 
273
308
  try:
274
309
  # Project Location
@@ -341,6 +376,7 @@ def main():
341
376
  generator.generate()
342
377
 
343
378
  # Initialize git repo
379
+ git_initialized = False
344
380
  try:
345
381
  subprocess.run(
346
382
  ["git", "init"],
@@ -349,8 +385,33 @@ def main():
349
385
  capture_output=True,
350
386
  text=True,
351
387
  )
388
+ git_initialized = True
352
389
  except (FileNotFoundError, subprocess.CalledProcessError):
353
390
  pass # Silently skip if git is not available
391
+ if git_initialized:
392
+ try:
393
+ subprocess.run(
394
+ ["git", "add", "."],
395
+ cwd=project_path,
396
+ check=True,
397
+ capture_output=True,
398
+ text=True,
399
+ )
400
+ subprocess.run(
401
+ ["git", "commit", "-m", "feat: initial project structure"],
402
+ cwd=project_path,
403
+ check=True,
404
+ capture_output=True,
405
+ text=True,
406
+ )
407
+ except subprocess.CalledProcessError as e:
408
+ console.print(
409
+ "[yellow]![/yellow] Git commit skipped (configure user.name/email to enable)."
410
+ )
411
+ if e.stderr:
412
+ console.print(e.stderr)
413
+ except FileNotFoundError:
414
+ console.print("[yellow]![/yellow] Git not found, skipping commit")
354
415
 
355
416
  console.print("[green]✓[/green] Project structure created")
356
417
 
@@ -377,32 +438,69 @@ def main():
377
438
  except FileNotFoundError:
378
439
  console.print("[yellow]![/yellow] uv not found, skipping sync")
379
440
 
380
- # Success message
381
- console.print()
441
+ next_action = questionary.select(
442
+ "What would you like to do next?",
443
+ choices=[
444
+ questionary.Choice("Start development server", value="start"),
445
+ questionary.Choice("Show instructions and exit", value="instructions"),
446
+ ],
447
+ pointer=">",
448
+ ).unsafe_ask()
382
449
 
383
- commands = [f"cd {project_location}"]
384
- if not sync_success:
385
- commands.append("uv sync")
386
- commands.append("pywire dev")
450
+ should_show_instructions = next_action == "instructions"
451
+ if next_action == "start":
452
+ try:
453
+ subprocess.run(
454
+ ["uv", "run", "pywire", "dev"],
455
+ cwd=project_path,
456
+ check=True,
457
+ )
458
+ return
459
+ except subprocess.CalledProcessError:
460
+ console.print("[red]✗[/red] Failed to start the dev server")
461
+ should_show_instructions = True
462
+ except FileNotFoundError:
463
+ console.print("[yellow]![/yellow] uv not found, cannot start server")
464
+ should_show_instructions = True
465
+
466
+ if should_show_instructions:
467
+ console.print()
468
+
469
+ is_windows = os.name == "nt"
470
+ commands = [f"cd {project_location}"]
471
+ if not sync_success:
472
+ commands.append("uv sync")
473
+ if is_windows:
474
+ activate_cmd = r".venv\Scripts\activate"
475
+ else:
476
+ activate_cmd = "source .venv/bin/activate"
477
+ commands.extend(
478
+ [
479
+ activate_cmd,
480
+ "pywire dev",
481
+ ]
482
+ )
387
483
 
388
- cmd_text = "\n ".join(commands)
484
+ cmd_text = "\n ".join(commands)
389
485
 
390
- console.print(
391
- Panel(
392
- Markdown(
393
- f"""
486
+ console.print(
487
+ Panel(
488
+ Markdown(
489
+ f"""
394
490
  # System Online 🟢
395
491
 
396
492
  Run the following commands to enter the environment:
397
493
 
398
494
  {cmd_text}
495
+
496
+ > **Tip:** Install the **PyWire** extension (id: `pywire.pywire`) in VS Code for syntax highlighting and snippets.
399
497
  """
400
- ),
401
- border_style="cyan",
402
- title="Initialization Complete",
403
- title_align="left",
498
+ ),
499
+ border_style="cyan",
500
+ title="Initialization Complete",
501
+ title_align="left",
502
+ )
404
503
  )
405
- )
406
504
  except KeyboardInterrupt:
407
505
  console.print("\n[bold red]System Aborted.[/bold red]")
408
506
  sys.exit(1)
@@ -0,0 +1,5 @@
1
+ {
2
+ "recommendations": [
3
+ "pywire.pywire"
4
+ ]
5
+ }
@@ -3,7 +3,7 @@ from pywire import PyWire
3
3
  # Create application instance
4
4
  app = PyWire(
5
5
  path_based_routing=False,
6
- pages_dir="pages",
6
+ pages_dir="{{ pages_dir }}",
7
7
  enable_pjax=True,
8
8
  debug=True,
9
9
  )
@@ -2,7 +2,7 @@ from pywire import PyWire
2
2
 
3
3
  # Create application instance
4
4
  app = PyWire(
5
- pages_dir="pages",
5
+ pages_dir="{{ pages_dir }}",
6
6
  enable_pjax=True,
7
7
  debug=True,
8
8
  )
@@ -0,0 +1,5 @@
1
+ {
2
+ "recommendations": [
3
+ "pywire.pywire"
4
+ ]
5
+ }
@@ -3,7 +3,7 @@ from pywire import PyWire
3
3
  # Create application instance
4
4
  app = PyWire(
5
5
  path_based_routing=False,
6
- pages_dir="pages",
6
+ pages_dir="{{ pages_dir }}",
7
7
  enable_pjax=True,
8
8
  debug=True,
9
9
  )
@@ -2,7 +2,7 @@ from pywire import PyWire
2
2
 
3
3
  # Create application instance
4
4
  app = PyWire(
5
- pages_dir="pages",
5
+ pages_dir="{{ pages_dir }}",
6
6
  enable_pjax=True,
7
7
  debug=True,
8
8
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: create-pywire-app
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: Init wizard for new pywire projects
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.11
@@ -17,12 +17,28 @@ Description-Content-Type: text/markdown
17
17
 
18
18
  Quick start wizard for new pywire projects.
19
19
 
20
- ## Usage
20
+ <!-- INSTALL_MESSAGE_TEMPLATE_START -->
21
+ ## 🚀 Quick Start
22
+
23
+ If you already have [uv](https://docs.astral.sh/uv/) installed, you can get started instantly:
21
24
 
22
25
  ```bash
23
26
  uvx create-pywire-app
24
27
  ```
25
28
 
29
+ If you don't have `uv` installed or aren't sure, use our installer script which handles the setup for you:
30
+
31
+ ### macOS / Linux
32
+ ```bash
33
+ curl -fsSL pywire.dev/install | sh
34
+ ```
35
+
36
+ ### Windows (PowerShell)
37
+ ```powershell
38
+ irm pywire.dev/install.ps1 | iex
39
+ ```
40
+ <!-- INSTALL_MESSAGE_TEMPLATE_END -->
41
+
26
42
  <!-- SUPPORT_MESSAGE_TEMPLATE_START -->
27
43
  ## ❤️ Support pywire
28
44
 
@@ -1,5 +1,5 @@
1
1
  create_pywire_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- create_pywire_app/main.py,sha256=lRJByM4AEdZ3yfUs22pNu0lxH7XvhhoF3UweHbPm60M,16318
2
+ create_pywire_app/main.py,sha256=asWQllKQI1eKM5drikmYRC1Hz7-40XUDrJr_zHhlm9Q,20066
3
3
  create_pywire_app/templates/blog/explicit/about.wire,sha256=FJPqMcOZ87M5cfTft5PA-aR2tMidEBU-BuAnOv0VjS8,158
4
4
  create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=4Fz06UyXBxIgiZ2Ss2YC7j_eWz8sbTtn3wZ28z07oNk,1581
5
5
  create_pywire_app/templates/blog/explicit/home.wire,sha256=il2Dp7Dx4S-0O1gpF_7ij_Un5YjhUu8hOWWB4D_4c38,1446
@@ -13,8 +13,9 @@ create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlH
13
13
  create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
14
14
  create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
15
15
  create_pywire_app/templates/common/__error__.wire,sha256=lnb2opOala97L5XgcyXTQI90MOZ54RvnI1HvvktrEF4,166
16
- create_pywire_app/templates/common/main-explicit.py.j2,sha256=ZR2ssVYfZA_k1P6HN20T17Kx4ljbiTitp2fFkTuj1s4,164
17
- create_pywire_app/templates/common/main-path.py.j2,sha256=H4u4NoywF5JuuWjSu31Vfv2HbgwHzsGvH-k2awY_A2o,134
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
18
19
  create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
19
20
  create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
20
21
  create_pywire_app/templates/counter/explicit/home.wire,sha256=pX6yZzkxbNhjfysKbb6eWJ6-cAZP5Rnup4mwIZf7yQM,272
@@ -35,43 +36,44 @@ create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=Emw4t
35
36
  create_pywire_app/templates/saas/path-based/index.wire,sha256=xAfYDhbdMvORf2gnlnkm_RUzfJqAly2CMGwxdu5cTJM,192
36
37
  create_pywire_app/templates/saas/path-based/login.wire,sha256=voqqjRKNkDJLr8dO_2v-i1GQ9zvRGZ_SYLI6o9Q0qBI,109
37
38
  create_pywire_app/templates/saas/path-based/pricing.wire,sha256=EClcQgm4277UiOMV13xAN3jzCqxlfsGagsn2tvLkP5I,294
38
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/explicit/about.wire,sha256=FJPqMcOZ87M5cfTft5PA-aR2tMidEBU-BuAnOv0VjS8,158
39
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=4Fz06UyXBxIgiZ2Ss2YC7j_eWz8sbTtn3wZ28z07oNk,1581
40
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/explicit/home.wire,sha256=il2Dp7Dx4S-0O1gpF_7ij_Un5YjhUu8hOWWB4D_4c38,1446
41
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/explicit/layout.wire.j2,sha256=PHoRbKEg7YxBJUdCvRI5AI2MvX1WSfZaJ0sW1YaVlSY,719
42
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/path-based/__layout__.wire.j2,sha256=phZ1UmW0Qgtl_0_iNbPH--jhBy5tFzQ8RYgtGxIfm0Q,667
43
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/path-based/index.wire,sha256=k_KUz7rbCjxf95ypt25yIGP9Q50WTgByAdswdyQETh8,1355
44
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2,sha256=fsJM82UFdm4TXb5jo0uD5MJT0qyMiF4sQpeQR29nKtY,675
45
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/path-based/posts_index.wire,sha256=msyxqeDoDIWUHHBHr7cTQBJs2nclPyJ39mc0DeklW9k,502
46
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/blog/path-based/posts_slug.wire,sha256=cV49NLcYcBlWCmtyVE7Cx37sVcUeB_3UseIlxnxtDWM,607
47
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlHVJzIeHrgIkoARZL4,26
48
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
49
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
50
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/__error__.wire,sha256=lnb2opOala97L5XgcyXTQI90MOZ54RvnI1HvvktrEF4,166
51
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/main-explicit.py.j2,sha256=ZR2ssVYfZA_k1P6HN20T17Kx4ljbiTitp2fFkTuj1s4,164
52
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/main-path.py.j2,sha256=H4u4NoywF5JuuWjSu31Vfv2HbgwHzsGvH-k2awY_A2o,134
53
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
54
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
55
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/counter/explicit/home.wire,sha256=pX6yZzkxbNhjfysKbb6eWJ6-cAZP5Rnup4mwIZf7yQM,272
56
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/counter/explicit/layout.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
57
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/counter/path-based/__layout__.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
58
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/counter/path-based/index.wire,sha256=EdCfkqJ1UwD3xiyC8qE2evOrk_rKkzaTJt5pS-kfbpU,230
59
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/models.py,sha256=pgz85rmuhxL0-AB8jEdCuKj_hi5g3G2fJroUzOKG5zU,817
60
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/explicit/auth-layout.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
61
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/explicit/dashboard-pages.wire,sha256=2QuxAj6-qYshQc__gJsrbJvPVNJtiLe-gnEAdTXHNpg,1257
62
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/explicit/landing.wire,sha256=3rDHpEIphEK7UEgIhU9x2YHWUgNuSbNngUWMm-J-FCo,232
63
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/explicit/login.wire,sha256=69D3iI7N-MopBT66zdXCv-QoIvdi5LH6cEjok4qTNyA,154
64
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/explicit/pricing.wire,sha256=6y08_uSPD9bYsLkrvO6_74qANQa-6Tb1S6kzYSrIGCw,341
65
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/explicit/public-layout.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
66
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/__layout__.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
67
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
68
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_index.wire,sha256=hRkYGoKJcWIJhZygugJdP7yKZJZoX5xPrM2ioUIJ1Ls,98
69
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=Emw4tPu_U-42p1zAAS1jxbUIrZci3fGti6LaiHgH2Qc,98
70
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/index.wire,sha256=xAfYDhbdMvORf2gnlnkm_RUzfJqAly2CMGwxdu5cTJM,192
71
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/login.wire,sha256=voqqjRKNkDJLr8dO_2v-i1GQ9zvRGZ_SYLI6o9Q0qBI,109
72
- create_pywire_app-0.1.1.data/data/share/create_pywire_app/templates/saas/path-based/pricing.wire,sha256=EClcQgm4277UiOMV13xAN3jzCqxlfsGagsn2tvLkP5I,294
73
- create_pywire_app-0.1.1.dist-info/METADATA,sha256=APHGpCi6rXb_1IoN7CBl9JWb6Wkq731qY1xjVGjXZUY,1239
74
- create_pywire_app-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
75
- create_pywire_app-0.1.1.dist-info/entry_points.txt,sha256=xoM8npX09IcNMw4filAdOqXraJH53J6Sc2pOLgM3JU8,66
76
- create_pywire_app-0.1.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
77
- create_pywire_app-0.1.1.dist-info/RECORD,,
39
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/explicit/about.wire,sha256=FJPqMcOZ87M5cfTft5PA-aR2tMidEBU-BuAnOv0VjS8,158
40
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/explicit/blog-posts.wire,sha256=4Fz06UyXBxIgiZ2Ss2YC7j_eWz8sbTtn3wZ28z07oNk,1581
41
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/explicit/home.wire,sha256=il2Dp7Dx4S-0O1gpF_7ij_Un5YjhUu8hOWWB4D_4c38,1446
42
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/explicit/layout.wire.j2,sha256=PHoRbKEg7YxBJUdCvRI5AI2MvX1WSfZaJ0sW1YaVlSY,719
43
+ create_pywire_app-0.1.3.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.3.data/data/share/create_pywire_app/templates/blog/path-based/index.wire,sha256=k_KUz7rbCjxf95ypt25yIGP9Q50WTgByAdswdyQETh8,1355
45
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/path-based/posts__layout__.wire.j2,sha256=fsJM82UFdm4TXb5jo0uD5MJT0qyMiF4sQpeQR29nKtY,675
46
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/path-based/posts_index.wire,sha256=msyxqeDoDIWUHHBHr7cTQBJs2nclPyJ39mc0DeklW9k,502
47
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/blog/path-based/posts_slug.wire,sha256=cV49NLcYcBlWCmtyVE7Cx37sVcUeB_3UseIlxnxtDWM,607
48
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/.gitignore,sha256=Ry9WhHi_-QVuxWtcXop8o9KAxlHVJzIeHrgIkoARZL4,26
49
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/Dockerfile,sha256=Kw7nIH_wLUxRy6xJIA1Wlk1dl85iOBr2qRXLOg7WpHg,333
50
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/README.md.j2,sha256=3n2DZtiOmzxjOZrPJlAYnfdNCz3owPWOnwRXeq_ElyU,168
51
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/__error__.wire,sha256=lnb2opOala97L5XgcyXTQI90MOZ54RvnI1HvvktrEF4,166
52
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/extensions.json,sha256=3Z8VrKu2ile4bLSUB4lvqGiEvuw58bAAZ6Y-KUC0_AA,51
53
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/main-explicit.py.j2,sha256=0_2uVMb4oy9RK0xGpIi1znSiHTGdRzysKbwrOinw4gE,174
54
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/main-path.py.j2,sha256=s1dChXg5baQFsNvISo45h4nQ1MqoFiMB-zrTnGYKdCs,144
55
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/pyproject.toml.j2,sha256=rcKdp6wiSJe5bQlyh7_ymtAujwjCdYMSU_0i5cbPl4E,400
56
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/common/render.yaml.j2,sha256=2PM73Rq5vLoAKpB5VXPfYoT3GHabtngZ9rg2n9zw6Fk,253
57
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/counter/explicit/home.wire,sha256=pX6yZzkxbNhjfysKbb6eWJ6-cAZP5Rnup4mwIZf7yQM,272
58
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/counter/explicit/layout.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
59
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/counter/path-based/__layout__.wire.j2,sha256=orbZ_nvG5Fo9_VeFGwG8xJJAehyyDFhTsxe9DkBW3tc,615
60
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/counter/path-based/index.wire,sha256=EdCfkqJ1UwD3xiyC8qE2evOrk_rKkzaTJt5pS-kfbpU,230
61
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/models.py,sha256=pgz85rmuhxL0-AB8jEdCuKj_hi5g3G2fJroUzOKG5zU,817
62
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/explicit/auth-layout.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
63
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/explicit/dashboard-pages.wire,sha256=2QuxAj6-qYshQc__gJsrbJvPVNJtiLe-gnEAdTXHNpg,1257
64
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/explicit/landing.wire,sha256=3rDHpEIphEK7UEgIhU9x2YHWUgNuSbNngUWMm-J-FCo,232
65
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/explicit/login.wire,sha256=69D3iI7N-MopBT66zdXCv-QoIvdi5LH6cEjok4qTNyA,154
66
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/explicit/pricing.wire,sha256=6y08_uSPD9bYsLkrvO6_74qANQa-6Tb1S6kzYSrIGCw,341
67
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/explicit/public-layout.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
68
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/__layout__.wire.j2,sha256=WfWX_2l5T7C7ibwYLAkwpovmapphsk0hSSa8RokeGVk,723
69
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/dashboard__layout__.wire.j2,sha256=1p-feFdmUNUq2SQ7PqRWvM8jRr3OMXQsi9BXiIzmDCY,884
70
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_index.wire,sha256=hRkYGoKJcWIJhZygugJdP7yKZJZoX5xPrM2ioUIJ1Ls,98
71
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/dashboard_settings.wire,sha256=Emw4tPu_U-42p1zAAS1jxbUIrZci3fGti6LaiHgH2Qc,98
72
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/index.wire,sha256=xAfYDhbdMvORf2gnlnkm_RUzfJqAly2CMGwxdu5cTJM,192
73
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/login.wire,sha256=voqqjRKNkDJLr8dO_2v-i1GQ9zvRGZ_SYLI6o9Q0qBI,109
74
+ create_pywire_app-0.1.3.data/data/share/create_pywire_app/templates/saas/path-based/pricing.wire,sha256=EClcQgm4277UiOMV13xAN3jzCqxlfsGagsn2tvLkP5I,294
75
+ create_pywire_app-0.1.3.dist-info/METADATA,sha256=Y9YFpbMjDZNshWAL03xZmOM2SwnbYfryh4_wPo3SmKg,1675
76
+ create_pywire_app-0.1.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
77
+ create_pywire_app-0.1.3.dist-info/entry_points.txt,sha256=xoM8npX09IcNMw4filAdOqXraJH53J6Sc2pOLgM3JU8,66
78
+ create_pywire_app-0.1.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
79
+ create_pywire_app-0.1.3.dist-info/RECORD,,