A package for parsing ADIS files or creating new files in the ADIS format.
Project description
ADIS
A python package for parsing and creating ADIS (Agricultural Data Interchange Syntax) files.
This parser supports Class A ADIS format.
Wikipedia artice (unfortunately only available in german)
Installation
pip install adis
Examples
Parse an ADIS file and turn it to JSON
# example_adis_to_json.py
from adis import Adis
adis = Adis.parse_from_file("sample.ads")
generated_json = adis.to_json()
print(generated_json)
Prettyprinted output:
[
{
"990001": {
"definitions": [
{
"item_number": "00000000",
"field_size": 20,
"decimal_digits": 0
},
{
"item_number": "00000001",
"field_size": 9,
"decimal_digits": 6
},
{
"item_number": "00000002",
"field_size": 10,
"decimal_digits": 0
}
],
"data": [
{
"00000000": "Euler number",
"00000001": 2.718281,
"00000002": null
},
{
"00000000": "Pi",
"00000001": 3.141592,
"00000002": null
},
{
"00000000": "Gravity on Earth",
"00000001": 9.81,
"00000002": "ms^(-2)"
}
],
"status": "H"
},
"990002": {
"definitions": [
{
"item_number": "00000008",
"field_size": 10,
"decimal_digits": 0
},
{
"item_number": "00000009",
"field_size": 10,
"decimal_digits": 0
}
],
"data": [
{
"00000008": "abc",
"00000009": "xyz"
},
{
"00000008": "def",
"00000009": "uvw"
}
],
"status": "N"
}
},
{
"990001": {
"definitions": [
{
"item_number": "00000006",
"field_size": 10,
"decimal_digits": 0
},
{
"item_number": "00000007",
"field_size": 5,
"decimal_digits": 2
}
],
"data": [
{
"00000006": "1",
"00000007": 1.23
},
{
"00000006": "2"
}
],
"status": "H"
}
}
]
Turn a JSON file to ADIS
# example_json_to_adis.py
from adis import Adis
adis = Adis.from_json_file("sample.json")
generated_adis_text = adis.dumps()
print(generated_adis_text)
Output:
DH990001000000002000000000109600000002100
VH990001Euler number 2718281??????????
VH990001Pi 3141592??????????
VH990001Gravity on Earth 9810000ms^(-2)
DN9900020000000810000000009100
VN990002abc xyz
VN990002def uvw
EN
DH9900010000000610000000007052
VH990001 1 123
VH990001 2|||||
ZN
About the ADIS format
Each physical file can contain multiple logical ADIS files, these are represented by objects of the type AdisFile
.
Each of those logical ADIS files contains one or multiple blocks, these are represented by objects of the type AdisBlock
.
Each block consists of the definitions for the fields (list of objects of type AdisFieldDefinition
) and one or multiple
data rows (list of list of AdisValue
).
Documentation
This documentation only contains methods that are inteded to be used by the user. Take a look at the docstrings for more information about methods.
Adis
Static methods:
parse(text)
: Creates anAdis
object from a text that's in the ADIS formatparse_from_file(path_to_file)
: Creates anAdis
object from an ADIS filefrom_json(json_text)
: Create anAdis
object from a json textfrom_json_file(path_to_json_file)
: Create anAdis
object from a json file
Normal methods:
__init__(adis_files)
: Creates anAdis
object from a list ofAdisFile
sto_json(strip_string_values=True)
: Creates a json text containing the files, definitions and datadumps()
: Creates a text in the ADIS formatget_files()
: Returns a list ofAdisFile
s
AdisFile
Normal methods:
__init__(blocks)
: Creates anAdisFile
from a list ofAdisBlock
sget_blocks()
: Returns a list ofAdisBlock
s
AdisBlock
Normal methods:
__init__(entity_number, status, field_definitions, data_rows)
: Creates anAdisBlock
get_entity_number()
: Returns the entity number of thisAdisBlock
get_field_definitions()
: Returns the field definitions as list ofAdisFieldDefinition
sget_data_rows()
: Returns the data rows as list. Each data row is a list ofAdisValue
s
AdisFieldDefinition
Normal methods:
__init__(item_number, field_size, decimal_digits)
: Creates anAdisFieldDefinition
get_item_number()
: Returns the item numberget_field_size()
: Returns the field sizeget_decimal_digits()
: Returns the number of decimal digits
AdisValue
Static flags:
strip_string_values
: String values that are returned byto_dict()
will be stripped if this flag is set.
Normal methods:
__init__(item_number, value)
: Creates anAdisValue
to_dict()
: Returns a dict containing the item number and value of thisAdisValue
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 adis-1.0.1.tar.gz
.
File metadata
- Download URL: adis-1.0.1.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7afcaabf32bdfddd618bfaff3f54d7e760396033bd828b7ed876b33eb263edab |
|
MD5 | 8145faa8ac18a2589d6ed6261bed78d0 |
|
BLAKE2b-256 | 2d884914ff73b8a5433fae109ba494664d492e703e5bfbc14b2ca4da0bfea480 |
File details
Details for the file adis-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: adis-1.0.1-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9883f923e3241b8450b50962eacdf65554feeda5c698b1d80ace09f2838a327 |
|
MD5 | 33ec39f7ce3084fd8f14c55dff27e2c3 |
|
BLAKE2b-256 | f3164bf672d3ea05ef84b79ad438105876e16fcf3c221cdfda630d8f5f5b6c12 |