scrapli 2.0.0a4__py3-none-manylinux2010_x86_64.whl → 2.0.0a5__py3-none-manylinux2010_x86_64.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 (56) hide show
  1. scrapli/__init__.py +5 -6
  2. scrapli/auth.py +14 -7
  3. scrapli/cli.py +300 -0
  4. scrapli/cli_parse.py +1 -1
  5. scrapli/cli_result.py +42 -0
  6. scrapli/definitions/aethra_atosnt.yaml +9 -0
  7. scrapli/definitions/alcatel_aos.yaml +9 -0
  8. scrapli/definitions/arista_eos.yaml +1 -0
  9. scrapli/definitions/aruba_aoscx.yaml +33 -0
  10. scrapli/definitions/cisco_aireos.yaml +31 -0
  11. scrapli/definitions/cisco_asa.yaml +48 -0
  12. scrapli/definitions/cisco_cbs.yaml +50 -0
  13. scrapli/definitions/cisco_ftd.yaml +42 -0
  14. scrapli/definitions/cisco_nxos.yaml +2 -0
  15. scrapli/definitions/cumulus_linux.yaml +28 -0
  16. scrapli/definitions/cumulus_vtysh.yaml +42 -0
  17. scrapli/definitions/datacom_dmos.yaml +30 -0
  18. scrapli/definitions/datacom_dmswitch.yaml +32 -0
  19. scrapli/definitions/default.yaml +9 -0
  20. scrapli/definitions/dell_emc.yaml +46 -0
  21. scrapli/definitions/dell_enterprisesonic.yaml +40 -0
  22. scrapli/definitions/dlink_os.yaml +46 -0
  23. scrapli/definitions/edgecore_ecs.yaml +35 -0
  24. scrapli/definitions/eltex_esr.yaml +43 -0
  25. scrapli/definitions/fortinet_fortios.yaml +20 -0
  26. scrapli/definitions/fortinet_wlc.yaml +33 -0
  27. scrapli/definitions/hp_comware.yaml +31 -0
  28. scrapli/definitions/huawei_smartax.yaml +61 -0
  29. scrapli/definitions/huawei_vrp.yaml +56 -0
  30. scrapli/definitions/juniper_junos.yaml +3 -0
  31. scrapli/definitions/nokia_srlinux.yaml +13 -2
  32. scrapli/definitions/nokia_sros.yaml +31 -0
  33. scrapli/definitions/nokia_sros_classic.yaml +33 -0
  34. scrapli/definitions/nokia_sros_classic_aram.yaml +25 -0
  35. scrapli/definitions/paloalto_panos.yaml +36 -0
  36. scrapli/definitions/raisecom_ros.yaml +45 -0
  37. scrapli/definitions/ruckus_fastiron.yaml +45 -0
  38. scrapli/definitions/ruckus_unleashed.yaml +64 -0
  39. scrapli/definitions/siemens_roxii.yaml +28 -0
  40. scrapli/definitions/versa_flexvnf.yaml +45 -0
  41. scrapli/definitions/vyos_vyos.yaml +35 -0
  42. scrapli/definitions/zyxel_dslam.yaml +18 -0
  43. scrapli/ffi.py +1 -1
  44. scrapli/ffi_mapping.py +89 -33
  45. scrapli/ffi_mapping_cli.py +104 -0
  46. scrapli/ffi_mapping_options.py +38 -6
  47. scrapli/ffi_types.py +1 -1
  48. scrapli/helper.py +56 -0
  49. scrapli/lib/{libscrapli.0.0.1-alpha.13.dylib → libscrapli.0.0.1-alpha.17.dylib} +0 -0
  50. scrapli/lib/{libscrapli.so.0.0.1-alpha.13 → libscrapli.so.0.0.1-alpha.17} +0 -0
  51. {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/METADATA +1 -1
  52. scrapli-2.0.0a5.dist-info/RECORD +68 -0
  53. scrapli-2.0.0a4.dist-info/RECORD +0 -35
  54. {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/WHEEL +0 -0
  55. {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/licenses/LICENSE +0 -0
  56. {scrapli-2.0.0a4.dist-info → scrapli-2.0.0a5.dist-info}/top_level.txt +0 -0
@@ -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
+ )
@@ -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._set_in_session_auth_bypass: Callable[[DriverPointer], int] = (
372
- lib.ls_option_auth_in_session_auth_bypass
371
+ self._set_force_in_session_auth: Callable[[DriverPointer], int] = (
372
+ lib.ls_option_auth_force_in_session_auth
373
373
  )
374
- lib.ls_option_auth_in_session_auth_bypass.argtypes = [
374
+ lib.ls_option_auth_force_in_session_auth.argtypes = [
375
375
  DriverPointer,
376
376
  ]
377
- lib.ls_option_auth_in_session_auth_bypass.restype = c_uint8
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 set_in_session_auth_bypass(
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._set_in_session_auth_bypass(
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scrapli
3
- Version: 2.0.0a4
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,68 @@
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/lib/libscrapli.so.0.0.1-alpha.17,sha256=aDG_8FqqQ3WIpGs5ZzaAuCTrEN8TohyV01kV7aOfuSk,13082656
64
+ scrapli-2.0.0a5.dist-info/licenses/LICENSE,sha256=IeyhkG2h_dAvJ7nAF0S4GSUg045jwI27YADV_KSJi50,1071
65
+ scrapli-2.0.0a5.dist-info/METADATA,sha256=holO5Rx518SE2VdkuaderSoSsEG8yN2pQQffMKPBgpk,2286
66
+ scrapli-2.0.0a5.dist-info/WHEEL,sha256=MmQ9OtX_bCFXAvVJko16lLGdPJhOLPMXVnSHtCQfmfw,108
67
+ scrapli-2.0.0a5.dist-info/top_level.txt,sha256=piC9TaaPt0z-1Ryrs69hDvsIQkmE5ceDAAW5donUvsI,8
68
+ scrapli-2.0.0a5.dist-info/RECORD,,
@@ -1,35 +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/lib/libscrapli.so.0.0.1-alpha.13,sha256=euSwSJrQVTsctk4PzeH8C7ZrKyU0_Cy4tKojQWQgZUc,12929592
31
- scrapli-2.0.0a4.dist-info/licenses/LICENSE,sha256=IeyhkG2h_dAvJ7nAF0S4GSUg045jwI27YADV_KSJi50,1071
32
- scrapli-2.0.0a4.dist-info/METADATA,sha256=-h27C1hAYIbru9lW7bSHBSJTjXOxYmGtq2KyNDamlUk,2286
33
- scrapli-2.0.0a4.dist-info/WHEEL,sha256=MmQ9OtX_bCFXAvVJko16lLGdPJhOLPMXVnSHtCQfmfw,108
34
- scrapli-2.0.0a4.dist-info/top_level.txt,sha256=piC9TaaPt0z-1Ryrs69hDvsIQkmE5ceDAAW5donUvsI,8
35
- scrapli-2.0.0a4.dist-info/RECORD,,