volkswagencarnet 5.0.0b1__tar.gz → 5.3.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.
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/codeql-analysis.yml +4 -4
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/release.yaml +2 -2
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/snyk.yaml +2 -2
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/testrelease.yaml +2 -2
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/validate.yml +3 -3
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/PKG-INFO +12 -3
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/README.md +9 -1
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/requirements.txt +0 -1
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/credentials.py.sample +1 -1
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/connection.py +0 -1
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/integration_test.py +1 -1
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/vw_connection_test.py +0 -1
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/vw_utilities_test.py +6 -6
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/vw_vehicle_test.py +7 -6
- volkswagencarnet-5.3.3/volkswagencarnet/version.py +34 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet/vw_connection.py +365 -247
- volkswagencarnet-5.3.3/volkswagencarnet/vw_const.py +400 -0
- volkswagencarnet-5.3.3/volkswagencarnet/vw_dashboard.py +2785 -0
- volkswagencarnet-5.3.3/volkswagencarnet/vw_exceptions.py +43 -0
- volkswagencarnet-5.3.3/volkswagencarnet/vw_utilities.py +163 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet/vw_vehicle.py +1256 -1536
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet.egg-info/PKG-INFO +12 -3
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet.egg-info/SOURCES.txt +2 -0
- volkswagencarnet-5.0.0b1/volkswagencarnet/version.py +0 -16
- volkswagencarnet-5.0.0b1/volkswagencarnet/vw_const.py +0 -144
- volkswagencarnet-5.0.0b1/volkswagencarnet/vw_dashboard.py +0 -1780
- volkswagencarnet-5.0.0b1/volkswagencarnet/vw_utilities.py +0 -137
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/CODEOWNERS +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/dependabot.yml +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/release-drafter.yml +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/renovate.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/publish.yaml +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.github/workflows/validate_pr.yaml +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.gitignore +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/.pre-commit-config.yaml +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/LICENSE.txt +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/pyproject.toml +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/requirements-test.txt +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/setup.cfg +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/__init__.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/conftest.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/dummy_test.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/__init__.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/constants.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/mock_server.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/dummy_cookies.pickle +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/README.md +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/arteon_2023_diesel/capabilities.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/arteon_2023_diesel/last_trip.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/arteon_2023_diesel/parkingposition.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/arteon_2023_diesel/selectivestatus_by_app.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/egolf/README.md +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/egolf/capabilities.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/egolf/last_trip.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/egolf/parkingposition.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/egolf/selectivestatus_by_app.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/eup_electric/capabilities.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/eup_electric/last_trip.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/eup_electric/parkingposition.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/eup_electric/selectivestatus_by_app.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/golf_gte_hybrid/capabilities.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/golf_gte_hybrid/last_trip.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/golf_gte_hybrid/selectivestatus_by_app.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/status.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/timer.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/tests/fixtures/resources/responses/timer_without_settings.json +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet/__init__.py +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet.egg-info/dependency_links.txt +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet.egg-info/requires.txt +0 -0
- {volkswagencarnet-5.0.0b1 → volkswagencarnet-5.3.3}/volkswagencarnet.egg-info/top_level.txt +0 -0
|
@@ -26,15 +26,15 @@ jobs:
|
|
|
26
26
|
|
|
27
27
|
steps:
|
|
28
28
|
- name: Checkout repository
|
|
29
|
-
uses: actions/checkout@
|
|
29
|
+
uses: actions/checkout@v6
|
|
30
30
|
|
|
31
31
|
# Initializes the CodeQL tools for scanning.
|
|
32
32
|
- name: Set up Python
|
|
33
|
-
uses: actions/setup-python@
|
|
33
|
+
uses: actions/setup-python@v6
|
|
34
34
|
with:
|
|
35
35
|
python-version: ${{ matrix.python-version }}
|
|
36
36
|
- name: Initialize CodeQL
|
|
37
|
-
uses: github/codeql-action/init@
|
|
37
|
+
uses: github/codeql-action/init@v4
|
|
38
38
|
with:
|
|
39
39
|
languages: ${{ matrix.language }}
|
|
40
40
|
queries: security-and-quality
|
|
@@ -45,4 +45,4 @@ jobs:
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
- name: Perform CodeQL Analysis
|
|
48
|
-
uses: github/codeql-action/analyze@
|
|
48
|
+
uses: github/codeql-action/analyze@v4
|
|
@@ -14,10 +14,10 @@ jobs:
|
|
|
14
14
|
id-token: write
|
|
15
15
|
steps:
|
|
16
16
|
- name: Checkout code
|
|
17
|
-
uses: actions/checkout@
|
|
17
|
+
uses: actions/checkout@v6
|
|
18
18
|
|
|
19
19
|
- name: Set up Python
|
|
20
|
-
uses: actions/setup-python@
|
|
20
|
+
uses: actions/setup-python@v6
|
|
21
21
|
with:
|
|
22
22
|
python-version: "3.x"
|
|
23
23
|
|
|
@@ -6,7 +6,7 @@ jobs:
|
|
|
6
6
|
runs-on: ubuntu-latest
|
|
7
7
|
steps:
|
|
8
8
|
- name: Checkout repository
|
|
9
|
-
uses: actions/checkout@
|
|
9
|
+
uses: actions/checkout@v6
|
|
10
10
|
|
|
11
11
|
- name: Run Snyk to check for vulnerabilities
|
|
12
12
|
uses: snyk/actions/python@master
|
|
@@ -17,6 +17,6 @@ jobs:
|
|
|
17
17
|
args: --sarif-file-output=snyk.sarif
|
|
18
18
|
|
|
19
19
|
- name: Upload result to GitHub Code Scanning
|
|
20
|
-
uses: github/codeql-action/upload-sarif@
|
|
20
|
+
uses: github/codeql-action/upload-sarif@v4
|
|
21
21
|
with:
|
|
22
22
|
sarif_file: snyk.sarif
|
|
@@ -14,10 +14,10 @@ jobs:
|
|
|
14
14
|
id-token: write
|
|
15
15
|
steps:
|
|
16
16
|
- name: Checkout code
|
|
17
|
-
uses: actions/checkout@
|
|
17
|
+
uses: actions/checkout@v6
|
|
18
18
|
|
|
19
19
|
- name: Set up Python
|
|
20
|
-
uses: actions/setup-python@
|
|
20
|
+
uses: actions/setup-python@v6
|
|
21
21
|
with:
|
|
22
22
|
python-version: "3.x"
|
|
23
23
|
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
22
|
- name: Checkout code
|
|
23
|
-
uses: actions/checkout@
|
|
23
|
+
uses: actions/checkout@v6
|
|
24
24
|
|
|
25
25
|
- name: Check ruff
|
|
26
26
|
uses: chartboost/ruff-action@v1
|
|
@@ -36,12 +36,12 @@ jobs:
|
|
|
36
36
|
|
|
37
37
|
steps:
|
|
38
38
|
- name: Checkout code
|
|
39
|
-
uses: actions/checkout@
|
|
39
|
+
uses: actions/checkout@v6
|
|
40
40
|
with:
|
|
41
41
|
fetch-depth: 0
|
|
42
42
|
|
|
43
43
|
- name: Set up Python ${{ matrix.python-version }}
|
|
44
|
-
uses: actions/setup-python@
|
|
44
|
+
uses: actions/setup-python@v6
|
|
45
45
|
with:
|
|
46
46
|
python-version: ${{ matrix.python-version }}
|
|
47
47
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: volkswagencarnet
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.3.3
|
|
4
4
|
Summary: Communicate with Volkswagen Connect
|
|
5
5
|
Home-page: https://github.com/robinostlund/volkswagencarnet
|
|
6
6
|
Author: Robin Ostlund
|
|
@@ -17,11 +17,14 @@ Requires-Dist: lxml
|
|
|
17
17
|
Requires-Dist: beautifulsoup4
|
|
18
18
|
Requires-Dist: aiohttp
|
|
19
19
|
Requires-Dist: pyjwt
|
|
20
|
+
Dynamic: license-file
|
|
20
21
|
|
|
21
22
|
# Volkswagen Carnet
|
|
22
23
|
|
|
23
24
|
[](https://www.buymeacoffee.com/robinostlund)
|
|
24
25
|
|
|
26
|
+
[](https://ko-fi.com/stickpin)
|
|
27
|
+
|
|
25
28
|

|
|
26
29
|

|
|
27
30
|

|
|
@@ -47,6 +50,7 @@ No licence, public domain, no guarantees, feel free to use for anything. Please
|
|
|
47
50
|
|
|
48
51
|
## Thanks to
|
|
49
52
|
|
|
53
|
+
- [stickpin](https://github.com/stickpin)
|
|
50
54
|
- [Wez3](https://github.com/wez3)
|
|
51
55
|
- [Reneboer](https://github.com/reneboer)
|
|
52
56
|
- [Tubalainen](https://github.com/tubalainen)
|
|
@@ -124,7 +128,12 @@ RESOURCES = [
|
|
|
124
128
|
'trip_last_average_electric_consumption',
|
|
125
129
|
'trip_last_average_fuel_consumption',
|
|
126
130
|
'trip_last_duration',
|
|
127
|
-
'trip_last_length'
|
|
131
|
+
'trip_last_length',
|
|
132
|
+
'trip_refuel_average_speed',
|
|
133
|
+
'trip_refuel_average_electric_consumption',
|
|
134
|
+
'trip_refuel_average_fuel_consumption',
|
|
135
|
+
'trip_refuel_duration',
|
|
136
|
+
'trip_refuel_length'
|
|
128
137
|
]
|
|
129
138
|
|
|
130
139
|
def is_enabled(attr):
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.buymeacoffee.com/robinostlund)
|
|
4
4
|
|
|
5
|
+
[](https://ko-fi.com/stickpin)
|
|
6
|
+
|
|
5
7
|

|
|
6
8
|

|
|
7
9
|

|
|
@@ -27,6 +29,7 @@ No licence, public domain, no guarantees, feel free to use for anything. Please
|
|
|
27
29
|
|
|
28
30
|
## Thanks to
|
|
29
31
|
|
|
32
|
+
- [stickpin](https://github.com/stickpin)
|
|
30
33
|
- [Wez3](https://github.com/wez3)
|
|
31
34
|
- [Reneboer](https://github.com/reneboer)
|
|
32
35
|
- [Tubalainen](https://github.com/tubalainen)
|
|
@@ -104,7 +107,12 @@ RESOURCES = [
|
|
|
104
107
|
'trip_last_average_electric_consumption',
|
|
105
108
|
'trip_last_average_fuel_consumption',
|
|
106
109
|
'trip_last_duration',
|
|
107
|
-
'trip_last_length'
|
|
110
|
+
'trip_last_length',
|
|
111
|
+
'trip_refuel_average_speed',
|
|
112
|
+
'trip_refuel_average_electric_consumption',
|
|
113
|
+
'trip_refuel_average_fuel_consumption',
|
|
114
|
+
'trip_refuel_duration',
|
|
115
|
+
'trip_refuel_length'
|
|
108
116
|
]
|
|
109
117
|
|
|
110
118
|
def is_enabled(attr):
|
|
@@ -21,7 +21,6 @@ class TwoVehiclesConnection(Connection):
|
|
|
21
21
|
def __init__(self, sess, username="", password="", **kwargs):
|
|
22
22
|
"""Init."""
|
|
23
23
|
super().__init__(session=sess, username=username, password=password)
|
|
24
|
-
self._jarCookie = MagicMock()
|
|
25
24
|
|
|
26
25
|
async def doLogin(self, tries=1):
|
|
27
26
|
"""No-op update."""
|
|
@@ -52,16 +52,16 @@ class UtilitiesTest(TestCase):
|
|
|
52
52
|
|
|
53
53
|
if isinstance(expected, bool):
|
|
54
54
|
# If expected is a boolean, assert the result of is_valid_path
|
|
55
|
-
assert (
|
|
56
|
-
|
|
57
|
-
)
|
|
55
|
+
assert is_valid_path(source, path) == expected, (
|
|
56
|
+
f"Path validation error for '{path}' in '{source}'."
|
|
57
|
+
)
|
|
58
58
|
else:
|
|
59
59
|
# If expected is an exception, assert it is raised
|
|
60
60
|
with pytest.raises(expected) as exc_info:
|
|
61
61
|
is_valid_path(source, path)
|
|
62
|
-
assert isinstance(
|
|
63
|
-
exc_info.value
|
|
64
|
-
)
|
|
62
|
+
assert isinstance(exc_info.value, expected), (
|
|
63
|
+
f"Expected {expected.__name__}, but got {type(exc_info.value).__name__}. Exception: {str(exc_info.value)}"
|
|
64
|
+
)
|
|
65
65
|
|
|
66
66
|
def test_is_valid_path_with_lists(self):
|
|
67
67
|
"""Test that is_valid_path can process lists."""
|
|
@@ -57,6 +57,7 @@ class VehicleTest(IsolatedAsyncioTestCase):
|
|
|
57
57
|
Services.MEASUREMENTS: {"active": False},
|
|
58
58
|
Services.PARKING_POSITION: {"active": False},
|
|
59
59
|
Services.TRIP_STATISTICS: {"active": False},
|
|
60
|
+
Services.READINESS: {"active": False},
|
|
60
61
|
Services.USER_CAPABILITIES: {"active": False},
|
|
61
62
|
Services.PARAMETERS: {},
|
|
62
63
|
}
|
|
@@ -84,9 +85,9 @@ class VehicleTest(IsolatedAsyncioTestCase):
|
|
|
84
85
|
|
|
85
86
|
vehicle.discover.assert_not_called()
|
|
86
87
|
# Verify that no other methods were called
|
|
87
|
-
assert (
|
|
88
|
-
|
|
89
|
-
)
|
|
88
|
+
assert len(vehicle.method_calls) == 0, (
|
|
89
|
+
f"Expected none, got {vehicle.method_calls}"
|
|
90
|
+
)
|
|
90
91
|
|
|
91
92
|
async def test_update(self):
|
|
92
93
|
"""Test that update calls the wanted methods and nothing else."""
|
|
@@ -105,9 +106,9 @@ class VehicleTest(IsolatedAsyncioTestCase):
|
|
|
105
106
|
vehicle.get_service_status.assert_called_once()
|
|
106
107
|
|
|
107
108
|
# Verify that only the expected functions above were called
|
|
108
|
-
assert (
|
|
109
|
-
len(vehicle.method_calls)
|
|
110
|
-
)
|
|
109
|
+
assert len(vehicle.method_calls) == 8, (
|
|
110
|
+
f"Wrong number of methods called. Expected 8, got {len(vehicle.method_calls)}"
|
|
111
|
+
)
|
|
111
112
|
|
|
112
113
|
|
|
113
114
|
class VehiclePropertyTest(IsolatedAsyncioTestCase):
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '5.3.3'
|
|
32
|
+
__version_tuple__ = version_tuple = (5, 3, 3)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = 'gb78fabeb8'
|