odxtools 5.3.1__py3-none-any.whl → 6.0.1__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.
Files changed (88) hide show
  1. odxtools/__init__.py +1 -1
  2. odxtools/basicstructure.py +76 -91
  3. odxtools/cli/_parser_utils.py +12 -9
  4. odxtools/cli/_print_utils.py +7 -7
  5. odxtools/cli/browse.py +94 -73
  6. odxtools/cli/find.py +42 -59
  7. odxtools/cli/list.py +21 -17
  8. odxtools/cli/snoop.py +19 -18
  9. odxtools/communicationparameterref.py +6 -3
  10. odxtools/companydocinfo.py +2 -2
  11. odxtools/companyrevisioninfo.py +1 -1
  12. odxtools/comparamsubset.py +6 -6
  13. odxtools/complexcomparam.py +1 -1
  14. odxtools/compumethods/compumethod.py +6 -9
  15. odxtools/compumethods/createanycompumethod.py +11 -9
  16. odxtools/compumethods/identicalcompumethod.py +5 -4
  17. odxtools/compumethods/limit.py +9 -9
  18. odxtools/compumethods/linearcompumethod.py +25 -17
  19. odxtools/compumethods/scalelinearcompumethod.py +6 -5
  20. odxtools/compumethods/tabintpcompumethod.py +30 -9
  21. odxtools/compumethods/texttablecompumethod.py +22 -24
  22. odxtools/database.py +5 -5
  23. odxtools/dataobjectproperty.py +10 -23
  24. odxtools/decodestate.py +1 -1
  25. odxtools/determinenumberofitems.py +37 -8
  26. odxtools/diagcodedtype.py +14 -9
  27. odxtools/diagdatadictionaryspec.py +60 -37
  28. odxtools/diaglayer.py +30 -21
  29. odxtools/diaglayercontainer.py +40 -40
  30. odxtools/diaglayerraw.py +92 -63
  31. odxtools/diagnostictroublecode.py +2 -2
  32. odxtools/diagservice.py +53 -35
  33. odxtools/docrevision.py +1 -1
  34. odxtools/dopbase.py +14 -3
  35. odxtools/dtcdop.py +15 -9
  36. odxtools/dynamiclengthfield.py +6 -4
  37. odxtools/endofpdufield.py +22 -23
  38. odxtools/environmentdata.py +2 -5
  39. odxtools/environmentdatadescription.py +6 -4
  40. odxtools/field.py +3 -8
  41. odxtools/isotp_state_machine.py +52 -38
  42. odxtools/leadinglengthinfotype.py +9 -7
  43. odxtools/load_file.py +2 -1
  44. odxtools/load_odx_d_file.py +2 -5
  45. odxtools/load_pdx_file.py +2 -6
  46. odxtools/message.py +11 -3
  47. odxtools/minmaxlengthtype.py +107 -78
  48. odxtools/modification.py +2 -2
  49. odxtools/multiplexer.py +23 -21
  50. odxtools/multiplexerswitchkey.py +37 -8
  51. odxtools/nameditemlist.py +59 -58
  52. odxtools/odxlink.py +4 -2
  53. odxtools/odxtypes.py +4 -3
  54. odxtools/parameterinfo.py +6 -6
  55. odxtools/parameters/codedconstparameter.py +15 -25
  56. odxtools/parameters/createanyparameter.py +1 -1
  57. odxtools/parameters/dynamicparameter.py +6 -5
  58. odxtools/parameters/lengthkeyparameter.py +2 -1
  59. odxtools/parameters/matchingrequestparameter.py +8 -11
  60. odxtools/parameters/nrcconstparameter.py +11 -21
  61. odxtools/parameters/parameter.py +4 -18
  62. odxtools/parameters/parameterwithdop.py +14 -29
  63. odxtools/parameters/physicalconstantparameter.py +7 -9
  64. odxtools/parameters/reservedparameter.py +17 -38
  65. odxtools/parameters/systemparameter.py +6 -5
  66. odxtools/parameters/tableentryparameter.py +6 -5
  67. odxtools/parameters/tablekeyparameter.py +8 -15
  68. odxtools/parameters/tablestructparameter.py +11 -12
  69. odxtools/parameters/valueparameter.py +9 -24
  70. odxtools/paramlengthinfotype.py +11 -9
  71. odxtools/physicaldimension.py +1 -1
  72. odxtools/physicaltype.py +2 -2
  73. odxtools/response.py +7 -3
  74. odxtools/singleecujob.py +48 -22
  75. odxtools/standardlengthtype.py +11 -6
  76. odxtools/uds.py +1 -1
  77. odxtools/unit.py +5 -5
  78. odxtools/unitgroup.py +1 -1
  79. odxtools/unitspec.py +2 -2
  80. odxtools/version.py +13 -3
  81. odxtools/write_pdx_file.py +7 -4
  82. {odxtools-5.3.1.dist-info → odxtools-6.0.1.dist-info}/METADATA +7 -5
  83. {odxtools-5.3.1.dist-info → odxtools-6.0.1.dist-info}/RECORD +87 -88
  84. odxtools/positioneddataobjectproperty.py +0 -74
  85. {odxtools-5.3.1.dist-info → odxtools-6.0.1.dist-info}/LICENSE +0 -0
  86. {odxtools-5.3.1.dist-info → odxtools-6.0.1.dist-info}/WHEEL +0 -0
  87. {odxtools-5.3.1.dist-info → odxtools-6.0.1.dist-info}/entry_points.txt +0 -0
  88. {odxtools-5.3.1.dist-info → odxtools-6.0.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odxtools
3
- Version: 5.3.1
3
+ Version: 6.0.1
4
4
  Summary: Utilities to work with the ODX standard for automotive diagnostics
5
5
  Author-email: Katrin Bauer <katrin.bauer@mbition.io>, Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
6
6
  Maintainer-email: Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
@@ -36,10 +36,15 @@ Provides-Extra: examples
36
36
  Requires-Dist: can-isotp >=1.9 ; extra == 'examples'
37
37
  Provides-Extra: test
38
38
  Requires-Dist: mypy >=1.5 ; extra == 'test'
39
+ Requires-Dist: ruff >=0.0.290 ; extra == 'test'
39
40
  Requires-Dist: pytest >=7.4 ; extra == 'test'
40
41
  Requires-Dist: coverage >=7.3 ; extra == 'test'
41
42
 
42
43
  <!-- SPDX-License-Identifier: MIT -->
44
+ [![PyPi - Version](https://img.shields.io/pypi/v/odxtools)](https://pypi.org/project/odxtools)
45
+ [![PyPI - License](https://img.shields.io/pypi/l/odxtools)](LICENSE)
46
+ [![CI Status](https://github.com/mercedes-benz/odxtools/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/mercedes-benz/odxtools/actions?query=branch%3Amain)
47
+
43
48
  # odxtools
44
49
 
45
50
  `odxtools` is a set of utilities for working with diagnostic
@@ -80,6 +85,7 @@ send to/received from ECUs in an pythonic manner.
80
85
  - [Installation](#installation)
81
86
  - [Usage Examples](#usage-examples)
82
87
  - [Python snippets](#python-snippets)
88
+ - [Using the non-strict mode](#using-the-non-strict-mode)
83
89
  - [Interactive Usage](#interactive-usage)
84
90
  - [Python REPL](#python-repl)
85
91
  - [Command line usage](#command-line-usage)
@@ -650,10 +656,6 @@ project, please read the [contributing guide](https://github.com/mercedes-benz/o
650
656
  Please read our [Code of Conduct](https://github.com/mercedes-benz/daimler-foss/blob/master/CODE_OF_CONDUCT.md)
651
657
  as it is our base for interaction.
652
658
 
653
- ## License
654
-
655
- This project is licensed under the [MIT LICENSE](https://github.com/mercedes-benz/odxtools/blob/main/LICENSE).
656
-
657
659
  ## Provider Information
658
660
 
659
661
  Please visit <https://mbition.io/en/home/index.html> for information on the provider.
@@ -1,86 +1,85 @@
1
- odxtools/__init__.py,sha256=avIOamaMJfRJUAdIylRr7MzB6G7fkpHEhnpIfUllGB0,2197
1
+ odxtools/__init__.py,sha256=kHjwOKt-fKGM_LoVZjw0y_chNpy10Ukz7f23kJm6we0,2205
2
2
  odxtools/__main__.py,sha256=MKzFqY8KAV0BGsBXs04QwPpW5OGuT-rZQ4QlM8Tar8Y,119
3
3
  odxtools/additionalaudience.py,sha256=e08SzJpxkx8Zeb9fiNWWpPuneTA7INCW9qcU335eTnQ,990
4
4
  odxtools/admindata.py,sha256=mc7yyK5yGpd1A4Rv2rv9pf9Ja-PNvB_IB1wEaIEbBNU,1919
5
5
  odxtools/audience.py,sha256=6PaZRi_-e5GDN2BZgynLWx03brvw0QgMBcl5N8heO0Y,3324
6
6
  odxtools/basecomparam.py,sha256=ymqJHS0jGSeUi3tFvGQli1vv_cC5-c_hoAmSMWKIB1M,2444
7
- odxtools/basicstructure.py,sha256=Gi9NdOypuNnO02Do8L5-W50ygXX3cDcixwZ9YVUSLbw,19252
8
- odxtools/communicationparameterref.py,sha256=ZXEDBniA35LVkE6BbO3fdZsenW_LhCLmRGE-qKAuJm4,4948
7
+ odxtools/basicstructure.py,sha256=zNx2l-SPnb3V_Hpq_W_qoYfhmU6GSr9-azLN-cOWKq8,18465
8
+ odxtools/communicationparameterref.py,sha256=fsjGP0Y2QU5x8j2RSz0Q-I3OLQ-J6FFozpolYvFD13Y,5014
9
9
  odxtools/companydata.py,sha256=RaxSq0E6kall8wZL8av5HPO9KSXLZpE_hSEIkvpzCw0,2579
10
- odxtools/companydocinfo.py,sha256=822cKj6hFu-ni5WIuxpDIjnPtzxKDWWGdl_UR8ifFpU,2278
11
- odxtools/companyrevisioninfo.py,sha256=VReudpcMT5zhjcijRVc8O3hFBwvVK5lnwkHgPBnDXXs,1382
10
+ odxtools/companydocinfo.py,sha256=KLVUA-TvOnHjPYF32W8JAv8Q6LLuo6-x9u3Mj7ewBiM,2294
11
+ odxtools/companyrevisioninfo.py,sha256=vvozMDtDZg3znZNN6Nx1MqjSsSmXtg9nY-TkF_sIHzk,1390
12
12
  odxtools/companyspecificinfo.py,sha256=1zPMQvIhj_NtkXFHz6U6bm9ExoKxLk8XdsfjhOwf5nY,1567
13
13
  odxtools/comparam.py,sha256=SmzQV311f-jxKtVghsywribR8cZE5mLgoYjElJCQIEo,2202
14
- odxtools/comparamsubset.py,sha256=1GUthfmmlXpXVmXoWBiA99c6XC-VF-a3scRs2D7ZMSs,5327
15
- odxtools/complexcomparam.py,sha256=VFal38ZkI6-XPBvF3S8E-0EZqAD61rgWQaDn3cFv0hc,3335
14
+ odxtools/comparamsubset.py,sha256=ynO5gJ5-owDwdV59bdwrfewHyTNDrwqgvr876dvAtsw,5333
15
+ odxtools/complexcomparam.py,sha256=B3Vq0K3EI6oBkxud-bxj2wIJELlg6h3XZ-vyMU1dZTk,3335
16
16
  odxtools/createanycomparam.py,sha256=sseY0a9b330knkEZOb6dE9xy2si2CH9NL1BQY_omfQo,644
17
17
  odxtools/createanydiagcodedtype.py,sha256=QIKSGnU6xL4DWImuXqrW6oNsWfcRphwdWi9lISgO7Lg,3770
18
18
  odxtools/createanystructure.py,sha256=BHcYDie9hDTk5bZBRkv2fy7jOesjhHXg4oSiqCOeKKU,2291
19
19
  odxtools/createcompanydatas.py,sha256=Lkyx5gIGCozaX412GiPRUzjFOa5sZvT1LYOf_ycysdE,582
20
20
  odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
21
21
  odxtools/createsdgs.py,sha256=tPdkPN4cHBWGddMWb7QLvyUIA9boa87da2Aj_2m3C2o,531
22
- odxtools/database.py,sha256=vFPw-DjD8v6Af8qZM8PrPmmCqRvjkKDqPiQ94oD_cag,5432
23
- odxtools/dataobjectproperty.py,sha256=Rj4nvsT_KLoM7qlBj6OQgqvyUFHY7KhTskPUE1sB3U0,7756
24
- odxtools/decodestate.py,sha256=odgQcDOsfxS9VwhpRs8Z1TtN4y7vO2UJtr_C079HXts,446
25
- odxtools/determinenumberofitems.py,sha256=Riplvk1wKKdY8dFe5ncvfg8QhkP0W7ZEekZZmrmzBOU,625
26
- odxtools/diagcodedtype.py,sha256=kQuLN01csHubhyKDhC-pTrNfeza1pM049YCrKcO3Rjw,9394
27
- odxtools/diagdatadictionaryspec.py,sha256=1tmCOIUWr51RtDonQU2zOp_-r7wdYNqFAvL2PNdeF-w,7130
28
- odxtools/diaglayer.py,sha256=1XBoglTxDz4FW67Cm8bS9hJIbHN7vD8_ZCidgmmU4vM,38901
29
- odxtools/diaglayercontainer.py,sha256=kA_iCqPgtZmKq8uvzyASQWWdG_gUll6prDckW_RsASQ,5151
30
- odxtools/diaglayerraw.py,sha256=kZoWpd1SdiEgpwfTLRciAaYaSGmYMDa-4Zil7DTPfcU,10978
22
+ odxtools/database.py,sha256=-ncYWYacGLhz0sYOGXjKqgPjjt7dN-Dqq7rWlM-qtHs,5571
23
+ odxtools/dataobjectproperty.py,sha256=IaALZ5r3H-fLPzsJBWCavxWMF5YswwA5GL2xxJZeD6s,7146
24
+ odxtools/decodestate.py,sha256=vSFnn2xEl_7e_WLlpIVvHelNAOISlPKGYTb4hQFkBPQ,443
25
+ odxtools/determinenumberofitems.py,sha256=L2u0Wv9KhRsXqOBnaKuFFOeG-FQE6pDpwRtdoGf1H3g,1562
26
+ odxtools/diagcodedtype.py,sha256=0SvTXWaX1WTmPl1uF5Nl07FawMFhpEy8d13cIJ_I2Es,9636
27
+ odxtools/diagdatadictionaryspec.py,sha256=xPGTpJa460VnQHnnVo1OYb4rTWxoTC-6rB3i_a82Ngw,8576
28
+ odxtools/diaglayer.py,sha256=pL4DaYgijiX5tJjCsKdZw_qzKCk-2xPrhFsfkN1EbSM,39783
29
+ odxtools/diaglayercontainer.py,sha256=1Kq6vVp_Bu9qpwN4kdoRU-bm9L5McwcKPBQn1z81RCI,5877
30
+ odxtools/diaglayerraw.py,sha256=e06rOf_0aggK-kdqORJJhxJHxAFG7dCtUICLc6M7qrI,13533
31
31
  odxtools/diaglayertype.py,sha256=3gPe5hQGvPddXWlBr2VlJR1wVtC8hlpAvJBTPA3WAWY,874
32
- odxtools/diagnostictroublecode.py,sha256=W6pqCjJ7lgNgrCxp0oprtLxqgt3uS25HqvhQMzpncF4,2488
33
- odxtools/diagservice.py,sha256=iMZiZf0BjME8w3kN7pQLKpW-8qq5oqNxY_U0wrHyaK0,9304
34
- odxtools/docrevision.py,sha256=TvJ2-LiimyHDnLysq2fMp7ahN_864_hCQBxU95_uTU0,2730
35
- odxtools/dopbase.py,sha256=RtS86791LEx7zc21IZ4J4iSg-iaxkHOlUEMP7tii3vQ,1904
36
- odxtools/dtcdop.py,sha256=cnV4hX527SME7YhAtf3Euehs5F3Ur8elPi4bNYmbABg,4102
37
- odxtools/dynamiclengthfield.py,sha256=G7WRBcT7AIbYmt-6VDN089praTxvzr_HSRGBHV8-XJ0,2192
32
+ odxtools/diagnostictroublecode.py,sha256=FD1wDdNbA53PAj16JO0NfNgHddQ4csv_ldIwIUBoRwo,2496
33
+ odxtools/diagservice.py,sha256=udYP6wUsdjaHpNsbmU6WUVOEXX7uPtKqG2o4RDlijrM,10095
34
+ odxtools/docrevision.py,sha256=NKrOSaoz5GJwi4UXlrGYa1EOhMqZKcOCFT38c5VzU4k,2738
35
+ odxtools/dopbase.py,sha256=yTQP3E_o-rTEUNdx0zI_VImQIkmYsctOQrbdqceIteM,2329
36
+ odxtools/dtcdop.py,sha256=7yt7hKmm16pX19dZfGgmA9atDYx3sRvKPyBLyx9wEXA,4444
37
+ odxtools/dynamiclengthfield.py,sha256=Fgx1KI-OVhKifwnbr2sepAS1523MQ8wBQ6utW6t7qA0,2283
38
38
  odxtools/ecuvariantmatcher.py,sha256=FO85WesRmkssSsTrjW8Ehg87FRmv1oHTkH5jPwumWYI,6882
39
39
  odxtools/ecuvariantpattern.py,sha256=Xp2NpS13sVvyOjy2PgxLvXPptAfmYSH_KDIjqYByZHs,863
40
40
  odxtools/element.py,sha256=JLLpie8XmnMrUFR1nX9PUXoBmU60tfoSI5p7-QjCXQE,1209
41
41
  odxtools/encodestate.py,sha256=GfzrZ6hoNXjoC90tC7s3cNdDUAu8np6Ajb_mCMcPZMk,1109
42
- odxtools/endofpdufield.py,sha256=Px9UAPlgRV9RzfHJL9Fm4TdNBa_fxPGNSN83vkt7RPU,3309
43
- odxtools/environmentdata.py,sha256=j1yW6G-OlV2CORDknqMNzIkAmU1nw5Q3qYjZKe3CZww,1900
44
- odxtools/environmentdatadescription.py,sha256=uXIyHCiQU4sAHNM3wm1s7NMMZSu3bVMPwNgigkOdiBs,4493
42
+ odxtools/endofpdufield.py,sha256=tcseLjCqhURrY6KieQBp0ekDcTII2V0FEaWAAC-q8tQ,3111
43
+ odxtools/environmentdata.py,sha256=_b6LDs5No9SkPSetVNsuiv8Gqb3w8TjTYni-bgsI3NU,1823
44
+ odxtools/environmentdatadescription.py,sha256=GkIYodD5JNLlmoW1qHZRAMdBHVK9zKAHJUY4aP7SuTE,4630
45
45
  odxtools/exceptions.py,sha256=FgS11U7ABMnc7T602bE1XMBLj9P0oDwwdpp-L3NafGY,2505
46
- odxtools/field.py,sha256=dE4SJExgXKaQ56mClVFO62pXQ1Akf_Q6iYIYR1_6IHQ,4004
46
+ odxtools/field.py,sha256=96lx4cOxSzctgvD3TXPMR6qDI5OTnIij3FjYJnr4RKc,3820
47
47
  odxtools/functionalclass.py,sha256=Rrnpqm-wTRc7TUfnKfiOeOi1XrvKB9TN2HiXtCU2YLY,985
48
48
  odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
49
49
  odxtools/inputparam.py,sha256=MIxFVJHUsHtUCdZpoHvoS5f94FFhM2WOOf3nmfN4p4M,1853
50
- odxtools/isotp_state_machine.py,sha256=-MiVwJMLFauAFQAPmbLERHLwefKcg1YvLxAK6cYiGCY,12031
51
- odxtools/leadinglengthinfotype.py,sha256=FqE7OWsPFhzL0IdZ85QN0HZhZGWTSgtpCAvFYrzPuJo,2935
52
- odxtools/load_file.py,sha256=grxalojcMWZwa3VkD7VYUiBo2HzUDk42sS0nQBJDE7M,418
53
- odxtools/load_odx_d_file.py,sha256=29azZ99nAto7XGxvlAKKxEGLzJ36YzD4pztQ2KO5jao,276
54
- odxtools/load_pdx_file.py,sha256=0OYyGSNTUXBnKP3wlLWdjqfR8IY7T9KNhGvUsLIsHXE,300
50
+ odxtools/isotp_state_machine.py,sha256=2OCviGECEk-j_JbD046sIRiTCMeYFXhAUNlFMd9cIoo,13056
51
+ odxtools/leadinglengthinfotype.py,sha256=ZoPI1nz8ID28L-ikV-RexLCj4SDecH4NXoD1LJT-giY,3053
52
+ odxtools/load_file.py,sha256=H-cnL2cwVmxIirvm5onzhq-fSxNjSmVaQr7ZrXZHjtE,461
53
+ odxtools/load_odx_d_file.py,sha256=QBVa9r9L4s6ffNWd_LM7NJq2WCxdsJs_EU0RzqgRYrk,172
54
+ odxtools/load_pdx_file.py,sha256=Eo4cIYWzqe_w1w4LQ-aqNPfHG-hJaxmigOs4y_ZlVlU,186
55
55
  odxtools/matchingparameter.py,sha256=QWiWlwzJWJc0UWilkhoFyGkAey80MvA_WDsuRdaT5HA,2229
56
- odxtools/message.py,sha256=Vo1vNMfjeC5ALrJiFtqr4-Ttbgwoh4KW3aEq7eYSwgs,796
57
- odxtools/minmaxlengthtype.py,sha256=j3_dwwjLbwUfG95_fjhgPVi36pZyCPt0zAMPmwc9NBY,6303
58
- odxtools/modification.py,sha256=-oXWoz4RlX4HUf82ASbcjNJUJpa57I17iooTVgA1EH0,856
59
- odxtools/multiplexer.py,sha256=N_FAlzCw8-QKg5pYAPz7-au-oAx3Ahn7B382oijCUL8,6901
56
+ odxtools/message.py,sha256=dCEyWuYqfQwZZNndYnc40NeHv4K3dmkXZrI-QjH9Nnw,1035
57
+ odxtools/minmaxlengthtype.py,sha256=9rpWFkDewW8fKeGsMTH2S_1oXjLieAMaOT4agIYaWb8,7640
58
+ odxtools/modification.py,sha256=zO_vdbLnAM876VNyX53rGrUrG4YaKDq799Y3xzrsEyg,872
59
+ odxtools/multiplexer.py,sha256=hSC23FPUtz5BD8EYf49FjlfBl3QTEt0CuT7lRAYsAOI,7253
60
60
  odxtools/multiplexercase.py,sha256=w26PUix3yLIeAhGDzvRlgHSK1pNAUoZ3N8Uw4bROJzc,2262
61
61
  odxtools/multiplexerdefaultcase.py,sha256=F13aTRZAriGatM-Rv-t-rqEqTriADkigHTLfE317BJk,1979
62
- odxtools/multiplexerswitchkey.py,sha256=NJtL6PUlvKYWe99amKCCXoAzdVLRtAmf1uvreWPUPAU,619
63
- odxtools/nameditemlist.py,sha256=nEnZPYDIQ0jnriFNOI6VmJUnLR3rOfectwcyyUq2b8U,6154
62
+ odxtools/multiplexerswitchkey.py,sha256=W-dmS_2K4rKN2wJcmUNRpAa12viSFt0Jor0QIRGQqvE,1555
63
+ odxtools/nameditemlist.py,sha256=8pkH5MFLaTDFSqLqJHKPYB17ALlhdjdo_6-9C5bvjnQ,5923
64
64
  odxtools/negoutputparam.py,sha256=QJ4X4Nlo2MbBi7VbOjBvD32gTDLPpF1l6NjChzikh-k,1407
65
65
  odxtools/obd.py,sha256=5mjjnnlq2ejaJ6wESvoJevkLdYUihQXLxjf4MGFpeDg,1175
66
- odxtools/odxlink.py,sha256=06AeFVQqcarcD1xcTYihSkQ8KgKuxmJDXuOjmOD_Kvc,8891
67
- odxtools/odxtypes.py,sha256=KLFxgw--SMYmYx88Qhy0XCJCJ5RwhXYQoWsTR9aIKYI,5480
66
+ odxtools/odxlink.py,sha256=VzIxpr3f7KoveztxT7tL49I8SDtPQ7ogPZBylrvsy8w,8953
67
+ odxtools/odxtypes.py,sha256=sOmVxwd39ILilBvei-McUzxvGXVT4K-TL52ZWDB1_Go,5577
68
68
  odxtools/outputparam.py,sha256=V6eIZQRkxbWzdObzWJUgA0Ppp7imzOjMplhr90LmsWw,1639
69
- odxtools/parameterinfo.py,sha256=hRSPwHdfEpX_lvtLhupS7a8taRshyvfMLNeQLoPKc2o,3768
70
- odxtools/paramlengthinfotype.py,sha256=3Cxfy-vYCxAY2Q2LZOst3kFuQHBLaJbRugNSOl-y0tQ,3592
69
+ odxtools/parameterinfo.py,sha256=bB0XBDiSRNRtfzsSsRv9gPxmeubMyKdfzLgugtThFt0,3758
70
+ odxtools/paramlengthinfotype.py,sha256=oT8ogZk58S0CD7yvgyTTPd-CcPSEW4yrRbXXfq6kpcM,3821
71
71
  odxtools/parentref.py,sha256=_ZwEKbZ1Lia9rLPW6RdMpq2mW6ZIxAkiaJdP4k4qsDA,3202
72
- odxtools/physicaldimension.py,sha256=3JGYuUslMWTeQ62yv9Id0M6JEc83wyc9A4CQ0FmlMM8,3360
73
- odxtools/physicaltype.py,sha256=iaBXWl0Z_Tu14cBP2Tmxx9zBEgsfiqQ6yKZJiiqbQVA,2673
74
- odxtools/positioneddataobjectproperty.py,sha256=Wyq8MUmOfq7gU-F3JGCwQyCCml5MivDDRr8oiBG0Oos,2762
72
+ odxtools/physicaldimension.py,sha256=gvgYoeY7dTujDv_H5XW6S8lvGQadAPUlau6YD_KRJ84,3393
73
+ odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
75
74
  odxtools/progcode.py,sha256=vIra_TU34YCa-YKvdvc3cywZMQBWSEg2ugMS6dNJUoI,1765
76
75
  odxtools/relateddoc.py,sha256=jbBMEYycGF0TqwxNKibWyA9r6fFAWHS5lA-tN0El9QI,1335
77
76
  odxtools/request.py,sha256=hHWQgazTsvJ9WEUpGQRaRVT_QV-XjduMBxqS8zB1-3A,162
78
- odxtools/response.py,sha256=jowqAbTCV5YGo9R7LrYwuWmUqsOfP1lJLlph-4wrMFQ,846
79
- odxtools/singleecujob.py,sha256=zJiDFd3I8_xeT6DsV-0cycNKGUjDpUgx8JJX9EVk2BU,10553
77
+ odxtools/response.py,sha256=JLvPjNGGm7gdTxffzihfpbguBX_iok2WE_BT-IyIlPg,1055
78
+ odxtools/singleecujob.py,sha256=UHL-vrMN71oJEtwC3B00aSwwhqpc0Q19J1DoxN-Wvz8,11751
80
79
  odxtools/specialdata.py,sha256=3E-KxtoCUpHeaiMH6Zp4jivALkCsNaTlZ9KROcCDWnE,1067
81
80
  odxtools/specialdatagroup.py,sha256=KP3vy8BqeTA_qZcmteAmV7ckC65zjpI3B1hKXyzctJI,3077
82
81
  odxtools/specialdatagroupcaption.py,sha256=AVUA1M-EXPA9k_EqOAZWajRIhQdGKp_HlLXlre2ZDhE,1039
83
- odxtools/standardlengthtype.py,sha256=U6DpFN-1ulyWP8a_0VHhRhiIZoRZsgJ2-AIHXrsTjB8,2481
82
+ odxtools/standardlengthtype.py,sha256=rQNVk1xiW3vUdBw0G2LKz-KgSAH63ZFpK7z3UMMDOZo,2670
84
83
  odxtools/state.py,sha256=os5HJvZj7_2zutJhyiq701JA_CSpyS1C6XJKHFWEKVY,932
85
84
  odxtools/statechart.py,sha256=fksrDgmldajQ3eXU99sEcFfAp5gaNS5g3Fb5VbBM50I,3246
86
85
  odxtools/statetransition.py,sha256=TPg5l6yXymXbeWwamMyMfs0foUUN94XiNZ4ah2ouiXU,2205
@@ -88,48 +87,48 @@ odxtools/structure.py,sha256=LFxcRfCsseG1xSch8Uv9UG3-G5bqPLE007N_Jig8yTs,164
88
87
  odxtools/table.py,sha256=Jo56J-_iMgmJBRbP-2zzsu0V6imufgpTFLiEEFGUKUs,4017
89
88
  odxtools/tablerow.py,sha256=fIqndcGpNzPGuLJbCrENTBxydEhG_FslTCaIIgFZsas,5499
90
89
  odxtools/teammember.py,sha256=nhpTD7TYoixKe-K2MDoyYP4K_xlmWQtAxTm4Srh4CLo,1806
91
- odxtools/uds.py,sha256=9UUqfQ0alqbl3nmTN4gVEchq3jy8CrZAtVt7wPnASBc,4248
92
- odxtools/unit.py,sha256=VdiwIljfCB9zeXu8yKuAjfTwsMrpd7pXqqAqhMabyj0,3626
93
- odxtools/unitgroup.py,sha256=Mf7QhlFDKkUB38shWCCB8i7XLbzV8JAfnAmafUmxon0,2093
94
- odxtools/unitspec.py,sha256=M6QcufeitAslb_1DEmSfrMCn_s_lZN_X-NPPX31g0Y4,2959
90
+ odxtools/uds.py,sha256=ZY8Uh8EmiPOsEfoBlobNzQWceKiV-HJn39iICc0jHbA,4254
91
+ odxtools/unit.py,sha256=Yhf8Q2PkOnOImO7C7nehS59ua6kWd2da73VRQ0xNRfU,3701
92
+ odxtools/unitgroup.py,sha256=HCFwmUR_-N1_bfcDQiWV2rq29uRQWbVMbxSASw8P8ow,2101
93
+ odxtools/unitspec.py,sha256=WFifnGPLfaRzCUpZNY8lvB5_jXuoGJuvKcyL1R04oJ0,2981
95
94
  odxtools/utils.py,sha256=cbcNql5ahfdJfENAn_waHgGWg9XOtWblx5mMaWoKL8U,1898
96
- odxtools/version.py,sha256=UbVP4SI01fawReXsD8nOUKB3AUY7wAlbLSNDtITS4uw,240
97
- odxtools/write_pdx_file.py,sha256=FfGkvYpzPBE-xsDrN40IyK354G5APp6WX2N3Vhl2bAw,5895
95
+ odxtools/version.py,sha256=c0MC574oxVREdihyPy7wJvfNgx8Oec-GkZrDJLQxdyo,411
96
+ odxtools/write_pdx_file.py,sha256=Z4VvHlOkdfZyJYzdF2Rvo3_p7SSkWdgA28TPefVdlEM,5983
98
97
  odxtools/xdoc.py,sha256=pUYo6l60ns9LOEdutE06WMcNy25yNVl1Ni4lMpYt1pY,1467
99
98
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
100
- odxtools/cli/_parser_utils.py,sha256=aInNmJ7EJI7wYOwQRRy0mttr1KDChFpc0zjh_-8dzm4,515
101
- odxtools/cli/_print_utils.py,sha256=shlzdjpcCmrEBm970BCZi5oAbg4m2-xyWTEntLMF4w4,3208
102
- odxtools/cli/browse.py,sha256=07gKnEDZvzO1ThJy9i_iI5-wJ5nUuW5OzbwNLlq3dbs,13766
99
+ odxtools/cli/_parser_utils.py,sha256=8wS4PP-CXxnV3Fm5p9_A-4qGFO39MD8RjzyreyqYLq8,580
100
+ odxtools/cli/_print_utils.py,sha256=EVbg-6HdNHPLgfoLd2mqFY6nj0etO9yW_zdtqiER8wY,3275
101
+ odxtools/cli/browse.py,sha256=2QfqhN2mcoK_gAZoNCg1Wbogsoxz5E64y7tTXohTems,15153
103
102
  odxtools/cli/dummy_sub_parser.py,sha256=0oe0b3TrqP1xAzNHn6aB5r_MupIUV6vBZe1t1Wo-PuI,1190
104
- odxtools/cli/find.py,sha256=g8RALzDxcr1Mc0NNSRkDaxfyuaQCqkT0LcvWAyW_ZSk,5956
105
- odxtools/cli/list.py,sha256=LKqqjnUxQgCSXHRZP7ZOsTc2hRRCYfux69NVOXwyHYM,7248
103
+ odxtools/cli/find.py,sha256=A6SZYp0qr2Degan6lpI33HXMKc8f5MuPAILSYIyfTP0,5657
104
+ odxtools/cli/list.py,sha256=QDijZFv86PvIsPayHur9_nqeyem1zz-xlDpDuL7Rt1Y,7562
106
105
  odxtools/cli/main.py,sha256=1rPETZgVI3L2HiNeKEVny9PkNdwIiXQwl9vsvJLWBEo,1778
107
- odxtools/cli/snoop.py,sha256=GzrQAY5XxpLMJKWDCLSjgH70ulBdLgADJ78i1qW7M0E,7437
108
- odxtools/compumethods/compumethod.py,sha256=3gJKHetKgGJfyM7megP5Wt9qXmVtm1-BkyE-eRlYo_Q,923
106
+ odxtools/cli/snoop.py,sha256=_EOkU122Ir_dAUDMh_KxiXqRo75OAoKjFb2CIHBLHQQ,7768
107
+ odxtools/compumethods/compumethod.py,sha256=HDLLoRhzd_ujZZEzKYDTvaW_sNx_CoZOWufc3Hfn2_o,953
109
108
  odxtools/compumethods/compurationalcoeffs.py,sha256=gRD0B2Ut03Rg4ixVPh2Mh6PY20RXzozGMxoP75vMr0U,782
110
109
  odxtools/compumethods/compuscale.py,sha256=HJ4SiQd1Br-spob-8GlYrFGhKN7LyemISim6feqitfM,2822
111
- odxtools/compumethods/createanycompumethod.py,sha256=6XcjGqmvDIurXYfy-XGk3blq3swOb2A5Ydi9F8-Swvs,7562
112
- odxtools/compumethods/identicalcompumethod.py,sha256=R7BTLeBl-g4AByrnkPY5gCK5G6mUuVfWiSYcYj3UAHk,683
113
- odxtools/compumethods/limit.py,sha256=v9_X-TuvFsEeCAyLZd9mn-edwkfJ0V6hMXnCkpHu2uA,3014
114
- odxtools/compumethods/linearcompumethod.py,sha256=z3FIPLL6sc5XJjAIx61hyY3unQm-9-C0lCbQLOaejD4,7399
115
- odxtools/compumethods/scalelinearcompumethod.py,sha256=lrKIE0RvpGWZKSDH-CX_lLfdNja1YXpDbhyhUHgxyxg,1495
116
- odxtools/compumethods/tabintpcompumethod.py,sha256=WExyKHqgRSytMRmFyD22DF5_LgUsf_hcEAyfKA44kzc,6023
117
- odxtools/compumethods/texttablecompumethod.py,sha256=DF08uUC16ZUhEFp4H1-wIrNw-w5UacKORm6hEQdQ44w,3279
118
- odxtools/parameters/codedconstparameter.py,sha256=KS0et-1JEyXmmqImE-PRYGF3b5CZ0ojfkUiaVgy0gTE,3862
119
- odxtools/parameters/createanyparameter.py,sha256=peBHJR7Yhru7LxMm1dfWRSuOgtpxfueRXTwomOWRwMM,8649
120
- odxtools/parameters/dynamicparameter.py,sha256=6hjGQmSs0pzH2dw1yNSGB0w9zRWy5OXfASUob-xuSTA,910
121
- odxtools/parameters/lengthkeyparameter.py,sha256=QlKy_axNCclOKKmRfLoH8sCSIPN-VEw6RQ_9VcakU0U,2401
122
- odxtools/parameters/matchingrequestparameter.py,sha256=oAGwCiGcpxaiWTo46GSbRlrAraqY9CZarUFCF8QgGOI,1735
123
- odxtools/parameters/nrcconstparameter.py,sha256=Z_AVnryBUaaHOLCNbeIpi4Jq7JkQOu5ECHbWIChCSDY,4324
124
- odxtools/parameters/parameter.py,sha256=Dyb09rcxsy6uETx9Udh6WV2Qw28_SQ3mHLN6bRd1PHI,6434
125
- odxtools/parameters/parameterwithdop.py,sha256=iDscq6RdoH_frq7eqjyo9zkDB7up6DhrnWYejfhHOwg,4261
126
- odxtools/parameters/physicalconstantparameter.py,sha256=l2NaHDdcZ2LRduZFOU4aUojT_FnQitkhaljteBiZQrY,3157
127
- odxtools/parameters/reservedparameter.py,sha256=aIY8b0ttTg4b_DKscEesHGkrd6vJeWYrIrIWyMAmdDk,2416
128
- odxtools/parameters/systemparameter.py,sha256=_5rE_NP1h-NmKAEIndKWa4Og6_HemcG_SN_xqyCR2Z0,998
129
- odxtools/parameters/tableentryparameter.py,sha256=sPMpj0yrqdHI7yvJEdqiGTTRKiAYwNZdytPSxVguWcI,1035
130
- odxtools/parameters/tablekeyparameter.py,sha256=EaGPApBGbuzwIIEqeE3iB53LcLefEBa6r-Xe24trBrA,6984
131
- odxtools/parameters/tablestructparameter.py,sha256=6uCCoM7AaS2j8EHj8Y2jq1vQmJ6r2N4BKF6eLxGBr3s,6894
132
- odxtools/parameters/valueparameter.py,sha256=3Mbs480eQOtJViankx3b-xFomj1CqTjA2dokgOCxl2I,3109
110
+ odxtools/compumethods/createanycompumethod.py,sha256=UXDh0tv7ZHTMMwEH_N45pd1mQkZqVBsWAPK5skUGFYw,7690
111
+ odxtools/compumethods/identicalcompumethod.py,sha256=WjqizY0RH20S3vXg-iKbFttka3efTr2J420b3_Dj-ck,830
112
+ odxtools/compumethods/limit.py,sha256=cCm1q9rWbFvB05ZwI7ij2pkz12YYAd7NC5vmUE-54iQ,3156
113
+ odxtools/compumethods/linearcompumethod.py,sha256=ypX428AGZScpTMlqt0ajUgkeO3-Uzp9Wlucx_006O5g,8032
114
+ odxtools/compumethods/scalelinearcompumethod.py,sha256=ZUY6JRuIIWkCfHR0b3WOBlvAspmaz4oIbJtiEMg34Hk,1644
115
+ odxtools/compumethods/tabintpcompumethod.py,sha256=OjIMsW7AcxjUABY-E7I-vjo0tyPkLzG6bSQZjSF8Jbc,6833
116
+ odxtools/compumethods/texttablecompumethod.py,sha256=qgh-UVlT53wy8r7KUmXAQ1PT6IRjcCYEoYomqGzQTrI,3422
117
+ odxtools/parameters/codedconstparameter.py,sha256=GiCDkxIwk7Ad3MWwbC77MNRsCDuQyg4J305mwb2eX9Y,3701
118
+ odxtools/parameters/createanyparameter.py,sha256=FY9T7sUU1m8Ksq-J3rkU-IYz4vOYWj4twOUZT8Ajcxw,8645
119
+ odxtools/parameters/dynamicparameter.py,sha256=fU0cM6LHbz837MneKyNH7XXnVnAt7prjm3PD9YVw8cY,978
120
+ odxtools/parameters/lengthkeyparameter.py,sha256=w_OcCCQwV4DCqGzM84l3swiYJC89XCIQhfg6UXZq-fM,2450
121
+ odxtools/parameters/matchingrequestparameter.py,sha256=AfxrtENKDzrQQNdpktxZQ9uiun0s4xca9GKgtzlKGno,1735
122
+ odxtools/parameters/nrcconstparameter.py,sha256=xpbEClEXdewdKRlrq88YrswAcHd3Zf5wii2x8aed4pE,4152
123
+ odxtools/parameters/parameter.py,sha256=Mx_veUQfZn1SWEcZfIo1OO__jS52PocP1oGonuwwut4,5999
124
+ odxtools/parameters/parameterwithdop.py,sha256=ihE0C9SgGPnnTrk6WtZEBgxLziNXf4vXuAzuc6IEhr4,3829
125
+ odxtools/parameters/physicalconstantparameter.py,sha256=gY40gJVdz-aIpxcNId6NoWSbKt-7SGYcQs8gxumoGp8,3109
126
+ odxtools/parameters/reservedparameter.py,sha256=pO9O0x-A4G79T0dUVuQAT9elZ1WAYFirmXv_L5hssuE,1474
127
+ odxtools/parameters/systemparameter.py,sha256=h3WSsaWqjyaW1PPUUsepb84Hm5L9FknJcrtNAdRFnXE,1067
128
+ odxtools/parameters/tableentryparameter.py,sha256=ELqvZf7jf-9lx7GrV_mEYZa-ptTYHBvNvuj4W7RKjWM,1102
129
+ odxtools/parameters/tablekeyparameter.py,sha256=bNxatXu4j-Ds4Lhb5Si4NtWMR9DBf6iCwcVSKl_hhvs,6631
130
+ odxtools/parameters/tablestructparameter.py,sha256=LDPqvDRH1EeFuhOkJx6LlOppYVY_6Kilfsj82Prxozs,6820
131
+ odxtools/parameters/valueparameter.py,sha256=NAAg5bCqvl353VSuvCVDoGV_kRNsv6Nk5s7165vV6gM,2631
133
132
  odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=Ws7b0T158ys-NWMRC-8k50eat-O0lWmEH8jvOMATvZ4,2531
134
133
  odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=nr1LMD8_fJF7rNaq1gERufbgf36aHqfzD95kg4sMQCc,2026
135
134
  odxtools/templates/index.xml.xml.jinja2,sha256=dX7QZA3G5Au2BMbXWMMyF2K1aR6i3go-0E5dY3Z9hWE,636
@@ -160,9 +159,9 @@ odxtools/templates/macros/printStructure.xml.jinja2,sha256=DxysfpTrftccCUNwgzGoK
160
159
  odxtools/templates/macros/printTable.xml.jinja2,sha256=yfDrl-nXeZwY-HE8h3Ds8MNvBUEhdI0YuhaUIzhC_Bg,1459
161
160
  odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=Jx2J72_qWsEP3xT5F_zjPdqny9h8cGFSJDTBt_gxH7E,2792
162
161
  odxtools/templates/macros/printVariant.xml.jinja2,sha256=wQ1bIOCjbQWUgPkpkMPSPFMDQVhKBmOCTIhHuV-hJeY,6194
163
- odxtools-5.3.1.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
164
- odxtools-5.3.1.dist-info/METADATA,sha256=TPrxIx1MkTzWZYA-cC92cFCfaR-5nKMMot16ipxeVHM,27654
165
- odxtools-5.3.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
166
- odxtools-5.3.1.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
167
- odxtools-5.3.1.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
168
- odxtools-5.3.1.dist-info/RECORD,,
162
+ odxtools-6.0.1.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
163
+ odxtools-6.0.1.dist-info/METADATA,sha256=_coY79YyYcf3pxDSscsYvNlDm0bEfnBz5u3DHdU3-nY,27980
164
+ odxtools-6.0.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
165
+ odxtools-6.0.1.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
166
+ odxtools-6.0.1.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
167
+ odxtools-6.0.1.dist-info/RECORD,,
@@ -1,74 +0,0 @@
1
- # SPDX-License-Identifier: MIT
2
- from dataclasses import dataclass
3
- from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple
4
- from xml.etree import ElementTree
5
-
6
- from .dataobjectproperty import DataObjectProperty
7
- from .decodestate import DecodeState
8
- from .encodestate import EncodeState
9
- from .exceptions import odxrequire
10
- from .odxlink import OdxDocFragment, OdxLinkDatabase, OdxLinkId, OdxLinkRef
11
-
12
- if TYPE_CHECKING:
13
- from .diaglayer import DiagLayer
14
-
15
-
16
- @dataclass
17
- class PositionedDataObjectProperty:
18
- """
19
- This class represents a wrapper for DataObjectProperty that adds position information
20
- used by Switch Key in the Multiplexer.
21
- used by Number Of Items in the DynamicLengthField.
22
- """
23
-
24
- byte_position: int
25
- bit_position: Optional[int]
26
- dop_ref: OdxLinkRef
27
-
28
- def __post_init__(self):
29
- self._dop: DataObjectProperty = None # type: ignore
30
-
31
- @staticmethod
32
- def from_et(et_element: ElementTree.Element,
33
- doc_frags: List[OdxDocFragment]) -> "PositionedDataObjectProperty":
34
- byte_position = int(odxrequire(et_element.findtext("BYTE-POSITION", "0")))
35
- bit_position_str = et_element.findtext("BIT-POSITION")
36
- bit_position = int(bit_position_str) if bit_position_str is not None else None
37
- dop_ref = odxrequire(OdxLinkRef.from_et(et_element.find("DATA-OBJECT-PROP-REF"), doc_frags))
38
-
39
- return PositionedDataObjectProperty(
40
- byte_position=byte_position,
41
- bit_position=bit_position,
42
- dop_ref=dop_ref,
43
- )
44
-
45
- @property
46
- def dop(self) -> DataObjectProperty:
47
- return self._dop
48
-
49
- def _build_odxlinks(self) -> Dict[OdxLinkId, Any]:
50
- return {}
51
-
52
- def _resolve_odxlinks(self, odxlinks: OdxLinkDatabase) -> None:
53
- self._dop = odxrequire(odxlinks.resolve(self.dop_ref, DataObjectProperty))
54
-
55
- def _resolve_snrefs(self, diag_layer: "DiagLayer") -> None:
56
- pass
57
-
58
- def convert_physical_to_bytes(self, physical_value, encode_state: EncodeState) -> bytes:
59
-
60
- bit_position = self.bit_position if self.bit_position is not None else 0
61
- dop_bytes = self.dop.convert_physical_to_bytes(physical_value, encode_state, bit_position)
62
-
63
- return b'\0' * self.byte_position + dop_bytes
64
-
65
- def convert_bytes_to_physical(self, decode_state: DecodeState) -> Tuple[Any, int]:
66
-
67
- byte_code = decode_state.coded_message[decode_state.next_byte_position:]
68
- state = DecodeState(
69
- coded_message=byte_code[self.byte_position:],
70
- parameter_values=dict(),
71
- next_byte_position=0,
72
- )
73
- bit_position_int = (self.bit_position if self.bit_position is not None else 0)
74
- return self.dop.convert_bytes_to_physical(state, bit_position=bit_position_int)