Package: adis
ADISA python package for parsing and creating ADIS (Agricultural Data Interchange Syntax) files.This parser supportsClass AADIS format.ADIS Standardization documentWikipedia artice (unfortunately only available in german)Installationpip install adisExamplesParse an ADIS file and turn it to JSON# example_adis_to_json.pyfromadisimportAdisadis=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.pyfromadisimportAdisadis=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|||||
ZNAbout the ADIS formatEach physical file can contain multiple logical ADIS files, these are represented by objects of the typeAdisFile.
Each of those logical ADIS files contains one or multiple blocks, these are represented by objects of the typeAdisBlock.
Each block consists of the definitions for the fields (list of objects of typeAdisFieldDefinition) and one or multiple
data rows (list of list ofAdisValue).DocumentationThis documentation only contains methods that are inteded to be used by the user.
Take a look at the docstrings for more information about methods.AdisStatic methods:parse(text): Creates anAdisobject from a text that's in the ADIS formatparse_from_file(path_to_file): Creates anAdisobject from an ADIS filefrom_json(json_text): Create anAdisobject from a json textfrom_json_file(path_to_json_file): Create anAdisobject from a json fileNormal methods:__init__(adis_files): Creates anAdisobject from a list ofAdisFilesto_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 ofAdisFilesAdisFileNormal methods:__init__(blocks): Creates anAdisFilefrom a list ofAdisBlocksget_blocks(): Returns a list ofAdisBlocksAdisBlockNormal methods:__init__(entity_number, status, field_definitions, data_rows): Creates anAdisBlockget_entity_number(): Returns the entity number of thisAdisBlockget_field_definitions(): Returns the field definitions as list ofAdisFieldDefinitionsget_data_rows(): Returns the data rows as list. Each data row is a list ofAdisValuesAdisFieldDefinitionNormal methods:__init__(item_number, field_size, decimal_digits): Creates anAdisFieldDefinitionget_item_number(): Returns the item numberget_field_size(): Returns the field sizeget_decimal_digits(): Returns the number of decimal digitsAdisValueStatic 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 anAdisValueto_dict(): Returns a dict containing the item number and value of thisAdisValue