From eca5aaecbd05305dda4b28ae4fbbcf40332aa909 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Fri, 2 Aug 2024 10:53:18 -0700 Subject: [PATCH 1/9] Add support for PY3.13; use vendored version of telnetlib --- .github/workflows/commit.yaml | 2 +- napalm/ios/ios.py | 2 +- requirements.txt | 2 +- setup.py | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 7449f1a22..291d58ce6 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -10,7 +10,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: [3.8, 3.9, 3.10.9, 3.11, 3.12.0] + python-version: ["3.8", "3.9", "3.10.9", "3.11", "3.12", "3.13.0-beta.2"] steps: - name: Checkout repository diff --git a/napalm/ios/ios.py b/napalm/ios/ios.py index 92e40d6c7..f2b9f3ba6 100644 --- a/napalm/ios/ios.py +++ b/napalm/ios/ios.py @@ -19,7 +19,7 @@ import os import re import socket -import telnetlib +from netmiko._telnetlib import telnetlib import tempfile import uuid from collections import defaultdict diff --git a/requirements.txt b/requirements.txt index ccd3ef5b2..aa1a47f7a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ jinja2 netaddr pyYAML pyeapi>=1.0.2 -netmiko>=4.1.0 +netmiko>=4.4.0 junos-eznc>=2.7.0 scp lxml>=4.3.0 diff --git a/setup.py b/setup.py index a7e9fa615..41d7c7c2f 100644 --- a/setup.py +++ b/setup.py @@ -32,6 +32,7 @@ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", ], From a1a73aa7c04a0cd6a345155af1e95f4e0a5b3073 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Fri, 2 Aug 2024 11:08:08 -0700 Subject: [PATCH 2/9] Try Python 3.13 beta4 --- .github/workflows/commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 291d58ce6..deb800640 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -10,7 +10,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.8", "3.9", "3.10.9", "3.11", "3.12", "3.13.0-beta.2"] + python-version: ["3.8", "3.9", "3.10.9", "3.11", "3.12", "3.13.0-beta.4"] steps: - name: Checkout repository From 1b3f888ce1855f8afe54de0c6d308a3080ace5e8 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Fri, 2 Aug 2024 11:12:36 -0700 Subject: [PATCH 3/9] Add needed system libraries for LXML build and PY3.13 --- .github/workflows/commit.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index deb800640..001d1a707 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -22,7 +22,11 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies + # The apt-get actions are only needed until wheel files for PY3.13 and + # lxml are released. run: | + sudo apt-get update + sudo apt-get install -y libxml2-dev libxslt1-dev python3-dev python -m pip install --upgrade pip python -m pip install -e . pip install -r requirements.txt From 8b358b0da11b8207ccacb80d370dddbdfcef2b0a Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Fri, 2 Aug 2024 11:51:40 -0700 Subject: [PATCH 4/9] Remove PY3.13 from GH Actions testing (due to other libraries/dependencies breaking) --- .github/workflows/commit.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 001d1a707..85525e8c5 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -10,7 +10,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.8", "3.9", "3.10.9", "3.11", "3.12", "3.13.0-beta.4"] + python-version: ["3.8", "3.9", "3.10.9", "3.11", "3.12"] steps: - name: Checkout repository @@ -22,11 +22,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies - # The apt-get actions are only needed until wheel files for PY3.13 and - # lxml are released. run: | - sudo apt-get update - sudo apt-get install -y libxml2-dev libxslt1-dev python3-dev python -m pip install --upgrade pip python -m pip install -e . pip install -r requirements.txt From 8b99f08d30d2b0e52300fed965106ed712f24bf7 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Fri, 2 Aug 2024 11:56:26 -0700 Subject: [PATCH 5/9] Remove PY3.13 from being setup.py until we can get GH Actions to properly run --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 41d7c7c2f..a7e9fa615 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,6 @@ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", ], From 52967e96ff95ff38ac8f7694c8137f5faa468a59 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Wed, 13 Nov 2024 10:23:48 -0800 Subject: [PATCH 6/9] Remove PY3.8 support; add PY3.13 into GH actions; clarify licensing classifier (for pypi) --- .github/workflows/commit.yaml | 2 +- README.md | 6 +++--- setup.py | 8 +++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 85525e8c5..7c6754157 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -10,7 +10,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.8", "3.9", "3.10.9", "3.11", "3.12"] + python-version: ["3.9", "3.10.9", "3.11", "3.12", "3.13"] steps: - name: Checkout repository diff --git a/README.md b/README.md index 764f39bff..8b8bf8b93 100644 --- a/README.md +++ b/README.md @@ -31,15 +31,15 @@ Install pip install napalm ``` +*Note*: Beginning with release 5.1.0 and later, NAPALM offers support for +Python 3.9+ only. + *Note*: Beginning with release 5.0.0 and later, NAPALM offers support for Python 3.8+ only. *Note*: Beginning with release 4.0.0 and later, NAPALM offers support for Python 3.7+ only. -*Note*: Beginning with release 3.0.0 and later, NAPALM offers support for -Python 3.6+ only. - Upgrading ========= diff --git a/setup.py b/setup.py index a7e9fa615..4819d6106 100644 --- a/setup.py +++ b/setup.py @@ -19,19 +19,17 @@ author="David Barroso, Kirk Byers, Mircea Ulinic", author_email="dbarrosop@dravetech.com, ping@mirceaulinic.net, ktbyers@twb-tech.com", description="Network Automation and Programmability Abstraction Layer with Multivendor support", - license="Apache 2.0", + license = "Apache-2.0" long_description=long_description, long_description_content_type="text/markdown", classifiers=[ "Topic :: Utilities", - "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: Apache Software License 2.0 (Apache-2.0)", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", ], From 1e7f30af4bdb56b29b08dc867db8fd99186fa1a3 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Wed, 13 Nov 2024 10:30:18 -0800 Subject: [PATCH 7/9] Fix missing comma --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4819d6106..722b242af 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ author="David Barroso, Kirk Byers, Mircea Ulinic", author_email="dbarrosop@dravetech.com, ping@mirceaulinic.net, ktbyers@twb-tech.com", description="Network Automation and Programmability Abstraction Layer with Multivendor support", - license = "Apache-2.0" + license = "Apache-2.0", long_description=long_description, long_description_content_type="text/markdown", classifiers=[ From 826a58ceabca62a2a1f89947b70eb3e0b11de6a0 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Wed, 13 Nov 2024 10:33:47 -0800 Subject: [PATCH 8/9] Linting --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 722b242af..43d2e247a 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ author="David Barroso, Kirk Byers, Mircea Ulinic", author_email="dbarrosop@dravetech.com, ping@mirceaulinic.net, ktbyers@twb-tech.com", description="Network Automation and Programmability Abstraction Layer with Multivendor support", - license = "Apache-2.0", + license="Apache-2.0", long_description=long_description, long_description_content_type="text/markdown", classifiers=[ From e2f8e7e24f9cff5fc4ce5d67ab0a4d5e9fce097b Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Wed, 13 Nov 2024 10:44:44 -0800 Subject: [PATCH 9/9] Breakout coveralls to separate reqs file due to lack of PY3.13 support --- requirements-coveralls.txt | 1 + requirements-dev.txt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 requirements-coveralls.txt diff --git a/requirements-coveralls.txt b/requirements-coveralls.txt new file mode 100644 index 000000000..12f4cc07e --- /dev/null +++ b/requirements-coveralls.txt @@ -0,0 +1 @@ +coveralls==4.0.1 diff --git a/requirements-dev.txt b/requirements-dev.txt index 0a766587e..8a8713ea7 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,4 @@ black==24.4.2 -coveralls==4.0.1 ddt==1.7.2 flake8-import-order==0.18.2 pytest==8.2.1