nautobot 1.6.31__py3-none-any.whl → 1.6.32__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/circuits/forms.py +6 -0
- nautobot/circuits/views.py +1 -0
- nautobot/core/graphql/schema.py +3 -1
- nautobot/core/graphql/types.py +10 -0
- nautobot/core/models/__init__.py +2 -0
- nautobot/core/templates/generic/object_list.html +1 -1
- nautobot/core/tests/test_views.py +73 -0
- nautobot/core/urls.py +3 -3
- nautobot/core/views/__init__.py +21 -0
- nautobot/dcim/forms.py +29 -0
- nautobot/dcim/models/device_component_templates.py +4 -0
- nautobot/dcim/models/device_components.py +4 -0
- nautobot/dcim/models/devices.py +2 -0
- nautobot/dcim/views.py +4 -0
- nautobot/extras/forms/forms.py +12 -0
- nautobot/extras/models/customfields.py +2 -0
- nautobot/extras/models/datasources.py +2 -0
- nautobot/extras/models/groups.py +8 -0
- nautobot/extras/models/jobs.py +10 -0
- nautobot/extras/models/models.py +2 -0
- nautobot/extras/models/secrets.py +8 -2
- nautobot/extras/secrets/__init__.py +14 -0
- nautobot/extras/tests/test_models.py +26 -0
- nautobot/extras/views.py +1 -0
- nautobot/ipam/filters.py +1 -1
- nautobot/ipam/forms.py +6 -0
- nautobot/ipam/models.py +8 -0
- nautobot/ipam/views.py +1 -0
- nautobot/project-static/docs/404.html +62 -0
- nautobot/project-static/docs/additional-features/caching.html +62 -0
- nautobot/project-static/docs/additional-features/change-logging.html +62 -0
- nautobot/project-static/docs/additional-features/config-contexts.html +62 -0
- nautobot/project-static/docs/additional-features/graphql.html +62 -0
- nautobot/project-static/docs/additional-features/healthcheck.html +62 -0
- nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +63 -1
- nautobot/project-static/docs/additional-features/jobs.html +62 -0
- nautobot/project-static/docs/additional-features/napalm.html +62 -0
- nautobot/project-static/docs/additional-features/prometheus-metrics.html +62 -0
- nautobot/project-static/docs/additional-features/template-filters.html +62 -0
- nautobot/project-static/docs/administration/celery-queues.html +63 -1
- nautobot/project-static/docs/administration/nautobot-server.html +62 -0
- nautobot/project-static/docs/administration/nautobot-shell.html +62 -0
- nautobot/project-static/docs/administration/permissions.html +62 -0
- nautobot/project-static/docs/administration/replicating-nautobot.html +62 -0
- nautobot/project-static/docs/administration/request-profiling.html +62 -0
- nautobot/project-static/docs/administration/security/index.html +4407 -0
- nautobot/project-static/docs/administration/security/notices.html +4797 -0
- nautobot/project-static/docs/apps/index.html +62 -0
- nautobot/project-static/docs/apps/nautobot-apps.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +83 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +67 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +140 -52
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +3203 -3101
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +62 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +210 -148
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +62 -0
- nautobot/project-static/docs/configuration/authentication/ldap.html +62 -0
- nautobot/project-static/docs/configuration/authentication/remote.html +62 -0
- nautobot/project-static/docs/configuration/authentication/sso.html +62 -0
- nautobot/project-static/docs/configuration/index.html +62 -0
- nautobot/project-static/docs/configuration/optional-settings.html +67 -5
- nautobot/project-static/docs/configuration/required-settings.html +62 -0
- nautobot/project-static/docs/core-functionality/circuits.html +62 -0
- nautobot/project-static/docs/core-functionality/device-types.html +62 -0
- nautobot/project-static/docs/core-functionality/devices.html +62 -0
- nautobot/project-static/docs/core-functionality/ipam.html +62 -0
- nautobot/project-static/docs/core-functionality/power.html +62 -0
- nautobot/project-static/docs/core-functionality/secrets.html +62 -0
- nautobot/project-static/docs/core-functionality/services.html +62 -0
- nautobot/project-static/docs/core-functionality/sites-and-racks.html +62 -0
- nautobot/project-static/docs/core-functionality/tenancy.html +62 -0
- nautobot/project-static/docs/core-functionality/virtualization.html +62 -0
- nautobot/project-static/docs/core-functionality/vlans.html +62 -0
- nautobot/project-static/docs/development/application-registry.html +62 -0
- nautobot/project-static/docs/development/best-practices.html +62 -0
- nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +62 -0
- nautobot/project-static/docs/development/extending-models.html +62 -0
- nautobot/project-static/docs/development/generic-views.html +62 -0
- nautobot/project-static/docs/development/getting-started.html +63 -1
- nautobot/project-static/docs/development/homepage.html +62 -0
- nautobot/project-static/docs/development/index.html +62 -0
- nautobot/project-static/docs/development/navigation-menu.html +62 -0
- nautobot/project-static/docs/development/release-checklist.html +62 -0
- nautobot/project-static/docs/development/style-guide.html +62 -0
- nautobot/project-static/docs/development/templates.html +62 -0
- nautobot/project-static/docs/development/testing.html +62 -0
- nautobot/project-static/docs/development/user-preferences.html +62 -0
- nautobot/project-static/docs/docker/index.html +62 -0
- nautobot/project-static/docs/index.html +62 -0
- nautobot/project-static/docs/installation/centos.html +62 -0
- nautobot/project-static/docs/installation/external-authentication.html +62 -0
- nautobot/project-static/docs/installation/http-server.html +62 -0
- nautobot/project-static/docs/installation/index.html +62 -0
- nautobot/project-static/docs/installation/migrating-from-netbox.html +62 -0
- nautobot/project-static/docs/installation/migrating-from-postgresql.html +62 -0
- nautobot/project-static/docs/installation/nautobot.html +62 -0
- nautobot/project-static/docs/installation/selinux-troubleshooting.html +62 -0
- nautobot/project-static/docs/installation/services.html +62 -0
- nautobot/project-static/docs/installation/ubuntu.html +62 -0
- nautobot/project-static/docs/installation/upgrading.html +62 -0
- nautobot/project-static/docs/models/circuits/circuit.html +62 -0
- nautobot/project-static/docs/models/circuits/circuittermination.html +62 -0
- nautobot/project-static/docs/models/circuits/circuittype.html +62 -0
- nautobot/project-static/docs/models/circuits/provider.html +62 -0
- nautobot/project-static/docs/models/circuits/providernetwork.html +62 -0
- nautobot/project-static/docs/models/dcim/cable.html +62 -0
- nautobot/project-static/docs/models/dcim/consoleport.html +62 -0
- nautobot/project-static/docs/models/dcim/consoleporttemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/consoleserverport.html +62 -0
- nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/device.html +62 -0
- nautobot/project-static/docs/models/dcim/devicebay.html +62 -0
- nautobot/project-static/docs/models/dcim/devicebaytemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +62 -0
- nautobot/project-static/docs/models/dcim/devicerole.html +62 -0
- nautobot/project-static/docs/models/dcim/devicetype.html +62 -0
- nautobot/project-static/docs/models/dcim/frontport.html +62 -0
- nautobot/project-static/docs/models/dcim/frontporttemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/interface.html +62 -0
- nautobot/project-static/docs/models/dcim/interfaceredundancygroup.html +62 -0
- nautobot/project-static/docs/models/dcim/interfacetemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/inventoryitem.html +62 -0
- nautobot/project-static/docs/models/dcim/location.html +62 -0
- nautobot/project-static/docs/models/dcim/locationtype.html +62 -0
- nautobot/project-static/docs/models/dcim/manufacturer.html +62 -0
- nautobot/project-static/docs/models/dcim/platform.html +62 -0
- nautobot/project-static/docs/models/dcim/powerfeed.html +62 -0
- nautobot/project-static/docs/models/dcim/poweroutlet.html +62 -0
- nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/powerpanel.html +62 -0
- nautobot/project-static/docs/models/dcim/powerport.html +62 -0
- nautobot/project-static/docs/models/dcim/powerporttemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/rack.html +62 -0
- nautobot/project-static/docs/models/dcim/rackgroup.html +62 -0
- nautobot/project-static/docs/models/dcim/rackreservation.html +62 -0
- nautobot/project-static/docs/models/dcim/rackrole.html +62 -0
- nautobot/project-static/docs/models/dcim/rearport.html +62 -0
- nautobot/project-static/docs/models/dcim/rearporttemplate.html +62 -0
- nautobot/project-static/docs/models/dcim/region.html +62 -0
- nautobot/project-static/docs/models/dcim/site.html +62 -0
- nautobot/project-static/docs/models/dcim/virtualchassis.html +62 -0
- nautobot/project-static/docs/models/extras/computedfield.html +63 -1
- nautobot/project-static/docs/models/extras/configcontext.html +62 -0
- nautobot/project-static/docs/models/extras/configcontextschema.html +62 -0
- nautobot/project-static/docs/models/extras/customfield.html +62 -0
- nautobot/project-static/docs/models/extras/customlink.html +63 -1
- nautobot/project-static/docs/models/extras/dynamicgroup.html +62 -0
- nautobot/project-static/docs/models/extras/exporttemplate.html +62 -0
- nautobot/project-static/docs/models/extras/gitrepository.html +62 -0
- nautobot/project-static/docs/models/extras/graphqlquery.html +62 -0
- nautobot/project-static/docs/models/extras/imageattachment.html +62 -0
- nautobot/project-static/docs/models/extras/job.html +62 -0
- nautobot/project-static/docs/models/extras/jobbutton.html +63 -1
- nautobot/project-static/docs/models/extras/jobhook.html +62 -0
- nautobot/project-static/docs/models/extras/joblogentry.html +62 -0
- nautobot/project-static/docs/models/extras/jobresult.html +62 -0
- nautobot/project-static/docs/models/extras/note.html +62 -0
- nautobot/project-static/docs/models/extras/relationship.html +62 -0
- nautobot/project-static/docs/models/extras/secret.html +62 -0
- nautobot/project-static/docs/models/extras/secretsgroup.html +62 -0
- nautobot/project-static/docs/models/extras/status.html +62 -0
- nautobot/project-static/docs/models/extras/tag.html +62 -0
- nautobot/project-static/docs/models/extras/webhook.html +62 -0
- nautobot/project-static/docs/models/ipam/aggregate.html +62 -0
- nautobot/project-static/docs/models/ipam/ipaddress.html +62 -0
- nautobot/project-static/docs/models/ipam/prefix.html +62 -0
- nautobot/project-static/docs/models/ipam/rir.html +62 -0
- nautobot/project-static/docs/models/ipam/role.html +62 -0
- nautobot/project-static/docs/models/ipam/routetarget.html +62 -0
- nautobot/project-static/docs/models/ipam/service.html +62 -0
- nautobot/project-static/docs/models/ipam/vlan.html +62 -0
- nautobot/project-static/docs/models/ipam/vlangroup.html +62 -0
- nautobot/project-static/docs/models/ipam/vrf.html +62 -0
- nautobot/project-static/docs/models/tenancy/tenant.html +62 -0
- nautobot/project-static/docs/models/tenancy/tenantgroup.html +62 -0
- nautobot/project-static/docs/models/users/objectpermission.html +62 -0
- nautobot/project-static/docs/models/users/token.html +62 -0
- nautobot/project-static/docs/models/virtualization/cluster.html +62 -0
- nautobot/project-static/docs/models/virtualization/clustergroup.html +62 -0
- nautobot/project-static/docs/models/virtualization/clustertype.html +62 -0
- nautobot/project-static/docs/models/virtualization/virtualmachine.html +62 -0
- nautobot/project-static/docs/models/virtualization/vminterface.html +62 -0
- nautobot/project-static/docs/plugins/development.html +63 -1
- nautobot/project-static/docs/plugins/index.html +62 -0
- nautobot/project-static/docs/plugins/porting-from-netbox.html +62 -0
- nautobot/project-static/docs/release-notes/index.html +62 -0
- nautobot/project-static/docs/release-notes/version-1.0.html +62 -0
- nautobot/project-static/docs/release-notes/version-1.1.html +64 -2
- nautobot/project-static/docs/release-notes/version-1.2.html +63 -1
- nautobot/project-static/docs/release-notes/version-1.3.html +62 -0
- nautobot/project-static/docs/release-notes/version-1.4.html +62 -0
- nautobot/project-static/docs/release-notes/version-1.5.html +62 -0
- nautobot/project-static/docs/release-notes/version-1.6.html +354 -188
- nautobot/project-static/docs/rest-api/authentication.html +62 -0
- nautobot/project-static/docs/rest-api/filtering.html +62 -0
- nautobot/project-static/docs/rest-api/overview.html +62 -0
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +197 -187
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guides/custom-fields.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +63 -1
- nautobot/project-static/docs/user-guides/getting-started/index.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/interfaces.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/ipam.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/platforms.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/regions.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/search-bar.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/tenants.html +62 -0
- nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +63 -1
- nautobot/project-static/docs/user-guides/git-data-source.html +62 -0
- nautobot/project-static/docs/user-guides/graphql.html +62 -0
- nautobot/project-static/docs/user-guides/relationships.html +62 -0
- nautobot/project-static/docs/user-guides/s3-django-storage.html +62 -0
- nautobot/tenancy/forms.py +10 -0
- nautobot/tenancy/views.py +1 -0
- nautobot/users/models.py +4 -0
- nautobot/utilities/testing/views.py +17 -1
- nautobot/utilities/tests/test_jinja_filters.py +26 -2
- nautobot/utilities/utils.py +14 -0
- nautobot/virtualization/forms.py +12 -0
- nautobot/virtualization/views.py +2 -0
- {nautobot-1.6.31.dist-info → nautobot-1.6.32.dist-info}/METADATA +1 -1
- {nautobot-1.6.31.dist-info → nautobot-1.6.32.dist-info}/RECORD +235 -233
- {nautobot-1.6.31.dist-info → nautobot-1.6.32.dist-info}/LICENSE.txt +0 -0
- {nautobot-1.6.31.dist-info → nautobot-1.6.32.dist-info}/NOTICE +0 -0
- {nautobot-1.6.31.dist-info → nautobot-1.6.32.dist-info}/WHEEL +0 -0
- {nautobot-1.6.31.dist-info → nautobot-1.6.32.dist-info}/entry_points.txt +0 -0
|
@@ -869,6 +869,68 @@
|
|
|
869
869
|
|
|
870
870
|
|
|
871
871
|
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5_7" >
|
|
884
|
+
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
<label class="md-nav__link" for="__nav_2_5_7" id="__nav_2_5_7_label" tabindex="0">
|
|
888
|
+
Security
|
|
889
|
+
<span class="md-nav__icon md-icon"></span>
|
|
890
|
+
</label>
|
|
891
|
+
|
|
892
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_5_7_label" aria-expanded="false">
|
|
893
|
+
<label class="md-nav__title" for="__nav_2_5_7">
|
|
894
|
+
<span class="md-nav__icon md-icon"></span>
|
|
895
|
+
Security
|
|
896
|
+
</label>
|
|
897
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
<li class="md-nav__item">
|
|
905
|
+
<a href="../../../administration/security/index.html" class="md-nav__link">
|
|
906
|
+
Nautobot Security
|
|
907
|
+
</a>
|
|
908
|
+
</li>
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
<li class="md-nav__item">
|
|
919
|
+
<a href="../../../administration/security/notices.html" class="md-nav__link">
|
|
920
|
+
Notices
|
|
921
|
+
</a>
|
|
922
|
+
</li>
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
</ul>
|
|
928
|
+
</nav>
|
|
929
|
+
</li>
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
|
|
872
934
|
</ul>
|
|
873
935
|
</nav>
|
|
874
936
|
</li>
|
|
@@ -4117,21 +4179,7 @@
|
|
|
4117
4179
|
|
|
4118
4180
|
<details class="quote">
|
|
4119
4181
|
<summary>Source code in <code>nautobot/utilities/utils.py</code></summary>
|
|
4120
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
4121
|
-
<span class="normal"><a href="#__codelineno-0-772">772</a></span>
|
|
4122
|
-
<span class="normal"><a href="#__codelineno-0-773">773</a></span>
|
|
4123
|
-
<span class="normal"><a href="#__codelineno-0-774">774</a></span>
|
|
4124
|
-
<span class="normal"><a href="#__codelineno-0-775">775</a></span>
|
|
4125
|
-
<span class="normal"><a href="#__codelineno-0-776">776</a></span>
|
|
4126
|
-
<span class="normal"><a href="#__codelineno-0-777">777</a></span>
|
|
4127
|
-
<span class="normal"><a href="#__codelineno-0-778">778</a></span>
|
|
4128
|
-
<span class="normal"><a href="#__codelineno-0-779">779</a></span>
|
|
4129
|
-
<span class="normal"><a href="#__codelineno-0-780">780</a></span>
|
|
4130
|
-
<span class="normal"><a href="#__codelineno-0-781">781</a></span>
|
|
4131
|
-
<span class="normal"><a href="#__codelineno-0-782">782</a></span>
|
|
4132
|
-
<span class="normal"><a href="#__codelineno-0-783">783</a></span>
|
|
4133
|
-
<span class="normal"><a href="#__codelineno-0-784">784</a></span>
|
|
4134
|
-
<span class="normal"><a href="#__codelineno-0-785">785</a></span>
|
|
4182
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-785">785</a></span>
|
|
4135
4183
|
<span class="normal"><a href="#__codelineno-0-786">786</a></span>
|
|
4136
4184
|
<span class="normal"><a href="#__codelineno-0-787">787</a></span>
|
|
4137
4185
|
<span class="normal"><a href="#__codelineno-0-788">788</a></span>
|
|
@@ -4161,51 +4209,65 @@
|
|
|
4161
4209
|
<span class="normal"><a href="#__codelineno-0-812">812</a></span>
|
|
4162
4210
|
<span class="normal"><a href="#__codelineno-0-813">813</a></span>
|
|
4163
4211
|
<span class="normal"><a href="#__codelineno-0-814">814</a></span>
|
|
4164
|
-
<span class="normal"><a href="#__codelineno-0-815">815</a></span
|
|
4165
|
-
<
|
|
4166
|
-
<
|
|
4167
|
-
<
|
|
4168
|
-
<
|
|
4169
|
-
<
|
|
4170
|
-
<
|
|
4171
|
-
<
|
|
4172
|
-
<
|
|
4173
|
-
<
|
|
4174
|
-
<
|
|
4175
|
-
<
|
|
4176
|
-
<
|
|
4177
|
-
<
|
|
4178
|
-
<a id="__codelineno-0-785" name="__codelineno-0-785"></a>
|
|
4179
|
-
<a id="__codelineno-0-786" name="__codelineno-0-786"></a
|
|
4180
|
-
<a id="__codelineno-0-787" name="__codelineno-0-787"></a
|
|
4181
|
-
<a id="__codelineno-0-788" name="__codelineno-0-788"></a>
|
|
4182
|
-
<a id="__codelineno-0-789" name="__codelineno-0-789"></a
|
|
4183
|
-
<a id="__codelineno-0-790" name="__codelineno-0-790"></a
|
|
4184
|
-
<a id="__codelineno-0-791" name="__codelineno-0-791"></a
|
|
4185
|
-
<a id="__codelineno-0-792" name="__codelineno-0-792"></a
|
|
4186
|
-
<a id="__codelineno-0-793" name="__codelineno-0-793"></a
|
|
4187
|
-
<a id="__codelineno-0-794" name="__codelineno-0-794"></a
|
|
4188
|
-
<a id="__codelineno-0-795" name="__codelineno-0-795"></a> <span class="
|
|
4189
|
-
<a id="__codelineno-0-796" name="__codelineno-0-796"></a> <span class="c1"># "
|
|
4190
|
-
<a id="__codelineno-0-797" name="__codelineno-0-797"></a> <span class="c1"># "/
|
|
4191
|
-
<a id="__codelineno-0-798" name="__codelineno-0-798"></a> <span class="
|
|
4192
|
-
<a id="__codelineno-0-799" name="__codelineno-0-799"></a> <span class="
|
|
4193
|
-
<a id="__codelineno-0-800" name="__codelineno-0-800"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"
|
|
4194
|
-
<a id="__codelineno-0-801" name="__codelineno-0-801"></a> <span class="
|
|
4195
|
-
<a id="__codelineno-0-802" name="__codelineno-0-802"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"
|
|
4196
|
-
<a id="__codelineno-0-803" name="__codelineno-0-803"></a> <span class="
|
|
4197
|
-
<a id="__codelineno-0-804" name="__codelineno-0-804"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"
|
|
4198
|
-
<a id="__codelineno-0-805" name="__codelineno-0-805"></a> <span class="
|
|
4199
|
-
<a id="__codelineno-0-806" name="__codelineno-0-806"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"
|
|
4200
|
-
<a id="__codelineno-0-807" name="__codelineno-0-807"></a> <span class="
|
|
4201
|
-
<a id="__codelineno-0-808" name="__codelineno-0-808"></a> <span class="
|
|
4202
|
-
<a id="__codelineno-0-809" name="__codelineno-0-809"></a> <span class="
|
|
4203
|
-
<a id="__codelineno-0-810" name="__codelineno-0-810"></a> <span class="
|
|
4204
|
-
<a id="__codelineno-0-811" name="__codelineno-0-811"></a>
|
|
4205
|
-
<a id="__codelineno-0-812" name="__codelineno-0-812"></a> <span class="
|
|
4206
|
-
<a id="__codelineno-0-813" name="__codelineno-0-813"></a>
|
|
4207
|
-
<a id="__codelineno-0-814" name="__codelineno-0-814"></a>
|
|
4208
|
-
<a id="__codelineno-0-815" name="__codelineno-0-815"></a> <span class="
|
|
4212
|
+
<span class="normal"><a href="#__codelineno-0-815">815</a></span>
|
|
4213
|
+
<span class="normal"><a href="#__codelineno-0-816">816</a></span>
|
|
4214
|
+
<span class="normal"><a href="#__codelineno-0-817">817</a></span>
|
|
4215
|
+
<span class="normal"><a href="#__codelineno-0-818">818</a></span>
|
|
4216
|
+
<span class="normal"><a href="#__codelineno-0-819">819</a></span>
|
|
4217
|
+
<span class="normal"><a href="#__codelineno-0-820">820</a></span>
|
|
4218
|
+
<span class="normal"><a href="#__codelineno-0-821">821</a></span>
|
|
4219
|
+
<span class="normal"><a href="#__codelineno-0-822">822</a></span>
|
|
4220
|
+
<span class="normal"><a href="#__codelineno-0-823">823</a></span>
|
|
4221
|
+
<span class="normal"><a href="#__codelineno-0-824">824</a></span>
|
|
4222
|
+
<span class="normal"><a href="#__codelineno-0-825">825</a></span>
|
|
4223
|
+
<span class="normal"><a href="#__codelineno-0-826">826</a></span>
|
|
4224
|
+
<span class="normal"><a href="#__codelineno-0-827">827</a></span>
|
|
4225
|
+
<span class="normal"><a href="#__codelineno-0-828">828</a></span>
|
|
4226
|
+
<span class="normal"><a href="#__codelineno-0-829">829</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-785" name="__codelineno-0-785"></a><span class="k">def</span> <span class="nf">get_url_for_url_pattern</span><span class="p">(</span><span class="n">url_pattern</span><span class="p">):</span>
|
|
4227
|
+
<a id="__codelineno-0-786" name="__codelineno-0-786"></a><span class="w"> </span><span class="sd">"""</span>
|
|
4228
|
+
<a id="__codelineno-0-787" name="__codelineno-0-787"></a><span class="sd"> Given a URL pattern, construct a URL string that would match that pattern.</span>
|
|
4229
|
+
<a id="__codelineno-0-788" name="__codelineno-0-788"></a>
|
|
4230
|
+
<a id="__codelineno-0-789" name="__codelineno-0-789"></a><span class="sd"> Examples:</span>
|
|
4231
|
+
<a id="__codelineno-0-790" name="__codelineno-0-790"></a><span class="sd"> >>> get_url_for_url_pattern("/plugins/example-plugin/^models/(?P<pk>[^/.]+)/$")</span>
|
|
4232
|
+
<a id="__codelineno-0-791" name="__codelineno-0-791"></a><span class="sd"> '/plugins/example-plugin/models/00000000-0000-0000-0000-000000000000/'</span>
|
|
4233
|
+
<a id="__codelineno-0-792" name="__codelineno-0-792"></a><span class="sd"> >>> get_url_for_url_pattern("/circuits/circuit-terminations/<uuid:termination_a_id>/connect/<str:termination_b_type>/")</span>
|
|
4234
|
+
<a id="__codelineno-0-793" name="__codelineno-0-793"></a><span class="sd"> '/circuits/circuit-terminations/00000000-0000-0000-0000-000000000000/connect/string/'</span>
|
|
4235
|
+
<a id="__codelineno-0-794" name="__codelineno-0-794"></a><span class="sd"> """</span>
|
|
4236
|
+
<a id="__codelineno-0-795" name="__codelineno-0-795"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">url_pattern</span>
|
|
4237
|
+
<a id="__codelineno-0-796" name="__codelineno-0-796"></a> <span class="c1"># Fixup tokens in path-style "classic" view URLs:</span>
|
|
4238
|
+
<a id="__codelineno-0-797" name="__codelineno-0-797"></a> <span class="c1"># "/admin/users/user/<id>/password/"</span>
|
|
4239
|
+
<a id="__codelineno-0-798" name="__codelineno-0-798"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"<id>"</span><span class="p">,</span> <span class="s2">"00000000-0000-0000-0000-000000000000"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4240
|
+
<a id="__codelineno-0-799" name="__codelineno-0-799"></a> <span class="c1"># "/silk/request/<uuid:request_id>/profile/<int:profile_id>/"</span>
|
|
4241
|
+
<a id="__codelineno-0-800" name="__codelineno-0-800"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"<int:\w+>"</span><span class="p">,</span> <span class="s2">"1"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4242
|
+
<a id="__codelineno-0-801" name="__codelineno-0-801"></a> <span class="c1"># "/admin/admin/logentry/<path:object_id>/"</span>
|
|
4243
|
+
<a id="__codelineno-0-802" name="__codelineno-0-802"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"<path:\w+>"</span><span class="p">,</span> <span class="s2">"1"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4244
|
+
<a id="__codelineno-0-803" name="__codelineno-0-803"></a> <span class="c1"># "/dcim/sites/<slug:slug>/"</span>
|
|
4245
|
+
<a id="__codelineno-0-804" name="__codelineno-0-804"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"<slug:\w+>"</span><span class="p">,</span> <span class="s2">"slug"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4246
|
+
<a id="__codelineno-0-805" name="__codelineno-0-805"></a> <span class="c1"># "/apps/installed-apps/<str:app>/"</span>
|
|
4247
|
+
<a id="__codelineno-0-806" name="__codelineno-0-806"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"<str:\w+>"</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4248
|
+
<a id="__codelineno-0-807" name="__codelineno-0-807"></a> <span class="c1"># "/dcim/locations/<uuid:pk>/"</span>
|
|
4249
|
+
<a id="__codelineno-0-808" name="__codelineno-0-808"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"<uuid:\w+>"</span><span class="p">,</span> <span class="s2">"00000000-0000-0000-0000-000000000000"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4250
|
+
<a id="__codelineno-0-809" name="__codelineno-0-809"></a> <span class="c1"># tokens in regexp-style router urls, including REST and NautobotUIViewSet:</span>
|
|
4251
|
+
<a id="__codelineno-0-810" name="__codelineno-0-810"></a> <span class="c1"># "/extras/^external-integrations/(?P<pk>[^/.]+)/$"</span>
|
|
4252
|
+
<a id="__codelineno-0-811" name="__codelineno-0-811"></a> <span class="c1"># "/api/virtualization/^interfaces/(?P<pk>[^/.]+)/$"</span>
|
|
4253
|
+
<a id="__codelineno-0-812" name="__codelineno-0-812"></a> <span class="c1"># "/api/virtualization/^interfaces/(?P<pk>[^/.]+)\\.(?P<format>[a-z0-9]+)/?$"</span>
|
|
4254
|
+
<a id="__codelineno-0-813" name="__codelineno-0-813"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"[$^]"</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4255
|
+
<a id="__codelineno-0-814" name="__codelineno-0-814"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"/\?"</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4256
|
+
<a id="__codelineno-0-815" name="__codelineno-0-815"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<app_label>[^)]+\)"</span><span class="p">,</span> <span class="s2">"users"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4257
|
+
<a id="__codelineno-0-816" name="__codelineno-0-816"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<class_path>[^)]+\)"</span><span class="p">,</span> <span class="s2">"foo/bar/baz"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4258
|
+
<a id="__codelineno-0-817" name="__codelineno-0-817"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<format>[^)]+\)"</span><span class="p">,</span> <span class="s2">"json"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4259
|
+
<a id="__codelineno-0-818" name="__codelineno-0-818"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<name>[^)]+\)"</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4260
|
+
<a id="__codelineno-0-819" name="__codelineno-0-819"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<pk>[^)]+\)"</span><span class="p">,</span> <span class="s2">"00000000-0000-0000-0000-000000000000"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4261
|
+
<a id="__codelineno-0-820" name="__codelineno-0-820"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<slug>[^)]+\)"</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4262
|
+
<a id="__codelineno-0-821" name="__codelineno-0-821"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<url>[^)]+\)"</span><span class="p">,</span> <span class="s2">"any"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4263
|
+
<a id="__codelineno-0-822" name="__codelineno-0-822"></a> <span class="c1"># Fallthru for generic URL parameters</span>
|
|
4264
|
+
<a id="__codelineno-0-823" name="__codelineno-0-823"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\(\?P<\w+>[^)]+\)\??"</span><span class="p">,</span> <span class="s2">"unknown"</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4265
|
+
<a id="__codelineno-0-824" name="__codelineno-0-824"></a> <span class="n">url</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="n">url</span><span class="p">)</span>
|
|
4266
|
+
<a id="__codelineno-0-825" name="__codelineno-0-825"></a>
|
|
4267
|
+
<a id="__codelineno-0-826" name="__codelineno-0-826"></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span> <span class="ow">in</span> <span class="n">url</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="s2">"<>[]()?+^$"</span><span class="p">):</span>
|
|
4268
|
+
<a id="__codelineno-0-827" name="__codelineno-0-827"></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unhandled token in URL </span><span class="si">{</span><span class="n">url</span><span class="si">}</span><span class="s2"> derived from </span><span class="si">{</span><span class="n">url_pattern</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
4269
|
+
<a id="__codelineno-0-828" name="__codelineno-0-828"></a>
|
|
4270
|
+
<a id="__codelineno-0-829" name="__codelineno-0-829"></a> <span class="k">return</span> <span class="n">url</span>
|
|
4209
4271
|
</code></pre></div></td></tr></table></div>
|
|
4210
4272
|
</details>
|
|
4211
4273
|
</div>
|
|
@@ -4364,21 +4426,7 @@ Default if unspecified is the string <code>"/"</code>.</p>
|
|
|
4364
4426
|
|
|
4365
4427
|
<details class="quote">
|
|
4366
4428
|
<summary>Source code in <code>nautobot/utilities/utils.py</code></summary>
|
|
4367
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
4368
|
-
<span class="normal"><a href="#__codelineno-0-697">697</a></span>
|
|
4369
|
-
<span class="normal"><a href="#__codelineno-0-698">698</a></span>
|
|
4370
|
-
<span class="normal"><a href="#__codelineno-0-699">699</a></span>
|
|
4371
|
-
<span class="normal"><a href="#__codelineno-0-700">700</a></span>
|
|
4372
|
-
<span class="normal"><a href="#__codelineno-0-701">701</a></span>
|
|
4373
|
-
<span class="normal"><a href="#__codelineno-0-702">702</a></span>
|
|
4374
|
-
<span class="normal"><a href="#__codelineno-0-703">703</a></span>
|
|
4375
|
-
<span class="normal"><a href="#__codelineno-0-704">704</a></span>
|
|
4376
|
-
<span class="normal"><a href="#__codelineno-0-705">705</a></span>
|
|
4377
|
-
<span class="normal"><a href="#__codelineno-0-706">706</a></span>
|
|
4378
|
-
<span class="normal"><a href="#__codelineno-0-707">707</a></span>
|
|
4379
|
-
<span class="normal"><a href="#__codelineno-0-708">708</a></span>
|
|
4380
|
-
<span class="normal"><a href="#__codelineno-0-709">709</a></span>
|
|
4381
|
-
<span class="normal"><a href="#__codelineno-0-710">710</a></span>
|
|
4429
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-710">710</a></span>
|
|
4382
4430
|
<span class="normal"><a href="#__codelineno-0-711">711</a></span>
|
|
4383
4431
|
<span class="normal"><a href="#__codelineno-0-712">712</a></span>
|
|
4384
4432
|
<span class="normal"><a href="#__codelineno-0-713">713</a></span>
|
|
@@ -4436,79 +4484,93 @@ Default if unspecified is the string <code>"/"</code>.</p>
|
|
|
4436
4484
|
<span class="normal"><a href="#__codelineno-0-765">765</a></span>
|
|
4437
4485
|
<span class="normal"><a href="#__codelineno-0-766">766</a></span>
|
|
4438
4486
|
<span class="normal"><a href="#__codelineno-0-767">767</a></span>
|
|
4439
|
-
<span class="normal"><a href="#__codelineno-0-768">768</a></span
|
|
4440
|
-
<
|
|
4441
|
-
<
|
|
4442
|
-
<
|
|
4443
|
-
<
|
|
4444
|
-
<
|
|
4445
|
-
<
|
|
4446
|
-
<
|
|
4447
|
-
<
|
|
4448
|
-
<
|
|
4449
|
-
<
|
|
4450
|
-
<
|
|
4451
|
-
<
|
|
4452
|
-
<
|
|
4453
|
-
<a id="__codelineno-0-710" name="__codelineno-0-710"></a>
|
|
4454
|
-
<a id="__codelineno-0-711" name="__codelineno-0-711"></a><span class="
|
|
4455
|
-
<a id="__codelineno-0-712" name="__codelineno-0-712"></a><span class="sd">
|
|
4456
|
-
<a id="__codelineno-0-713" name="__codelineno-0-713"></a
|
|
4457
|
-
<a id="__codelineno-0-714" name="__codelineno-0-714"></a><span class="sd">
|
|
4458
|
-
<a id="__codelineno-0-715" name="__codelineno-0-715"></a><span class="sd">
|
|
4459
|
-
<a id="__codelineno-0-716" name="__codelineno-0-716"></a><span class="sd">
|
|
4460
|
-
<a id="__codelineno-0-717" name="__codelineno-0-717"></a><span class="sd">
|
|
4461
|
-
<a id="__codelineno-0-718" name="__codelineno-0-718"></a><span class="sd">
|
|
4462
|
-
<a id="__codelineno-0-719" name="__codelineno-0-719"></a><span class="sd">
|
|
4463
|
-
<a id="__codelineno-0-720" name="__codelineno-0-720"></a><span class="sd">
|
|
4464
|
-
<a id="__codelineno-0-721" name="__codelineno-0-721"></a
|
|
4465
|
-
<a id="__codelineno-0-722" name="__codelineno-0-722"></a><span class="sd">
|
|
4466
|
-
<a id="__codelineno-0-723" name="__codelineno-0-723"></a>
|
|
4467
|
-
<a id="__codelineno-0-724" name="__codelineno-0-724"></a
|
|
4468
|
-
<a id="__codelineno-0-725" name="__codelineno-0-725"></a><span class="sd">
|
|
4469
|
-
<a id="__codelineno-0-726" name="__codelineno-0-726"></a><span class="sd">
|
|
4470
|
-
<a id="__codelineno-0-727" name="__codelineno-0-727"></a><span class="sd">
|
|
4471
|
-
<a id="__codelineno-0-728" name="__codelineno-0-728"></a><span class="sd">
|
|
4472
|
-
<a id="__codelineno-0-729" name="__codelineno-0-729"></a><span class="sd">
|
|
4473
|
-
<a id="__codelineno-0-730" name="__codelineno-0-730"></a><span class="sd">
|
|
4474
|
-
<a id="__codelineno-0-731" name="__codelineno-0-731"></a><span class="sd">
|
|
4475
|
-
<a id="__codelineno-0-732" name="__codelineno-0-732"></a><span class="sd">
|
|
4476
|
-
<a id="__codelineno-0-733" name="__codelineno-0-733"></a><span class="sd">
|
|
4477
|
-
<a id="__codelineno-0-734" name="__codelineno-0-734"></a><span class="sd">
|
|
4478
|
-
<a id="__codelineno-0-735" name="__codelineno-0-735"></a><span class="sd">
|
|
4479
|
-
<a id="__codelineno-0-736" name="__codelineno-0-736"></a><span class="sd"> /
|
|
4480
|
-
<a id="__codelineno-0-737" name="__codelineno-0-737"></a
|
|
4481
|
-
<a id="__codelineno-0-738" name="__codelineno-0-738"></a><span class="sd">
|
|
4482
|
-
<a id="__codelineno-0-739" name="__codelineno-0-739"></a><span class="sd">
|
|
4483
|
-
<a id="__codelineno-0-740" name="__codelineno-0-740"></a><span class="sd">
|
|
4484
|
-
<a id="__codelineno-0-741" name="__codelineno-0-741"></a><span class="sd">
|
|
4485
|
-
<a id="__codelineno-0-742" name="__codelineno-0-742"></a><span class="sd"> /plugins/example-plugin
|
|
4486
|
-
<a id="__codelineno-0-743" name="__codelineno-0-743"></a><span class="sd"> /plugins/example-plugin
|
|
4487
|
-
<a id="__codelineno-0-744" name="__codelineno-0-744"></a><span class="sd"> /plugins/example-plugin
|
|
4488
|
-
<a id="__codelineno-0-745" name="__codelineno-0-745"></a><span class="sd"> /plugins/example-plugin
|
|
4489
|
-
<a id="__codelineno-0-746" name="__codelineno-0-746"></a><span class="sd"> /plugins/example-plugin
|
|
4490
|
-
<a id="__codelineno-0-747" name="__codelineno-0-747"></a><span class="sd"> /plugins/example-plugin
|
|
4491
|
-
<a id="__codelineno-0-748" name="__codelineno-0-748"></a><span class="sd"> /plugins/example-plugin
|
|
4492
|
-
<a id="__codelineno-0-749" name="__codelineno-0-749"></a><span class="sd"> /plugins/example-plugin
|
|
4493
|
-
<a id="__codelineno-0-750" name="__codelineno-0-750"></a><span class="sd"> /plugins/example-plugin
|
|
4494
|
-
<a id="__codelineno-0-751" name="__codelineno-0-751"></a><span class="sd"> /plugins/example-plugin/^
|
|
4495
|
-
<a id="__codelineno-0-752" name="__codelineno-0-752"></a><span class="sd"> /plugins/example-plugin/^
|
|
4496
|
-
<a id="__codelineno-0-753" name="__codelineno-0-753"></a><span class="sd"> /plugins/example-plugin/^
|
|
4497
|
-
<a id="__codelineno-0-754" name="__codelineno-0-754"></a><span class="sd"> /plugins/example-plugin/^
|
|
4498
|
-
<a id="__codelineno-0-755" name="__codelineno-0-755"></a><span class="sd"> /plugins/example-plugin/^
|
|
4499
|
-
<a id="__codelineno-0-756" name="__codelineno-0-756"></a><span class="sd"> /plugins/example-plugin/^
|
|
4500
|
-
<a id="__codelineno-0-757" name="__codelineno-0-757"></a><span class="sd">
|
|
4501
|
-
<a id="__codelineno-0-758" name="__codelineno-0-758"></a
|
|
4502
|
-
<a id="__codelineno-0-759" name="__codelineno-0-759"></a
|
|
4503
|
-
<a id="__codelineno-0-760" name="__codelineno-0-760"></a
|
|
4504
|
-
<a id="__codelineno-0-761" name="__codelineno-0-761"></a
|
|
4505
|
-
<a id="__codelineno-0-762" name="__codelineno-0-762"></a>
|
|
4506
|
-
<a id="__codelineno-0-763" name="__codelineno-0-763"></a
|
|
4507
|
-
<a id="__codelineno-0-764" name="__codelineno-0-764"></a
|
|
4508
|
-
<a id="__codelineno-0-765" name="__codelineno-0-765"></a
|
|
4509
|
-
<a id="__codelineno-0-766" name="__codelineno-0-766"></a
|
|
4510
|
-
<a id="__codelineno-0-767" name="__codelineno-0-767"></a
|
|
4511
|
-
<a id="__codelineno-0-768" name="__codelineno-0-768"></a
|
|
4487
|
+
<span class="normal"><a href="#__codelineno-0-768">768</a></span>
|
|
4488
|
+
<span class="normal"><a href="#__codelineno-0-769">769</a></span>
|
|
4489
|
+
<span class="normal"><a href="#__codelineno-0-770">770</a></span>
|
|
4490
|
+
<span class="normal"><a href="#__codelineno-0-771">771</a></span>
|
|
4491
|
+
<span class="normal"><a href="#__codelineno-0-772">772</a></span>
|
|
4492
|
+
<span class="normal"><a href="#__codelineno-0-773">773</a></span>
|
|
4493
|
+
<span class="normal"><a href="#__codelineno-0-774">774</a></span>
|
|
4494
|
+
<span class="normal"><a href="#__codelineno-0-775">775</a></span>
|
|
4495
|
+
<span class="normal"><a href="#__codelineno-0-776">776</a></span>
|
|
4496
|
+
<span class="normal"><a href="#__codelineno-0-777">777</a></span>
|
|
4497
|
+
<span class="normal"><a href="#__codelineno-0-778">778</a></span>
|
|
4498
|
+
<span class="normal"><a href="#__codelineno-0-779">779</a></span>
|
|
4499
|
+
<span class="normal"><a href="#__codelineno-0-780">780</a></span>
|
|
4500
|
+
<span class="normal"><a href="#__codelineno-0-781">781</a></span>
|
|
4501
|
+
<span class="normal"><a href="#__codelineno-0-782">782</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-710" name="__codelineno-0-710"></a><span class="k">def</span> <span class="nf">get_url_patterns</span><span class="p">(</span><span class="n">urlconf</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">patterns_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">base_path</span><span class="o">=</span><span class="s2">"/"</span><span class="p">):</span>
|
|
4502
|
+
<a id="__codelineno-0-711" name="__codelineno-0-711"></a><span class="w"> </span><span class="sd">"""</span>
|
|
4503
|
+
<a id="__codelineno-0-712" name="__codelineno-0-712"></a><span class="sd"> Recursively yield a list of registered URL patterns.</span>
|
|
4504
|
+
<a id="__codelineno-0-713" name="__codelineno-0-713"></a>
|
|
4505
|
+
<a id="__codelineno-0-714" name="__codelineno-0-714"></a><span class="sd"> Args:</span>
|
|
4506
|
+
<a id="__codelineno-0-715" name="__codelineno-0-715"></a><span class="sd"> urlconf (URLConf): Python module such as `nautobot.core.urls`.</span>
|
|
4507
|
+
<a id="__codelineno-0-716" name="__codelineno-0-716"></a><span class="sd"> Default if unspecified is the value of `settings.ROOT_URLCONF`, i.e. the `nautobot.core.urls` module.</span>
|
|
4508
|
+
<a id="__codelineno-0-717" name="__codelineno-0-717"></a><span class="sd"> patterns_list (list): Used in recursion. Generally can be omitted on initial call.</span>
|
|
4509
|
+
<a id="__codelineno-0-718" name="__codelineno-0-718"></a><span class="sd"> Default if unspecified is the `url_patterns` attribute of the given `urlconf` module.</span>
|
|
4510
|
+
<a id="__codelineno-0-719" name="__codelineno-0-719"></a><span class="sd"> base_path (str): String to prepend to all URL patterns yielded.</span>
|
|
4511
|
+
<a id="__codelineno-0-720" name="__codelineno-0-720"></a><span class="sd"> Default if unspecified is the string `"/"`.</span>
|
|
4512
|
+
<a id="__codelineno-0-721" name="__codelineno-0-721"></a>
|
|
4513
|
+
<a id="__codelineno-0-722" name="__codelineno-0-722"></a><span class="sd"> Yields:</span>
|
|
4514
|
+
<a id="__codelineno-0-723" name="__codelineno-0-723"></a><span class="sd"> (str): Each URL pattern defined in the given urlconf and its descendants</span>
|
|
4515
|
+
<a id="__codelineno-0-724" name="__codelineno-0-724"></a>
|
|
4516
|
+
<a id="__codelineno-0-725" name="__codelineno-0-725"></a><span class="sd"> Examples:</span>
|
|
4517
|
+
<a id="__codelineno-0-726" name="__codelineno-0-726"></a><span class="sd"> >>> generator = get_url_patterns()</span>
|
|
4518
|
+
<a id="__codelineno-0-727" name="__codelineno-0-727"></a><span class="sd"> >>> next(generator)</span>
|
|
4519
|
+
<a id="__codelineno-0-728" name="__codelineno-0-728"></a><span class="sd"> '/'</span>
|
|
4520
|
+
<a id="__codelineno-0-729" name="__codelineno-0-729"></a><span class="sd"> >>> next(generator)</span>
|
|
4521
|
+
<a id="__codelineno-0-730" name="__codelineno-0-730"></a><span class="sd"> '/search/'</span>
|
|
4522
|
+
<a id="__codelineno-0-731" name="__codelineno-0-731"></a><span class="sd"> >>> next(generator)</span>
|
|
4523
|
+
<a id="__codelineno-0-732" name="__codelineno-0-732"></a><span class="sd"> '/login/'</span>
|
|
4524
|
+
<a id="__codelineno-0-733" name="__codelineno-0-733"></a><span class="sd"> >>> next(generator)</span>
|
|
4525
|
+
<a id="__codelineno-0-734" name="__codelineno-0-734"></a><span class="sd"> '/logout/'</span>
|
|
4526
|
+
<a id="__codelineno-0-735" name="__codelineno-0-735"></a><span class="sd"> >>> next(generator)</span>
|
|
4527
|
+
<a id="__codelineno-0-736" name="__codelineno-0-736"></a><span class="sd"> '/circuits/circuits/<uuid:pk>/terminations/swap/'</span>
|
|
4528
|
+
<a id="__codelineno-0-737" name="__codelineno-0-737"></a>
|
|
4529
|
+
<a id="__codelineno-0-738" name="__codelineno-0-738"></a><span class="sd"> >>> import example_plugin.urls as example_urls</span>
|
|
4530
|
+
<a id="__codelineno-0-739" name="__codelineno-0-739"></a><span class="sd"> >>> for url_pattern in get_url_patterns(example_urls, base_path="/plugins/example-plugin/"):</span>
|
|
4531
|
+
<a id="__codelineno-0-740" name="__codelineno-0-740"></a><span class="sd"> ... print(url_pattern)</span>
|
|
4532
|
+
<a id="__codelineno-0-741" name="__codelineno-0-741"></a><span class="sd"> ...</span>
|
|
4533
|
+
<a id="__codelineno-0-742" name="__codelineno-0-742"></a><span class="sd"> /plugins/example-plugin/</span>
|
|
4534
|
+
<a id="__codelineno-0-743" name="__codelineno-0-743"></a><span class="sd"> /plugins/example-plugin/config/</span>
|
|
4535
|
+
<a id="__codelineno-0-744" name="__codelineno-0-744"></a><span class="sd"> /plugins/example-plugin/models/<uuid:pk>/dynamic-groups/</span>
|
|
4536
|
+
<a id="__codelineno-0-745" name="__codelineno-0-745"></a><span class="sd"> /plugins/example-plugin/other-models/<uuid:pk>/dynamic-groups/</span>
|
|
4537
|
+
<a id="__codelineno-0-746" name="__codelineno-0-746"></a><span class="sd"> /plugins/example-plugin/docs/</span>
|
|
4538
|
+
<a id="__codelineno-0-747" name="__codelineno-0-747"></a><span class="sd"> /plugins/example-plugin/circuits/<uuid:pk>/example-plugin-tab/</span>
|
|
4539
|
+
<a id="__codelineno-0-748" name="__codelineno-0-748"></a><span class="sd"> /plugins/example-plugin/devices/<uuid:pk>/example-plugin-tab-1/</span>
|
|
4540
|
+
<a id="__codelineno-0-749" name="__codelineno-0-749"></a><span class="sd"> /plugins/example-plugin/devices/<uuid:pk>/example-plugin-tab-2/</span>
|
|
4541
|
+
<a id="__codelineno-0-750" name="__codelineno-0-750"></a><span class="sd"> /plugins/example-plugin/override-target/</span>
|
|
4542
|
+
<a id="__codelineno-0-751" name="__codelineno-0-751"></a><span class="sd"> /plugins/example-plugin/^models/$</span>
|
|
4543
|
+
<a id="__codelineno-0-752" name="__codelineno-0-752"></a><span class="sd"> /plugins/example-plugin/^models/add/$</span>
|
|
4544
|
+
<a id="__codelineno-0-753" name="__codelineno-0-753"></a><span class="sd"> /plugins/example-plugin/^models/import/$</span>
|
|
4545
|
+
<a id="__codelineno-0-754" name="__codelineno-0-754"></a><span class="sd"> /plugins/example-plugin/^models/edit/$</span>
|
|
4546
|
+
<a id="__codelineno-0-755" name="__codelineno-0-755"></a><span class="sd"> /plugins/example-plugin/^models/delete/$</span>
|
|
4547
|
+
<a id="__codelineno-0-756" name="__codelineno-0-756"></a><span class="sd"> /plugins/example-plugin/^models/all-names/$</span>
|
|
4548
|
+
<a id="__codelineno-0-757" name="__codelineno-0-757"></a><span class="sd"> /plugins/example-plugin/^models/(?P<pk>[^/.]+)/$</span>
|
|
4549
|
+
<a id="__codelineno-0-758" name="__codelineno-0-758"></a><span class="sd"> /plugins/example-plugin/^models/(?P<pk>[^/.]+)/delete/$</span>
|
|
4550
|
+
<a id="__codelineno-0-759" name="__codelineno-0-759"></a><span class="sd"> /plugins/example-plugin/^models/(?P<pk>[^/.]+)/edit/$</span>
|
|
4551
|
+
<a id="__codelineno-0-760" name="__codelineno-0-760"></a><span class="sd"> /plugins/example-plugin/^models/(?P<pk>[^/.]+)/changelog/$</span>
|
|
4552
|
+
<a id="__codelineno-0-761" name="__codelineno-0-761"></a><span class="sd"> /plugins/example-plugin/^models/(?P<pk>[^/.]+)/notes/$</span>
|
|
4553
|
+
<a id="__codelineno-0-762" name="__codelineno-0-762"></a><span class="sd"> /plugins/example-plugin/^other-models/$</span>
|
|
4554
|
+
<a id="__codelineno-0-763" name="__codelineno-0-763"></a><span class="sd"> /plugins/example-plugin/^other-models/add/$</span>
|
|
4555
|
+
<a id="__codelineno-0-764" name="__codelineno-0-764"></a><span class="sd"> /plugins/example-plugin/^other-models/edit/$</span>
|
|
4556
|
+
<a id="__codelineno-0-765" name="__codelineno-0-765"></a><span class="sd"> /plugins/example-plugin/^other-models/delete/$</span>
|
|
4557
|
+
<a id="__codelineno-0-766" name="__codelineno-0-766"></a><span class="sd"> /plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/$</span>
|
|
4558
|
+
<a id="__codelineno-0-767" name="__codelineno-0-767"></a><span class="sd"> /plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/delete/$</span>
|
|
4559
|
+
<a id="__codelineno-0-768" name="__codelineno-0-768"></a><span class="sd"> /plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/edit/$</span>
|
|
4560
|
+
<a id="__codelineno-0-769" name="__codelineno-0-769"></a><span class="sd"> /plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/changelog/$</span>
|
|
4561
|
+
<a id="__codelineno-0-770" name="__codelineno-0-770"></a><span class="sd"> /plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/notes/$</span>
|
|
4562
|
+
<a id="__codelineno-0-771" name="__codelineno-0-771"></a><span class="sd"> """</span>
|
|
4563
|
+
<a id="__codelineno-0-772" name="__codelineno-0-772"></a> <span class="k">if</span> <span class="n">urlconf</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
4564
|
+
<a id="__codelineno-0-773" name="__codelineno-0-773"></a> <span class="n">urlconf</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">ROOT_URLCONF</span>
|
|
4565
|
+
<a id="__codelineno-0-774" name="__codelineno-0-774"></a> <span class="k">if</span> <span class="n">patterns_list</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
4566
|
+
<a id="__codelineno-0-775" name="__codelineno-0-775"></a> <span class="n">patterns_list</span> <span class="o">=</span> <span class="n">get_resolver</span><span class="p">(</span><span class="n">urlconf</span><span class="p">)</span><span class="o">.</span><span class="n">url_patterns</span>
|
|
4567
|
+
<a id="__codelineno-0-776" name="__codelineno-0-776"></a>
|
|
4568
|
+
<a id="__codelineno-0-777" name="__codelineno-0-777"></a> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">patterns_list</span><span class="p">:</span>
|
|
4569
|
+
<a id="__codelineno-0-778" name="__codelineno-0-778"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">URLPattern</span><span class="p">):</span>
|
|
4570
|
+
<a id="__codelineno-0-779" name="__codelineno-0-779"></a> <span class="k">yield</span> <span class="n">base_path</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">item</span><span class="o">.</span><span class="n">pattern</span><span class="p">)</span>
|
|
4571
|
+
<a id="__codelineno-0-780" name="__codelineno-0-780"></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">URLResolver</span><span class="p">):</span>
|
|
4572
|
+
<a id="__codelineno-0-781" name="__codelineno-0-781"></a> <span class="c1"># Recurse!</span>
|
|
4573
|
+
<a id="__codelineno-0-782" name="__codelineno-0-782"></a> <span class="k">yield from</span> <span class="n">get_url_patterns</span><span class="p">(</span><span class="n">urlconf</span><span class="p">,</span> <span class="n">item</span><span class="o">.</span><span class="n">url_patterns</span><span class="p">,</span> <span class="n">base_path</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">item</span><span class="o">.</span><span class="n">pattern</span><span class="p">))</span>
|
|
4512
4574
|
</code></pre></div></td></tr></table></div>
|
|
4513
4575
|
</details>
|
|
4514
4576
|
</div>
|