utility for a2l files
Project description
branch | build | coverage |
---|---|---|
master | ||
develop |
Package description
the purpose of this package is to provide an easy way to access and navigate
in a2l formatted file.
once the file has been loaded, a tree of Python objects is generated, allowing the user to access nodes.
Installation
Using pip
Install the last released version of the package by running the following command:
pip install pya2l
or install the most recent version of the package (master branch) by running the following command:
pip install git+https://github.com/Sauci/pya2l.git@master
Example of usage
Command line tool
Once the package installed, the pya2l
command will be available. It provides several different commands:
- Convert an A2L file to JSON with
pya2l -v <source>.a2l to_json -o <output.json> -i 2
- Convert an A2L file to A2L with
pya2l -v <source.a2l> to_a2l -o <output.a2l> -i 2
- Convert a JSON-formatted A2L file to JSON with
pya2l -v <source>.json to_json -o <output.json> -i 2
- Convert a JSON-formatted A2L file to A2L with
pya2l -v <source>.json to_a2l -o <output.a2l> -i 2
Python API
the bellow code snippet shows how properties of a node in an a2l string can be retrieved using this package.
from pya2l.parser import A2lParser as Parser
a2l_string = """/begin PROJECT project_name "example project"
/begin MODULE first_module "first module long identifier"
/begin CHARACTERISTIC
example_of_characteristic
"first characteristic long identifier"
VALUE
0
DAMOS_SST
0
first_characteristic_conversion
-4.5
12.0
/end CHARACTERISTIC
/end MODULE
/end PROJECT
"""
with Parser() as p:
# get the AST.
ast = p.tree_from_a2l(a2l_string.encode())
# get a list of available properties for a specific node.
assert set(ast.PROJECT.properties) == {'Name', 'LongIdentifier', 'HEADER', 'MODULE'}
# access nodes explicitly.
assert ast.PROJECT.MODULE[0].CHARACTERISTIC[0].Name.Value == 'example_of_characteristic'
assert ast.PROJECT.MODULE[0].CHARACTERISTIC[0].LowerLimit.Value == -4.5
assert ast.PROJECT.MODULE[0].CHARACTERISTIC[0].UpperLimit.Value == 12.0
a2l_string = """/begin PROJECT project_name "example project"
/begin MODULE first_module "first module long identifier"
/end MODULE
/end PROJECT
"""
with Parser() as p:
# get the AST.
ast = p.tree_from_a2l(a2l_string.encode())
# convert node to json-formatted string.
assert p.json_from_tree(ast, indent=2).decode() == """{
"PROJECT": {
"Name": {
"Value": "project_name"
},
"LongIdentifier": {
"Value": "example project"
},
"MODULE": [
{
"Name": {
"Value": "first_module"
},
"LongIdentifier": {
"Value": "first module long identifier"
}
}
]
}
}"""
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pya2l-0.1.4.tar.gz
.
File metadata
- Download URL: pya2l-0.1.4.tar.gz
- Upload date:
- Size: 50.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 297fdaa4b8f2c3b267cc08361f83a99df18c0aa1216f7255a3343b54970f228f |
|
MD5 | c1efee14caf47fd249d31dd1dc4a206f |
|
BLAKE2b-256 | cfac2fe9c2bcb1bf64c238d1a6d127d5d94e473df89174feefe45920f395c36c |
File details
Details for the file pya2l-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: pya2l-0.1.4-py3-none-any.whl
- Upload date:
- Size: 50.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a735b37d722e060b8e873af947753f856cb0bbff71a709ba31b5475fca5782d2 |
|
MD5 | ff1740d3ccf3af035dba6aafece90353 |
|
BLAKE2b-256 | f8fb229eacb328c3394bc23af0ca6de80a7fc48434ef380f64867d1011dc1b5e |