{"id":24171,"library":"openstep-parser","title":"OpenStep Parser","description":"Parses OpenStep plist files into Python objects. Current version 2.0.3, requires Python >=3.10. Releases are infrequent, focused on bug fixes.","status":"active","version":"2.0.3","language":"python","source_language":"en","source_url":"https://github.com/kronenthaler/openstep-parser","tags":["plist","openstep","parser","property-list"],"install":[{"cmd":"pip install openstep-parser","lang":"bash","label":"Default install"}],"dependencies":[],"imports":[{"note":"Primary function to parse a string.","symbol":"loads","correct":"from openstep_parser import loads"},{"note":"Parses from a file-like object.","symbol":"load","correct":"from openstep_parser import load"},{"note":"No known common wrong import.","wrong":"from openstep_parser import OpenStepParser as OldName","symbol":"OpenStepParser","correct":"from openstep_parser import OpenStepParser"}],"quickstart":{"code":"from openstep_parser import loads\n\nplist_str = \"\"\"({\n    key = value;\n    number = 42;\n}) \"\"\"\nresult = loads(plist_str)\nprint(result)\n# Expected: {'key': 'value', 'number': 42}","lang":"python","description":"Parse an OpenStep plist string into a Python dict."},"warnings":[{"fix":"Ensure booleans in plist are 'YES'/'NO' (all caps). Lowercase will be treated as strings.","message":"The parser is case-sensitive for boolean values: 'YES' and 'NO' must be uppercase.","severity":"gotcha","affected_versions":"all"},{"fix":"If your plist contains date or binary data, convert them beforehand or use a different parser.","message":"Data types are limited: only dict, list, str, int, float, bool, and None (via '<null>'). Other plist types are not supported.","severity":"gotcha","affected_versions":"all"},{"fix":"Use loads() or load() instead of instantiating OpenstepParser directly.","message":"The 'OpenstepParser' class constructor is deprecated; use the top-level functions instead.","severity":"deprecated","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Update to version >=2.0.0: pip install --upgrade openstep-parser","cause":"Installed version is older than 2.0.0, which didn't have the loads function.","error":"AttributeError: module 'openstep_parser' has no attribute 'loads'"},{"fix":"Check the structure of your plist string. Ensure it begins with '(' for arrays or '{' for dicts.","cause":"Passing a string that is not a valid plist format; parser returns a list or dict but code expects indexing.","error":"TypeError: string indices must be integers"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}