annet 3.14.4__tar.gz → 3.15.1__tar.gz
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.
Potentially problematic release.
This version of annet might be problematic. Click here for more details.
- {annet-3.14.4/annet.egg-info → annet-3.15.1}/PKG-INFO +1 -1
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/devdb/data/devdb.json +2 -2
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rbparser/syntax.py +7 -9
- {annet-3.14.4 → annet-3.15.1}/annet/implicit.py +11 -4
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/patching.py +4 -1
- {annet-3.14.4 → annet-3.15.1/annet.egg-info}/PKG-INFO +1 -1
- {annet-3.14.4 → annet-3.15.1}/AUTHORS +0 -0
- {annet-3.14.4 → annet-3.15.1}/LICENSE +0 -0
- {annet-3.14.4 → annet-3.15.1}/MANIFEST.in +0 -0
- {annet-3.14.4 → annet-3.15.1}/README.md +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/fetchers/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/fetchers/stub/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/fetchers/stub/fetcher.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/file/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/file/provider.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/adapter.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/client.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/manufacturer.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/query.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/status_client.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/storage_base.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/common/storage_opts.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/provider.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v24/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v24/models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v24/storage.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v37/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v37/models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v37/storage.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v41/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v41/models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v41/storage.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v42/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v42/models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/adapters/netbox/v42/storage.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annet.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/command.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/diff.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/errors.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/filter_acl.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/jsontools.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/lib.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/db.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/devdb/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/views/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/views/dump.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/netdev/views/hardware.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/output.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/patching.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rbparser/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rbparser/acl.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rbparser/deploying.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rbparser/ordering.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rbparser/platform.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rulebook/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/rulebook/common.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/annlib/types.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/api/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/argparse.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/bgp_models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/cli.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/cli_args.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/configs/context.yml +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/configs/logging.yaml +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/connectors.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/deploy.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/deploy_ui.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/diff.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/filtering.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/gen.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/base.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/common/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/common/initial.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/entire.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/exceptions.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/jsonfragment.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/partial.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/perf.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/ref.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/generators/result.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/hardware.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/lib.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/basemodel.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/device_models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/executor.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/match_args.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/models_converter.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/peer_models.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/port_processor.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/mesh/registry.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/output.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/parallel.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/patching.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/reference.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/action.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/condition.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/match_builder.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/policy.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/result.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/routemap.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl/statement_builder.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/aspath.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/community.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/cumulus_frr.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/entities.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/execute.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/policy.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/prefix_lists.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rpl_generators/rd.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/arista/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/arista/aaa.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/arista/iface.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/aruba/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/aruba/ap_env.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/aruba/misc.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/b4com/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/b4com/file.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/b4com/iface.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/cisco/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/cisco/iface.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/cisco/misc.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/cisco/vlandb.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/common.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/deploying.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/generic/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/generic/misc.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/huawei/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/huawei/aaa.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/huawei/bgp.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/huawei/iface.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/huawei/misc.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/huawei/vlandb.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/juniper/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/juniper/iface.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/nexus/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/nexus/iface.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/routeros/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/routeros/file.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/arista.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/arista.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/arista.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/aruba.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/aruba.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/aruba.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/b4com.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/b4com.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/b4com.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/cisco.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/cisco.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/cisco.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/huawei.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/huawei.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/huawei.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/iosxr.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/iosxr.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/iosxr.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/juniper.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/juniper.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/nexus.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/nexus.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/nexus.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/nokia.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/optixtrans.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/optixtrans.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/optixtrans.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/pc.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/pc.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/pc.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/ribbon.deploy +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/ribbon.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/routeros.order +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/rulebook/texts/routeros.rul +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/storage.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/text_term_format.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/tracing.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/types.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/base.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/arista.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/aruba.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/b4com.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/cisco.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/h3c.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/huawei.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/iosxr.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/juniper.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/nexus.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/nokia.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/optixtrans.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/pc.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/ribbon.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/library/routeros.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/registry.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet/vendors/tabparser.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet.egg-info/SOURCES.txt +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet.egg-info/dependency_links.txt +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet.egg-info/entry_points.txt +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet.egg-info/requires.txt +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet.egg-info/top_level.txt +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/example/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/example/hostname.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/example/lldp.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/mesh_example/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/mesh_example/bgp.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/mesh_example/mesh_logic.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/rpl_example/__init__.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/rpl_example/generator.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/rpl_example/items.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/rpl_example/mesh.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/annet_generators/rpl_example/route_policy.py +0 -0
- {annet-3.14.4 → annet-3.15.1}/requirements.txt +0 -0
- {annet-3.14.4 → annet-3.15.1}/setup.cfg +0 -0
- {annet-3.14.4 → annet-3.15.1}/setup.py +0 -0
|
@@ -110,9 +110,9 @@
|
|
|
110
110
|
"Nokia.NS7750": " 7750",
|
|
111
111
|
"Nokia.SR_1s": "SR-1s",
|
|
112
112
|
|
|
113
|
-
"PC": "^(PC|pc|[Mm]ellanox SN|[Ee]dge-?[Cc]ore|[Mm]oxa|NVIDIA|Nebius|[Aa]sterfusion CX|[Uu]fi[Ss]pace|(VERTIV )?[Aa]vocent)",
|
|
113
|
+
"PC": "^(PC|pc|[Mm]ellanox SN|[Ee]dge-?[Cc]ore|[Mm]oxa|NVIDIA|Nebius|[Aa]sterfusion CX|[Uu]fi[Ss]pace|NADDOD|FSCOM|(VERTIV )?[Aa]vocent)",
|
|
114
114
|
|
|
115
|
-
"PC.Whitebox": "([Mm]ellanox SN|[Ee]dge-?[Cc]ore|NVIDIA|[Aa]sterfusion CX|[Uu]fi[Ss]pace)",
|
|
115
|
+
"PC.Whitebox": "([Mm]ellanox SN|[Ee]dge-?[Cc]ore|NVIDIA|[Aa]sterfusion CX|[Uu]fi[Ss]pace|NADDOD|FSCOM)",
|
|
116
116
|
"PC.Whitebox.Mellanox": "[Mm]ellanox",
|
|
117
117
|
"PC.Whitebox.Mellanox.SN": " SN",
|
|
118
118
|
"PC.Whitebox.Mellanox.SN.SN2100": " SN2100",
|
|
@@ -52,13 +52,14 @@ def _parse_tree_with_params(raw_tree, scheme, context=None):
|
|
|
52
52
|
for (raw_rule, children) in raw_tree.items():
|
|
53
53
|
(row, params) = _parse_raw_rule(raw_rule, scheme)
|
|
54
54
|
row_type = "normal"
|
|
55
|
+
|
|
55
56
|
if row.startswith("!"):
|
|
56
57
|
row = row[1:].strip()
|
|
57
58
|
if len(row) == 0:
|
|
58
59
|
continue
|
|
59
60
|
row_type = "ignore"
|
|
60
|
-
elif
|
|
61
|
-
context = _parse_context(context,
|
|
61
|
+
elif context_raw := params.get("context"):
|
|
62
|
+
context = _parse_context(context, context_raw)
|
|
62
63
|
continue
|
|
63
64
|
tree[raw_rule] = {
|
|
64
65
|
"row": row,
|
|
@@ -75,8 +76,8 @@ def _parse_raw_rule(raw_rule, scheme):
|
|
|
75
76
|
try:
|
|
76
77
|
index = raw_rule.index("%")
|
|
77
78
|
params = {
|
|
78
|
-
key: (value if len(value) != 0 else "1")
|
|
79
|
-
for (key, value) in re.findall(r"
|
|
79
|
+
key: (value.strip() if len(value.strip()) != 0 else "1")
|
|
80
|
+
for (key, value) in re.findall(r"%([a-zA-Z_]\w*)(?:=([^%]*))?", raw_rule[index:])
|
|
80
81
|
}
|
|
81
82
|
if params:
|
|
82
83
|
raw_rule = raw_rule[:index].strip()
|
|
@@ -85,7 +86,7 @@ def _parse_raw_rule(raw_rule, scheme):
|
|
|
85
86
|
|
|
86
87
|
row = re.sub(r"\s+", " ", raw_rule.strip())
|
|
87
88
|
params = _fill_and_validate(params, scheme, raw_rule)
|
|
88
|
-
return
|
|
89
|
+
return row, params
|
|
89
90
|
|
|
90
91
|
|
|
91
92
|
def _fill_and_validate(params, scheme, raw_rule):
|
|
@@ -109,8 +110,5 @@ def match_context(ifcontext, context):
|
|
|
109
110
|
|
|
110
111
|
|
|
111
112
|
def _parse_context(context, row):
|
|
112
|
-
|
|
113
|
-
if not row.startswith(keyword):
|
|
114
|
-
raise ValueError(row)
|
|
115
|
-
name, value = row[len(keyword):].strip().split(":")
|
|
113
|
+
name, value = row.strip().split(":")
|
|
116
114
|
return lib.merge_dicts(context, {name: value})
|
|
@@ -25,7 +25,7 @@ def compile_tree(tree):
|
|
|
25
25
|
rule = {
|
|
26
26
|
"type": attrs["type"],
|
|
27
27
|
"children": compile_tree(attrs["children"]) if attrs.get("children") else odict(),
|
|
28
|
-
"regexp": syntax.compile_row_regexp(attrs["row"]),
|
|
28
|
+
"regexp": attrs["params"]["regexp"] or syntax.compile_row_regexp(attrs["row"]),
|
|
29
29
|
}
|
|
30
30
|
rules[attrs["row"]] = rule
|
|
31
31
|
return rules
|
|
@@ -66,13 +66,14 @@ def _implicit_tree(device):
|
|
|
66
66
|
elif device.hw.Huawei.Quidway.S5700.S5735I:
|
|
67
67
|
text = """
|
|
68
68
|
!interface *
|
|
69
|
-
|
|
69
|
+
port link-type access %regexp=port link-type .*
|
|
70
70
|
interface NULL0
|
|
71
71
|
"""
|
|
72
72
|
elif device.hw.Huawei.Quidway.S2x:
|
|
73
73
|
text = """
|
|
74
74
|
!interface *
|
|
75
|
-
|
|
75
|
+
port link-type hybrid %regexp=port link-type .*
|
|
76
|
+
dot1x enable
|
|
76
77
|
interface NULL0
|
|
77
78
|
"""
|
|
78
79
|
else:
|
|
@@ -179,8 +180,14 @@ def _implicit_tree(device):
|
|
|
179
180
|
system mtu routing 1500
|
|
180
181
|
system mtu jumbo 9000
|
|
181
182
|
"""
|
|
183
|
+
|
|
182
184
|
return parse_text(text)
|
|
183
185
|
|
|
184
186
|
|
|
185
187
|
def parse_text(text):
|
|
186
|
-
return syntax.parse_text(text, {
|
|
188
|
+
return syntax.parse_text(text, {
|
|
189
|
+
"regexp": {
|
|
190
|
+
"default": None,
|
|
191
|
+
"validator": lambda x: syntax.compile_row_regexp(x),
|
|
192
|
+
},
|
|
193
|
+
})
|
|
@@ -18,7 +18,6 @@ MULTILINE_DIFF_LOGIC = "common.multiline_diff"
|
|
|
18
18
|
# =====
|
|
19
19
|
@functools.lru_cache()
|
|
20
20
|
def compile_patching_text(text, vendor):
|
|
21
|
-
|
|
22
21
|
return _compile_patching(
|
|
23
22
|
tree=syntax.parse_text(text, params_scheme={
|
|
24
23
|
"global": {
|
|
@@ -45,6 +44,10 @@ def compile_patching_text(text, vendor):
|
|
|
45
44
|
"validator": valid_bool,
|
|
46
45
|
"default": False,
|
|
47
46
|
},
|
|
47
|
+
"context": {
|
|
48
|
+
"validator": str,
|
|
49
|
+
"default": None,
|
|
50
|
+
},
|
|
48
51
|
"rewrite": {
|
|
49
52
|
"validator": valid_bool,
|
|
50
53
|
"default": False,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|