bluer-ugv 7.628.1__py3-none-any.whl → 7.645.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-ugv might be problematic. Click here for more details.
- bluer_ugv/README/ugvs/comparison/build.py +8 -2
- bluer_ugv/README/ugvs/comparison/features/db.py +8 -8
- bluer_ugv/README/ugvs/comparison/features/range.py +1 -3
- bluer_ugv/README/ugvs/comparison/ugvs/classes.py +18 -4
- bluer_ugv/README/ugvs/comparison/ugvs/db.py +16 -3
- bluer_ugv/__init__.py +1 -1
- {bluer_ugv-7.628.1.dist-info → bluer_ugv-7.645.1.dist-info}/METADATA +2 -2
- {bluer_ugv-7.628.1.dist-info → bluer_ugv-7.645.1.dist-info}/RECORD +11 -11
- {bluer_ugv-7.628.1.dist-info → bluer_ugv-7.645.1.dist-info}/WHEEL +0 -0
- {bluer_ugv-7.628.1.dist-info → bluer_ugv-7.645.1.dist-info}/licenses/LICENSE +0 -0
- {bluer_ugv-7.628.1.dist-info → bluer_ugv-7.645.1.dist-info}/top_level.txt +0 -0
|
@@ -48,8 +48,8 @@ def build(
|
|
|
48
48
|
contents[:content_index]
|
|
49
49
|
+ row_of(
|
|
50
50
|
[
|
|
51
|
-
"تصویر",
|
|
52
51
|
"رديف",
|
|
52
|
+
"تصویر",
|
|
53
53
|
"نام محصول مشابه",
|
|
54
54
|
"مشابهت و تفاوت های محصول ما با آنها ",
|
|
55
55
|
],
|
|
@@ -60,6 +60,7 @@ def build(
|
|
|
60
60
|
[
|
|
61
61
|
row_of(
|
|
62
62
|
[
|
|
63
|
+
str(index + 1),
|
|
63
64
|
(
|
|
64
65
|
'<img src="{}" alt="{}" style="width: 200pt;"/>'.format(
|
|
65
66
|
assets_url(
|
|
@@ -70,8 +71,13 @@ def build(
|
|
|
70
71
|
)
|
|
71
72
|
if ugv.image
|
|
72
73
|
else ""
|
|
74
|
+
)
|
|
75
|
+
+ " ".join(
|
|
76
|
+
[
|
|
77
|
+
f'<p style="color:blue;">🔹 {line}</p>'
|
|
78
|
+
for line in ugv.comments
|
|
79
|
+
]
|
|
73
80
|
),
|
|
74
|
-
str(index + 1),
|
|
75
81
|
ugv.description,
|
|
76
82
|
reference_ugv.compare(ugv),
|
|
77
83
|
]
|
|
@@ -17,18 +17,18 @@ from bluer_ugv.README.ugvs.comparison.features.swarm import SwarmFeature
|
|
|
17
17
|
from bluer_ugv.README.ugvs.comparison.features.uv_delivery import UVDeliveryFeature
|
|
18
18
|
|
|
19
19
|
list_of_feature_classes: List[Type[Feature]] = [
|
|
20
|
-
ConcealmentFeature,
|
|
21
|
-
ControlFeature,
|
|
22
|
-
CostFeature,
|
|
23
|
-
DYIFeature,
|
|
24
20
|
PayloadFeature,
|
|
25
|
-
|
|
21
|
+
SpeedFeature,
|
|
22
|
+
SizeFeature,
|
|
23
|
+
CostFeature,
|
|
24
|
+
ControlFeature,
|
|
26
25
|
RangeFeature,
|
|
26
|
+
DYIFeature,
|
|
27
27
|
SanctionProofFeature,
|
|
28
|
-
SizeFeature,
|
|
29
|
-
SpeedFeature,
|
|
30
|
-
SwarmFeature,
|
|
31
28
|
UVDeliveryFeature,
|
|
29
|
+
ConcealmentFeature,
|
|
30
|
+
PSFeature,
|
|
31
|
+
SwarmFeature,
|
|
32
32
|
]
|
|
33
33
|
|
|
34
34
|
dict_of_feature_classes: Dict[str, Type[Feature]] = {
|
|
@@ -2,8 +2,6 @@ from typing import Any
|
|
|
2
2
|
|
|
3
3
|
from bluer_ugv.README.ugvs.comparison.features.classes import Feature
|
|
4
4
|
|
|
5
|
-
unlimited_range: int = 999
|
|
6
|
-
|
|
7
5
|
|
|
8
6
|
class RangeFeature(Feature):
|
|
9
7
|
nickname = "range"
|
|
@@ -11,4 +9,4 @@ class RangeFeature(Feature):
|
|
|
11
9
|
|
|
12
10
|
@property
|
|
13
11
|
def score_as_str_(self) -> str:
|
|
14
|
-
return f"{self.score} کیلومتر"
|
|
12
|
+
return f"{self.score} کیلومتر"
|
|
@@ -16,20 +16,25 @@ class UGV:
|
|
|
16
16
|
features: Dict[str, Any],
|
|
17
17
|
deficiencies: List[str] = [],
|
|
18
18
|
image: str = "",
|
|
19
|
+
comments: List[str] = [],
|
|
19
20
|
):
|
|
20
21
|
self.nickname = nickname
|
|
21
22
|
self.name = name
|
|
22
23
|
|
|
23
24
|
self.feature_list: FeatureList = FeatureList()
|
|
24
25
|
|
|
25
|
-
for feature_name
|
|
26
|
+
for feature_name in features:
|
|
26
27
|
if feature_name not in dict_of_feature_classes:
|
|
27
28
|
logger.error(f"{feature_name}: feature not found.")
|
|
28
29
|
assert False
|
|
29
30
|
|
|
31
|
+
for feature_name in dict_of_feature_classes:
|
|
32
|
+
if feature_name not in features:
|
|
33
|
+
continue
|
|
34
|
+
|
|
30
35
|
self.feature_list.add(
|
|
31
36
|
dict_of_feature_classes[feature_name](
|
|
32
|
-
score=
|
|
37
|
+
score=features[feature_name],
|
|
33
38
|
)
|
|
34
39
|
)
|
|
35
40
|
|
|
@@ -37,6 +42,8 @@ class UGV:
|
|
|
37
42
|
|
|
38
43
|
self.image = image
|
|
39
44
|
|
|
45
|
+
self.comments = comments
|
|
46
|
+
|
|
40
47
|
def compare(
|
|
41
48
|
self,
|
|
42
49
|
ugv: "UGV",
|
|
@@ -57,7 +64,12 @@ class UGV:
|
|
|
57
64
|
elif comparison == Feature_Comparison.UNKNOWN:
|
|
58
65
|
pass
|
|
59
66
|
else:
|
|
60
|
-
differences.append(
|
|
67
|
+
differences.append(
|
|
68
|
+
'<p style="color:{};">{}</p>'.format(
|
|
69
|
+
"green" if comparison == Feature_Comparison.HIGHER else "red",
|
|
70
|
+
message,
|
|
71
|
+
)
|
|
72
|
+
)
|
|
61
73
|
|
|
62
74
|
return (
|
|
63
75
|
[
|
|
@@ -86,7 +98,9 @@ class UGV:
|
|
|
86
98
|
def description(self) -> List[str]:
|
|
87
99
|
return (
|
|
88
100
|
[
|
|
89
|
-
'<p dir="rtl" style="text-align:right;">{}</p>'.format(
|
|
101
|
+
'<b><p dir="rtl" style="text-align:right;">{}</p></b>'.format(
|
|
102
|
+
self.name
|
|
103
|
+
),
|
|
90
104
|
"<ol>",
|
|
91
105
|
]
|
|
92
106
|
+ [
|
|
@@ -2,7 +2,6 @@ from bluer_ugv.README.ugvs.comparison.features.control import UGV_Control
|
|
|
2
2
|
from bluer_ugv.README.ugvs.comparison.features.cost import UGV_Cost
|
|
3
3
|
from bluer_ugv.README.ugvs.comparison.features.size import UGV_Size
|
|
4
4
|
from bluer_ugv.README.ugvs.comparison.ugvs.classes import List_of_UGVs
|
|
5
|
-
from bluer_ugv.README.ugvs.comparison.features.range import unlimited_range
|
|
6
5
|
|
|
7
6
|
list_of_ugvs = List_of_UGVs()
|
|
8
7
|
|
|
@@ -14,7 +13,7 @@ list_of_ugvs.add(
|
|
|
14
13
|
"control": UGV_Control.AI,
|
|
15
14
|
"cost": UGV_Cost.LOW,
|
|
16
15
|
"payload": 40,
|
|
17
|
-
"range":
|
|
16
|
+
"range": 100,
|
|
18
17
|
"ps": True,
|
|
19
18
|
"sanction_proof": True,
|
|
20
19
|
"size": UGV_Size.SMALL,
|
|
@@ -33,6 +32,7 @@ list_of_ugvs.add(
|
|
|
33
32
|
"cost": UGV_Cost.MEDIUM,
|
|
34
33
|
"payload": 700,
|
|
35
34
|
"range": 4,
|
|
35
|
+
"sanction_proof": True,
|
|
36
36
|
"size": UGV_Size.MEDIUM,
|
|
37
37
|
},
|
|
38
38
|
)
|
|
@@ -47,6 +47,7 @@ list_of_ugvs.add(
|
|
|
47
47
|
"cost": UGV_Cost.LOW,
|
|
48
48
|
"payload": 40,
|
|
49
49
|
"range": 10,
|
|
50
|
+
"sanction_proof": True,
|
|
50
51
|
"size": UGV_Size.SMALL,
|
|
51
52
|
"speed": 60,
|
|
52
53
|
"swarm": True,
|
|
@@ -54,6 +55,9 @@ list_of_ugvs.add(
|
|
|
54
55
|
deficiencies=[
|
|
55
56
|
"انتقال قدرت: زنجیر",
|
|
56
57
|
],
|
|
58
|
+
comments=[
|
|
59
|
+
"بیشترین تشابه",
|
|
60
|
+
],
|
|
57
61
|
)
|
|
58
62
|
|
|
59
63
|
|
|
@@ -64,6 +68,7 @@ list_of_ugvs.add(
|
|
|
64
68
|
features={
|
|
65
69
|
"control": UGV_Control.AI,
|
|
66
70
|
"cost": UGV_Cost.MEDIUM,
|
|
71
|
+
"sanction_proof": True,
|
|
67
72
|
"size": UGV_Size.MEDIUM,
|
|
68
73
|
"speed": 30,
|
|
69
74
|
"range": 0.5,
|
|
@@ -75,7 +80,9 @@ list_of_ugvs.add(
|
|
|
75
80
|
name="ربات قاسم",
|
|
76
81
|
image="qasem.jpg",
|
|
77
82
|
features={
|
|
83
|
+
"concealment": True,
|
|
78
84
|
"cost": UGV_Cost.MEDIUM,
|
|
85
|
+
"sanction_proof": True,
|
|
79
86
|
"size": UGV_Size.MEDIUM,
|
|
80
87
|
"uv_delivery": True,
|
|
81
88
|
},
|
|
@@ -89,6 +96,7 @@ list_of_ugvs.add(
|
|
|
89
96
|
features={
|
|
90
97
|
"control": UGV_Control.AI,
|
|
91
98
|
"cost": UGV_Cost.MEDIUM,
|
|
99
|
+
"sanction_proof": True,
|
|
92
100
|
"size": UGV_Size.MEDIUM,
|
|
93
101
|
"speed": 50,
|
|
94
102
|
"uv_delivery": True,
|
|
@@ -99,7 +107,9 @@ list_of_ugvs.add(
|
|
|
99
107
|
list_of_ugvs.add(
|
|
100
108
|
nickname="sepah",
|
|
101
109
|
name="ربات جنگ میدانی سپاه",
|
|
102
|
-
features={
|
|
110
|
+
features={
|
|
111
|
+
"sanction_proof": True,
|
|
112
|
+
},
|
|
103
113
|
deficiencies=[],
|
|
104
114
|
)
|
|
105
115
|
|
|
@@ -111,6 +121,7 @@ list_of_ugvs.add(
|
|
|
111
121
|
features={
|
|
112
122
|
"control": UGV_Control.RC,
|
|
113
123
|
"cost": UGV_Cost.MEDIUM,
|
|
124
|
+
"sanction_proof": True,
|
|
114
125
|
"size": UGV_Size.SMALL,
|
|
115
126
|
},
|
|
116
127
|
deficiencies=[],
|
|
@@ -273,10 +284,12 @@ list_of_ugvs.add(
|
|
|
273
284
|
name="tEODor",
|
|
274
285
|
image="tEODor.png",
|
|
275
286
|
features={
|
|
287
|
+
"concealment": True,
|
|
276
288
|
"control": UGV_Control.RC,
|
|
277
289
|
"cost": UGV_Cost.HIGH,
|
|
278
290
|
"payload": 100,
|
|
279
291
|
"size": UGV_Size.MEDIUM,
|
|
292
|
+
"uv_delivery": True,
|
|
280
293
|
},
|
|
281
294
|
deficiencies=[],
|
|
282
295
|
)
|
bluer_ugv/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.645.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -64,7 +64,7 @@ pip install bluer_ugv
|
|
|
64
64
|
|
|
65
65
|
[](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-ugv/) [](https://pypistats.org/packages/bluer-ugv)
|
|
66
66
|
|
|
67
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
67
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.645.1`](https://github.com/kamangir/bluer-ugv).
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
bluer_ugv/__init__.py,sha256=
|
|
1
|
+
bluer_ugv/__init__.py,sha256=bY1YLceHV-oq9vHAJYcjMDT2Kwg-CTRsi54xNB8CvPY,288
|
|
2
2
|
bluer_ugv/__main__.py,sha256=77TquqyMca7qHk0XtCixGVyzfW3_9ywnl5oXEPERlls,374
|
|
3
3
|
bluer_ugv/config.env,sha256=I718Cfy1GaGqVI80vb7iYsoJ0P7SKLW8USaBYb2sub4,1055
|
|
4
4
|
bluer_ugv/env.py,sha256=oEJiyKf1cCJ9kgZqgwnWemT0U_cO2RmCN3MRSS2vitY,1875
|
|
@@ -108,17 +108,17 @@ bluer_ugv/README/ugvs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
108
108
|
bluer_ugv/README/ugvs/db.py,sha256=EzRonSj4Zsk-Nscg1-udVVJZBEAEvo4PaIVCpClj06U,1484
|
|
109
109
|
bluer_ugv/README/ugvs/docs.py,sha256=Yef40N1hVZP3fEZBQyekFDRfcXJLA_adlMak0jSios8,1920
|
|
110
110
|
bluer_ugv/README/ugvs/comparison/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
111
|
-
bluer_ugv/README/ugvs/comparison/build.py,sha256=
|
|
111
|
+
bluer_ugv/README/ugvs/comparison/build.py,sha256=Dj86jYV0gGHZQrTRH0wZ_Q8eh3yREBx5bgQ1Sw2bahA,4634
|
|
112
112
|
bluer_ugv/README/ugvs/comparison/features/DYI.py,sha256=ED5Tlc4KcEFpLPHjwfSNGE47guKCeBG7Q84TS0BPJgE,187
|
|
113
113
|
bluer_ugv/README/ugvs/comparison/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
114
|
bluer_ugv/README/ugvs/comparison/features/classes.py,sha256=xAxvmL1ol1pXQ1RHWYePFzIVKD3Guq_tZudjPTz6po8,3603
|
|
115
115
|
bluer_ugv/README/ugvs/comparison/features/concealment.py,sha256=9o_-eYFaqKR4KcjDmOkE9SVxtdsB4NLnJ_ytWuQLzOY,235
|
|
116
116
|
bluer_ugv/README/ugvs/comparison/features/control.py,sha256=bDLB0W4ESht-3v0gkQoIgfWDgbkyG7dWtyjdk-lt_yg,668
|
|
117
117
|
bluer_ugv/README/ugvs/comparison/features/cost.py,sha256=Q7PQ5iXKQcjXf_-w_mcuw1fM3oUzXzvuHu8P1kIcIq4,693
|
|
118
|
-
bluer_ugv/README/ugvs/comparison/features/db.py,sha256=
|
|
118
|
+
bluer_ugv/README/ugvs/comparison/features/db.py,sha256=dPCgE2pOJGlhfwvDvGS7tSlWJjp8MYHZ58BONvmbg30,1454
|
|
119
119
|
bluer_ugv/README/ugvs/comparison/features/payload.py,sha256=tJJ7_tLO0jcJREad5FxaJ7vTEvD4HbCa6TsBI5Q1ljg,501
|
|
120
120
|
bluer_ugv/README/ugvs/comparison/features/ps.py,sha256=EkWMs7GBPpQhalMlU_OZnm2JuKa8hTcmRRYRXvsxATY,229
|
|
121
|
-
bluer_ugv/README/ugvs/comparison/features/range.py,sha256=
|
|
121
|
+
bluer_ugv/README/ugvs/comparison/features/range.py,sha256=XbyWRRYzTyA7bxGQj2UcuCugR-unYwF_Xy7idFDrdXw,300
|
|
122
122
|
bluer_ugv/README/ugvs/comparison/features/sanction_proof.py,sha256=FRCSFmDsM5zuhI7kiwjETez9-ngLZI2rTLsVgv-ibIM,209
|
|
123
123
|
bluer_ugv/README/ugvs/comparison/features/size.py,sha256=7lkx-6CKpgjKyP2-ABXbrqvl3GvEqc8ORLSZHgwEsa8,704
|
|
124
124
|
bluer_ugv/README/ugvs/comparison/features/speed.py,sha256=VovKLYNIeLFviJlLlgk93kbmMExwDQ_r03r4FBSuQi8,262
|
|
@@ -128,8 +128,8 @@ bluer_ugv/README/ugvs/comparison/references/__init__.py,sha256=AbpHGcgLb-kRsJGnw
|
|
|
128
128
|
bluer_ugv/README/ugvs/comparison/references/classes.py,sha256=Ti91K7NqTTAK1nTCpE16kzmB8yxw-Q7Ff1c6l8v-ZpU,530
|
|
129
129
|
bluer_ugv/README/ugvs/comparison/references/db.py,sha256=_vlhmqdU0O0MHRlSeXH68lso-BDXB5UiUIO_ZvqRZ4Q,10237
|
|
130
130
|
bluer_ugv/README/ugvs/comparison/ugvs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
131
|
-
bluer_ugv/README/ugvs/comparison/ugvs/classes.py,sha256=
|
|
132
|
-
bluer_ugv/README/ugvs/comparison/ugvs/db.py,sha256=
|
|
131
|
+
bluer_ugv/README/ugvs/comparison/ugvs/classes.py,sha256=Z5l4rgC_QTKeXhKUvCO47CaxEsbhTANubF_iY0ZnptM,3596
|
|
132
|
+
bluer_ugv/README/ugvs/comparison/ugvs/db.py,sha256=2uCUACnDetrmi-F4AuZQ8cznEP_j6Uyx-3emlo2nAVE,9326
|
|
133
133
|
bluer_ugv/assets/comparison.html,sha256=UWKlQYww8bnVPfMXaGvIJoIGwvEOjqDmRK8hbuwD2rY,595
|
|
134
134
|
bluer_ugv/designs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
135
|
bluer_ugv/designs/eagle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -213,8 +213,8 @@ bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py,sha256=bVcG8V0P6Sl
|
|
|
213
213
|
bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py,sha256=_iQmec2VSq-ORkTVpXSNJg08hrSz2M1O8LzNZEtoT9U,959
|
|
214
214
|
bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py,sha256=En-J8BRTiR8k9p2CBbW0cOUuw8nctD5DOXDm5uhCNO4,3987
|
|
215
215
|
bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py,sha256=yj2MY_Jo1FzeXnR_JoFAXsb9eHEVhicDiHEsUa8z03U,1525
|
|
216
|
-
bluer_ugv-7.
|
|
217
|
-
bluer_ugv-7.
|
|
218
|
-
bluer_ugv-7.
|
|
219
|
-
bluer_ugv-7.
|
|
220
|
-
bluer_ugv-7.
|
|
216
|
+
bluer_ugv-7.645.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
|
|
217
|
+
bluer_ugv-7.645.1.dist-info/METADATA,sha256=JsmZaBmvJG7BPOPjHdXZnlHs8N6ZfmTQU8163mAjoKM,5579
|
|
218
|
+
bluer_ugv-7.645.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
219
|
+
bluer_ugv-7.645.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
|
|
220
|
+
bluer_ugv-7.645.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|