diff --git a/fastcore/_modidx.py b/fastcore/_modidx.py index 9f3fb4cc..9913f91f 100644 --- a/fastcore/_modidx.py +++ b/fastcore/_modidx.py @@ -577,6 +577,7 @@ 'fastcore.xtras.Path.read_json': ('xtras.html#path.read_json', 'fastcore/xtras.py'), 'fastcore.xtras.Path.readlines': ('xtras.html#path.readlines', 'fastcore/xtras.py'), 'fastcore.xtras.Path.relpath': ('xtras.html#path.relpath', 'fastcore/xtras.py'), + 'fastcore.xtras.Path.write_json': ('xtras.html#path.write_json', 'fastcore/xtras.py'), 'fastcore.xtras.ReindexCollection': ('xtras.html#reindexcollection', 'fastcore/xtras.py'), 'fastcore.xtras.ReindexCollection.__getitem__': ( 'xtras.html#reindexcollection.__getitem__', 'fastcore/xtras.py'), diff --git a/fastcore/xtras.py b/fastcore/xtras.py index 18ee6f82..06813b05 100644 --- a/fastcore/xtras.py +++ b/fastcore/xtras.py @@ -366,6 +366,12 @@ def mk_write(self:Path, data, encoding=None, errors=None, mode=511, uid=-1, gid= self.write_text(data, encoding=encoding, errors=errors) if uid!=-1 or gid!=-1: os.chown(self, uid, gid) +# %% ../nbs/03_xtras.ipynb +@patch +def write_json(self:Path, data, encoding=None, errors=None, mode=511, uid=-1, gid=-1, **kw): + "Same as `dumps`followed by `mk_write`" + self.mk_write(dumps(data,**kw),encoding,errors,mode,uid,gid) + # %% ../nbs/03_xtras.ipynb @patch def relpath(self:Path, start=None): diff --git a/nbs/03_xtras.ipynb b/nbs/03_xtras.ipynb index 65fc5a87..6b3838d5 100644 --- a/nbs/03_xtras.ipynb +++ b/nbs/03_xtras.ipynb @@ -1237,6 +1237,19 @@ " if uid!=-1 or gid!=-1: os.chown(self, uid, gid)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#|export\n", + "@patch\n", + "def write_json(self:Path, data, encoding=None, errors=None, mode=511, uid=-1, gid=-1, **kw):\n", + " \"Same as `dumps`followed by `mk_write`\"\n", + " self.mk_write(dumps(data,**kw),encoding,errors,mode,uid,gid)" + ] + }, { "cell_type": "code", "execution_count": null,