From 393ce754368ea97c766d12228833b5b3d33d0747 Mon Sep 17 00:00:00 2001 From: Matt Miller Date: Wed, 17 Apr 2024 17:36:22 -0400 Subject: [PATCH 01/49] Update Diffsync to 2.0.0 and perform Linting --- .../device42/diffsync/models/nautobot/ipam.py | 64 ++ poetry.lock | 600 +++++++++++++++++- 2 files changed, 659 insertions(+), 5 deletions(-) diff --git a/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py b/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py index 558b20afb..29bc8cf04 100644 --- a/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py +++ b/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py @@ -19,11 +19,13 @@ class NautobotVRFGroup(VRFGroup): """Nautobot VRFGroup model.""" @classmethod + def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create VRF object in Nautobot.""" _namespace = OrmNamespace.objects.get_or_create(name=ids["name"], description=attrs["description"])[0] _vrf = OrmVRF(name=ids["name"], description=attrs["description"], namespace=_namespace) adapter.job.logger.info(f"Creating VRF {_vrf.name}.") + adapter.job.logger.info(f"Creating VRF {_vrf.name}.") _vrf.validated_save() # for every VRF we want to create a Namespace to ensure duplicate subnets can function. if attrs.get("tags"): @@ -34,11 +36,15 @@ def create(cls, adapter, ids, attrs): adapter.vrf_map[ids["name"]] = _vrf.id adapter.namespace_map[ids["name"]] = _namespace.id return super().create(ids=ids, adapter=adapter, attrs=attrs) + adapter.vrf_map[ids["name"]] = _vrf.id + adapter.namespace_map[ids["name"]] = _namespace.id + return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update VRF object in Nautobot.""" _vrf = OrmVRF.objects.get(id=self.uuid) self.adapter.job.logger.info(f"Updating VRF {_vrf.name}.") + self.adapter.job.logger.info(f"Updating VRF {_vrf.name}.") if "description" in attrs: _vrf.description = attrs["description"] if "tags" in attrs: @@ -56,13 +62,16 @@ def delete(self): Because VRF has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot + The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): super().delete() self.adapter.job.logger.info(f"VRF {self.name} will be deleted.") + self.adapter.job.logger.info(f"VRF {self.name} will be deleted.") vrf = OrmVRF.objects.get(id=self.uuid) self.adapter.objects_to_delete["vrf"].append(vrf) # pylint: disable=protected-access + self.adapter.objects_to_delete["vrf"].append(vrf) # pylint: disable=protected-access return self @@ -70,6 +79,7 @@ class NautobotSubnet(Subnet): """Nautobot Subnet model.""" @classmethod + def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create Prefix object in Nautobot.""" prefix = f"{ids['network']}/{ids['mask_bits']}" @@ -78,13 +88,17 @@ def create(cls, adapter, ids, attrs): description=attrs["description"], namespace_id=adapter.namespace_map[ids["vrf"]] if ids["vrf"] in adapter.namespace_map else "Global", status_id=adapter.status_map["Active"], + namespace_id=adapter.namespace_map[ids["vrf"]] if ids["vrf"] in adapter.namespace_map else "Global", + status_id=adapter.status_map["Active"], ) _pf.validated_save() if ids["mask_bits"] == 0: _pf.type = "container" adapter.job.logger.info(f"Creating Prefix {prefix} in VRF {ids['vrf']}.") + adapter.job.logger.info(f"Creating Prefix {prefix} in VRF {ids['vrf']}.") if ids.get("vrf"): _pf.vrfs.add(adapter.vrf_map[ids["vrf"]]) + _pf.vrfs.add(adapter.vrf_map[ids["vrf"]]) if attrs.get("tags"): _pf.tags.set(attrs["tags"]) if attrs.get("custom_fields"): @@ -94,11 +108,16 @@ def create(cls, adapter, ids, attrs): adapter.prefix_map[ids["vrf"]] = {} adapter.prefix_map[ids["vrf"]][prefix] = _pf.id return super().create(ids=ids, adapter=adapter, attrs=attrs) + if ids["vrf"] not in adapter.prefix_map: + adapter.prefix_map[ids["vrf"]] = {} + adapter.prefix_map[ids["vrf"]][prefix] = _pf.id + return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update Prefix object in Nautobot.""" _pf = OrmPrefix.objects.get(id=self.uuid) self.adapter.job.logger.info(f"Updating Prefix {_pf.prefix}.") + self.adapter.job.logger.info(f"Updating Prefix {_pf.prefix}.") if "description" in attrs: _pf.description = attrs["description"] if "tags" in attrs: @@ -116,6 +135,7 @@ def delete(self): Because Subnet has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot + The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): @@ -123,6 +143,8 @@ def delete(self): subnet = OrmPrefix.objects.get(id=self.uuid) self.adapter.job.logger.info(f"Prefix {subnet.prefix} will be deleted.") self.adapter.objects_to_delete["subnet"].append(subnet) # pylint: disable=protected-access + self.adapter.job.logger.info(f"Prefix {subnet.prefix} will be deleted.") + self.adapter.objects_to_delete["subnet"].append(subnet) # pylint: disable=protected-access return self @@ -130,6 +152,7 @@ class NautobotIPAddress(IPAddress): """Nautobot IP Address model.""" @classmethod + def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create IP Address object in Nautobot.""" _address = ids["address"] @@ -138,17 +161,21 @@ def create(cls, adapter, ids, attrs): prefix=ids["subnet"], namespace=OrmNamespace.objects.get(name=attrs["namespace"]) ) except OrmPrefix.DoesNotExist: + adapter.job.logger.error(f"Unable to find prefix {ids['subnet']} to create IPAddress {_address} for.") adapter.job.logger.error(f"Unable to find prefix {ids['subnet']} to create IPAddress {_address} for.") return None _ip = OrmIPAddress( address=_address, parent_id=prefix.id, status_id=adapter.status_map["Active"] if not attrs.get("available") else adapter.status_map["Reserved"], + status_id=adapter.status_map["Active"] if not attrs.get("available") else adapter.status_map["Reserved"], description=attrs["label"] if attrs.get("label") else "", ) _ip.validated_save() if attrs.get("device") and attrs.get("interface"): try: + adapter.job.logger.info(f"Creating IPAddress {_address}.") + intf = adapter.port_map[attrs["device"]][attrs["interface"]] adapter.job.logger.info(f"Creating IPAddress {_address}.") intf = adapter.port_map[attrs["device"]][attrs["interface"]] assign_ip = IPAddressToInterface.objects.create(ip_address=_ip, interface_id=intf, vm_interface=None) @@ -160,6 +187,7 @@ def create(cls, adapter, ids, attrs): assign_ip.interface.device.primary_ip6 = _ip assign_ip.interface.device.validated_save() except KeyError: + adapter.job.logger.debug( adapter.job.logger.debug( f"Unable to find Interface {attrs['interface']} for {attrs['device']}.", ) @@ -175,18 +203,25 @@ def create(cls, adapter, ids, attrs): adapter.ipaddr_map[attrs["namespace"]] = {} adapter.ipaddr_map[attrs["namespace"]][_address] = _ip.id return super().create(ids=ids, adapter=adapter, attrs=attrs) + if attrs["namespace"] not in adapter.ipaddr_map: + adapter.ipaddr_map[attrs["namespace"]] = {} + adapter.ipaddr_map[attrs["namespace"]][_address] = _ip.id + return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update IPAddress object in Nautobot.""" try: _ipaddr = OrmIPAddress.objects.get(id=self.uuid) except OrmIPAddress.DoesNotExist: + if self.adapter.job.debug: + self.adapter.job.logger.debug( if self.adapter.job.debug: self.adapter.job.logger.debug( "IP Address passed to update but can't be found. This shouldn't happen. Why is this happening?!?!" ) return self.adapter.job.logger.info(f"Updating IPAddress {_ipaddr.address}") + self.adapter.job.logger.info(f"Updating IPAddress {_ipaddr.address}") if "available" in attrs: _ipaddr.status = ( OrmStatus.objects.get(name="Active") if attrs["available"] else OrmStatus.objects.get(name="Reserved") @@ -205,7 +240,9 @@ def update(self, attrs): _ipaddr.validated_save() except ValidationError as err: self.adapter.job.logger.warning(f"Failure updating Device & Interface for {_ipaddr.address}. {err}") + self.adapter.job.logger.warning(f"Failure updating Device & Interface for {_ipaddr.address}. {err}") except OrmInterface.DoesNotExist as err: + self.adapter.job.logger.warning( self.adapter.job.logger.warning( f"Unable to find Interface {attrs['interface']} for {attrs['device']}. {err}" ) @@ -217,6 +254,7 @@ def update(self, attrs): ) assign_ip.validated_save() except OrmInterface.DoesNotExist as err: + self.adapter.job.logger.debug( self.adapter.job.logger.debug( f"Unable to find Interface {attrs['interface'] if attrs.get('interface') else self.interface} for {attrs['device']} {err}" ) @@ -224,19 +262,25 @@ def update(self, attrs): try: OrmInterface.objects.get(name=attrs["interface"], device__name=self.device) except OrmInterface.DoesNotExist: + for port in self.adapter.objects_to_create["ports"]: + if port.name == attrs["interface"] and port.device_id == self.adapter.device_map[self.device]: for port in self.adapter.objects_to_create["ports"]: if port.name == attrs["interface"] and port.device_id == self.adapter.device_map[self.device]: try: port.validated_save() except ValidationError as err: + self.adapter.job.logger.warning( self.adapter.job.logger.warning( f"Failure saving port {port.name} for IPAddress {_ipaddr.address}. {err}" ) try: + if attrs.get("device") and attrs["device"] in self.adapter.port_map: + intf = self.adapter.port_map[attrs["device"]][attrs["interface"]] if attrs.get("device") and attrs["device"] in self.adapter.port_map: intf = self.adapter.port_map[attrs["device"]][attrs["interface"]] else: intf = self.adapter.port_map[self.device][attrs["interface"]] + intf = self.adapter.port_map[self.device][attrs["interface"]] assign_ip = IPAddressToInterface.objects.create( ip_address=_ipaddr, interface_id=intf, vm_interface=None ) @@ -245,7 +289,9 @@ def update(self, attrs): _ipaddr.validated_save() except ValidationError as err: self.adapter.job.logger.warning(f"Failure updating Interface for {_ipaddr.address}. {err}") + self.adapter.job.logger.warning(f"Failure updating Interface for {_ipaddr.address}. {err}") except KeyError as err: + self.adapter.job.logger.debug( self.adapter.job.logger.debug( f"Unable to find Interface {attrs['interface']} for {attrs['device'] if attrs.get('device') else self.device}. {err}" ) @@ -267,6 +313,7 @@ def update(self, attrs): ip_to_intf.interface.device.primary_ip6 = _ipaddr ip_to_intf.interface.device.validated_save() else: + self.adapter.job.logger.warning( self.adapter.job.logger.warning( f"IPAddress {_ipaddr.address} is showing unassigned from an Interface so can't be marked primary." ) @@ -281,6 +328,7 @@ def update(self, attrs): _ipaddr.validated_save() return super().update(attrs) except ValidationError as err: + self.adapter.job.logger.warning(f"Unable to update IP Address {self.address} with {attrs}. {err}") self.adapter.job.logger.warning(f"Unable to update IP Address {self.address} with {attrs}. {err}") return None @@ -289,13 +337,16 @@ def delete(self): Because IPAddress has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot + The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): super().delete() self.adapter.job.logger.info(f"IP Address {self.address} will be deleted.") + self.adapter.job.logger.info(f"IP Address {self.address} will be deleted.") ipaddr = OrmIPAddress.objects.get(id=self.uuid) self.adapter.objects_to_delete["ipaddr"].append(ipaddr) # pylint: disable=protected-access + self.adapter.objects_to_delete["ipaddr"].append(ipaddr) # pylint: disable=protected-access return self @@ -303,6 +354,7 @@ class NautobotVLAN(VLAN): """Nautobot VLAN model.""" @classmethod + def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create VLAN object in Nautobot.""" _site_name = None @@ -311,9 +363,13 @@ def create(cls, adapter, ids, attrs): else: _site_name = "Global" adapter.job.logger.info(f"Creating VLAN {ids['vlan_id']} {attrs['name']} for {_site_name}") + adapter.job.logger.info(f"Creating VLAN {ids['vlan_id']} {attrs['name']} for {_site_name}") new_vlan = OrmVLAN( name=attrs["name"], vid=ids["vlan_id"], + location_id=( + adapter.site_map[_site_name] if _site_name in adapter.site_map and _site_name != "Global" else None + ), status_id=adapter.status_map["Active"], description=attrs["description"], ) @@ -329,10 +385,15 @@ def create(cls, adapter, ids, attrs): adapter.vlan_map[_site_name] = {} adapter.vlan_map[_site_name][ids["vlan_id"]] = new_vlan.id return super().create(ids=ids, adapter=adapter, attrs=attrs) + if _site_name not in adapter.vlan_map: + adapter.vlan_map[_site_name] = {} + adapter.vlan_map[_site_name][ids["vlan_id"]] = new_vlan.id + return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update VLAN object in Nautobot.""" _vlan = OrmVLAN.objects.get(id=self.uuid) + self.adapter.job.logger.info( self.adapter.job.logger.info( f"Updating VLAN {_vlan.name} {_vlan.vid} for {_vlan.location.name if _vlan.location else 'Global'}." ) @@ -355,11 +416,14 @@ def delete(self): Because VLAN has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot + The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): super().delete() self.adapter.job.logger.info(f"VLAN {self.name} {self.vlan_id} {self.building} will be deleted.") + self.adapter.job.logger.info(f"VLAN {self.name} {self.vlan_id} {self.building} will be deleted.") vlan = OrmVLAN.objects.get(id=self.uuid) self.adapter.objects_to_delete["vlan"].append(vlan) # pylint: disable=protected-access + self.adapter.objects_to_delete["vlan"].append(vlan) # pylint: disable=protected-access return self diff --git a/poetry.lock b/poetry.lock index ed55828bf..8d0ad486c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -14,16 +14,20 @@ files = [ [[package]] name = "amqp" version = "5.2.0" +version = "5.2.0" description = "Low-level AMQP client for Python (fork of amqplib)." optional = false python-versions = ">=3.6" files = [ {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"}, {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"}, + {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"}, + {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"}, ] [package.dependencies] vine = ">=5.0.0,<6.0.0" +vine = ">=5.0.0,<6.0.0" [[package]] name = "aniso8601" @@ -66,32 +70,44 @@ exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] trio = ["trio (>=0.23)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] [[package]] name = "appnope" version = "0.1.4" +version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false python-versions = ">=3.6" +python-versions = ">=3.6" files = [ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] name = "asgiref" version = "3.8.1" +version = "3.8.1" description = "ASGI specs, helper code, and adapters" optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"}, {file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"}, + {file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"}, + {file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"}, ] [package.dependencies] @@ -106,6 +122,7 @@ version = "3.2.4" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.8.0" +python-versions = ">=3.8.0" files = [ {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, @@ -117,12 +134,15 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "asttokens" version = "2.4.1" +version = "2.4.1" description = "Annotate AST trees with source code positions" optional = false python-versions = "*" files = [ {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, ] [package.dependencies] @@ -143,6 +163,23 @@ files = [ {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, ] +[package.dependencies] +six = ">=1.6.1,<2.0" +wheel = ">=0.23.0,<1.0" +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "astunparse" +version = "1.6.3" +description = "An AST unparser for Python" +optional = false +python-versions = "*" +files = [ + {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, + {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, +] + [package.dependencies] six = ">=1.6.1,<2.0" wheel = ">=0.23.0,<1.0" @@ -209,6 +246,9 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "backcall" version = "0.2.0" @@ -257,6 +297,7 @@ version = "1.7.9" description = "Security oriented static analyser for python code." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "bandit-1.7.9-py3-none-any.whl", hash = "sha256:52077cb339000f337fb25f7e045995c4ad01511e716e5daac37014b9752de8ec"}, {file = "bandit-1.7.9.tar.gz", hash = "sha256:7c395a436743018f7be0a4cbb0a4ea9b902b6d87264ddecf8cfdc73b4f78ff61"}, @@ -272,18 +313,24 @@ stevedore = ">=1.20.0" baseline = ["GitPython (>=3.1.30)"] sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] +baseline = ["GitPython (>=3.1.30)"] +sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] toml = ["tomli (>=1.1.0)"] yaml = ["PyYAML"] [[package]] name = "billiard" version = "4.2.0" +version = "4.2.0" description = "Python multiprocessing fork with improvements and bugfixes" optional = false python-versions = ">=3.7" files = [ {file = "billiard-4.2.0-py3-none-any.whl", hash = "sha256:07aa978b308f334ff8282bd4a746e681b3513db5c9a514cbdd810cbbdc19714d"}, {file = "billiard-4.2.0.tar.gz", hash = "sha256:9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c"}, + {file = "billiard-4.2.0-py3-none-any.whl", hash = "sha256:07aa978b308f334ff8282bd4a746e681b3513db5c9a514cbdd810cbbdc19714d"}, + {file = "billiard-4.2.0.tar.gz", hash = "sha256:9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c"}, ] [[package]] @@ -329,6 +376,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -346,29 +394,36 @@ files = [ [[package]] name = "celery" version = "5.3.6" +version = "5.3.6" description = "Distributed Task Queue." optional = false python-versions = ">=3.8" files = [ {file = "celery-5.3.6-py3-none-any.whl", hash = "sha256:9da4ea0118d232ce97dff5ed4974587fb1c0ff5c10042eb15278487cdd27d1af"}, {file = "celery-5.3.6.tar.gz", hash = "sha256:870cc71d737c0200c397290d730344cc991d13a057534353d124c9380267aab9"}, + {file = "celery-5.3.6-py3-none-any.whl", hash = "sha256:9da4ea0118d232ce97dff5ed4974587fb1c0ff5c10042eb15278487cdd27d1af"}, + {file = "celery-5.3.6.tar.gz", hash = "sha256:870cc71d737c0200c397290d730344cc991d13a057534353d124c9380267aab9"}, ] [package.dependencies] "backports.zoneinfo" = {version = ">=0.2.1", markers = "python_version < \"3.9\""} billiard = ">=4.2.0,<5.0" +billiard = ">=4.2.0,<5.0" click = ">=8.1.2,<9.0" click-didyoumean = ">=0.3.0" click-plugins = ">=1.1.1" click-repl = ">=0.2.0" kombu = ">=5.3.4,<6.0" +kombu = ">=5.3.4,<6.0" python-dateutil = ">=2.8.2" tzdata = ">=2022.7" vine = ">=5.1.0,<6.0" +vine = ">=5.1.0,<6.0" [package.extras] arangodb = ["pyArango (>=2.0.2)"] auth = ["cryptography (==41.0.5)"] +auth = ["cryptography (==41.0.5)"] azureblockblob = ["azure-storage-blob (>=12.15.0)"] brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] cassandra = ["cassandra-driver (>=3.25.0,<4)"] @@ -379,25 +434,30 @@ couchdb = ["pycouchdb (==1.14.2)"] django = ["Django (>=2.2.28)"] dynamodb = ["boto3 (>=1.26.143)"] elasticsearch = ["elastic-transport (<=8.10.0)", "elasticsearch (<=8.11.0)"] +elasticsearch = ["elastic-transport (<=8.10.0)", "elasticsearch (<=8.11.0)"] eventlet = ["eventlet (>=0.32.0)"] gevent = ["gevent (>=1.5.0)"] librabbitmq = ["librabbitmq (>=2.0.0)"] memcache = ["pylibmc (==1.6.3)"] mongodb = ["pymongo[srv] (>=4.0.2)"] msgpack = ["msgpack (==1.0.7)"] +msgpack = ["msgpack (==1.0.7)"] pymemcache = ["python-memcached (==1.59)"] pyro = ["pyro4 (==4.82)"] pytest = ["pytest-celery (==0.0.0)"] redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"] +redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"] s3 = ["boto3 (>=1.26.143)"] slmq = ["softlayer-messaging (>=1.0.3)"] solar = ["ephem (==4.1.5)"] +solar = ["ephem (==4.1.5)"] sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"] sqs = ["boto3 (>=1.26.143)", "kombu[sqs] (>=5.3.0)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"] tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"] yaml = ["PyYAML (>=3.10)"] zookeeper = ["kazoo (>=1.3.1)"] zstd = ["zstandard (==0.22.0)"] +zstd = ["zstandard (==0.22.0)"] [[package]] name = "certifi" @@ -492,6 +552,7 @@ pycparser = "*" [[package]] name = "charset-normalizer" version = "3.3.2" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" @@ -586,6 +647,96 @@ files = [ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] @@ -622,12 +773,16 @@ test = ["pytest"] [[package]] name = "click-didyoumean" version = "0.3.1" +version = "0.3.1" description = "Enables git-like *did-you-mean* feature in click" optional = false python-versions = ">=3.6.2" +python-versions = ">=3.6.2" files = [ {file = "click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c"}, {file = "click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463"}, + {file = "click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c"}, + {file = "click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463"}, ] [package.dependencies] @@ -674,6 +829,7 @@ version = "1.21.0" description = "A Python library for Arista's CloudVision APIs and Provisioning Action integrations." optional = true python-versions = ">=3.7.0" +python-versions = ">=3.7.0" files = [ {file = "cloudvision-1.21.0-py3-none-any.whl", hash = "sha256:1adf599817d77a0a822a733f678b6e79700d5fa1b43c951e60d6a7471f6f0526"}, {file = "cloudvision-1.21.0.tar.gz", hash = "sha256:4e8c56a0d40413916a762758d4b23c5030bc39ad79ba65738f30d2dff8d991e4"}, @@ -859,12 +1015,15 @@ toml = ["tomli"] [[package]] name = "cron-descriptor" version = "1.4.3" +version = "1.4.3" description = "A Python library that converts cron expressions into human readable strings." optional = false python-versions = "*" files = [ {file = "cron_descriptor-1.4.3-py3-none-any.whl", hash = "sha256:a67ba21804983b1427ed7f3e1ec27ee77bf24c652b0430239c268c5ddfbf9dc0"}, {file = "cron_descriptor-1.4.3.tar.gz", hash = "sha256:7b1a00d7d25d6ae6896c0da4457e790b98cba778398a3d48e341e5e0d33f0488"}, + {file = "cron_descriptor-1.4.3-py3-none-any.whl", hash = "sha256:a67ba21804983b1427ed7f3e1ec27ee77bf24c652b0430239c268c5ddfbf9dc0"}, + {file = "cron_descriptor-1.4.3.tar.gz", hash = "sha256:7b1a00d7d25d6ae6896c0da4457e790b98cba778398a3d48e341e5e0d33f0488"}, ] [package.extras] @@ -913,15 +1072,19 @@ files = [ [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -944,12 +1107,15 @@ dev = ["check-manifest", "coverage", "pep8", "pyflakes", "pylint", "pyyaml"] [[package]] name = "cycler" version = "0.12.1" +version = "0.12.1" description = "Composable style cycles" optional = true python-versions = ">=3.8" files = [ {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, ] [package.extras] @@ -1002,6 +1168,7 @@ version = "2.0.0" description = "Library to easily sync/diff/update 2 different data sources" optional = false python-versions = ">=3.8,<4.0" +python-versions = ">=3.8,<4.0" files = [ {file = "diffsync-2.0.0-py3-none-any.whl", hash = "sha256:59f864a115abc5b0aa3b9db0d44deff59c81cd5469e5894326c27e29511e3aab"}, {file = "diffsync-2.0.0.tar.gz", hash = "sha256:712bc85a24f49ef6075344dc3a16c85e27b1416154c46fd5de7acf72e8321a9b"}, @@ -1013,6 +1180,7 @@ packaging = ">=21.3,<24.0" pydantic = ">=2.0.0,<3.0.0" structlog = ">=20.1.0,<23.0.0" typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] redis = ["redis (>=4.3,<5.0)"] @@ -1020,17 +1188,22 @@ redis = ["redis (>=4.3,<5.0)"] [[package]] name = "dill" version = "0.3.8" +version = "0.3.8" description = "serialize all of Python" optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] profile = ["gprof2dot (>=2022.7.29)"] +profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "django" @@ -1067,11 +1240,13 @@ files = [ [[package]] name = "django-celery-beat" version = "2.6.0" +version = "2.6.0" description = "Database-backed Periodic Tasks." optional = false python-versions = "*" files = [ {file = "django-celery-beat-2.6.0.tar.gz", hash = "sha256:f75b2d129731f1214be8383e18fae6bfeacdb55dffb2116ce849222c0106f9ad"}, + {file = "django-celery-beat-2.6.0.tar.gz", hash = "sha256:f75b2d129731f1214be8383e18fae6bfeacdb55dffb2116ce849222c0106f9ad"}, ] [package.dependencies] @@ -1079,6 +1254,7 @@ files = [ celery = ">=5.2.3,<6.0" cron-descriptor = ">=1.2.32" Django = ">=2.2,<5.1" +Django = ">=2.2,<5.1" django-timezone-field = ">=5.0" python-crontab = ">=2.3.4" tzdata = "*" @@ -1086,17 +1262,22 @@ tzdata = "*" [[package]] name = "django-celery-results" version = "2.5.1" +version = "2.5.1" description = "Celery result backends for Django." optional = false python-versions = "*" files = [ {file = "django_celery_results-2.5.1-py3-none-any.whl", hash = "sha256:0da4cd5ecc049333e4524a23fcfc3460dfae91aa0a60f1fae4b6b2889c254e01"}, {file = "django_celery_results-2.5.1.tar.gz", hash = "sha256:3ecb7147f773f34d0381bac6246337ce4cf88a2ea7b82774ed48e518b67bb8fd"}, + {file = "django_celery_results-2.5.1-py3-none-any.whl", hash = "sha256:0da4cd5ecc049333e4524a23fcfc3460dfae91aa0a60f1fae4b6b2889c254e01"}, + {file = "django_celery_results-2.5.1.tar.gz", hash = "sha256:3ecb7147f773f34d0381bac6246337ce4cf88a2ea7b82774ed48e518b67bb8fd"}, ] [package.dependencies] celery = ">=5.2.7,<6.0" Django = ">=3.2.18" +celery = ">=5.2.7,<6.0" +Django = ">=3.2.18" [[package]] name = "django-constance" @@ -1133,12 +1314,15 @@ django = ">=3.2" [[package]] name = "django-db-file-storage" version = "0.5.6.1" +version = "0.5.6.1" description = "Custom FILE_STORAGE for Django. Saves files in your database instead of your file system." optional = false python-versions = "*" files = [ {file = "django-db-file-storage-0.5.6.1.tar.gz", hash = "sha256:f0c4540ed6b772e8b3141eae3222acde4c29ab771477a5c999013a3980856c7f"}, {file = "django_db_file_storage-0.5.6.1-py3-none-any.whl", hash = "sha256:3feac1e060b550c3c03c35e95d2111d9f100bc247863ace691a78b107f1fc3d5"}, + {file = "django-db-file-storage-0.5.6.1.tar.gz", hash = "sha256:f0c4540ed6b772e8b3141eae3222acde4c29ab771477a5c999013a3980856c7f"}, + {file = "django_db_file_storage-0.5.6.1-py3-none-any.whl", hash = "sha256:3feac1e060b550c3c03c35e95d2111d9f100bc247863ace691a78b107f1fc3d5"}, ] [package.dependencies] @@ -1222,27 +1406,35 @@ python-ipware = ">=2.0.3" [[package]] name = "django-jinja" version = "2.11.0" +version = "2.11.0" description = "Jinja2 templating language integrated in Django." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "django-jinja-2.11.0.tar.gz", hash = "sha256:47c06d3271e6b2f27d3596278af517bfe2e19c1eb36ae1c0b1cc302d7f0259af"}, {file = "django_jinja-2.11.0-py3-none-any.whl", hash = "sha256:cc4c72246a6e346aa0574e0c56c3e534c1a20ef47b8476f05d7287781f69a0a9"}, + {file = "django-jinja-2.11.0.tar.gz", hash = "sha256:47c06d3271e6b2f27d3596278af517bfe2e19c1eb36ae1c0b1cc302d7f0259af"}, + {file = "django_jinja-2.11.0-py3-none-any.whl", hash = "sha256:cc4c72246a6e346aa0574e0c56c3e534c1a20ef47b8476f05d7287781f69a0a9"}, ] [package.dependencies] django = ">=3.2" +django = ">=3.2" jinja2 = ">=3" [[package]] name = "django-picklefield" version = "3.2" +version = "3.2" description = "Pickled object field for Django" optional = false python-versions = ">=3" files = [ {file = "django-picklefield-3.2.tar.gz", hash = "sha256:aa463f5d79d497dbe789f14b45180f00a51d0d670067d0729f352a3941cdfa4d"}, {file = "django_picklefield-3.2-py3-none-any.whl", hash = "sha256:e9a73539d110f69825d9320db18bcb82e5189ff48dbed41821c026a20497764c"}, + {file = "django-picklefield-3.2.tar.gz", hash = "sha256:aa463f5d79d497dbe789f14b45180f00a51d0d670067d0729f352a3941cdfa4d"}, + {file = "django_picklefield-3.2-py3-none-any.whl", hash = "sha256:e9a73539d110f69825d9320db18bcb82e5189ff48dbed41821c026a20497764c"}, ] [package.dependencies] @@ -1268,12 +1460,15 @@ prometheus-client = ">=0.7" [[package]] name = "django-redis" version = "5.4.0" +version = "5.4.0" description = "Full featured redis cache backend for Django." optional = false python-versions = ">=3.6" files = [ {file = "django-redis-5.4.0.tar.gz", hash = "sha256:6a02abaa34b0fea8bf9b707d2c363ab6adc7409950b2db93602e6cb292818c42"}, {file = "django_redis-5.4.0-py3-none-any.whl", hash = "sha256:ebc88df7da810732e2af9987f7f426c96204bf89319df4c6da6ca9a2942edd5b"}, + {file = "django-redis-5.4.0.tar.gz", hash = "sha256:6a02abaa34b0fea8bf9b707d2c363ab6adc7409950b2db93602e6cb292818c42"}, + {file = "django_redis-5.4.0-py3-none-any.whl", hash = "sha256:ebc88df7da810732e2af9987f7f426c96204bf89319df4c6da6ca9a2942edd5b"}, ] [package.dependencies] @@ -1324,12 +1519,15 @@ commands = ["django-extensions (>=1.4.9)"] [[package]] name = "django-tables2" version = "2.7.0" +version = "2.7.0" description = "Table/data-grid framework for Django" optional = false python-versions = "*" files = [ {file = "django-tables2-2.7.0.tar.gz", hash = "sha256:4113fcc575eb438a12e83a4d4ea01452e4800d970e8bdd0e4122ac171af1900d"}, {file = "django_tables2-2.7.0-py2.py3-none-any.whl", hash = "sha256:99e06d966ca8ac69fd74092eb45c79a280dd5ca0ccb81395d96261f62128e1af"}, + {file = "django-tables2-2.7.0.tar.gz", hash = "sha256:4113fcc575eb438a12e83a4d4ea01452e4800d970e8bdd0e4122ac171af1900d"}, + {file = "django_tables2-2.7.0-py2.py3-none-any.whl", hash = "sha256:99e06d966ca8ac69fd74092eb45c79a280dd5ca0ccb81395d96261f62128e1af"}, ] [package.dependencies] @@ -1420,12 +1618,16 @@ django = ">=4.2" [[package]] name = "dnspython" version = "2.6.1" +version = "2.6.1" description = "DNS toolkit" optional = true python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, + {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, + {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, ] [package.extras] @@ -1436,6 +1638,13 @@ doq = ["aioquic (>=0.9.25)"] idna = ["idna (>=3.6)"] trio = ["trio (>=0.23)"] wmi = ["wmi (>=1.5.1)"] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=41)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=0.9.25)"] +idna = ["idna (>=3.6)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] [[package]] name = "docutils" @@ -1535,32 +1744,44 @@ test = ["pytest (>=6)"] [[package]] name = "executing" version = "2.0.1" +version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" optional = false python-versions = ">=3.5" +python-versions = ">=3.5" files = [ {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, ] [package.extras] tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] [[package]] name = "flake8" version = "5.0.4" +version = "5.0.4" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.6.1" +python-versions = ">=3.6.1" files = [ {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, + {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, + {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" pycodestyle = ">=2.9.0,<2.10.0" pyflakes = ">=2.5.0,<2.6.0" +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.9.0,<2.10.0" +pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "fonttools" @@ -1615,9 +1836,12 @@ files = [ [package.extras] all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "pycairo", "scipy"] lxml = ["lxml (>=4.0)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] @@ -1625,6 +1849,7 @@ symfont = ["sympy"] type1 = ["xattr"] ufo = ["fs (>=2.2.0,<3)"] unicode = ["unicodedata2 (>=15.1.0)"] +unicode = ["unicodedata2 (>=15.1.0)"] woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] @@ -1647,12 +1872,15 @@ dev = ["flake8", "markdown", "twine", "wheel"] [[package]] name = "gitdb" version = "4.0.11" +version = "4.0.11" description = "Git Object Database" optional = false python-versions = ">=3.7" files = [ {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, + {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, + {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, ] [package.dependencies] @@ -1661,12 +1889,15 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" version = "3.1.43" +version = "3.1.43" description = "GitPython is a Python library used to interact with Git repositories" optional = false python-versions = ">=3.7" files = [ {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, + {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, + {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, ] [package.dependencies] @@ -1676,6 +1907,19 @@ gitdb = ">=4.0.1,<5" doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] +[[package]] +name = "gprof2dot" +version = "2024.6.6" +description = "Generate a dot graph from the output of several profilers." +optional = false +python-versions = ">=3.8" +files = [ + {file = "gprof2dot-2024.6.6-py2.py3-none-any.whl", hash = "sha256:45b14ad7ce64e299c8f526881007b9eb2c6b75505d5613e96e66ee4d5ab33696"}, + {file = "gprof2dot-2024.6.6.tar.gz", hash = "sha256:fa1420c60025a9eb7734f65225b4da02a10fc6dd741b37fa129bc6b41951e5ab"}, +] +doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] + [[package]] name = "gprof2dot" version = "2024.6.6" @@ -1792,6 +2036,7 @@ files = [ [package.dependencies] astunparse = {version = ">=1.6", markers = "python_version < \"3.9\""} +astunparse = {version = ">=1.6", markers = "python_version < \"3.9\""} colorama = ">=0.4" [[package]] @@ -1948,12 +2193,15 @@ files = [ [[package]] name = "idna" version = "3.7" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -2221,16 +2469,20 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa [[package]] name = "isort" version = "5.13.2" +version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] colors = ["colorama (>=0.4.6)"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "jedi" @@ -2446,6 +2698,7 @@ msgpack = ["msgpack (==1.0.8)"] pyro = ["pyro4 (==4.82)"] qpid = ["qpid-python (>=0.26)", "qpid-tools (>=0.26)"] redis = ["redis (>=4.5.2,!=4.5.5,!=5.0.2)"] +redis = ["redis (>=4.5.2,!=4.5.5,!=5.0.2)"] slmq = ["softlayer-messaging (>=1.0.3)"] sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"] sqs = ["boto3 (>=1.26.143)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"] @@ -2469,6 +2722,7 @@ version = "3.6" description = "Python implementation of John Gruber's Markdown." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, @@ -2479,6 +2733,7 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} [package.extras] docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] [[package]] @@ -2525,6 +2780,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" version = "2.1.5" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" @@ -2589,11 +2845,72 @@ files = [ {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "matplotlib" version = "3.7.5" +version = "3.7.5" description = "Python plotting package" optional = true python-versions = ">=3.8" @@ -2645,6 +2962,53 @@ files = [ {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, + {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, + {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, + {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, + {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, + {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, + {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, + {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, + {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, + {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, + {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, ] [package.dependencies] @@ -2662,12 +3026,16 @@ python-dateutil = ">=2.7" [[package]] name = "matplotlib-inline" version = "0.1.7" +version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, ] [package.dependencies] @@ -2676,12 +3044,16 @@ traitlets = "*" [[package]] name = "mccabe" version = "0.7.0" +version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +python-versions = ">=3.6" files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] [[package]] @@ -2759,17 +3131,21 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp [[package]] name = "mkdocs-autorefs" version = "1.0.1" +version = "1.0.1" description = "Automatically link across pages in MkDocs." optional = false python-versions = ">=3.8" files = [ {file = "mkdocs_autorefs-1.0.1-py3-none-any.whl", hash = "sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570"}, {file = "mkdocs_autorefs-1.0.1.tar.gz", hash = "sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971"}, + {file = "mkdocs_autorefs-1.0.1-py3-none-any.whl", hash = "sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570"}, + {file = "mkdocs_autorefs-1.0.1.tar.gz", hash = "sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971"}, ] [package.dependencies] Markdown = ">=3.3" markupsafe = ">=2.0.1" +markupsafe = ">=2.0.1" mkdocs = ">=1.1" [[package]] @@ -2797,12 +3173,16 @@ requests = ">=2.26" [[package]] name = "mkdocs-material-extensions" version = "1.3.1" +version = "1.3.1" description = "Extension pack for Python Markdown and MkDocs Material." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, + {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, + {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] [[package]] @@ -2860,6 +3240,7 @@ mkdocstrings = ">=0.20" [[package]] name = "msgpack" version = "1.0.8" +version = "1.0.8" description = "MessagePack serializer" optional = true python-versions = ">=3.8" @@ -2919,6 +3300,7 @@ files = [ {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, + {file = "msgpack-1.0.8-py3-none-any.whl", hash = "sha256:24f727df1e20b9876fa6e95f840a2a2651e34c0ad147676356f4bf5fbb0206ca"}, {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, ] @@ -2976,6 +3358,8 @@ Django = ">=4.2.15,<4.3.0" django-ajax-tables = ">=1.1.1,<1.2.0" django-celery-beat = ">=2.6.0,<2.7.0" django-celery-results = ">=2.5.1,<2.6.0" +django-celery-beat = ">=2.6.0,<2.7.0" +django-celery-results = ">=2.5.1,<2.6.0" django-constance = ">=3.1.0,<3.2.0" django-cors-headers = ">=4.4.0,<4.5.0" django-db-file-storage = ">=0.5.6.1,<0.6.0.0" @@ -3009,9 +3393,15 @@ nh3 = ">=0.2.15,<0.3.0" packaging = ">=23.1" Pillow = ">=10.3.0,<10.4.0" prometheus-client = ">=0.20.0,<0.21.0" +nh3 = ">=0.2.15,<0.3.0" +packaging = ">=23.1" +Pillow = ">=10.3.0,<10.4.0" +prometheus-client = ">=0.20.0,<0.21.0" psycopg2-binary = ">=2.9.9,<2.10.0" python-slugify = ">=8.0.3,<8.1.0" pyuwsgi = ">=2.0.23,<2.1.0" +python-slugify = ">=8.0.3,<8.1.0" +pyuwsgi = ">=2.0.23,<2.1.0" PyYAML = ">=6.0,<6.1" social-auth-app-django = ">=5.4.2,<5.5.0" svgwrite = ">=1.4.2,<1.5.0" @@ -3030,6 +3420,7 @@ version = "2.1.2" description = "Manages device lifecycles for platforms and software." optional = true python-versions = "<3.12,>=3.8" +python-versions = "<3.12,>=3.8" files = [ {file = "nautobot_device_lifecycle_mgmt-2.1.2-py3-none-any.whl", hash = "sha256:dd011895ce20409733018ff1282a49878ec248efa86a82baa2247a193eab7d16"}, {file = "nautobot_device_lifecycle_mgmt-2.1.2.tar.gz", hash = "sha256:7f8b7373a2943f622031a67518e25e15c8930288ecc7b48c5cea210a8a9c19b2"}, @@ -3060,6 +3451,7 @@ version = "1.9.1" description = "Common helper functions useful in network automation." optional = false python-versions = "<4.0,>=3.8" +python-versions = "<4.0,>=3.8" files = [ {file = "netutils-1.9.1-py3-none-any.whl", hash = "sha256:0d6e9026cc529f365a63377159aed07769baee0bf7a7138fa86fce37b64dd9d4"}, {file = "netutils-1.9.1.tar.gz", hash = "sha256:8ad8b5e02eb9d6692d0aaaf9c0f36da1a81f520f426a79d0e08e56cf7dbb3476"}, @@ -3093,6 +3485,31 @@ files = [ {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, ] +[[package]] +name = "nh3" +version = "0.2.18" +description = "Python bindings to the ammonia HTML sanitization library." +optional = false +python-versions = "*" +files = [ + {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86"}, + {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34c03fa78e328c691f982b7c03d4423bdfd7da69cd707fe572f544cf74ac23ad"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6955369e4d9f48f41e3f238a9e60f9410645db7e07435e62c6a9ea6135a4907f"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:c8b3a1cebcba9b3669ed1a84cc65bf005728d2f0bc1ed2a6594a992e817f3a50"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204"}, + {file = "nh3-0.2.18-cp37-abi3-win32.whl", hash = "sha256:a7f1b5b2c15866f2db413a3649a8fe4fd7b428ae58be2c0f6bca5eefd53ca2be"}, + {file = "nh3-0.2.18-cp37-abi3-win_amd64.whl", hash = "sha256:8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844"}, + {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, +] + [[package]] name = "numpy" version = "1.24.4" @@ -3163,12 +3580,15 @@ dev = ["black", "mypy", "pytest"] [[package]] name = "packaging" version = "23.2" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -3202,34 +3622,44 @@ testing = ["docopt", "pytest (>=3.0.7)"] [[package]] name = "pathspec" version = "0.12.1" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pbr" version = "6.0.0" +version = "6.0.0" description = "Python Build Reasonableness" optional = false python-versions = ">=2.6" files = [ {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, + {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, + {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, ] [[package]] name = "pexpect" version = "4.9.0" +version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." optional = false python-versions = "*" files = [ {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, ] [package.dependencies] @@ -3249,6 +3679,7 @@ files = [ [[package]] name = "pillow" version = "10.3.0" +version = "10.3.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" @@ -3322,15 +3753,88 @@ files = [ {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, + {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, + {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, + {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, + {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, + {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, + {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, + {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, + {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, + {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, + {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, + {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, + {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, + {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, + {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, + {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, ] [package.extras] docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] +fpx = ["olefile"] +mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] typing = ["typing-extensions"] xmp = ["defusedxml"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] [[package]] name = "pkgutil-resolve-name" @@ -3349,6 +3853,7 @@ version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, @@ -3362,12 +3867,16 @@ type = ["mypy (>=1.8)"] [[package]] name = "prometheus-client" version = "0.20.0" +version = "0.20.0" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, ] [package.extras] @@ -3540,12 +4049,16 @@ files = [ [[package]] name = "pycodestyle" version = "2.9.1" +version = "2.9.1" description = "Python style guide checker" optional = false python-versions = ">=3.6" +python-versions = ">=3.6" files = [ {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, + {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, + {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, ] [[package]] @@ -3564,12 +4077,16 @@ setuptools = "*" [[package]] name = "pycparser" version = "2.22" +version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] @@ -3737,12 +4254,16 @@ yaml = ["pyyaml (>=6.0.1)"] [[package]] name = "pyflakes" version = "2.5.0" +version = "2.5.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.6" +python-versions = ">=3.6" files = [ {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, ] [[package]] @@ -3782,6 +4303,7 @@ version = "3.2.6" description = "python code static checker" optional = false python-versions = ">=3.8.0" +python-versions = ">=3.8.0" files = [ {file = "pylint-3.2.6-py3-none-any.whl", hash = "sha256:03c8e3baa1d9fb995b12c1dbe00aa6c4bcef210c2a2634374aedeb22fb4a8f8f"}, {file = "pylint-3.2.6.tar.gz", hash = "sha256:a5d01678349454806cff6d886fb072294f56a58c4761278c97fb557d708e1eb3"}, @@ -3795,6 +4317,7 @@ dill = [ {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, ] isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" +isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} @@ -3808,30 +4331,41 @@ testutils = ["gitpython (>3)"] [[package]] name = "pylint-django" version = "2.5.5" +version = "2.5.5" description = "A Pylint plugin to help Pylint understand the Django web framework" optional = false python-versions = ">=3.7,<4.0" +python-versions = ">=3.7,<4.0" files = [ {file = "pylint_django-2.5.5-py3-none-any.whl", hash = "sha256:5abd5c2228e0e5e2a4cb6d0b4fc1d1cef1e773d0be911412f4dd4fc1a1a440b7"}, {file = "pylint_django-2.5.5.tar.gz", hash = "sha256:2f339e4bf55776958283395c5139c37700c91bd5ef1d8251ef6ac88b5abbba9b"}, + {file = "pylint_django-2.5.5-py3-none-any.whl", hash = "sha256:5abd5c2228e0e5e2a4cb6d0b4fc1d1cef1e773d0be911412f4dd4fc1a1a440b7"}, + {file = "pylint_django-2.5.5.tar.gz", hash = "sha256:2f339e4bf55776958283395c5139c37700c91bd5ef1d8251ef6ac88b5abbba9b"}, ] [package.dependencies] pylint = ">=2.0,<4" pylint-plugin-utils = ">=0.8" +pylint = ">=2.0,<4" +pylint-plugin-utils = ">=0.8" [package.extras] with-django = ["Django (>=2.2)"] +with-django = ["Django (>=2.2)"] [[package]] name = "pylint-nautobot" version = "0.3.0" +version = "0.3.0" description = "Custom Pylint Rules for Nautobot" optional = false python-versions = ">=3.8,<3.12" +python-versions = ">=3.8,<3.12" files = [ {file = "pylint_nautobot-0.3.0-py3-none-any.whl", hash = "sha256:91fed48d9a9f565c6aa46c679b930d64b06d014061f6e7e802e6de8b6b8e3f87"}, {file = "pylint_nautobot-0.3.0.tar.gz", hash = "sha256:387a1d73b49186a7b325b6c1a3634e2c57ec0f2350e93494304c47073400099b"}, + {file = "pylint_nautobot-0.3.0-py3-none-any.whl", hash = "sha256:91fed48d9a9f565c6aa46c679b930d64b06d014061f6e7e802e6de8b6b8e3f87"}, + {file = "pylint_nautobot-0.3.0.tar.gz", hash = "sha256:387a1d73b49186a7b325b6c1a3634e2c57ec0f2350e93494304c47073400099b"}, ] [package.dependencies] @@ -3839,6 +4373,10 @@ importlib-resources = ">=5.12.0" pylint = ">=2.17.5" pyyaml = ">=6.0.1" toml = ">=0.10.2" +importlib-resources = ">=5.12.0" +pylint = ">=2.17.5" +pyyaml = ">=6.0.1" +toml = ">=0.10.2" [[package]] name = "pylint-plugin-utils" @@ -3875,12 +4413,15 @@ extra = ["pygments (>=2.12)"] [[package]] name = "pyparsing" version = "3.1.2" +version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = true python-versions = ">=3.6.8" files = [ {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] [package.extras] @@ -3919,12 +4460,15 @@ cron-schedule = ["croniter"] [[package]] name = "python-dateutil" version = "2.9.0.post0" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -3972,12 +4516,15 @@ files = [ [[package]] name = "python-slugify" version = "8.0.4" +version = "8.0.4" description = "A Python slugify application that also handles Unicode" optional = false python-versions = ">=3.7" files = [ {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, + {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, + {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, ] [package.dependencies] @@ -4160,6 +4707,7 @@ files = [ [package.dependencies] async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} +async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} [package.extras] hiredis = ["hiredis (>1.0.0)"] @@ -4293,16 +4841,21 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-mock" version = "1.12.1" +version = "1.12.1" description = "Mock out responses from the requests package" optional = false python-versions = ">=3.5" +python-versions = ">=3.5" files = [ {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, + {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, + {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, ] [package.dependencies] requests = ">=2.22,<3" +requests = ">=2.22,<3" [package.extras] fixture = ["fixtures"] @@ -4310,12 +4863,16 @@ fixture = ["fixtures"] [[package]] name = "requests-oauthlib" version = "2.0.0" +version = "2.0.0" description = "OAuthlib authentication support for Requests." optional = false python-versions = ">=3.4" +python-versions = ">=3.4" files = [ {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, + {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, + {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, ] [package.dependencies] @@ -4349,7 +4906,7 @@ name = "retry" version = "0.9.2" description = "Easy to use retry decorator." optional = false -python-versions = "*" +python-versions = ">=3.7.0" files = [ {file = "retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606"}, {file = "retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4"}, @@ -4364,7 +4921,7 @@ name = "rich" version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8" files = [ {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, @@ -4583,12 +5140,15 @@ files = [ [[package]] name = "sniffio" version = "1.3.1" +version = "1.3.1" description = "Sniff out which async library your code is running under" optional = true python-versions = ">=3.7" files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] @@ -4608,6 +5168,7 @@ version = "5.4.2" description = "Python Social Authentication, Django integration." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "social-auth-app-django-5.4.2.tar.gz", hash = "sha256:c8832c6cf13da6ad76f5613bcda2647d89ae7cfbc5217fadd13477a3406feaa8"}, {file = "social_auth_app_django-5.4.2-py3-none-any.whl", hash = "sha256:0c041a31707921aef9a930f143183c65d8c7b364381364a50f3f7c6fcc9d62f6"}, @@ -4623,6 +5184,7 @@ version = "4.5.4" description = "Python social authentication made simple." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "social-auth-core-4.5.4.tar.gz", hash = "sha256:d3dbeb0999ffd0e68aa4bd73f2ac698a18133fd11b3fc890e1366f18c8889fac"}, {file = "social_auth_core-4.5.4-py3-none-any.whl", hash = "sha256:33cf970a623c442376f9d4a86fb187579e4438649daa5b5be993d05e74d7b2db"}, @@ -4633,6 +5195,7 @@ cryptography = ">=1.4" defusedxml = ">=0.5.0rc1" oauthlib = ">=1.0.3" PyJWT = ">=2.7.0" +PyJWT = ">=2.7.0" python3-openid = ">=3.0.10" requests = ">=2.9.1" requests-oauthlib = ">=0.6.1" @@ -4640,6 +5203,8 @@ requests-oauthlib = ">=0.6.1" [package.extras] all = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] allpy3 = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] +all = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] +allpy3 = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] azuread = ["cryptography (>=2.1.1)"] saml = ["python3-saml (>=1.5.0)"] @@ -4773,6 +5338,7 @@ version = "0.5.1" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "sqlparse-0.5.1-py3-none-any.whl", hash = "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4"}, {file = "sqlparse-0.5.1.tar.gz", hash = "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e"}, @@ -4780,17 +5346,21 @@ files = [ [package.extras] dev = ["build", "hatch"] +dev = ["build", "hatch"] doc = ["sphinx"] [[package]] name = "stack-data" version = "0.6.3" +version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" optional = false python-versions = "*" files = [ {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, ] [package.dependencies] @@ -4804,12 +5374,15 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "stevedore" version = "5.2.0" +version = "5.2.0" description = "Manage dynamic plugins for Python applications" optional = false python-versions = ">=3.8" files = [ {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, + {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, + {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, ] [package.dependencies] @@ -4925,13 +5498,13 @@ dev = ["furo", "packaging", "sphinx (>=5)", "twisted"] [[package]] name = "traitlets" -version = "5.14.3" +version = "5.14.2" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, - {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, + {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"}, + {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"}, ] [package.extras] @@ -4952,12 +5525,15 @@ files = [ [[package]] name = "tzdata" version = "2024.1" +version = "2024.1" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] @@ -4977,6 +5553,7 @@ version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, @@ -4985,6 +5562,7 @@ files = [ [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] h2 = ["h2 (>=4,<5)"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -4992,11 +5570,15 @@ zstd = ["zstandard (>=0.18.0)"] name = "vine" version = "5.1.0" description = "Python promises." +version = "5.1.0" +description = "Python promises." optional = false python-versions = ">=3.6" files = [ {file = "vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc"}, {file = "vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0"}, + {file = "vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc"}, + {file = "vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0"}, ] [[package]] @@ -5005,6 +5587,7 @@ version = "4.0.2" description = "Filesystem events monitoring" optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22"}, {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1"}, @@ -5049,12 +5632,15 @@ watchmedo = ["PyYAML (>=3.10)"] [[package]] name = "wcwidth" version = "0.2.13" +version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" files = [ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, ] [[package]] @@ -5074,12 +5660,16 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] [[package]] name = "yamllint" version = "1.35.1" +version = "1.35.1" description = "A linter for YAML files." optional = false python-versions = ">=3.8" +python-versions = ">=3.8" files = [ {file = "yamllint-1.35.1-py3-none-any.whl", hash = "sha256:2e16e504bb129ff515b37823b472750b36b6de07963bd74b307341ef5ad8bdc3"}, {file = "yamllint-1.35.1.tar.gz", hash = "sha256:7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd"}, + {file = "yamllint-1.35.1-py3-none-any.whl", hash = "sha256:2e16e504bb129ff515b37823b472750b36b6de07963bd74b307341ef5ad8bdc3"}, + {file = "yamllint-1.35.1.tar.gz", hash = "sha256:7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd"}, ] [package.dependencies] From 1a852c70414552bbae1ee6499888b529075da394 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 14 May 2024 16:53:50 -0500 Subject: [PATCH 02/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Replace=20all=20ins?= =?UTF-8?q?tances=20of=20diffsync=20attributes=20with=20adapter.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/device42/unit/test_models_nautobot_ipam.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py b/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py index 8f29fcb30..583bbc1f6 100644 --- a/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py +++ b/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py @@ -74,10 +74,10 @@ def test_update_clear_tags(self): self.assertEqual(list(self.vrf.tags.names()), []) @patch( - "nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.PLUGIN_CFG", + "nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.PLUGIN_CFG", {"device42_delete_on_sync": True}, ) - @patch("nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.OrmVRF.objects.get") + @patch("nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.OrmVRF.objects.get") def test_delete(self, mock_vrf): """Validate the NautobotVRFGroup delete() deletes a VRF.""" vrf_group = ipam.NautobotVRFGroup( @@ -160,10 +160,10 @@ def test_update(self): self.assertEqual(actual, test_pf) @patch( - "nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.PLUGIN_CFG", + "nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.PLUGIN_CFG", {"device42_delete_on_sync": True}, ) - @patch("nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.OrmPrefix.objects.get") + @patch("nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.OrmPrefix.objects.get") def test_delete(self, mock_subnet): """Validate the NautobotVRFGroup delete() deletes a Prefix.""" test_pf = ipam.NautobotSubnet( @@ -392,7 +392,7 @@ def test_update_changing_custom_fields(self): self.addr.refresh_from_db() self.assertEqual(self.addr.custom_field_data["New_CF"], "Test") - @patch("nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.OrmIPAddress.objects.get") + @patch("nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.OrmIPAddress.objects.get") def test_update_handling_validation_error(self, mock_ip_get): """Validate how the NautobotIPAddress.update() handles a ValidationError.""" mock_ip = MagicMock() From 44bb869f9482bdcce268e70408d64108b00d2e8b Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 14 May 2024 17:04:44 -0500 Subject: [PATCH 03/49] =?UTF-8?q?build:=20=E2=AC=86=EF=B8=8F=20Rebuild=20a?= =?UTF-8?q?nd=20update=20dependencies=20for=20lockfile.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 558 +--------------------------------------------------- 1 file changed, 3 insertions(+), 555 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8d0ad486c..955600b1e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -14,20 +14,16 @@ files = [ [[package]] name = "amqp" version = "5.2.0" -version = "5.2.0" description = "Low-level AMQP client for Python (fork of amqplib)." optional = false python-versions = ">=3.6" files = [ {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"}, {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"}, - {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"}, - {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"}, ] [package.dependencies] vine = ">=5.0.0,<6.0.0" -vine = ">=5.0.0,<6.0.0" [[package]] name = "aniso8601" @@ -70,44 +66,32 @@ exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] trio = ["trio (>=0.23)"] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.23)"] [[package]] name = "appnope" version = "0.1.4" -version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = false python-versions = ">=3.6" -python-versions = ">=3.6" files = [ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, - {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, - {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] name = "asgiref" version = "3.8.1" -version = "3.8.1" description = "ASGI specs, helper code, and adapters" optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"}, {file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"}, - {file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"}, - {file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"}, ] [package.dependencies] @@ -122,7 +106,6 @@ version = "3.2.4" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.8.0" -python-versions = ">=3.8.0" files = [ {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, @@ -134,15 +117,12 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "asttokens" version = "2.4.1" -version = "2.4.1" description = "Annotate AST trees with source code positions" optional = false python-versions = "*" files = [ {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, ] [package.dependencies] @@ -163,23 +143,6 @@ files = [ {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, ] -[package.dependencies] -six = ">=1.6.1,<2.0" -wheel = ">=0.23.0,<1.0" -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] - -[[package]] -name = "astunparse" -version = "1.6.3" -description = "An AST unparser for Python" -optional = false -python-versions = "*" -files = [ - {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, - {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, -] - [package.dependencies] six = ">=1.6.1,<2.0" wheel = ">=0.23.0,<1.0" @@ -246,9 +209,6 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] -[package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] - [[package]] name = "backcall" version = "0.2.0" @@ -297,7 +257,6 @@ version = "1.7.9" description = "Security oriented static analyser for python code." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "bandit-1.7.9-py3-none-any.whl", hash = "sha256:52077cb339000f337fb25f7e045995c4ad01511e716e5daac37014b9752de8ec"}, {file = "bandit-1.7.9.tar.gz", hash = "sha256:7c395a436743018f7be0a4cbb0a4ea9b902b6d87264ddecf8cfdc73b4f78ff61"}, @@ -313,24 +272,18 @@ stevedore = ">=1.20.0" baseline = ["GitPython (>=3.1.30)"] sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] -baseline = ["GitPython (>=3.1.30)"] -sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] toml = ["tomli (>=1.1.0)"] yaml = ["PyYAML"] [[package]] name = "billiard" version = "4.2.0" -version = "4.2.0" description = "Python multiprocessing fork with improvements and bugfixes" optional = false python-versions = ">=3.7" files = [ {file = "billiard-4.2.0-py3-none-any.whl", hash = "sha256:07aa978b308f334ff8282bd4a746e681b3513db5c9a514cbdd810cbbdc19714d"}, {file = "billiard-4.2.0.tar.gz", hash = "sha256:9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c"}, - {file = "billiard-4.2.0-py3-none-any.whl", hash = "sha256:07aa978b308f334ff8282bd4a746e681b3513db5c9a514cbdd810cbbdc19714d"}, - {file = "billiard-4.2.0.tar.gz", hash = "sha256:9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c"}, ] [[package]] @@ -376,7 +329,6 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -394,36 +346,29 @@ files = [ [[package]] name = "celery" version = "5.3.6" -version = "5.3.6" description = "Distributed Task Queue." optional = false python-versions = ">=3.8" files = [ {file = "celery-5.3.6-py3-none-any.whl", hash = "sha256:9da4ea0118d232ce97dff5ed4974587fb1c0ff5c10042eb15278487cdd27d1af"}, {file = "celery-5.3.6.tar.gz", hash = "sha256:870cc71d737c0200c397290d730344cc991d13a057534353d124c9380267aab9"}, - {file = "celery-5.3.6-py3-none-any.whl", hash = "sha256:9da4ea0118d232ce97dff5ed4974587fb1c0ff5c10042eb15278487cdd27d1af"}, - {file = "celery-5.3.6.tar.gz", hash = "sha256:870cc71d737c0200c397290d730344cc991d13a057534353d124c9380267aab9"}, ] [package.dependencies] "backports.zoneinfo" = {version = ">=0.2.1", markers = "python_version < \"3.9\""} billiard = ">=4.2.0,<5.0" -billiard = ">=4.2.0,<5.0" click = ">=8.1.2,<9.0" click-didyoumean = ">=0.3.0" click-plugins = ">=1.1.1" click-repl = ">=0.2.0" kombu = ">=5.3.4,<6.0" -kombu = ">=5.3.4,<6.0" python-dateutil = ">=2.8.2" tzdata = ">=2022.7" vine = ">=5.1.0,<6.0" -vine = ">=5.1.0,<6.0" [package.extras] arangodb = ["pyArango (>=2.0.2)"] auth = ["cryptography (==41.0.5)"] -auth = ["cryptography (==41.0.5)"] azureblockblob = ["azure-storage-blob (>=12.15.0)"] brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] cassandra = ["cassandra-driver (>=3.25.0,<4)"] @@ -434,30 +379,25 @@ couchdb = ["pycouchdb (==1.14.2)"] django = ["Django (>=2.2.28)"] dynamodb = ["boto3 (>=1.26.143)"] elasticsearch = ["elastic-transport (<=8.10.0)", "elasticsearch (<=8.11.0)"] -elasticsearch = ["elastic-transport (<=8.10.0)", "elasticsearch (<=8.11.0)"] eventlet = ["eventlet (>=0.32.0)"] gevent = ["gevent (>=1.5.0)"] librabbitmq = ["librabbitmq (>=2.0.0)"] memcache = ["pylibmc (==1.6.3)"] mongodb = ["pymongo[srv] (>=4.0.2)"] msgpack = ["msgpack (==1.0.7)"] -msgpack = ["msgpack (==1.0.7)"] pymemcache = ["python-memcached (==1.59)"] pyro = ["pyro4 (==4.82)"] pytest = ["pytest-celery (==0.0.0)"] redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"] -redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"] s3 = ["boto3 (>=1.26.143)"] slmq = ["softlayer-messaging (>=1.0.3)"] solar = ["ephem (==4.1.5)"] -solar = ["ephem (==4.1.5)"] sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"] sqs = ["boto3 (>=1.26.143)", "kombu[sqs] (>=5.3.0)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"] tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"] yaml = ["PyYAML (>=3.10)"] zookeeper = ["kazoo (>=1.3.1)"] zstd = ["zstandard (==0.22.0)"] -zstd = ["zstandard (==0.22.0)"] [[package]] name = "certifi" @@ -552,7 +492,6 @@ pycparser = "*" [[package]] name = "charset-normalizer" version = "3.3.2" -version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" @@ -647,96 +586,6 @@ files = [ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] @@ -773,16 +622,12 @@ test = ["pytest"] [[package]] name = "click-didyoumean" version = "0.3.1" -version = "0.3.1" description = "Enables git-like *did-you-mean* feature in click" optional = false python-versions = ">=3.6.2" -python-versions = ">=3.6.2" files = [ {file = "click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c"}, {file = "click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463"}, - {file = "click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c"}, - {file = "click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463"}, ] [package.dependencies] @@ -829,7 +674,6 @@ version = "1.21.0" description = "A Python library for Arista's CloudVision APIs and Provisioning Action integrations." optional = true python-versions = ">=3.7.0" -python-versions = ">=3.7.0" files = [ {file = "cloudvision-1.21.0-py3-none-any.whl", hash = "sha256:1adf599817d77a0a822a733f678b6e79700d5fa1b43c951e60d6a7471f6f0526"}, {file = "cloudvision-1.21.0.tar.gz", hash = "sha256:4e8c56a0d40413916a762758d4b23c5030bc39ad79ba65738f30d2dff8d991e4"}, @@ -1015,15 +859,12 @@ toml = ["tomli"] [[package]] name = "cron-descriptor" version = "1.4.3" -version = "1.4.3" description = "A Python library that converts cron expressions into human readable strings." optional = false python-versions = "*" files = [ {file = "cron_descriptor-1.4.3-py3-none-any.whl", hash = "sha256:a67ba21804983b1427ed7f3e1ec27ee77bf24c652b0430239c268c5ddfbf9dc0"}, {file = "cron_descriptor-1.4.3.tar.gz", hash = "sha256:7b1a00d7d25d6ae6896c0da4457e790b98cba778398a3d48e341e5e0d33f0488"}, - {file = "cron_descriptor-1.4.3-py3-none-any.whl", hash = "sha256:a67ba21804983b1427ed7f3e1ec27ee77bf24c652b0430239c268c5ddfbf9dc0"}, - {file = "cron_descriptor-1.4.3.tar.gz", hash = "sha256:7b1a00d7d25d6ae6896c0da4457e790b98cba778398a3d48e341e5e0d33f0488"}, ] [package.extras] @@ -1072,19 +913,15 @@ files = [ [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} -cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] -test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -1107,15 +944,12 @@ dev = ["check-manifest", "coverage", "pep8", "pyflakes", "pylint", "pyyaml"] [[package]] name = "cycler" version = "0.12.1" -version = "0.12.1" description = "Composable style cycles" optional = true python-versions = ">=3.8" files = [ {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, - {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, - {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, ] [package.extras] @@ -1168,7 +1002,6 @@ version = "2.0.0" description = "Library to easily sync/diff/update 2 different data sources" optional = false python-versions = ">=3.8,<4.0" -python-versions = ">=3.8,<4.0" files = [ {file = "diffsync-2.0.0-py3-none-any.whl", hash = "sha256:59f864a115abc5b0aa3b9db0d44deff59c81cd5469e5894326c27e29511e3aab"}, {file = "diffsync-2.0.0.tar.gz", hash = "sha256:712bc85a24f49ef6075344dc3a16c85e27b1416154c46fd5de7acf72e8321a9b"}, @@ -1180,7 +1013,6 @@ packaging = ">=21.3,<24.0" pydantic = ">=2.0.0,<3.0.0" structlog = ">=20.1.0,<23.0.0" typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] redis = ["redis (>=4.3,<5.0)"] @@ -1188,22 +1020,17 @@ redis = ["redis (>=4.3,<5.0)"] [[package]] name = "dill" version = "0.3.8" -version = "0.3.8" description = "serialize all of Python" optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, - {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, - {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] profile = ["gprof2dot (>=2022.7.29)"] -profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "django" @@ -1240,13 +1067,11 @@ files = [ [[package]] name = "django-celery-beat" version = "2.6.0" -version = "2.6.0" description = "Database-backed Periodic Tasks." optional = false python-versions = "*" files = [ {file = "django-celery-beat-2.6.0.tar.gz", hash = "sha256:f75b2d129731f1214be8383e18fae6bfeacdb55dffb2116ce849222c0106f9ad"}, - {file = "django-celery-beat-2.6.0.tar.gz", hash = "sha256:f75b2d129731f1214be8383e18fae6bfeacdb55dffb2116ce849222c0106f9ad"}, ] [package.dependencies] @@ -1254,7 +1079,6 @@ files = [ celery = ">=5.2.3,<6.0" cron-descriptor = ">=1.2.32" Django = ">=2.2,<5.1" -Django = ">=2.2,<5.1" django-timezone-field = ">=5.0" python-crontab = ">=2.3.4" tzdata = "*" @@ -1262,22 +1086,17 @@ tzdata = "*" [[package]] name = "django-celery-results" version = "2.5.1" -version = "2.5.1" description = "Celery result backends for Django." optional = false python-versions = "*" files = [ {file = "django_celery_results-2.5.1-py3-none-any.whl", hash = "sha256:0da4cd5ecc049333e4524a23fcfc3460dfae91aa0a60f1fae4b6b2889c254e01"}, {file = "django_celery_results-2.5.1.tar.gz", hash = "sha256:3ecb7147f773f34d0381bac6246337ce4cf88a2ea7b82774ed48e518b67bb8fd"}, - {file = "django_celery_results-2.5.1-py3-none-any.whl", hash = "sha256:0da4cd5ecc049333e4524a23fcfc3460dfae91aa0a60f1fae4b6b2889c254e01"}, - {file = "django_celery_results-2.5.1.tar.gz", hash = "sha256:3ecb7147f773f34d0381bac6246337ce4cf88a2ea7b82774ed48e518b67bb8fd"}, ] [package.dependencies] celery = ">=5.2.7,<6.0" Django = ">=3.2.18" -celery = ">=5.2.7,<6.0" -Django = ">=3.2.18" [[package]] name = "django-constance" @@ -1314,15 +1133,12 @@ django = ">=3.2" [[package]] name = "django-db-file-storage" version = "0.5.6.1" -version = "0.5.6.1" description = "Custom FILE_STORAGE for Django. Saves files in your database instead of your file system." optional = false python-versions = "*" files = [ {file = "django-db-file-storage-0.5.6.1.tar.gz", hash = "sha256:f0c4540ed6b772e8b3141eae3222acde4c29ab771477a5c999013a3980856c7f"}, {file = "django_db_file_storage-0.5.6.1-py3-none-any.whl", hash = "sha256:3feac1e060b550c3c03c35e95d2111d9f100bc247863ace691a78b107f1fc3d5"}, - {file = "django-db-file-storage-0.5.6.1.tar.gz", hash = "sha256:f0c4540ed6b772e8b3141eae3222acde4c29ab771477a5c999013a3980856c7f"}, - {file = "django_db_file_storage-0.5.6.1-py3-none-any.whl", hash = "sha256:3feac1e060b550c3c03c35e95d2111d9f100bc247863ace691a78b107f1fc3d5"}, ] [package.dependencies] @@ -1406,35 +1222,27 @@ python-ipware = ">=2.0.3" [[package]] name = "django-jinja" version = "2.11.0" -version = "2.11.0" description = "Jinja2 templating language integrated in Django." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "django-jinja-2.11.0.tar.gz", hash = "sha256:47c06d3271e6b2f27d3596278af517bfe2e19c1eb36ae1c0b1cc302d7f0259af"}, {file = "django_jinja-2.11.0-py3-none-any.whl", hash = "sha256:cc4c72246a6e346aa0574e0c56c3e534c1a20ef47b8476f05d7287781f69a0a9"}, - {file = "django-jinja-2.11.0.tar.gz", hash = "sha256:47c06d3271e6b2f27d3596278af517bfe2e19c1eb36ae1c0b1cc302d7f0259af"}, - {file = "django_jinja-2.11.0-py3-none-any.whl", hash = "sha256:cc4c72246a6e346aa0574e0c56c3e534c1a20ef47b8476f05d7287781f69a0a9"}, ] [package.dependencies] django = ">=3.2" -django = ">=3.2" jinja2 = ">=3" [[package]] name = "django-picklefield" version = "3.2" -version = "3.2" description = "Pickled object field for Django" optional = false python-versions = ">=3" files = [ {file = "django-picklefield-3.2.tar.gz", hash = "sha256:aa463f5d79d497dbe789f14b45180f00a51d0d670067d0729f352a3941cdfa4d"}, {file = "django_picklefield-3.2-py3-none-any.whl", hash = "sha256:e9a73539d110f69825d9320db18bcb82e5189ff48dbed41821c026a20497764c"}, - {file = "django-picklefield-3.2.tar.gz", hash = "sha256:aa463f5d79d497dbe789f14b45180f00a51d0d670067d0729f352a3941cdfa4d"}, - {file = "django_picklefield-3.2-py3-none-any.whl", hash = "sha256:e9a73539d110f69825d9320db18bcb82e5189ff48dbed41821c026a20497764c"}, ] [package.dependencies] @@ -1460,15 +1268,12 @@ prometheus-client = ">=0.7" [[package]] name = "django-redis" version = "5.4.0" -version = "5.4.0" description = "Full featured redis cache backend for Django." optional = false python-versions = ">=3.6" files = [ {file = "django-redis-5.4.0.tar.gz", hash = "sha256:6a02abaa34b0fea8bf9b707d2c363ab6adc7409950b2db93602e6cb292818c42"}, {file = "django_redis-5.4.0-py3-none-any.whl", hash = "sha256:ebc88df7da810732e2af9987f7f426c96204bf89319df4c6da6ca9a2942edd5b"}, - {file = "django-redis-5.4.0.tar.gz", hash = "sha256:6a02abaa34b0fea8bf9b707d2c363ab6adc7409950b2db93602e6cb292818c42"}, - {file = "django_redis-5.4.0-py3-none-any.whl", hash = "sha256:ebc88df7da810732e2af9987f7f426c96204bf89319df4c6da6ca9a2942edd5b"}, ] [package.dependencies] @@ -1519,15 +1324,12 @@ commands = ["django-extensions (>=1.4.9)"] [[package]] name = "django-tables2" version = "2.7.0" -version = "2.7.0" description = "Table/data-grid framework for Django" optional = false python-versions = "*" files = [ {file = "django-tables2-2.7.0.tar.gz", hash = "sha256:4113fcc575eb438a12e83a4d4ea01452e4800d970e8bdd0e4122ac171af1900d"}, {file = "django_tables2-2.7.0-py2.py3-none-any.whl", hash = "sha256:99e06d966ca8ac69fd74092eb45c79a280dd5ca0ccb81395d96261f62128e1af"}, - {file = "django-tables2-2.7.0.tar.gz", hash = "sha256:4113fcc575eb438a12e83a4d4ea01452e4800d970e8bdd0e4122ac171af1900d"}, - {file = "django_tables2-2.7.0-py2.py3-none-any.whl", hash = "sha256:99e06d966ca8ac69fd74092eb45c79a280dd5ca0ccb81395d96261f62128e1af"}, ] [package.dependencies] @@ -1618,16 +1420,12 @@ django = ">=4.2" [[package]] name = "dnspython" version = "2.6.1" -version = "2.6.1" description = "DNS toolkit" optional = true python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, - {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, - {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, ] [package.extras] @@ -1638,13 +1436,6 @@ doq = ["aioquic (>=0.9.25)"] idna = ["idna (>=3.6)"] trio = ["trio (>=0.23)"] wmi = ["wmi (>=1.5.1)"] -dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] -dnssec = ["cryptography (>=41)"] -doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] -doq = ["aioquic (>=0.9.25)"] -idna = ["idna (>=3.6)"] -trio = ["trio (>=0.23)"] -wmi = ["wmi (>=1.5.1)"] [[package]] name = "docutils" @@ -1744,44 +1535,32 @@ test = ["pytest (>=6)"] [[package]] name = "executing" version = "2.0.1" -version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" optional = false python-versions = ">=3.5" -python-versions = ">=3.5" files = [ {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, ] [package.extras] tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] -tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] [[package]] name = "flake8" version = "5.0.4" -version = "5.0.4" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.6.1" -python-versions = ">=3.6.1" files = [ {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, - {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, - {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" pycodestyle = ">=2.9.0,<2.10.0" pyflakes = ">=2.5.0,<2.6.0" -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.9.0,<2.10.0" -pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "fonttools" @@ -1836,12 +1615,9 @@ files = [ [package.extras] all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "pycairo", "scipy"] lxml = ["lxml (>=4.0)"] -interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] @@ -1849,7 +1625,6 @@ symfont = ["sympy"] type1 = ["xattr"] ufo = ["fs (>=2.2.0,<3)"] unicode = ["unicodedata2 (>=15.1.0)"] -unicode = ["unicodedata2 (>=15.1.0)"] woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] @@ -1872,15 +1647,12 @@ dev = ["flake8", "markdown", "twine", "wheel"] [[package]] name = "gitdb" version = "4.0.11" -version = "4.0.11" description = "Git Object Database" optional = false python-versions = ">=3.7" files = [ {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, - {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, - {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, ] [package.dependencies] @@ -1889,15 +1661,12 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" version = "3.1.43" -version = "3.1.43" description = "GitPython is a Python library used to interact with Git repositories" optional = false python-versions = ">=3.7" files = [ {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, - {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, - {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, ] [package.dependencies] @@ -2036,7 +1805,6 @@ files = [ [package.dependencies] astunparse = {version = ">=1.6", markers = "python_version < \"3.9\""} -astunparse = {version = ">=1.6", markers = "python_version < \"3.9\""} colorama = ">=0.4" [[package]] @@ -2193,15 +1961,12 @@ files = [ [[package]] name = "idna" version = "3.7" -version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -2469,20 +2234,16 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa [[package]] name = "isort" version = "5.13.2" -version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, - {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, - {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] colors = ["colorama (>=0.4.6)"] -colors = ["colorama (>=0.4.6)"] [[package]] name = "jedi" @@ -2698,7 +2459,6 @@ msgpack = ["msgpack (==1.0.8)"] pyro = ["pyro4 (==4.82)"] qpid = ["qpid-python (>=0.26)", "qpid-tools (>=0.26)"] redis = ["redis (>=4.5.2,!=4.5.5,!=5.0.2)"] -redis = ["redis (>=4.5.2,!=4.5.5,!=5.0.2)"] slmq = ["softlayer-messaging (>=1.0.3)"] sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"] sqs = ["boto3 (>=1.26.143)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"] @@ -2722,7 +2482,6 @@ version = "3.6" description = "Python implementation of John Gruber's Markdown." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, @@ -2733,7 +2492,6 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} [package.extras] docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] [[package]] @@ -2780,7 +2538,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" version = "2.1.5" -version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" @@ -2845,72 +2602,11 @@ files = [ {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "matplotlib" version = "3.7.5" -version = "3.7.5" description = "Python plotting package" optional = true python-versions = ">=3.8" @@ -2962,53 +2658,6 @@ files = [ {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, - {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, - {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, - {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, - {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, - {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, - {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, - {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, - {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, - {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, - {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, - {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, - {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, ] [package.dependencies] @@ -3026,16 +2675,12 @@ python-dateutil = ">=2.7" [[package]] name = "matplotlib-inline" version = "0.1.7" -version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, - {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, - {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, ] [package.dependencies] @@ -3044,16 +2689,12 @@ traitlets = "*" [[package]] name = "mccabe" version = "0.7.0" -version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" -python-versions = ">=3.6" files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] [[package]] @@ -3131,21 +2772,17 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp [[package]] name = "mkdocs-autorefs" version = "1.0.1" -version = "1.0.1" description = "Automatically link across pages in MkDocs." optional = false python-versions = ">=3.8" files = [ {file = "mkdocs_autorefs-1.0.1-py3-none-any.whl", hash = "sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570"}, {file = "mkdocs_autorefs-1.0.1.tar.gz", hash = "sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971"}, - {file = "mkdocs_autorefs-1.0.1-py3-none-any.whl", hash = "sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570"}, - {file = "mkdocs_autorefs-1.0.1.tar.gz", hash = "sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971"}, ] [package.dependencies] Markdown = ">=3.3" markupsafe = ">=2.0.1" -markupsafe = ">=2.0.1" mkdocs = ">=1.1" [[package]] @@ -3173,16 +2810,12 @@ requests = ">=2.26" [[package]] name = "mkdocs-material-extensions" version = "1.3.1" -version = "1.3.1" description = "Extension pack for Python Markdown and MkDocs Material." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, - {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, - {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] [[package]] @@ -3240,7 +2873,6 @@ mkdocstrings = ">=0.20" [[package]] name = "msgpack" version = "1.0.8" -version = "1.0.8" description = "MessagePack serializer" optional = true python-versions = ">=3.8" @@ -3300,7 +2932,6 @@ files = [ {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, - {file = "msgpack-1.0.8-py3-none-any.whl", hash = "sha256:24f727df1e20b9876fa6e95f840a2a2651e34c0ad147676356f4bf5fbb0206ca"}, {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, ] @@ -3358,8 +2989,6 @@ Django = ">=4.2.15,<4.3.0" django-ajax-tables = ">=1.1.1,<1.2.0" django-celery-beat = ">=2.6.0,<2.7.0" django-celery-results = ">=2.5.1,<2.6.0" -django-celery-beat = ">=2.6.0,<2.7.0" -django-celery-results = ">=2.5.1,<2.6.0" django-constance = ">=3.1.0,<3.2.0" django-cors-headers = ">=4.4.0,<4.5.0" django-db-file-storage = ">=0.5.6.1,<0.6.0.0" @@ -3393,15 +3022,9 @@ nh3 = ">=0.2.15,<0.3.0" packaging = ">=23.1" Pillow = ">=10.3.0,<10.4.0" prometheus-client = ">=0.20.0,<0.21.0" -nh3 = ">=0.2.15,<0.3.0" -packaging = ">=23.1" -Pillow = ">=10.3.0,<10.4.0" -prometheus-client = ">=0.20.0,<0.21.0" psycopg2-binary = ">=2.9.9,<2.10.0" python-slugify = ">=8.0.3,<8.1.0" pyuwsgi = ">=2.0.23,<2.1.0" -python-slugify = ">=8.0.3,<8.1.0" -pyuwsgi = ">=2.0.23,<2.1.0" PyYAML = ">=6.0,<6.1" social-auth-app-django = ">=5.4.2,<5.5.0" svgwrite = ">=1.4.2,<1.5.0" @@ -3420,7 +3043,6 @@ version = "2.1.2" description = "Manages device lifecycles for platforms and software." optional = true python-versions = "<3.12,>=3.8" -python-versions = "<3.12,>=3.8" files = [ {file = "nautobot_device_lifecycle_mgmt-2.1.2-py3-none-any.whl", hash = "sha256:dd011895ce20409733018ff1282a49878ec248efa86a82baa2247a193eab7d16"}, {file = "nautobot_device_lifecycle_mgmt-2.1.2.tar.gz", hash = "sha256:7f8b7373a2943f622031a67518e25e15c8930288ecc7b48c5cea210a8a9c19b2"}, @@ -3451,7 +3073,6 @@ version = "1.9.1" description = "Common helper functions useful in network automation." optional = false python-versions = "<4.0,>=3.8" -python-versions = "<4.0,>=3.8" files = [ {file = "netutils-1.9.1-py3-none-any.whl", hash = "sha256:0d6e9026cc529f365a63377159aed07769baee0bf7a7138fa86fce37b64dd9d4"}, {file = "netutils-1.9.1.tar.gz", hash = "sha256:8ad8b5e02eb9d6692d0aaaf9c0f36da1a81f520f426a79d0e08e56cf7dbb3476"}, @@ -3580,15 +3201,12 @@ dev = ["black", "mypy", "pytest"] [[package]] name = "packaging" version = "23.2" -version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -3622,44 +3240,34 @@ testing = ["docopt", "pytest (>=3.0.7)"] [[package]] name = "pathspec" version = "0.12.1" -version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pbr" version = "6.0.0" -version = "6.0.0" description = "Python Build Reasonableness" optional = false python-versions = ">=2.6" files = [ {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, - {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, - {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, ] [[package]] name = "pexpect" version = "4.9.0" -version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." optional = false python-versions = "*" files = [ {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, - {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, - {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, ] [package.dependencies] @@ -3679,7 +3287,6 @@ files = [ [[package]] name = "pillow" version = "10.3.0" -version = "10.3.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" @@ -3753,88 +3360,15 @@ files = [ {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, - {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, - {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, - {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, - {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, - {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, - {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, - {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, - {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, - {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, - {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, - {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, - {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, - {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, - {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, - {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, - {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, - {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, - {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, - {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, - {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, - {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, - {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, - {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, - {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, - {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, - {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, - {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, - {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, - {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, - {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, - {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, - {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, - {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, - {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, - {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, ] [package.extras] docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] -fpx = ["olefile"] -mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] typing = ["typing-extensions"] xmp = ["defusedxml"] -typing = ["typing-extensions"] -xmp = ["defusedxml"] [[package]] name = "pkgutil-resolve-name" @@ -3853,7 +3387,6 @@ version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, @@ -3867,16 +3400,12 @@ type = ["mypy (>=1.8)"] [[package]] name = "prometheus-client" version = "0.20.0" -version = "0.20.0" description = "Python client for the Prometheus monitoring system." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, - {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, - {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, ] [package.extras] @@ -4049,16 +3578,12 @@ files = [ [[package]] name = "pycodestyle" version = "2.9.1" -version = "2.9.1" description = "Python style guide checker" optional = false python-versions = ">=3.6" -python-versions = ">=3.6" files = [ {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, - {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, - {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, ] [[package]] @@ -4077,16 +3602,12 @@ setuptools = "*" [[package]] name = "pycparser" version = "2.22" -version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, - {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, - {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] @@ -4254,16 +3775,12 @@ yaml = ["pyyaml (>=6.0.1)"] [[package]] name = "pyflakes" version = "2.5.0" -version = "2.5.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.6" -python-versions = ">=3.6" files = [ {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, - {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, - {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, ] [[package]] @@ -4303,7 +3820,6 @@ version = "3.2.6" description = "python code static checker" optional = false python-versions = ">=3.8.0" -python-versions = ">=3.8.0" files = [ {file = "pylint-3.2.6-py3-none-any.whl", hash = "sha256:03c8e3baa1d9fb995b12c1dbe00aa6c4bcef210c2a2634374aedeb22fb4a8f8f"}, {file = "pylint-3.2.6.tar.gz", hash = "sha256:a5d01678349454806cff6d886fb072294f56a58c4761278c97fb557d708e1eb3"}, @@ -4317,7 +3833,6 @@ dill = [ {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, ] isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" -isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} @@ -4331,41 +3846,30 @@ testutils = ["gitpython (>3)"] [[package]] name = "pylint-django" version = "2.5.5" -version = "2.5.5" description = "A Pylint plugin to help Pylint understand the Django web framework" optional = false python-versions = ">=3.7,<4.0" -python-versions = ">=3.7,<4.0" files = [ {file = "pylint_django-2.5.5-py3-none-any.whl", hash = "sha256:5abd5c2228e0e5e2a4cb6d0b4fc1d1cef1e773d0be911412f4dd4fc1a1a440b7"}, {file = "pylint_django-2.5.5.tar.gz", hash = "sha256:2f339e4bf55776958283395c5139c37700c91bd5ef1d8251ef6ac88b5abbba9b"}, - {file = "pylint_django-2.5.5-py3-none-any.whl", hash = "sha256:5abd5c2228e0e5e2a4cb6d0b4fc1d1cef1e773d0be911412f4dd4fc1a1a440b7"}, - {file = "pylint_django-2.5.5.tar.gz", hash = "sha256:2f339e4bf55776958283395c5139c37700c91bd5ef1d8251ef6ac88b5abbba9b"}, ] [package.dependencies] pylint = ">=2.0,<4" pylint-plugin-utils = ">=0.8" -pylint = ">=2.0,<4" -pylint-plugin-utils = ">=0.8" [package.extras] with-django = ["Django (>=2.2)"] -with-django = ["Django (>=2.2)"] [[package]] name = "pylint-nautobot" version = "0.3.0" -version = "0.3.0" description = "Custom Pylint Rules for Nautobot" optional = false python-versions = ">=3.8,<3.12" -python-versions = ">=3.8,<3.12" files = [ {file = "pylint_nautobot-0.3.0-py3-none-any.whl", hash = "sha256:91fed48d9a9f565c6aa46c679b930d64b06d014061f6e7e802e6de8b6b8e3f87"}, {file = "pylint_nautobot-0.3.0.tar.gz", hash = "sha256:387a1d73b49186a7b325b6c1a3634e2c57ec0f2350e93494304c47073400099b"}, - {file = "pylint_nautobot-0.3.0-py3-none-any.whl", hash = "sha256:91fed48d9a9f565c6aa46c679b930d64b06d014061f6e7e802e6de8b6b8e3f87"}, - {file = "pylint_nautobot-0.3.0.tar.gz", hash = "sha256:387a1d73b49186a7b325b6c1a3634e2c57ec0f2350e93494304c47073400099b"}, ] [package.dependencies] @@ -4373,10 +3877,6 @@ importlib-resources = ">=5.12.0" pylint = ">=2.17.5" pyyaml = ">=6.0.1" toml = ">=0.10.2" -importlib-resources = ">=5.12.0" -pylint = ">=2.17.5" -pyyaml = ">=6.0.1" -toml = ">=0.10.2" [[package]] name = "pylint-plugin-utils" @@ -4413,15 +3913,12 @@ extra = ["pygments (>=2.12)"] [[package]] name = "pyparsing" version = "3.1.2" -version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = true python-versions = ">=3.6.8" files = [ {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, - {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, - {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] [package.extras] @@ -4460,15 +3957,12 @@ cron-schedule = ["croniter"] [[package]] name = "python-dateutil" version = "2.9.0.post0" -version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -4516,15 +4010,12 @@ files = [ [[package]] name = "python-slugify" version = "8.0.4" -version = "8.0.4" description = "A Python slugify application that also handles Unicode" optional = false python-versions = ">=3.7" files = [ {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, - {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, - {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, ] [package.dependencies] @@ -4707,7 +4198,6 @@ files = [ [package.dependencies] async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} -async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} [package.extras] hiredis = ["hiredis (>1.0.0)"] @@ -4841,21 +4331,16 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-mock" version = "1.12.1" -version = "1.12.1" description = "Mock out responses from the requests package" optional = false python-versions = ">=3.5" -python-versions = ">=3.5" files = [ {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, - {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, - {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, ] [package.dependencies] requests = ">=2.22,<3" -requests = ">=2.22,<3" [package.extras] fixture = ["fixtures"] @@ -4863,16 +4348,12 @@ fixture = ["fixtures"] [[package]] name = "requests-oauthlib" version = "2.0.0" -version = "2.0.0" description = "OAuthlib authentication support for Requests." optional = false python-versions = ">=3.4" -python-versions = ">=3.4" files = [ {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, - {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, - {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, ] [package.dependencies] @@ -5140,15 +4621,12 @@ files = [ [[package]] name = "sniffio" version = "1.3.1" -version = "1.3.1" description = "Sniff out which async library your code is running under" optional = true python-versions = ">=3.7" files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, - {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, - {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] @@ -5168,7 +4646,6 @@ version = "5.4.2" description = "Python Social Authentication, Django integration." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "social-auth-app-django-5.4.2.tar.gz", hash = "sha256:c8832c6cf13da6ad76f5613bcda2647d89ae7cfbc5217fadd13477a3406feaa8"}, {file = "social_auth_app_django-5.4.2-py3-none-any.whl", hash = "sha256:0c041a31707921aef9a930f143183c65d8c7b364381364a50f3f7c6fcc9d62f6"}, @@ -5184,7 +4661,6 @@ version = "4.5.4" description = "Python social authentication made simple." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "social-auth-core-4.5.4.tar.gz", hash = "sha256:d3dbeb0999ffd0e68aa4bd73f2ac698a18133fd11b3fc890e1366f18c8889fac"}, {file = "social_auth_core-4.5.4-py3-none-any.whl", hash = "sha256:33cf970a623c442376f9d4a86fb187579e4438649daa5b5be993d05e74d7b2db"}, @@ -5195,7 +4671,6 @@ cryptography = ">=1.4" defusedxml = ">=0.5.0rc1" oauthlib = ">=1.0.3" PyJWT = ">=2.7.0" -PyJWT = ">=2.7.0" python3-openid = ">=3.0.10" requests = ">=2.9.1" requests-oauthlib = ">=0.6.1" @@ -5203,8 +4678,6 @@ requests-oauthlib = ">=0.6.1" [package.extras] all = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] allpy3 = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] -all = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] -allpy3 = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] azuread = ["cryptography (>=2.1.1)"] saml = ["python3-saml (>=1.5.0)"] @@ -5338,7 +4811,6 @@ version = "0.5.1" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "sqlparse-0.5.1-py3-none-any.whl", hash = "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4"}, {file = "sqlparse-0.5.1.tar.gz", hash = "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e"}, @@ -5346,21 +4818,17 @@ files = [ [package.extras] dev = ["build", "hatch"] -dev = ["build", "hatch"] doc = ["sphinx"] [[package]] name = "stack-data" version = "0.6.3" -version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" optional = false python-versions = "*" files = [ {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, - {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, - {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, ] [package.dependencies] @@ -5374,15 +4842,12 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "stevedore" version = "5.2.0" -version = "5.2.0" description = "Manage dynamic plugins for Python applications" optional = false python-versions = ">=3.8" files = [ {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, - {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, - {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, ] [package.dependencies] @@ -5498,13 +4963,13 @@ dev = ["furo", "packaging", "sphinx (>=5)", "twisted"] [[package]] name = "traitlets" -version = "5.14.2" +version = "5.14.3" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"}, - {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"}, + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, ] [package.extras] @@ -5525,15 +4990,12 @@ files = [ [[package]] name = "tzdata" version = "2024.1" -version = "2024.1" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] @@ -5553,7 +5015,6 @@ version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, @@ -5562,7 +5023,6 @@ files = [ [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] h2 = ["h2 (>=4,<5)"] -h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -5570,15 +5030,11 @@ zstd = ["zstandard (>=0.18.0)"] name = "vine" version = "5.1.0" description = "Python promises." -version = "5.1.0" -description = "Python promises." optional = false python-versions = ">=3.6" files = [ {file = "vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc"}, {file = "vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0"}, - {file = "vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc"}, - {file = "vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0"}, ] [[package]] @@ -5587,7 +5043,6 @@ version = "4.0.2" description = "Filesystem events monitoring" optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22"}, {file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1"}, @@ -5632,15 +5087,12 @@ watchmedo = ["PyYAML (>=3.10)"] [[package]] name = "wcwidth" version = "0.2.13" -version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" files = [ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, - {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, - {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, ] [[package]] @@ -5660,16 +5112,12 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] [[package]] name = "yamllint" version = "1.35.1" -version = "1.35.1" description = "A linter for YAML files." optional = false python-versions = ">=3.8" -python-versions = ">=3.8" files = [ {file = "yamllint-1.35.1-py3-none-any.whl", hash = "sha256:2e16e504bb129ff515b37823b472750b36b6de07963bd74b307341ef5ad8bdc3"}, {file = "yamllint-1.35.1.tar.gz", hash = "sha256:7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd"}, - {file = "yamllint-1.35.1-py3-none-any.whl", hash = "sha256:2e16e504bb129ff515b37823b472750b36b6de07963bd74b307341ef5ad8bdc3"}, - {file = "yamllint-1.35.1.tar.gz", hash = "sha256:7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd"}, ] [package.dependencies] From 2411206ffde796ab507fc1365317afa81253a01e Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:35:40 -0500 Subject: [PATCH 04/49] =?UTF-8?q?refactor:=20=F0=9F=94=A5=20Remove=20tenan?= =?UTF-8?q?t=5Fprefix=20from=20NautobotAdapter=20as=20it's=20unused.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py b/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py index 67fefdb6a..0f5764901 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py @@ -67,7 +67,6 @@ def __init__(self, *args, job=None, sync=None, client, **kwargs): self.sync = sync self.site = client.get("site") self.site_tag = Tag.objects.get_or_create(name=self.site)[0] - self.tenant_prefix = client.get("tenant_prefix") def sync_complete(self, source: Adapter, *args, **kwargs): """Clean up function for DiffSync sync. From c36f3cfc1e898f18b16848eacd19546e546a3052 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:36:26 -0500 Subject: [PATCH 05/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Update=20ACI=20integr?= =?UTF-8?q?ation=20to=20use=20Controller=20model.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integrations/aci/diffsync/adapters/aci.py | 13 +--- .../aci/diffsync/adapters/nautobot.py | 6 +- nautobot_ssot/integrations/aci/jobs.py | 77 ++++++++++++------- 3 files changed, 54 insertions(+), 42 deletions(-) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py index 699ec4def..38e003d48 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py @@ -20,7 +20,6 @@ from nautobot_ssot.integrations.aci.diffsync.models import NautobotInterface from nautobot_ssot.integrations.aci.diffsync.models import NautobotIPAddress from nautobot_ssot.integrations.aci.diffsync.models import NautobotPrefix -from nautobot_ssot.integrations.aci.diffsync.client import AciApi from nautobot_ssot.integrations.aci.diffsync.utils import load_yamlfile @@ -52,7 +51,7 @@ class AciAdapter(Adapter): "ip_address", ] - def __init__(self, *args, job=None, sync=None, client, **kwargs): + def __init__(self, *args, job=None, sync=None, client, tenant_prefix, **kwargs): """Initialize ACI. Args: @@ -63,15 +62,9 @@ def __init__(self, *args, job=None, sync=None, client, **kwargs): super().__init__(*args, **kwargs) self.job = job self.sync = sync - self.conn = AciApi( - username=client["username"], - password=client["password"], - base_uri=client["base_uri"], - verify=client["verify"], - site=client["site"], - ) + self.conn = client self.site = client.get("site") - self.tenant_prefix = client.get("tenant_prefix") + self.tenant_prefix = tenant_prefix self.nodes = self.conn.get_nodes() self.controllers = self.conn.get_controllers() self.nodes.update(self.controllers) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py b/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py index 0f5764901..883937617 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py @@ -54,18 +54,18 @@ class NautobotAdapter(Adapter): "ip_address", ] - def __init__(self, *args, job=None, sync=None, client, **kwargs): + def __init__(self, *args, job=None, sync=None, site_name: str, **kwargs): """Initialize Nautobot. Args: job (object, optional): Nautobot job. Defaults to None. sync (object, optional): Nautobot DiffSync. Defaults to None. - client (object): ACI credentials. + site_name (str): Name of Site to filter objects on. """ super().__init__(*args, **kwargs) self.job = job self.sync = sync - self.site = client.get("site") + self.site = site_name self.site_tag = Tag.objects.get_or_create(name=self.site)[0] def sync_complete(self, source: Adapter, *args, **kwargs): diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index b013544df..ca664a176 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -2,42 +2,35 @@ from django.templatetags.static import static from django.urls import reverse -from diffsync import DiffSyncFlags -from nautobot.core.settings_funcs import is_truthy -from nautobot.extras.jobs import BooleanVar, ChoiceVar, Job +from diffsync.enum import DiffSyncFlags +from nautobot.dcim.models import Controller, Location +from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices +from nautobot.extras.jobs import BooleanVar, Job, ObjectVar, TextVar from nautobot_ssot.jobs.base import DataMapping, DataSource from nautobot_ssot.integrations.aci.diffsync.adapters.aci import AciAdapter from nautobot_ssot.integrations.aci.diffsync.adapters.nautobot import NautobotAdapter -from nautobot_ssot.integrations.aci.constant import PLUGIN_CFG +from nautobot_ssot.integrations.aci.diffsync.client import AciApi name = "Cisco ACI SSoT" # pylint: disable=invalid-name, abstract-method -aci_creds = {} -for key in PLUGIN_CFG["apics"]: - subkey = key[key.rfind("_") + 1 :].lower() # noqa: E203 - aci_creds.setdefault(subkey, {}) - if "USERNAME" in key: - aci_creds[subkey]["username"] = PLUGIN_CFG["apics"][key] - if "PASSWORD" in key: - aci_creds[subkey]["password"] = PLUGIN_CFG["apics"][key] - if "URI" in key: - aci_creds[subkey]["base_uri"] = PLUGIN_CFG["apics"][key] - if "VERIFY" in key: - aci_creds[subkey]["verify"] = is_truthy(PLUGIN_CFG["apics"][key]) - if "SITE" in key: - aci_creds[subkey]["site"] = PLUGIN_CFG["apics"][key] - if "STAGE" in key: - aci_creds[subkey]["stage"] = PLUGIN_CFG["apics"][key] - if "TENANT" in key: - aci_creds[subkey]["tenant_prefix"] = PLUGIN_CFG["apics"][key] - class AciDataSource(DataSource, Job): # pylint: disable=abstract-method """ACI SSoT Data Source.""" - apic_choices = [(key, key) for key in aci_creds] - - apic = ChoiceVar(choices=apic_choices, label="Select APIC") + apic = ObjectVar( + model=Controller, + queryset=Controller.objects.all(), + display_field="name", + required=True, + label="ACI APIC", + ) + device_site = ObjectVar( + model=Location, + queryset=Location.objects.all(), + display_field="name", + required=False, + label="Device(s) Location", + ) debug = BooleanVar(description="Enable for verbose debug logging.") @@ -71,19 +64,45 @@ def data_mappings(cls): def load_source_adapter(self): """Method to instantiate and load the ACI adapter into `self.source_adapter`.""" - self.source_adapter = AciAdapter(job=self, sync=self.sync, client=aci_creds[self.apic]) + if not self.device_site: + self.logger.info("Device Location is unspecified so will revert to specified Controller's Location.") + _sg = self.apic.external_integration.secrets_group + username = _sg.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_USERNAME, + ) + password = _sg.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_PASSWORD, + ) + client = AciApi( + username=username, + password=password, + base_uri=self.apic.remote_url, + verify=self.apic.verify_ssl, + site=self.device_site.name if self.device_site else self.apic.location.name, + ) + self.source_adapter = AciAdapter( + job=self, + sync=self.sync, + client=client, + tenant_prefix=self.apic.external_integration.extra_config.get("tenant_prefix"), + ) self.source_adapter.load() def load_target_adapter(self): """Method to instantiate and load the Nautobot adapter into `self.target_adapter`.""" - self.target_adapter = NautobotAdapter(job=self, sync=self.sync, client=aci_creds[self.apic]) + self.target_adapter = NautobotAdapter( + job=self, sync=self.sync, site_name=self.device_site.name if self.device_site else self.apic.location.name + ) self.target_adapter.load() def run( # pylint: disable=arguments-differ, too-many-arguments - self, dryrun, memory_profiling, apic, debug, *args, **kwargs + self, dryrun, memory_profiling, apic, device_site, debug, *args, **kwargs ): """Perform data synchronization.""" self.apic = apic + self.device_site = device_site self.debug = debug self.dryrun = dryrun self.memory_profiling = memory_profiling From 6dad7f1ca62839fa58f6dc232dc9b0b19422cd6e Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:37:14 -0500 Subject: [PATCH 06/49] =?UTF-8?q?build:=20=E2=AC=86=EF=B8=8F=20Make=20Naut?= =?UTF-8?q?obot=202.2.0=20minimum=20supported=20version.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/__init__.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nautobot_ssot/__init__.py b/nautobot_ssot/__init__.py index d0a261b75..89dc5fe1a 100644 --- a/nautobot_ssot/__init__.py +++ b/nautobot_ssot/__init__.py @@ -69,7 +69,7 @@ class NautobotSSOTAppConfig(NautobotAppConfig): description = "Nautobot app that enables Single Source of Truth. Allows users to aggregate distributed data sources and/or distribute Nautobot data to other data sources such as databases and SDN controllers." base_url = "ssot" required_settings = [] - min_version = "2.0.0" + min_version = "2.2.0" max_version = "2.9999" default_settings = { "aci_apics": [], diff --git a/pyproject.toml b/pyproject.toml index c1f30e6d8..b6939e054 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ include = [ [tool.poetry.dependencies] python = ">=3.8,<3.12" # Used for local development -nautobot = "^2.1.0" +nautobot = "^2.2.0" diffsync = "^2.0.0" Jinja2 = { version = ">=2.11.3", optional = true } Markdown = "!=3.3.5" From c785eb94a861b6ff93eb685f745f617c977cdb1f Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:50:36 -0500 Subject: [PATCH 07/49] =?UTF-8?q?fix:=20=F0=9F=94=A5=20Remove=20unused=20i?= =?UTF-8?q?mport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index ca664a176..f4dccdfe4 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -5,7 +5,7 @@ from diffsync.enum import DiffSyncFlags from nautobot.dcim.models import Controller, Location from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices -from nautobot.extras.jobs import BooleanVar, Job, ObjectVar, TextVar +from nautobot.extras.jobs import BooleanVar, Job, ObjectVar from nautobot_ssot.jobs.base import DataMapping, DataSource from nautobot_ssot.integrations.aci.diffsync.adapters.aci import AciAdapter from nautobot_ssot.integrations.aci.diffsync.adapters.nautobot import NautobotAdapter From fdfde1f4948a1846a2b22f040a43e95ef4e8261b Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:52:02 -0500 Subject: [PATCH 08/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Update=20Device42=20i?= =?UTF-8?q?ntegration=20to=20use=20ExternalIntegration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/device42/jobs.py | 66 +++++++++++++-------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/nautobot_ssot/integrations/device42/jobs.py b/nautobot_ssot/integrations/device42/jobs.py index 8e54ac187..28941e77b 100644 --- a/nautobot_ssot/integrations/device42/jobs.py +++ b/nautobot_ssot/integrations/device42/jobs.py @@ -3,10 +3,11 @@ from django.templatetags.static import static from django.urls import reverse -from nautobot.extras.jobs import BooleanVar +from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices +from nautobot.extras.models import ExternalIntegration +from nautobot.extras.jobs import BooleanVar, ObjectVar from nautobot_ssot.jobs.base import DataMapping, DataSource -from nautobot_ssot.integrations.device42.constant import PLUGIN_CFG from nautobot_ssot.integrations.device42.diffsync.adapters.device42 import Device42Adapter from nautobot_ssot.integrations.device42.diffsync.adapters.nautobot import NautobotAdapter from nautobot_ssot.integrations.device42.utils.device42 import Device42API @@ -18,6 +19,13 @@ class Device42DataSource(DataSource): # pylint: disable=too-many-instance-attributes """Device42 SSoT Data Source.""" + integration = ObjectVar( + model=ExternalIntegration, + queryset=ExternalIntegration.objects.all(), + display_field="name", + required=True, + label="Device42 Instance", + ) debug = BooleanVar(description="Enable for more verbose debug logging", default=False) bulk_import = BooleanVar(description="Enable using bulk create option for object creation.", default=False) @@ -32,79 +40,75 @@ class Meta: @classmethod def config_information(cls): """Dictionary describing the configuration of this DataSource.""" - return { - "Device42 Host": PLUGIN_CFG.get("device42_host"), - "Username": PLUGIN_CFG.get("device42_username"), - "Verify SSL": str(PLUGIN_CFG.get("device42_verify_ssl")), - } + return {} @classmethod def data_mappings(cls): """List describing the data mappings involved in this DataSource.""" return ( DataMapping( - "Buildings", f"{PLUGIN_CFG['device42_host']}admin/rackraj/building/", "Sites", reverse("dcim:site_list") + "Buildings", f"{cls.integration.remote_url}admin/rackraj/building/", "Sites", reverse("dcim:site_list") ), DataMapping( "Rooms", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/room/", + f"{cls.integration.remote_url}admin/rackraj/room/", "Rack Groups", reverse("dcim:rackgroup_list"), ), DataMapping( - "Racks", f"{PLUGIN_CFG['device42_host']}admin/rackraj/rack/", "Racks", reverse("dcim:rack_list") + "Racks", f"{cls.integration.remote_url}admin/rackraj/rack/", "Racks", reverse("dcim:rack_list") ), DataMapping( "Vendors", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/organisation/", + f"{cls.integration.remote_url}admin/rackraj/organisation/", "Manufacturers", reverse("dcim:manufacturer_list"), ), DataMapping( "Hardware Models", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/hardware/", + f"{cls.integration.remote_url}admin/rackraj/hardware/", "Device Types", reverse("dcim:devicetype_list"), ), DataMapping( - "Devices", f"{PLUGIN_CFG['device42_host']}admin/rackraj/device/", "Devices", reverse("dcim:device_list") + "Devices", f"{cls.integration.remote_url}admin/rackraj/device/", "Devices", reverse("dcim:device_list") ), DataMapping( "Ports", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/netport/", + f"{cls.integration.remote_url}admin/rackraj/netport/", "Interfaces", reverse("dcim:interface_list"), ), DataMapping( - "Cables", f"{PLUGIN_CFG['device42_host']}admin/rackraj/cable/", "Cables", reverse("dcim:cable_list") + "Cables", f"{cls.integration.remote_url}admin/rackraj/cable/", "Cables", reverse("dcim:cable_list") ), DataMapping( "VPC (VRF Groups)", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/vrfgroup/", + f"{cls.integration.remote_url}admin/rackraj/vrfgroup/", "VRFs", reverse("ipam:vrf_list"), ), DataMapping( - "Subnets", f"{PLUGIN_CFG['device42_host']}admin/rackraj/vlan/", "Prefixes", reverse("ipam:prefix_list") + "Subnets", f"{cls.integration.remote_url}admin/rackraj/vlan/", "Prefixes", reverse("ipam:prefix_list") ), DataMapping( "IP Addresses", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/ip_address/", + f"{cls.integration.remote_url}admin/rackraj/ip_address/", "IP Addresses", reverse("ipam:ipaddress_list"), ), DataMapping( - "VLANs", f"{PLUGIN_CFG['device42_host']}admin/rackraj/switch_vlan/", "VLANs", reverse("ipam:vlan_list") + "VLANs", f"{cls.integration.remote_url}admin/rackraj/switch_vlan/", "VLANs", reverse("ipam:vlan_list") ), DataMapping( "Vendors", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/organisation/", + f"{cls.integration.remote_url}admin/rackraj/organisation/", "Providers", reverse("circuits:provider_list"), ), DataMapping( "Telco Circuits", - f"{PLUGIN_CFG['device42_host']}admin/rackraj/circuit/", + f"{cls.integration.remote_url}admin/rackraj/circuit/", "Circuits", reverse("circuits:circuit_list"), ), @@ -114,11 +118,20 @@ def load_source_adapter(self): """Load data from Device42 into DiffSync models.""" if self.debug: self.logger.info("Connecting to Device42...") + _sg = self.integration.secrets_group + username = _sg.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_USERNAME, + ) + password = _sg.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_PASSWORD, + ) client = Device42API( - base_url=PLUGIN_CFG["device42_host"], - username=PLUGIN_CFG["device42_username"], - password=PLUGIN_CFG["device42_password"], - verify=PLUGIN_CFG["device42_verify_ssl"], + base_url=self.integration.remote_url, + username=username, + password=password, + verify=self.integration.verify_ssl, ) self.source_adapter = Device42Adapter(job=self, sync=self.sync, client=client) if self.debug: @@ -133,9 +146,10 @@ def load_target_adapter(self): self.target_adapter.load() def run( # pylint: disable=arguments-differ, too-many-arguments - self, dryrun, memory_profiling, debug, bulk_import, *args, **kwargs + self, dryrun, memory_profiling, integration, debug, bulk_import, *args, **kwargs ): """Perform data synchronization.""" + self.integration = integration self.bulk_import = bulk_import self.debug = debug self.dryrun = dryrun From fe83472d0ede4fadbea6342507355c2f13d231ea Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 11:19:57 -0500 Subject: [PATCH 09/49] =?UTF-8?q?refactor:=20=F0=9F=94=A5=20Remove=20aci?= =?UTF-8?q?=5Fapics=20default=5Fsetting=20as=20no=20longer=20needed.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/nautobot_ssot/__init__.py b/nautobot_ssot/__init__.py index 89dc5fe1a..6c7f6774b 100644 --- a/nautobot_ssot/__init__.py +++ b/nautobot_ssot/__init__.py @@ -72,7 +72,6 @@ class NautobotSSOTAppConfig(NautobotAppConfig): min_version = "2.2.0" max_version = "2.9999" default_settings = { - "aci_apics": [], "aci_tag": "", "aci_tag_color": "", "aci_tag_up": "", From 1c2be568d4aa657aaa08b0de16e97550c4b8b5b6 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 11:20:15 -0500 Subject: [PATCH 10/49] =?UTF-8?q?docs:=20=F0=9F=93=9D=20Update=20ACI=20doc?= =?UTF-8?q?s=20to=20reference=20Controller/ExternalIntegration=20update.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/admin/integrations/aci_setup.md | 34 +++++++--------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/docs/admin/integrations/aci_setup.md b/docs/admin/integrations/aci_setup.md index 6a8ff50b6..9a8cbeb56 100644 --- a/docs/admin/integrations/aci_setup.md +++ b/docs/admin/integrations/aci_setup.md @@ -12,11 +12,13 @@ pip install nautobot-ssot[aci] ## Configuration +!!! note + Legacy configuration settings defined in `nautobot_config.py` for `aci_apics` is now deprecated. All information related to communicating to an APIC has been updated to use the Controller and its related ExternalIntegration objects. + Integration behavior can be controlled with the following settings: | Setting Name
(* required) | Type | Description | |---|:---:|---| -|

aci_apics_*

| | Per-APIC settings. See per-APIC settings section for details. | | aci_tag* | _String_ | Tag which is created and applied to all
synchronized objects. | | aci_tag_color* | _String_ | Hex color code used for the tag. | | aci_tag_up* | _String_ | Tag indicating the state applied to synchronized
interfaces. | @@ -33,8 +35,6 @@ Below is an example snippet from `nautobot_config.py` that demonstrates how to e PLUGINS_CONFIG = { "nautobot_ssot": { "enable_aci": True, - # URL and credentials should be configured as environment variables on the host system - "aci_apics": {x: os.environ[x] for x in os.environ if "APIC" in x}, # Tag which will be created and applied to all synchronized objects. "aci_tag": "ACI", "aci_tag_color": "0047AB", @@ -54,36 +54,21 @@ PLUGINS_CONFIG = { ### Per-APIC settings -The APIC URL and credentials need to be created as environment variables on the host system. - -You can configure multiple APIC instances for synchronization. To do this, append `_` character, followed by an identifier, to the names of environment variables. - -In the example below, configured APIC uses `NTC` for an identifier. Instead of `NTC` you could, for example, use `CHCG01` to configure an APIC instance in your Chicago facility. - -```bash -export NAUTOBOT_APIC_BASE_URI_NTC=https://aci.cloud.networktocode.com -export NAUTOBOT_APIC_USERNAME_NTC=admin -export NAUTOBOT_APIC_PASSWORD_NTC=not_so_secret_password -export NAUTOBOT_APIC_VERIFY_NTC=False -export NAUTOBOT_APIC_SITE_NTC="NTC ACI" -export NAUTOBOT_APIC_TENANT_PREFIX_NTC="NTC_ACI" -``` - -The identifier is used to select APIC from the SSoT dashboard when initiating a synchronization job: +All APIC specific settings have been updated to use the Controller and related ExternalIntegration objects. The ExternalIntegration object that is assigned to the Controller will define the APIC base URL, user credentials, and SSL verification. It will also have a `tenant_prefix` key in the `extra_config` section of the ExternalIntegration to define the Tenant prefix. -![image](../../images/aci-dashboard-apic.png) +The `aci_apics` setting from the `nautobot_config.py` file is no longer used and any configuration found for it will be automatically migrated into a Controller and an ExternalIntegration object. ## Nautobot Objects Affected by Settings -A Site will be created in Nautobot with the name specified in the `NAUTOBOT_APIC_SITE` environment variable and resources created by the integration will be assigned to this site. +The Job form has been updated to allow specifying a Location for the imported objects. If that is left unspecified then the Location associated to the specified Controller will be used. -Tenants imported from ACI will be prepended with the unique name specified by the corresponding `TENANT_PREFIX` variable. This uniquely identifies tenants which might have the same name, but belong to two different APIC clusters. +Tenants imported from ACI will be prefixed with the unique name specified by the corresponding `tenant_prefix` key in the Controller's associated ExternalIntegration `extra_config`. This uniquely identifies tenants which might have the same name, but belong to two different APIC clusters. ## Configuring Device Templates To create a new Nautobot Device Type mapping to a specific ACI leaf or spine switch model you need to provide YAML file describing that model. This model definition includes interface template with the ports and transceiver types (ex. 10GE SFP+) specification. -The YAML files need to be placed in the `nautobot_ssot/integrations/aci/diffsync/device-types` directory. Their names need to match the model name as it appears in the ACI Fabric Membership area of the APIC dashboard. +The YAML files need to be placed in the `nautobot_ssot/integrations/aci/diffsync/device-types` directory. Their names need to match the model name as it appears in the ACI Fabric Membership area of the APIC dashboard. For example, given a Model name of `N9K-C9396PX` as shown below, the YAML file should be named `N9K-C9396PX.yaml`. @@ -114,7 +99,6 @@ There are example YAML files for a few common switch models in `nautobot_ssot/in PLUGINS_CONFIG = { # "nautobot_ssot_aci": { REMOVE THIS APP CONFIGURATION # MOVE CONFIGURATION TO `nautobot_ssot` SECTION - # "apics": {x: os.environ[x] for x in os.environ if "NAUTOBOT_APIC" in x}, # "tag": "ACI", # ... # } @@ -122,7 +106,6 @@ There are example YAML files for a few common switch models in `nautobot_ssot/in # Enable Cisco ACI integration "enable_aci": True, # Following lines are moved from `nautobot_ssot_aci` and prefixed with `aci_` - "aci_apics": {x: os.environ[x] for x in os.environ if "NAUTOBOT_APIC" in x}, "aci_tag": "ACI", ... } @@ -133,5 +116,4 @@ There are example YAML files for a few common switch models in `nautobot_ssot/in Configuration keys are prefixed with `aci_`. !!! note - Environment variables defining APICs access must contain `APIC`. Other environment variables for this integration are prefixed with `NAUTOBOT_SSOT_ACI_`. From 077708b7d52f3c39889bab2294274a3ffa501605 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 11:54:25 -0500 Subject: [PATCH 11/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Update=20IPFabric=20i?= =?UTF-8?q?ntegration=20to=20use=20Controller=20object.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/jobs.py | 29 +++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 307a30a69..c7a8865a9 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -9,8 +9,9 @@ from django.urls import reverse from httpx import ConnectError from ipfabric import IPFClient -from nautobot.dcim.models import Location -from nautobot.extras.jobs import BooleanVar, ScriptVariable, ChoiceVar +from nautobot.dcim.models import Controller, Location +from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices +from nautobot.extras.jobs import BooleanVar, ScriptVariable, ChoiceVar, ObjectVar from nautobot.core.forms import DynamicModelChoiceField from nautobot_ssot.jobs.base import DataMapping, DataSource @@ -103,6 +104,13 @@ class IpFabricDataSource(DataSource): client = None snapshot = None + controller = ObjectVar( + model=Controller, + queryset=Controller.objects.all(), + display_field="name", + required=True, + label="IPFabric Controller", + ) debug = BooleanVar(description="Enable for more verbose debug logging") safe_delete_mode = BooleanVar( description="Records are not deleted. Status fields are updated as necessary.", @@ -136,14 +144,17 @@ class Meta: "dryrun", ) - @staticmethod - def _init_ipf_client(): + def _init_ipf_client(self): + token = self.controller.external_integration.secrets_group.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_TOKEN, + ) try: return IPFClient( - base_url=constants.IPFABRIC_HOST, - auth=constants.IPFABRIC_API_TOKEN, - verify=constants.IPFABRIC_SSL_VERIFY, - timeout=constants.IPFABRIC_TIMEOUT, + base_url=self.controller.external_integration.remote_url, + auth=token, + verify=self.controller.external_integration.verify_ssl, + timeout=self.controller.external_integration.timeout, unloaded=False, ) except (RuntimeError, ConnectError) as error: @@ -217,6 +228,7 @@ def run( self, dryrun, memory_profiling, + controller, debug, snapshot=None, safe_delete_mode=True, @@ -226,6 +238,7 @@ def run( **kwargs, ): """Run the job.""" + self.controller = controller self.kwargs = { "snapshot": snapshot, "dryrun": dryrun, From 7610d4abc7bf183f8d1068d650a01a3bec9f4e9d Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:03:23 -0500 Subject: [PATCH 12/49] =?UTF-8?q?build:=20=F0=9F=94=A5=20Remove=20unused?= =?UTF-8?q?=20config=20settings=20for=20ACI=20integration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- development/nautobot_config.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/development/nautobot_config.py b/development/nautobot_config.py index e2e2ab41b..894646655 100644 --- a/development/nautobot_config.py +++ b/development/nautobot_config.py @@ -145,8 +145,6 @@ # "ipfabric_host": os.getenv("IPFABRIC_HOST"), # }, "nautobot_ssot": { - # URL and credentials should be configured as environment variables on the host system - "aci_apics": {x: os.environ[x] for x in os.environ if "APIC" in x}, # Tag which will be created and applied to all synchronized objects. "aci_tag": os.getenv("NAUTOBOT_SSOT_ACI_TAG"), "aci_tag_color": os.getenv("NAUTOBOT_SSOT_ACI_TAG_COLOR"), @@ -161,9 +159,7 @@ "aci_ignore_tenants": os.getenv("NAUTOBOT_SSOT_ACI_IGNORE_TENANTS", "").split(","), # The below value will appear in the Comments field on objects created in Nautobot "aci_comments": os.getenv("NAUTOBOT_SSOT_ACI_COMMENTS"), - # Site to associate objects. Specify existing, or a new site with this name will be created. - "aci_site": os.getenv("NAUTOBOT_SSOT_ACI_SITE"), - "aristacv_apply_import_tag": is_truthy(os.getenv("NAUTOBOT_ARISTACV_IMPORT_TAG", False)), + "aristacv_apply_import_tag": is_truthy(os.getenv("NAUTOBOT_ARISTACV_IMPORT_TAG", "false")), "aristacv_controller_site": os.getenv("NAUTOBOT_ARISTACV_CONTROLLER_SITE", ""), "aristacv_create_controller": is_truthy(os.getenv("NAUTOBOT_ARISTACV_CREATE_CONTROLLER", False)), "aristacv_cvaas_url": os.getenv("NAUTOBOT_ARISTACV_CVAAS_URL", "www.arista.io:443"), From 510143ae8bf6d461fdce211546cb773d1ebc1419 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:03:59 -0500 Subject: [PATCH 13/49] =?UTF-8?q?build:=20=F0=9F=94=A5=20Remove=20IPFabric?= =?UTF-8?q?=20settings=20that=20are=20no=20longer=20used.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- development/nautobot_config.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/development/nautobot_config.py b/development/nautobot_config.py index 894646655..a2c728521 100644 --- a/development/nautobot_config.py +++ b/development/nautobot_config.py @@ -141,8 +141,6 @@ # "slack_api_token": os.getenv("SLACK_API_TOKEN"), # "slack_signing_secret": os.getenv("SLACK_SIGNING_SECRET"), # "session_cache_timeout": 3600, - # "ipfabric_api_token": os.getenv("IPFABRIC_API_TOKEN"), - # "ipfabric_host": os.getenv("IPFABRIC_HOST"), # }, "nautobot_ssot": { # Tag which will be created and applied to all synchronized objects. @@ -229,10 +227,6 @@ "infoblox_verify_ssl": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_VERIFY_SSL", True)), "infoblox_wapi_version": os.getenv("NAUTOBOT_SSOT_INFOBLOX_WAPI_VERSION", "v2.12"), "infoblox_network_view": os.getenv("NAUTOBOT_SSOT_INFOBLOX_NETWORK_VIEW", ""), - "ipfabric_api_token": os.getenv("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), - "ipfabric_host": os.getenv("NAUTOBOT_SSOT_IPFABRIC_HOST"), - "ipfabric_ssl_verify": is_truthy(os.getenv("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY", "False")), - "nautobot_host": os.getenv("NAUTOBOT_HOST"), "servicenow_instance": os.getenv("SERVICENOW_INSTANCE", ""), "servicenow_password": os.getenv("SERVICENOW_PASSWORD", ""), "servicenow_username": os.getenv("SERVICENOW_USERNAME", ""), From 24d4ad8a015b0c85ded52ee14fa153398c282709 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:04:41 -0500 Subject: [PATCH 14/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Correct=20default?= =?UTF-8?q?=20booleans=20to=20be=20strings.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- development/nautobot_config.py | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/development/nautobot_config.py b/development/nautobot_config.py index a2c728521..44ce7402f 100644 --- a/development/nautobot_config.py +++ b/development/nautobot_config.py @@ -159,19 +159,19 @@ "aci_comments": os.getenv("NAUTOBOT_SSOT_ACI_COMMENTS"), "aristacv_apply_import_tag": is_truthy(os.getenv("NAUTOBOT_ARISTACV_IMPORT_TAG", "false")), "aristacv_controller_site": os.getenv("NAUTOBOT_ARISTACV_CONTROLLER_SITE", ""), - "aristacv_create_controller": is_truthy(os.getenv("NAUTOBOT_ARISTACV_CREATE_CONTROLLER", False)), + "aristacv_create_controller": is_truthy(os.getenv("NAUTOBOT_ARISTACV_CREATE_CONTROLLER", "false")), "aristacv_cvaas_url": os.getenv("NAUTOBOT_ARISTACV_CVAAS_URL", "www.arista.io:443"), "aristacv_cvp_host": os.getenv("NAUTOBOT_ARISTACV_CVP_HOST", ""), "aristacv_cvp_password": os.getenv("NAUTOBOT_ARISTACV_CVP_PASSWORD", ""), "aristacv_cvp_port": os.getenv("NAUTOBOT_ARISTACV_CVP_PORT", "443"), "aristacv_cvp_token": os.getenv("NAUTOBOT_ARISTACV_CVP_TOKEN", ""), "aristacv_cvp_user": os.getenv("NAUTOBOT_ARISTACV_CVP_USERNAME", ""), - "aristacv_delete_devices_on_sync": is_truthy(os.getenv("NAUTOBOT_ARISTACV_DELETE_ON_SYNC", False)), + "aristacv_delete_devices_on_sync": is_truthy(os.getenv("NAUTOBOT_ARISTACV_DELETE_ON_SYNC", "false")), "aristacv_from_cloudvision_default_device_role": "network", "aristacv_from_cloudvision_default_device_role_color": "ff0000", "aristacv_from_cloudvision_default_site": "cloudvision_imported", "aristacv_hostname_patterns": [r"(?P\w{2,3}\d+)-(?P\w+)-\d+"], - "aristacv_import_active": is_truthy(os.getenv("NAUTOBOT_ARISTACV_IMPORT_ACTIVE", False)), + "aristacv_import_active": is_truthy(os.getenv("NAUTOBOT_ARISTACV_IMPORT_ACTIVE", "false")), "aristacv_role_mappings": { "bb": "backbone", "edge": "edge", @@ -184,19 +184,14 @@ "ams01": "Amsterdam", "atl01": "Atlanta", }, - "aristacv_verify": is_truthy(os.getenv("NAUTOBOT_ARISTACV_VERIFY", True)), - "enable_aci": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ACI")), - "enable_aristacv": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ARISTACV")), - "enable_device42": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_DEVICE42")), - "enable_infoblox": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_INFOBLOX")), - "enable_ipfabric": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_IPFABRIC")), - "enable_itential": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ITENTIAL")), - "enable_servicenow": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_SERVICENOW")), - "hide_example_jobs": is_truthy(os.getenv("NAUTOBOT_SSOT_HIDE_EXAMPLE_JOBS")), - "device42_host": os.getenv("NAUTOBOT_SSOT_DEVICE42_HOST", ""), - "device42_username": os.getenv("NAUTOBOT_SSOT_DEVICE42_USERNAME", ""), - "device42_password": os.getenv("NAUTOBOT_SSOT_DEVICE42_PASSWORD", ""), - "device42_verify_ssl": False, + "aristacv_verify": is_truthy(os.getenv("NAUTOBOT_ARISTACV_VERIFY", "true")), + "enable_aci": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ACI", "false")), + "enable_aristacv": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ARISTACV", "false")), + "enable_device42": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_DEVICE42", "false")), + "enable_infoblox": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_INFOBLOX", "false")), + "enable_ipfabric": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_IPFABRIC", "false")), + "enable_servicenow": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_SERVICENOW", "false")), + "hide_example_jobs": is_truthy(os.getenv("NAUTOBOT_SSOT_HIDE_EXAMPLE_JOBS", "true")), "device42_defaults": { "site_status": "Active", "rack_status": "Active", @@ -224,7 +219,7 @@ "infoblox_password": os.getenv("NAUTOBOT_SSOT_INFOBLOX_PASSWORD"), "infoblox_url": os.getenv("NAUTOBOT_SSOT_INFOBLOX_URL"), "infoblox_username": os.getenv("NAUTOBOT_SSOT_INFOBLOX_USERNAME"), - "infoblox_verify_ssl": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_VERIFY_SSL", True)), + "infoblox_verify_ssl": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_VERIFY_SSL", "true")), "infoblox_wapi_version": os.getenv("NAUTOBOT_SSOT_INFOBLOX_WAPI_VERSION", "v2.12"), "infoblox_network_view": os.getenv("NAUTOBOT_SSOT_INFOBLOX_NETWORK_VIEW", ""), "servicenow_instance": os.getenv("SERVICENOW_INSTANCE", ""), From 04e362212920d70ddf68a184f9edc91a589111d5 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:05:12 -0500 Subject: [PATCH 15/49] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20Update?= =?UTF-8?q?=20Nautobot=20Host=20to=20be=20pulled=20from=20env=20var=20dire?= =?UTF-8?q?ctly.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/jobs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index c7a8865a9..715b9f33c 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -2,6 +2,7 @@ # pylint: disable=too-few-public-methods # pylint: disable=too-many-locals """IP Fabric Data Target Job.""" +import os import uuid from diffsync.enum import DiffSyncFlags from diffsync.exceptions import ObjectNotCreated @@ -207,8 +208,7 @@ def data_mappings(cls): def config_information(cls): """Dictionary describing the configuration of this DataSource.""" return { - "IP Fabric host": constants.IPFABRIC_HOST, - "Nautobot Host URL": constants.NAUTOBOT_HOST, + "Nautobot Host URL": os.getenv("NAUTOBOT_HOST"), "Default Device Role": constants.DEFAULT_DEVICE_ROLE, "Default Device Role Color": constants.DEFAULT_DEVICE_ROLE_COLOR, "Default Device Status": constants.DEFAULT_DEVICE_STATUS, From f20262b76fb53e2e30b19f0355d6a744431c8241 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:07:06 -0500 Subject: [PATCH 16/49] =?UTF-8?q?refactor:=20=F0=9F=94=A5=20Remove=20unuse?= =?UTF-8?q?d=20env=20vars?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- development/development.env | 1 - 1 file changed, 1 deletion(-) diff --git a/development/development.env b/development/development.env index 930f62db5..8e7f28b28 100644 --- a/development/development.env +++ b/development/development.env @@ -55,7 +55,6 @@ NAUTOBOT_SSOT_ACI_TAG_DOWN_COLOR="FF3333" NAUTOBOT_SSOT_ACI_MANUFACTURER_NAME="Cisco" NAUTOBOT_SSOT_ACI_IGNORE_TENANTS="[mgmt,infra]" NAUTOBOT_SSOT_ACI_COMMENTS="Created by ACI SSoT Integration" -NAUTOBOT_SSOT_ACI_SITE="Data Center" NAUTOBOT_SSOT_ENABLE_ARISTACV="False" NAUTOBOT_ARISTACV_CONTROLLER_SITE="" From 7931e54657d87d94acc96339c3311eff40cb29c9 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:15:05 -0500 Subject: [PATCH 17/49] =?UTF-8?q?docs:=20=F0=9F=93=9D=20Update=20IPFabric?= =?UTF-8?q?=20documentation=20about=20using=20Controller/ExternalIntegrati?= =?UTF-8?q?on.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/admin/integrations/ipfabric_setup.md | 36 +++-------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/docs/admin/integrations/ipfabric_setup.md b/docs/admin/integrations/ipfabric_setup.md index 148231ed5..4ef3b6335 100644 --- a/docs/admin/integrations/ipfabric_setup.md +++ b/docs/admin/integrations/ipfabric_setup.md @@ -17,14 +17,7 @@ Integration behavior can be controlled with the following settings: !!! warning The setting names have been updated to help avoid any potential conflicts, please update the settings in `PLUGINS_CONFIG` accordingly. -### Required Settings - -| `Setting` | `Description` | -| --------- | ------------- | -| `ipfabric_host` | Hostname/IP address of the IPFabric instance. | -| `ipfabric_api_token` | API token for IPFabric authentication. | -| `ipfabric_ssl_verify` | Verify the SSL certificate of the IPFabric instance. | -| `nautobot_host` | FQDN of your Nautobot instance. This is used to provide a URL to the job results via ChatOps. | +The IPFabric integration has been updated to utilize the Controller and related ExternalIntegration objects for tracking of credentials and controller information. Below is an example snippet from `nautobot_config.py` that demonstrates how to enable and configure IPFabric integration: @@ -32,10 +25,6 @@ Below is an example snippet from `nautobot_config.py` that demonstrates how to e PLUGINS_CONFIG = { "nautobot_ssot": { "enable_ipfabric": True, - "ipfabric_api_token": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), - "ipfabric_host": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_HOST"), - "ipfabric_ssl_verify": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY"), - "nautobot_host": os.environ.get("NAUTOBOT_HOST"), } } ``` @@ -44,7 +33,6 @@ PLUGINS_CONFIG = { | `Setting` | `Description` | `Default` | | --------- | ------------- | ---------- | -| `ipfabric_timeout` | Timeout (in seconds) for API requests to IPFabric. | `15` | | `ipfabric_allow_duplicate_addresses` | If an IP Address already exists, setting this flag to `False` will prevent a duplicate IP Address from being created and will instead assign the existing IP to the synced Interface. | `True` | | `ipfabric_default_device_role` | The device role used if a matching role is not found. | `Network Device` | | `ipfabric_default_device_role_color` | The color used for the default device role. | `ff0000` | @@ -57,7 +45,7 @@ PLUGINS_CONFIG = { | `ipfabric_safe_delete_location_status` | The status that is set for a Location when the `Safe Delete Mode` flag is set in the Job. | `Decommissioning` | | `ipfabric_safe_delete_vlan_status` | The status that is set for a VLAN when the `Safe Delete Mode` flag is set in the Job. | `Deprecated` | | `ipfabric_safe_delete_ipaddress_status` | The status that is set for an IP Address when the `Safe Delete Mode` flag is set in the Job. | `Deprecated` | -| `ipfabric_use_canonical_interface_name` | Whether to attempt to elongate interface names as found in IP Fabric. | `False` | +| `ipfabric_use_canonical_interface_name` | Whether to attempt to elongate interface names as found in IPFabric. | `False` | Below is an example snippet from `nautobot_config.py` that demonstrates how to enable and configure the IPFabric SSoT integration along with the optional settings: @@ -66,10 +54,6 @@ Below is an example snippet from `nautobot_config.py` that demonstrates how to e PLUGINS_CONFIG = { "nautobot_ssot": { "enable_ipfabric": True, - "ipfabric_api_token": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), - "ipfabric_host": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_HOST"), - "ipfabric_ssl_verify": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY"), - "nautobot_host": os.environ.get("NAUTOBOT_HOST"), "ipfabric_timeout": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_TIMEOUT"), "ipfabric_allow_duplicate_addresses": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_DUPLICATE_ADDRESSES"), "ipfabric_default_device_role": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_DEVICE_ROLE"), @@ -110,24 +94,12 @@ PLUGINS_CONFIG = { ] PLUGINS_CONFIG = { - # "nautobot_ssot_ipfabric": { REMOVE THIS APP CONFIGURATION - # MOVE CONFIGURATION TO `nautobot_ssot` SECTION - # "ipfabric_api_token": os.environ.get("IPFABRIC_API_TOKEN"), - # "ipfabric_host": os.environ.get("IPFABRIC_HOST"), - # "ipfabric_ssl_verify": os.environ.get("IPFABRIC_SSL_VERIFY"), - # "ipfabric_timeout": os.environ.get("IPFABRIC_TIMEOUT"), - # "nautobot_host": os.environ.get("NAUTOBOT_HOST"), - # } "nautobot_ssot": { # Enable IPFabric integration "enable_ipfabric": True, - # Following lines are moved from `nautobot_ssot_ipfabric` - "ipfabric_api_token": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), - "ipfabric_host": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_HOST"), - "ipfabric_ssl_verify": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY"), - "nautobot_host": os.environ.get("NAUTOBOT_HOST"), } } ``` + !!! warning - The setting names have been updated to help avoid any potential conflicts, please update the settings in `PLUGINS_CONFIG` accordingly. \ No newline at end of file + The setting names have been updated to help avoid any potential conflicts, please update the settings in `PLUGINS_CONFIG` accordingly. From 8e1184dd9c4ece765413c82ec093abdf425645b7 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 26 Jul 2024 17:12:47 -0500 Subject: [PATCH 18/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Add=20support=20for?= =?UTF-8?q?=20ControllerManagedDeviceGroup=20in=20ACI=20integration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added required pieces for the ControllerManagedDeviceGroup for the associated Controller is attached to the imported Devices. --- .../integrations/aci/diffsync/adapters/aci.py | 5 +++++ .../aci/diffsync/adapters/nautobot.py | 3 +++ .../integrations/aci/diffsync/models/base.py | 12 +++++++++++- .../aci/diffsync/models/nautobot.py | 6 ++++++ nautobot_ssot/integrations/aci/jobs.py | 18 ++++++++---------- 5 files changed, 33 insertions(+), 11 deletions(-) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py index 38e003d48..7fc33a15e 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py @@ -419,6 +419,11 @@ def load_devices(self): pod_id=value["pod_id"], site=self.site, site_tag=self.site, + controller_group=( + self.job.apic.controller_managed_device_group.name + if self.job.apic.controller_managed_device_group + else "" + ), ) self.add(new_device) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py b/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py index 883937617..ba13e377d 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/nautobot.py @@ -184,6 +184,9 @@ def load_devices(self): node_id=nbdevice.custom_field_data["aci_node_id"], pod_id=nbdevice.custom_field_data["aci_pod_id"], site_tag=self.site, + controller_group=( + nbdevice.controller_managed_device_group.name if nbdevice.controller_managed_device_group else "" + ), ) self.add(_device) diff --git a/nautobot_ssot/integrations/aci/diffsync/models/base.py b/nautobot_ssot/integrations/aci/diffsync/models/base.py index da4326d5d..eadd8c9ee 100644 --- a/nautobot_ssot/integrations/aci/diffsync/models/base.py +++ b/nautobot_ssot/integrations/aci/diffsync/models/base.py @@ -76,7 +76,16 @@ class Device(DiffSyncModel): "name", "site", ) - _attributes = ("device_role", "device_type", "serial", "comments", "node_id", "pod_id", "site_tag") + _attributes = ( + "device_role", + "device_type", + "serial", + "comments", + "node_id", + "pod_id", + "site_tag", + "controller_group", + ) _children = { "interface": "interfaces", } @@ -91,6 +100,7 @@ class Device(DiffSyncModel): node_id: Optional[int] pod_id: Optional[int] site_tag: str + controller_group: str class InterfaceTemplate(DiffSyncModel): diff --git a/nautobot_ssot/integrations/aci/diffsync/models/nautobot.py b/nautobot_ssot/integrations/aci/diffsync/models/nautobot.py index 1a945cc7d..d0a979197 100644 --- a/nautobot_ssot/integrations/aci/diffsync/models/nautobot.py +++ b/nautobot_ssot/integrations/aci/diffsync/models/nautobot.py @@ -3,6 +3,7 @@ import logging from django.contrib.contenttypes.models import ContentType from nautobot.tenancy.models import Tenant as OrmTenant +from nautobot.dcim.models import ControllerManagedDeviceGroup from nautobot.dcim.models import DeviceType as OrmDeviceType from nautobot.dcim.models import Device as OrmDevice from nautobot.dcim.models import InterfaceTemplate as OrmInterfaceTemplate @@ -178,6 +179,7 @@ def create(cls, adapter, ids, attrs): device_type=OrmDeviceType.objects.get(model=attrs["device_type"]), serial=attrs["serial"], comments=attrs["comments"], + controller_managed_device_group=ControllerManagedDeviceGroup.objects.get(name=attrs["controller_group"]), location=Location.objects.get(name=ids["site"], location_type=LocationType.objects.get(name="Site")), status=Status.objects.get(name="Active"), ) @@ -203,6 +205,10 @@ def update(self, attrs): _device.role = Role.objects.get(name=attrs["device_role"]) if attrs.get("comments"): _device.comments = attrs["comments"] + if attrs.get("controller_group"): + _device.controller_managed_device_group = ControllerManagedDeviceGroup.objects.get( + name=attrs["controller_group"] + ) if attrs.get("node_id"): _device.custom_field_data["aci_node_id"] = attrs["node_id"] if attrs.get("pod_id"): diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index f4dccdfe4..e0a1e8ba6 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -3,8 +3,7 @@ from django.templatetags.static import static from django.urls import reverse from diffsync.enum import DiffSyncFlags -from nautobot.dcim.models import Controller, Location -from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices +from nautobot.dcim.models import Controller, ControllerManagedDeviceGroup, Location from nautobot.extras.jobs import BooleanVar, Job, ObjectVar from nautobot_ssot.jobs.base import DataMapping, DataSource from nautobot_ssot.integrations.aci.diffsync.adapters.aci import AciAdapter @@ -62,18 +61,17 @@ def data_mappings(cls): DataMapping("VRF", None, "VRF", reverse("ipam:vrf_list")), ) + def verify_controller_managed_device_group(self): + """Validate that Controller Managed Device Group exists or create it.""" + ControllerManagedDeviceGroup.objects.get_or_create( + controller=self.apic, defaults={"name": f"{self.apic} Managed Devices"} + ) + def load_source_adapter(self): """Method to instantiate and load the ACI adapter into `self.source_adapter`.""" if not self.device_site: self.logger.info("Device Location is unspecified so will revert to specified Controller's Location.") - _sg = self.apic.external_integration.secrets_group - username = _sg.get_secret_value( - access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, - secret_type=SecretsGroupSecretTypeChoices.TYPE_USERNAME, - ) - password = _sg.get_secret_value( - access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, - secret_type=SecretsGroupSecretTypeChoices.TYPE_PASSWORD, + self.verify_controller_managed_device_group() ) client = AciApi( username=username, From 1127766f4bda2e539d0b26df53843e95952411f1 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 26 Jul 2024 17:15:49 -0500 Subject: [PATCH 19/49] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20Move=20c?= =?UTF-8?q?ode=20to=20get=20username/password=20from=20HTTP=20SecretsGroup?= =?UTF-8?q?=20to=20utility=20function.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This required moving logging import around for integration utils and the App config portion due to errors around Apps not installed yet. --- nautobot_ssot/__init__.py | 3 ++- nautobot_ssot/integrations/aci/jobs.py | 3 +++ nautobot_ssot/integrations/device42/jobs.py | 11 ++--------- nautobot_ssot/integrations/utils.py | 4 +++- nautobot_ssot/utils.py | 21 +++++++++++++++++++++ 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/nautobot_ssot/__init__.py b/nautobot_ssot/__init__.py index 6c7f6774b..66428fce5 100644 --- a/nautobot_ssot/__init__.py +++ b/nautobot_ssot/__init__.py @@ -1,5 +1,6 @@ """App declaration for nautobot_ssot.""" +import logging import os from importlib import metadata @@ -10,8 +11,8 @@ import packaging from nautobot_ssot.integrations.utils import each_enabled_integration_module -from nautobot_ssot.utils import logger +logger = logging.getLogger("nautobot.ssot") __version__ = metadata.version(__name__) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index e0a1e8ba6..8405d87db 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -9,6 +9,7 @@ from nautobot_ssot.integrations.aci.diffsync.adapters.aci import AciAdapter from nautobot_ssot.integrations.aci.diffsync.adapters.nautobot import NautobotAdapter from nautobot_ssot.integrations.aci.diffsync.client import AciApi +from nautobot_ssot.utils import get_username_password_https_from_secretsgroup name = "Cisco ACI SSoT" # pylint: disable=invalid-name, abstract-method @@ -72,6 +73,8 @@ def load_source_adapter(self): if not self.device_site: self.logger.info("Device Location is unspecified so will revert to specified Controller's Location.") self.verify_controller_managed_device_group() + username, password = get_username_password_https_from_secretsgroup( + group=self.apic.external_integration.secrets_group ) client = AciApi( username=username, diff --git a/nautobot_ssot/integrations/device42/jobs.py b/nautobot_ssot/integrations/device42/jobs.py index 28941e77b..32808625f 100644 --- a/nautobot_ssot/integrations/device42/jobs.py +++ b/nautobot_ssot/integrations/device42/jobs.py @@ -3,7 +3,6 @@ from django.templatetags.static import static from django.urls import reverse -from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices from nautobot.extras.models import ExternalIntegration from nautobot.extras.jobs import BooleanVar, ObjectVar from nautobot_ssot.jobs.base import DataMapping, DataSource @@ -11,6 +10,7 @@ from nautobot_ssot.integrations.device42.diffsync.adapters.device42 import Device42Adapter from nautobot_ssot.integrations.device42.diffsync.adapters.nautobot import NautobotAdapter from nautobot_ssot.integrations.device42.utils.device42 import Device42API +from nautobot_ssot.utils import get_username_password_https_from_secretsgroup name = "SSoT - Device42" # pylint: disable=invalid-name @@ -119,14 +119,7 @@ def load_source_adapter(self): if self.debug: self.logger.info("Connecting to Device42...") _sg = self.integration.secrets_group - username = _sg.get_secret_value( - access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, - secret_type=SecretsGroupSecretTypeChoices.TYPE_USERNAME, - ) - password = _sg.get_secret_value( - access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, - secret_type=SecretsGroupSecretTypeChoices.TYPE_PASSWORD, - ) + username, password = get_username_password_https_from_secretsgroup(group=_sg) client = Device42API( base_url=self.integration.remote_url, username=username, diff --git a/nautobot_ssot/integrations/utils.py b/nautobot_ssot/integrations/utils.py index 810e959ae..e5307d174 100644 --- a/nautobot_ssot/integrations/utils.py +++ b/nautobot_ssot/integrations/utils.py @@ -1,5 +1,7 @@ """Utility functions for nautobot_ssot integrations.""" +import logging + from importlib import import_module from pathlib import Path from types import ModuleType @@ -7,7 +9,7 @@ from django.conf import settings -from nautobot_ssot.utils import logger +logger = logging.getLogger("nautobot.ssot") def each_enabled_integration() -> Generator[str, None, None]: diff --git a/nautobot_ssot/utils.py b/nautobot_ssot/utils.py index 99bc3d094..f48e788fc 100644 --- a/nautobot_ssot/utils.py +++ b/nautobot_ssot/utils.py @@ -2,4 +2,25 @@ import logging +from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices +from nautobot.extras.models import SecretsGroup + + logger = logging.getLogger("nautobot.ssot") + + +def get_username_password_https_from_secretsgroup(group: SecretsGroup): + """Retrieve username and password from a HTTPS SecretsGroup. + + Args: + group (SecretsGroup): The SecretsGroup containing HTTPS access-types. + """ + username = group.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_USERNAME, + ) + password = group.get_secret_value( + access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, + secret_type=SecretsGroupSecretTypeChoices.TYPE_PASSWORD, + ) + return username, password From d6f187b77528b34fba7b6fe237738e309b673a4e Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 26 Jul 2024 17:43:18 -0500 Subject: [PATCH 20/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Update=20SSoT=20ChatO?= =?UTF-8?q?ps=20command=20to=20use=20or=20request=20a=20Controller=20for?= =?UTF-8?q?=20the=20Job.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integrations/ipfabric/workers.py | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/workers.py b/nautobot_ssot/integrations/ipfabric/workers.py index c1281db8d..f8bb8ccc8 100644 --- a/nautobot_ssot/integrations/ipfabric/workers.py +++ b/nautobot_ssot/integrations/ipfabric/workers.py @@ -4,6 +4,7 @@ from django.contrib.contenttypes.models import ContentType from nautobot.core.settings_funcs import is_truthy +from nautobot.dcim.models import Controller from nautobot.extras.models import JobResult # pylint: disable-next=import-error @@ -34,6 +35,17 @@ def prompt_for_bool(dispatcher: Dispatcher, action_id: str, help_text: str): return False +def prompt_for_controller(dispatcher: Dispatcher, action_id: str, help_text: str, controllers=None, offset=0): + """Prompt the user to select a valid Controller from a drop-down menu.""" + if controllers is None: + controllers = Controller.objects.all().order_by("name") + if not controllers: + dispatcher.send_error("No Controllers were found.") + return (CommandStatusChoices.STATUS_FAILED, "No Controllers found.") + choices = [(f"{controller.name}: {controller.name}", controller.name) for controller in controllers] + return dispatcher.prompt_from_menu(action_id, help_text, choices, offset=offset) + + # def prompt_for_site(dispatcher: Dispatcher, action_id: str, help_text: str, sites=None, offset=0): # """Prompt the user to select a valid site from a drop-down menu.""" # if sites is None: @@ -58,25 +70,32 @@ def ipfabric(subcommand, **kwargs): @subcommand_of("ipfabric") def ssot_sync_to_nautobot( dispatcher, + controller=None, dry_run=None, safe_delete_mode=None, sync_ipfabric_tagged_only=None, ): """Start an SSoT sync from IPFabric to Nautobot.""" + if controller is None: + prompt_for_controller(dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot", "Which APIC should we synchronize with?") + return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") + if dry_run is None: - prompt_for_bool(dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot", "Do you want to run a `Dry Run`?") + prompt_for_bool(dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot {controller}", "Do you want to run a `Dry Run`?") return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") if safe_delete_mode is None: prompt_for_bool( - dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot {dry_run}", "Do you want to run in `Safe Delete Mode`?" + dispatcher, + f"{BASE_CMD} ssot-sync-to-nautobot {controller} {dry_run}", + "Do you want to run in `Safe Delete Mode`?", ) return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") if sync_ipfabric_tagged_only is None: prompt_for_bool( dispatcher, - f"{BASE_CMD} ssot-sync-to-nautobot {dry_run} {safe_delete_mode}", + f"{BASE_CMD} ssot-sync-to-nautobot {controller} {dry_run} {safe_delete_mode}", "Do you want to sync against `ssot-tagged-from-ipfabric` tagged objects only?", ) return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") @@ -110,6 +129,7 @@ def ssot_sync_to_nautobot( ) sync_job.run( + controller=controller, dryrun=is_truthy(dry_run), memory_profiling=False, safe_delete_mode=is_truthy(safe_delete_mode), From f3f3f339d9f1479f089c84f3242edf717b7c8978 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Fri, 26 Jul 2024 17:43:34 -0500 Subject: [PATCH 21/49] =?UTF-8?q?test:=20=F0=9F=9A=A8=20Address=20various?= =?UTF-8?q?=20linter=20complaints.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 2 +- nautobot_ssot/integrations/device42/jobs.py | 32 +++++++++------------ nautobot_ssot/integrations/ipfabric/jobs.py | 2 +- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index 8405d87db..e4d73f8d7 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -14,7 +14,7 @@ name = "Cisco ACI SSoT" # pylint: disable=invalid-name, abstract-method -class AciDataSource(DataSource, Job): # pylint: disable=abstract-method +class AciDataSource(DataSource, Job): # pylint: disable=abstract-method, too-many-instance-attributes """ACI SSoT Data Source.""" apic = ObjectVar( diff --git a/nautobot_ssot/integrations/device42/jobs.py b/nautobot_ssot/integrations/device42/jobs.py index 32808625f..25e0de267 100644 --- a/nautobot_ssot/integrations/device42/jobs.py +++ b/nautobot_ssot/integrations/device42/jobs.py @@ -47,68 +47,64 @@ def data_mappings(cls): """List describing the data mappings involved in this DataSource.""" return ( DataMapping( - "Buildings", f"{cls.integration.remote_url}admin/rackraj/building/", "Sites", reverse("dcim:site_list") + "Buildings", "/admin/rackraj/building/", "Sites", reverse("dcim:site_list") ), DataMapping( "Rooms", - f"{cls.integration.remote_url}admin/rackraj/room/", + "/admin/rackraj/room/", "Rack Groups", reverse("dcim:rackgroup_list"), ), - DataMapping( - "Racks", f"{cls.integration.remote_url}admin/rackraj/rack/", "Racks", reverse("dcim:rack_list") - ), + DataMapping("Racks", "/admin/rackraj/rack/", "Racks", reverse("dcim:rack_list")), DataMapping( "Vendors", - f"{cls.integration.remote_url}admin/rackraj/organisation/", + "/admin/rackraj/organisation/", "Manufacturers", reverse("dcim:manufacturer_list"), ), DataMapping( "Hardware Models", - f"{cls.integration.remote_url}admin/rackraj/hardware/", + "/admin/rackraj/hardware/", "Device Types", reverse("dcim:devicetype_list"), ), DataMapping( - "Devices", f"{cls.integration.remote_url}admin/rackraj/device/", "Devices", reverse("dcim:device_list") + "Devices", "/admin/rackraj/device/", "Devices", reverse("dcim:device_list") ), DataMapping( "Ports", - f"{cls.integration.remote_url}admin/rackraj/netport/", + "/admin/rackraj/netport/", "Interfaces", reverse("dcim:interface_list"), ), - DataMapping( - "Cables", f"{cls.integration.remote_url}admin/rackraj/cable/", "Cables", reverse("dcim:cable_list") - ), + DataMapping("Cables", "/admin/rackraj/cable/", "Cables", reverse("dcim:cable_list")), DataMapping( "VPC (VRF Groups)", - f"{cls.integration.remote_url}admin/rackraj/vrfgroup/", + "/admin/rackraj/vrfgroup/", "VRFs", reverse("ipam:vrf_list"), ), DataMapping( - "Subnets", f"{cls.integration.remote_url}admin/rackraj/vlan/", "Prefixes", reverse("ipam:prefix_list") + "Subnets", "/admin/rackraj/vlan/", "Prefixes", reverse("ipam:prefix_list") ), DataMapping( "IP Addresses", - f"{cls.integration.remote_url}admin/rackraj/ip_address/", + "/admin/rackraj/ip_address/", "IP Addresses", reverse("ipam:ipaddress_list"), ), DataMapping( - "VLANs", f"{cls.integration.remote_url}admin/rackraj/switch_vlan/", "VLANs", reverse("ipam:vlan_list") + "VLANs", "/admin/rackraj/switch_vlan/", "VLANs", reverse("ipam:vlan_list") ), DataMapping( "Vendors", - f"{cls.integration.remote_url}admin/rackraj/organisation/", + "/admin/rackraj/organisation/", "Providers", reverse("circuits:provider_list"), ), DataMapping( "Telco Circuits", - f"{cls.integration.remote_url}admin/rackraj/circuit/", + "/admin/rackraj/circuit/", "Circuits", reverse("circuits:circuit_list"), ), diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 715b9f33c..180a5e0f4 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -171,7 +171,7 @@ def _get_vars(cls): got_vars = super()._get_vars() if cls.client is None: - cls.client = cls._init_ipf_client() + cls.client = cls._init_ipf_client() # pylint: disable=no-value-for-parameter else: cls.client.update() From 80a843017deb584815bda555c90039cdeacfceda Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:01:48 -0500 Subject: [PATCH 22/49] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20Move=20C?= =?UTF-8?q?ontrollerManagedDeviceGroup=20validation=20to=20utility=20funct?= =?UTF-8?q?ion=20and=20update=20ACI=20integration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 12 +++--------- nautobot_ssot/utils.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index e4d73f8d7..036966586 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -3,13 +3,13 @@ from django.templatetags.static import static from django.urls import reverse from diffsync.enum import DiffSyncFlags -from nautobot.dcim.models import Controller, ControllerManagedDeviceGroup, Location +from nautobot.dcim.models import Controller, Location from nautobot.extras.jobs import BooleanVar, Job, ObjectVar from nautobot_ssot.jobs.base import DataMapping, DataSource from nautobot_ssot.integrations.aci.diffsync.adapters.aci import AciAdapter from nautobot_ssot.integrations.aci.diffsync.adapters.nautobot import NautobotAdapter from nautobot_ssot.integrations.aci.diffsync.client import AciApi -from nautobot_ssot.utils import get_username_password_https_from_secretsgroup +from nautobot_ssot.utils import get_username_password_https_from_secretsgroup, verify_controller_managed_device_group name = "Cisco ACI SSoT" # pylint: disable=invalid-name, abstract-method @@ -62,17 +62,11 @@ def data_mappings(cls): DataMapping("VRF", None, "VRF", reverse("ipam:vrf_list")), ) - def verify_controller_managed_device_group(self): - """Validate that Controller Managed Device Group exists or create it.""" - ControllerManagedDeviceGroup.objects.get_or_create( - controller=self.apic, defaults={"name": f"{self.apic} Managed Devices"} - ) - def load_source_adapter(self): """Method to instantiate and load the ACI adapter into `self.source_adapter`.""" if not self.device_site: self.logger.info("Device Location is unspecified so will revert to specified Controller's Location.") - self.verify_controller_managed_device_group() + verify_controller_managed_device_group(controller=self.apic) username, password = get_username_password_https_from_secretsgroup( group=self.apic.external_integration.secrets_group ) diff --git a/nautobot_ssot/utils.py b/nautobot_ssot/utils.py index f48e788fc..72f32ad0c 100644 --- a/nautobot_ssot/utils.py +++ b/nautobot_ssot/utils.py @@ -2,6 +2,7 @@ import logging +from nautobot.dcim.models import Controller, ControllerManagedDeviceGroup from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices from nautobot.extras.models import SecretsGroup @@ -24,3 +25,17 @@ def get_username_password_https_from_secretsgroup(group: SecretsGroup): secret_type=SecretsGroupSecretTypeChoices.TYPE_PASSWORD, ) return username, password + + +def verify_controller_managed_device_group(controller: Controller) -> ControllerManagedDeviceGroup: + """Validate that Controller Managed Device Group exists or create it. + + Args: + controller (Controller): Controller for associated ManagedDeviceGroup. + + Returns: + ControllerManagedDeviceGroup: The ControllerManagedDeviceGroup that was either found or created for the Controller. + """ + return ControllerManagedDeviceGroup.objects.get_or_create( + controller=controller, defaults={"name": f"{controller.name} Managed Devices"} + )[0] From 4433ec9c109b3caace0472936224520bdb3e3a7b Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:39:45 -0500 Subject: [PATCH 23/49] style: Add help text to device_site Job var. --- nautobot_ssot/integrations/aci/jobs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index 036966586..83b7e383c 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -30,6 +30,7 @@ class AciDataSource(DataSource, Job): # pylint: disable=abstract-method, too-ma display_field="name", required=False, label="Device(s) Location", + help_text="New devices will be placed into this location.", ) debug = BooleanVar(description="Enable for verbose debug logging.") From 2db18d1d7889782ddf9b6d2e978540ce38f93816 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:40:16 -0500 Subject: [PATCH 24/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Correct=20remote=5F?= =?UTF-8?q?url=20and=20verify=5Fssl=20to=20come=20from=20ExternalIntegrati?= =?UTF-8?q?on=20on=20Controller.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index 83b7e383c..e1dc589a7 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -74,8 +74,8 @@ def load_source_adapter(self): client = AciApi( username=username, password=password, - base_uri=self.apic.remote_url, - verify=self.apic.verify_ssl, + base_uri=self.apic.external_integration.remote_url, + verify=self.apic.external_integration.verify_ssl, site=self.device_site.name if self.device_site else self.apic.location.name, ) self.source_adapter = AciAdapter( From 9da9a20185121741190b3a858f77ff1c8b37dc63 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:11:37 -0500 Subject: [PATCH 25/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Correct=20errors=20?= =?UTF-8?q?caused=20by=20rebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- development/nautobot_config.py | 15 ++--- .../device42/diffsync/models/nautobot/ipam.py | 63 +------------------ .../unit/test_models_nautobot_ipam.py | 10 +-- 3 files changed, 15 insertions(+), 73 deletions(-) diff --git a/development/nautobot_config.py b/development/nautobot_config.py index 44ce7402f..30b889d26 100644 --- a/development/nautobot_config.py +++ b/development/nautobot_config.py @@ -185,13 +185,14 @@ "atl01": "Atlanta", }, "aristacv_verify": is_truthy(os.getenv("NAUTOBOT_ARISTACV_VERIFY", "true")), - "enable_aci": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ACI", "false")), - "enable_aristacv": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ARISTACV", "false")), - "enable_device42": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_DEVICE42", "false")), - "enable_infoblox": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_INFOBLOX", "false")), - "enable_ipfabric": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_IPFABRIC", "false")), - "enable_servicenow": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_SERVICENOW", "false")), - "hide_example_jobs": is_truthy(os.getenv("NAUTOBOT_SSOT_HIDE_EXAMPLE_JOBS", "true")), + "enable_aci": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ACI")), + "enable_aristacv": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ARISTACV")), + "enable_device42": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_DEVICE42")), + "enable_infoblox": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_INFOBLOX")), + "enable_ipfabric": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_IPFABRIC")), + "enable_itential": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ITENTIAL")), + "enable_servicenow": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_SERVICENOW")), + "hide_example_jobs": is_truthy(os.getenv("NAUTOBOT_SSOT_HIDE_EXAMPLE_JOBS")), "device42_defaults": { "site_status": "Active", "rack_status": "Active", diff --git a/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py b/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py index 29bc8cf04..c7ff6b762 100644 --- a/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py +++ b/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py @@ -1,6 +1,7 @@ """DiffSyncModel IPAM subclasses for Nautobot Device42 data sync.""" import re + from django.forms import ValidationError from nautobot.dcim.models import Interface as OrmInterface from nautobot.extras.models import Status as OrmStatus @@ -10,6 +11,7 @@ from nautobot.ipam.models import IPAddressToInterface from nautobot.ipam.models import Namespace as OrmNamespace from nautobot.ipam.models import Prefix as OrmPrefix + from nautobot_ssot.integrations.device42.constant import PLUGIN_CFG from nautobot_ssot.integrations.device42.diffsync.models.base.ipam import VLAN, IPAddress, Subnet, VRFGroup from nautobot_ssot.integrations.device42.utils import nautobot @@ -19,13 +21,11 @@ class NautobotVRFGroup(VRFGroup): """Nautobot VRFGroup model.""" @classmethod - def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create VRF object in Nautobot.""" _namespace = OrmNamespace.objects.get_or_create(name=ids["name"], description=attrs["description"])[0] _vrf = OrmVRF(name=ids["name"], description=attrs["description"], namespace=_namespace) adapter.job.logger.info(f"Creating VRF {_vrf.name}.") - adapter.job.logger.info(f"Creating VRF {_vrf.name}.") _vrf.validated_save() # for every VRF we want to create a Namespace to ensure duplicate subnets can function. if attrs.get("tags"): @@ -36,15 +36,11 @@ def create(cls, adapter, ids, attrs): adapter.vrf_map[ids["name"]] = _vrf.id adapter.namespace_map[ids["name"]] = _namespace.id return super().create(ids=ids, adapter=adapter, attrs=attrs) - adapter.vrf_map[ids["name"]] = _vrf.id - adapter.namespace_map[ids["name"]] = _namespace.id - return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update VRF object in Nautobot.""" _vrf = OrmVRF.objects.get(id=self.uuid) self.adapter.job.logger.info(f"Updating VRF {_vrf.name}.") - self.adapter.job.logger.info(f"Updating VRF {_vrf.name}.") if "description" in attrs: _vrf.description = attrs["description"] if "tags" in attrs: @@ -68,10 +64,8 @@ def delete(self): if PLUGIN_CFG.get("device42_delete_on_sync"): super().delete() self.adapter.job.logger.info(f"VRF {self.name} will be deleted.") - self.adapter.job.logger.info(f"VRF {self.name} will be deleted.") vrf = OrmVRF.objects.get(id=self.uuid) self.adapter.objects_to_delete["vrf"].append(vrf) # pylint: disable=protected-access - self.adapter.objects_to_delete["vrf"].append(vrf) # pylint: disable=protected-access return self @@ -79,7 +73,6 @@ class NautobotSubnet(Subnet): """Nautobot Subnet model.""" @classmethod - def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create Prefix object in Nautobot.""" prefix = f"{ids['network']}/{ids['mask_bits']}" @@ -88,17 +81,13 @@ def create(cls, adapter, ids, attrs): description=attrs["description"], namespace_id=adapter.namespace_map[ids["vrf"]] if ids["vrf"] in adapter.namespace_map else "Global", status_id=adapter.status_map["Active"], - namespace_id=adapter.namespace_map[ids["vrf"]] if ids["vrf"] in adapter.namespace_map else "Global", - status_id=adapter.status_map["Active"], ) _pf.validated_save() if ids["mask_bits"] == 0: _pf.type = "container" adapter.job.logger.info(f"Creating Prefix {prefix} in VRF {ids['vrf']}.") - adapter.job.logger.info(f"Creating Prefix {prefix} in VRF {ids['vrf']}.") if ids.get("vrf"): _pf.vrfs.add(adapter.vrf_map[ids["vrf"]]) - _pf.vrfs.add(adapter.vrf_map[ids["vrf"]]) if attrs.get("tags"): _pf.tags.set(attrs["tags"]) if attrs.get("custom_fields"): @@ -108,16 +97,11 @@ def create(cls, adapter, ids, attrs): adapter.prefix_map[ids["vrf"]] = {} adapter.prefix_map[ids["vrf"]][prefix] = _pf.id return super().create(ids=ids, adapter=adapter, attrs=attrs) - if ids["vrf"] not in adapter.prefix_map: - adapter.prefix_map[ids["vrf"]] = {} - adapter.prefix_map[ids["vrf"]][prefix] = _pf.id - return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update Prefix object in Nautobot.""" _pf = OrmPrefix.objects.get(id=self.uuid) self.adapter.job.logger.info(f"Updating Prefix {_pf.prefix}.") - self.adapter.job.logger.info(f"Updating Prefix {_pf.prefix}.") if "description" in attrs: _pf.description = attrs["description"] if "tags" in attrs: @@ -143,8 +127,6 @@ def delete(self): subnet = OrmPrefix.objects.get(id=self.uuid) self.adapter.job.logger.info(f"Prefix {subnet.prefix} will be deleted.") self.adapter.objects_to_delete["subnet"].append(subnet) # pylint: disable=protected-access - self.adapter.job.logger.info(f"Prefix {subnet.prefix} will be deleted.") - self.adapter.objects_to_delete["subnet"].append(subnet) # pylint: disable=protected-access return self @@ -152,7 +134,6 @@ class NautobotIPAddress(IPAddress): """Nautobot IP Address model.""" @classmethod - def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create IP Address object in Nautobot.""" _address = ids["address"] @@ -161,21 +142,17 @@ def create(cls, adapter, ids, attrs): prefix=ids["subnet"], namespace=OrmNamespace.objects.get(name=attrs["namespace"]) ) except OrmPrefix.DoesNotExist: - adapter.job.logger.error(f"Unable to find prefix {ids['subnet']} to create IPAddress {_address} for.") adapter.job.logger.error(f"Unable to find prefix {ids['subnet']} to create IPAddress {_address} for.") return None _ip = OrmIPAddress( address=_address, parent_id=prefix.id, status_id=adapter.status_map["Active"] if not attrs.get("available") else adapter.status_map["Reserved"], - status_id=adapter.status_map["Active"] if not attrs.get("available") else adapter.status_map["Reserved"], description=attrs["label"] if attrs.get("label") else "", ) _ip.validated_save() if attrs.get("device") and attrs.get("interface"): try: - adapter.job.logger.info(f"Creating IPAddress {_address}.") - intf = adapter.port_map[attrs["device"]][attrs["interface"]] adapter.job.logger.info(f"Creating IPAddress {_address}.") intf = adapter.port_map[attrs["device"]][attrs["interface"]] assign_ip = IPAddressToInterface.objects.create(ip_address=_ip, interface_id=intf, vm_interface=None) @@ -187,7 +164,6 @@ def create(cls, adapter, ids, attrs): assign_ip.interface.device.primary_ip6 = _ip assign_ip.interface.device.validated_save() except KeyError: - adapter.job.logger.debug( adapter.job.logger.debug( f"Unable to find Interface {attrs['interface']} for {attrs['device']}.", ) @@ -203,18 +179,12 @@ def create(cls, adapter, ids, attrs): adapter.ipaddr_map[attrs["namespace"]] = {} adapter.ipaddr_map[attrs["namespace"]][_address] = _ip.id return super().create(ids=ids, adapter=adapter, attrs=attrs) - if attrs["namespace"] not in adapter.ipaddr_map: - adapter.ipaddr_map[attrs["namespace"]] = {} - adapter.ipaddr_map[attrs["namespace"]][_address] = _ip.id - return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update IPAddress object in Nautobot.""" try: _ipaddr = OrmIPAddress.objects.get(id=self.uuid) except OrmIPAddress.DoesNotExist: - if self.adapter.job.debug: - self.adapter.job.logger.debug( if self.adapter.job.debug: self.adapter.job.logger.debug( "IP Address passed to update but can't be found. This shouldn't happen. Why is this happening?!?!" @@ -240,9 +210,7 @@ def update(self, attrs): _ipaddr.validated_save() except ValidationError as err: self.adapter.job.logger.warning(f"Failure updating Device & Interface for {_ipaddr.address}. {err}") - self.adapter.job.logger.warning(f"Failure updating Device & Interface for {_ipaddr.address}. {err}") except OrmInterface.DoesNotExist as err: - self.adapter.job.logger.warning( self.adapter.job.logger.warning( f"Unable to find Interface {attrs['interface']} for {attrs['device']}. {err}" ) @@ -254,7 +222,6 @@ def update(self, attrs): ) assign_ip.validated_save() except OrmInterface.DoesNotExist as err: - self.adapter.job.logger.debug( self.adapter.job.logger.debug( f"Unable to find Interface {attrs['interface'] if attrs.get('interface') else self.interface} for {attrs['device']} {err}" ) @@ -262,25 +229,19 @@ def update(self, attrs): try: OrmInterface.objects.get(name=attrs["interface"], device__name=self.device) except OrmInterface.DoesNotExist: - for port in self.adapter.objects_to_create["ports"]: - if port.name == attrs["interface"] and port.device_id == self.adapter.device_map[self.device]: for port in self.adapter.objects_to_create["ports"]: if port.name == attrs["interface"] and port.device_id == self.adapter.device_map[self.device]: try: port.validated_save() except ValidationError as err: - self.adapter.job.logger.warning( self.adapter.job.logger.warning( f"Failure saving port {port.name} for IPAddress {_ipaddr.address}. {err}" ) try: - if attrs.get("device") and attrs["device"] in self.adapter.port_map: - intf = self.adapter.port_map[attrs["device"]][attrs["interface"]] if attrs.get("device") and attrs["device"] in self.adapter.port_map: intf = self.adapter.port_map[attrs["device"]][attrs["interface"]] else: intf = self.adapter.port_map[self.device][attrs["interface"]] - intf = self.adapter.port_map[self.device][attrs["interface"]] assign_ip = IPAddressToInterface.objects.create( ip_address=_ipaddr, interface_id=intf, vm_interface=None ) @@ -289,9 +250,7 @@ def update(self, attrs): _ipaddr.validated_save() except ValidationError as err: self.adapter.job.logger.warning(f"Failure updating Interface for {_ipaddr.address}. {err}") - self.adapter.job.logger.warning(f"Failure updating Interface for {_ipaddr.address}. {err}") except KeyError as err: - self.adapter.job.logger.debug( self.adapter.job.logger.debug( f"Unable to find Interface {attrs['interface']} for {attrs['device'] if attrs.get('device') else self.device}. {err}" ) @@ -313,7 +272,6 @@ def update(self, attrs): ip_to_intf.interface.device.primary_ip6 = _ipaddr ip_to_intf.interface.device.validated_save() else: - self.adapter.job.logger.warning( self.adapter.job.logger.warning( f"IPAddress {_ipaddr.address} is showing unassigned from an Interface so can't be marked primary." ) @@ -328,7 +286,6 @@ def update(self, attrs): _ipaddr.validated_save() return super().update(attrs) except ValidationError as err: - self.adapter.job.logger.warning(f"Unable to update IP Address {self.address} with {attrs}. {err}") self.adapter.job.logger.warning(f"Unable to update IP Address {self.address} with {attrs}. {err}") return None @@ -337,16 +294,13 @@ def delete(self): Because IPAddress has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot - The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): super().delete() self.adapter.job.logger.info(f"IP Address {self.address} will be deleted.") - self.adapter.job.logger.info(f"IP Address {self.address} will be deleted.") ipaddr = OrmIPAddress.objects.get(id=self.uuid) self.adapter.objects_to_delete["ipaddr"].append(ipaddr) # pylint: disable=protected-access - self.adapter.objects_to_delete["ipaddr"].append(ipaddr) # pylint: disable=protected-access return self @@ -354,7 +308,6 @@ class NautobotVLAN(VLAN): """Nautobot VLAN model.""" @classmethod - def create(cls, adapter, ids, attrs): def create(cls, adapter, ids, attrs): """Create VLAN object in Nautobot.""" _site_name = None @@ -363,13 +316,9 @@ def create(cls, adapter, ids, attrs): else: _site_name = "Global" adapter.job.logger.info(f"Creating VLAN {ids['vlan_id']} {attrs['name']} for {_site_name}") - adapter.job.logger.info(f"Creating VLAN {ids['vlan_id']} {attrs['name']} for {_site_name}") new_vlan = OrmVLAN( name=attrs["name"], vid=ids["vlan_id"], - location_id=( - adapter.site_map[_site_name] if _site_name in adapter.site_map and _site_name != "Global" else None - ), status_id=adapter.status_map["Active"], description=attrs["description"], ) @@ -385,15 +334,10 @@ def create(cls, adapter, ids, attrs): adapter.vlan_map[_site_name] = {} adapter.vlan_map[_site_name][ids["vlan_id"]] = new_vlan.id return super().create(ids=ids, adapter=adapter, attrs=attrs) - if _site_name not in adapter.vlan_map: - adapter.vlan_map[_site_name] = {} - adapter.vlan_map[_site_name][ids["vlan_id"]] = new_vlan.id - return super().create(ids=ids, adapter=adapter, attrs=attrs) def update(self, attrs): """Update VLAN object in Nautobot.""" _vlan = OrmVLAN.objects.get(id=self.uuid) - self.adapter.job.logger.info( self.adapter.job.logger.info( f"Updating VLAN {_vlan.name} {_vlan.vid} for {_vlan.location.name if _vlan.location else 'Global'}." ) @@ -416,14 +360,11 @@ def delete(self): Because VLAN has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot - The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): super().delete() self.adapter.job.logger.info(f"VLAN {self.name} {self.vlan_id} {self.building} will be deleted.") - self.adapter.job.logger.info(f"VLAN {self.name} {self.vlan_id} {self.building} will be deleted.") vlan = OrmVLAN.objects.get(id=self.uuid) self.adapter.objects_to_delete["vlan"].append(vlan) # pylint: disable=protected-access - self.adapter.objects_to_delete["vlan"].append(vlan) # pylint: disable=protected-access return self diff --git a/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py b/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py index 583bbc1f6..8f29fcb30 100644 --- a/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py +++ b/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py @@ -74,10 +74,10 @@ def test_update_clear_tags(self): self.assertEqual(list(self.vrf.tags.names()), []) @patch( - "nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.PLUGIN_CFG", + "nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.PLUGIN_CFG", {"device42_delete_on_sync": True}, ) - @patch("nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.OrmVRF.objects.get") + @patch("nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.OrmVRF.objects.get") def test_delete(self, mock_vrf): """Validate the NautobotVRFGroup delete() deletes a VRF.""" vrf_group = ipam.NautobotVRFGroup( @@ -160,10 +160,10 @@ def test_update(self): self.assertEqual(actual, test_pf) @patch( - "nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.PLUGIN_CFG", + "nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.PLUGIN_CFG", {"device42_delete_on_sync": True}, ) - @patch("nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.OrmPrefix.objects.get") + @patch("nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.OrmPrefix.objects.get") def test_delete(self, mock_subnet): """Validate the NautobotVRFGroup delete() deletes a Prefix.""" test_pf = ipam.NautobotSubnet( @@ -392,7 +392,7 @@ def test_update_changing_custom_fields(self): self.addr.refresh_from_db() self.assertEqual(self.addr.custom_field_data["New_CF"], "Test") - @patch("nautobot_ssot.integrations.device42.adapter.models.nautobot.ipam.OrmIPAddress.objects.get") + @patch("nautobot_ssot.integrations.device42.diffsync.models.nautobot.ipam.OrmIPAddress.objects.get") def test_update_handling_validation_error(self, mock_ip_get): """Validate how the NautobotIPAddress.update() handles a ValidationError.""" mock_ip = MagicMock() From fbd0695500ebaf8e3d8e86a21463daf4e6609a5f Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:12:55 -0500 Subject: [PATCH 26/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20ACI=20signals?= =?UTF-8?q?=20to=20only=20try=20to=20iterate=20through=20APICs=20if=20they?= =?UTF-8?q?'re=20defined.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the issue where Nautobot won't start if ACI integration is enabled but no APICs are defined. --- nautobot_ssot/integrations/aci/signals.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/nautobot_ssot/integrations/aci/signals.py b/nautobot_ssot/integrations/aci/signals.py index a29bf8333..ec61ffee9 100644 --- a/nautobot_ssot/integrations/aci/signals.py +++ b/nautobot_ssot/integrations/aci/signals.py @@ -39,12 +39,13 @@ def aci_create_tag(apps, **kwargs): color=PLUGIN_CFG.get("tag_down_color"), ) apics = PLUGIN_CFG.get("apics") - for key in apics: - if ("SITE" in key or "STAGE" in key) and not tag.objects.filter(name=apics[key]).exists(): - tag.objects.update_or_create( - name=apics[key], - color="".join([random.choice("ABCDEF0123456789") for i in range(6)]), # nosec - ) + if apics: + for key in apics: + if ("SITE" in key or "STAGE" in key) and not tag.objects.filter(name=apics[key]).exists(): + tag.objects.update_or_create( + name=apics[key], + color="".join([random.choice("ABCDEF0123456789") for i in range(6)]), # nosec + ) def aci_create_manufacturer(apps, **kwargs): @@ -69,10 +70,11 @@ def aci_create_site(apps, **kwargs): loc_type.content_types.add(ContentType.objects.get_for_model(Device)) loc_type.content_types.add(ContentType.objects.get_for_model(Prefix)) active_status = status.objects.update_or_create(name="Active")[0] - for key in apics: - if "SITE" in key: - logger.info(f"Creating Site: {apics[key]}") - Site.objects.update_or_create(name=apics[key], location_type=loc_type, status=active_status) + if apics: + for key in apics: + if "SITE" in key: + logger.info(f"Creating Site: {apics[key]}") + Site.objects.update_or_create(name=apics[key], location_type=loc_type, status=active_status) def device_custom_fields(apps, **kwargs): From e69216aed286faf33c066876e6a557e544a28ed7 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:13:32 -0500 Subject: [PATCH 27/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Correct=20ObjectVar?= =?UTF-8?q?=20to=20use=20description=20instead=20of=20help=5Ftext.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index e1dc589a7..67aef0acd 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -30,7 +30,7 @@ class AciDataSource(DataSource, Job): # pylint: disable=abstract-method, too-ma display_field="name", required=False, label="Device(s) Location", - help_text="New devices will be placed into this location.", + description="New devices will be placed into this location.", ) debug = BooleanVar(description="Enable for verbose debug logging.") From fdd9b3c6c301a6e56963df3499945fba5a48ee53 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:15:43 -0500 Subject: [PATCH 28/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Move=20client=20ini?= =?UTF-8?q?tialization=20to=20dunder=20init=20as=20init=5Fipf=5Fclient=20n?= =?UTF-8?q?ow=20requires=20self=20to=20be=20passed=20for=20the=20Controlle?= =?UTF-8?q?r.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/jobs.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 180a5e0f4..132bbc393 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -145,6 +145,14 @@ class Meta: "dryrun", ) + def __init__(self): + """Initialize client upon Job load.""" + super().__init__() + if self.client is None: + self.client = self._init_ipf_client() # pylint: disable=no-value-for-parameter + else: + self.client.update() + def _init_ipf_client(self): token = self.controller.external_integration.secrets_group.get_secret_value( access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, @@ -170,11 +178,6 @@ def _get_vars(cls): """ got_vars = super()._get_vars() - if cls.client is None: - cls.client = cls._init_ipf_client() # pylint: disable=no-value-for-parameter - else: - cls.client.update() - formatted_snapshots = get_formatted_snapshots(cls.client) if formatted_snapshots: default_choice = formatted_snapshots["$last"][::-1] From 8eddb26b0a9ee9f25cf2d1d68a6806a144c923a2 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:16:12 -0500 Subject: [PATCH 29/49] =?UTF-8?q?style:=20=F0=9F=9A=A8=20Sort=20imports?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 5 +++-- nautobot_ssot/integrations/ipfabric/jobs.py | 11 ++++++----- .../tests/device42/unit/test_models_nautobot_ipam.py | 6 ++++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index 67aef0acd..9929a9537 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -1,14 +1,15 @@ """Jobs for ACI SSoT app.""" +from diffsync.enum import DiffSyncFlags from django.templatetags.static import static from django.urls import reverse -from diffsync.enum import DiffSyncFlags from nautobot.dcim.models import Controller, Location from nautobot.extras.jobs import BooleanVar, Job, ObjectVar -from nautobot_ssot.jobs.base import DataMapping, DataSource + from nautobot_ssot.integrations.aci.diffsync.adapters.aci import AciAdapter from nautobot_ssot.integrations.aci.diffsync.adapters.nautobot import NautobotAdapter from nautobot_ssot.integrations.aci.diffsync.client import AciApi +from nautobot_ssot.jobs.base import DataMapping, DataSource from nautobot_ssot.utils import get_username_password_https_from_secretsgroup, verify_controller_managed_device_group name = "Cisco ACI SSoT" # pylint: disable=invalid-name, abstract-method diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 132bbc393..1c6f9d58f 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -2,26 +2,27 @@ # pylint: disable=too-few-public-methods # pylint: disable=too-many-locals """IP Fabric Data Target Job.""" + import os import uuid + from diffsync.enum import DiffSyncFlags from diffsync.exceptions import ObjectNotCreated from django.templatetags.static import static from django.urls import reverse from httpx import ConnectError from ipfabric import IPFClient +from nautobot.core.forms import DynamicModelChoiceField from nautobot.dcim.models import Controller, Location from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices -from nautobot.extras.jobs import BooleanVar, ScriptVariable, ChoiceVar, ObjectVar -from nautobot.core.forms import DynamicModelChoiceField -from nautobot_ssot.jobs.base import DataMapping, DataSource +from nautobot.extras.jobs import BooleanVar, ChoiceVar, ObjectVar, ScriptVariable +from nautobot_ssot.integrations.ipfabric import constants from nautobot_ssot.integrations.ipfabric.diffsync.adapter_ipfabric import IPFabricDiffSync from nautobot_ssot.integrations.ipfabric.diffsync.adapter_nautobot import NautobotDiffSync from nautobot_ssot.integrations.ipfabric.diffsync.adapters_shared import DiffSyncModelAdapters from nautobot_ssot.integrations.ipfabric.diffsync.diffsync_models import DiffSyncExtras -from nautobot_ssot.integrations.ipfabric import constants - +from nautobot_ssot.jobs.base import DataMapping, DataSource LAST = "$last" PREV = "$prev" diff --git a/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py b/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py index 8f29fcb30..30e78884c 100644 --- a/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py +++ b/nautobot_ssot/tests/device42/unit/test_models_nautobot_ipam.py @@ -1,13 +1,15 @@ """Test Adapter IPAM models for Nautobot.""" from unittest.mock import MagicMock, patch + +from diffsync import Adapter from django.contrib.contenttypes.models import ContentType from django.forms import ValidationError -from diffsync import Adapter from nautobot.core.testing import TransactionTestCase from nautobot.dcim.models import Device, DeviceType, Interface, Location, LocationType, Manufacturer, Platform from nautobot.extras.models import Role, Status -from nautobot.ipam.models import IPAddress, IPAddressToInterface, Namespace, Prefix, VLAN, VRF +from nautobot.ipam.models import VLAN, VRF, IPAddress, IPAddressToInterface, Namespace, Prefix + from nautobot_ssot.integrations.device42.diffsync.models.nautobot import ipam From 4b9cb2da7eb659f103ff78747c50faf963379acd Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:35:21 -0500 Subject: [PATCH 30/49] style: Change ordering of Job vars so Controller is first selection. --- nautobot_ssot/integrations/ipfabric/jobs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 1c6f9d58f..1be42372a 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -140,7 +140,9 @@ class Meta: description = "Sync data from IP Fabric into Nautobot." field_order = ( "debug", + "controller", "snapshot", + "location_filter", "safe_delete_mode", "sync_ipfabric_tagged_only", "dryrun", From ba32ca7e5bea1769b23fa3cab504575c58159537 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:35:58 -0500 Subject: [PATCH 31/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Add=20check=20for?= =?UTF-8?q?=20existing=20ControllerManagedDeviceGroup=20on=20selected=20Co?= =?UTF-8?q?ntroller.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/jobs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 1be42372a..022c8376e 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -23,6 +23,7 @@ from nautobot_ssot.integrations.ipfabric.diffsync.adapters_shared import DiffSyncModelAdapters from nautobot_ssot.integrations.ipfabric.diffsync.diffsync_models import DiffSyncExtras from nautobot_ssot.jobs.base import DataMapping, DataSource +from nautobot_ssot.utils import verify_controller_managed_device_group LAST = "$last" PREV = "$prev" @@ -245,6 +246,7 @@ def run( ): """Run the job.""" self.controller = controller + verify_controller_managed_device_group(controller=self.controller) self.kwargs = { "snapshot": snapshot, "dryrun": dryrun, From 05f2ff5774ac0fe070596b744179b89f55a80a2f Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:37:29 -0500 Subject: [PATCH 32/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Add=20controller=5Fgr?= =?UTF-8?q?oup=20attribute=20to=20Device=20DiffSyncModel=20to=20connect=20?= =?UTF-8?q?imported=20Devices=20to=20group.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integrations/ipfabric/diffsync/adapter_ipfabric.py | 2 ++ .../integrations/ipfabric/diffsync/adapter_nautobot.py | 3 +++ .../integrations/ipfabric/diffsync/diffsync_models.py | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py index dd715f98d..203e90313 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py @@ -170,6 +170,7 @@ def load(self): # pylint: disable=too-many-locals,too-many-statements sn_length = len(serial_number) args = base_args.copy() args["name"] = device_name + args["controller_group"] = self.job.controller.controller_managed_device_group.name args["serial_number"] = serial_number if sn_length < device_serial_max_length else "" member_devices = [args] else: @@ -198,6 +199,7 @@ def load(self): # pylint: disable=too-many-locals,too-many-statements else: args["name"] = f"{device_name}-member{member_field}" args["vc_master"] = False + args["controller_group"] = self.job.controller.controller_managed_device_group.name member_devices.append(args) device_primary_ip = device["loginIp"] diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py index 628559d67..976399d9a 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py @@ -136,6 +136,9 @@ def load_device(self, filtered_devices: List, location): vendor=str(device_record.device_type.manufacturer), status=device_record.status.name, serial_number=device_record.serial if device_record.serial else "", + controller_group=device_record.controller_managed_device_group.name + if device_record.controller_managed_device_group + else "", ) if device_record.platform: device.platform = device_record.platform.name diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py index 8cb899c47..47ee94132 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py @@ -180,6 +180,7 @@ class Device(DiffSyncExtras): _modelname = "device" _identifiers = ("name",) _attributes = ( + "controller_group", "location_name", "model", "vendor", @@ -206,6 +207,7 @@ class Device(DiffSyncExtras): vc_priority: Optional[int] = None vc_position: Optional[int] = None vc_master: Optional[bool] = None + controller_group: str mgmt_address: Optional[str] = None @@ -313,6 +315,9 @@ def create(cls, adapter, ids, attrs): device_type=device_type_object, role=device_role_object, location=location_object, + controller_managed_device_group=ControllerManagedDeviceGroup.objects.get( + name=attrs["controller_group"] + ), defaults={"platform": platform_object}, ) except NautobotDevice.MultipleObjectsReturned: @@ -383,6 +388,10 @@ def update(self, attrs): self.adapter.job.logger.error(f"Unable to find a Device with the name {self.name} to update") else: return_super = True + if attrs.get("controller_group"): + _device.controller_managed_device_group = ControllerManagedDeviceGroup.objects.get( + name=attrs["controller_group"] + ) if attrs.get("status") == "Active": safe_delete_tag, _ = Tag.objects.get_or_create(name="SSoT Safe Delete") if not _device.status == "Active": From c5bdb439150f6d7f691151625084e84dc7ef2ebf Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:38:54 -0500 Subject: [PATCH 33/49] =?UTF-8?q?style:=20=F0=9F=9A=A8=20Sort=20imports=20?= =?UTF-8?q?with=20ruff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ipfabric/diffsync/adapter_ipfabric.py | 7 ++--- .../ipfabric/diffsync/adapter_nautobot.py | 12 ++++---- .../ipfabric/diffsync/diffsync_models.py | 30 +++++++++++-------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py index 203e90313..d7ea3fe30 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py @@ -8,20 +8,19 @@ from diffsync import ObjectAlreadyExists from nautobot.dcim.models import Device from nautobot.ipam.models import VLAN -from netutils.mac import mac_to_format from netutils.interface import canonical_interface_name +from netutils.mac import mac_to_format from nautobot_ssot.integrations.ipfabric.constants import ( - DEFAULT_INTERFACE_MTU, - DEFAULT_INTERFACE_MAC, DEFAULT_DEVICE_ROLE, DEFAULT_DEVICE_STATUS, + DEFAULT_INTERFACE_MAC, + DEFAULT_INTERFACE_MTU, IP_FABRIC_USE_CANONICAL_INTERFACE_NAME, ) from nautobot_ssot.integrations.ipfabric.diffsync import DiffSyncModelAdapters from nautobot_ssot.integrations.ipfabric.utilities import utils as ipfabric_utils - logger = logging.getLogger("nautobot.jobs") device_serial_max_length = Device._meta.get_field("serial").max_length diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py index 976399d9a..aaeb498fa 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py @@ -2,27 +2,27 @@ # pylint: disable=too-many-arguments # Load method is packed with conditionals # pylint: disable=too-many-branches """DiffSync adapter class for Nautobot as source-of-truth.""" + +import logging from collections import defaultdict from typing import Any, ClassVar, List, Optional -import logging from diffsync import Adapter from diffsync.exceptions import ObjectAlreadyExists from django.db import IntegrityError, transaction from django.db.models import ProtectedError, Q +from nautobot.core.choices import ColorChoices from nautobot.dcim.models import Device, Location from nautobot.extras.models import Tag from nautobot.ipam.models import VLAN, Interface -from nautobot.core.choices import ColorChoices -from netutils.mac import mac_to_format from netutils.ip import cidr_to_netmask - -from nautobot_ssot.integrations.ipfabric.diffsync import DiffSyncModelAdapters +from netutils.mac import mac_to_format from nautobot_ssot.integrations.ipfabric.constants import ( - DEFAULT_INTERFACE_MTU, DEFAULT_INTERFACE_MAC, + DEFAULT_INTERFACE_MTU, ) +from nautobot_ssot.integrations.ipfabric.diffsync import DiffSyncModelAdapters logger = logging.getLogger("nautobot.ssot.ipfabric") diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py index 47ee94132..04a7d87d8 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py @@ -3,29 +3,35 @@ # Ignore too many args # pylint:disable=too-many-locals """DiffSyncModel subclasses for Nautobot-to-IPFabric data sync.""" +import logging from typing import Any, ClassVar, List, Optional from uuid import UUID -import logging - -from netutils.ip import netmask_to_cidr from diffsync import DiffSyncModel from django.core.exceptions import ValidationError from django.db import Error as DjangoBaseDBError from django.db.models import Q +from nautobot.core.choices import ColorChoices from nautobot.dcim.models import ( - Device as NautobotDevice, + ControllerManagedDeviceGroup, DeviceType, - Interface as NautobotInterface, - Location as NautobotLocation, Manufacturer, VirtualChassis, ) +from nautobot.dcim.models import ( + Device as NautobotDevice, +) +from nautobot.dcim.models import ( + Interface as NautobotInterface, +) +from nautobot.dcim.models import ( + Location as NautobotLocation, +) from nautobot.extras.models import Role, Tag from nautobot.extras.models.statuses import Status from nautobot.ipam.models import VLAN, IPAddress -from nautobot.core.choices import ColorChoices -from nautobot_ssot.integrations.ipfabric.constants import LAST_SYNCHRONIZED_CF_NAME +from netutils.ip import netmask_to_cidr + import nautobot_ssot.integrations.ipfabric.utilities.nbutils as tonb_nbutils from nautobot_ssot.integrations.ipfabric.constants import ( DEFAULT_DEVICE_ROLE, @@ -33,13 +39,13 @@ DEFAULT_DEVICE_STATUS, DEFAULT_DEVICE_STATUS_COLOR, DEFAULT_INTERFACE_MAC, - SAFE_DELETE_LOCATION_STATUS, + LAST_SYNCHRONIZED_CF_NAME, SAFE_DELETE_DEVICE_STATUS, SAFE_DELETE_IPADDRESS_STATUS, + SAFE_DELETE_LOCATION_STATUS, SAFE_DELETE_VLAN_STATUS, ) - logger = logging.getLogger(__name__) @@ -61,9 +67,7 @@ def safe_delete(self, nautobot_object: Any, safe_delete_status: Optional[str] = logger.warning(f"{nautobot_object} will be deleted as safe delete mode is not enabled.") # This allows private class naming of nautobot objects to be ordered for delete() # Example definition in adapter class var: _site = Location - self.adapter.objects_to_delete[f"_{nautobot_object.__class__.__name__.lower()}"].append( - nautobot_object - ) # pylint: disable=protected-access + self.adapter.objects_to_delete[f"_{nautobot_object.__class__.__name__.lower()}"].append(nautobot_object) # pylint: disable=protected-access super().delete() else: if safe_delete_status: From c98e15ab61faa3c78fd5bbf2c06f9862f3424b22 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:27:02 -0500 Subject: [PATCH 34/49] =?UTF-8?q?style:=20=F0=9F=9A=A8=20Formatting=20for?= =?UTF-8?q?=20black?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integrations/aci/diffsync/adapters/aci.py | 1 - .../aristacv/utils/cloudvision.py | 1 + .../ipfabric/diffsync/adapter_nautobot.py | 8 +- .../ipfabric/diffsync/diffsync_models.py | 4 +- .../ipfabric/utilities/nbutils.py | 1 + .../integrations/ipfabric/workers.py | 1 + .../third_party/pysnow/attachment.py | 20 +-- .../servicenow/third_party/pysnow/client.py | 20 +-- .../third_party/pysnow/criterion.py | 118 +++++------------- .../servicenow/third_party/pysnow/enums.py | 48 ++----- .../third_party/pysnow/legacy_exceptions.py | 4 +- .../third_party/pysnow/legacy_request.py | 52 +++----- .../third_party/pysnow/oauth_client.py | 23 +--- .../third_party/pysnow/params_builder.py | 4 +- .../third_party/pysnow/query_builder.py | 42 ++----- .../servicenow/third_party/pysnow/request.py | 20 +-- .../servicenow/third_party/pysnow/resource.py | 27 +--- .../servicenow/third_party/pysnow/response.py | 22 +--- .../third_party/pysnow/url_builder.py | 13 +- .../0009_ssotconfig_ssotinfobloxconfig.py | 1 - .../migrations/0010_automationgatewaymodel.py | 1 - .../tests/infoblox/test_infoblox_models.py | 1 + nautobot_ssot/tests/infoblox/test_models.py | 1 + .../tests/infoblox/test_nautobot_models.py | 1 + 24 files changed, 118 insertions(+), 316 deletions(-) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py index 7fc33a15e..9427187c4 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py @@ -2,7 +2,6 @@ # pylint: disable=duplicate-code - import logging import os import re diff --git a/nautobot_ssot/integrations/aristacv/utils/cloudvision.py b/nautobot_ssot/integrations/aristacv/utils/cloudvision.py index 5b4eb250f..bde720aa0 100644 --- a/nautobot_ssot/integrations/aristacv/utils/cloudvision.py +++ b/nautobot_ssot/integrations/aristacv/utils/cloudvision.py @@ -1,5 +1,6 @@ # pylint: disable=invalid-name, no-member """Utility functions for CloudVision Resource API.""" + import ssl from datetime import datetime from typing import Any, Iterable, List, Optional, Tuple, Union diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py index aaeb498fa..a5c7958be 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py @@ -136,9 +136,11 @@ def load_device(self, filtered_devices: List, location): vendor=str(device_record.device_type.manufacturer), status=device_record.status.name, serial_number=device_record.serial if device_record.serial else "", - controller_group=device_record.controller_managed_device_group.name - if device_record.controller_managed_device_group - else "", + controller_group=( + device_record.controller_managed_device_group.name + if device_record.controller_managed_device_group + else "" + ), ) if device_record.platform: device.platform = device_record.platform.name diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py index 04a7d87d8..828b66536 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py @@ -67,7 +67,9 @@ def safe_delete(self, nautobot_object: Any, safe_delete_status: Optional[str] = logger.warning(f"{nautobot_object} will be deleted as safe delete mode is not enabled.") # This allows private class naming of nautobot objects to be ordered for delete() # Example definition in adapter class var: _site = Location - self.adapter.objects_to_delete[f"_{nautobot_object.__class__.__name__.lower()}"].append(nautobot_object) # pylint: disable=protected-access + self.adapter.objects_to_delete[f"_{nautobot_object.__class__.__name__.lower()}"].append( + nautobot_object + ) # pylint: disable=protected-access super().delete() else: if safe_delete_status: diff --git a/nautobot_ssot/integrations/ipfabric/utilities/nbutils.py b/nautobot_ssot/integrations/ipfabric/utilities/nbutils.py index 913c1ca98..39c2ba3aa 100644 --- a/nautobot_ssot/integrations/ipfabric/utilities/nbutils.py +++ b/nautobot_ssot/integrations/ipfabric/utilities/nbutils.py @@ -1,5 +1,6 @@ # pylint: disable=duplicate-code """Utility functions for Nautobot ORM.""" + import datetime import logging from typing import Any, Optional diff --git a/nautobot_ssot/integrations/ipfabric/workers.py b/nautobot_ssot/integrations/ipfabric/workers.py index f8bb8ccc8..9e8d4f230 100644 --- a/nautobot_ssot/integrations/ipfabric/workers.py +++ b/nautobot_ssot/integrations/ipfabric/workers.py @@ -1,5 +1,6 @@ # Disable dispatcher from chatops unused. # pylint: disable=unused-argument """Chat Ops Worker.""" + import uuid from django.contrib.contenttypes.models import ContentType diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/attachment.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/attachment.py index d97927d42..e927a3256 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/attachment.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/attachment.py @@ -37,13 +37,9 @@ def get(self, sys_id=None, limit=100): """ if sys_id: - return self.resource.get( - query={"table_sys_id": sys_id, "table_name": self.table_name} - ).all() + return self.resource.get(query={"table_sys_id": sys_id, "table_name": self.table_name}).all() - return self.resource.get( - query={"table_name": self.table_name}, limit=limit - ).all() + return self.resource.get(query={"table_name": self.table_name}, limit=limit).all() def upload(self, sys_id, file_path, name=None, multipart=False): """Attaches a new file to the provided record @@ -63,9 +59,7 @@ def upload(self, sys_id, file_path, name=None, multipart=False): if name is None: name = os.path.basename(file_path) - resource.parameters.add_custom( - {"table_name": self.table_name, "table_sys_id": sys_id, "file_name": name} - ) + resource.parameters.add_custom({"table_name": self.table_name, "table_sys_id": sys_id, "file_name": name}) data = open(file_path, "rb").read() headers = {} @@ -74,14 +68,10 @@ def upload(self, sys_id, file_path, name=None, multipart=False): headers["Content-Type"] = "multipart/form-data" path_append = "/upload" else: - headers["Content-Type"] = ( - magic.from_file(file_path, mime=True) if HAS_MAGIC else "text/plain" - ) + headers["Content-Type"] = magic.from_file(file_path, mime=True) if HAS_MAGIC else "text/plain" path_append = "/file" - return resource.request( - method="POST", data=data, headers=headers, path_append=path_append - ) + return resource.request(method="POST", data=data, headers=headers, path_append=path_append) def delete(self, sys_id): """Deletes the provided attachment record diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/client.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/client.py index 938b4ccaa..084895cff 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/client.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/client.py @@ -43,11 +43,8 @@ def __init__( use_ssl=True, session=None, ): - if (host and instance) is not None: - raise InvalidUsage( - "Arguments 'instance' and 'host' are mutually exclusive, you cannot use both." - ) + raise InvalidUsage("Arguments 'instance' and 'host' are mutually exclusive, you cannot use both.") if type(use_ssl) is not bool: raise InvalidUsage("Argument 'use_ssl' must be of type bool") @@ -56,8 +53,7 @@ def __init__( self.raise_on_empty = True elif type(raise_on_empty) is bool: warnings.warn( - "The use of the `raise_on_empty` argument is deprecated and will be removed in a " - "future release.", + "The use of the `raise_on_empty` argument is deprecated and will be removed in a " "future release.", DeprecationWarning, ) @@ -70,13 +66,9 @@ def __init__( if not isinstance(self, pysnow.OAuthClient): if not (user and password) and not session: - raise InvalidUsage( - "You must supply either username and password or a session object" - ) + raise InvalidUsage("You must supply either username and password or a session object") elif (user and session) is not None: - raise InvalidUsage( - "Provide either username and password or a session, not both." - ) + raise InvalidUsage("Provide either username and password or a session, not both.") self.parameters = ParamsBuilder() @@ -160,7 +152,7 @@ def _legacy_request(self, method, table, **kwargs): session=self.session, instance=self.instance, base_url=self.base_url, - **kwargs + **kwargs, ) def resource(self, api_path=None, base_path="/api/now", chunk_size=None, **kwargs): @@ -186,7 +178,7 @@ def resource(self, api_path=None, base_path="/api/now", chunk_size=None, **kwarg chunk_size=chunk_size or 8192, session=self.session, base_url=self.base_url, - **kwargs + **kwargs, ) def query(self, table, **kwargs): diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/criterion.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/criterion.py index 318aa1999..2f6f2061d 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/criterion.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/criterion.py @@ -21,27 +21,18 @@ def wrap_constant(value, types, list_type=False): return ListValueWrapper(value, types) else: caller = inspect.currentframe().f_back.f_code.co_name - raise QueryTypeError( - "Expected value to be a list of type %s, not %s" - % (types, type(value)) - ) + raise QueryTypeError("Expected value to be a list of type %s, not %s" % (types, type(value))) else: caller = inspect.currentframe().f_back.f_code.co_name - raise QueryTypeError( - "Invalid type passed to %s() , expected list or tuple" % (caller) - ) - elif isinstance(value, ValueWrapper) and ( - value.type_ in types or (value.type_ == list and list_type) - ): + raise QueryTypeError("Invalid type passed to %s() , expected list or tuple" % (caller)) + elif isinstance(value, ValueWrapper) and (value.type_ in types or (value.type_ == list and list_type)): return value # allow other types than datetime, as long as they have strftime elif hasattr(value, "strftime") and datetime in types: return DateTimeValueWrapper(value) elif not type(value) in types: caller = inspect.currentframe().f_back.f_code.co_name - raise QueryTypeError( - "Invalid type passed to %s() , expected: %s" % (caller, types) - ) + raise QueryTypeError("Invalid type passed to %s() , expected: %s" % (caller, types)) elif isinstance(value, int): return IntValueWrapper(value) elif isinstance(value, str): @@ -84,9 +75,7 @@ def between(self, lower, upper): ) def starts_with(self, other): - return BasicCriterion( - "STARTSWITH", self, self.wrap_constant(other, types=[str]) - ) + return BasicCriterion("STARTSWITH", self, self.wrap_constant(other, types=[str])) def ends_with(self, other): return BasicCriterion("ENDSWITH", self, self.wrap_constant(other, types=[str])) @@ -104,14 +93,10 @@ def not_like(self, other): return BasicCriterion("NOT LIKE", self, self.wrap_constant(other, types=[str])) def is_in(self, other): - return BasicCriterion( - "IN", self, self.wrap_constant(other, types=[int, str], list_type=True) - ) + return BasicCriterion("IN", self, self.wrap_constant(other, types=[int, str], list_type=True)) def not_in(self, other): - return BasicCriterion( - "NOT IN", self, self.wrap_constant(other, types=[int, str], list_type=True) - ) + return BasicCriterion("NOT IN", self, self.wrap_constant(other, types=[int, str], list_type=True)) def is_anything(self, other): return IsAnythingCriterion(self) @@ -123,45 +108,29 @@ def is_different(self, other): return BasicCriterion("NSAMEAS", self, self.wrap_constant(other, types=[Field])) def __eq__(self, other): - return BasicCriterion( - Equality.eq, self, self.wrap_constant(other, types=[int, str]) - ) + return BasicCriterion(Equality.eq, self, self.wrap_constant(other, types=[int, str])) def __ne__(self, other): - return BasicCriterion( - Equality.ne, self, self.wrap_constant(other, types=[int, str]) - ) + return BasicCriterion(Equality.ne, self, self.wrap_constant(other, types=[int, str])) def __gt__(self, other): - return BasicCriterion( - Equality.gt, self, self.wrap_constant(other, types=[int, datetime]) - ) + return BasicCriterion(Equality.gt, self, self.wrap_constant(other, types=[int, datetime])) def __ge__(self, other): - return BasicCriterion( - Equality.gte, self, self.wrap_constant(other, types=[int, datetime]) - ) + return BasicCriterion(Equality.gte, self, self.wrap_constant(other, types=[int, datetime])) def __lt__(self, other): - return BasicCriterion( - Equality.lt, self, self.wrap_constant(other, types=[int, datetime]) - ) + return BasicCriterion(Equality.lt, self, self.wrap_constant(other, types=[int, datetime])) def __le__(self, other): - return BasicCriterion( - Equality.lte, self, self.wrap_constant(other, types=[int, datetime]) - ) + return BasicCriterion(Equality.lte, self, self.wrap_constant(other, types=[int, datetime])) # DateTime only def on(self, other): - return DateTimeOnCriterion( - self, self.wrap_constant(other, types=[datetime, DateTimeOn]) - ) + return DateTimeOnCriterion(self, self.wrap_constant(other, types=[datetime, DateTimeOn])) def not_on(self, other): - return DateTimeNotOnCriterion( - self, self.wrap_constant(other, types=[datetime, DateTimeOn]) - ) + return DateTimeNotOnCriterion(self, self.wrap_constant(other, types=[datetime, DateTimeOn])) # End DateTime only @@ -193,7 +162,7 @@ def __or__(self, other): def __xor__(self, other): """ - While not really an XOR operation, this allows us to use Python's bitwise operators + While not really an XOR operation, this allows us to use Python's bitwise operators """ return BasicCriterion(Boolean.nq_, self, other) @@ -312,13 +281,9 @@ def get_query(self, **kwargs): start = self.start.get_query(**kwargs) end = self.end.get_query(**kwargs) - if isinstance(self.start, DateTimeValueWrapper) and isinstance( - self.end, DateTimeValueWrapper - ): + if isinstance(self.start, DateTimeValueWrapper) and isinstance(self.end, DateTimeValueWrapper): dt_between = "%s@%s" % (start, end) - elif isinstance(self.start, IntValueWrapper) and isinstance( - self.end, IntValueWrapper - ): + elif isinstance(self.start, IntValueWrapper) and isinstance(self.end, IntValueWrapper): dt_between = "%d@%d" % (start, end) else: raise QueryTypeError( @@ -356,9 +321,7 @@ def __init__(self, term, criteria): def get_query(self, **kwargs): term = self.term.get_query(**kwargs) if isinstance(self.criteria, DateTimeOn): - return "{term}NOTON{criteria}".format( - term=term, criteria=self.criteria.value - ) + return "{term}NOTON{criteria}".format(term=term, criteria=self.criteria.value) else: return "{term}NOTONcustom@{start}@{end}".format( term=term, @@ -376,20 +339,15 @@ def __init__(self, term, direction): def get_query(self, **kwargs): term = self.term.get_query(**kwargs) if self.direction == Order.asc or ( - isinstance(self.direction, six.string_types) - and self.direction.lower() == "asc" + isinstance(self.direction, six.string_types) and self.direction.lower() == "asc" ): return "ORDERBY{term}".format(term=term) elif self.direction == Order.desc or ( - isinstance(self.direction, six.string_types) - and self.direction.lower() == "desc" + isinstance(self.direction, six.string_types) and self.direction.lower() == "desc" ): return "ORDERBYDESC{term}".format(term=term) else: - raise QueryTypeError( - "Expected 'asc', 'desc', or an instance of Order, not %s" - % (type(self.direction)) - ) + raise QueryTypeError("Expected 'asc', 'desc', or an instance of Order, not %s" % (type(self.direction))) class ValueWrapper(Term): @@ -406,9 +364,7 @@ def get_query(self, **kwargs): if isinstance(self.value, int): return self.value else: - raise QueryTypeError( - "Expected value to be an instance of `int`, not %s" % type(self.value) - ) + raise QueryTypeError("Expected value to be an instance of `int`, not %s" % type(self.value)) class StringValueWrapper(ValueWrapper): @@ -420,9 +376,7 @@ def get_query(self, **kwargs): if isinstance(self.value, six.string_types): return self.value else: - raise QueryTypeError( - "Expected value to be an instance of `str`, not %s" % type(self.value) - ) + raise QueryTypeError("Expected value to be an instance of `str`, not %s" % type(self.value)) class DateTimeValueWrapper(ValueWrapper): @@ -443,10 +397,7 @@ def get_query(self, date_only=False, extra_param=None, **kwargs): return 'javascript:gs.dateGenerate("{}")'.format(value) else: - raise QueryTypeError( - "Expected value to be an instance of `datetime`, not %s" - % type(self.value) - ) + raise QueryTypeError("Expected value to be an instance of `datetime`, not %s" % type(self.value)) class ListValueWrapper(ValueWrapper): @@ -456,15 +407,10 @@ def __init__(self, value, types): self.types = types def get_query(self, **kwargs): - if isinstance(self.value, (list, tuple)) and all( - type(x) in self.types for x in self.value - ): + if isinstance(self.value, (list, tuple)) and all(type(x) in self.types for x in self.value): return ",".join(map(str, self.value)) else: - raise QueryTypeError( - "Expected value to be a list of type %s, not %s" - % (self.types, type(self.value)) - ) + raise QueryTypeError("Expected value to be a list of type %s, not %s" % (self.types, type(self.value))) class Field(Criterion): @@ -478,12 +424,12 @@ def get_query(self, **kwargs): class Table(object): """ - Allows the following: + Allows the following: - ``` - incident = Table(incident) - criterion = incident.company.eq('3dasd3') - ``` + ``` + incident = Table(incident) + criterion = incident.company.eq('3dasd3') + ``` """ # Could be used to automate resource creation? diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/enums.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/enums.py index a4614bb3d..2b76e137c 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/enums.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/enums.py @@ -28,30 +28,14 @@ class Boolean(Comparator): # Retrieved by inspecting the `ON` dropdown class DateTimeOn(Enum): today = "Today@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()" - yesterday = ( - "Yesterday@javascript:gs.beginningOfYesterday()@javascript:gs.endOfYesterday()" - ) - tomorrow = ( - "Tomorrow@javascript:gs.beginningOfTomorrow()@javascript:gs.endOfTomorrow()" - ) - this_week = ( - "This week@javascript:gs.beginningOfThisWeek()@javascript:gs.endOfThisWeek()" - ) - last_week = ( - "Last week@javascript:gs.beginningOfLastWeek()@javascript:gs.endOfLastWeek()" - ) - next_week = ( - "Next week@javascript:gs.beginningOfNextWeek()@javascript:gs.endOfNextWeek()" - ) - this_month = ( - "This month@javascript:gs.beginningOfThisMonth()@javascript:gs.endOfThisMonth()" - ) - last_month = ( - "Last month@javascript:gs.beginningOfLastMonth()@javascript:gs.endOfLastMonth()" - ) - next_month = ( - "Next month@javascript:gs.beginningOfNextMonth()@javascript:gs.endOfNextMonth()" - ) + yesterday = "Yesterday@javascript:gs.beginningOfYesterday()@javascript:gs.endOfYesterday()" + tomorrow = "Tomorrow@javascript:gs.beginningOfTomorrow()@javascript:gs.endOfTomorrow()" + this_week = "This week@javascript:gs.beginningOfThisWeek()@javascript:gs.endOfThisWeek()" + last_week = "Last week@javascript:gs.beginningOfLastWeek()@javascript:gs.endOfLastWeek()" + next_week = "Next week@javascript:gs.beginningOfNextWeek()@javascript:gs.endOfNextWeek()" + this_month = "This month@javascript:gs.beginningOfThisMonth()@javascript:gs.endOfThisMonth()" + last_month = "Last month@javascript:gs.beginningOfLastMonth()@javascript:gs.endOfLastMonth()" + next_month = "Next month@javascript:gs.beginningOfNextMonth()@javascript:gs.endOfNextMonth()" last_3_months = "Last 3 months@javascript:gs.beginningOfLast3Months()@javascript:gs.endOfLast3Months()" last_6_months = "Last 6 months@javascript:gs.beginningOfLast6Months()@javascript:gs.endOfLast6Months()" last_9_months = "Last 9 months@javascript:gs.beginningOfLast9Months()@javascript:gs.endOfLast9Months()" @@ -61,15 +45,9 @@ class DateTimeOn(Enum): last_2_quarters = "Last 2 quarters@javascript:gs.beginningOfLast2Quarters()@javascript:gs.endOfLast2Quarters()" next_quarter = "Next quarter@javascript:gs.beginningOfNextQuarter()@javascript:gs.endOfNextQuarter()" next_2_quarter = "Next 2 quarters@javascript:gs.beginningOfNext2Quarters()@javascript:gs.endOfNext2Quarters()" - this_year = ( - "This year@javascript:gs.beginningOfThisYear()@javascript:gs.endOfThisYear()" - ) - next_year = ( - "Next year@javascript:gs.beginningOfNextYear()@javascript:gs.endOfNextYear()" - ) - last_yesr = ( - "Last year@javascript:gs.beginningOfLastYear()@javascript:gs.endOfLastYear()" - ) + this_year = "This year@javascript:gs.beginningOfThisYear()@javascript:gs.endOfThisYear()" + next_year = "Next year@javascript:gs.beginningOfNextYear()@javascript:gs.endOfNextYear()" + last_yesr = "Last year@javascript:gs.beginningOfLastYear()@javascript:gs.endOfLastYear()" last_2_years = "Last 2 years@javascript:gs.beginningOfLast2Years()@javascript:gs.endOfLast2Years()" last_7_days = "Last 7 days@javascript:gs.beginningOfLast7Days()@javascript:gs.endOfLast7Days()" last_30_days = "Last 30 days@javascript:gs.beginningOfLast30Days()@javascript:gs.endOfLast30Days()" @@ -77,9 +55,7 @@ class DateTimeOn(Enum): last_90_days = "Last 90 days@javascript:gs.beginningOfLast90Days()@javascript:gs.endOfLast90Days()" last_120_days = "Last 120 days@javascript:gs.beginningOfLast120Days()@javascript:gs.endOfLast120Days()" this_hour = "Current hour@javascript:gs.beginningOfCurrentHour()@javascript:gs.endOfCurrentHour()" - last_hour = ( - "Last hour@javascript:gs.beginningOfLastHour()@javascript:gs.endOfLastHour()" - ) + last_hour = "Last hour@javascript:gs.beginningOfLastHour()@javascript:gs.endOfLastHour()" last_2_hours = "Last 2 hours@javascript:gs.beginningOfLast2Hours()@javascript:gs.endOfLast2Hours()" this_minute = "Current minute@javascript:gs.beginningOfCurrentMinute()@javascript:gs.endOfCurrentMinute()" last_minute = "Last minute@javascript:gs.beginningOfLastMinute()@javascript:gs.endOfLastMinute()" diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_exceptions.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_exceptions.py index 1d1f559f8..0fc9ef1a9 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_exceptions.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_exceptions.py @@ -51,9 +51,7 @@ class UnexpectedResponse(Exception): :param error_details: Details about the error """ - def __init__( - self, code_expected, code_actual, http_method, error_summary, error_details - ): + def __init__(self, code_expected, code_actual, http_method, error_summary, error_details): if code_expected == code_actual: message = "Unexpected response on HTTP %s from server: %s" % ( http_method, diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_request.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_request.py index 326317f9c..54bfd26ee 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_request.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/legacy_request.py @@ -55,20 +55,18 @@ def last_response(self): @last_response.setter def last_response(self, response): - """ Sets last_response property + """Sets last_response property :param response: `requests.request` response """ self._last_response = response @property def count(self): - """ Returns the number of records the query would yield""" + """Returns the number of records the query would yield""" self.request_params.update({"sysparm_count": True}) response = self.session.get( self._get_stats_url(), - params=self._get_formatted_query( - fields=list(), limit=None, order_by=list(), offset=None - ), + params=self._get_formatted_query(fields=list(), limit=None, order_by=list(), offset=None), ) content = self._get_content(response) @@ -123,9 +121,7 @@ def get_multiple(self, fields=list(), limit=None, order_by=list(), offset=None): :return: - Iterable chain object """ - return itertools.chain.from_iterable( - self._all_inner(fields, limit, order_by, offset) - ) + return itertools.chain.from_iterable(self._all_inner(fields, limit, order_by, offset)) def get_one(self, fields=list()): """Convenience function for queries returning only one result. Validates response before returning. @@ -138,9 +134,7 @@ def get_one(self, fields=list()): """ response = self.session.get( self._get_table_url(), - params=self._get_formatted_query( - fields, limit=None, order_by=list(), offset=None - ), + params=self._get_formatted_query(fields, limit=None, order_by=list(), offset=None), ) content = self._get_content(response) @@ -208,9 +202,7 @@ def update(self, payload): if not isinstance(payload, dict): raise InvalidUsage("Update payload must be of type dict") - response = self.session.put( - self._get_table_url(sys_id=result["sys_id"]), data=json.dumps(payload) - ) + response = self.session.put(self._get_table_url(sys_id=result["sys_id"]), data=json.dumps(payload)) return self._get_content(response) def clone(self, reset_fields=list()): @@ -258,9 +250,7 @@ def clone(self, reset_fields=list()): except UnexpectedResponse as e: if e.status_code == 403: # User likely attempted to clone a record without resetting a unique field - e.args = ( - "Unable to create clone. Make sure unique fields has been reset.", - ) + e.args = ("Unable to create clone. Make sure unique fields has been reset.",) raise def attach(self, file): @@ -278,16 +268,12 @@ def attach(self, file): if "sys_id" not in result: raise NoResults() except MultipleResults: - raise MultipleResults( - "Attaching a file to multiple records is not supported" - ) + raise MultipleResults("Attaching a file to multiple records is not supported") except NoResults: raise NoResults("Attempted to attach file to a non-existing record") if not os.path.isfile(file): - raise InvalidUsage( - "Attachment '%s' must be an existing regular file" % file - ) + raise InvalidUsage("Attachment '%s' must be an existing regular file" % file) response = self.session.post( self._get_attachment_url("upload"), @@ -348,9 +334,7 @@ def _get_content(self, response): server_error["details"], ) # It seems that Helsinki and later returns status 200 instead of 404 on empty result sets - if ( - "result" in content_json and len(content_json["result"]) == 0 - ) or response.status_code == 404: + if ("result" in content_json and len(content_json["result"]) == 0) or response.status_code == 404: if self.raise_on_empty is True: raise NoResults("Query yielded no results") elif "error" in content_json: @@ -363,9 +347,7 @@ def _get_content(self, response): ) if "result" not in content_json: - raise MissingResult( - "The request was successful but the content didn't contain the expected 'result'" - ) + raise MissingResult("The request was successful but the content didn't contain the expected 'result'") return content_json["result"] @@ -418,15 +400,11 @@ def _get_formatted_query(self, fields, limit, order_by, offset): if isinstance(self.query, QueryBuilder): sysparm_query = str(self.query) elif isinstance(self.query, dict): # Dict-type query - sysparm_query = "^".join( - ["%s=%s" % (k, v) for k, v in six.iteritems(self.query)] - ) + sysparm_query = "^".join(["%s=%s" % (k, v) for k, v in six.iteritems(self.query)]) elif isinstance(self.query, six.string_types): # String-type query sysparm_query = self.query else: - raise InvalidUsage( - "Query must be instance of %s, %s or %s" % (QueryBuilder, str, dict) - ) + raise InvalidUsage("Query must be instance of %s, %s or %s" % (QueryBuilder, str, dict)) for field in order_by: if field[0] == "-": @@ -438,9 +416,7 @@ def _get_formatted_query(self, fields, limit, order_by, offset): params.update(self.request_params) if limit is not None: - params.update( - {"sysparm_limit": limit, "sysparm_suppress_pagination_header": True} - ) + params.update({"sysparm_limit": limit, "sysparm_suppress_pagination_header": True}) if offset is not None: params.update({"sysparm_offset": offset}) diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/oauth_client.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/oauth_client.py index 2d231d5bf..87f4ae4fb 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/oauth_client.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/oauth_client.py @@ -24,10 +24,7 @@ class OAuthClient(Client): token = None - def __init__( - self, client_id=None, client_secret=None, token_updater=None, **kwargs - ): - + def __init__(self, client_id=None, client_secret=None, token_updater=None, **kwargs): if not (client_secret and client_id): raise InvalidUsage("You must supply a client_id and client_secret") @@ -88,11 +85,7 @@ def set_token(self, token): "expires_at", ] if not isinstance(token, dict) or not set(token) >= set(expected_keys): - raise InvalidUsage( - "Expected a token dictionary containing the following keys: {0}".format( - expected_keys - ) - ) + raise InvalidUsage("Expected a token dictionary containing the following keys: {0}".format(expected_keys)) # Set sanitized token self.token = dict((k, v) for k, v in token.items() if k in expected_keys) @@ -112,9 +105,7 @@ def _legacy_request(self, *args, **kwargs): self.session = self._get_oauth_session() return super(OAuthClient, self)._legacy_request(*args, **kwargs) - raise MissingToken( - "You must set_token() before creating a legacy request with OAuthClient" - ) + raise MissingToken("You must set_token() before creating a legacy request with OAuthClient") def resource(self, api_path=None, base_path="/api/now", chunk_size=None): """Overrides :meth:`resource` provided by :class:`pysnow.Client` with extras for OAuth @@ -132,9 +123,7 @@ def resource(self, api_path=None, base_path="/api/now", chunk_size=None): self.session = self._get_oauth_session() return super(OAuthClient, self).resource(api_path, base_path, chunk_size) - raise MissingToken( - "You must set_token() before creating a resource with OAuthClient" - ) + raise MissingToken("You must set_token() before creating a resource with OAuthClient") def generate_token(self, user, password): """Takes user and password credentials and generates a new token @@ -149,9 +138,7 @@ def generate_token(self, user, password): logger.debug("(TOKEN_CREATE) :: User: %s" % user) - session = OAuth2Session( - client=LegacyApplicationClient(client_id=self.client_id) - ) + session = OAuth2Session(client=LegacyApplicationClient(client_id=self.client_id)) try: return dict( diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/params_builder.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/params_builder.py index a84c68fed..4c6774cb2 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/params_builder.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/params_builder.py @@ -43,9 +43,7 @@ def stringify_query(query): # Regular string-type query return query else: - raise InvalidUsage( - "Query must be of type string, dict, QueryBuilder, or Criterion" - ) + raise InvalidUsage("Query must be of type string, dict, QueryBuilder, or Criterion") def add_custom(self, params): """Adds new custom parameter after making sure it's of type dict. diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/query_builder.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/query_builder.py index f285d4f24..2d7e0a85b 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/query_builder.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/query_builder.py @@ -100,9 +100,7 @@ def equals(self, data): elif isinstance(data, list): return self._add_condition("IN", ",".join(map(str, data)), types=[str]) - raise QueryTypeError( - "Expected value of type `str` or `list`, not %s" % type(data) - ) + raise QueryTypeError("Expected value of type `str` or `list`, not %s" % type(data)) def not_equals(self, data): """Adds new `NOT IN` or `!=` condition depending on if a list or string was provided @@ -117,9 +115,7 @@ def not_equals(self, data): elif isinstance(data, list): return self._add_condition("NOT IN", ",".join(data), types=[str]) - raise QueryTypeError( - "Expected value of type `str` or `list`, not %s" % type(data) - ) + raise QueryTypeError("Expected value of type `str` or `list`, not %s" % type(data)) def greater_than(self, greater_than): """Adds new `>` condition @@ -132,10 +128,7 @@ def greater_than(self, greater_than): if hasattr(greater_than, "strftime"): greater_than = datetime_as_utc(greater_than).strftime("%Y-%m-%d %H:%M:%S") elif isinstance(greater_than, six.string_types): - raise QueryTypeError( - "Expected value of type `int` or instance of `datetime`, not %s" - % type(greater_than) - ) + raise QueryTypeError("Expected value of type `int` or instance of `datetime`, not %s" % type(greater_than)) return self._add_condition(">", greater_than, types=[int, str]) @@ -150,10 +143,7 @@ def greater_than_or_equal(self, greater_than): if hasattr(greater_than, "strftime"): greater_than = datetime_as_utc(greater_than).strftime("%Y-%m-%d %H:%M:%S") elif isinstance(greater_than, six.string_types): - raise QueryTypeError( - "Expected value of type `int` or instance of `datetime`, not %s" - % type(greater_than) - ) + raise QueryTypeError("Expected value of type `int` or instance of `datetime`, not %s" % type(greater_than)) return self._add_condition(">=", greater_than, types=[int, str]) @@ -168,10 +158,7 @@ def less_than(self, less_than): if hasattr(less_than, "strftime"): less_than = datetime_as_utc(less_than).strftime("%Y-%m-%d %H:%M:%S") elif isinstance(less_than, six.string_types): - raise QueryTypeError( - "Expected value of type `int` or instance of `datetime`, not %s" - % type(less_than) - ) + raise QueryTypeError("Expected value of type `int` or instance of `datetime`, not %s" % type(less_than)) return self._add_condition("<", less_than, types=[int, str]) @@ -186,10 +173,7 @@ def less_than_or_equal(self, less_than): if hasattr(less_than, "strftime"): less_than = datetime_as_utc(less_than).strftime("%Y-%m-%d %H:%M:%S") elif isinstance(less_than, six.string_types): - raise QueryTypeError( - "Expected value of type `int` or instance of `datetime`, not %s" - % type(less_than) - ) + raise QueryTypeError("Expected value of type `int` or instance of `datetime`, not %s" % type(less_than)) return self._add_condition("<=", less_than, types=[int, str]) @@ -203,11 +187,7 @@ def between(self, start, end): """ if hasattr(start, "strftime") and hasattr(end, "strftime"): - dt_between = ( - 'javascript:gs.dateGenerate("%(start)s")' - "@" - 'javascript:gs.dateGenerate("%(end)s")' - ) % { + dt_between = ('javascript:gs.dateGenerate("%(start)s")' "@" 'javascript:gs.dateGenerate("%(end)s")') % { "start": start.strftime("%Y-%m-%d %H:%M:%S"), "end": end.strftime("%Y-%m-%d %H:%M:%S"), } @@ -250,9 +230,7 @@ def _add_condition(self, operator, operand, types): elif not type(operand) in types: caller = inspect.currentframe().f_back.f_code.co_name - raise QueryTypeError( - "Invalid type passed to %s() , expected: %s" % (caller, types) - ) + raise QueryTypeError("Invalid type passed to %s() , expected: %s" % (caller, types)) elif self.c_oper: raise QueryMultipleExpressions("Expected logical operator after expression") @@ -279,9 +257,7 @@ def _add_logical_operator(self, operator): """ if not self.c_oper: - raise QueryExpressionError( - "Logical operators must be preceded by an expression" - ) + raise QueryExpressionError("Logical operators must be preceded by an expression") self.current_field = None self.c_oper = None diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/request.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/request.py index 1054c9b15..b10178ee3 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/request.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/request.py @@ -49,19 +49,14 @@ def _get_response(self, method, **kwargs): params = self._parameters.as_dict() use_stream = kwargs.pop("stream", False) - logger.debug( - "(REQUEST_SEND) Method: %s, Resource: %s" % (method, self._resource) - ) + logger.debug("(REQUEST_SEND) Method: %s, Resource: %s" % (method, self._resource)) response = self._session.request( method, self._url, stream=use_stream, params=params, timeout=self._timeout, **kwargs ) response.raw.decode_content = True - logger.debug( - "(RESPONSE_RECEIVE) Code: %d, Resource: %s" - % (response.status_code, self._resource) - ) + logger.debug("(RESPONSE_RECEIVE) Code: %d, Resource: %s" % (response.status_code, self._resource)) return Response( response=response, @@ -75,8 +70,7 @@ def _get_custom_endpoint(self, value): value = value["value"] elif not isinstance(value, six.string_types): raise InvalidUsage( - "Argument 'path_append' must be a string in the following format: " - "/path-to-append[/.../...]" + "Argument 'path_append' must be a string in the following format: " "/path-to-append[/.../...]" ) segment = value if value.startswith("/") else "/{0}".format(value) @@ -103,13 +97,9 @@ def get(self, *args, **kwargs): if "display_value" in kwargs: self._parameters.display_value = kwargs.pop("display_value") if "exclude_reference_link" in kwargs: - self._parameters.exclude_reference_link = kwargs.pop( - "exclude_reference_link" - ) + self._parameters.exclude_reference_link = kwargs.pop("exclude_reference_link") if "suppress_pagination_header" in kwargs: - self._parameters.suppress_pagination_header = kwargs.pop( - "suppress_pagination_header" - ) + self._parameters.suppress_pagination_header = kwargs.pop("suppress_pagination_header") return self._get_response("GET", stream=kwargs.pop("stream", False)) diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/resource.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/resource.py index 1c8843435..aac5b607e 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/resource.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/resource.py @@ -23,10 +23,7 @@ class Resource(object): :param \*\*kwargs: Arguments to pass along to :class:`Request` """ - def __init__( - self, base_url=None, base_path=None, api_path=None, parameters=None, **kwargs - ): - + def __init__(self, base_url=None, base_path=None, api_path=None, parameters=None, **kwargs): self._base_url = base_url self._base_path = base_path self._api_path = api_path @@ -35,10 +32,7 @@ def __init__( self.kwargs = kwargs self.parameters = deepcopy(parameters) - logger.debug( - "(RESOURCE_ADD) Object: %s, chunk_size: %d" - % (self, kwargs.get("chunk_size")) - ) + logger.debug("(RESOURCE_ADD) Object: %s, chunk_size: %d" % (self, kwargs.get("chunk_size"))) def __repr__(self): return "<%s [%s] at %s>" % (self.__class__.__name__, self.path, hex(id(self))) @@ -55,15 +49,13 @@ def path(self): @property def attachments(self): """Provides an `Attachment` API for this resource. - Enables easy listing, deleting and creating new attachments. + Enables easy listing, deleting and creating new attachments. :return: Attachment object """ resource = copy(self) - resource._url_builder = URLBuilder( - self._base_url, self._base_path, "/attachment" - ) + resource._url_builder = URLBuilder(self._base_url, self._base_path, "/attachment") path = self._api_path.strip("/").split("/") @@ -81,12 +73,7 @@ def _request(self): parameters = copy(self.parameters) - return SnowRequest( - url_builder=self._url_builder, - parameters=parameters, - resource=self, - **self.kwargs - ) + return SnowRequest(url_builder=self._url_builder, parameters=parameters, resource=self, **self.kwargs) def get_record_link(self, sys_id): """Provides full URL to the provided sys_id @@ -159,6 +146,4 @@ def request(self, method, path_append=None, headers=None, **kwargs): - :class:`Response` object """ - return self._request.custom( - method, path_append=path_append, headers=headers, **kwargs - ) + return self._request.custom(method, path_append=path_append, headers=headers, **kwargs) diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/response.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/response.py index d7e951a01..d66c9b698 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/response.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/response.py @@ -71,9 +71,7 @@ def _parse_response(self): builder = ObjectBuilder() - for prefix, event, value in ijson.parse( - response.raw, buf_size=self._chunk_size - ): + for prefix, event, value in ijson.parse(response.raw, buf_size=self._chunk_size): if (prefix, event) == ("error", "start_map"): # Matched ServiceNow `error` object at the root has_error = True @@ -114,12 +112,8 @@ def _parse_response(self): if (has_result_single or has_result_many) and self.count == 0: # Results empty return - if not ( - has_result_single or has_result_many or has_error - ): # None of the expected keys were found - raise MissingResult( - "The expected `result` key was missing in the response. Cannot continue" - ) + if not (has_result_single or has_result_many or has_error): # None of the expected keys were found + raise MissingResult("The expected `result` key was missing in the response. Cannot continue") def _get_response(self): response = self._response @@ -129,11 +123,7 @@ def _get_response(self): if response.request.method == "GET" and response.status_code == 202: # GET request with a "202: no content" response: Raise NoContent Exception. - raise EmptyContent( - "Unexpected empty content in response for GET request: {}".format( - response.request.url - ) - ) + raise EmptyContent("Unexpected empty content in response for GET request: {}".format(response.request.url)) return response @@ -159,9 +149,7 @@ def _get_buffered_response(self): result = self._response.json().get("result", None) if result is None: - raise MissingResult( - "The expected `result` key was missing in the response. Cannot continue" - ) + raise MissingResult("The expected `result` key was missing in the response. Cannot continue") length = 0 diff --git a/nautobot_ssot/integrations/servicenow/third_party/pysnow/url_builder.py b/nautobot_ssot/integrations/servicenow/third_party/pysnow/url_builder.py index dd35d3111..b7464b4db 100644 --- a/nautobot_ssot/integrations/servicenow/third_party/pysnow/url_builder.py +++ b/nautobot_ssot/integrations/servicenow/third_party/pysnow/url_builder.py @@ -12,9 +12,7 @@ def __init__(self, base_url, base_path, api_path): self.api_path = api_path self.full_path = base_path + api_path - self._resource_url = "%(base_url)s%(full_path)s" % ( - {"base_url": base_url, "full_path": self.full_path} - ) + self._resource_url = "%(base_url)s%(full_path)s" % ({"base_url": base_url, "full_path": self.full_path}) @staticmethod def validate_path(path): @@ -25,13 +23,8 @@ def validate_path(path): :InvalidUsage: If validation fails. """ - if not isinstance(path, six.string_types) or not re.match( - "^/(?:[._a-zA-Z0-9-]/?)+[^/]$", path - ): - raise InvalidUsage( - "Path validation failed - Expected: '/[/component], got: %s" - % path - ) + if not isinstance(path, six.string_types) or not re.match("^/(?:[._a-zA-Z0-9-]/?)+[^/]$", path): + raise InvalidUsage("Path validation failed - Expected: '/[/component], got: %s" % path) return True diff --git a/nautobot_ssot/migrations/0009_ssotconfig_ssotinfobloxconfig.py b/nautobot_ssot/migrations/0009_ssotconfig_ssotinfobloxconfig.py index ae14c1560..fbcd5689b 100644 --- a/nautobot_ssot/migrations/0009_ssotconfig_ssotinfobloxconfig.py +++ b/nautobot_ssot/migrations/0009_ssotconfig_ssotinfobloxconfig.py @@ -10,7 +10,6 @@ class Migration(migrations.Migration): - dependencies = [ ("extras", "0102_set_null_objectchange_contenttype"), ("nautobot_ssot", "0008_auto_20240110_1019"), diff --git a/nautobot_ssot/migrations/0010_automationgatewaymodel.py b/nautobot_ssot/migrations/0010_automationgatewaymodel.py index d7f411d45..13e47cab7 100644 --- a/nautobot_ssot/migrations/0010_automationgatewaymodel.py +++ b/nautobot_ssot/migrations/0010_automationgatewaymodel.py @@ -9,7 +9,6 @@ class Migration(migrations.Migration): - dependencies = [ ("extras", "0102_set_null_objectchange_contenttype"), ("dcim", "0052_fix_interface_redundancy_group_created"), diff --git a/nautobot_ssot/tests/infoblox/test_infoblox_models.py b/nautobot_ssot/tests/infoblox/test_infoblox_models.py index c31d7e9d5..b55fe98aa 100644 --- a/nautobot_ssot/tests/infoblox/test_infoblox_models.py +++ b/nautobot_ssot/tests/infoblox/test_infoblox_models.py @@ -1,5 +1,6 @@ # pylint: disable=too-many-lines,too-many-public-methods """Unit tests for the Infoblox Diffsync models.""" + import unittest from unittest.mock import Mock diff --git a/nautobot_ssot/tests/infoblox/test_models.py b/nautobot_ssot/tests/infoblox/test_models.py index 2303b7da3..fb7b59f64 100644 --- a/nautobot_ssot/tests/infoblox/test_models.py +++ b/nautobot_ssot/tests/infoblox/test_models.py @@ -1,5 +1,6 @@ # pylint: disable=R0801 """Infoblox Integration model tests.""" + import os from copy import deepcopy from unittest import mock diff --git a/nautobot_ssot/tests/infoblox/test_nautobot_models.py b/nautobot_ssot/tests/infoblox/test_nautobot_models.py index 79970ba6b..91aff25e9 100644 --- a/nautobot_ssot/tests/infoblox/test_nautobot_models.py +++ b/nautobot_ssot/tests/infoblox/test_nautobot_models.py @@ -1,5 +1,6 @@ # pylint: disable=too-many-lines,too-many-public-methods,R0801 """Unit tests for the Infoblox Diffsync models.""" + from unittest.mock import Mock from django.contrib.contenttypes.models import ContentType From abf54a011fae68e6d22bc1e5eebfb5a6fe255fbd Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 10:22:16 -0500 Subject: [PATCH 35/49] =?UTF-8?q?revert:=20=E2=8F=AA=EF=B8=8F=20Revert=20I?= =?UTF-8?q?PFabric=20integration=20changes=20for=20adding=20Controller.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ipfabric/diffsync/adapter_ipfabric.py | 2 - .../ipfabric/diffsync/adapter_nautobot.py | 5 -- .../ipfabric/diffsync/diffsync_models.py | 16 ++---- nautobot_ssot/integrations/ipfabric/jobs.py | 49 ++++++------------- 4 files changed, 18 insertions(+), 54 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py index d7ea3fe30..e701060df 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_ipfabric.py @@ -169,7 +169,6 @@ def load(self): # pylint: disable=too-many-locals,too-many-statements sn_length = len(serial_number) args = base_args.copy() args["name"] = device_name - args["controller_group"] = self.job.controller.controller_managed_device_group.name args["serial_number"] = serial_number if sn_length < device_serial_max_length else "" member_devices = [args] else: @@ -198,7 +197,6 @@ def load(self): # pylint: disable=too-many-locals,too-many-statements else: args["name"] = f"{device_name}-member{member_field}" args["vc_master"] = False - args["controller_group"] = self.job.controller.controller_managed_device_group.name member_devices.append(args) device_primary_ip = device["loginIp"] diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py index a5c7958be..2a21547cd 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/adapter_nautobot.py @@ -136,11 +136,6 @@ def load_device(self, filtered_devices: List, location): vendor=str(device_record.device_type.manufacturer), status=device_record.status.name, serial_number=device_record.serial if device_record.serial else "", - controller_group=( - device_record.controller_managed_device_group.name - if device_record.controller_managed_device_group - else "" - ), ) if device_record.platform: device.platform = device_record.platform.name diff --git a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py index 828b66536..6d1824590 100644 --- a/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py +++ b/nautobot_ssot/integrations/ipfabric/diffsync/diffsync_models.py @@ -13,14 +13,13 @@ from django.db.models import Q from nautobot.core.choices import ColorChoices from nautobot.dcim.models import ( - ControllerManagedDeviceGroup, + Device as NautobotDevice, +) +from nautobot.dcim.models import ( DeviceType, Manufacturer, VirtualChassis, ) -from nautobot.dcim.models import ( - Device as NautobotDevice, -) from nautobot.dcim.models import ( Interface as NautobotInterface, ) @@ -186,7 +185,6 @@ class Device(DiffSyncExtras): _modelname = "device" _identifiers = ("name",) _attributes = ( - "controller_group", "location_name", "model", "vendor", @@ -213,7 +211,6 @@ class Device(DiffSyncExtras): vc_priority: Optional[int] = None vc_position: Optional[int] = None vc_master: Optional[bool] = None - controller_group: str mgmt_address: Optional[str] = None @@ -321,9 +318,6 @@ def create(cls, adapter, ids, attrs): device_type=device_type_object, role=device_role_object, location=location_object, - controller_managed_device_group=ControllerManagedDeviceGroup.objects.get( - name=attrs["controller_group"] - ), defaults={"platform": platform_object}, ) except NautobotDevice.MultipleObjectsReturned: @@ -394,10 +388,6 @@ def update(self, attrs): self.adapter.job.logger.error(f"Unable to find a Device with the name {self.name} to update") else: return_super = True - if attrs.get("controller_group"): - _device.controller_managed_device_group = ControllerManagedDeviceGroup.objects.get( - name=attrs["controller_group"] - ) if attrs.get("status") == "Active": safe_delete_tag, _ = Tag.objects.get_or_create(name="SSoT Safe Delete") if not _device.status == "Active": diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 022c8376e..6b2a882a0 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -13,9 +13,8 @@ from httpx import ConnectError from ipfabric import IPFClient from nautobot.core.forms import DynamicModelChoiceField -from nautobot.dcim.models import Controller, Location -from nautobot.extras.choices import SecretsGroupAccessTypeChoices, SecretsGroupSecretTypeChoices -from nautobot.extras.jobs import BooleanVar, ChoiceVar, ObjectVar, ScriptVariable +from nautobot.dcim.models import Location +from nautobot.extras.jobs import BooleanVar, ChoiceVar, ScriptVariable from nautobot_ssot.integrations.ipfabric import constants from nautobot_ssot.integrations.ipfabric.diffsync.adapter_ipfabric import IPFabricDiffSync @@ -23,7 +22,6 @@ from nautobot_ssot.integrations.ipfabric.diffsync.adapters_shared import DiffSyncModelAdapters from nautobot_ssot.integrations.ipfabric.diffsync.diffsync_models import DiffSyncExtras from nautobot_ssot.jobs.base import DataMapping, DataSource -from nautobot_ssot.utils import verify_controller_managed_device_group LAST = "$last" PREV = "$prev" @@ -107,13 +105,6 @@ class IpFabricDataSource(DataSource): client = None snapshot = None - controller = ObjectVar( - model=Controller, - queryset=Controller.objects.all(), - display_field="name", - required=True, - label="IPFabric Controller", - ) debug = BooleanVar(description="Enable for more verbose debug logging") safe_delete_mode = BooleanVar( description="Records are not deleted. Status fields are updated as necessary.", @@ -141,33 +132,20 @@ class Meta: description = "Sync data from IP Fabric into Nautobot." field_order = ( "debug", - "controller", "snapshot", - "location_filter", "safe_delete_mode", "sync_ipfabric_tagged_only", "dryrun", ) - def __init__(self): - """Initialize client upon Job load.""" - super().__init__() - if self.client is None: - self.client = self._init_ipf_client() # pylint: disable=no-value-for-parameter - else: - self.client.update() - - def _init_ipf_client(self): - token = self.controller.external_integration.secrets_group.get_secret_value( - access_type=SecretsGroupAccessTypeChoices.TYPE_HTTP, - secret_type=SecretsGroupSecretTypeChoices.TYPE_TOKEN, - ) + @staticmethod + def _init_ipf_client(): try: return IPFClient( - base_url=self.controller.external_integration.remote_url, - auth=token, - verify=self.controller.external_integration.verify_ssl, - timeout=self.controller.external_integration.timeout, + base_url=constants.IPFABRIC_HOST, + auth=constants.IPFABRIC_API_TOKEN, + verify=constants.IPFABRIC_SSL_VERIFY, + timeout=constants.IPFABRIC_TIMEOUT, unloaded=False, ) except (RuntimeError, ConnectError) as error: @@ -182,6 +160,11 @@ def _get_vars(cls): """ got_vars = super()._get_vars() + if cls.client is None: + cls.client = cls._init_ipf_client() + else: + cls.client.update() + formatted_snapshots = get_formatted_snapshots(cls.client) if formatted_snapshots: default_choice = formatted_snapshots["$last"][::-1] @@ -215,7 +198,8 @@ def data_mappings(cls): def config_information(cls): """Dictionary describing the configuration of this DataSource.""" return { - "Nautobot Host URL": os.getenv("NAUTOBOT_HOST"), + "IP Fabric host": constants.IPFABRIC_HOST, + "Nautobot Host URL": constants.NAUTOBOT_HOST, "Default Device Role": constants.DEFAULT_DEVICE_ROLE, "Default Device Role Color": constants.DEFAULT_DEVICE_ROLE_COLOR, "Default Device Status": constants.DEFAULT_DEVICE_STATUS, @@ -235,7 +219,6 @@ def run( self, dryrun, memory_profiling, - controller, debug, snapshot=None, safe_delete_mode=True, @@ -245,8 +228,6 @@ def run( **kwargs, ): """Run the job.""" - self.controller = controller - verify_controller_managed_device_group(controller=self.controller) self.kwargs = { "snapshot": snapshot, "dryrun": dryrun, From 1bc39acc98e887f648980fc76516dc33d8721faf Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 10:24:30 -0500 Subject: [PATCH 36/49] =?UTF-8?q?build:=20=E2=AC=86=EF=B8=8F=20Update=20pr?= =?UTF-8?q?oject=20dependencies=20lockfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 44 +++----------------------------------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/poetry.lock b/poetry.lock index 955600b1e..2c9fa4f6d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1676,19 +1676,6 @@ gitdb = ">=4.0.1,<5" doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] -[[package]] -name = "gprof2dot" -version = "2024.6.6" -description = "Generate a dot graph from the output of several profilers." -optional = false -python-versions = ">=3.8" -files = [ - {file = "gprof2dot-2024.6.6-py2.py3-none-any.whl", hash = "sha256:45b14ad7ce64e299c8f526881007b9eb2c6b75505d5613e96e66ee4d5ab33696"}, - {file = "gprof2dot-2024.6.6.tar.gz", hash = "sha256:fa1420c60025a9eb7734f65225b4da02a10fc6dd741b37fa129bc6b41951e5ab"}, -] -doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] -test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] - [[package]] name = "gprof2dot" version = "2024.6.6" @@ -3106,31 +3093,6 @@ files = [ {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, ] -[[package]] -name = "nh3" -version = "0.2.18" -description = "Python bindings to the ammonia HTML sanitization library." -optional = false -python-versions = "*" -files = [ - {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86"}, - {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34c03fa78e328c691f982b7c03d4423bdfd7da69cd707fe572f544cf74ac23ad"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307"}, - {file = "nh3-0.2.18-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6955369e4d9f48f41e3f238a9e60f9410645db7e07435e62c6a9ea6135a4907f"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:c8b3a1cebcba9b3669ed1a84cc65bf005728d2f0bc1ed2a6594a992e817f3a50"}, - {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204"}, - {file = "nh3-0.2.18-cp37-abi3-win32.whl", hash = "sha256:a7f1b5b2c15866f2db413a3649a8fe4fd7b428ae58be2c0f6bca5eefd53ca2be"}, - {file = "nh3-0.2.18-cp37-abi3-win_amd64.whl", hash = "sha256:8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844"}, - {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, -] - [[package]] name = "numpy" version = "1.24.4" @@ -4387,7 +4349,7 @@ name = "retry" version = "0.9.2" description = "Easy to use retry decorator." optional = false -python-versions = ">=3.7.0" +python-versions = "*" files = [ {file = "retry-0.9.2-py2.py3-none-any.whl", hash = "sha256:ccddf89761fa2c726ab29391837d4327f819ea14d244c232a1d24c67a2f98606"}, {file = "retry-0.9.2.tar.gz", hash = "sha256:f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4"}, @@ -4402,7 +4364,7 @@ name = "rich" version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7.0" files = [ {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, @@ -5156,4 +5118,4 @@ servicenow = ["Jinja2", "PyYAML", "ijson", "oauthlib", "python-magic", "pytz", " [metadata] lock-version = "2.0" python-versions = ">=3.8,<3.12" -content-hash = "eaee8ce023f984f90a1c4e1be8baaa74f1bb16171cad7b7bd52c3000568a20c5" +content-hash = "ae5eb71ee51dfb6cac25bf0cf9ecaa9fac084346decabae9f944deb0ea423eef" From f7b3170323857098d9fa105d27cd76fa62a23d3c Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 10:27:08 -0500 Subject: [PATCH 37/49] =?UTF-8?q?test:=20=F0=9F=9A=A8=20Remove=20unused=20?= =?UTF-8?q?import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/jobs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/nautobot_ssot/integrations/ipfabric/jobs.py b/nautobot_ssot/integrations/ipfabric/jobs.py index 6b2a882a0..bc62d7ec9 100644 --- a/nautobot_ssot/integrations/ipfabric/jobs.py +++ b/nautobot_ssot/integrations/ipfabric/jobs.py @@ -3,7 +3,6 @@ # pylint: disable=too-many-locals """IP Fabric Data Target Job.""" -import os import uuid from diffsync.enum import DiffSyncFlags From 207c02663ca348495bbc9116c100a318d4d8bdef Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:37:33 -0500 Subject: [PATCH 38/49] =?UTF-8?q?build:=20=E2=8F=AA=EF=B8=8F=20Revert=20mi?= =?UTF-8?q?nimum=20Nautobot=20to=202.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 14 +++++++------- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2c9fa4f6d..a5e80c5fe 100644 --- a/poetry.lock +++ b/poetry.lock @@ -670,13 +670,13 @@ testing = ["pytest (>=7.2.1)", "pytest-cov (>=4.0.0)", "tox (>=4.4.3)"] [[package]] name = "cloudvision" -version = "1.21.0" +version = "1.21.1" description = "A Python library for Arista's CloudVision APIs and Provisioning Action integrations." optional = true python-versions = ">=3.7.0" files = [ - {file = "cloudvision-1.21.0-py3-none-any.whl", hash = "sha256:1adf599817d77a0a822a733f678b6e79700d5fa1b43c951e60d6a7471f6f0526"}, - {file = "cloudvision-1.21.0.tar.gz", hash = "sha256:4e8c56a0d40413916a762758d4b23c5030bc39ad79ba65738f30d2dff8d991e4"}, + {file = "cloudvision-1.21.1-py3-none-any.whl", hash = "sha256:961115a34c4ed59d5094a0a4e4a8f2fc6181e0d3dfb23d90464e7768debce3cd"}, + {file = "cloudvision-1.21.1.tar.gz", hash = "sha256:6d7abd15de30d974be1be15711e0e14c65c460362defe6d8bd9ff765021d1984"}, ] [package.dependencies] @@ -4892,13 +4892,13 @@ files = [ [[package]] name = "tomlkit" -version = "0.13.0" +version = "0.13.2" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" files = [ - {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, - {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] [[package]] @@ -5118,4 +5118,4 @@ servicenow = ["Jinja2", "PyYAML", "ijson", "oauthlib", "python-magic", "pytz", " [metadata] lock-version = "2.0" python-versions = ">=3.8,<3.12" -content-hash = "ae5eb71ee51dfb6cac25bf0cf9ecaa9fac084346decabae9f944deb0ea423eef" +content-hash = "eaee8ce023f984f90a1c4e1be8baaa74f1bb16171cad7b7bd52c3000568a20c5" diff --git a/pyproject.toml b/pyproject.toml index b6939e054..c1f30e6d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ include = [ [tool.poetry.dependencies] python = ">=3.8,<3.12" # Used for local development -nautobot = "^2.2.0" +nautobot = "^2.1.0" diffsync = "^2.0.0" Jinja2 = { version = ">=2.11.3", optional = true } Markdown = "!=3.3.5" From 6ca3b4f498c949fc8a0a247fbd276e73c9ab50f4 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:41:09 -0500 Subject: [PATCH 39/49] =?UTF-8?q?build:=20=F0=9F=93=8C=20Pin=20django-debu?= =?UTF-8?q?g-toolbar=20to=20version=20less=20than=204.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 10 +++++----- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index a5e80c5fe..b474377dd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1146,17 +1146,17 @@ Django = "*" [[package]] name = "django-debug-toolbar" -version = "4.4.6" +version = "4.3.0" description = "A configurable set of panels that display various debug information about the current request/response." optional = false python-versions = ">=3.8" files = [ - {file = "django_debug_toolbar-4.4.6-py3-none-any.whl", hash = "sha256:3beb671c9ec44ffb817fad2780667f172bd1c067dbcabad6268ce39a81335f45"}, - {file = "django_debug_toolbar-4.4.6.tar.gz", hash = "sha256:36e421cb908c2f0675e07f9f41e3d1d8618dc386392ec82d23bcfcd5d29c7044"}, + {file = "django_debug_toolbar-4.3.0-py3-none-any.whl", hash = "sha256:e09b7dcb8417b743234dfc57c95a7c1d1d87a88844abd13b4c5387f807b31bf6"}, + {file = "django_debug_toolbar-4.3.0.tar.gz", hash = "sha256:0b0dddee5ea29b9cb678593bc0d7a6d76b21d7799cb68e091a2148341a80f3c4"}, ] [package.dependencies] -django = ">=4.2.9" +django = ">=3.2.4" sqlparse = ">=0.2" [[package]] @@ -5118,4 +5118,4 @@ servicenow = ["Jinja2", "PyYAML", "ijson", "oauthlib", "python-magic", "pytz", " [metadata] lock-version = "2.0" python-versions = ">=3.8,<3.12" -content-hash = "eaee8ce023f984f90a1c4e1be8baaa74f1bb16171cad7b7bd52c3000568a20c5" +content-hash = "8d324bb020995dc37e377741ae73d9fa26052189dd7518a8391e053453950e81" diff --git a/pyproject.toml b/pyproject.toml index c1f30e6d8..ca6b33664 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,7 +57,7 @@ retry = "^0.9.2" bandit = "*" black = "*" coverage = "*" -django-debug-toolbar = "*" +django-debug-toolbar = "<4.4" django-extensions = "*" flake8 = "*" invoke = "*" From 9cf8a93bfc266303aa975d915a422f662532613d Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:29:16 -0500 Subject: [PATCH 40/49] =?UTF-8?q?feat:=20=E2=9C=A8=20Add=20checks=20for=20?= =?UTF-8?q?ExternalIntegration=20on=20Controller=20and=20SecretsGroup=20on?= =?UTF-8?q?=20ExternalIntegration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index 9929a9537..423cf8559 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -15,6 +15,10 @@ name = "Cisco ACI SSoT" # pylint: disable=invalid-name, abstract-method +class ConfigurationError(Exception): + """Exception thrown when Job configuration is wrong.""" + + class AciDataSource(DataSource, Job): # pylint: disable=abstract-method, too-many-instance-attributes """ACI SSoT Data Source.""" @@ -69,6 +73,12 @@ def load_source_adapter(self): if not self.device_site: self.logger.info("Device Location is unspecified so will revert to specified Controller's Location.") verify_controller_managed_device_group(controller=self.apic) + if not self.apic.external_integration: + self.logger.error("ExternalIntegration was not found on specified Controller.") + raise ConfigurationError + if not self.apic.external_integration.secrets_group: + self.logger.error("SecretsGroup not found on %s", self.apic.external_integration) + raise ConfigurationError username, password = get_username_password_https_from_secretsgroup( group=self.apic.external_integration.secrets_group ) From de587456a44ddaf5d97e47bad6bbae4c7d883272 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:34:19 -0500 Subject: [PATCH 41/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Add=20default=20val?= =?UTF-8?q?ue=20for=20tenant=5Fprefix=20in=20case=20not=20defined=20in=20e?= =?UTF-8?q?xtra=5Fconfig.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/jobs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautobot_ssot/integrations/aci/jobs.py b/nautobot_ssot/integrations/aci/jobs.py index 423cf8559..a4b5d671a 100644 --- a/nautobot_ssot/integrations/aci/jobs.py +++ b/nautobot_ssot/integrations/aci/jobs.py @@ -93,7 +93,7 @@ def load_source_adapter(self): job=self, sync=self.sync, client=client, - tenant_prefix=self.apic.external_integration.extra_config.get("tenant_prefix"), + tenant_prefix=self.apic.external_integration.extra_config.get("tenant_prefix", "ACI"), ) self.source_adapter.load() From a4409ad3a198f8874ad496a68d483f369965f88b Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:43:14 -0500 Subject: [PATCH 42/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Correct=20var=20to?= =?UTF-8?q?=20be=20client.site=20instead=20of=20using=20dict=20key.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/aci/diffsync/adapters/aci.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py index 9427187c4..9ade1aa47 100644 --- a/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py +++ b/nautobot_ssot/integrations/aci/diffsync/adapters/aci.py @@ -62,7 +62,7 @@ def __init__(self, *args, job=None, sync=None, client, tenant_prefix, **kwargs): self.job = job self.sync = sync self.conn = client - self.site = client.get("site") + self.site = client.site self.tenant_prefix = tenant_prefix self.nodes = self.conn.get_nodes() self.controllers = self.conn.get_controllers() From 8df0631187ec813d0e912e4659ce3a52f8017940 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:49:33 -0500 Subject: [PATCH 43/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Remove=20duplicate?= =?UTF-8?q?=20lines=20from=20rebase.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integrations/device42/diffsync/models/nautobot/ipam.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py b/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py index c7ff6b762..3d9380966 100644 --- a/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py +++ b/nautobot_ssot/integrations/device42/diffsync/models/nautobot/ipam.py @@ -58,7 +58,6 @@ def delete(self): Because VRF has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot - The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): @@ -119,7 +118,6 @@ def delete(self): Because Subnet has a direct relationship with many other objects it can't be deleted before anything else. The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot - The self.adapter.objects_to_delete dictionary stores all objects for deletion and removes them from Nautobot in the correct order. This is used in the Nautobot adapter sync_complete function. """ if PLUGIN_CFG.get("device42_delete_on_sync"): @@ -191,7 +189,6 @@ def update(self, attrs): ) return self.adapter.job.logger.info(f"Updating IPAddress {_ipaddr.address}") - self.adapter.job.logger.info(f"Updating IPAddress {_ipaddr.address}") if "available" in attrs: _ipaddr.status = ( OrmStatus.objects.get(name="Active") if attrs["available"] else OrmStatus.objects.get(name="Reserved") From c3415d09f5b95414e6da05e8d65050ede67f620b Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:06:25 -0500 Subject: [PATCH 44/49] =?UTF-8?q?docs:=20=F0=9F=93=9D=20Update=20Device42?= =?UTF-8?q?=20Documentation=20with=20screenshots=20of=20ExternalIntegratio?= =?UTF-8?q?n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/admin/integrations/device42_setup.md | 21 ++++++++++++------- docs/images/device42_externalintegration.png | Bin 0 -> 144147 bytes docs/images/device42_job-form.png | Bin 255977 -> 365227 bytes docs/images/device42_password.png | Bin 0 -> 231108 bytes docs/images/device42_secretsgroup.png | Bin 0 -> 180955 bytes docs/images/device42_username.png | Bin 0 -> 225953 bytes docs/user/integrations/device42.md | 2 +- 7 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 docs/images/device42_externalintegration.png create mode 100644 docs/images/device42_password.png create mode 100644 docs/images/device42_secretsgroup.png create mode 100644 docs/images/device42_username.png diff --git a/docs/admin/integrations/device42_setup.md b/docs/admin/integrations/device42_setup.md index b6894bec5..d65247a2c 100644 --- a/docs/admin/integrations/device42_setup.md +++ b/docs/admin/integrations/device42_setup.md @@ -12,16 +12,21 @@ pip install nautobot-ssot[device42] ## Configuration -Integration behavior can be controlled with the following settings: +Access to your Device42 instance is defined using the [ExternalIntegration](https://docs.nautobot.com/projects/core/en/stable/user-guide/platform-functionality/externalintegration/) model which allows you to utilize this integration with multiple instances concurrently. Please bear in mind that it will synchronize all data 1:1 with the specified instance to match exactly, meaning it will delete data missing from an instance, unless you have the `device42_delete_on_sync` option set to False. Each ExternalIntegration must specify a SecretsGroup that contains Secrets that contain the Device42 Username and Password to authenticate against that instance. You can find Secrets and SecretsGroups available under the Secrets menu. -| Configuration Variable | Type | Usage | -| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------- | -| device42_host | string | This defines the FQDN of the Device42 instance, ie `https://device42.example.com`. | -| device42_username | string | This defines the username of the account used to connect to the Device42 API endpoint. | -| device42_password | string | This defines the password of the account used to connect to the Device42 API endpoint. | -| device42_verify | boolean | This denotes whether SSL validation of the Device42 endpoint should be enabled or not. | +![Device42 Username](../../images/device42_username.png) -When creating Sites and Racks in Nautobot it is required to define a Status for each. It is also required to define a Role for your Device when created. You may define the default for each of those objects being imported with the respective values in your `nautobot_config.py` file. +![Device42 Password](../../images/device42_password.png) + +![Device42 SecretsGroup](../../images/device42_secretsgroup.png) + +Please note that is it imperative for the SecretsGroup used with the specified Controller uses HTTP(S) Access type and Username and Password respectively for each Secret. Also note that the name of the Secrets or SecretsGroup are irrelevant but are recommended to be relevant to the instance in question. + +Once the SecretsGroup is created you'll need to create the ExternalIntegration. You'll find this under the Extensibility menu. + +![Device42 ExternalIntegration](../../images/device42_externalintegration.png) + +When creating Locations and Racks in Nautobot it is required to define a Status for each. It is also required to define a Role for your Device when created. You may define the default for each of those objects being imported with the respective values in your `nautobot_config.py` file. | Configuration Variable | Type | Usage | Default | | --------------------------------------------------- | ------ | ---------------------------------------------------------- | -------------------- | diff --git a/docs/images/device42_externalintegration.png b/docs/images/device42_externalintegration.png new file mode 100644 index 0000000000000000000000000000000000000000..9dfd96e383cccebabcb687b2cf282732d78a4c4e GIT binary patch literal 144147 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

|HH~ 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 literal 0 HcmV?d00001 diff --git a/docs/images/device42_job-form.png b/docs/images/device42_job-form.png index 1c6f4b3714701aa2977cefa7fe37164316af3b80..2da6f005cb7ca8be1687f7d3337afb6025024d88 100644 GIT binary patch literal 365227 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

C1{5O;sqhz(FHQb#66a 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

E$U44rU+0$kwhvFOG-gozmo91 z_-N2iP8f$h6qflqk%=Bk4o>Vx#%+;Vuo*x;H2~S(9G$w6-N)}i8sB+3;Lh+6L{u=p z`UPM&Iu)-BvnT)1mj(jC+=7kU+H>ziV9?#{zVG z0~^GQmyDm&aQQe}O9tngP*hw$M)PDi88Ui|oh^XsTsGLCBGmTrjscxWRe(3Q<;0Af*qbn`DUYbGm!GMA*AjC_? z_(9=;#Ij-l6}|xIY`Q%aszndmbL{2VC|MumleczWO<{R?+E)Br-Y5t!naT2BZI(9> zw+0ntmszt)1NWK<^x8p*eU5Oj{-;cYnznYoH=evobr)Fussjkz_h>1NCJ31mJAIcD#&dRGaw9k&Jq&e1`(x;9fes4k#QQ}BC&2Zv`2vCo*%tgjT-?pc}=m#REk3|ILoMkbv zb5!hv+P)B>jn8LvIZh3gPc$@)Phsoq9Q;fCOKj{@OJ8D1M8~=0u{H(5MYHz%R3*>h z*rkk`T)t_?oiyZ>YlJ2Q;PH;v++?BSnZ%%yM<~2xK*l}R#(SkMxT#Mr7ejHx!m^>m zIQx3^RGE_m_wGdm`Iv}OaN{Yt6uw1_%PIhc6``_tJ3l|abp6tD)ySLa)chO(@qlnh zjZHz%^mXYQ&(Mq*Q)_S>`kWR)RayGIsVs=~H53|C=)l!9dm7!5WkGOVotZ0XT~apG ztLT?wPN-#HuJ#Ursz7|-W<+h<0#b_UhXi>c#u+_6hx!y6|AB77)ekB0lhl$vqnZ-e z=*6NS^{~4?@Nm$b z1AjIBtjdgtJ~N%$KOxNPN#nMq6$@t zW9zTx;KEN9dN(>xY0BY0>oL)z$9xXyR5nQ->TCOcBkahPTSY|Y z&qKTM?;*C0{qiPs;evmue;-hP=e`oCGMOVCG^P}N(nl@GF$L{K$HJDAp8{PT1#sqd zicbaV6PgjQV{3E_$3Br70O~XAoj>XZsyiEt)7>&l1E!q0tHM0}?W`0AE+^i44i?0O z3s?{{zZ|%rBR2#kMgU);uPhzP8bUO$xbK(y}uV+ehW`g_QreH*Z_ohbQgVK*D%v8QF%A1I_Au) zcs;u0QNr>c+CA^(pScu|U5b}hRWBl3M z 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

fFN6>O9nMK+)NHpB%{X|`aDMf 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�q>0FUhFPoBP1UZy}gfn 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

g9 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� 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≦ZA{9n+VtR3 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�F^%!812d9To?=$dH96suRP27@FO3=r2fD@OwkB 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�X2jiaJExjolrafSZ*m^0;1P*1)tR_ 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 W_z>k>plg)hgO?(gV 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

  • e$)bXh?G#c`yac1 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�hD+5kyb4v!tJU`QZZSD?n87 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

    !8Q9v7a=!4i9HSN zVT9+<6C{Sreol#U@iAQ@tP&GB?7{JlCGh2!1eKIYtSMrL+aiH=hBaa%FYvTWJby5t zOU#aN2@9Dk72Xfzyb=j@goY)xa=BB$saH+lC(h++<-%){I(oB=1=EzAFEPXg--`T=VycE9!_IPU5XD0 zs8RT?DnVz~^mbiKBC0ZH-m22S=@^Eaf{0hBju8I43${qjqLPygVcAMvc2a9v%HH*K zFMl0k^l!T@H>&+q8{*dBLmP6lW^6fku=bBPJIcGv{hU@ctun$BT%N>`&e-|=hJehy z4);&-?Y{sQ4WP6VyR8z!CssxDD4^dlMlp+}02Tn~>l!JbLZOFmg-o8?jF#3YD70x7 zxBV7idJw#7qsx4SM1@+YxC+`ArN-$AwFA-`*LX$GC!;H1EQTi?DxID)p*FZU__nP( zpX0H)-GX%p^j+@nG+{<;v=Qz14Wln|-Z?MNFOeFur=@?BjZ^gMqLiQ@W-4`{qyiTQ z?eFxhtj;-UT5?jQluTa+t|86qNegw= zhfy<{9w8tofBFI?T_@m#h1i_?@^DC+p0+}&NsNq*wpVAXzm>y9Tw$}S(rOS1tg=52 z&*((8fj-TcGHaSk(uJ{~dv1qPz--wOyIHI7;zOpG%I8HCBgg`a z{TMLw7HW7Id<2vlr(Auzd7Bm>H(~*TmNpRTh}|Js?~n<|w&9ZcLCgI0n5w6J{C3%-ISF6<3Z6 zukvj0VDD4R zt0mi+uc{BV%?;ONjy3@=UUcu<8!hp-WLr)*b9ECO&-L#C?hd!woqozUjJVo++Ng_{ zF}f;2L4HuDl<}vYkePqJjEcaReqF%pOSqYQJexNqNB}l)RF-uK2UczS`97k0ha1># zuHrExm>A{zpP%j|29P-yk~apZZmOUI?^osl=^HC0h^57QGZu~Hov-7|C~7fKK?ZA? zR*stI)OvTE3F65OQhoL>lIET_LHJO$=WpRd-jO6bac>~NrwL(p*U3d=;I<5UGrZF6 zeqCJVD2%HD_sB@kO=Evj)mB>!;YoM*1kK7!~jZ|VK2pn;v$;jbc-3qS`> zH4esDY#jt3Pfx(qDC^dlmZaI~ybF{T*}4{q@j`^$p;oFUr^WO7;T%}=Gl}9uZJ==W zSrzr^k6r-h{){O?Qo69iEk(@^=B5KE5VoDT(r7~&=pP@u@~&4oW=e-MEkOhdO}+g| z*-V;atick9r7{VcY|gMomqpYbC&Kq~dR7&47J30)amHbEsMDkLpHsqt&Z~gD_wSCc zL{_$OBMPn`u(+Kfs0F%Qw@f*v`l!@-TYw_tw!`7dZOY|*%!S1n(4xB|Kr>28Yt@14 z3alWa;H)mV79gl{oXtU8d>r1-x)8N;W(fvKtiTk-i*|2U z8jSYtCDQjQg(Q0HZ!Uh&`l-m0wdgh_1NT)t%Q~m^I|3n+;#^0+*0Q#<)z~^hzufGTp^S;#!q)$v8fP|lX8_+0h zLC59#PhNst1453A5QliHjs!L(%?@CBJMhPU@5LdU*RI!#@i zVvj5k-!;1{f?m}{pv!p*kf4(f04kB!=`Y_(Nt+L)?f{tRd3^u*OuJFf)KjklFXC2p zJ)spqgr}unu@oQi<%Mt>gf-WDB5xMeK0yExB@Pp=Qt1`huKFTW#A8A=(z%it#Ug9d zIam~g)zn^uAA1OcZqZ@}mi{A-x?r>lqn!T^qfB=p2uVPFan7^;cv=wwa!j`IAON@t z1Lv6|W1Vgr&B|5wurnHH= zu{w15gTVVU=YdetiNQw5#Gqu9e`m8lwV5!^i^rZg1(H5Kh0Qei^7%a3fP}81*@lA) zLQ!VD=z;RH{>yVy$rn{>S7W;Z8eOYu561C%@ubYQnw=mgzi4q3-ifx zL$;YZSEjRaRJ&|MJzYm%R)xysm+%yjcu$%!ZXA_hIN>=%&q6R4pr3~w11vVYxpFk9JmXCqb*@rgyD#!-xbje(4xzb<8qAKaz zj5pe-nVp8iOxl;bnMtL<(dC?})3*Ec`KsM`y%0D!6|eb1gyXVGP#vqCN32C$zr2_{ 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 literal 0 HcmV?d00001 diff --git a/docs/user/integrations/device42.md b/docs/user/integrations/device42.md index ea362cf9b..00f027a2e 100644 --- a/docs/user/integrations/device42.md +++ b/docs/user/integrations/device42.md @@ -32,7 +32,7 @@ From the Dashboard, you can also view more information about the App by clicking ![Detail View](../../images/device42_detail-view.png) -To start the synchronization, simply click the `Sync Now` button on the Dashboard to start the Job. You should be presented with the Job form below: +To start the synchronization, simply select the ExternalIntegration that corresponds to your desired instance and then click the `Sync Now` button on the Dashboard to start the Job. You should be presented with the Job form below: ![Job Form](../../images/device42_job-form.png) From 9d84163f060f394c82b597b7004d2e2bc6f500aa Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:17:06 -0500 Subject: [PATCH 45/49] =?UTF-8?q?docs:=20=E2=8F=AA=EF=B8=8F=20Revert=20doc?= =?UTF-8?q?umentation=20changes=20for=20IPFabric=20integration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/admin/integrations/ipfabric_setup.md | 36 ++++++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/docs/admin/integrations/ipfabric_setup.md b/docs/admin/integrations/ipfabric_setup.md index 4ef3b6335..148231ed5 100644 --- a/docs/admin/integrations/ipfabric_setup.md +++ b/docs/admin/integrations/ipfabric_setup.md @@ -17,7 +17,14 @@ Integration behavior can be controlled with the following settings: !!! warning The setting names have been updated to help avoid any potential conflicts, please update the settings in `PLUGINS_CONFIG` accordingly. -The IPFabric integration has been updated to utilize the Controller and related ExternalIntegration objects for tracking of credentials and controller information. +### Required Settings + +| `Setting` | `Description` | +| --------- | ------------- | +| `ipfabric_host` | Hostname/IP address of the IPFabric instance. | +| `ipfabric_api_token` | API token for IPFabric authentication. | +| `ipfabric_ssl_verify` | Verify the SSL certificate of the IPFabric instance. | +| `nautobot_host` | FQDN of your Nautobot instance. This is used to provide a URL to the job results via ChatOps. | Below is an example snippet from `nautobot_config.py` that demonstrates how to enable and configure IPFabric integration: @@ -25,6 +32,10 @@ Below is an example snippet from `nautobot_config.py` that demonstrates how to e PLUGINS_CONFIG = { "nautobot_ssot": { "enable_ipfabric": True, + "ipfabric_api_token": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), + "ipfabric_host": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_HOST"), + "ipfabric_ssl_verify": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY"), + "nautobot_host": os.environ.get("NAUTOBOT_HOST"), } } ``` @@ -33,6 +44,7 @@ PLUGINS_CONFIG = { | `Setting` | `Description` | `Default` | | --------- | ------------- | ---------- | +| `ipfabric_timeout` | Timeout (in seconds) for API requests to IPFabric. | `15` | | `ipfabric_allow_duplicate_addresses` | If an IP Address already exists, setting this flag to `False` will prevent a duplicate IP Address from being created and will instead assign the existing IP to the synced Interface. | `True` | | `ipfabric_default_device_role` | The device role used if a matching role is not found. | `Network Device` | | `ipfabric_default_device_role_color` | The color used for the default device role. | `ff0000` | @@ -45,7 +57,7 @@ PLUGINS_CONFIG = { | `ipfabric_safe_delete_location_status` | The status that is set for a Location when the `Safe Delete Mode` flag is set in the Job. | `Decommissioning` | | `ipfabric_safe_delete_vlan_status` | The status that is set for a VLAN when the `Safe Delete Mode` flag is set in the Job. | `Deprecated` | | `ipfabric_safe_delete_ipaddress_status` | The status that is set for an IP Address when the `Safe Delete Mode` flag is set in the Job. | `Deprecated` | -| `ipfabric_use_canonical_interface_name` | Whether to attempt to elongate interface names as found in IPFabric. | `False` | +| `ipfabric_use_canonical_interface_name` | Whether to attempt to elongate interface names as found in IP Fabric. | `False` | Below is an example snippet from `nautobot_config.py` that demonstrates how to enable and configure the IPFabric SSoT integration along with the optional settings: @@ -54,6 +66,10 @@ Below is an example snippet from `nautobot_config.py` that demonstrates how to e PLUGINS_CONFIG = { "nautobot_ssot": { "enable_ipfabric": True, + "ipfabric_api_token": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), + "ipfabric_host": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_HOST"), + "ipfabric_ssl_verify": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY"), + "nautobot_host": os.environ.get("NAUTOBOT_HOST"), "ipfabric_timeout": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_TIMEOUT"), "ipfabric_allow_duplicate_addresses": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_DUPLICATE_ADDRESSES"), "ipfabric_default_device_role": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_DEVICE_ROLE"), @@ -94,12 +110,24 @@ PLUGINS_CONFIG = { ] PLUGINS_CONFIG = { + # "nautobot_ssot_ipfabric": { REMOVE THIS APP CONFIGURATION + # MOVE CONFIGURATION TO `nautobot_ssot` SECTION + # "ipfabric_api_token": os.environ.get("IPFABRIC_API_TOKEN"), + # "ipfabric_host": os.environ.get("IPFABRIC_HOST"), + # "ipfabric_ssl_verify": os.environ.get("IPFABRIC_SSL_VERIFY"), + # "ipfabric_timeout": os.environ.get("IPFABRIC_TIMEOUT"), + # "nautobot_host": os.environ.get("NAUTOBOT_HOST"), + # } "nautobot_ssot": { # Enable IPFabric integration "enable_ipfabric": True, + # Following lines are moved from `nautobot_ssot_ipfabric` + "ipfabric_api_token": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_API_TOKEN"), + "ipfabric_host": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_HOST"), + "ipfabric_ssl_verify": os.environ.get("NAUTOBOT_SSOT_IPFABRIC_SSL_VERIFY"), + "nautobot_host": os.environ.get("NAUTOBOT_HOST"), } } ``` - !!! warning - The setting names have been updated to help avoid any potential conflicts, please update the settings in `PLUGINS_CONFIG` accordingly. + The setting names have been updated to help avoid any potential conflicts, please update the settings in `PLUGINS_CONFIG` accordingly. \ No newline at end of file From b752eef0fa1bd48948cdf91c86d1139779bdb207 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:20:56 -0500 Subject: [PATCH 46/49] =?UTF-8?q?revert:=20=E2=8F=AA=EF=B8=8F=20Revert=20a?= =?UTF-8?q?ny=20changes=20to=20ChatOps=20command=20for=20Controller=20in?= =?UTF-8?q?=20IPFabric=20integration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/workers.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/workers.py b/nautobot_ssot/integrations/ipfabric/workers.py index 9e8d4f230..f2f8f74bc 100644 --- a/nautobot_ssot/integrations/ipfabric/workers.py +++ b/nautobot_ssot/integrations/ipfabric/workers.py @@ -5,7 +5,6 @@ from django.contrib.contenttypes.models import ContentType from nautobot.core.settings_funcs import is_truthy -from nautobot.dcim.models import Controller from nautobot.extras.models import JobResult # pylint: disable-next=import-error @@ -17,8 +16,8 @@ # pylint: disable-next=import-error from nautobot_chatops.workers import handle_subcommands, subcommand_of -from nautobot_ssot.integrations.ipfabric.jobs import IpFabricDataSource from nautobot_ssot.integrations.ipfabric import constants +from nautobot_ssot.integrations.ipfabric.jobs import IpFabricDataSource # from nautobot.dcim.models import Site @@ -36,17 +35,6 @@ def prompt_for_bool(dispatcher: Dispatcher, action_id: str, help_text: str): return False -def prompt_for_controller(dispatcher: Dispatcher, action_id: str, help_text: str, controllers=None, offset=0): - """Prompt the user to select a valid Controller from a drop-down menu.""" - if controllers is None: - controllers = Controller.objects.all().order_by("name") - if not controllers: - dispatcher.send_error("No Controllers were found.") - return (CommandStatusChoices.STATUS_FAILED, "No Controllers found.") - choices = [(f"{controller.name}: {controller.name}", controller.name) for controller in controllers] - return dispatcher.prompt_from_menu(action_id, help_text, choices, offset=offset) - - # def prompt_for_site(dispatcher: Dispatcher, action_id: str, help_text: str, sites=None, offset=0): # """Prompt the user to select a valid site from a drop-down menu.""" # if sites is None: From 2e1b1463cafe67edf3c45709f4a76147c9ccfadd Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:22:35 -0500 Subject: [PATCH 47/49] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Correct=20NB=20mini?= =?UTF-8?q?mum=20version=20to=202.1.0=20to=20match=20pyproject.toml=20and?= =?UTF-8?q?=20add=20ACI=20integration=20to=20=5FMIN=5FNAUTOBOT=5FVERSION.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/__init__.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/nautobot_ssot/__init__.py b/nautobot_ssot/__init__.py index 66428fce5..def3cd454 100644 --- a/nautobot_ssot/__init__.py +++ b/nautobot_ssot/__init__.py @@ -4,11 +4,10 @@ import os from importlib import metadata - +import packaging from django.conf import settings -from nautobot.extras.plugins import NautobotAppConfig from nautobot.core.settings_funcs import is_truthy -import packaging +from nautobot.extras.plugins import NautobotAppConfig from nautobot_ssot.integrations.utils import each_enabled_integration_module @@ -26,8 +25,7 @@ ] _MIN_NAUTOBOT_VERSION = { - "nautobot_ssot_aristacv": "2.1", - "nautobot_ssot_infoblox": "2.1", + "nautobot_ssot_aci": "2.2", } @@ -70,7 +68,7 @@ class NautobotSSOTAppConfig(NautobotAppConfig): description = "Nautobot app that enables Single Source of Truth. Allows users to aggregate distributed data sources and/or distribute Nautobot data to other data sources such as databases and SDN controllers." base_url = "ssot" required_settings = [] - min_version = "2.2.0" + min_version = "2.1.0" max_version = "2.9999" default_settings = { "aci_tag": "", From 718b49551bf364bbfdc77451ddcfbdfc4f661c56 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Mon, 19 Aug 2024 20:15:59 -0500 Subject: [PATCH 48/49] =?UTF-8?q?fix:=20=E2=8F=AA=EF=B8=8F=20Remove=20miss?= =?UTF-8?q?ed=20portions=20of=20container=20additions=20to=20IPFabric=20wo?= =?UTF-8?q?rker=20command.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/integrations/ipfabric/workers.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/nautobot_ssot/integrations/ipfabric/workers.py b/nautobot_ssot/integrations/ipfabric/workers.py index f2f8f74bc..9e08dff15 100644 --- a/nautobot_ssot/integrations/ipfabric/workers.py +++ b/nautobot_ssot/integrations/ipfabric/workers.py @@ -59,24 +59,19 @@ def ipfabric(subcommand, **kwargs): @subcommand_of("ipfabric") def ssot_sync_to_nautobot( dispatcher, - controller=None, dry_run=None, safe_delete_mode=None, sync_ipfabric_tagged_only=None, ): """Start an SSoT sync from IPFabric to Nautobot.""" - if controller is None: - prompt_for_controller(dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot", "Which APIC should we synchronize with?") - return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") - if dry_run is None: - prompt_for_bool(dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot {controller}", "Do you want to run a `Dry Run`?") + prompt_for_bool(dispatcher, f"{BASE_CMD} ssot-sync-to-nautobot", "Do you want to run a `Dry Run`?") return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") if safe_delete_mode is None: prompt_for_bool( dispatcher, - f"{BASE_CMD} ssot-sync-to-nautobot {controller} {dry_run}", + f"{BASE_CMD} ssot-sync-to-nautobot {dry_run}", "Do you want to run in `Safe Delete Mode`?", ) return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") @@ -84,7 +79,7 @@ def ssot_sync_to_nautobot( if sync_ipfabric_tagged_only is None: prompt_for_bool( dispatcher, - f"{BASE_CMD} ssot-sync-to-nautobot {controller} {dry_run} {safe_delete_mode}", + f"{BASE_CMD} ssot-sync-to-nautobot {dry_run} {safe_delete_mode}", "Do you want to sync against `ssot-tagged-from-ipfabric` tagged objects only?", ) return (CommandStatusChoices.STATUS_SUCCEEDED, "Success") @@ -118,7 +113,6 @@ def ssot_sync_to_nautobot( ) sync_job.run( - controller=controller, dryrun=is_truthy(dry_run), memory_profiling=False, safe_delete_mode=is_truthy(safe_delete_mode), From 17e3accd7a8f7a6d2f851b7c1f5f34d1cf99d537 Mon Sep 17 00:00:00 2001 From: Justin Drew <2396364+jdrew82@users.noreply.github.com> Date: Tue, 20 Aug 2024 13:51:57 -0500 Subject: [PATCH 49/49] =?UTF-8?q?test:=20=E2=9C=85=20Adjust=20variable=20n?= =?UTF-8?q?ames=20to=20not=20conflict=20with=20vars=20in=20function=20and?= =?UTF-8?q?=20refactor=20to=20fix=20failing=20test.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nautobot_ssot/tests/itential/fixtures/base.py | 38 ++++++++--------- .../tests/itential/fixtures/devices.py | 42 +++++++++---------- 2 files changed, 38 insertions(+), 42 deletions(-) diff --git a/nautobot_ssot/tests/itential/fixtures/base.py b/nautobot_ssot/tests/itential/fixtures/base.py index 623f854ec..1d50ba301 100644 --- a/nautobot_ssot/tests/itential/fixtures/base.py +++ b/nautobot_ssot/tests/itential/fixtures/base.py @@ -2,18 +2,16 @@ import os import unittest + import requests_mock # from unittest import TestCase - -from nautobot.apps.testing import TestCase -from nautobot.apps.testing import TransactionTestCase - +from nautobot.apps.testing import TestCase, TransactionTestCase from nautobot.extras.models import Status -from nautobot_ssot.integrations.itential.models import AutomationGatewayModel from nautobot_ssot.integrations.itential.diffsync.adapters import itential, nautobot -from nautobot_ssot.tests.itential.fixtures import gateways, urls, clients, devices +from nautobot_ssot.integrations.itential.models import AutomationGatewayModel +from nautobot_ssot.tests.itential.fixtures import clients, devices, gateways, urls class ItentialSSoTBaseTestCase(TestCase): @@ -59,16 +57,16 @@ def setUp(self): for device in devices.data: devices.update_or_create_device_object( - status=device.get("status"), - role=device.get("role"), + status_name=device.get("status"), + role_name=device.get("role"), name=device.get("name"), - location=device.get("location"), - manufacturer=device.get("manufacturer"), - platform=device.get("platform"), + location_name=device.get("location"), + manufacturer_name=device.get("manufacturer"), + platform_name=device.get("platform"), network_driver=device.get("network_driver"), model=device.get("model"), - interface=device.get("interface"), - ip_address=device.get("ip_address"), + interface_name=device.get("interface"), + ip_host=device.get("ip_address"), config_context=device.get("config_context"), ) @@ -131,16 +129,16 @@ def setUp(self): for device in devices.data: devices.update_or_create_device_object( - status=device.get("status"), - role=device.get("role"), + status_name=device.get("status"), + role_name=device.get("role"), name=device.get("name"), - location=device.get("location"), - manufacturer=device.get("manufacturer"), - platform=device.get("platform"), + location_name=device.get("location"), + manufacturer_name=device.get("manufacturer"), + platform_name=device.get("platform"), network_driver=device.get("network_driver"), model=device.get("model"), - interface=device.get("interface"), - ip_address=device.get("ip_address"), + interface_name=device.get("interface"), + ip_host=device.get("ip_address"), config_context=device.get("config_context"), ) diff --git a/nautobot_ssot/tests/itential/fixtures/devices.py b/nautobot_ssot/tests/itential/fixtures/devices.py index fc007666b..0ed8d6080 100644 --- a/nautobot_ssot/tests/itential/fixtures/devices.py +++ b/nautobot_ssot/tests/itential/fixtures/devices.py @@ -1,19 +1,17 @@ """Itential SsoT Nautobot device fixtures.""" from django.contrib.contenttypes.models import ContentType - from nautobot.dcim.models import ( + Device, + DeviceType, + Interface, Location, LocationType, Manufacturer, Platform, - Device, - DeviceType, - Interface, ) -from nautobot.extras.models import Status, Role -from nautobot.ipam.models import Prefix, IPAddress, Namespace - +from nautobot.extras.models import Role, Status +from nautobot.ipam.models import IPAddress, Namespace, Prefix data = [ { @@ -78,40 +76,40 @@ def add_content_type(model: object, content_type: object, changed: bool): def update_or_create_device_object( - status: str, - role: str, + status_name: str, + role_name: str, name: str, - location: str, - manufacturer: str, - platform: str, + location_name: str, + manufacturer_name: str, + platform_name: str, network_driver: str, model: str, - interface: str, - ip_address: str, + interface_name: str, + ip_host: str, config_context: dict = {}, ): # pylint: disable=dangerous-default-value,too-many-arguments,too-many-locals """Create or update device fixtures.""" - status, _ = Status.objects.get_or_create(name=status) + status, _ = Status.objects.get_or_create(name=status_name) namespace, _ = Namespace.objects.get_or_create(name="Global") Prefix.objects.update_or_create(prefix="192.0.2.0/24", namespace=namespace, status=status) device_content_type = ContentType.objects.get_for_model(Device) - role, role_changed = Role.objects.update_or_create(name=role) + role, role_changed = Role.objects.update_or_create(name=role_name) add_content_type(model=role, content_type=device_content_type, changed=role_changed) location_type, location_type_changed = LocationType.objects.get_or_create(name="Region") add_content_type(model=location_type, content_type=device_content_type, changed=location_type_changed) - location, _ = Location.objects.get_or_create(name=location, location_type=location_type, status=status) - manufacturer, _ = Manufacturer.objects.update_or_create(name=manufacturer) + location, _ = Location.objects.get_or_create(name=location_name, location_type=location_type, status=status) + manufacturer, _ = Manufacturer.objects.update_or_create(name=manufacturer_name) platform, _ = Platform.objects.update_or_create( - name=platform, manufacturer=manufacturer, network_driver=network_driver + name=platform_name, manufacturer=manufacturer, network_driver=network_driver ) device_type, _ = DeviceType.objects.update_or_create(manufacturer=manufacturer, model=model) device, _ = Device.objects.update_or_create( name=name, role=role, device_type=device_type, location=location, status=status, platform=platform ) - interface, _ = Interface.objects.update_or_create(name=interface, status=status, device=device) + Interface.objects.update_or_create(name=interface_name, status=status, device=device) - if ip_address: - ip_address, _ = IPAddress.objects.update_or_create(host=ip_address, mask_length=32, status=status) + if ip_host: + ip_address, _ = IPAddress.objects.get_or_create(host=ip_host, defaults={"mask_length": 32, "status": status}) ip_address.primary_ip4_for.add(device) device.local_config_context_data = config_context