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
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function bluer_sbc_parts_edit() {
4
+ bluer_ai_code $abcli_path_git/bluer-sbc/bluer_sbc/parts/db.py
5
+ }
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function bluer_sbc_parts_open() {
4
+ open $abcli_path_git/assets2/bluer-sbc/parts
5
+ }
@@ -1,7 +1,7 @@
1
1
  #! /usr/bin/env bash
2
2
 
3
3
  function bluer_sbc_parts() {
4
- local task=$1
4
+ local task=${1:-open}
5
5
 
6
6
  local function_name=bluer_sbc_parts_$task
7
7
  if [[ $(type -t $function_name) == "function" ]]; then
@@ -0,0 +1,36 @@
1
+ #! /usr/bin/env bash
2
+
3
+ # internal function to bluer_ai_seed.
4
+ # seed is NOT local
5
+ function bluer_ai_seed_rpi_64_bit() {
6
+ bluer_ai_seed add_kaggle
7
+
8
+ bluer_ai_seed add_ssh_key sudo
9
+
10
+ seed="${seed}sudo apt-get --yes --force-yes install git$delim_section"
11
+
12
+ bluer_ai_seed add_repo
13
+
14
+ bluer_ai_seed add_bluer_ai_env_ssp
15
+
16
+ local ssp="--break-system-packages"
17
+
18
+ seed="${seed}sudo apt update$delim"
19
+ seed="${seed}sudo apt install -y python3-pip mpv vlc-bin$delim"
20
+ seed="${seed}pip3 install $ssp -e .$delim_section"
21
+
22
+ bluer_ai_seed add_repo repo=bluer-objects
23
+ seed="${seed}pip3 install $ssp -e .$delim_section"
24
+ seed="${seed}$(bluer_ai_seed add_file $abcli_path_git/bluer-objects/.env \$HOME/git/bluer-objects/.env)$delim_section"
25
+
26
+ bluer_ai_seed add_repo repo=bluer-sbc
27
+ seed="${seed}pip3 install $ssp -e .$delim_section"
28
+
29
+ seed="${seed}pip3 install $ssp opencv-python$delim"
30
+ seed="${seed}sudo apt install -y python3-picamera2$delim"
31
+ seed="${seed}pip3 install --force-reinstall --no-cache-dir simplejpeg$delim"
32
+ seed="${seed}pip3 install $ssp evdev$delim_section"
33
+
34
+ seed="${seed}cd; cd git; cd bluer-ai$delim"
35
+ seed="${seed}source ./bluer_ai/.abcli/bluer_ai.sh$delim_section"
36
+ }
@@ -28,6 +28,8 @@ function test_bluer_sbc_help() {
28
28
  "@sbc parts" \
29
29
  "@sbc parts adjust" \
30
30
  "@sbc parts cd" \
31
+ "@sbc parts edit" \
32
+ "@sbc parts open" \
31
33
  \
32
34
  "@sbc pypi" \
33
35
  "@sbc pypi browse" \
@@ -1,36 +1,52 @@
1
- from typing import List, Dict
1
+ from typing import Dict, List, Any
2
2
 
3
3
  from bluer_objects import markdown
4
4
 
5
5
  from bluer_sbc.parts.db import db_of_parts
6
6
 
7
7
 
8
- def design(
9
- items: List[str],
8
+ def design_doc(
9
+ design_name: str,
10
+ items: List[str] = [],
10
11
  dict_of_parts: Dict = {},
11
- macros: Dict = {},
12
- ) -> Dict:
13
- output = {
12
+ macros: Dict[str, Dict] = {},
13
+ own_folder: bool = False,
14
+ parts_reference: str = "./parts",
15
+ cols: int = 3,
16
+ ) -> Dict[str, Any]:
17
+ macros_ = {}
18
+ if dict_of_parts:
19
+ macros_ = design_doc_parts(
20
+ dict_of_parts,
21
+ parts_reference,
22
+ )
23
+
24
+ macros_.update(macros)
25
+
26
+ return {
27
+ "path": "../docs/{}{}".format(design_name, "" if own_folder else ".md"),
28
+ "cols": cols,
14
29
  "items": items,
30
+ "macros": macros_,
15
31
  }
16
32
 
17
- if dict_of_parts:
18
- output["macros"] = {
19
- "parts_images:::": markdown.generate_table(
20
- db_of_parts.as_images(
21
- dict_of_parts,
22
- reference="./parts",
23
- ),
24
- cols=10,
25
- log=False,
26
- ),
27
- "parts_list:::": db_of_parts.as_list(
33
+
34
+ def design_doc_parts(
35
+ dict_of_parts: Dict,
36
+ parts_reference: str = "./parts",
37
+ ) -> Dict[str, Dict]:
38
+ return {
39
+ "parts_images:::": markdown.generate_table(
40
+ db_of_parts.as_images(
28
41
  dict_of_parts,
29
- reference="./parts",
30
- log=False,
42
+ reference=parts_reference,
31
43
  ),
32
- }
33
-
34
- output["macros"].update(macros)
35
-
36
- return output
44
+ cols=10,
45
+ log=False,
46
+ ),
47
+ "parts_list:::": db_of_parts.as_list(
48
+ dict_of_parts,
49
+ reference=parts_reference,
50
+ log=False,
51
+ ),
52
+ }
@@ -1,56 +1,30 @@
1
- from bluer_sbc.README.design import design
2
- from bluer_sbc.README.designs.cheshmak import items as cheshmak_items
3
- from bluer_sbc.README.designs.battery_bus import items as battery_bus_items
4
- from bluer_sbc.README.designs.swallow import items as swallow_items
5
- from bluer_sbc.README.designs.swallow_head import items as swallow_head_items
6
- from bluer_sbc.README.designs.bryce import items as bryce_items
7
- from bluer_sbc.README.designs.nafha import items as nafha_items
8
- from bluer_sbc.README.designs.shelter import items as shelter_items
9
- from bluer_sbc.README.designs.x import items as x_items
10
- from bluer_sbc.README.designs.ultrasonic_sensor_tester import (
11
- items as ultrasonic_sensor_tester_items,
1
+ from bluer_sbc.README.designs import (
2
+ adapter_bus,
3
+ nafha,
4
+ pwm_generator,
5
+ regulated_bus,
6
+ shelter,
7
+ template,
8
+ ultrasonic_sensor_tester,
12
9
  )
10
+ from bluer_sbc.README.designs.anchor import docs as anchor
11
+ from bluer_sbc.README.designs.battery_bus import docs as battery_bus
12
+ from bluer_sbc.README.designs.cheshmak import docs as cheshmak
13
+ from bluer_sbc.README.designs.swallow import docs as swallow
14
+ from bluer_sbc.README.designs.swallow_head import docs as swallow_head
13
15
 
14
- from bluer_sbc.designs.battery_bus.parts import dict_of_parts as battery_bus_parts
15
- from bluer_sbc.designs.swallow.parts import dict_of_parts as swallow_parts
16
- from bluer_sbc.designs.swallow_head.parts import dict_of_parts as swallow_head_parts
17
16
 
18
- docs = [
19
- {
20
- "items": design_info["items"],
21
- "path": f"../docs/{design_name}.md",
22
- "macros": design_info.get("macros", {}),
23
- }
24
- for design_name, design_info in {
25
- "battery-bus": design(
26
- battery_bus_items,
27
- battery_bus_parts,
28
- ),
29
- "bryce": design(
30
- bryce_items,
31
- ),
32
- "cheshmak": design(
33
- cheshmak_items,
34
- ),
35
- "nafha": design(
36
- nafha_items,
37
- ),
38
- "shelter": design(
39
- shelter_items,
40
- ),
41
- "swallow-head": design(
42
- swallow_head_items,
43
- swallow_head_parts,
44
- ),
45
- "swallow": design(
46
- swallow_items,
47
- swallow_parts,
48
- ),
49
- "ultrasonic-sensor-tester": design(
50
- ultrasonic_sensor_tester_items,
51
- ),
52
- "x": design(
53
- x_items,
54
- ),
55
- }.items()
56
- ]
17
+ docs = (
18
+ adapter_bus.docs
19
+ + anchor.docs
20
+ + battery_bus.docs
21
+ + cheshmak.docs
22
+ + nafha.docs
23
+ + pwm_generator.docs
24
+ + regulated_bus.docs
25
+ + shelter.docs
26
+ + swallow_head.docs
27
+ + swallow.docs
28
+ + ultrasonic_sensor_tester.docs
29
+ + template.docs
30
+ )
@@ -0,0 +1,59 @@
1
+ from bluer_objects import README
2
+ from bluer_objects.README.items import ImageItems
3
+ from bluer_objects.README.consts import assets_url, designs_url
4
+
5
+ from bluer_sbc.README.design import design_doc
6
+
7
+
8
+ assets2 = assets_url(
9
+ suffix="adapter-bus",
10
+ volume=2,
11
+ )
12
+
13
+ marquee = README.Items(
14
+ [
15
+ {
16
+ "name": "adapter bus",
17
+ "marquee": f"{assets2}/20251017_222911.jpg",
18
+ "url": "./bluer_sbc/docs/adapter-bus.md",
19
+ }
20
+ ]
21
+ )
22
+
23
+ items = ImageItems(
24
+ {
25
+ designs_url(
26
+ "adapter-bus/wiring.png?raw=true",
27
+ ): designs_url(
28
+ "adapter-bus/wiring.svg",
29
+ ),
30
+ **{
31
+ f"{assets2}/{timestamp}.jpg": ""
32
+ for timestamp in [
33
+ "20251017_222911",
34
+ "20251017_222929",
35
+ "20251017_222938",
36
+ "20251017_222943",
37
+ "20251017_222949",
38
+ "20251017_223017",
39
+ "20251017_223034",
40
+ "20251018_213244",
41
+ ]
42
+ },
43
+ }
44
+ )
45
+
46
+ parts = {
47
+ "dc-power-plug": "",
48
+ "dsn-vc288": "",
49
+ "dc-power-jack": "",
50
+ }
51
+
52
+
53
+ docs = [
54
+ design_doc(
55
+ "adapter-bus",
56
+ items,
57
+ parts,
58
+ )
59
+ ]
@@ -0,0 +1,15 @@
1
+ from bluer_objects import README
2
+
3
+ from bluer_sbc.README.designs.consts import assets2
4
+
5
+ image_template = assets2 + "anchor/{}?raw=true"
6
+
7
+ marquee = README.Items(
8
+ [
9
+ {
10
+ "name": "anchor",
11
+ "marquee": image_template.format("20251204_144037.jpg"),
12
+ "url": "./bluer_sbc/docs/anchor",
13
+ }
14
+ ]
15
+ )
@@ -0,0 +1,20 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.anchor import image_template
4
+
5
+ docs = [
6
+ {
7
+ "path": "../docs/anchor/body",
8
+ "items": ImageItems(
9
+ {
10
+ image_template.format("20251204_144010.jpg"): "",
11
+ image_template.format("20251204_144014.jpg"): "",
12
+ image_template.format("20251204_144017.jpg"): "",
13
+ image_template.format("20251204_144021.jpg"): "",
14
+ image_template.format("20251204_144024.jpg"): "",
15
+ image_template.format("20251204_144031.jpg"): "",
16
+ image_template.format("20251204_144037.jpg"): "",
17
+ }
18
+ ),
19
+ }
20
+ ]
@@ -0,0 +1,16 @@
1
+ from bluer_sbc.README.design import design_doc
2
+ from bluer_sbc.README.designs.anchor import parts
3
+ from bluer_sbc.README.designs.anchor.body import docs as body
4
+ from bluer_sbc.README.designs.anchor.items import items
5
+
6
+ docs = (
7
+ [
8
+ design_doc(
9
+ "anchor",
10
+ items,
11
+ own_folder=True,
12
+ )
13
+ ]
14
+ + body.docs
15
+ + parts.docs
16
+ )
@@ -0,0 +1,10 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.anchor import image_template
4
+
5
+ items = ImageItems(
6
+ {
7
+ image_template.format("03.png"): "",
8
+ image_template.format("20251204_144037.jpg"): "",
9
+ }
10
+ )
@@ -0,0 +1,54 @@
1
+ from bluer_sbc.README.design import design_doc_parts
2
+
3
+ parts = {
4
+ "sd-card-32-gb": "",
5
+ "rpi": "",
6
+ "XL4015": "",
7
+ "470-mF": "",
8
+ "Polyfuse": "optional",
9
+ "TVS-diode": "",
10
+ "resistor": "7 x 330-470 Ω + 4 x 2.2 kΩ + 4 x 3.3 kΩ",
11
+ "LED": "green + red + yellow + 4 x blue",
12
+ "PCB-single-14x9_5": "",
13
+ "pushbutton": "",
14
+ "connector": "1 female",
15
+ "nuts-bolts-spacers": " + ".join(
16
+ [
17
+ "M2.5: ({})".format(
18
+ " + ".join(
19
+ [
20
+ "4 x bolt",
21
+ "4 x nut",
22
+ "8 x 10 mm spacer",
23
+ ]
24
+ )
25
+ ),
26
+ "M3: ({})".format(
27
+ " + ".join(
28
+ [
29
+ "1 x bolt",
30
+ "5 x nut",
31
+ "4 x 5 mm spacer",
32
+ "5 x 15 mm spacer",
33
+ "4 x 25 mm spacer",
34
+ ]
35
+ )
36
+ ),
37
+ ]
38
+ ),
39
+ "plexiglass": "14 cm x 9.5 cm",
40
+ "green-terminal": "2 x",
41
+ "16-awg-wire": "40 cm x (red + black/blue)",
42
+ "solid-cable-1-15": "10 cm x (red + black/blue)",
43
+ "pin-headers": "1 x (female, 2 x 40) -> 2 x 20 + 2 x (male, 1 x 40) -> 4 x 1 + 2 x 20 + 1 x (male, 2 x 40) -> 2 x 2 x 6",
44
+ }
45
+
46
+ docs = [
47
+ {
48
+ "path": "../docs/anchor/parts.md",
49
+ "macros": design_doc_parts(
50
+ dict_of_parts=parts,
51
+ parts_reference="../parts",
52
+ ),
53
+ }
54
+ ]
@@ -0,0 +1,15 @@
1
+ from bluer_objects import README
2
+
3
+ from bluer_sbc.README.designs.consts import assets2
4
+
5
+ image_template = assets2 + "battery-bus/{}?raw=true"
6
+
7
+ marquee = README.Items(
8
+ [
9
+ {
10
+ "name": "battery bus",
11
+ "marquee": image_template.format("20251007_221902.jpg"),
12
+ "url": "./bluer_sbc/docs/battery_bus",
13
+ }
14
+ ]
15
+ )
@@ -0,0 +1,20 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.battery_bus import image_template
4
+ from bluer_sbc.README.designs.battery_bus.body import li_ion, sla
5
+
6
+ docs = (
7
+ [
8
+ {
9
+ "path": "../docs/battery_bus/body",
10
+ "items": ImageItems(
11
+ {
12
+ image_template.format("20251007_221902.jpg"): "./sla.md",
13
+ image_template.format("li-ion/20251204_144045.jpg"): "./li-ion.md",
14
+ }
15
+ ),
16
+ },
17
+ ]
18
+ + li_ion.docs
19
+ + sla.docs
20
+ )
@@ -0,0 +1,20 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.battery_bus import image_template
4
+
5
+ docs = [
6
+ {
7
+ "path": "../docs/battery_bus/body/li-ion.md",
8
+ "items": ImageItems(
9
+ {
10
+ image_template.format("li-ion/20251204_143912.jpg"): "",
11
+ image_template.format("li-ion/20251204_143924.jpg"): "",
12
+ image_template.format("li-ion/20251204_143931.jpg"): "",
13
+ image_template.format("li-ion/20251204_143944.jpg"): "",
14
+ image_template.format("li-ion/20251204_143949.jpg"): "",
15
+ image_template.format("li-ion/20251204_143958.jpg"): "",
16
+ image_template.format("li-ion/20251204_144045.jpg"): "",
17
+ }
18
+ ),
19
+ }
20
+ ]
@@ -0,0 +1,17 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.battery_bus import image_template
4
+
5
+ docs = [
6
+ {
7
+ "path": "../docs/battery_bus/body/sla.md",
8
+ "items": ImageItems(
9
+ {
10
+ image_template.format("20251007_221902.jpg"): "",
11
+ image_template.format("20251007_220642.jpg"): "",
12
+ image_template.format("20251007_220520.jpg"): "",
13
+ image_template.format("20251007_220601.jpg"): "",
14
+ }
15
+ ),
16
+ }
17
+ ]
@@ -0,0 +1,17 @@
1
+ from bluer_sbc.README.design import design_doc
2
+ from bluer_sbc.README.designs.battery_bus import parts
3
+ from bluer_sbc.README.designs.battery_bus.items import items
4
+ from bluer_sbc.README.designs.battery_bus.body import docs as body
5
+
6
+ docs = (
7
+ [
8
+ design_doc(
9
+ "battery_bus",
10
+ items,
11
+ own_folder=True,
12
+ cols=2,
13
+ )
14
+ ]
15
+ + body.docs
16
+ + parts.docs
17
+ )
@@ -0,0 +1,17 @@
1
+ from bluer_objects.README.items import ImageItems
2
+ from bluer_objects.README.consts import designs_url
3
+
4
+ from bluer_sbc.README.designs.battery_bus import image_template
5
+
6
+ items = ImageItems(
7
+ {
8
+ image_template.format("concept.png"): "",
9
+ designs_url(
10
+ "battery-bus/electrical/wiring.png?raw=true",
11
+ ): designs_url(
12
+ "battery-bus/electrical/wiring.svg",
13
+ ),
14
+ image_template.format("20251007_221902.jpg"): "./body/sla.md",
15
+ image_template.format("li-ion/20251204_144045.jpg"): "./body/li-ion.md",
16
+ }
17
+ )
@@ -0,0 +1,19 @@
1
+ from bluer_sbc.README.design import design_doc_parts
2
+
3
+ parts = {
4
+ "SLA-Battery": "e.g. 12 V, 7.2 Ah",
5
+ "Li-Ion-Battery": "e.g. 3 x 26650, 5000 mAh 5C, 3.7 V/4.2V",
6
+ "dc-switch": "12V DC 10 A",
7
+ "dc-power-plug": "",
8
+ "dsn-vc288": "",
9
+ }
10
+
11
+ docs = [
12
+ {
13
+ "path": "../docs/battery_bus/parts.md",
14
+ "macros": design_doc_parts(
15
+ dict_of_parts=parts,
16
+ parts_reference="../parts",
17
+ ),
18
+ }
19
+ ]
@@ -0,0 +1,14 @@
1
+ from bluer_objects import README
2
+ from bluer_sbc.README.designs.consts import assets2
3
+
4
+ image_template = assets2 + "cheshmak/{}?raw=true"
5
+
6
+ marquee = README.Items(
7
+ [
8
+ {
9
+ "name": "cheshmak",
10
+ "marquee": image_template.format("20251203_190131.jpg"),
11
+ "url": "./bluer_sbc/docs/cheshmak",
12
+ }
13
+ ]
14
+ )
@@ -0,0 +1,23 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.cheshmak import image_template
4
+ from bluer_sbc.README.designs.cheshmak.body import v1
5
+
6
+ docs = [
7
+ {
8
+ "path": "../docs/cheshmak/body",
9
+ "items": ImageItems(
10
+ {
11
+ image_template.format("20251203_184658.jpg"): "",
12
+ image_template.format("20251203_184702.jpg"): "",
13
+ image_template.format("20251203_184706.jpg"): "",
14
+ image_template.format("20251203_184712.jpg"): "",
15
+ image_template.format("20251203_184717.jpg"): "",
16
+ image_template.format("20251203_184723.jpg"): "",
17
+ image_template.format("20251203_190023.jpg"): "",
18
+ image_template.format("20251203_190131.jpg"): "",
19
+ image_template.format("20251203_190344.jpg"): "",
20
+ }
21
+ ),
22
+ }
23
+ ] + v1.docs
@@ -0,0 +1,18 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.consts import assets2
4
+
5
+
6
+ docs = [
7
+ {
8
+ "path": "../docs/cheshmak/body/v1.md",
9
+ "items": ImageItems(
10
+ {
11
+ **{
12
+ (assets2 + "bryce/{}?raw=true").format(f"{index+1:02}.jpg"): ""
13
+ for index in range(8)
14
+ }
15
+ }
16
+ ),
17
+ },
18
+ ]
@@ -0,0 +1,19 @@
1
+ from bluer_sbc.README.design import design_doc
2
+ from bluer_sbc.README.designs.cheshmak import operation, parts, validations
3
+ from bluer_sbc.README.designs.cheshmak.items import items
4
+ from bluer_sbc.README.designs.cheshmak.body import docs as body
5
+
6
+
7
+ docs = (
8
+ [
9
+ design_doc(
10
+ "cheshmak",
11
+ items,
12
+ own_folder=True,
13
+ ),
14
+ ]
15
+ + body.docs
16
+ + operation.docs
17
+ + parts.docs
18
+ + validations.docs
19
+ )
@@ -0,0 +1,10 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_sbc.README.designs.cheshmak import image_template
4
+
5
+ items = ImageItems(
6
+ {
7
+ image_template.format("01.png"): "",
8
+ image_template.format("20251203_190023.jpg"): "",
9
+ }
10
+ )
@@ -0,0 +1,5 @@
1
+ docs = [
2
+ {
3
+ "path": "../docs/cheshmak/operation.md",
4
+ },
5
+ ]