bluer-sbc 9.101.1__py3-none-any.whl → 9.319.1__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 (65) hide show
  1. bluer_sbc/.abcli/sbc/parts/edit.sh +5 -0
  2. bluer_sbc/.abcli/sbc/parts/open.sh +5 -0
  3. bluer_sbc/.abcli/sbc/parts.sh +1 -1
  4. bluer_sbc/.abcli/seed/rpi_64_bit.sh +36 -0
  5. bluer_sbc/.abcli/tests/help.sh +2 -0
  6. bluer_sbc/README/design.py +40 -24
  7. bluer_sbc/README/designs/__init__.py +27 -53
  8. bluer_sbc/README/designs/adapter_bus.py +59 -0
  9. bluer_sbc/README/designs/anchor/__init__.py +15 -0
  10. bluer_sbc/README/designs/anchor/body/docs.py +20 -0
  11. bluer_sbc/README/designs/anchor/docs.py +16 -0
  12. bluer_sbc/README/designs/anchor/items.py +10 -0
  13. bluer_sbc/README/designs/anchor/parts.py +54 -0
  14. bluer_sbc/README/designs/battery_bus/__init__.py +15 -0
  15. bluer_sbc/README/designs/battery_bus/body/docs.py +20 -0
  16. bluer_sbc/README/designs/battery_bus/body/li_ion.py +20 -0
  17. bluer_sbc/README/designs/battery_bus/body/sla.py +17 -0
  18. bluer_sbc/README/designs/battery_bus/docs.py +17 -0
  19. bluer_sbc/README/designs/battery_bus/items.py +17 -0
  20. bluer_sbc/README/designs/battery_bus/parts.py +19 -0
  21. bluer_sbc/README/designs/cheshmak/__init__.py +14 -0
  22. bluer_sbc/README/designs/cheshmak/body/docs.py +23 -0
  23. bluer_sbc/README/designs/cheshmak/body/v1.py +18 -0
  24. bluer_sbc/README/designs/cheshmak/docs.py +19 -0
  25. bluer_sbc/README/designs/cheshmak/items.py +10 -0
  26. bluer_sbc/README/designs/cheshmak/operation.py +5 -0
  27. bluer_sbc/README/designs/cheshmak/parts.py +28 -0
  28. bluer_sbc/README/designs/cheshmak/validations.py +14 -0
  29. bluer_sbc/README/designs/nafha.py +46 -3
  30. bluer_sbc/README/designs/pwm_generator.py +71 -0
  31. bluer_sbc/README/designs/regulated_bus.py +79 -0
  32. bluer_sbc/README/designs/shelter.py +42 -9
  33. bluer_sbc/README/designs/swallow/__init__.py +20 -0
  34. bluer_sbc/README/designs/swallow/consts.py +7 -0
  35. bluer_sbc/README/designs/swallow/docs.py +24 -0
  36. bluer_sbc/README/designs/swallow/history.py +34 -0
  37. bluer_sbc/{designs → README/designs}/swallow/parts.py +3 -2
  38. bluer_sbc/README/designs/swallow_head/__init__.py +22 -0
  39. bluer_sbc/README/designs/swallow_head/docs.py +24 -0
  40. bluer_sbc/README/designs/swallow_head/history.py +21 -0
  41. bluer_sbc/{designs → README/designs}/swallow_head/parts.py +11 -12
  42. bluer_sbc/README/designs/{x.py → template.py} +12 -0
  43. bluer_sbc/README/designs/ultrasonic_sensor_tester.py +8 -0
  44. bluer_sbc/README/parts.py +13 -1
  45. bluer_sbc/README/root.py +12 -6
  46. bluer_sbc/__init__.py +1 -1
  47. bluer_sbc/config.env +1 -1
  48. bluer_sbc/env.py +4 -0
  49. bluer_sbc/help/parts.py +33 -1
  50. bluer_sbc/parts/db.py +242 -13
  51. {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.319.1.dist-info}/METADATA +6 -5
  52. {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.319.1.dist-info}/RECORD +58 -32
  53. bluer_sbc/README/designs/battery_bus.py +0 -34
  54. bluer_sbc/README/designs/bryce.py +0 -20
  55. bluer_sbc/README/designs/cheshmak.py +0 -20
  56. bluer_sbc/README/designs/swallow.py +0 -21
  57. bluer_sbc/README/designs/swallow_head.py +0 -21
  58. bluer_sbc/designs/battery_bus/parts.py +0 -6
  59. bluer_sbc/designs/swallow_head/__init__.py +0 -0
  60. /bluer_sbc/{designs → README/designs/anchor/body}/__init__.py +0 -0
  61. /bluer_sbc/{designs/battery_bus → README/designs/battery_bus/body}/__init__.py +0 -0
  62. /bluer_sbc/{designs/swallow → README/designs/cheshmak/body}/__init__.py +0 -0
  63. {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.319.1.dist-info}/WHEEL +0 -0
  64. {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.319.1.dist-info}/licenses/LICENSE +0 -0
  65. {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.319.1.dist-info}/top_level.txt +0 -0
bluer_sbc/__init__.py CHANGED
@@ -4,7 +4,7 @@ ICON = "🌀"
4
4
 
5
5
  DESCRIPTION = f"{ICON} AI for single board computers and related designs."
6
6
 
7
- VERSION = "9.101.1"
7
+ VERSION = "9.319.1"
8
8
 
9
9
  REPO_NAME = "bluer-sbc"
10
10
 
bluer_sbc/config.env CHANGED
@@ -29,4 +29,4 @@ BLUER_SBC_SESSION_REBOOT_PERIOD=14400
29
29
  BLUER_SBC_SESSION_SCREEN_PERIOD=4
30
30
  BLUER_SBC_SESSION_TEMPERATURE_PERIOD=300
31
31
 
32
- BLUER_SBC_ENV=navigation
32
+ BLUER_SBC_ENV=navigation
bluer_sbc/env.py CHANGED
@@ -38,3 +38,7 @@ BLUER_SBC_SESSION_TEMPERATURE_PERIOD = get_env(
38
38
  BLUER_SBC_ENV = get_env("BLUER_SBC_ENV")
39
39
 
40
40
  BLUER_SBC_SWALLOW_HAS_STEERING = get_env("BLUER_SBC_SWALLOW_HAS_STEERING", 0)
41
+ BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD = get_env("BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD", 0)
42
+ BLUER_SBC_SWALLOW_HAS_BPS = get_env("BLUER_SBC_SWALLOW_HAS_BPS", 0)
43
+
44
+ BLUER_SBC_BPS_ANCHORED_AT = get_env("BLUER_SBC_BPS_ANCHORED_AT", "")
bluer_sbc/help/parts.py CHANGED
@@ -15,7 +15,7 @@ def help_cd(
15
15
  "parts",
16
16
  "cd",
17
17
  ],
18
- "cd to part images.",
18
+ "cd to part images folder.",
19
19
  mono=mono,
20
20
  )
21
21
 
@@ -43,7 +43,39 @@ def help_adjust(
43
43
  )
44
44
 
45
45
 
46
+ def help_edit(
47
+ tokens: List[str],
48
+ mono: bool,
49
+ ) -> str:
50
+ return show_usage(
51
+ [
52
+ "@sbc",
53
+ "parts",
54
+ "edit",
55
+ ],
56
+ "edit parts db.",
57
+ mono=mono,
58
+ )
59
+
60
+
61
+ def help_open(
62
+ tokens: List[str],
63
+ mono: bool,
64
+ ) -> str:
65
+ return show_usage(
66
+ [
67
+ "@sbc",
68
+ "parts",
69
+ "open",
70
+ ],
71
+ "open part images folder.",
72
+ mono=mono,
73
+ )
74
+
75
+
46
76
  help_functions = {
47
77
  "adjust": help_adjust,
48
78
  "cd": help_cd,
79
+ "edit": help_edit,
80
+ "open": help_open,
49
81
  }
bluer_sbc/parts/db.py CHANGED
@@ -70,23 +70,33 @@ db_of_parts["Polyfuse"] = Part(
70
70
  db_of_parts["rpi"] = Part(
71
71
  info=[
72
72
  "Raspberry Pi.",
73
- "3B+ is preferred and 4B is in progress 🔥",
73
+ "3B+/4B.",
74
74
  ],
75
75
  images=[
76
76
  "rpi3bplus.png",
77
77
  "gpio-pinout.png",
78
+ "rpi-measurements.png",
78
79
  ],
79
80
  )
80
81
 
81
82
  db_of_parts["SLA-Battery"] = Part(
82
83
  info=[
83
- "Rechargeable sealed lead acid battery, 12 V, 7 Ah",
84
+ "Rechargeable sealed lead acid battery",
84
85
  ],
85
86
  images=[
86
87
  "battery.png",
87
88
  ],
88
89
  )
89
90
 
91
+ db_of_parts["Li-Ion-Battery"] = Part(
92
+ info=[
93
+ "Li-Ion battery",
94
+ ],
95
+ images=[
96
+ "lithium-battery.jpg",
97
+ ],
98
+ )
99
+
90
100
  db_of_parts["TVS-diode"] = Part(
91
101
  info=[
92
102
  "TVS diode, unidirectional, 600 W, 6.8 V clamp, e.g. P6KE6.8A, DO-15 package",
@@ -98,7 +108,7 @@ db_of_parts["TVS-diode"] = Part(
98
108
 
99
109
  db_of_parts["XL4015"] = Part(
100
110
  info=[
101
- "XL4015: 12 VDC -> 5 VDC, 4A",
111
+ "XL4015: 8 - 36 VDC -> 1.25 - 32 VDC, 5A",
102
112
  "specs: [XL4015](https://www.handsontec.com/dataspecs/module/XL4015-5A-PS.pdf)",
103
113
  ],
104
114
  images=[
@@ -327,21 +337,22 @@ db_of_parts["1N4148"] = Part(
327
337
  ],
328
338
  )
329
339
 
330
- db_of_parts["40-inch-TV"] = Part(
340
+ db_of_parts["TV"] = Part(
331
341
  info=[
332
- "40 inch TV",
342
+ "TV",
333
343
  ],
334
344
  images=[
335
- "40-inch-TV.jpg",
345
+ "tv.jpg",
336
346
  ],
337
347
  )
338
348
 
339
- db_of_parts["power-station"] = Part(
349
+ db_of_parts["power-inverter"] = Part(
340
350
  info=[
341
- "power station.",
351
+ "power inverter, 12 VDC -> 220 VAC.",
352
+ "pure sine wave.",
342
353
  ],
343
354
  images=[
344
- "power-station.jpeg",
355
+ "power-inverter.jpg",
345
356
  ],
346
357
  )
347
358
 
@@ -354,18 +365,18 @@ db_of_parts["TV-bracket"] = Part(
354
365
  ],
355
366
  )
356
367
 
357
- db_of_parts["on-off-switch"] = Part(
368
+ db_of_parts["dc-switch"] = Part(
358
369
  info=[
359
- "on/off switch, 12V DC 10 A, with indicator led",
370
+ "on/off DC switch with indicator led",
360
371
  ],
361
372
  images=[
362
373
  "on-off-switch.png",
363
374
  ],
364
375
  )
365
376
 
366
- db_of_parts["charging-port"] = Part(
377
+ db_of_parts["dc-power-plug"] = Part(
367
378
  info=[
368
- "charging port",
379
+ "DC power plug, 5.5 mm",
369
380
  ],
370
381
  images=[
371
382
  "charging-port.jpg",
@@ -385,6 +396,15 @@ db_of_parts["dsn-vc288"] = Part(
385
396
  ],
386
397
  )
387
398
 
399
+ db_of_parts["dc-volt-meter"] = Part(
400
+ info=[
401
+ "DC volt meter",
402
+ ],
403
+ images=[
404
+ "dsn-vc288.jpg",
405
+ ],
406
+ )
407
+
388
408
  db_of_parts["nuts-bolts-spacers"] = Part(
389
409
  info=[
390
410
  "nuts, bolts, and spacers",
@@ -412,6 +432,15 @@ db_of_parts["white-terminal"] = Part(
412
432
  ],
413
433
  )
414
434
 
435
+ db_of_parts["green-terminal"] = Part(
436
+ info=[
437
+ "green terminal",
438
+ ],
439
+ images=[
440
+ "green-terminal.jpg",
441
+ ],
442
+ )
443
+
415
444
  db_of_parts["dupont-cables"] = Part(
416
445
  info=[
417
446
  "dupont cables, female to female",
@@ -500,6 +529,206 @@ db_of_parts["tb6612"] = Part(
500
529
  ],
501
530
  )
502
531
 
532
+ db_of_parts["small-dc-switch"] = Part(
533
+ info=[
534
+ "small on/off switch",
535
+ ],
536
+ images=[
537
+ "small-on-off-switch.jpg",
538
+ ],
539
+ )
540
+
541
+ db_of_parts["double-sided-tape"] = Part(
542
+ info=[
543
+ "double-sided tape.",
544
+ ],
545
+ images=[
546
+ "double-sided-tape.jpg",
547
+ ],
548
+ )
549
+
550
+ db_of_parts["electrical-tape"] = Part(
551
+ info=[
552
+ "electrical tape",
553
+ ],
554
+ images=[
555
+ "electrical-tape.jpg",
556
+ ],
557
+ )
558
+
559
+ db_of_parts["micro-usb-cable"] = Part(
560
+ info=[
561
+ "Micro USB cable",
562
+ ],
563
+ images=[
564
+ "micro-usb-cable.jpg",
565
+ ],
566
+ )
567
+
568
+ db_of_parts["dc-power-jack"] = Part(
569
+ info=[
570
+ "DC power jack, 5.5 mm",
571
+ ],
572
+ images=[
573
+ "charger-socket.jpg",
574
+ ],
575
+ )
576
+
577
+ db_of_parts["220VAC-dimmer"] = Part(
578
+ info=[
579
+ "220VAC dimmer",
580
+ ],
581
+ images=[
582
+ "220VAC-dimmer.jpeg",
583
+ ],
584
+ )
585
+
586
+ db_of_parts["resistance-heating-wire"] = Part(
587
+ info=[
588
+ "resistance heating wire",
589
+ ],
590
+ images=[
591
+ "resistance-heating-wire.jpg",
592
+ ],
593
+ )
594
+
595
+ db_of_parts["ceramic-terminal"] = Part(
596
+ info=[
597
+ "ceramic terminal",
598
+ ],
599
+ images=[
600
+ "ceramic-terminal.jpg",
601
+ ],
602
+ )
603
+
604
+ db_of_parts["mountable-digital-thermometer"] = Part(
605
+ info=[
606
+ "mountable digital thermometer",
607
+ ],
608
+ images=[
609
+ "mountable-digital-thermometer.jpeg",
610
+ ],
611
+ )
612
+
613
+ db_of_parts["pwm-manual-dc-motor-controller"] = Part(
614
+ info=[
615
+ "pwm manual DC motor controller, 12 V, ≥ 5 A",
616
+ ],
617
+ images=[
618
+ "pwm-manual-dc-motor-controller.jpg",
619
+ ],
620
+ )
621
+
622
+ db_of_parts["heater-element"] = Part(
623
+ info=[
624
+ "heater element",
625
+ ],
626
+ images=[
627
+ "heater-element.jpg",
628
+ ],
629
+ )
630
+
631
+ db_of_parts["sd-card-32-gb"] = Part(
632
+ info=[
633
+ "SD card, 32 GB",
634
+ ],
635
+ images=[
636
+ "sd-card-32-gb.jpg",
637
+ ],
638
+ )
639
+
640
+ db_of_parts["dc-fuse"] = Part(
641
+ info=[
642
+ "DC fuse, ANL or MIDI type",
643
+ ],
644
+ images=[
645
+ "dc-fuse.jpg",
646
+ ],
647
+ )
648
+
649
+ db_of_parts["mcb"] = Part(
650
+ info=[
651
+ "miniature circuit breaker (MCB)",
652
+ ],
653
+ images=[
654
+ "mcb-3.jpg",
655
+ ],
656
+ )
657
+
658
+ db_of_parts["dc-circuit-breaker"] = Part(
659
+ info=[
660
+ "DC circuit breaker",
661
+ ],
662
+ images=[
663
+ "mcb-3.jpg",
664
+ ],
665
+ )
666
+
667
+ db_of_parts["ac-switch"] = Part(
668
+ info=[
669
+ "AC switch",
670
+ ],
671
+ images=[
672
+ "ac-switch.jpg",
673
+ ],
674
+ )
675
+
676
+ db_of_parts["safety-fuse"] = Part(
677
+ info=[
678
+ "safety fuse",
679
+ "residual current device (RCD / GFCI)",
680
+ ],
681
+ images=[
682
+ "safety-fuse.jpg",
683
+ ],
684
+ )
685
+
686
+ db_of_parts["ac-volt-meter"] = Part(
687
+ info=[
688
+ "AC volt meter",
689
+ ],
690
+ images=[
691
+ "ac-volt-meter.jpg",
692
+ ],
693
+ )
694
+
695
+ db_of_parts["emergency-stop"] = Part(
696
+ info=[
697
+ "emergency stop switch",
698
+ ],
699
+ images=[
700
+ "emergency-stop.jpg",
701
+ ],
702
+ )
703
+
704
+ db_of_parts["power-adapter"] = Part(
705
+ info=[
706
+ "AC to DC power adapter",
707
+ ],
708
+ images=[
709
+ "power-adapter.jpg",
710
+ ],
711
+ )
712
+
713
+ db_of_parts["relay"] = Part(
714
+ info=[
715
+ "relay",
716
+ ],
717
+ images=[
718
+ "relay.jpg",
719
+ ],
720
+ )
721
+
722
+ db_of_parts["heavy-duty-pipe-clamp"] = Part(
723
+ info=[
724
+ "heavy duty pipe clamp",
725
+ ],
726
+ images=[
727
+ "heavy-duty-pipe-clamp.jpg",
728
+ ],
729
+ )
730
+
731
+
503
732
  db_of_parts["template"] = Part(
504
733
  info=[
505
734
  "template",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_sbc
3
- Version: 9.101.1
3
+ Version: 9.319.1
4
4
  Summary: 🌀 AI for single board computers and related designs.
5
5
  Home-page: https://github.com/kamangir/bluer-sbc
6
6
  Author: Arash Abadpour (Kamangir)
@@ -46,9 +46,10 @@ pip install bluer_sbc
46
46
 
47
47
  | | | |
48
48
  | --- | --- | --- |
49
- | [`swallow head`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow-head.md) [![image](https://github.com/kamangir/assets2/blob/main/swallow/design/head-v1/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow-head.md) | [`swallow`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow.md) [![image](https://github.com/kamangir/assets2/blob/main/swallow/design/v5/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow.md) | [`battery bus`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/battery-bus.md) [![image](https://github.com/kamangir/assets2/raw/main/battery-bus/20251007_221902.jpg)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/battery-bus.md) |
50
- | [`ultrasonic-sensor-tester`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/ultrasonic-sensor-tester.md) [![image](https://github.com/kamangir/assets2/blob/main/ultrasonic-sensor-tester/00.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/ultrasonic-sensor-tester.md) | [`bryce`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bryce.md) [![image](https://github.com/kamangir/assets2/blob/main/bryce/08.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bryce.md) | [`cheshmak`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/cheshmak.md) [![image](https://github.com/kamangir/assets2/blob/main/cheshmak/01.png?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/cheshmak.md) |
51
- | [`nafha`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/nafha.md) [![image](https://github.com/kamangir/assets2/blob/main/nafha/01.png?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/nafha.md) | [`shelter`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/shelter.md) [![image](https://github.com/kamangir/assets2/raw/main/shelter/20251006_181554.jpg)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/shelter.md) | [`blue3`](https://github.com/kamangir/blue-bracket/blob/main/designs/blue3.md) [![image](https://github.com/kamangir/blue-bracket/raw/main/images/blue3-1.jpg)](https://github.com/kamangir/blue-bracket/blob/main/designs/blue3.md) |
49
+ | [`swallow head`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow-head) [![image](https://github.com/kamangir/assets2/blob/main/swallow/design/head-v2/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow-head) | [`swallow`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow) [![image](https://github.com/kamangir/assets2/blob/main/swallow/design/v6/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow) | [`anchor`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/anchor) [![image](https://github.com/kamangir/assets2/blob/main/anchor/20251204_144037.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/anchor) |
50
+ | [`pwm generator`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/pwm-generator.md) [![image](https://github.com/kamangir/assets2/raw/main/pwm-generator/20251116_125132.jpg)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/pwm-generator.md) | [`regulated bus`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/regulated-bus.md) [![image](https://github.com/kamangir/assets2/raw/main/regulated-bus/20251113_113332.jpg)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/regulated-bus.md) | [`battery bus`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/battery_bus) [![image](https://github.com/kamangir/assets2/blob/main/battery-bus/20251007_221902.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/battery_bus) |
51
+ | [`adapter bus`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/adapter-bus.md) [![image](https://github.com/kamangir/assets2/raw/main/adapter-bus/20251017_222911.jpg)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/adapter-bus.md) | [`ultrasonic-sensor-tester`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/ultrasonic-sensor-tester.md) [![image](https://github.com/kamangir/assets2/blob/main/ultrasonic-sensor-tester/00.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/ultrasonic-sensor-tester.md) | [`cheshmak`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/cheshmak) [![image](https://github.com/kamangir/assets2/blob/main/cheshmak/20251203_190131.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/cheshmak) |
52
+ | [`nafha`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/nafha) [![image](https://github.com/kamangir/assets2/blob/main/nafha/20251116_224456.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/nafha) | [`shelter`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/shelter) [![image](https://github.com/kamangir/assets2/raw/main/shelter/20251104_000755.jpg)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/shelter) | [`blue3`](https://github.com/kamangir/blue-bracket/blob/main/designs/blue3.md) [![image](https://github.com/kamangir/blue-bracket/raw/main/images/blue3-1.jpg)](https://github.com/kamangir/blue-bracket/blob/main/designs/blue3.md) |
52
53
  | [`chenar-grove`](https://github.com/kamangir/blue-bracket/blob/main/designs/chenar-grove.md) [![image](https://github.com/kamangir/blue-bracket/raw/main/images/chenar-grove-1.jpg)](https://github.com/kamangir/blue-bracket/blob/main/designs/chenar-grove.md) | [`cube`](https://github.com/kamangir/blue-bracket/blob/main/designs/cube.md) [![image](https://github.com/kamangir/blue-bracket/raw/main/images/cube-1.jpg)](https://github.com/kamangir/blue-bracket/blob/main/designs/cube.md) | [`eye_nano`](https://github.com/kamangir/blue-bracket/blob/main/designs/eye_nano.md) [![image](https://github.com/kamangir/blue-bracket/raw/main/images/eye_nano-1.jpg)](https://github.com/kamangir/blue-bracket/blob/main/designs/eye_nano.md) |
53
54
 
54
55
  ## shortcuts
@@ -66,7 +67,7 @@ pip install bluer_sbc
66
67
 
67
68
  [![pylint](https://github.com/kamangir/bluer-sbc/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-sbc/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-sbc/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-sbc/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-sbc/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-sbc/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-sbc.svg)](https://pypi.org/project/bluer-sbc/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-sbc)](https://pypistats.org/packages/bluer-sbc)
68
69
 
69
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_sbc-9.101.1`](https://github.com/kamangir/bluer-sbc).
70
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_sbc-9.319.1`](https://github.com/kamangir/bluer-sbc).
70
71
 
71
72
 
72
73
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -1,7 +1,7 @@
1
- bluer_sbc/__init__.py,sha256=LQHGDUv7yGAKF-uggshpSh59ZMXp58D9k_O9TCCfF5M,312
1
+ bluer_sbc/__init__.py,sha256=LR5x48iNvF_FvGNODe06yv5UZFyazxBPxRPaKNVosLc,312
2
2
  bluer_sbc/__main__.py,sha256=mdHwITYb7ypMkevZnEBqFO-S4MYkdrTfbS8ZYTd5MBM,374
3
- bluer_sbc/config.env,sha256=Lp91dQZrPDtMO-87-pAw1wOqLMIYEI1MlNrXhvKMaoE,706
4
- bluer_sbc/env.py,sha256=saEjdk3FHmuK-WQUUpKfOatwmE93Y2Ula3rtGhRm0Zw,1745
3
+ bluer_sbc/config.env,sha256=kPRvRowaTxEusZE66ME0asy4_cngYh2xcQlFvixvS5I,705
4
+ bluer_sbc/env.py,sha256=Bc8Wjz9e2E2Zv6-POjqil4dgjXAKkeMZh3DoKRw2HlE,1971
5
5
  bluer_sbc/host.py,sha256=RacmqxPRBQrL--JHx_Q-KyuEjEZ1kSFu4fa5pCA0CHQ,209
6
6
  bluer_sbc/logger.py,sha256=4euXgNprDpQSuR45RXy0kWQ1LvCL_dwOi2v37hVBWvk,99
7
7
  bluer_sbc/sample.env,sha256=mX86TGaZvbbGKbiXQdInSBu7sVvLs2IzqYaHNVl0g5M,50
@@ -29,50 +29,76 @@ bluer_sbc/.abcli/install/sparkfun_top_phat.sh,sha256=3kOMZXBafLm2RqHXXgTx2Ez5WwY
29
29
  bluer_sbc/.abcli/install/template.sh,sha256=Qqj6JKZlaxAqUGbY88gkNn-v-_aTUtKzpyi-lw353aY,215
30
30
  bluer_sbc/.abcli/install/unicorn_16x16.sh,sha256=zt6VN6c6cLQ59m7GiUNdV7aPTfO8CRoYtSs4VIuEJFw,496
31
31
  bluer_sbc/.abcli/rpi/fake_display.sh,sha256=3GWrqk8Dqwtg_ufDBDQzBilk7bi_Y_4_aw7-v6IJGDI,420
32
- bluer_sbc/.abcli/sbc/parts.sh,sha256=euN-L3Gp1m_RUA8X2hkdTKwvWHPVC2hTQejdLsEhaxg,311
32
+ bluer_sbc/.abcli/sbc/parts.sh,sha256=e94SvGh5GDJw2uFpbol-NEDdyjqGeu0juiWu2Fs-mbI,319
33
33
  bluer_sbc/.abcli/sbc/parts/adjust.sh,sha256=2vDjnPUZxwHMjc4drtdJjXM3yABMUM054LPjEXCPeHE,374
34
34
  bluer_sbc/.abcli/sbc/parts/cd.sh,sha256=0XUPReFBcX7Xj-JUR_dmQMh4L4RkfSx8bDGBBHDS92Y,103
35
+ bluer_sbc/.abcli/sbc/parts/edit.sh,sha256=f4CmineRtoWV3kUYNPUm_sc1QVeqmclCi1h5XGddNTI,124
36
+ bluer_sbc/.abcli/sbc/parts/open.sh,sha256=a7iJsnY5qS33qFa8aWlpAp4nWBwbauiyB0jFrMEAXJk,107
35
37
  bluer_sbc/.abcli/seed/headless_rpi.sh,sha256=Sen1-Spg6lvBAzAqacLw42iJgME-v3yVs5T1qMuSO6c,2298
36
38
  bluer_sbc/.abcli/seed/headless_rpi_64_bit.sh,sha256=1DzrVSSNIvKLW8J1fI7Iqepk1cB2fvHpvez3EW-Dscw,1363
37
39
  bluer_sbc/.abcli/seed/headless_ubuntu_rpi.sh,sha256=QQRkOLstdWequW4eutQPimhKwT1yHtHNRUJNhKN3FZ0,2512
38
40
  bluer_sbc/.abcli/seed/jetson.sh,sha256=QAvc-6aQwZ5oEhV5oruGfyFUwftsrPnO_d_7ryRQRkk,971
39
41
  bluer_sbc/.abcli/seed/rpi.sh,sha256=HzCcPnuC2DneMtiHawD6tjcgLuyCstljl-A90kmpDeg,968
42
+ bluer_sbc/.abcli/seed/rpi_64_bit.sh,sha256=i-RnFmKj1HJbUTml2U41YRNg-ItDFChhAv8dGYb0fxU,1231
40
43
  bluer_sbc/.abcli/seed/swallow_raspbian.sh,sha256=QK9YSkLA0_j5D_r8cp5DENLKhnczUj4a40O4w68ER98,363
41
44
  bluer_sbc/.abcli/tests/README.sh,sha256=0hp3y_URdsFtnYw5Ujty6xy5SNhNHGEVPqpQoYxu0WA,142
42
45
  bluer_sbc/.abcli/tests/camera.sh,sha256=NRr-RbyNORMSHYxNu6VUpVzHIJ2Qy-5NQr2qh54kqUg,1013
43
- bluer_sbc/.abcli/tests/help.sh,sha256=aPok1fm9G1kIfu9tWJLltqVukygMhj1PIvWCSx0P6lw,1513
46
+ bluer_sbc/.abcli/tests/help.sh,sha256=HOpgiVOXyOm2gC2PHjP5_EtDKXBeZOeLb6hAuesE53E,1569
44
47
  bluer_sbc/.abcli/tests/parts_adjust.sh,sha256=VlmhDmqnPSM6ad6uZ1zp70CLNe-jRIxUngVov9MtPG4,249
45
48
  bluer_sbc/.abcli/tests/seed.sh,sha256=NQUQzgHQZITgaq2aFkiZkaLT0VKmIsrl3aTqSkr8670,392
46
49
  bluer_sbc/.abcli/tests/version.sh,sha256=odDOmAFlzH7KtsAYWOmyLsQ6GAws6XadNlZ6H-NZuzc,147
47
50
  bluer_sbc/README/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
51
  bluer_sbc/README/aliases.py,sha256=jv6YlFBk7Bn72MEutmZ6UpELpLQs_i3_3Rm8BlPMc5g,161
49
52
  bluer_sbc/README/build.py,sha256=42pCUarnbdwxuWci1GnCSWMtkt5P-zbiyHRd6ItVMqc,862
50
- bluer_sbc/README/design.py,sha256=gktc7rLWf32XXCVBSJyoVeC3mrGPzPnLDJsVZklCEik,794
51
- bluer_sbc/README/parts.py,sha256=pIF2dzEuXeBi_M8dPEg2GM9dpAgL3EzKgvm0KwrmQFU,382
52
- bluer_sbc/README/root.py,sha256=A8mjA2vqMhUMCef6JfF_Pg9-p6fAQRRvOP9HRggohPA,1180
53
+ bluer_sbc/README/design.py,sha256=DFTn1xkfRn1z8NR_UzJTxdRvoP2dzcB-WK8QkiJ53zc,1202
54
+ bluer_sbc/README/parts.py,sha256=RexP6RRCt2w8Lg8e-_QwP70RzyPyc-AKAycpeK9m5r4,731
55
+ bluer_sbc/README/root.py,sha256=1XWxILU2W5ZZu-40Qhd8DXG8WyyWJjGxNmUc6Yb3JS8,1525
53
56
  bluer_sbc/README/shortcuts.py,sha256=Pu7e83Vpz9mZv717jzOluJnGXwo22bUJPZ122NPjUpM,390
54
- bluer_sbc/README/designs/__init__.py,sha256=pgiqjy3TnqTvhMGvepRR--G9gyDNhCQhec8cwzNeHr8,1860
55
- bluer_sbc/README/designs/battery_bus.py,sha256=-neRjUhQO3hh_XjGR11tbnye6gYaBdBkL0sHLLXQIyg,960
57
+ bluer_sbc/README/designs/__init__.py,sha256=9ZxqlRwxIP7k_9zFVb7NlodyMo7KqDDLXHHRQ8KDqUY,767
58
+ bluer_sbc/README/designs/adapter_bus.py,sha256=HKG0OS65hGn_WyILl5AulWLxqiCORWSmKtKJybAMO1s,1207
56
59
  bluer_sbc/README/designs/blue_bracket.py,sha256=4p80wXEAbn4y7jXrTqK1KFrtcQYJ3zdeBiDWR8E4aCI,866
57
- bluer_sbc/README/designs/bryce.py,sha256=9mfOoMy9Rk1AITj480CoLYdgzWNraAwwypc5kVpEB_Q,474
58
- bluer_sbc/README/designs/cheshmak.py,sha256=fG0zRc6vVm5Nj07Juq13PPGp0ZUWyLqA9-nAUpnzr1Q,483
59
60
  bluer_sbc/README/designs/consts.py,sha256=de1X1_0CESgSGYUI8dGh8RBoYtu_G3NrBsFvuSdHJWk,59
60
- bluer_sbc/README/designs/nafha.py,sha256=7IOfF_bfWaPNeV-VEXjsXjkydxJKlRTQX6rEOAtmSSc,474
61
- bluer_sbc/README/designs/shelter.py,sha256=uFmhEvXMRBmwE0zXdb37xWt8FnayXijZgfLX2_soxhc,853
62
- bluer_sbc/README/designs/swallow.py,sha256=jyl_oJNsTcBGzDLDAYRt-Vi-YmuuEt3iSCNTxaUKRXI,491
63
- bluer_sbc/README/designs/swallow_head.py,sha256=dDGTjEbTiELTPQxGZ7fJeq2F9fJpGg-umP8fz7bZlBg,506
64
- bluer_sbc/README/designs/ultrasonic_sensor_tester.py,sha256=fljUikScYa9Y2tcMs7QRwYbUd-NA59Pc7IQtyZyA2w0,524
65
- bluer_sbc/README/designs/x.py,sha256=1AmuFV4WmVwE8lwZMn_juwFSlwC2VHVgcDbkCdAt_FM,474
61
+ bluer_sbc/README/designs/nafha.py,sha256=7nDo5yX80Wj8R3CIXk3HrELTKY-JBJuhlvvpTyjTHa8,1542
62
+ bluer_sbc/README/designs/pwm_generator.py,sha256=EIwhSus2Qge2SIWYpzWS23DtmEfgcnl0LrmKUk8YXno,1537
63
+ bluer_sbc/README/designs/regulated_bus.py,sha256=ufGdjpHzcPauvzxS5Pd5uVxNjFwPZUhgFbJ5hPsssAU,1812
64
+ bluer_sbc/README/designs/shelter.py,sha256=NoVDr96LEYTlhnF6kHF49WzEr7eDAJYzpY0oOEmxO80,1608
65
+ bluer_sbc/README/designs/template.py,sha256=SY7PjPf219TDGyhwzHGtF67cylhNl4zJKqWqAfVu57U,618
66
+ bluer_sbc/README/designs/ultrasonic_sensor_tester.py,sha256=8LOGpQ61zbiO5a4kutY5uMfZHLRz9SBKUacyx2MdpjA,656
67
+ bluer_sbc/README/designs/anchor/__init__.py,sha256=40d6p9iYHanWaCbMeZYYOppcDoL-iWCNGCNo6EiCERI,339
68
+ bluer_sbc/README/designs/anchor/docs.py,sha256=fNls-WTe_lyDrs-dvjaosAprOuRnqh8CcrLE5fWqHSg,372
69
+ bluer_sbc/README/designs/anchor/items.py,sha256=9AQEiQX2UAW9C1WDRU9VIB4Yn2hFBqCcvW0H3ChdNuo,248
70
+ bluer_sbc/README/designs/anchor/parts.py,sha256=7KmmgJW09Ybur14UXKG1lOxeOat3LxG0jAWAfLDu-6U,1516
71
+ bluer_sbc/README/designs/anchor/body/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ bluer_sbc/README/designs/anchor/body/docs.py,sha256=UwfQNu47N63Hwr-QHikv7L7tD0iisPyw7Bdv9yMHld8,703
73
+ bluer_sbc/README/designs/battery_bus/__init__.py,sha256=uLy3pL2nfoTbXbOQ09JzmRqB0OR0SGhwi8Sc4WZBi8I,354
74
+ bluer_sbc/README/designs/battery_bus/docs.py,sha256=yt2zQAxMZR2Z65pfMCyQ_i97gtg34xVuloZd6Dg-inw,412
75
+ bluer_sbc/README/designs/battery_bus/items.py,sha256=nd0cpuFmiApltffmgjclRINmNoRb22pi863oz_y218M,567
76
+ bluer_sbc/README/designs/battery_bus/parts.py,sha256=53fGhkmXWLnHusN9diGV2hRsqu62Ff7DIFQ_87lPdLo,441
77
+ bluer_sbc/README/designs/battery_bus/body/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ bluer_sbc/README/designs/battery_bus/body/docs.py,sha256=xyR7DDgn6N1InTcXDyWZVAR_5GsBp-I9b1Uty5C8Oo0,557
79
+ bluer_sbc/README/designs/battery_bus/body/li_ion.py,sha256=44lPEWekFbs-MHYo-1T5aTpEymxBuF7rWzvLyv4VtH4,772
80
+ bluer_sbc/README/designs/battery_bus/body/sla.py,sha256=7MQBj_SVn1Gudk06AMfAdvuVqjAkqe32b9aoZZt-PCs,522
81
+ bluer_sbc/README/designs/cheshmak/__init__.py,sha256=AMGmNme9JVC3IGR4FMzZHak353FuXWmP6O6nTHV-DEo,344
82
+ bluer_sbc/README/designs/cheshmak/docs.py,sha256=HdLLdsf2mXJKpCvTE_NW0WNObJi6-DWRaOOmZqHjYRg,450
83
+ bluer_sbc/README/designs/cheshmak/items.py,sha256=HwlJAyCyy1Le2RYGDYC5yJpdEKsH6APF84H9iXffLug,250
84
+ bluer_sbc/README/designs/cheshmak/operation.py,sha256=Q3Lz8GM7eDOf0dzwNLuOg4aYwHBM27dI-X1xjnpaFoM,73
85
+ bluer_sbc/README/designs/cheshmak/parts.py,sha256=R3cWvtFlKyvtoLP2FDV0yDZVlRL0W0rOKxi1sopEQL4,572
86
+ bluer_sbc/README/designs/cheshmak/validations.py,sha256=iaHMNBGHSBP0Gj-tRl2i04ZBskTcGjO_-XPMnpxIsgg,304
87
+ bluer_sbc/README/designs/cheshmak/body/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ bluer_sbc/README/designs/cheshmak/body/docs.py,sha256=WHqs38cfZs_KeA8fEswCj6Q31AhF1saq-eQnqnUtEYk,903
89
+ bluer_sbc/README/designs/cheshmak/body/v1.py,sha256=2BT9YYUaH9It8M3TfNoaBtTFGH0zkfehqBgIPcSZChw,408
90
+ bluer_sbc/README/designs/swallow/__init__.py,sha256=CGgNyVl6Y8n9lpMUuA3Yh5ztCxMjsq8WQ5mFRFX7-Gg,428
91
+ bluer_sbc/README/designs/swallow/consts.py,sha256=-XfSD6sL9-q5wtdhNAgBvg7oGrSxZ8QrD5pRSkMYYfA,114
92
+ bluer_sbc/README/designs/swallow/docs.py,sha256=N43-brqcTBeieVZ4cy-augww1-UW3SdQQFBu2MRVWt8,623
93
+ bluer_sbc/README/designs/swallow/history.py,sha256=GyGpiNTE88_Osp-9IR4gb7-yncbrY02uG2vMgkT7Dvk,941
94
+ bluer_sbc/README/designs/swallow/parts.py,sha256=MLBuqRQqePLUMGUvXToOOKlZTlD2oyg-ILCgs5E3spM,385
95
+ bluer_sbc/README/designs/swallow_head/__init__.py,sha256=yXB9BpQr1arDM6u8jNj4q9fqZ8OQHObAsMa8yZK1vxs,494
96
+ bluer_sbc/README/designs/swallow_head/docs.py,sha256=fVNfek65J2bb8QkLjnSyAYs7l_5yHK4QVzIiRrKgMM4,648
97
+ bluer_sbc/README/designs/swallow_head/history.py,sha256=P5_Xk8RSt6Oa5QbThD0b-oVWM9VR38vukVL1zApfXEc,578
98
+ bluer_sbc/README/designs/swallow_head/parts.py,sha256=ubRAja-oXYqXJn2EBDKUN-OZmncKRRFe9HkSFziUHEA,1653
66
99
  bluer_sbc/ROS/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
67
100
  bluer_sbc/algo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
101
  bluer_sbc/algo/diff.py,sha256=ZCUkRgip-Uss86r--RuEwyYtFjpukM3fbY_yovXwgNw,2190
69
- bluer_sbc/designs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- bluer_sbc/designs/battery_bus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- bluer_sbc/designs/battery_bus/parts.py,sha256=nmstgbDftDUE5N4HS4x7RE_QSKUdHVm1ieNlwtL1tb4,114
72
- bluer_sbc/designs/swallow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- bluer_sbc/designs/swallow/parts.py,sha256=MDp3AKD6D5Bn2S35BcF2iRov9gqvuRk_luX1r6s64cg,364
74
- bluer_sbc/designs/swallow_head/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- bluer_sbc/designs/swallow_head/parts.py,sha256=b1gi1B-923emUCobDmAkWQgqNFiili3F5YsE40Hj_o4,1686
76
102
  bluer_sbc/hardware/__init__.py,sha256=EW_u4fRXPVpAO47EaLZn0Vxo_rfE9a1O4cPdl_w6vOI,1421
77
103
  bluer_sbc/hardware/adafruit_rgb_matrix.py,sha256=4xFRghBXJWkDDOhPvO-Yt6xY61D451KKxjrUL8ZxXQ8,803
78
104
  bluer_sbc/hardware/display.py,sha256=bRjemItjmF3tJcWxP3e2lVB5Ul8br3_3PcJhfrBT7mY,3057
@@ -96,7 +122,7 @@ bluer_sbc/help/functions.py,sha256=NxyBTbAHvx8-HM8B5JdYAjKfRinB7U1TDrmim5ZDctA,1
96
122
  bluer_sbc/help/grove.py,sha256=4CM3_RUeu6hMr1zmkz4f-V7Mzb75vcYv0dfoQKw2KJI,1026
97
123
  bluer_sbc/help/hat.py,sha256=fhiEFoWYolmh-loZ87fYghEJK-XLUpkUc4pDj2WWdAE,885
98
124
  bluer_sbc/help/lepton.py,sha256=NNJY9f1gkZCD7fGf0chFjncbLOSpb79VLyZ2jxj4rG4,618
99
- bluer_sbc/help/parts.py,sha256=716RvodYiopbjxO1j2P613VklHL-r2z-YzJzx2C4C0k,763
125
+ bluer_sbc/help/parts.py,sha256=_WhWl9TAX84qKITZI7yGaFV4WrS7rBlcO5zf6wFA6sE,1270
100
126
  bluer_sbc/help/rpi.py,sha256=ZD1iOaG0af01wHVFuPBFo0HsDqC7lzNGgxCyxsyUKBs,457
101
127
  bluer_sbc/help/scroll_phat_hd.py,sha256=pLMIGMKIzRgN2LcNjIPNQiJ0mIowKjxkBhS40PIst1c,374
102
128
  bluer_sbc/help/sparkfun_top_phat.py,sha256=4JQMqzapnx5PBtzfw8RqpqgXtnF0HqDWxuTssK0OHUo,445
@@ -116,15 +142,15 @@ bluer_sbc/imager/lepton/python2.py,sha256=1jAHHzmda_bmqKj0b0X-2KONW5s9umxKaTY4Zi
116
142
  bluer_sbc/parts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
143
  bluer_sbc/parts/__main__.py,sha256=8gIFylyfCv35e3VOlt0LY_K4oCMdmW9OFkj54bFab9k,903
118
144
  bluer_sbc/parts/consts.py,sha256=UIld-5czxqoAtMTeTZM4LQZXC-CXU53LVmVzFekZLJQ,98
119
- bluer_sbc/parts/db.py,sha256=zEBPGkxtKRX-6Dnb9DZWO3ERUi2d_awZWmjhMsiWQPY,11791
145
+ bluer_sbc/parts/db.py,sha256=vHDwJvAjcfnbZt6gxgpSt09gfQrTJC7EzJEBTnuNfjY,15366
120
146
  bluer_sbc/parts/classes/db.py,sha256=Yij--zP566wBpXFoKWsGQddrM28otTVvoez-4Qj2Rtg,6551
121
147
  bluer_sbc/parts/classes/part.py,sha256=tKXjipFRwu0-Gc53VXivwaeqhyYr9uunG6EUzcdr_x8,2181
122
148
  bluer_sbc/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
149
  bluer_sbc/session/__main__.py,sha256=O2Tv6HgE8Bos7ASIViYludpWVi6EEc9XRoP8jYC2-2Q,534
124
150
  bluer_sbc/session/classes.py,sha256=6pEh-TBjekUZBbWj_zKh3LAntAoGfcMHtS2SJ77nyC8,9355
125
151
  bluer_sbc/session/functions.py,sha256=eRJKSczRjKn3Fo2jv8_4EMAZwfJBj5cIPg2WqHkC2Q8,481
126
- bluer_sbc-9.101.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
127
- bluer_sbc-9.101.1.dist-info/METADATA,sha256=dv4cn4SXwes4Ene3rwnOO-FVLH0NDwGxrQ4ynoW7wxY,5748
128
- bluer_sbc-9.101.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
129
- bluer_sbc-9.101.1.dist-info/top_level.txt,sha256=DsLDHFiTeAj2mctGVmCSgWUhzCznWSQoUmQ1VyEmnT0,10
130
- bluer_sbc-9.101.1.dist-info/RECORD,,
152
+ bluer_sbc-9.319.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
153
+ bluer_sbc-9.319.1.dist-info/METADATA,sha256=GfGJcOn3Alg_05oZdyaDoVm2X6zBaLuHxeLGmJ6Xny8,6575
154
+ bluer_sbc-9.319.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
155
+ bluer_sbc-9.319.1.dist-info/top_level.txt,sha256=DsLDHFiTeAj2mctGVmCSgWUhzCznWSQoUmQ1VyEmnT0,10
156
+ bluer_sbc-9.319.1.dist-info/RECORD,,
@@ -1,34 +0,0 @@
1
- from bluer_objects import README
2
- from bluer_objects.README.items import ImageItems
3
- from bluer_objects.README.consts import assets_url
4
- from bluer_objects.README.consts import designs_url
5
-
6
- assets2_battery_bus = assets_url(
7
- suffix="battery-bus",
8
- volume=2,
9
- )
10
-
11
- marquee = README.Items(
12
- [
13
- {
14
- "name": "battery bus",
15
- "marquee": f"{assets2_battery_bus}/20251007_221902.jpg",
16
- "url": "./bluer_sbc/docs/battery-bus.md",
17
- }
18
- ]
19
- )
20
-
21
- items = ImageItems(
22
- {
23
- f"{assets2_battery_bus}/concept.png": "",
24
- designs_url(
25
- "battery-bus/electrical/wiring.png?raw=true",
26
- ): designs_url(
27
- "battery-bus/electrical/wiring.svg",
28
- ),
29
- f"{assets2_battery_bus}/20251007_221902.jpg": "",
30
- f"{assets2_battery_bus}/20251007_220642.jpg": "",
31
- f"{assets2_battery_bus}/20251007_220520.jpg": "",
32
- f"{assets2_battery_bus}/20251007_220601.jpg": "",
33
- }
34
- )
@@ -1,20 +0,0 @@
1
- from bluer_objects import README
2
- from bluer_objects.README.items import ImageItems
3
-
4
- from bluer_sbc.README.designs.consts import assets2
5
-
6
- image_template = assets2 + "bryce/{}?raw=true"
7
-
8
- marquee = README.Items(
9
- [
10
- {
11
- "name": "bryce",
12
- "marquee": image_template.format("08.jpg"),
13
- "url": "./bluer_sbc/docs/bryce.md",
14
- }
15
- ]
16
- )
17
-
18
- items = ImageItems(
19
- {image_template.format(f"{index+1:02}.jpg"): "" for index in range(9)}
20
- )