arthexis 0.1.13__py3-none-any.whl → 0.1.14__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 arthexis might be problematic. Click here for more details.
- {arthexis-0.1.13.dist-info → arthexis-0.1.14.dist-info}/METADATA +222 -221
- arthexis-0.1.14.dist-info/RECORD +109 -0
- {arthexis-0.1.13.dist-info → arthexis-0.1.14.dist-info}/licenses/LICENSE +674 -674
- config/__init__.py +5 -5
- config/active_app.py +15 -15
- config/asgi.py +43 -43
- config/auth_app.py +7 -7
- config/celery.py +32 -32
- config/context_processors.py +67 -69
- config/horologia_app.py +7 -7
- config/loadenv.py +11 -11
- config/logging.py +59 -48
- config/middleware.py +25 -25
- config/offline.py +49 -49
- config/settings.py +691 -682
- config/settings_helpers.py +109 -109
- config/urls.py +171 -166
- config/wsgi.py +17 -17
- core/admin.py +3771 -2809
- core/admin_history.py +50 -50
- core/admindocs.py +151 -151
- core/apps.py +356 -272
- core/auto_upgrade.py +57 -57
- core/backends.py +265 -236
- core/changelog.py +342 -0
- core/entity.py +133 -133
- core/environment.py +61 -61
- core/fields.py +168 -168
- core/form_fields.py +75 -75
- core/github_helper.py +188 -25
- core/github_issues.py +178 -172
- core/github_repos.py +72 -0
- core/lcd_screen.py +78 -78
- core/liveupdate.py +25 -25
- core/log_paths.py +100 -100
- core/mailer.py +85 -85
- core/middleware.py +91 -91
- core/models.py +3609 -2795
- core/notifications.py +105 -105
- core/public_wifi.py +267 -227
- core/reference_utils.py +108 -108
- core/release.py +721 -368
- core/rfid_import_export.py +113 -0
- core/sigil_builder.py +149 -149
- core/sigil_context.py +20 -20
- core/sigil_resolver.py +315 -315
- core/system.py +752 -493
- core/tasks.py +408 -394
- core/temp_passwords.py +181 -181
- core/test_system_info.py +186 -139
- core/tests.py +2095 -1521
- core/tests_liveupdate.py +17 -17
- core/urls.py +11 -11
- core/user_data.py +641 -633
- core/views.py +2175 -1417
- core/widgets.py +213 -94
- core/workgroup_urls.py +17 -17
- core/workgroup_views.py +94 -94
- nodes/admin.py +1720 -1161
- nodes/apps.py +87 -85
- nodes/backends.py +160 -160
- nodes/dns.py +203 -203
- nodes/feature_checks.py +133 -133
- nodes/lcd.py +165 -165
- nodes/models.py +1737 -1597
- nodes/reports.py +411 -411
- nodes/rfid_sync.py +195 -0
- nodes/signals.py +18 -0
- nodes/tasks.py +46 -46
- nodes/tests.py +3810 -3116
- nodes/urls.py +15 -14
- nodes/utils.py +121 -105
- nodes/views.py +683 -619
- ocpp/admin.py +948 -948
- ocpp/apps.py +25 -25
- ocpp/consumers.py +1565 -1459
- ocpp/evcs.py +844 -844
- ocpp/evcs_discovery.py +158 -158
- ocpp/models.py +917 -917
- ocpp/reference_utils.py +42 -42
- ocpp/routing.py +11 -11
- ocpp/simulator.py +745 -745
- ocpp/status_display.py +26 -26
- ocpp/store.py +601 -541
- ocpp/tasks.py +31 -31
- ocpp/test_export_import.py +130 -130
- ocpp/test_rfid.py +913 -702
- ocpp/tests.py +4445 -4094
- ocpp/transactions_io.py +189 -189
- ocpp/urls.py +50 -50
- ocpp/views.py +1479 -1251
- pages/admin.py +708 -539
- pages/apps.py +10 -10
- pages/checks.py +40 -40
- pages/context_processors.py +127 -119
- pages/defaults.py +13 -13
- pages/forms.py +198 -198
- pages/middleware.py +205 -153
- pages/models.py +607 -426
- pages/tests.py +2612 -2200
- pages/urls.py +25 -25
- pages/utils.py +12 -12
- pages/views.py +1165 -1128
- arthexis-0.1.13.dist-info/RECORD +0 -105
- nodes/actions.py +0 -70
- {arthexis-0.1.13.dist-info → arthexis-0.1.14.dist-info}/WHEEL +0 -0
- {arthexis-0.1.13.dist-info → arthexis-0.1.14.dist-info}/top_level.txt +0 -0
ocpp/reference_utils.py
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
"""Helpers related to console Reference creation."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import ipaddress
|
|
6
|
-
from urllib.parse import urlparse
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def _normalize_host(host: str | None) -> str:
|
|
10
|
-
"""Return a trimmed host string without surrounding brackets."""
|
|
11
|
-
|
|
12
|
-
if not host:
|
|
13
|
-
return ""
|
|
14
|
-
host = host.strip()
|
|
15
|
-
if host.startswith("[") and host.endswith("]"):
|
|
16
|
-
return host[1:-1]
|
|
17
|
-
return host
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def host_is_local_loopback(host: str | None) -> bool:
|
|
21
|
-
"""Return ``True`` when the host string points to 127.0.0.1."""
|
|
22
|
-
|
|
23
|
-
normalized = _normalize_host(host)
|
|
24
|
-
if not normalized:
|
|
25
|
-
return False
|
|
26
|
-
try:
|
|
27
|
-
return ipaddress.ip_address(normalized) == ipaddress.ip_address("127.0.0.1")
|
|
28
|
-
except ValueError:
|
|
29
|
-
return False
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def url_targets_local_loopback(url: str | None) -> bool:
|
|
33
|
-
"""Return ``True`` when the parsed URL host equals 127.0.0.1."""
|
|
34
|
-
|
|
35
|
-
if not url:
|
|
36
|
-
return False
|
|
37
|
-
parsed = urlparse(url)
|
|
38
|
-
return host_is_local_loopback(parsed.hostname)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
__all__ = ["host_is_local_loopback", "url_targets_local_loopback"]
|
|
42
|
-
|
|
1
|
+
"""Helpers related to console Reference creation."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import ipaddress
|
|
6
|
+
from urllib.parse import urlparse
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def _normalize_host(host: str | None) -> str:
|
|
10
|
+
"""Return a trimmed host string without surrounding brackets."""
|
|
11
|
+
|
|
12
|
+
if not host:
|
|
13
|
+
return ""
|
|
14
|
+
host = host.strip()
|
|
15
|
+
if host.startswith("[") and host.endswith("]"):
|
|
16
|
+
return host[1:-1]
|
|
17
|
+
return host
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def host_is_local_loopback(host: str | None) -> bool:
|
|
21
|
+
"""Return ``True`` when the host string points to 127.0.0.1."""
|
|
22
|
+
|
|
23
|
+
normalized = _normalize_host(host)
|
|
24
|
+
if not normalized:
|
|
25
|
+
return False
|
|
26
|
+
try:
|
|
27
|
+
return ipaddress.ip_address(normalized) == ipaddress.ip_address("127.0.0.1")
|
|
28
|
+
except ValueError:
|
|
29
|
+
return False
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def url_targets_local_loopback(url: str | None) -> bool:
|
|
33
|
+
"""Return ``True`` when the parsed URL host equals 127.0.0.1."""
|
|
34
|
+
|
|
35
|
+
if not url:
|
|
36
|
+
return False
|
|
37
|
+
parsed = urlparse(url)
|
|
38
|
+
return host_is_local_loopback(parsed.hostname)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
__all__ = ["host_is_local_loopback", "url_targets_local_loopback"]
|
|
42
|
+
|
ocpp/routing.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
from django.urls import re_path
|
|
2
|
-
|
|
3
|
-
from . import consumers
|
|
4
|
-
|
|
5
|
-
websocket_urlpatterns = [
|
|
6
|
-
re_path(r"^ws/sink/$", consumers.SinkConsumer.as_asgi()),
|
|
7
|
-
# Accept connections at any path; the last segment is the charger ID.
|
|
8
|
-
# Some charge points omit the final segment and only provide the
|
|
9
|
-
# identifier via query parameters, so allow an empty match here.
|
|
10
|
-
re_path(r"^(?:.*/)?(?P<cid>[^/]*)/?$", consumers.CSMSConsumer.as_asgi()),
|
|
11
|
-
]
|
|
1
|
+
from django.urls import re_path
|
|
2
|
+
|
|
3
|
+
from . import consumers
|
|
4
|
+
|
|
5
|
+
websocket_urlpatterns = [
|
|
6
|
+
re_path(r"^ws/sink/$", consumers.SinkConsumer.as_asgi()),
|
|
7
|
+
# Accept connections at any path; the last segment is the charger ID.
|
|
8
|
+
# Some charge points omit the final segment and only provide the
|
|
9
|
+
# identifier via query parameters, so allow an empty match here.
|
|
10
|
+
re_path(r"^(?:.*/)?(?P<cid>[^/]*)/?$", consumers.CSMSConsumer.as_asgi()),
|
|
11
|
+
]
|