{"id":15717258,"url":"https://github.com/dgelessus/python_plistlib_mod","last_synced_at":"2026-05-20T07:35:56.391Z","repository":{"id":191756651,"uuid":"685328407","full_name":"dgelessus/python_plistlib_mod","owner":"dgelessus","description":"plistlib from Python 3.8+, backported to Python 3.4+ with slight enhancements","archived":false,"fork":false,"pushed_at":"2023-08-31T02:19:56.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-06T00:35:22.676Z","etag":null,"topics":["backport","macos","macosx","plist","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgelessus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-31T01:53:12.000Z","updated_at":"2024-07-02T04:33:51.000Z","dependencies_parsed_at":"2023-08-31T14:41:54.281Z","dependency_job_id":"76af6c4b-8a87-49f2-9f81-1a595b524d26","html_url":"https://github.com/dgelessus/python_plistlib_mod","commit_stats":null,"previous_names":["dgelessus/python_plistlib_mod"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgelessus%2Fpython_plistlib_mod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgelessus%2Fpython_plistlib_mod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgelessus%2Fpython_plistlib_mod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgelessus%2Fpython_plistlib_mod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgelessus","download_url":"https://codeload.github.com/dgelessus/python_plistlib_mod/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246380148,"owners_count":20767812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backport","macos","macosx","plist","python"],"created_at":"2024-10-03T21:49:16.582Z","updated_at":"2026-05-20T07:35:51.368Z","avatar_url":"https://github.com/dgelessus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `plistlib_mod`\n\nA slightly enhanced/modified version of the [plistlib](https://docs.python.org/3/library/plistlib.html) module from the Python 3.11 standard library,\nbackported to Python 3.4 and later.\n\n## Features\n\nAt the moment,\n`plistlib_mod` matches the `plistlib` standard library module from Python 3.11.5,\nbut is compatible with Python 3.4 and later.\nIn particular,\nit includes the following features and fixes,\nwhich are otherwise not available on older Python versions:\n\n* Fix typo in error message in plistlib ([GH-97540](https://github.com/python/cpython/pull/97540)) (from 3.11+, 3.10.8)\n* [bpo-42249](https://bugs.python.org/issue42249): Fix writing binary Plist files larger than 4 GiB. ([GH-23121](https://github.com/python/cpython/pull/23121)) (from 3.10+, 3.9.1, 3.8.7)\n* [bpo-42103](https://bugs.python.org/issue42103): Improve validation of Plist files. ([GH-22882](https://github.com/python/cpython/pull/22882)) (from 3.10+, 3.9.1, 3.8.7, 3.7.10, 3.6.13)\n* [bpo-41491](https://bugs.python.org/issue41491): `plistlib`: accept hexadecimal integer values in xml plist files ([GH-22764](https://github.com/python/cpython/pull/22764)) (from 3.10+, 3.9.1, 3.8.7)\n* [bpo-42051](https://bugs.python.org/issue42051): Reject XML entity declarations in plist files ([#22760](https://github.com/python/cpython/pull/22760)) (from 3.10+, 3.9.1, 3.8.7, 3.7.10, 3.6.13)\n* [bpo-26707](https://bugs.python.org/issue26707): Enable `plistlib` to read UID keys. ([GH-12153](https://github.com/python/cpython/pull/12153)) (from 3.8+)\n* [bpo-32072](https://bugs.python.org/issue32072): Fix issues with binary plists. ([#4455](https://github.com/python/cpython/pull/4455)) (from 3.7+, 3.6.4, 3.5.5, 3.4.8)\n* [bpo-31897](https://bugs.python.org/issue31897): Convert unexpected errors when read bogus binary plists into `InvalidFileException`. ([#4171](https://github.com/python/cpython/pull/4171)) (from 3.7+, 3.6.4)\n* [bpo-28321](https://bugs.python.org/issue28321): Fixed writing non-BMP characters with binary format in `plistlib`. (from 3.5.3+)\n* [bpo-27109](https://bugs.python.org/issue27109): Add `InvalidFileException` to `__all__`, by Jacek Kołodziej (from 3.6+)\n* [bpo-26711](https://bugs.python.org/issue26711): Fixed the comparison of `plistlib.Data` with other types. (from 3.5.2+)\n* [bpo-26709](https://bugs.python.org/issue26709): Fixed Y2038 problem in loading binary PLists. (from 3.5.2+)\n* [bpo-21888](https://bugs.python.org/issue21888): plistlib's `load()` and `loads()` now work if the fmt parameter is specified. (from 3.4.2+)\n* [bpo-21538](https://bugs.python.org/issue21538): The `plistlib` module now supports loading of binary plist files when reference or offset size is not a power of two. (from 3.4.2+)\n\nThe following deprecated APIs have been removed,\nlike in newer Python versions:\n\n* [bpo-36409](https://bugs.python.org/issue36409): Remove old `plistlib` API deprecated in 3.4 ([GH-15615](https://github.com/python/cpython/pull/15615)) (removed in 3.9)\n* [bpo-29196](https://bugs.python.org/issue29196): Removed old-deprecated classes `Plist`, `Dict` and `_InternalDict` ([#488](https://github.com/python/cpython/pull/488)) (removed in 3.7)\n\n## Installation\n\n`plistlib_mod` is not released on PyPI yet.\nOnce it is released,\nyou will be able to use the package `plistlib_mod` as a dependency.\n\n## Usage\n\n`plistlib_mod` is nearly identical to the standard `plistlib` module.\nThe recommended way to use it is:\n\n```python\nimport plistlib_mod as plistlib\n```\n\nIf appropriate,\nyou can also conditionally fall back to the standard `plistlib` module\nin case `plistlib_mod` isn't available.\nIf you do this,\nmake sure that your code can handle `plistlib_mod`'s enhancements being unavailable!\n\n```python\ntry:\n    import plistlib_mod as plistlib\nexcept ModuleNotFoundError:\n    import plistlib\n```\n\n## License\n\nLike Python itself,\n`plistlib_mod` is licensed under the Python Software Foundation License Version 2.\nSee the [LICENSE](./LICENSE) file for details.\n\n## Changelog\n\n### Version 0.1.0 (next version)\n\n* Initial release.\n* Based on `plistlib` from Python 3.11.5,\n  with small compatibility changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgelessus%2Fpython_plistlib_mod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgelessus%2Fpython_plistlib_mod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgelessus%2Fpython_plistlib_mod/lists"}