{"library":"pydifact","title":"Pydifact: EDIFACT Parser and Serializer","description":"Pydifact is a Python library designed to provide comprehensive support for reading and writing EDIFACT (Electronic Data Interchange For Administration, Commerce and Transport) files. Despite being an older format, EDIFACT remains a standard in many business sectors, such as for the transfer of medical reports in Austria. This library is a work in progress, with its current version being 0.2.3, and the API is not yet stable, implying a potentially rapid release cadence with breaking changes.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install pydifact"],"cli":null},"imports":["from pydifact.segmentcollection import Interchange","from pydifact.segments import Segment"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pydifact.segmentcollection import Interchange\nfrom pydifact.segments import Segment\n\n# Example EDIFACT data (Interchange containing one message)\nedifact_data = (\n    \"UNA:+,? '\\n\"\n    \"UNB+UNOC:1+1234+3333+200102:2212+42'\\n\"\n    \"UNH+42z42+PAORES:93:1:IA'\\n\"\n    \"MSG+1:45'\\n\"\n    \"IFT+3+XYZCOMPANY AVAILABILITY'\\n\"\n    \"ERC+A7V:1:AMD'\\n\"\n    \"UNT+5+42z42'\\n\"\n    \"UNZ+2+42'\"\n)\n\n# --- Reading an EDIFACT interchange from a string ---\ninterchange = Interchange.from_str(edifact_data)\nprint(\"\\n--- Reading Interchange ---\")\nfor message in interchange.get_messages():\n    for segment in message.segments:\n        print(f\"Segment tag: {segment.tag}, content: {segment.elements}\")\n\n# --- Creating an EDIFACT interchange ---\nnew_interchange = Interchange()\nnew_interchange.add_segment(Segment(\"UNA\", [\":\", \"+\", \",\", \"?\", \" \", \"'\"])) # Optional, if custom control characters are needed\nnew_interchange.add_segment(Segment(\"UNB\", [\"UNOC:1\", \"SENDER\", \"RECEIVER\", \"20230101:1000\", \"REF123\"]))\nnew_message = new_interchange.new_message(\"ORDER\", \"D\", \"96A\", \"UN\")\nnew_message.add_segment(Segment(\"BGM\", [\"220\", \"ORDER123\"]))\nnew_message.add_segment(Segment(\"DTM\", [\"137:20230101:1000\"]))\nnew_interchange.add_message(new_message)\n\nprint(\"\\n--- Serializing Interchange ---\")\nprint(new_interchange.serialize(break_lines=True))\n","lang":"python","description":"This quickstart demonstrates how to parse an EDIFACT interchange from a string and iterate through its messages and segments. It also shows how to construct a new interchange programmatically and serialize it into an EDIFACT string.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"0.1.8","pypi_latest":"0.2.3","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.08,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.08,"mem_mb":5.7,"disk_size":"18.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.06,"mem_mb":5.7,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.13,"mem_mb":6,"disk_size":"20.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.11,"mem_mb":6,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.11,"mem_mb":5.8,"disk_size":"11.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.11,"mem_mb":5.8,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.1,"mem_mb":5.9,"disk_size":"11.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.1,"mem_mb":5.7,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.2,"disk_size":"17.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pydifact","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.01,"mem_mb":1.2,"disk_size":"18M"}]}}