scrapli 2.0.0a4__py3-none-macosx_11_0_arm64.whl → 2.0.0a5__py3-none-macosx_11_0_arm64.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.
- scrapli/__init__.py +5 -6
- scrapli/auth.py +14 -7
- scrapli/cli.py +300 -0
- scrapli/cli_parse.py +1 -1
- scrapli/cli_result.py +42 -0
- scrapli/definitions/aethra_atosnt.yaml +9 -0
- scrapli/definitions/alcatel_aos.yaml +9 -0
- scrapli/definitions/arista_eos.yaml +1 -0
- scrapli/definitions/aruba_aoscx.yaml +33 -0
- scrapli/definitions/cisco_aireos.yaml +31 -0
- scrapli/definitions/cisco_asa.yaml +48 -0
- scrapli/definitions/cisco_cbs.yaml +50 -0
- scrapli/definitions/cisco_ftd.yaml +42 -0
- scrapli/definitions/cisco_nxos.yaml +2 -0
- scrapli/definitions/cumulus_linux.yaml +28 -0
- scrapli/definitions/cumulus_vtysh.yaml +42 -0
- scrapli/definitions/datacom_dmos.yaml +30 -0
- scrapli/definitions/datacom_dmswitch.yaml +32 -0
- scrapli/definitions/default.yaml +9 -0
- scrapli/definitions/dell_emc.yaml +46 -0
- scrapli/definitions/dell_enterprisesonic.yaml +40 -0
- scrapli/definitions/dlink_os.yaml +46 -0
- scrapli/definitions/edgecore_ecs.yaml +35 -0
- scrapli/definitions/eltex_esr.yaml +43 -0
- scrapli/definitions/fortinet_fortios.yaml +20 -0
- scrapli/definitions/fortinet_wlc.yaml +33 -0
- scrapli/definitions/hp_comware.yaml +31 -0
- scrapli/definitions/huawei_smartax.yaml +61 -0
- scrapli/definitions/huawei_vrp.yaml +56 -0
- scrapli/definitions/juniper_junos.yaml +3 -0
- scrapli/definitions/nokia_srlinux.yaml +13 -2
- scrapli/definitions/nokia_sros.yaml +31 -0
- scrapli/definitions/nokia_sros_classic.yaml +33 -0
- scrapli/definitions/nokia_sros_classic_aram.yaml +25 -0
- scrapli/definitions/paloalto_panos.yaml +36 -0
- scrapli/definitions/raisecom_ros.yaml +45 -0
- scrapli/definitions/ruckus_fastiron.yaml +45 -0
- scrapli/definitions/ruckus_unleashed.yaml +64 -0
- scrapli/definitions/siemens_roxii.yaml +28 -0
- scrapli/definitions/versa_flexvnf.yaml +45 -0
- scrapli/definitions/vyos_vyos.yaml +35 -0
- scrapli/definitions/zyxel_dslam.yaml +18 -0
- scrapli/ffi.py +1 -1
- scrapli/ffi_mapping.py +89 -33
- scrapli/ffi_mapping_cli.py +104 -0
- scrapli/ffi_mapping_options.py +38 -6
- scrapli/ffi_types.py +1 -1
- scrapli/helper.py +56 -0
- scrapli/lib/{libscrapli.0.0.1-alpha.13.dylib → libscrapli.0.0.1-alpha.17.dylib} +0 -0
- {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/METADATA +1 -1
- scrapli-2.0.0a5.dist-info/RECORD +67 -0
- scrapli-2.0.0a4.dist-info/RECORD +0 -34
- {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/WHEEL +0 -0
- {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/licenses/LICENSE +0 -0
- {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/top_level.txt +0 -0
scrapli/ffi_mapping_cli.py
CHANGED
@@ -13,6 +13,7 @@ from _ctypes import POINTER
|
|
13
13
|
|
14
14
|
from scrapli.ffi_types import (
|
15
15
|
CANCEL,
|
16
|
+
BoolPointer,
|
16
17
|
CancelPointer,
|
17
18
|
DriverPointer,
|
18
19
|
IntPointer,
|
@@ -261,6 +262,42 @@ class LibScrapliCliMapping:
|
|
261
262
|
]
|
262
263
|
lib.ls_cli_send_prompted_input.restype = c_uint8
|
263
264
|
|
265
|
+
self._read_any: Callable[
|
266
|
+
[
|
267
|
+
DriverPointer,
|
268
|
+
OperationIdPointer,
|
269
|
+
CancelPointer,
|
270
|
+
],
|
271
|
+
int,
|
272
|
+
] = lib.ls_cli_read_any
|
273
|
+
lib.ls_cli_read_any.argtypes = [
|
274
|
+
DriverPointer,
|
275
|
+
OperationIdPointer,
|
276
|
+
CancelPointer,
|
277
|
+
]
|
278
|
+
lib.ls_cli_read_any.restype = c_uint8
|
279
|
+
|
280
|
+
self._read_callback_should_execute: Callable[
|
281
|
+
[
|
282
|
+
c_char_p,
|
283
|
+
c_char_p,
|
284
|
+
c_char_p,
|
285
|
+
c_char_p,
|
286
|
+
c_char_p,
|
287
|
+
BoolPointer,
|
288
|
+
],
|
289
|
+
int,
|
290
|
+
] = lib.ls_cli_read_callback_should_execute
|
291
|
+
lib.ls_cli_read_callback_should_execute.argtypes = [
|
292
|
+
c_char_p,
|
293
|
+
c_char_p,
|
294
|
+
c_char_p,
|
295
|
+
c_char_p,
|
296
|
+
c_char_p,
|
297
|
+
POINTER(c_bool),
|
298
|
+
]
|
299
|
+
lib.ls_cli_read_callback_should_execute.restype = c_uint8
|
300
|
+
|
264
301
|
def alloc(
|
265
302
|
self,
|
266
303
|
*,
|
@@ -664,3 +701,70 @@ class LibScrapliCliMapping:
|
|
664
701
|
hidden_response,
|
665
702
|
retain_trailing_prompt,
|
666
703
|
)
|
704
|
+
|
705
|
+
def read_any(self, ptr: DriverPointer, operation_id: OperationIdPointer) -> int:
|
706
|
+
"""
|
707
|
+
Read any available data from the session, up to the normal timeout behavior.
|
708
|
+
|
709
|
+
Should (generally) not be called directly/by users.
|
710
|
+
|
711
|
+
Args:
|
712
|
+
ptr: the ptr to the libscrapli cli/netconf object.
|
713
|
+
operation_id: int pointer to fill with the id of the submitted operation
|
714
|
+
|
715
|
+
Returns:
|
716
|
+
int: return code, non-zero value indicates an error. technically a c_uint8 converted by
|
717
|
+
ctypes.
|
718
|
+
|
719
|
+
Raises:
|
720
|
+
N/A
|
721
|
+
|
722
|
+
"""
|
723
|
+
return self._read_any(
|
724
|
+
ptr,
|
725
|
+
operation_id,
|
726
|
+
CANCEL,
|
727
|
+
)
|
728
|
+
|
729
|
+
def read_callback_should_execute(
|
730
|
+
self,
|
731
|
+
buf: c_char_p,
|
732
|
+
name: c_char_p,
|
733
|
+
contains: c_char_p,
|
734
|
+
contains_pattern: c_char_p,
|
735
|
+
not_contains: c_char_p,
|
736
|
+
execute: BoolPointer,
|
737
|
+
) -> int:
|
738
|
+
"""
|
739
|
+
Decide if a callback should execute for read_with_callbacks operations.
|
740
|
+
|
741
|
+
Should (generally) not be called directly/by users.
|
742
|
+
|
743
|
+
Done in zig due to regex checks and wanting to ensure we always use pcre2 (vs go re, py re).
|
744
|
+
|
745
|
+
Args:
|
746
|
+
buf: the buf to use to check if the callback should execute
|
747
|
+
name: the name of the callback
|
748
|
+
contains: the contains string to check for in the buf -- if found, the callback should
|
749
|
+
execute
|
750
|
+
contains_pattern: a string pattern that, if found, indicates the callback should execute
|
751
|
+
not_contains: string that contains data that should not be in the buf for hte callback
|
752
|
+
to execute
|
753
|
+
execute: bool pointer to update w/ execution state
|
754
|
+
|
755
|
+
Returns:
|
756
|
+
int: return code, non-zero value indicates an error. technically a c_uint8 converted by
|
757
|
+
ctypes.
|
758
|
+
|
759
|
+
Raises:
|
760
|
+
N/A
|
761
|
+
|
762
|
+
"""
|
763
|
+
return self._read_callback_should_execute(
|
764
|
+
buf,
|
765
|
+
name,
|
766
|
+
contains,
|
767
|
+
contains_pattern,
|
768
|
+
not_contains,
|
769
|
+
execute,
|
770
|
+
)
|
scrapli/ffi_mapping_options.py
CHANGED
@@ -368,13 +368,21 @@ class LibScrapliAuthOptionsMapping:
|
|
368
368
|
]
|
369
369
|
lib.ls_option_auth_set_lookup_key_value.restype = c_uint8
|
370
370
|
|
371
|
-
self.
|
372
|
-
lib.
|
371
|
+
self._set_force_in_session_auth: Callable[[DriverPointer], int] = (
|
372
|
+
lib.ls_option_auth_force_in_session_auth
|
373
373
|
)
|
374
|
-
lib.
|
374
|
+
lib.ls_option_auth_force_in_session_auth.argtypes = [
|
375
375
|
DriverPointer,
|
376
376
|
]
|
377
|
-
lib.
|
377
|
+
lib.ls_option_auth_force_in_session_auth.restype = c_uint8
|
378
|
+
|
379
|
+
self._set_bypass_in_session_auth: Callable[[DriverPointer], int] = (
|
380
|
+
lib.ls_option_auth_bypass_in_session_auth
|
381
|
+
)
|
382
|
+
lib.ls_option_auth_bypass_in_session_auth.argtypes = [
|
383
|
+
DriverPointer,
|
384
|
+
]
|
385
|
+
lib.ls_option_auth_bypass_in_session_auth.restype = c_uint8
|
378
386
|
|
379
387
|
self._set_username_pattern: Callable[[DriverPointer, c_char_p], int] = (
|
380
388
|
lib.ls_option_auth_username_pattern
|
@@ -511,7 +519,31 @@ class LibScrapliAuthOptionsMapping:
|
|
511
519
|
"""
|
512
520
|
return self._set_lookup_key_value(ptr, key, value)
|
513
521
|
|
514
|
-
def
|
522
|
+
def set_force_in_session_auth(
|
523
|
+
self,
|
524
|
+
ptr: DriverPointer,
|
525
|
+
) -> int:
|
526
|
+
"""
|
527
|
+
Force in session auth.
|
528
|
+
|
529
|
+
Should not be used/called directly.
|
530
|
+
|
531
|
+
Args:
|
532
|
+
ptr: ptr to the cli/netconf object
|
533
|
+
|
534
|
+
Returns:
|
535
|
+
int: return code, non-zero value indicates an error. technically a c_uint8 converted by
|
536
|
+
ctypes.
|
537
|
+
|
538
|
+
Raises:
|
539
|
+
N/A
|
540
|
+
|
541
|
+
"""
|
542
|
+
return self._set_force_in_session_auth(
|
543
|
+
ptr,
|
544
|
+
)
|
545
|
+
|
546
|
+
def set_bypass_in_session_auth(
|
515
547
|
self,
|
516
548
|
ptr: DriverPointer,
|
517
549
|
) -> int:
|
@@ -531,7 +563,7 @@ class LibScrapliAuthOptionsMapping:
|
|
531
563
|
N/A
|
532
564
|
|
533
565
|
"""
|
534
|
-
return self.
|
566
|
+
return self._set_bypass_in_session_auth(
|
535
567
|
ptr,
|
536
568
|
)
|
537
569
|
|
scrapli/ffi_types.py
CHANGED
@@ -24,11 +24,11 @@ OperationId = c_uint
|
|
24
24
|
# so... we'll just tell mypy to chill out on these
|
25
25
|
OperationIdPointer: TypeAlias = POINTER(OperationId) # type: ignore[valid-type]
|
26
26
|
CancelPointer: TypeAlias = POINTER(c_bool) # type: ignore[valid-type]
|
27
|
+
BoolPointer: TypeAlias = POINTER(c_bool) # type: ignore[valid-type]
|
27
28
|
ZigSlicePointer: TypeAlias = POINTER("ZigSlice") # type: ignore[valid-type, call-overload]
|
28
29
|
StringPointer: TypeAlias = POINTER(c_char_p) # type: ignore[valid-type]
|
29
30
|
IntPointer: TypeAlias = POINTER(c_int) # type: ignore[valid-type]
|
30
31
|
U64Pointer: TypeAlias = POINTER(c_uint64) # type: ignore[valid-type]
|
31
|
-
BoolPointer: TypeAlias = POINTER(c_bool) # type: ignore[valid-type]
|
32
32
|
|
33
33
|
# cancellation is handled via timeout in python (vs context cancellation in go), so just have
|
34
34
|
# an always false cancellation pointer
|
scrapli/helper.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
"""scrapli.helper"""
|
2
2
|
|
3
3
|
from asyncio import get_event_loop
|
4
|
+
from datetime import datetime
|
4
5
|
from os import read
|
5
6
|
from pathlib import Path
|
6
7
|
from select import select
|
@@ -93,3 +94,58 @@ async def wait_for_available_operation_result_async(fd: int) -> None:
|
|
93
94
|
await _wait_for_fd_readable(fd)
|
94
95
|
|
95
96
|
read(fd, 1)
|
97
|
+
|
98
|
+
|
99
|
+
def unix_nano_timestmap_to_iso(timestamp: int) -> str:
|
100
|
+
"""
|
101
|
+
Convert a unix ns timestamp to iso format.
|
102
|
+
|
103
|
+
Args:
|
104
|
+
timestamp: the timestamp to convert
|
105
|
+
|
106
|
+
Returns:
|
107
|
+
str: converted timestamp
|
108
|
+
|
109
|
+
Raises:
|
110
|
+
N/A
|
111
|
+
|
112
|
+
"""
|
113
|
+
return datetime.fromtimestamp(timestamp / 1_000_000_000).isoformat(timespec="milliseconds")
|
114
|
+
|
115
|
+
|
116
|
+
def bulid_result_preview(result: str) -> str:
|
117
|
+
"""
|
118
|
+
Build a preview of output for str method of result objects from the given result string.
|
119
|
+
|
120
|
+
Skips lines that are all the same char (like a banner line "****") and only shows a single line
|
121
|
+
plus a "... <truncated>" line indicating longer output.
|
122
|
+
|
123
|
+
Args:
|
124
|
+
result: the full result to build the preview for
|
125
|
+
|
126
|
+
Returns:
|
127
|
+
str: result preview
|
128
|
+
|
129
|
+
Raises:
|
130
|
+
N/A
|
131
|
+
|
132
|
+
"""
|
133
|
+
lines = result.splitlines()
|
134
|
+
|
135
|
+
def boring_line(line: str) -> bool:
|
136
|
+
stripped = line.strip()
|
137
|
+
|
138
|
+
return not stripped or len(set(stripped)) == 1
|
139
|
+
|
140
|
+
preview_line = ""
|
141
|
+
|
142
|
+
for line in lines[:2]:
|
143
|
+
if not boring_line(line):
|
144
|
+
preview_line = line[:40].rstrip()
|
145
|
+
break
|
146
|
+
|
147
|
+
if len(result) > len(preview_line):
|
148
|
+
# spacing to make it look nice in result str method
|
149
|
+
return f"{preview_line}\n\t : ... <truncated>"
|
150
|
+
|
151
|
+
return preview_line
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: scrapli
|
3
|
-
Version: 2.0.
|
3
|
+
Version: 2.0.0a5
|
4
4
|
Summary: Fast, flexible, sync/async, Python 3.10+ screen scraping client specifically for network devices
|
5
5
|
Author-email: Carl Montanari <carl.r.montanari@gmail.com>
|
6
6
|
License-Expression: MIT
|
@@ -0,0 +1,67 @@
|
|
1
|
+
scrapli/__init__.py,sha256=G3vjD5_RuxNDmBIefMHrVKYNg1A68L63Xqd-oN1qPBg,916
|
2
|
+
scrapli/auth.py,sha256=kTbgydd5pWoAbQXGSW46slweKiaTdSxy3E7N7jshnME,8282
|
3
|
+
scrapli/cli.py,sha256=LKBqSlfig8nL-OlD8qIOUApyyPUT9_L-MoBtmBTSWAs,57045
|
4
|
+
scrapli/cli_decorators.py,sha256=Mj1BfouFiAWb2bbVvhBgc9qqJou6mf-ClvK3Ngy1dJA,4412
|
5
|
+
scrapli/cli_parse.py,sha256=fIdRx2cEAgjCqn2N4Q3sXY_g1Sk4wrsWQ7ula_nMQOU,5188
|
6
|
+
scrapli/cli_result.py,sha256=q4RG-F_fNFNbHmlC2koLbjEzkpNddI_IqUwZpKGaLU4,6005
|
7
|
+
scrapli/exceptions.py,sha256=RNU720WL6efW_4Pdjruzp0M-Se-zQR3mFcsrzscvaPA,1524
|
8
|
+
scrapli/ffi.py,sha256=wnAaSMd0x2aknCyKHrLvUbOkOu0yEocw8uCQlgiBDwM,2149
|
9
|
+
scrapli/ffi_mapping.py,sha256=3kP-u9BsKaUe-9MtxzvL9P3qnYzFnzA5-35fiQZzsDk,6451
|
10
|
+
scrapli/ffi_mapping_cli.py,sha256=USSlwnfsZtHtV7ZzDFrL248HdfIHuv61TqD122V2owI,21337
|
11
|
+
scrapli/ffi_mapping_netconf.py,sha256=G7VmR-pIQI5G4SEkDYoAtDVa_pfDaTRM2U9chfXhqaY,42156
|
12
|
+
scrapli/ffi_mapping_options.py,sha256=1Y8BUWv0pG07qWMtv_pZjIqICb604Hu--COnr_z7SUI,28368
|
13
|
+
scrapli/ffi_types.py,sha256=1ziWVjC82HVdZMg5-52AzvEYYBt6vba6NgSzjwRq5RM,4501
|
14
|
+
scrapli/helper.py,sha256=Cf8sQq8PMFLI2QAyxvG2Zd1DqTeKRO_BrOld4CDi4EQ,2963
|
15
|
+
scrapli/netconf.py,sha256=T_Op82Qjo5P3WCb-OMOiAYqgu82oqzuymet4AmGFUD0,80054
|
16
|
+
scrapli/netconf_decorators.py,sha256=C5yk5Gq7OD_V1g6rVOi8qzeA5MQHEI3B2IUXxyj0IIU,4464
|
17
|
+
scrapli/netconf_result.py,sha256=JHvNa5KX6gEf5iwJxCc9Hlcg5ljhRWkd0aoGaXAtYPw,1174
|
18
|
+
scrapli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
+
scrapli/session.py,sha256=8f3XvpZ-4-uw4uuRBVtQMbo8Ftzwu99uCwDL9_UQkO8,4275
|
20
|
+
scrapli/transport.py,sha256=vg6uMpsXrx6kOyNxnyg0OZ74w2U9rj1aPk0oz__2D0c,9506
|
21
|
+
scrapli/definitions/__init__.py,sha256=d-XZBK_ZjN4Sy6SmhJL-T4imYY_UioM8gSiX-PKVDuE,26
|
22
|
+
scrapli/definitions/aethra_atosnt.yaml,sha256=K_S4Iec_lA6hmleF85bs2AJr3gQjO4dbtUiMSoIzx5Q,189
|
23
|
+
scrapli/definitions/alcatel_aos.yaml,sha256=oHM9F93-eApg9zuR65M1JCQTgxdwr0-c0V2IcbQNKH8,213
|
24
|
+
scrapli/definitions/arista_eos.yaml,sha256=WNgxbzEm3Jrz0K2emmM4jTixCYfPU6oD2Vl3_Rz_0Uw,1751
|
25
|
+
scrapli/definitions/aruba_aoscx.yaml,sha256=FQlRxBOGUdGueveBx9ek3kWoowzfAvRPByypyu_0XD4,868
|
26
|
+
scrapli/definitions/cisco_aireos.yaml,sha256=QewqV3DINNrOmJTOjcPma4qeznlEeuhJ8NQB9giIQVY,801
|
27
|
+
scrapli/definitions/cisco_asa.yaml,sha256=60v3PwEV7-aSVztmZbd_9oig4259no-euva9rHnEDg0,1313
|
28
|
+
scrapli/definitions/cisco_cbs.yaml,sha256=ds1-fBOThR3W5VA8XqrkF2yAzeMVtUIo4WIXNPA0fdw,1399
|
29
|
+
scrapli/definitions/cisco_ftd.yaml,sha256=rIbZ1gBMiJULJAjaj3sl95o73bep5ojVRgRfD94SoKY,1039
|
30
|
+
scrapli/definitions/cisco_iosxe.yaml,sha256=nnqi8qQmFmKX4BgnuLMJqj0hAyqkVRmSfmDLsJKBFaA,1699
|
31
|
+
scrapli/definitions/cisco_iosxr.yaml,sha256=hkxQe9sMyCx3Eo9BDSxHD1MWG6yxHl6EHnyjSTjD-_I,1317
|
32
|
+
scrapli/definitions/cisco_nxos.yaml,sha256=6zJVtPDyh7U0y2zRl524okCPusRS-hlDOwpoWtVQjyA,1949
|
33
|
+
scrapli/definitions/cumulus_linux.yaml,sha256=0KPBMGoxGSL-znA-KURiPPJw_-prUX4UKexPi83rWt0,668
|
34
|
+
scrapli/definitions/cumulus_vtysh.yaml,sha256=QOVG77ioTy057wbGuqMfvATnqS75Y3_hskOFho_3j4g,1007
|
35
|
+
scrapli/definitions/datacom_dmos.yaml,sha256=CpEJlg4i4GXg_jkZdttuQwyk6RjhEU74GF2X7hinwsw,696
|
36
|
+
scrapli/definitions/datacom_dmswitch.yaml,sha256=Z1NKSUM_F4dkPAHiMjKaI_mqa_JPRMaEvSw43t8tCqs,745
|
37
|
+
scrapli/definitions/default.yaml,sha256=iGegcCtWsGCnb9Z5yYVf2uFGyE1QKw5FkGnLBoYiIbw,169
|
38
|
+
scrapli/definitions/dell_emc.yaml,sha256=TcsN5xf61RDHg8aIIw-DsvOBaiMtk9qp3E13MIGldUo,1313
|
39
|
+
scrapli/definitions/dell_enterprisesonic.yaml,sha256=iOC4dkx6tSTzJe6L4dVeVwnR-7MMJJLpK4kbxJuU08I,970
|
40
|
+
scrapli/definitions/dlink_os.yaml,sha256=vJqLO-BW0I7fI_K6HXfEsNPm9jMbR8yrIqdf2Q-Tr-k,1295
|
41
|
+
scrapli/definitions/edgecore_ecs.yaml,sha256=taxJAu0GW5aXIFlp3XethnsAAz37oLaVrEP_QOD-PHg,915
|
42
|
+
scrapli/definitions/eltex_esr.yaml,sha256=qZ-hCaQImgJjVUt7BuzzfgUU4spOERDEdG-A24yT1-8,1217
|
43
|
+
scrapli/definitions/fortinet_fortios.yaml,sha256=dLwUKbaCXHfnJmKGoIuGC9ld61SG4UgMcdCnJvfIB9w,468
|
44
|
+
scrapli/definitions/fortinet_wlc.yaml,sha256=QkFN7ZE5bN4cYpzNsoUbl7FvjroCfMXApUFSPeszVhE,899
|
45
|
+
scrapli/definitions/hp_comware.yaml,sha256=nOdm6ImtR9CR0V-UnXyzqnzLTkBSKmsfO5-iCjtzC9Y,852
|
46
|
+
scrapli/definitions/huawei_smartax.yaml,sha256=E5XHM40UVAiv0tNZqqZFmFNcnm6M4WM0CUpb3Qf1eoA,1511
|
47
|
+
scrapli/definitions/huawei_vrp.yaml,sha256=3j1XJr9XDo_GtGeAlvf2F4INDyM6by-dqaItO-8Qej8,2205
|
48
|
+
scrapli/definitions/juniper_junos.yaml,sha256=WETQGc8QCCTo-cu2-K32BNMlAH6lHLZGRNIxUZbpW30,2592
|
49
|
+
scrapli/definitions/nokia_srlinux.yaml,sha256=xi9nMWXnwBpv_g8IBrOcww-I3vSwYTEo3-OpPJIUXx0,1324
|
50
|
+
scrapli/definitions/nokia_sros.yaml,sha256=8vYccqUDz1YdY7cBSBS_S72HbCULm--r1PyyMBE73MA,720
|
51
|
+
scrapli/definitions/nokia_sros_classic.yaml,sha256=xoZjeP4YaBNK9X9IgsQ8KXUBU1054qUhBnqGSdv-2ng,772
|
52
|
+
scrapli/definitions/nokia_sros_classic_aram.yaml,sha256=nRdtrQe6cMq5eee8ttw7JQJspjTikxQcuWSupe0ZveI,584
|
53
|
+
scrapli/definitions/paloalto_panos.yaml,sha256=pvK4XO9YNtt0VSWPmU9-VZn2fYldWCIBTTTtvzk8zsM,880
|
54
|
+
scrapli/definitions/raisecom_ros.yaml,sha256=GTAoA-YkCZRw719VLN1omeRrGGs4fAJPzKdCixMHT-w,1288
|
55
|
+
scrapli/definitions/ruckus_fastiron.yaml,sha256=9T95H7z-twIRHi8H4WdUF2oQ2NEp-QcGql6oGwLKwTo,1249
|
56
|
+
scrapli/definitions/ruckus_unleashed.yaml,sha256=93C7alrRuPu05ZOdMtgNULTOM-MV_ZY9A_brfrTnDU0,1679
|
57
|
+
scrapli/definitions/siemens_roxii.yaml,sha256=HtuER7N45x5XsRP9NePTgo2SIFoO7D78anou8GTvs4c,737
|
58
|
+
scrapli/definitions/versa_flexvnf.yaml,sha256=31cDWn2QhwPUxsb5fVI0Bs6utWXIvkDfRH8POUn65XY,1086
|
59
|
+
scrapli/definitions/vyos_vyos.yaml,sha256=R2x4R-33opgocFXVdxZfCRSNUPt0F_lMSJe6m9bJNzw,958
|
60
|
+
scrapli/definitions/zyxel_dslam.yaml,sha256=OVZXtwKkEQ_zjX4j4ZEFXMsP7Y7UziFkyfEYHzqtW9g,412
|
61
|
+
scrapli/lib/__init__.py,sha256=emX2ZjmnwMNIozlcKNDDXr_4zlryoLD8h2fM-CO3KZY,18
|
62
|
+
scrapli/lib/libscrapli.0.0.1-alpha.17.dylib,sha256=mp5UYE6wTotiFRdXpdgTfYSmbsenzq2LREaElGgK9Xc,5504088
|
63
|
+
scrapli-2.0.0a5.dist-info/licenses/LICENSE,sha256=IeyhkG2h_dAvJ7nAF0S4GSUg045jwI27YADV_KSJi50,1071
|
64
|
+
scrapli-2.0.0a5.dist-info/METADATA,sha256=holO5Rx518SE2VdkuaderSoSsEG8yN2pQQffMKPBgpk,2286
|
65
|
+
scrapli-2.0.0a5.dist-info/WHEEL,sha256=jc2C2uw104ioj1TL9cE0YO67_kdAwX4W8JgYPomxr5M,105
|
66
|
+
scrapli-2.0.0a5.dist-info/top_level.txt,sha256=piC9TaaPt0z-1Ryrs69hDvsIQkmE5ceDAAW5donUvsI,8
|
67
|
+
scrapli-2.0.0a5.dist-info/RECORD,,
|
scrapli-2.0.0a4.dist-info/RECORD
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
scrapli/__init__.py,sha256=8EEtOO1ZjuAWHUnHduW-hL7Rvvxh1Omns3f9TtU9bpE,963
|
2
|
-
scrapli/auth.py,sha256=LMYD31AMK0pyTa0RQo9I3ap3F1onmDylb2zQsHl6zrw,7907
|
3
|
-
scrapli/cli.py,sha256=6tHDilvmYW1DxAJyXNa65zQZRxlDBL9Z4zeCR6GOcyU,46942
|
4
|
-
scrapli/cli_decorators.py,sha256=Mj1BfouFiAWb2bbVvhBgc9qqJou6mf-ClvK3Ngy1dJA,4412
|
5
|
-
scrapli/cli_parse.py,sha256=b9l2w7TSKpHwNGumCsENvRO1R4NMKnOe5v2vfrweTUA,5171
|
6
|
-
scrapli/cli_result.py,sha256=YkgAJ4LiEOiC46376EZjbRqoZzERyVmtwbU8VQ7Nl84,4914
|
7
|
-
scrapli/exceptions.py,sha256=RNU720WL6efW_4Pdjruzp0M-Se-zQR3mFcsrzscvaPA,1524
|
8
|
-
scrapli/ffi.py,sha256=ao0D9NZLo1zv6r9-z06hAiNgch_2QV6XYyIfBfawMOI,2149
|
9
|
-
scrapli/ffi_mapping.py,sha256=bMB6XkJimV9xZ83jg01m2jWZevwCaRf-0LGxaYct_54,4994
|
10
|
-
scrapli/ffi_mapping_cli.py,sha256=4m_e4WoLlgr3s_2aS-N92HrFEvRHz_eMrlorNW_x6xk,18218
|
11
|
-
scrapli/ffi_mapping_netconf.py,sha256=G7VmR-pIQI5G4SEkDYoAtDVa_pfDaTRM2U9chfXhqaY,42156
|
12
|
-
scrapli/ffi_mapping_options.py,sha256=X2Y-B_K1e2f7aSbJ5pNktT3X7tDpdu_RZ1TX-ba75nI,27557
|
13
|
-
scrapli/ffi_types.py,sha256=aYZ0YTUyU_jgowrQgwBTm_iL4A6BMLl8-hMf1P8-9b4,4501
|
14
|
-
scrapli/helper.py,sha256=hiVHcczqFqhF0qAyiBn0mioL_fsI2pszCoM9VS_KYsw,1628
|
15
|
-
scrapli/netconf.py,sha256=T_Op82Qjo5P3WCb-OMOiAYqgu82oqzuymet4AmGFUD0,80054
|
16
|
-
scrapli/netconf_decorators.py,sha256=C5yk5Gq7OD_V1g6rVOi8qzeA5MQHEI3B2IUXxyj0IIU,4464
|
17
|
-
scrapli/netconf_result.py,sha256=JHvNa5KX6gEf5iwJxCc9Hlcg5ljhRWkd0aoGaXAtYPw,1174
|
18
|
-
scrapli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
scrapli/session.py,sha256=8f3XvpZ-4-uw4uuRBVtQMbo8Ftzwu99uCwDL9_UQkO8,4275
|
20
|
-
scrapli/transport.py,sha256=vg6uMpsXrx6kOyNxnyg0OZ74w2U9rj1aPk0oz__2D0c,9506
|
21
|
-
scrapli/definitions/__init__.py,sha256=d-XZBK_ZjN4Sy6SmhJL-T4imYY_UioM8gSiX-PKVDuE,26
|
22
|
-
scrapli/definitions/arista_eos.yaml,sha256=ZR3BmdmGScJobQQZfW7gwOLj5wGxdpZ1omgraw9KgCc,1714
|
23
|
-
scrapli/definitions/cisco_iosxe.yaml,sha256=nnqi8qQmFmKX4BgnuLMJqj0hAyqkVRmSfmDLsJKBFaA,1699
|
24
|
-
scrapli/definitions/cisco_iosxr.yaml,sha256=hkxQe9sMyCx3Eo9BDSxHD1MWG6yxHl6EHnyjSTjD-_I,1317
|
25
|
-
scrapli/definitions/cisco_nxos.yaml,sha256=ih_FiqkBJk3pgGou29DGN0tjrdkF_qqH5bJOa-V1SXg,1889
|
26
|
-
scrapli/definitions/juniper_junos.yaml,sha256=bWErL-XgxwwnZv4R9MsSZFLla0VnVhrHqDQ3pZJ9-1I,2491
|
27
|
-
scrapli/definitions/nokia_srlinux.yaml,sha256=2TrpoVCIwi-E_IzTsuQjmKBR4lSz_24c2mhhwv6e1ec,1042
|
28
|
-
scrapli/lib/__init__.py,sha256=emX2ZjmnwMNIozlcKNDDXr_4zlryoLD8h2fM-CO3KZY,18
|
29
|
-
scrapli/lib/libscrapli.0.0.1-alpha.13.dylib,sha256=r6iXD-yJZSNRfh0Ga4mhTdbtJde93auDJFA1HZ6KJwQ,5484120
|
30
|
-
scrapli-2.0.0a4.dist-info/licenses/LICENSE,sha256=IeyhkG2h_dAvJ7nAF0S4GSUg045jwI27YADV_KSJi50,1071
|
31
|
-
scrapli-2.0.0a4.dist-info/METADATA,sha256=-h27C1hAYIbru9lW7bSHBSJTjXOxYmGtq2KyNDamlUk,2286
|
32
|
-
scrapli-2.0.0a4.dist-info/WHEEL,sha256=jc2C2uw104ioj1TL9cE0YO67_kdAwX4W8JgYPomxr5M,105
|
33
|
-
scrapli-2.0.0a4.dist-info/top_level.txt,sha256=piC9TaaPt0z-1Ryrs69hDvsIQkmE5ceDAAW5donUvsI,8
|
34
|
-
scrapli-2.0.0a4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|