netbox-validity 3.4.1__tar.gz → 3.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. {netbox_validity-3.4.1/netbox_validity.egg-info → netbox_validity-3.4.3}/PKG-INFO +2 -2
  2. {netbox_validity-3.4.1 → netbox_validity-3.4.3/netbox_validity.egg-info}/PKG-INFO +2 -2
  3. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/netbox_validity.egg-info/requires.txt +1 -1
  4. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/pyproject.toml +1 -1
  5. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/requirements/base.txt +1 -1
  6. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/__init__.py +1 -1
  7. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/graphql/filters.py +8 -8
  8. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/graphql/schema.py +2 -1
  9. netbox_validity-3.4.3/validity/netbox_changes/__init__.py +24 -0
  10. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/base.py +2 -3
  11. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/report.py +2 -3
  12. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/script.py +4 -2
  13. netbox_validity-3.4.1/validity/netbox_changes/__init__.py +0 -14
  14. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/LICENSE +0 -0
  15. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/MANIFEST.in +0 -0
  16. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/README.md +0 -0
  17. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/netbox_validity.egg-info/SOURCES.txt +0 -0
  18. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/netbox_validity.egg-info/dependency_links.txt +0 -0
  19. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/netbox_validity.egg-info/top_level.txt +0 -0
  20. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/requirements/dev.txt +0 -0
  21. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/requirements/docs.txt +0 -0
  22. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/setup.cfg +0 -0
  23. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/admin.py +0 -0
  24. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/api/__init__.py +0 -0
  25. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/api/helpers.py +0 -0
  26. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/api/serializers.py +0 -0
  27. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/api/urls.py +0 -0
  28. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/api/views.py +0 -0
  29. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/choices.py +0 -0
  30. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/dynamic_pairs.py +0 -0
  31. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/eval/__init__.py +0 -0
  32. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/eval/default_nameset.py +0 -0
  33. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/eval/eval.py +0 -0
  34. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/eval/eval_defaults.py +0 -0
  35. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/exceptions.py +0 -0
  36. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/__init__.py +0 -0
  37. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/backend.py +0 -0
  38. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/common.py +0 -0
  39. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/routeros.py +0 -0
  40. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/serializable.py +0 -0
  41. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/textfsm.py +0 -0
  42. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/ttp.py +0 -0
  43. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/xml.py +0 -0
  44. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/serialization/yaml.py +0 -0
  45. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/compliance/state.py +0 -0
  46. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/custom_validators.py +0 -0
  47. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/data_backends.py +0 -0
  48. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/data_backup/__init__.py +0 -0
  49. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/data_backup/backend.py +0 -0
  50. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/data_backup/backupers.py +0 -0
  51. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/data_backup/entities.py +0 -0
  52. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/data_backup/parameters.py +0 -0
  53. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/dependencies.py +0 -0
  54. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/fields/__init__.py +0 -0
  55. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/fields/encrypted.py +0 -0
  56. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/filtersets.py +0 -0
  57. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/__init__.py +0 -0
  58. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/bulk_import.py +0 -0
  59. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/fields.py +0 -0
  60. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/filterset.py +0 -0
  61. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/general.py +0 -0
  62. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/mixins.py +0 -0
  63. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/forms/widgets.py +0 -0
  64. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/graphql/__init__.py +0 -0
  65. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/graphql/types.py +0 -0
  66. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/integrations/data_models.py +0 -0
  67. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/integrations/errors.py +0 -0
  68. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/integrations/git.py +0 -0
  69. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/integrations/s3.py +0 -0
  70. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/j2_env.py +0 -0
  71. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/managers.py +0 -0
  72. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/migrations/0010_squashed_initial.py +0 -0
  73. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/migrations/0011_delete_scripts.py +0 -0
  74. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/migrations/0012_backuppoint_devicerole.py +0 -0
  75. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/migrations/0013_compliancetest_enabled.py +0 -0
  76. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/migrations/__init__.py +0 -0
  77. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/model_validators.py +0 -0
  78. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/__init__.py +0 -0
  79. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/backup.py +0 -0
  80. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/base.py +0 -0
  81. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/data.py +0 -0
  82. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/device.py +0 -0
  83. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/nameset.py +0 -0
  84. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/polling.py +0 -0
  85. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/report.py +0 -0
  86. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/selector.py +0 -0
  87. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/serializer.py +0 -0
  88. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/test.py +0 -0
  89. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/models/test_result.py +0 -0
  90. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/navigation.py +0 -0
  91. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/netbox_changes/current.py +0 -0
  92. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/netbox_changes/old.py +0 -0
  93. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/netbox_changes/oldest.py +0 -0
  94. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/__init__.py +0 -0
  95. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/base.py +0 -0
  96. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/cli.py +0 -0
  97. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/default_credentials.py +0 -0
  98. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/exceptions.py +0 -0
  99. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/factory.py +0 -0
  100. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/http.py +0 -0
  101. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/netconf.py +0 -0
  102. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/pollers/result.py +0 -0
  103. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/__init__.py +0 -0
  104. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/backup.py +0 -0
  105. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/data_models.py +0 -0
  106. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/exceptions.py +0 -0
  107. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/keeper.py +0 -0
  108. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/launch.py +0 -0
  109. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/parent_jobs.py +0 -0
  110. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/runtests/__init__.py +0 -0
  111. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/runtests/apply.py +0 -0
  112. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/runtests/combine.py +0 -0
  113. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/scripts/runtests/split.py +0 -0
  114. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/search.py +0 -0
  115. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/settings.py +0 -0
  116. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/signals.py +0 -0
  117. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/static/validity/connection-type-select.js +0 -0
  118. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/static/validity/prism-dark.css +0 -0
  119. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/static/validity/prism-light.css +0 -0
  120. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/static/validity/prism.js +0 -0
  121. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/subforms.py +0 -0
  122. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/tables.py +0 -0
  123. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/template_content.py +0 -0
  124. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/aux_tab_table.html +0 -0
  125. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/backuppoint.html +0 -0
  126. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/command.html +0 -0
  127. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/compliance_results.html +0 -0
  128. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/compliancereport.html +0 -0
  129. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/complianceselector.html +0 -0
  130. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/compliancetest.html +0 -0
  131. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/compliancetestresult.html +0 -0
  132. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/device_state.html +0 -0
  133. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/configcontext_format.html +0 -0
  134. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/datasource_link.html +0 -0
  135. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/parameters.html +0 -0
  136. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/path_with_link.html +0 -0
  137. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/prism.html +0 -0
  138. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/related_objects.html +0 -0
  139. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/report_stats_row.html +0 -0
  140. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/search_form.html +0 -0
  141. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/inc/yaml_card.html +0 -0
  142. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/nameset.html +0 -0
  143. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/poller.html +0 -0
  144. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/poller_edit.html +0 -0
  145. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/report_devices.html +0 -0
  146. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/scripts/result.html +0 -0
  147. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/scripts/result_htmx.html +0 -0
  148. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/scripts/run.html +0 -0
  149. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templates/validity/serializer.html +0 -0
  150. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templatetags/__init__.py +0 -0
  151. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templatetags/dto.py +0 -0
  152. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/templatetags/validity.py +0 -0
  153. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/urls.py +0 -0
  154. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/utils/bulk.py +0 -0
  155. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/utils/json.py +0 -0
  156. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/utils/logger.py +0 -0
  157. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/utils/misc.py +0 -0
  158. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/utils/orm.py +0 -0
  159. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/utils/version.py +0 -0
  160. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/__init__.py +0 -0
  161. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/backup.py +0 -0
  162. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/bulk_import.py +0 -0
  163. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/command.py +0 -0
  164. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/data_source.py +0 -0
  165. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/device.py +0 -0
  166. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/nameset.py +0 -0
  167. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/poller.py +0 -0
  168. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/selector.py +0 -0
  169. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/serializer.py +0 -0
  170. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/test.py +0 -0
  171. {netbox_validity-3.4.1 → netbox_validity-3.4.3}/validity/views/test_result.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-validity
3
- Version: 3.4.1
3
+ Version: 3.4.3
4
4
  Summary: NetBox plugin for network devices validation
5
5
  Author-email: Anton Miasnikov <anton2008m@gmail.com>
6
6
  License: MIT License
@@ -50,7 +50,7 @@ Requires-Dist: jq<2,>=1.4.0
50
50
  Requires-Dist: netmiko<5,>=4.0.0
51
51
  Requires-Dist: pydantic<3,>=2.0.0
52
52
  Requires-Dist: scrapli_netconf==2026.1.12
53
- Requires-Dist: simpleeval==1.0.3
53
+ Requires-Dist: simpleeval==1.0.7
54
54
  Requires-Dist: textfsm<2,>=1.1.3
55
55
  Requires-Dist: ttp<1
56
56
  Requires-Dist: xmltodict<1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-validity
3
- Version: 3.4.1
3
+ Version: 3.4.3
4
4
  Summary: NetBox plugin for network devices validation
5
5
  Author-email: Anton Miasnikov <anton2008m@gmail.com>
6
6
  License: MIT License
@@ -50,7 +50,7 @@ Requires-Dist: jq<2,>=1.4.0
50
50
  Requires-Dist: netmiko<5,>=4.0.0
51
51
  Requires-Dist: pydantic<3,>=2.0.0
52
52
  Requires-Dist: scrapli_netconf==2026.1.12
53
- Requires-Dist: simpleeval==1.0.3
53
+ Requires-Dist: simpleeval==1.0.7
54
54
  Requires-Dist: textfsm<2,>=1.1.3
55
55
  Requires-Dist: ttp<1
56
56
  Requires-Dist: xmltodict<1
@@ -7,7 +7,7 @@ jq<2,>=1.4.0
7
7
  netmiko<5,>=4.0.0
8
8
  pydantic<3,>=2.0.0
9
9
  scrapli_netconf==2026.1.12
10
- simpleeval==1.0.3
10
+ simpleeval==1.0.7
11
11
  textfsm<2,>=1.1.3
12
12
  ttp<1
13
13
  xmltodict<1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "netbox-validity"
7
- version = "3.4.1"
7
+ version = "3.4.3"
8
8
  description = "NetBox plugin for network devices validation"
9
9
  authors = [
10
10
  {name = "Anton Miasnikov", email = "anton2008m@gmail.com"},
@@ -7,7 +7,7 @@ jq>=1.4.0,<2
7
7
  netmiko>=4.0.0,<5
8
8
  pydantic>=2.0.0,<3
9
9
  scrapli_netconf==2026.1.12
10
- simpleeval==1.0.3
10
+ simpleeval==1.0.7
11
11
  textfsm>=1.1.3,<2
12
12
  ttp<1
13
13
  xmltodict<1
@@ -16,7 +16,7 @@ class NetBoxValidityConfig(PluginConfig):
16
16
  description = "Write and run auto tests for network devices"
17
17
  author = "Anton Miasnikov"
18
18
  author_email = "anton2008m@gmail.com"
19
- version = "3.4.1"
19
+ version = "3.4.3"
20
20
  base_url = "validity"
21
21
  django_apps = ["django_bootstrap5"]
22
22
  min_version = "4.3.0"
@@ -10,7 +10,7 @@ from strawberry.scalars import ID
10
10
  from strawberry_django import FilterLookup
11
11
 
12
12
  from validity import models
13
- from validity.netbox_changes import BaseModelFilter, NetBoxModelFilter
13
+ from validity.netbox_changes import BaseModelFilter, NetBoxModelFilter, StrFilterLookup
14
14
 
15
15
 
16
16
  @strawberry_django.filter_type(Job, lookups=True)
@@ -20,13 +20,13 @@ class JobFilter(NetBoxModelFilter):
20
20
 
21
21
  @strawberry_django.filter_type(models.ComplianceSelector, lookups=True)
22
22
  class ComplianceSelectorFilter(NetBoxModelFilter):
23
- name: FilterLookup[str] | None = strawberry_django.filter_field()
23
+ name: StrFilterLookup | None = strawberry_django.filter_field()
24
24
 
25
25
 
26
26
  @strawberry_django.filter_type(models.ComplianceTest, lookups=True)
27
27
  class ComplianceTestFilter(NetBoxModelFilter):
28
28
  id: FilterLookup[ID] | None = strawberry_django.filter_field()
29
- name: FilterLookup[str] | None = strawberry_django.filter_field()
29
+ name: StrFilterLookup | None = strawberry_django.filter_field()
30
30
  selectors: Annotated["ComplianceSelectorFilter", strawberry.lazy("validity.graphql.filters")] | None = (
31
31
  strawberry_django.filter_field()
32
32
  )
@@ -53,12 +53,12 @@ class ComplianceTestResultFilter(BaseModelFilter):
53
53
 
54
54
  @strawberry_django.filter_type(models.Serializer, lookups=True)
55
55
  class SerializerFilter(NetBoxModelFilter):
56
- name: FilterLookup[str] | None = strawberry_django.filter_field()
56
+ name: StrFilterLookup | None = strawberry_django.filter_field()
57
57
 
58
58
 
59
59
  @strawberry_django.filter_type(models.NameSet, lookups=True)
60
60
  class NameSetFilter(NetBoxModelFilter):
61
- name: FilterLookup[str] | None = strawberry_django.filter_field()
61
+ name: StrFilterLookup | None = strawberry_django.filter_field()
62
62
  _global: Annotated["bool", strawberry.lazy("builtins")] | None = strawberry_django.filter_field(name="global")
63
63
 
64
64
 
@@ -69,12 +69,12 @@ class ComplianceReportFilter(BaseModelFilter):
69
69
 
70
70
  @strawberry_django.filter_type(models.Poller, lookups=True)
71
71
  class PollerFilter(NetBoxModelFilter):
72
- name: FilterLookup[str] | None = strawberry_django.filter_field()
72
+ name: StrFilterLookup | None = strawberry_django.filter_field()
73
73
 
74
74
 
75
75
  @strawberry_django.filter_type(models.Command, lookups=True)
76
76
  class CommandFilter(NetBoxModelFilter):
77
- name: FilterLookup[str] | None = strawberry_django.filter_field()
77
+ name: StrFilterLookup | None = strawberry_django.filter_field()
78
78
  serializer: Annotated["SerializerFilter", strawberry.lazy("validity.graphql.filters")] | None = (
79
79
  strawberry_django.filter_field()
80
80
  )
@@ -86,7 +86,7 @@ class CommandFilter(NetBoxModelFilter):
86
86
 
87
87
  @strawberry_django.filter_type(models.BackupPoint, lookups=True)
88
88
  class BackupPointFilter(NetBoxModelFilter):
89
- name: FilterLookup[str] | None = strawberry_django.filter_field()
89
+ name: StrFilterLookup | None = strawberry_django.filter_field()
90
90
  data_source: Annotated["DataSourceFilter", strawberry.lazy("core.graphql.filters")] | None = (
91
91
  strawberry_django.filter_field()
92
92
  )
@@ -2,6 +2,7 @@ from typing import Annotated
2
2
 
3
3
  import strawberry
4
4
  import strawberry_django
5
+ from strawberry.types import Info
5
6
 
6
7
  from validity import models
7
8
  from .filters import NameSetFilter
@@ -42,7 +43,7 @@ class Query:
42
43
  @strawberry.field
43
44
  def validity_nameset_list(
44
45
  self,
45
- info,
46
+ info: Info,
46
47
  filters: NameSetFilter | None = None,
47
48
  global_filter: Annotated[bool | None, strawberry.argument(name="global")] = None,
48
49
  ) -> list[NameSetType]:
@@ -0,0 +1,24 @@
1
+ """
2
+ This package contains all duct tape stuff which is required to support
3
+ different versions of NetBox together
4
+ """
5
+
6
+ from pydoc import locate
7
+
8
+ from strawberry_django import FilterLookup
9
+
10
+ from validity import config
11
+
12
+
13
+ def get_base_table_kwargs(self):
14
+ return {"user": self.request.user} if config.netbox_version < "4.5.4" else {}
15
+
16
+
17
+ StrFilterLookup = locate("strawberry_django.StrFilterLookup") if config.netbox_version >= "4.5.5" else FilterLookup[str]
18
+
19
+ if config.netbox_version >= "4.5.0":
20
+ from .current import *
21
+ elif config.netbox_version >= "4.4.0":
22
+ from .old import *
23
+ else:
24
+ from .oldest import *
@@ -13,7 +13,7 @@ from django_tables2 import SingleTableMixin, Table
13
13
  from utilities.views import ObjectPermissionRequiredMixin as _ObjectPermissionRequiredMixin
14
14
  from utilities.views import ViewTab
15
15
 
16
- from validity import filtersets, forms, models, scripts, tables
16
+ from validity import filtersets, forms, models, netbox_changes, scripts, tables
17
17
  from validity.utils.misc import partialcls
18
18
 
19
19
 
@@ -100,8 +100,7 @@ class TestResultBaseView(ObjectPermissionRequiredMixin, SingleTableMixin, Filter
100
100
  table.exclude = (self.result_relation,)
101
101
  return table
102
102
 
103
- def get_table_kwargs(self):
104
- return {"user": self.request.user}
103
+ get_table_kwargs = netbox_changes.get_base_table_kwargs
105
104
 
106
105
  def get_queryset(self):
107
106
  return self.queryset.filter(**{self.result_relation: self.kwargs["pk"]})
@@ -8,7 +8,7 @@ from django_tables2 import SingleTableMixin
8
8
  from netbox.views import generic
9
9
  from utilities.views import ViewTab, register_model_view
10
10
 
11
- from validity import filtersets, forms, models, tables
11
+ from validity import filtersets, forms, models, netbox_changes, tables
12
12
  from validity.choices import DeviceGroupByChoices, SeverityChoices
13
13
  from .base import FilterViewWithForm, ObjectPermissionRequiredMixin, TestResultBaseView
14
14
 
@@ -102,8 +102,7 @@ class ReportDeviceView(ObjectPermissionRequiredMixin, SingleTableMixin, FilterVi
102
102
  table.configure(self.request)
103
103
  return table
104
104
 
105
- def get_table_kwargs(self):
106
- return {"user": self.request.user}
105
+ get_table_kwargs = netbox_changes.get_base_table_kwargs
107
106
 
108
107
  def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
109
108
  return super().get_context_data(**kwargs) | {
@@ -12,7 +12,7 @@ from utilities.htmx import htmx_partial
12
12
 
13
13
  from validity import di
14
14
  from validity.forms import RunTestsForm
15
- from validity.netbox_changes import get_logs
15
+ from validity.netbox_changes import get_base_table_kwargs, get_logs
16
16
  from validity.scripts import Launcher, RunTestsParams, ScriptParams
17
17
  from validity.tables import ScriptResultTable
18
18
  from .base import LauncherMixin
@@ -52,10 +52,12 @@ class ScriptResultView(PermissionRequiredMixin, TableMixin, ObjectView):
52
52
 
53
53
  def get_table(self, job, request, bulk_actions=False):
54
54
  logs = [entry | {"index": i} for i, entry in enumerate(get_logs(job), start=1)]
55
- table = self.table_class(logs, user=request.user)
55
+ table = self.table_class(logs, **self.get_table_kwargs())
56
56
  table.configure(request)
57
57
  return table
58
58
 
59
+ get_table_kwargs = get_base_table_kwargs
60
+
59
61
  def get(self, request, **kwargs):
60
62
  job = self.get_object(**kwargs)
61
63
  table = self.get_table(job, request) if job.completed else None
@@ -1,14 +0,0 @@
1
- """
2
- This package contains all duct tape stuff which is required to support
3
- different versions of NetBox together
4
- """
5
-
6
- from validity import config
7
-
8
-
9
- if config.netbox_version >= "4.5.0":
10
- from .current import *
11
- elif config.netbox_version >= "4.4.0":
12
- from .old import *
13
- else:
14
- from .oldest import *
File without changes