libimobiledevice/libplist — pull request #17 by Tatsh (2014-03-31 06:34:47+00:00)
Title: load() and loads() to match up with Python 3.4 plistlib

Python has its own property list parsing library as of 3.3 and I think it would be good to model after that.

Beyond that, the idea in 3.4 is to standardise on what both the `yaml` and `json` modules use for reading/writing:
* `load()` to read a file pointer
* `loads()` to parse a string or bytes
* `dump()` to dump to a file pointer
* `dumps()` to dump to a string or bytes object.

The `load()`/`loads()` functions also make it so one does not have to know the format of the property list they are dealing with. Without a `fmt` argument, a guess will be made based on the first 6 bytes of the file.

For JSON property lists, one is expected to use the `json` module as has always been the case.

### Caveats
* `load()` and `loads()` do not care about the `use_builtin_types` or `dict_type` keyword arguments. They are there for compatibility with the 'future' API (since many are not yet going to have Python 3.4). I don't know if these should ever be truly supported.
* `dump()` and`dumps()` are not yet implemented

### Example use with libplist as fall-back
```python
try:
from plistlib import loads as plist_load_str
except ImportError:
from plist import loads as plist_load_str
```
### Sources
https://docs.python.org/dev/whatsnew/3.4.html#plistlib
https://docs.python.org/dev/library/plistlib.html#module-plistlib