Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-ciscoconfparse for
openSUSE:Factory checked in at 2022-12-08 16:52:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ciscoconfparse (Old)
and /work/SRC/openSUSE:Factory/.python-ciscoconfparse.new.1835 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ciscoconfparse"
Thu Dec 8 16:52:15 2022 rev:27 rq:1041342 version:1.6.53
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-ciscoconfparse/python-ciscoconfparse.changes
2022-12-02 15:47:26.536574583 +0100
+++
/work/SRC/openSUSE:Factory/.python-ciscoconfparse.new.1835/python-ciscoconfparse.changes
2022-12-08 16:52:23.899855826 +0100
@@ -1,0 +2,10 @@
+Wed Dec 7 14:39:07 UTC 2022 - Yogalakshmi Arunachalam <[email protected]>
+
+- Update to version 1.6.53
+ Released: 2022-11-18
+ Summary:
+ * Reformat pyproject.toml to be most compatible with 'pip install'
+ * Several internal project-level optimizations...
+ * git changes committed on 2022-11-09... somehow 1.6.53 wasn't pushed to
pypi on 9-Nov-2022. It was pushed to pypi on 18-Nov-2022
+
+-------------------------------------------------------------------
Old:
----
ciscoconfparse-1.6.52.tar.gz
New:
----
ciscoconfparse-1.6.53.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ciscoconfparse.spec ++++++
--- /var/tmp/diff_new_pack.b258wt/_old 2022-12-08 16:52:25.511864094 +0100
+++ /var/tmp/diff_new_pack.b258wt/_new 2022-12-08 16:52:25.515864115 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without python2
Name: python-ciscoconfparse
-Version: 1.6.52
+Version: 1.6.53
Release: 0
Summary: Library for parsing, querying and modifying Cisco IOS-style
configurations
License: GPL-3.0-or-later
++++++ ciscoconfparse-1.6.52.tar.gz -> ciscoconfparse-1.6.53.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ciscoconfparse-1.6.52/CHANGES.md
new/ciscoconfparse-1.6.53/CHANGES.md
--- old/ciscoconfparse-1.6.52/CHANGES.md 2022-11-09 14:08:32.374858900
+0100
+++ new/ciscoconfparse-1.6.53/CHANGES.md 2022-11-09 20:24:50.707943000
+0100
@@ -2,11 +2,19 @@
- Released: Not released
- Summary:
- - Nothing to see here, move on
+ - Update Makefile to delete poetry.lock file
+
+
+## Version: 1.6.53
+
+- Released: 2022-11-09
+- Summary:
+ - Reformat pyproject.toml to be most compatible with 'pip install'
+ - Several internal project-level optimizations...
## Version: 1.6.52
-- Released: 2022-10-21
+- Released: 2022-11-09
- Summary:
- Fix Github Issue #254
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ciscoconfparse-1.6.52/Makefile
new/ciscoconfparse-1.6.53/Makefile
--- old/ciscoconfparse-1.6.52/Makefile 2022-10-26 13:32:56.762290500 +0200
+++ new/ciscoconfparse-1.6.53/Makefile 2022-11-18 12:15:49.277552400 +0100
@@ -9,85 +9,135 @@
# Ref ->
https://packaging.python.org/en/latest/guides/making-a-pypi-friendly-readme/
.PHONY: pypi-packaging
pypi-packaging:
+ @echo ">> building ciscoconfparse pypi artifacts (wheel and tar.gz)"
pip install -U setuptools>=58.0.0
pip install -U wheel>=0.37.1
pip install -U twine>=4.0.1
pip install -U poetry>=1.0.0
# Delete bogus files... see https://stackoverflow.com/a/73992288/667301
perl -e 'unlink( grep { /^\W\d*\.*\d*/ && !-d } glob( "*" ) );'
-.PHONY: dev
-dev:
- make devpkgs
+
.PHONY: pypi
pypi:
+ @echo ">> uploading ciscoconfparse pypi artifacts to pypi"
make clean
make pypi-packaging
poetry lock --no-update
poetry build
# twine is the simplest pypi package uploader...
python -m twine upload dist/*
+
.PHONY: bump-version-patch
bump-version-patch:
$(shell python dev_tools/git_helper.py -I patch)
+
.PHONY: bump-version-minor
bump-version-minor:
$(shell python dev_tools/git_helper.py -I minor)
+
.PHONY: repo-push
repo-push:
+ @echo ">> git push (w/o force) ciscoconfparse local main branch to
github"
#git remote remove origin
#git remote add origin "[email protected]:mpenning/ciscoconfparse"
#git push [email protected]:mpenning/ciscoconfparse.git
#git push origin +main
$(shell python dev_tools/git_helper.py -P ciscoconfparse --push)
+
.PHONY: repo-push-force
repo-push-force:
+ @echo ">> git push (w/ force) ciscoconfparse local main branch to
github"
#git remote remove origin
#git remote add origin "[email protected]:mpenning/ciscoconfparse"
#git push --force-with-lease [email protected]:mpenning/ciscoconfparse.git
#git push --force-with-lease origin +main
$(shell python dev_tools/git_helper.py -P ciscoconfparse --push --force)
+
.PHONY: repo-push-tag
repo-push-tag:
+ @echo ">> git push (w/ local tag) ciscoconfparse local main branch to
github"
#make repo-push
$(shell python dev_tools/git_helper.py -P ciscoconfparse --push --tag)
+
.PHONY: repo-push-tag-force
repo-push-tag-force:
+ @echo ">> git push (w/ local tag and w/ force) ciscoconfparse local
main branch to github"
#make repo-push-force
$(shell python dev_tools/git_helper.py -P ciscoconfparse --push --tag
--force)
+
.PHONY: pylama
pylama:
+ @echo ">> running pylama against ciscoconfparse"
# Good usability info here -> https://pythonspeed.com/articles/pylint/
pylama --ignore=E501,E301,E265,E266 ciscoconfparse/*py | less -XR
+
.PHONY: pylint
pylint:
+ @echo ">> running pylint against ciscoconfparse"
# Good usability info here -> https://pythonspeed.com/articles/pylint/
pylint --rcfile=./utils/pylintrc
--ignore-patterns='^build|^dist|utils/pylintrc|README.rst|CHANGES|LICENSE|MANIFEST.in|Makefile|TODO'
--output-format=colorized * | less -XR
+
.PHONY: tutorial
tutorial:
+ @echo ">> building the ciscoconfparse tutorial"
rst2html5 --jquery --reveal-js --pretty-print-code --embed-stylesheet
--embed-content --embed-images tutorial/ccp_tutorial.rst >
tutorial/ccp_tutorial.html
+
.PHONY: parse-ios
parse-ios:
cd tests; python parse_test.py 1 | less -XR
+
.PHONY: parse-ios-factory
parse-ios-factory:
cd tests; python parse_test.py 2 | less -XR
+
.PHONY: parse-ios-banner
parse-iosxr-banner:
cd tests; python parse_test.py 3 | less -XR
+
.PHONY: perf-acl
perf-acl:
cd tests; python performance_case.py 5 | less -XR
+
.PHONY: perf-factory-intf
perf-factory-intf:
cd tests; python performance_case.py 6 | less -XR
-.PHONY: devpkgs
-devpkgs:
+
+.PHONY: flake
+flake:
+ flake8 --ignore
E501,E226,E225,E221,E303,E302,E265,E128,E125,E124,E41,W291 --max-complexity 10
ciscoconfparse | less
+
+.PHONY: coverage
+coverage:
+ @echo "[[[ py.test Coverage ]]]"
+ cd tests;py.test --cov-report term-missing --cov=ciscoconfparse.py -s -v
+
+.PHONY: doctest
+doctest:
+ # Run the doc tests
+ cd sphinx-doc; make doctest
+
+.PHONY: pip
+pip:
+ @echo ">> Upgrading pip to the latest version"
+ pip install -U pip
+
+.PHONY: dep
+dep:
+ @echo ">> installing all ciscoconfparse prod dependencies"
+ make pip
pip install -U pip>=22.2.0
- pip install -U virtualenv
- pip install -U virtualenvwrapper>=4.8.0
+ pip install -U dnspython==2.1.0 # Previously version 1.14.0
pip install -U passlib==1.7.4
pip install -U loguru==0.6.0
pip install -U toml>=0.10.2
+
+.PHONY: dev
+dev:
+ @echo ">> installing all prod and development ciscoconfparse
dependencies"
+ make dep
+ pip install -U pip>=22.2.0
+ pip install -U virtualenv
+ pip install -U virtualenvwrapper>=4.8.0
pip install -U pss
pip install -U mock
pip install -U highlights>=0.1.1
@@ -102,25 +152,16 @@
pip install -U flake8
pip install -U black>=22.8.0
pip install -U yapf
- pip install -U dnspython==2.1.0 # Previously version 1.14.0
pip install -U fabric>=2.7.0
pip install -U invoke>=1.7.0
pip install -U ipaddr>=2.2.0
-.PHONY: flake
-flake:
- flake8 --ignore
E501,E226,E225,E221,E303,E302,E265,E128,E125,E124,E41,W291 --max-complexity 10
ciscoconfparse | less
-.PHONY: coverage
-coverage:
- @echo "[[[ py.test Coverage ]]]"
- cd tests;py.test --cov-report term-missing --cov=ciscoconfparse.py -s -v
-.PHONY: doctest
-doctest:
- # Run the doc tests
- cd sphinx-doc; make doctest
+
+
.PHONY: test
test:
make clean
cd tests && ./runtests.sh
+
.PHONY: clean
clean:
# Delete bogus files... see https://stackoverflow.com/a/73992288/667301
@@ -132,10 +173,12 @@
-find ./* -path '*__pycache__' -exec rm -rf {} \;
@# remove all the MockSSH keys
-find ./* -name '*.key' -exec rm {} \;
+ -rm -rf poetry.lock
-rm -rf .pytest_cache/
-rm -rf .eggs/
-rm -rf .cache/
-rm -rf build/ dist/ ciscoconfparse.egg-info/ setuptools*
+
.PHONY: help
help:
@# An @ sign prevents outputting the command itself to stdout
@@ -143,7 +186,8 @@
@echo "pypi : Build the project and push to pypi"
@echo "repo-push : Build the project and push to github"
@echo "test : Run all doctests and unit tests"
- @echo "devpkgs : Get all dependencies for the dev
environment"
+ @echo "dev : Get all dependencies for the dev
environment"
+ @echo "dep : Get all prod dependencies"
@echo "devtest : Run tests - Specific to Mike Pennington's
build env"
@echo "coverage : Run tests with coverage - Specific to
this build env"
@echo "flake : Run PyFlake code audit w/ McCabe
complexity"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ciscoconfparse-1.6.52/PKG-INFO
new/ciscoconfparse-1.6.53/PKG-INFO
--- old/ciscoconfparse-1.6.52/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/ciscoconfparse-1.6.53/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +1,12 @@
Metadata-Version: 2.1
Name: ciscoconfparse
-Version: 1.6.52
+Version: 1.6.53
Summary: Parse, Audit, Query, Build, and Modify Cisco IOS-style and
JunOS-style configurations
-Home-page: http://www.pennington.net/py/ciscoconfparse/
License: GPL-3.0-only
Keywords: Parse,audit,query,modify,Cisco IOS,Cisco,NXOS,ASA,Juniper
Author: Mike Pennington
Author-email: [email protected]
-Requires-Python: >=3.7.0
+Requires-Python: >=3.7.2,<4.0.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
Classifier: Intended Audience :: Developers
@@ -20,7 +19,6 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
@@ -29,12 +27,26 @@
Classifier: Topic :: Internet
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Networking :: Monitoring
+Requires-Dist: Sphinx (==4.3.0)
+Requires-Dist: black (>=20.8b1)
Requires-Dist: dnspython (>=2.1.0,<3.0.0)
Requires-Dist: loguru (==0.6.0)
+Requires-Dist: packaging (>21.0)
Requires-Dist: passlib (>=1.7.4,<2.0.0)
-Requires-Dist: toml (==0.10.2)
-Project-URL: Documentation, http://www.pennington.net/py/ciscoconfparse/
-Project-URL: Repository, https://github.com/mpenning/ciscoconfparse
+Requires-Dist: poetry (>=1.2.2)
+Requires-Dist: poetry-core (>=1.3.2)
+Requires-Dist: pre-commit (==2.20.0)
+Requires-Dist: pylint (>=2.15.5)
+Requires-Dist: pyroma (>=4.0)
+Requires-Dist: pytest (>=7.1.3)
+Requires-Dist: sphinx-bootstrap-theme (==0.8.0)
+Requires-Dist: toml (>=0.10.2)
+Requires-Dist: virtualenv (>=20.16.5,<20.17.0)
+Requires-Dist: virtualenvwrapper (>=4.8.4,<4.9.0)
+Project-URL: documentation, http://www.pennington.net/py/ciscoconfparse/
+Project-URL: homepage, http://www.pennington.net/py/ciscoconfparse/
+Project-URL: repository, https://github.com/mpenning/ciscoconfparse
+Project-URL: source, https://github.com/mpenning/ciscoconfparse
Description-Content-Type: text/markdown
ciscoconfparse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ciscoconfparse-1.6.52/ciscoconfparse/ciscoconfparse.py
new/ciscoconfparse-1.6.53/ciscoconfparse/ciscoconfparse.py
--- old/ciscoconfparse-1.6.52/ciscoconfparse/ciscoconfparse.py 2022-11-09
12:00:38.492654800 +0100
+++ new/ciscoconfparse-1.6.53/ciscoconfparse/ciscoconfparse.py 2022-11-09
16:20:29.818929000 +0100
@@ -4657,6 +4657,10 @@
# This method is on ConfigList()
def append(self, val):
+
+ if self.debug >= 1:
+ logger.debug(" ConfigList().append(val={}) was
called.".format(val))
+
self._list.append(val)
# This method is on ConfigList()
@@ -4707,7 +4711,7 @@
def _bootstrap_from_text(self):
if self.debug >= 1:
- logger.info("ConfigList()._bootstrap_from_text() was called.")
+ logger.debug(" ConfigList()._bootstrap_from_text() was called.")
## reparse all objects from their text attributes... this is *very*
slow
## Ultimate goal: get rid of all reparsing from text...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ciscoconfparse-1.6.52/pyproject.toml
new/ciscoconfparse-1.6.53/pyproject.toml
--- old/ciscoconfparse-1.6.52/pyproject.toml 2022-11-09 14:08:32.374858900
+0100
+++ new/ciscoconfparse-1.6.53/pyproject.toml 2022-11-18 11:42:29.383412000
+0100
@@ -1,29 +1,31 @@
-[project]
+[build-system]
+requires = ["poetry>=1.2.2", "poetry-core>=1.3.2", "wheel>=0.37.0",
"packaging>=21.0"]
+build-backend = "poetry.core.masonry.api"
requires-python = ">=3.7.0"
+##############################################################################
+#
+# IMPORTANT:
+# pyproject.toml has several different formats (such as a [project] section);
+# however, pip will NOT install unless I base pyproject.toml on the
+# [tool.poetry] section below.
+#
+# Maybe it's my fault, but I have not had success trying to migrate to
+# a [project] section with pip installs. I have stopped trying because
+# the problem is too complicated to continue throwing cycles at making a
+# [project] section work with 'pip install ciscoconfparse'.
+#
+##############################################################################
+#[project]
+
[tool.poetry]
name = "ciscoconfparse"
-version = "1.6.52"
+version = "1.6.53"
description = "Parse, Audit, Query, Build, and Modify Cisco IOS-style and
JunOS-style configurations"
license = "GPL-3.0-only"
-authors = [
- "Mike Pennington <[email protected]>",
-]
+authors = ["Mike Pennington <[email protected]>"]
readme = "README.md"
-include = [
- "CHANGES.md",
- "CONTRIBUTING.md",
- "LICENSE",
- "Makefile",
- "README_git_workflow.md"
-]
-exclude = [
- "coverage.json"
-]
-homepage = "http://www.pennington.net/py/ciscoconfparse/"
-repository = "https://github.com/mpenning/ciscoconfparse"
-documentation = "http://www.pennington.net/py/ciscoconfparse/"
-keywords = ["Parse", "audit", "query", "modify", "Cisco IOS", "Cisco", "NXOS",
"ASA", "Juniper",]
+keywords = ["Parse", "audit", "query", "modify", "Cisco IOS", "Cisco", "NXOS",
"ASA", "Juniper"]
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Plugins",
@@ -41,22 +43,42 @@
"Topic :: System :: Networking",
"Topic :: System :: Networking :: Monitoring",
]
+include = [
+ "CHANGES.md",
+ "CONTRIBUTING.md",
+ "LICENSE",
+ "Makefile",
+ "README_git_workflow.md"
+]
+exclude = [
+ "coverage.json"
+]
-[tool.poetry.dev-dependencies]
-pytest = "6.2.5"
+[tool.poetry.dependencies]
+# Required development dependencies
+python = ">=3.7.2,<4.0.0"
+virtualenv = "~=20.16.5"
+virtualenvwrapper = "~=4.8.4"
+poetry = ">=1.2.2"
+poetry-core = ">=1.3.2"
+pylint = ">=2.15.5"
+packaging = ">21.0"
pre-commit = "2.20.0"
-#black = ">=20.8b1"
-#fabric = "2.6.0"
-#Sphinx = "^4.3.0"
-#sphinx-bootstrap-theme = "^0.8.0"
+pytest = ">=7.1.3"
+# Optional development dependencies
+black = ">=20.8b1"
+Sphinx = "4.3.0"
+sphinx-bootstrap-theme = "0.8.0"
+pyroma = ">=4.0"
-[tool.poetry.dependencies]
-python = ">=3.7.0"
passlib = "^1.7.4"
dnspython = "^2.1.0"
loguru = "0.6.0"
-toml = "0.10.2"
+toml = ">=0.10.2"
+
+[tool.poetry.urls]
+source = "https://github.com/mpenning/ciscoconfparse"
+homepage = "http://www.pennington.net/py/ciscoconfparse/"
+repository = "https://github.com/mpenning/ciscoconfparse"
+documentation = "http://www.pennington.net/py/ciscoconfparse/"
-[build-system]
-requires = ["poetry-core>=1.0.0", "wheel>=0.37.0"]
-build-backend = "poetry.core.masonry.api"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ciscoconfparse-1.6.52/setup.py
new/ciscoconfparse-1.6.53/setup.py
--- old/ciscoconfparse-1.6.52/setup.py 1970-01-01 01:00:00.000000000 +0100
+++ new/ciscoconfparse-1.6.53/setup.py 1970-01-01 01:00:00.000000000 +0100
@@ -8,25 +8,37 @@
{'': ['*']}
install_requires = \
-['dnspython>=2.1.0,<3.0.0',
+['Sphinx==4.3.0',
+ 'black>=20.8b1',
+ 'dnspython>=2.1.0,<3.0.0',
'loguru==0.6.0',
+ 'packaging>21.0',
'passlib>=1.7.4,<2.0.0',
- 'toml==0.10.2']
+ 'poetry-core>=1.3.2',
+ 'poetry>=1.2.2',
+ 'pre-commit==2.20.0',
+ 'pylint>=2.15.5',
+ 'pyroma>=4.0',
+ 'pytest>=7.1.3',
+ 'sphinx-bootstrap-theme==0.8.0',
+ 'toml>=0.10.2',
+ 'virtualenv>=20.16.5,<20.17.0',
+ 'virtualenvwrapper>=4.8.4,<4.9.0']
setup_kwargs = {
'name': 'ciscoconfparse',
- 'version': '1.6.52',
+ 'version': '1.6.53',
'description': 'Parse, Audit, Query, Build, and Modify Cisco IOS-style and
JunOS-style configurations',
'long_description': 'ciscoconfparse\n==============\n\n[![Github unittest
workflow][4]][5] [![Code Health][37]][38] [![Version][2]][3]
[![Downloads][6]][7] [![License][8]][9]\n\n\nIntroduction: What is
ciscoconfparse?\n-------------------------------------\n\nShort answer:
ciscoconfparse is a [Python][10] library\nthat helps you quickly answer
questions like these about your\nconfigurations:\n\n- What interfaces are
shutdown?\n- Which interfaces are in trunk mode?\n- What address and subnet
mask is assigned to each interface?\n- Which interfaces are missing a critical
command?\n- Is this configuration missing a standard config line?\n\nIt can
help you:\n\n- Audit existing router / switch / firewall / wlc
configurations\n- Modify existing configurations\n- Build new
configurations\n\nSpeaking generally, the library examines an IOS-style config
and breaks\nit into a set of linked parent / child relationships. You can
perform\ncomplex queries about these relationships.\n\n[![Cisco
IOS config: Parent / child][11]][11]\n\nUsage\n-----\n\nThe following code
will parse a configuration stored in\n\\\'exampleswitch.conf\\\' and select
interfaces that are shutdown.\n\n```python\nfrom ciscoconfparse import
CiscoConfParse\n\nparse = CiscoConfParse(\'exampleswitch.conf\',
syntax=\'ios\')\n\nfor intf_obj in parse.find_objects_w_child(\'^interface\',
\'^\\s+shutdown\'):\n print("Shutdown: " + intf_obj.text)\n```\n\nThe next
example will find the IP address assigned to interfaces.\n\n```python\nfrom
ciscoconfparse import CiscoConfParse\n\nparse =
CiscoConfParse(\'exampleswitch.conf\', syntax=\'ios\')\n\nfor intf_obj in
parse.find_objects(\'^interface\'):\n\n intf_name =
intf_obj.re_match_typed(\'^interface\\s+(\\S.+?)$\')\n\n # Search children
of all interfaces for a regex match and return\n # the value matched in
regex match group 1. If there is no match,\n # return a default value:
\'\'\n intf_ip_addr = intf_obj.re_match_iter_typed(\n r\'ip\\sa
ddress\\s(\\d+\\.\\d+\\.\\d+\\.\\d+)\\s\', result_type=str,\n group=1,
default=\'\')\n print("{0}: {1}".format(intf_name,
intf_ip_addr))\n```\n\nWhat if we don\\\'t use
Cisco?\n----------------------------\n\nDon\\\'t let that stop you.\n\nAs of
CiscoConfParse 1.2.4, you can parse [brace-delimited configurations][13] into a
Cisco IOS style (see [Github Issue \\#17][14]), which means that CiscoConfParse
can parse these configurations:\n\n- Juniper Networks Junos\n- Palo Alto
Networks Firewall configurations\n- F5 Networks
configurations\n\nCiscoConfParse also handles anything that has a Cisco IOS
style of configuration, which includes:\n\n- Cisco IOS, Cisco Nexus, Cisco
IOS-XR, Cisco IOS-XE, Aironet OS, Cisco ASA, Cisco CatOS\n- Arista EOS\n-
Brocade\n- HP Switches\n- Force 10 Switches\n- Dell PowerConnect Switches\n-
Extreme Networks\n- Enterasys\n- Screenos\n\nDocs\n----\n\n- The latest copy of
the docs are [archived on the web][15]\n- There is also a [CiscoConfParse Tuto
rial][16]\n\nEditing the Package\n-------------------\n\n- `git clone
https://github.com/mpenning/ciscoconfparse`\n- `cd ciscoconfparse`\n- `git
checkout -b develop`\n- Add / modify / delete on the `develop` branch\n-
`make test`\n- If tests run clean, `git commit` all the pending changes on
the `develop` branch\n- (as required) Edit the version number in
[pyproject.toml][12]\n- `git checkout main`\n- `git merge develop`\n-
`make test`\n- `make repo-push`\n- `make
pypi`\n\nPre-requisites\n--------------\n\n[The ciscoconfparse python
package][3] requires Python versions 3.7+ (note: Python version 3.7.0 has a bug
- ref [Github issue \\#117][18], but version 3.7.1 works); the OS should not
matter.\n\nInstallation and Downloads\n--------------------------\n\n- Use
`poetry` for Python3.x\\... :\n\n python -m pip install
ciscoconfparse\n\nIf you\\\'re interested in the source, you can always pull
from the [github repo][17]:\n\n- Download from [the github r
epo][17]: :\n\n git clone git://github.com/mpenning/ciscoconfparse\n
cd ciscoconfparse/\n python -m pip install .\n\nOther
Resources\n---------------\n\n- [Dive into
Python3](http://www.diveintopython3.net/) is a good way to learn Python\n-
[Team CYMRU][30] has a [Secure IOS Template][29], which is especially useful
for external-facing routers / switches\n- [Cisco\\\'s Guide to hardening IOS
devices][31]\n- [Center for Internet Security Benchmarks][32] (An email
address, cookies, and javascript are required)\n\nBug Tracker and
Support\n-----------------------\n\n- Please report any suggestions, bug
reports, or annoyances with a [github bug report][24].\n- If you\\\'re having
problems with general python issues, consider searching for a solution on
[Stack Overflow][33]. If you can\\\'t find a solution for your problem or need
more help, you can [ask on Stack Overflow][34] or [reddit/r/Python][39].\n- If
you\\\'re having problems with your Cisco devices, you can
contact:\n - [Cisco TAC][28]\n - [reddit/r/Cisco][35]\n -
[reddit/r/networking][36]\n -
[NetworkEngineering.se][23]\n\nUnit-Tests\n----------\n\nThe project\\\'s [test
workflow][1] checks ciscoconfparse on Python versions 3.6 and higher, as well
as a [pypy JIT][22] executable.\n\nClick the image below for details; the
current build status is: [![Github unittest status][4]][5]\n\nLicense and
Copyright\n---------------------\n\n[ciscoconfparse][3] is licensed
[GPLv3][21]\n\n- Copyright (C) 2021-2022 David Michael Pennington\n- Copyright
(C) 2020-2021 David Michael Pennington at Cisco Systems (post-acquisition:
Cisco acquired ThousandEyes)\n- Copyright (C) 2019 David Michael Pennington at
ThousandEyes\n- Copyright (C) 2012-2019 David Michael Pennington at Samsung
Data Services\n- Copyright (C) 2011-2012 David Michael Pennington at Dell
Computer Corp\n- Copyright (C) 2007-2011 David Michael Pennington\n\nThe word
\\"Cisco\\" is a registered trademark of [Cisco Systems][27].\n\nAutho
r\n------\n\n[ciscoconfparse][3] was written by [David Michael Pennington][25]
(mike \\[\\~at\\~\\] pennington \\[.dot.\\] net).\n\n\n [1]:
https://github.com/mpenning/ciscoconfparse/tree/master/.github/workflows\n
[2]: https://img.shields.io/pypi/v/ciscoconfparse.svg\n [3]:
https://pypi.python.org/pypi/ciscoconfparse/\n [4]:
https://github.com/mpenning/ciscoconfparse/actions/workflows/tests.yml/badge.svg\n
[5]: https://github.com/mpenning/ciscoconfparse/actions/workflows/tests.yml\n
[6]: https://pepy.tech/badge/ciscoconfparse\n [7]:
https://pepy.tech/project/ciscoconfparse\n [8]:
http://img.shields.io/badge/license-GPLv3-blue.svg\n [9]:
https://www.gnu.org/copyleft/gpl.html\n [10]: https://www.python.org\n [11]:
https://raw.githubusercontent.com/mpenning/ciscoconfparse/master/sphinx-doc/_static/ciscoconfparse_overview_75pct.png\n
[12]: https://github.com/mpenning/ciscoconfparse/blob/main/pyproject.toml\n
[13]: https://github.com/mpenning/ciscoconfparse/blob/master/conf
igs/sample_01.junos\n [14]:
https://github.com/mpenning/ciscoconfparse/issues/17\n [15]:
http://www.pennington.net/py/ciscoconfparse/\n [16]:
http://pennington.net/tutorial/ciscoconfparse/ccp_tutorial.html\n [17]:
https://github.com/mpenning/ciscoconfparse\n [18]:
https://github.com/mpenning/ciscoconfparse/issues/117\n [19]:
https://github.com/mpenning/ciscoconfparse/issues/13\n [20]:
https://github.com/CrackerJackMack/\n [21]:
http://www.gnu.org/licenses/gpl-3.0.html\n [22]: https://pypy.org\n [23]:
https://networkengineering.stackexchange.com/\n [24]:
https://github.com/mpenning/ciscoconfparse/issues/new/choose\n [25]:
https://github.com/mpenning\n [26]: https://github.com/muir\n [27]:
https://www.cisco.com/\n [28]: https://www.cisco.com/go/support\n [29]:
https://www.cymru.com/Documents/secure-ios-template.html\n [30]:
https://team-cymru.com/company/\n [31]:
http://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html\n
[32]: https://learn.cisecurity
.org/benchmarks\n [33]: https://stackoverflow.com\n [34]:
http://stackoverflow.com/questions/ask\n [35]:
https://www.reddit.com/r/Cisco/\n [36]: https://www.reddit.com/r/networking\n
[37]: https://snyk.io/advisor/python/ciscoconfparse/badge.svg\n [38]:
https://snyk.io/advisor/python/ciscoconfparse\n [39]:
https://www.reddit.com/r/Python/\n',
'author': 'Mike Pennington',
'author_email': '[email protected]',
'maintainer': 'None',
'maintainer_email': 'None',
- 'url': 'http://www.pennington.net/py/ciscoconfparse/',
+ 'url': 'None',
'packages': packages,
'package_data': package_data,
'install_requires': install_requires,
- 'python_requires': '>=3.7.0',
+ 'python_requires': '>=3.7.2,<4.0.0',
}