mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
[DayOne] support moderm plistlib
(#909)
The API of the standard library's `plistlib` changed with version 3.4 of Python, and the old API is being removed in Python 3.9. In other words, the new API is supported by all version of Python we current support (3.6 to 3.8). See https://docs.python.org/3.4/library/plistlib.html for more details.
This commit is contained in:
parent
86f5e8e243
commit
4fed54576c
1 changed files with 9 additions and 4 deletions
|
@ -8,6 +8,7 @@ import re
|
|||
from datetime import datetime
|
||||
import time
|
||||
import fnmatch
|
||||
from pathlib import Path
|
||||
import plistlib
|
||||
import pytz
|
||||
import uuid
|
||||
|
@ -43,7 +44,7 @@ class DayOne(Journal.Journal):
|
|||
for filename in filenames:
|
||||
with open(filename, "rb") as plist_entry:
|
||||
try:
|
||||
dict_entry = plistlib.readPlist(plist_entry)
|
||||
dict_entry = plistlib.load(plist_entry, fmt=plistlib.FMT_XML)
|
||||
except self.PLIST_EXCEPTIONS:
|
||||
pass
|
||||
else:
|
||||
|
@ -84,8 +85,10 @@ class DayOne(Journal.Journal):
|
|||
if not hasattr(entry, "uuid"):
|
||||
entry.uuid = uuid.uuid1().hex
|
||||
|
||||
filename = os.path.join(
|
||||
self.config["journal"], "entries", entry.uuid.upper() + ".doentry"
|
||||
fn = (
|
||||
Path(self.config["journal"])
|
||||
/ "entries"
|
||||
/ (entry.uuid.upper() + ".doentry")
|
||||
)
|
||||
|
||||
entry_plist = {
|
||||
|
@ -99,7 +102,9 @@ class DayOne(Journal.Journal):
|
|||
for tag in entry.tags
|
||||
],
|
||||
}
|
||||
plistlib.writePlist(entry_plist, filename)
|
||||
# plistlib expects a binary object
|
||||
with fn.open(mode="wb") as f:
|
||||
plistlib.dump(entry_plist, f, fmt=plistlib.FMT_XML, sort_keys=False)
|
||||
for entry in self._deleted_entries:
|
||||
filename = os.path.join(
|
||||
self.config["journal"], "entries", entry.uuid + ".doentry"
|
||||
|
|
Loading…
Add table
Reference in a new issue