annet 0.14.12__py3-none-any.whl → 0.15.0__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 annet might be problematic. Click here for more details.

@@ -9,6 +9,7 @@ _VENDORS = {
9
9
  "catalyst": "Cisco Catalyst",
10
10
  "nexus": "Cisco Nexus",
11
11
  "huawei": "Huawei",
12
+ "optixtrans": "Huawei OptiXtrans",
12
13
  "juniper": "Juniper",
13
14
  "arista": "Arista",
14
15
  "pc": "PC",
@@ -52,8 +52,6 @@
52
52
  "Huawei.CE.CE8800.CE8850": " CE8850",
53
53
  "Huawei.CE.CE8800.CE8851": " CE8851",
54
54
  "Huawei.CE.CE9800": " CE98\\d\\d",
55
- "Huawei.DC": " DC\\d+",
56
- "Huawei.DC.DC908": " DC908",
57
55
  "Huawei.Quidway": " S\\d+",
58
56
  "Huawei.Quidway.S2x": " S2\\d{3}",
59
57
  "Huawei.Quidway.S2x.S2300": " S23\\d\\d",
@@ -67,6 +65,9 @@
67
65
  "Huawei.EI": "-EI(-|$)",
68
66
  "Huawei.HI": "-HI(-|$)",
69
67
  "Huawei.SI": "-SI(-|$)",
68
+ "Huawei.OptiXtrans": " OptiXtrans|DC",
69
+ "Huawei.OptiXtrans.DC": " DC",
70
+ "Huawei.OptiXtrans.DC.DC908": " DC908",
70
71
 
71
72
  "Juniper": "^[Jj]uniper",
72
73
  "Juniper.MX": " MX",
@@ -119,7 +120,8 @@
119
120
  "PC.Whitebox.Asterfusion.CX.CX500.CX532P-N": " CX532P-N",
120
121
  "PC.Whitebox.Ufispace": "[Uu]fi[Ss]pace",
121
122
  "PC.Whitebox.Ufispace.S": " S",
122
- "PC.Whitebox.Ufispace.S.S9110-32X": " S9110-32X",
123
+ "PC.Whitebox.Ufispace.S.S9100": " S91\\d\\d",
124
+ "PC.Whitebox.Ufispace.S.S9100.S9110_32X": " S9110-32X",
123
125
 
124
126
  "RouterOS": "^([Rr]outer[Oo][Ss]|[Mm]ikro[Tt]ik)",
125
127
 
@@ -77,6 +77,8 @@ def hw_to_vendor(hw: HardwareView) -> Optional[str]:
77
77
  return "nexus"
78
78
  elif hw.Cisco:
79
79
  return "cisco"
80
+ elif hw.OptiXtrans:
81
+ return "optixtrans"
80
82
  elif hw.Huawei:
81
83
  return "huawei"
82
84
  elif hw.Juniper:
@@ -105,6 +107,7 @@ def vendor_to_hw(vendor):
105
107
  "catalyst": "Cisco Catalyst",
106
108
  "nexus": "Cisco Nexus",
107
109
  "huawei": "Huawei",
110
+ "optixtrans": "Huawei OptiXtrans",
108
111
  "juniper": "Juniper",
109
112
  "arista": "Arista",
110
113
  "pc": "PC",
@@ -1,5 +1,6 @@
1
1
  VENDOR_REVERSES = {
2
2
  "huawei": "undo",
3
+ "optixtrans": "undo",
3
4
  "cisco": "no",
4
5
  "nexus": "no",
5
6
  "juniper": "delete",
@@ -13,6 +14,7 @@ VENDOR_REVERSES = {
13
14
 
14
15
  VENDOR_DIFF = {
15
16
  "huawei": "common.default_diff",
17
+ "optixtrans": "common.default_diff",
16
18
  "cisco": "common.default_diff",
17
19
  "nexus": "common.default_diff",
18
20
  "juniper": "juniper.default_diff",
@@ -26,6 +28,7 @@ VENDOR_DIFF = {
26
28
 
27
29
  VENDOR_DIFF_ORDERED = {
28
30
  "huawei": "common.ordered_diff",
31
+ "optixtrans": "common.ordered_diff",
29
32
  "cisco": "common.ordered_diff",
30
33
  "nexus": "common.ordered_diff",
31
34
  "juniper": "juniper.ordered_diff",
@@ -39,6 +42,7 @@ VENDOR_DIFF_ORDERED = {
39
42
 
40
43
  VENDOR_EXIT = {
41
44
  "huawei": "quit",
45
+ "optixtrans": "quit",
42
46
  "cisco": "exit",
43
47
  "nexus": "exit",
44
48
  "arista": "exit",
annet/annlib/tabparser.py CHANGED
@@ -263,6 +263,10 @@ class HuaweiFormatter(BlockExitFormatter):
263
263
  yield from super().block_exit(context)
264
264
 
265
265
 
266
+ class OptixtransFormatter(CommonFormatter):
267
+ pass
268
+
269
+
266
270
  class CiscoFormatter(BlockExitFormatter):
267
271
  def __init__(self, indent=" "):
268
272
  super().__init__("exit", indent)
@@ -644,6 +648,7 @@ def make_formatter(vendor, **kwargs):
644
648
  "cisco": CiscoFormatter,
645
649
  "nexus": CiscoFormatter,
646
650
  "huawei": HuaweiFormatter,
651
+ "optixtrans": OptixtransFormatter,
647
652
  "arista": CiscoFormatter,
648
653
  "nokia": NokiaFormatter,
649
654
  "routeros": RosFormatter,
@@ -0,0 +1,18 @@
1
+ # Рулбук деплоя на устройства
2
+ #
3
+ # Операторы:
4
+ # * Один аргумент
5
+ # ~ Несколько аргументов (минимум один)
6
+ #
7
+ # Параметры:
8
+ # %timeout=... Таймаут выполнения команды (в секундах, по умолчанию 30)
9
+ #
10
+ # Ответы на вопросы
11
+ #
12
+ # <команда>
13
+ # dialog: <вопрос> ::: <ответ> <параметры>
14
+ #
15
+ # Если <вопрос> заключён в слеши (//), то воспринимается как регулярка, иначе - точное совпадение.
16
+ # Параметы:
17
+ # %send_nl=... Посылать ли перевод строки после ответа (bool, по умолчанию true)
18
+ # -----
@@ -0,0 +1,5 @@
1
+ # В этом файле определяется порядок команд, в котором их следует подавать на устройство.
2
+ # - Если порядок команды не важен - ее можно не писать сюда совсем.
3
+ # - Если команда начинается с undo и прописан параметр %order_reverse - команда считается
4
+ # обратной, но занимает место между прямыми там, где указано (т.е. undo vlan batch
5
+ # будет стоять после блоков interface).
@@ -0,0 +1,13 @@
1
+ # Операторы:
2
+ # * Один аргумент в undo
3
+ # ~ Несколько аргументов (минимум один) в undo
4
+ #
5
+ # Параметры:
6
+ # %global Команда действует на любом уровне ниже
7
+ # %logic=... Кастомная функция обработки правила
8
+ # %diff_logic=... Кастомная функция построения диффа.
9
+ # данная функция работает для подблоков (в отличие от %logic)
10
+ # %comment=... Добавить коммент после строки который будет видно с опцией patch --add-comments
11
+ # Сделано в основном для того чтобы генерировать специальные команды для наливки
12
+ # -----
13
+ clock timezone
annet/tabparser.py CHANGED
@@ -3,6 +3,7 @@ from annet.annlib.tabparser import ( # pylint: disable=unused-import
3
3
  CiscoFormatter,
4
4
  CommonFormatter,
5
5
  HuaweiFormatter,
6
+ OptixtransFormatter,
6
7
  JuniperFormatter,
7
8
  JuniperList,
8
9
  NokiaFormatter,
@@ -14,7 +15,9 @@ from annet.annlib.tabparser import ( # pylint: disable=unused-import
14
15
 
15
16
 
16
17
  def make_formatter(hw, **kwargs):
17
- if hw.Huawei:
18
+ if hw.OptiXtrans:
19
+ cls = OptixtransFormatter
20
+ elif hw.Huawei:
18
21
  cls = HuaweiFormatter
19
22
  elif hw.Cisco.ASR or hw.Cisco.XRV:
20
23
  cls = AsrFormatter
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.14.12
3
+ Version: 0.15.0
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -17,7 +17,7 @@ annet/parallel.py,sha256=hLkzEht0KhzmzUWDdO4QFYQHzhxs3wPlTA8DxbB2ziw,17160
17
17
  annet/patching.py,sha256=nILbY5oJajN0b1j3f0HEJm05H3HVThnWvB7vDVh7UQw,559
18
18
  annet/reference.py,sha256=B8mH8VUMcecPnzULiTVb_kTQ7jQrCL7zp4pfIZQa5fk,4035
19
19
  annet/storage.py,sha256=Wr_D_w7JQD08nD2IvC6bcGJLH6Uv62tKznUyWWWVW5Q,3144
20
- annet/tabparser.py,sha256=ZjiI43ZVbrpMVR8qNbTbNh_U3oZ26VDc_2Y9wkkDkYA,874
20
+ annet/tabparser.py,sha256=dEavhVBd9TEFf2NOW_JpTDcz2rzNtP4siQPceWalpl0,957
21
21
  annet/text_term_format.py,sha256=CHb6viv45vmYl-SK1A1vyPHGhaEni6jVybBusaQnct8,2813
22
22
  annet/tracing.py,sha256=ndpM-au1c88uBBpOuH_z52qWZL773edYozNyys_wA68,4044
23
23
  annet/types.py,sha256=f2HwqoKa6AucwFwDMszoouB6m1B8n6VmdjHMktO30Kc,7175
@@ -26,7 +26,7 @@ annet/adapters/netbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
26
26
  annet/adapters/netbox/provider.py,sha256=Gymku2Ad7um4GR9MqzQzm2o2cBLHLhIYbF1Ytl0r0MA,1076
27
27
  annet/adapters/netbox/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  annet/adapters/netbox/common/client.py,sha256=-lWZmphD-OPuLIHNKhW_h2bnjrVaiyKYAD_MUPasEbo,2483
29
- annet/adapters/netbox/common/manufacturer.py,sha256=QrgHNaufLrKxGdbttO7yqk4Xh19TgAGsQkT7Y6QBEyY,1373
29
+ annet/adapters/netbox/common/manufacturer.py,sha256=K1z2ioP9ZikxjjfSAuAAszZALW0o9w1kLTnW5cR16tU,1412
30
30
  annet/adapters/netbox/common/models.py,sha256=Vgxbl_Mm-zOAi2BTlEzDppTTgZjafFEC5F9s_MTd_xU,3263
31
31
  annet/adapters/netbox/common/query.py,sha256=ziUFM7cUEbEIf3k1szTll4aO-OCUa-2Ogxbebi7Tegs,646
32
32
  annet/adapters/netbox/common/status_client.py,sha256=W4nTb2yvBlJ2UkWUmUhKQ2PaSQb1shjhHj5ebb4s2s4,591
@@ -44,20 +44,20 @@ annet/annlib/jsontools.py,sha256=J_pToAAXQphP1QFh6uLQH9PnmHO68I5WV64qIQXLeDQ,380
44
44
  annet/annlib/lib.py,sha256=eJ4hcVuQ6pdYBzLs4YKCHFtq45idOfZCYp92XfF7_QI,15317
45
45
  annet/annlib/output.py,sha256=_SjJ6G6bejvnTKqNHw6xeio0FT9oO3OIkLaOC3cEga4,7569
46
46
  annet/annlib/patching.py,sha256=GwG2lT4w-I1Ls3Eswn6SPJLBUVt2M3Ysw1fmXsWamYw,19793
47
- annet/annlib/tabparser.py,sha256=oV2sR_paW_tXUfHuAtL9OtV2V4PZICQuxH4VXOjhcqM,25793
47
+ annet/annlib/tabparser.py,sha256=TnDVxJ8PkQzn_IPdwkcantGzckRNIYPQAtlHwo9bnXY,25891
48
48
  annet/annlib/types.py,sha256=VHU0CBADfYmO0xzB_c5f-mcuU3dUumuJczQnqGlib9M,852
49
49
  annet/annlib/netdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
50
  annet/annlib/netdev/db.py,sha256=fI_u5aya4l61mbYSjj4JwlVfi3s7obt2jqERSuXGRUI,1634
51
51
  annet/annlib/netdev/devdb/__init__.py,sha256=aKYjjLbJebdKBjnGDpVLQdSqrV2JL24spGm58tmMWVU,892
52
- annet/annlib/netdev/devdb/data/devdb.json,sha256=_jq8dw27nc3p3s8s9UCZIGNcb7op5ArS5cC1jQjYHdI,5453
52
+ annet/annlib/netdev/devdb/data/devdb.json,sha256=0c7r0_NF0QQVPd0p84yyFLKIn5iusuU0S45NDorLWEM,5570
53
53
  annet/annlib/netdev/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  annet/annlib/netdev/views/dump.py,sha256=rIlyvnA3uM8bB_7oq1nS2KDxTp6dQh2hz-FbNhYIpOU,4630
55
- annet/annlib/netdev/views/hardware.py,sha256=o-w-k1bOORWwEnSGsDq-9Q_oIeH3yQv9eiCJn_UgG-Y,3324
55
+ annet/annlib/netdev/views/hardware.py,sha256=6453atMaeoLWJSXzZxQ0zeTrdtRwCv0dlu6ivvpcdYE,3423
56
56
  annet/annlib/rbparser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  annet/annlib/rbparser/acl.py,sha256=RR8yPt6t96_IiyuKVbeZ-3x32cyhBAT2wC1y99oWBO8,3931
58
58
  annet/annlib/rbparser/deploying.py,sha256=ACT8QNhDAhJx3ZKuGh2nYBOrpdka2qEKuLDxvQAGKLk,1649
59
59
  annet/annlib/rbparser/ordering.py,sha256=DiKqyY8Khz-5MTxNF1GSNtZgtyKwT3YYCXpahIPB6Ps,1779
60
- annet/annlib/rbparser/platform.py,sha256=iyqy4A-6vUKM4j6hrOA6tsgWBXk7LcvkFrS2QHgkqho,1231
60
+ annet/annlib/rbparser/platform.py,sha256=_W84Gt3XwURT2MLngZSmwZbWgqsnbrwzjNgHIHa8Xug,1365
61
61
  annet/annlib/rbparser/syntax.py,sha256=iZ7Y-4QQBw4L3UtjEh54qisiRDhobl7HZxFNdP8mi54,3577
62
62
  annet/annlib/rulebook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  annet/annlib/rulebook/common.py,sha256=9kCZwZpsH5UliF2OzaN9nLs2eLlz_d__4L7_oZ3SrCw,16054
@@ -115,6 +115,9 @@ annet/rulebook/texts/nexus.deploy,sha256=9YNAQEw7aQxtYZJbE-dMD6qJrTzs_G92Ifrx3Ft
115
115
  annet/rulebook/texts/nexus.order,sha256=AZMKCD5Zf_mBOlE36aMDvO4w5rdbepTz1Dsyv7xP9Qs,1834
116
116
  annet/rulebook/texts/nexus.rul,sha256=veixbi_ztbX6OMV_WjdkgpEXa47yDxOkPE0YQ6r4wqs,2558
117
117
  annet/rulebook/texts/nokia.rul,sha256=gxK7FCRdjGUs7tDHTUebVOgkzWINAGibMPtz8tzvwg4,1077
118
+ annet/rulebook/texts/optixtrans.deploy,sha256=SVX8-yLHM90tJC4M-ekpGuGM1aQZW3euSGyg67l--R0,781
119
+ annet/rulebook/texts/optixtrans.order,sha256=NbeEP5oBsC-Iw84T8dpmc_s3BXJofXYeTdGdjUmPsYM,623
120
+ annet/rulebook/texts/optixtrans.rul,sha256=MvQX16Gyc1loCgPgLd2Ei1BYrTDZ33CayQurc_j9xVk,898
118
121
  annet/rulebook/texts/pc.order,sha256=WTSosHmIA5LyHO_DNAH1VDeuXHEgZ9e_aDFyAtIW6rE,275
119
122
  annet/rulebook/texts/pc.rul,sha256=zwIkSdOsJ6gmIj1sfy0xa4_yQRRBRjSQEqopsqFE2u8,302
120
123
  annet/rulebook/texts/ribbon.deploy,sha256=hCq2XeAcwaYanyQ8lTdnez6Pgq-gRqpNuR8dAleIn3U,864
@@ -124,10 +127,10 @@ annet/rulebook/texts/routeros.rul,sha256=ipfxjj0mjFef6IsUlupqx4BY_Je_OUb8u_U1019
124
127
  annet_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
128
  annet_generators/example/__init__.py,sha256=zVd8_DrXuOASrNzg2Ab94rPyvJff83L-_HppDFxnUjM,228
126
129
  annet_generators/example/lldp.py,sha256=68CLrK7vxTQQy9XIBxtywuEdBNlIlfXGYj8_wYWs5UI,1146
127
- annet-0.14.12.dist-info/AUTHORS,sha256=rh3w5P6gEgqmuC-bw-HB68vBCr-yIBFhVL0PG4hguLs,878
128
- annet-0.14.12.dist-info/LICENSE,sha256=yPxl7dno02Pw7gAcFPIFONzx_gapwDoPXsIsh6Y7lC0,1079
129
- annet-0.14.12.dist-info/METADATA,sha256=InkwrEKTMz3m65rKm8CO1hU5j68JfvX0mtcE3yuB3_Q,695
130
- annet-0.14.12.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
131
- annet-0.14.12.dist-info/entry_points.txt,sha256=yHimujIzR2bwNIbb--MTs_GpXiAve89Egpu2LlgTEkg,119
132
- annet-0.14.12.dist-info/top_level.txt,sha256=QsoTZBsUtwp_FEcmRwuN8QITBmLOZFqjssRfKilGbP8,23
133
- annet-0.14.12.dist-info/RECORD,,
130
+ annet-0.15.0.dist-info/AUTHORS,sha256=rh3w5P6gEgqmuC-bw-HB68vBCr-yIBFhVL0PG4hguLs,878
131
+ annet-0.15.0.dist-info/LICENSE,sha256=yPxl7dno02Pw7gAcFPIFONzx_gapwDoPXsIsh6Y7lC0,1079
132
+ annet-0.15.0.dist-info/METADATA,sha256=YnR3Nr5WQwY-i1k4A8V_fKC_QIVrG36hp_oEhzebxTA,694
133
+ annet-0.15.0.dist-info/WHEEL,sha256=ixB2d4u7mugx_bCBycvM9OzZ5yD7NmPXFRtKlORZS2Y,91
134
+ annet-0.15.0.dist-info/entry_points.txt,sha256=yHimujIzR2bwNIbb--MTs_GpXiAve89Egpu2LlgTEkg,119
135
+ annet-0.15.0.dist-info/top_level.txt,sha256=QsoTZBsUtwp_FEcmRwuN8QITBmLOZFqjssRfKilGbP8,23
136
+ annet-0.15.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.0.0)
2
+ Generator: setuptools (74.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5