diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 7449f1a22..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.0] + 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/napalm/ios/ios.py b/napalm/ios/ios.py index c42837609..ad35c5a72 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 diff --git a/requirements-dev.txt b/requirements-dev.txt index 0ecdfa78a..6de85c9e1 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,6 @@ black==24.4.2 -coveralls==4.0.1 +# Temp for PY3.13 support +git+https://github.com/TheKevJames/coveralls-python.git@0ff8f20fd57f68486a4127b0b7f88a5922b910c3 ddt==1.7.2 flake8-import-order==0.18.2 pytest==8.3.5 diff --git a/requirements.txt b/requirements.txt index ccd3ef5b2..14458fbc6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,8 +7,9 @@ jinja2 netaddr pyYAML pyeapi>=1.0.2 -netmiko>=4.1.0 -junos-eznc>=2.7.0 +netmiko>=4.4.0 +# Temp fix until PyEZ 2.7.4 is released (PY3.13 support) +git+https://github.com/Juniper/py-junos-eznc.git@39bd1cfb007b6adea654baeaf78a26d1ad35f385 scp lxml>=4.3.0 ncclient diff --git a/setup.py b/setup.py index a7e9fa615..e086840c5 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,11 @@ from setuptools import setup, find_packages with open("requirements.txt", "r") as fs: - reqs = [r for r in fs.read().splitlines() if (len(r) > 0 and not r.startswith("#"))] + reqs = [ + r + for r in fs.read().splitlines() + if (len(r) > 0 and not (r.startswith("#") or r.startswith("git+"))) + ] with open("README.md", "r") as fs: long_description = fs.read() @@ -19,7 +23,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=[ @@ -32,6 +36,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", ],