bluer-sbc 8.190.1__py3-none-any.whl → 8.194.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.

Potentially problematic release.


This version of bluer-sbc might be problematic. Click here for more details.

bluer_sbc/.abcli/alias.sh CHANGED
@@ -4,6 +4,4 @@ alias @camera=bluer_sbc_camera
4
4
 
5
5
  alias grove=bluer_sbc_grove
6
6
 
7
- alias @rpi=bluer_sbc_rpi
8
-
9
7
  alias @sbc=bluer_sbc
bluer_sbc/.abcli/rpi.sh CHANGED
@@ -9,7 +9,7 @@ function bluer_sbc_rpi() {
9
9
  return
10
10
  fi
11
11
 
12
- bluer_ai_log_error "@rpi: $task: command not found."
12
+ bluer_ai_log_error "@sbc rpi: $task: command not found."
13
13
  return 1
14
14
  }
15
15
 
@@ -5,9 +5,6 @@ function test_bluer_sbc_help() {
5
5
 
6
6
  local module
7
7
  for module in \
8
- "@rpi" \
9
- "@rpi fake_display" \
10
- \
11
8
  "@sbc" \
12
9
  \
13
10
  "@sbc adafruit_rgb_matrix" \
@@ -35,6 +32,9 @@ function test_bluer_sbc_help() {
35
32
  \
36
33
  "@sbc pytest" \
37
34
  \
35
+ "@sbc rpi" \
36
+ "@sbc rpi fake_display" \
37
+ \
38
38
  "@sbc scroll_phat_hd" \
39
39
  "@sbc scroll_phat_hd validate" \
40
40
  \
bluer_sbc/README.py CHANGED
@@ -10,6 +10,8 @@ from bluer_sbc.designs.cheshmak import marquee as cheshmak_marquee
10
10
  from bluer_sbc.designs.blue_bracket import items as blue_bracket_items
11
11
  from bluer_sbc.designs.bluer_swallow import items as bluer_swallow_items
12
12
  from bluer_sbc.designs.bluer_swallow import marquee as bluer_swallow_marquee
13
+ from bluer_sbc.designs.bluer_swallow_head import items as bluer_swallow_head_items
14
+ from bluer_sbc.designs.bluer_swallow_head import marquee as bluer_swallow_head_marquee
13
15
  from bluer_sbc.designs.bryce import items as bryce_items
14
16
  from bluer_sbc.designs.bryce import marquee as bryce_marquee
15
17
  from bluer_sbc.help.functions import help_functions
@@ -40,7 +42,8 @@ def build():
40
42
  )
41
43
  for readme in [
42
44
  {
43
- "items": ultrasonic_sensor_tester_marquee
45
+ "items": bluer_swallow_head_marquee
46
+ + ultrasonic_sensor_tester_marquee
44
47
  + cheshmak_marquee
45
48
  + bluer_swallow_marquee
46
49
  + bryce_marquee
@@ -55,6 +58,10 @@ def build():
55
58
  "items": bluer_swallow_items,
56
59
  "path": "./docs/bluer-swallow.md",
57
60
  },
61
+ {
62
+ "items": bluer_swallow_head_items,
63
+ "path": "./docs/bluer-swallow-head.md",
64
+ },
58
65
  {
59
66
  "items": bryce_items,
60
67
  "path": "./docs/bryce.md",
bluer_sbc/__init__.py CHANGED
@@ -4,7 +4,7 @@ ICON = "🌀"
4
4
 
5
5
  DESCRIPTION = f"{ICON} AI for single board computers."
6
6
 
7
- VERSION = "8.190.1"
7
+ VERSION = "8.194.1"
8
8
 
9
9
  REPO_NAME = "bluer-sbc"
10
10
 
@@ -0,0 +1,26 @@
1
+ from bluer_objects import README
2
+
3
+ from bluer_sbc.designs.consts import assets2
4
+
5
+
6
+ image_template = assets2 + "bluer-swallow/design/head-v1/{}?raw=true"
7
+
8
+ marquee = README.Items(
9
+ [
10
+ {
11
+ "name": "bluer-swallow head",
12
+ "marquee": image_template.format("01.jpg"),
13
+ "url": "./bluer_sbc/docs/bluer-swallow-head.md",
14
+ }
15
+ ]
16
+ )
17
+
18
+ items = README.Items(
19
+ [
20
+ {
21
+ "marquee": image_template.format(f"{index+1:02}.jpg"),
22
+ "name": "",
23
+ }
24
+ for index in range(6)
25
+ ]
26
+ )
bluer_sbc/help/rpi.py CHANGED
@@ -11,7 +11,8 @@ def help_fake_display(
11
11
 
12
12
  return show_usage(
13
13
  [
14
- "@rpi",
14
+ "@sbc",
15
+ "rpi",
15
16
  "fake_display",
16
17
  f"[{options}]",
17
18
  ],
@@ -0,0 +1,63 @@
1
+ Metadata-Version: 2.4
2
+ Name: bluer_sbc
3
+ Version: 8.194.1
4
+ Summary: 🌀 AI for single board computers.
5
+ Home-page: https://github.com/kamangir/bluer-sbc
6
+ Author: Arash Abadpour (Kamangir)
7
+ Author-email: arash.abadpour@gmail.com
8
+ License: CC0-1.0
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Unix Shell
11
+ Classifier: Operating System :: OS Independent
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: bluer_ai
15
+ Dynamic: author
16
+ Dynamic: author-email
17
+ Dynamic: classifier
18
+ Dynamic: description
19
+ Dynamic: description-content-type
20
+ Dynamic: home-page
21
+ Dynamic: license
22
+ Dynamic: license-file
23
+ Dynamic: requires-dist
24
+ Dynamic: summary
25
+
26
+ # 🌀 bluer-sbc
27
+
28
+ 🌀 `bluer-sbc` is a [`bluer-ai`](https://github.com/kamangir/bluer-ai) plugin for edge computing on [single board computers](https://github.com/kamangir/blue-bracket).
29
+
30
+ ## installation
31
+
32
+ ```bash
33
+ pip install bluer_sbc
34
+
35
+ # @env dot list
36
+ @env dot cp <env-name> local
37
+ ```
38
+
39
+ ## aliases
40
+
41
+ [@camera](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/aliases/camera.md),
42
+ [@sbc rpi](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/aliases/sbc.md),
43
+ [@sbc <hardware>](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/aliases/hardware.md).
44
+
45
+ | | | |
46
+ | --- | --- | --- |
47
+ | [`bluer-swallow head`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bluer-swallow-head.md) [![image](https://github.com/kamangir/assets2/blob/main/bluer-swallow/design/head-v1/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bluer-swallow-head.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.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) |
48
+ | [`bluer-swallow`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bluer-swallow.md) [![image](https://github.com/kamangir/assets2/blob/main/bluer-swallow/design/v4/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bluer-swallow.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) | [`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
+ | [`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) |
50
+
51
+ ---
52
+
53
+ > 🌀 [`blue-sbc`](https://github.com/kamangir/blue-sbc) for the [Global South](https://github.com/kamangir/bluer-south).
54
+
55
+ ---
56
+
57
+
58
+ [![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)
59
+
60
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_sbc-8.194.1`](https://github.com/kamangir/bluer-sbc).
61
+
62
+
63
+ built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -1,5 +1,5 @@
1
- bluer_sbc/README.py,sha256=KtBr9qrvk9UOl-BgZ6T_bHkEfkVu91Ib0CyE2vMo0XE,2374
2
- bluer_sbc/__init__.py,sha256=09GOcKCtc3u86taKnelLrP1uBAabo0hrlP4516Vo_Rs,292
1
+ bluer_sbc/README.py,sha256=DjcAMkAPjseeCRO4fut9N5L8wbi-Wjg1YNyj3KHVlyk,2725
2
+ bluer_sbc/__init__.py,sha256=1JumiV_nEzAturA6uvZAstVnksQvj1GZPxdzj_lazlc,292
3
3
  bluer_sbc/__main__.py,sha256=JV8oYpZDQbvcDpKJtbjU0hDeMJkzsDLGlhIWLmRpDQ4,348
4
4
  bluer_sbc/config.env,sha256=Lp91dQZrPDtMO-87-pAw1wOqLMIYEI1MlNrXhvKMaoE,706
5
5
  bluer_sbc/env.py,sha256=saEjdk3FHmuK-WQUUpKfOatwmE93Y2Ula3rtGhRm0Zw,1745
@@ -10,13 +10,13 @@ bluer_sbc/urls.py,sha256=Bjdewssljt0LIefjixBem9JN0kkghPvmrIETj3GdXbY,17
10
10
  bluer_sbc/.abcli/abcli.sh,sha256=Q_YRZUeFjN4UT9zT8lzrNIQSuORPie4Cp5CW5O2pX5w,290
11
11
  bluer_sbc/.abcli/actions.sh,sha256=P4d9lOzxdvkISZ0M3lZKH9JlmrcWTJ_HeEQAhIRLvC8,224
12
12
  bluer_sbc/.abcli/adafruit_rgb_matrix.sh,sha256=DwPJeuDXYa_F0r4nIWNeBYVtodyHYT2tV9JxPbWxhAM,382
13
- bluer_sbc/.abcli/alias.sh,sha256=d_oC5BldNKkhtXLurWwJg_3GoTJuYuy3TtgGNx49RNA,130
13
+ bluer_sbc/.abcli/alias.sh,sha256=PsTwzDXyeSvXGY-0LRF3U8df3AQVvPU35MOKQ4lx7xo,104
14
14
  bluer_sbc/.abcli/blue_sbc.sh,sha256=4O_0C56Xj5P7FjSTet5k7hvaNa-SIKpBUsz4MkBUc84,198
15
15
  bluer_sbc/.abcli/camera.sh,sha256=cmDDqUoy-YaO-nwKoTcsgrX-KbZ1JtXiPA3RVBoUb3s,447
16
16
  bluer_sbc/.abcli/grove.sh,sha256=6Lf4TiQzZj9uStCY9ezd8djcqVthzbybkmgmZ8Kr9wE,1180
17
17
  bluer_sbc/.abcli/hat.sh,sha256=ggMb9XOFA3t3sBTGalQK4x7yNuAgK3jA6UkFDWAnndM,449
18
18
  bluer_sbc/.abcli/lepton.sh,sha256=e7bzeYC8JpZMTTWkIfIscPfsoGYPb1ONWaTdDrglfRc,327
19
- bluer_sbc/.abcli/rpi.sh,sha256=6OOHHUPQBQXmTD3TUrq4jeMisUnH-aqlRudkILlXJ8s,339
19
+ bluer_sbc/.abcli/rpi.sh,sha256=Lfs60Xm_fyv6IY4vnwngVoNPFVDhIbYGPzd_fOsZ-mo,343
20
20
  bluer_sbc/.abcli/scroll_phat_hd.sh,sha256=AUD38PfNMCA-88GjHa-xV4OM7IS8mg5ECNFjAzLJ8AQ,331
21
21
  bluer_sbc/.abcli/seed.sh,sha256=9azGhOe8g9FEAsI87AkJfKpLp-tF4Ej1x2dgcJ0sa5I,63
22
22
  bluer_sbc/.abcli/session.sh,sha256=90Y-2pzZnM3YZO9sYeshS83oiLUE38WqCl-gA_RfWT0,1003
@@ -38,7 +38,7 @@ bluer_sbc/.abcli/seed/rpi.sh,sha256=HzCcPnuC2DneMtiHawD6tjcgLuyCstljl-A90kmpDeg,
38
38
  bluer_sbc/.abcli/seed/swallow_raspbian.sh,sha256=QK9YSkLA0_j5D_r8cp5DENLKhnczUj4a40O4w68ER98,363
39
39
  bluer_sbc/.abcli/tests/README.sh,sha256=0hp3y_URdsFtnYw5Ujty6xy5SNhNHGEVPqpQoYxu0WA,142
40
40
  bluer_sbc/.abcli/tests/camera.sh,sha256=NRr-RbyNORMSHYxNu6VUpVzHIJ2Qy-5NQr2qh54kqUg,1013
41
- bluer_sbc/.abcli/tests/help.sh,sha256=C0xlLMpYfSO2nZU-QD1OSHXmcgHuf36CRduAkANmOuE,1416
41
+ bluer_sbc/.abcli/tests/help.sh,sha256=2fzkUvk4jMS8a8SV-5_NY6WAuRGLoyCL_RxvIwbufMk,1424
42
42
  bluer_sbc/.abcli/tests/seed.sh,sha256=NQUQzgHQZITgaq2aFkiZkaLT0VKmIsrl3aTqSkr8670,392
43
43
  bluer_sbc/.abcli/tests/version.sh,sha256=odDOmAFlzH7KtsAYWOmyLsQ6GAws6XadNlZ6H-NZuzc,147
44
44
  bluer_sbc/ROS/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
@@ -47,6 +47,7 @@ bluer_sbc/algo/diff.py,sha256=ZCUkRgip-Uss86r--RuEwyYtFjpukM3fbY_yovXwgNw,2190
47
47
  bluer_sbc/designs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  bluer_sbc/designs/blue_bracket.py,sha256=4p80wXEAbn4y7jXrTqK1KFrtcQYJ3zdeBiDWR8E4aCI,866
49
49
  bluer_sbc/designs/bluer_swallow.py,sha256=xETA66svd7W7ArpXIFcFCXYsRDpP4drbU0i60Ao9DsA,532
50
+ bluer_sbc/designs/bluer_swallow_head.py,sha256=9rEAJDrr5TJS2fBarLe94SkumVRGYZ46uFpgOiUb488,547
50
51
  bluer_sbc/designs/bryce.py,sha256=6Ark2nOxLUlnrx03S9gO12oGvM6iFYmdhRfs4JXGZU0,497
51
52
  bluer_sbc/designs/cheshmak.py,sha256=fWTqTJLYCNC0G8jqT-cJW2r8snWJrpRk5VCqjv24yKE,506
52
53
  bluer_sbc/designs/consts.py,sha256=de1X1_0CESgSGYUI8dGh8RBoYtu_G3NrBsFvuSdHJWk,59
@@ -74,7 +75,7 @@ bluer_sbc/help/functions.py,sha256=WhqDhBHMDAm4suAJ10rx-6Tr-yhx3JdjtyR9NOxk080,1
74
75
  bluer_sbc/help/grove.py,sha256=4CM3_RUeu6hMr1zmkz4f-V7Mzb75vcYv0dfoQKw2KJI,1026
75
76
  bluer_sbc/help/hat.py,sha256=fhiEFoWYolmh-loZ87fYghEJK-XLUpkUc4pDj2WWdAE,885
76
77
  bluer_sbc/help/lepton.py,sha256=NNJY9f1gkZCD7fGf0chFjncbLOSpb79VLyZ2jxj4rG4,618
77
- bluer_sbc/help/rpi.py,sha256=ZHxQQ0QSPYFOTk8ywWa5XLXRdh9wKZVXkVsj7RxApOE,438
78
+ bluer_sbc/help/rpi.py,sha256=ZD1iOaG0af01wHVFuPBFo0HsDqC7lzNGgxCyxsyUKBs,457
78
79
  bluer_sbc/help/scroll_phat_hd.py,sha256=pLMIGMKIzRgN2LcNjIPNQiJ0mIowKjxkBhS40PIst1c,374
79
80
  bluer_sbc/help/sparkfun_top_phat.py,sha256=4JQMqzapnx5PBtzfw8RqpqgXtnF0HqDWxuTssK0OHUo,445
80
81
  bluer_sbc/help/unicorn_16x16.py,sha256=0uKABkkY7VGfmUj2U8g0fA0AvXDBlloVzGQXbx_mPO8,378
@@ -94,8 +95,8 @@ bluer_sbc/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
94
95
  bluer_sbc/session/__main__.py,sha256=O2Tv6HgE8Bos7ASIViYludpWVi6EEc9XRoP8jYC2-2Q,534
95
96
  bluer_sbc/session/classes.py,sha256=6pEh-TBjekUZBbWj_zKh3LAntAoGfcMHtS2SJ77nyC8,9355
96
97
  bluer_sbc/session/functions.py,sha256=eRJKSczRjKn3Fo2jv8_4EMAZwfJBj5cIPg2WqHkC2Q8,481
97
- bluer_sbc-8.190.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
98
- bluer_sbc-8.190.1.dist-info/METADATA,sha256=OxY2iLeOD9g_0T01hrg1gXjApqAf2Z67UH43wTi68o0,4439
99
- bluer_sbc-8.190.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
- bluer_sbc-8.190.1.dist-info/top_level.txt,sha256=DsLDHFiTeAj2mctGVmCSgWUhzCznWSQoUmQ1VyEmnT0,10
101
- bluer_sbc-8.190.1.dist-info/RECORD,,
98
+ bluer_sbc-8.194.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
99
+ bluer_sbc-8.194.1.dist-info/METADATA,sha256=W3agBl1--7RMXrNccOWVqCCvsAorR8K5jJiI3uJ0R3o,4741
100
+ bluer_sbc-8.194.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
101
+ bluer_sbc-8.194.1.dist-info/top_level.txt,sha256=DsLDHFiTeAj2mctGVmCSgWUhzCznWSQoUmQ1VyEmnT0,10
102
+ bluer_sbc-8.194.1.dist-info/RECORD,,
@@ -1,63 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: bluer_sbc
3
- Version: 8.190.1
4
- Summary: 🌀 AI for single board computers.
5
- Home-page: https://github.com/kamangir/bluer-sbc
6
- Author: Arash Abadpour (Kamangir)
7
- Author-email: arash.abadpour@gmail.com
8
- License: CC0-1.0
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: Programming Language :: Unix Shell
11
- Classifier: Operating System :: OS Independent
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
- Requires-Dist: bluer_ai
15
- Dynamic: author
16
- Dynamic: author-email
17
- Dynamic: classifier
18
- Dynamic: description
19
- Dynamic: description-content-type
20
- Dynamic: home-page
21
- Dynamic: license
22
- Dynamic: license-file
23
- Dynamic: requires-dist
24
- Dynamic: summary
25
-
26
- # 🌀 bluer-sbc
27
-
28
- 🌀 `bluer-sbc` is a [`bluer-ai`](https://github.com/kamangir/bluer-ai) plugin for edge computing on [single board computers](https://github.com/kamangir/blue-bracket).
29
-
30
- ## installation
31
-
32
- ```bash
33
- pip install bluer_sbc
34
-
35
- # @env dot list
36
- @env dot cp <env-name> local
37
- ```
38
-
39
- ## aliases
40
-
41
- [@camera](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/aliases/camera.md),
42
- [@rpi](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/aliases/rpi.md),
43
- [@sbc <hardware>](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/aliases/hardware.md).
44
-
45
- | | | |
46
- | --- | --- | --- |
47
- | [`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.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) | [`bluer-swallow`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bluer-swallow.md) [![image](https://github.com/kamangir/assets2/blob/main/bluer-swallow/design/v4/01.jpg?raw=true)](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bluer-swallow.md) |
48
- | [`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) | [`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) | [`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) |
49
- | [`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) | |
50
-
51
- ---
52
-
53
- > 🌀 [`blue-sbc`](https://github.com/kamangir/blue-sbc) for the [Global South](https://github.com/kamangir/bluer-south).
54
-
55
- ---
56
-
57
-
58
- [![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)
59
-
60
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_sbc-8.190.1`](https://github.com/kamangir/bluer-sbc).
61
-
62
-
63
- built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).