Skip to main content

Some simple MacOS plist facilities. Supports binary plist files, which the stdlib `plistlib` module does not.

Project description

Some simple MacOS plist facilities. Supports binary plist files, which the stdlib plistlib module does not.

Latest release 20221228: ingest_plist_dict: bugfix initial setting for key.

Function export_xml_to_plist(E, fp=None, fmt='binary1')

Export the content of an etree.Element to a plist file.

Parameters:

  • E: the source etree.Element.
  • fp: the output file or filename (if a str).
  • fmt: the output format, default "binary1". The format must be a valid value for the -convert option of plutil(1).

Function import_as_etree(plist)

Load an Apple plist and return an etree.Element.

Paramaters:

  • plist: the source plist: data if bytes, filename if str, otherwise a file object open for binary read.

Function ingest_plist(plist, recurse=False, resolve=False)

Ingest an Apple plist and return as a PListDict. Trivial wrapper for import_as_etree and ingest_plist_etree.

Parameters:

  • recurse: unpack any bytes objects as plists
  • resolve: resolve unpacked bytes plists' '$objects' entries

Function ingest_plist_array(pa)

Ingest a plist , returning a Python list.

Function ingest_plist_dict(pd)

Ingest a plist Element, returning a PListDict.

Function ingest_plist_elem(e)

Ingest a plist Element, converting various types to native Python objects. Unhandled types remain as the original Element.

Function ingest_plist_etree(plist_etree)

Recursively a plist's ElementTree into a native Python structure. This returns a PListDict, a mapping of the plists's top dict with attribute access to key values.

Function is_iphone()

Test if we're on an iPhone.

Class ObjectClassDefinition

A representation of a "class" object, used in resolve_object() for otherwise unrecognised objects which contain a $classname member.

Class ObjectClassInstance

A representation of a "class instance", used in resolve_object() for objects with a $class member.

Class PListDict(builtins.dict)

A mapping for a plist, subclassing dict, which also allows access to the elements by attribute if that does not conflict with a dict method.

Function readPlist(path, binary=False)

An old routine I made to use inside my jailbroken iPhone.

Function resolve_object(objs, i)

Resolve an object definition from structures like an iPhoto album queryData object list.

Function writePlist(rootObj, path, binary=False)

An old routine I made to use inside my jailbroken iPhone.

Release Log

Release 20221228: ingest_plist_dict: bugfix initial setting for key.

Release 20220606: Initial PyPI release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cs.app.osx.plist-20221228.tar.gz (6.2 kB view hashes)

Uploaded Source

Built Distribution

cs.app.osx.plist-20221228-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page