Skip to content

Commit 1a7ad7f

Browse files
authored
Merge pull request #537 from leancloud/release-299
docs: prepare to release 2.9.9
2 parents 056e079 + a2061ea commit 1a7ad7f

File tree

4 files changed

+61
-20
lines changed

4 files changed

+61
-20
lines changed

changelog

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## [2.9.9] - 2021-12-14
2+
3+
### Added
4+
5+
- LCFile exposes the `key` attribute for non-external files.
6+
7+
### Fixed
8+
9+
- created_at and updated_at were missing on LCFile.
10+
- updated_at was missing on new created LCObject.
11+
112
## [2.9.8] - 2021-12-10
213

314
### Fixed

docs/_modules/leancloud/file_.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ <h1>leancloud.file_ 源代码</h1><div class="highlight"><pre>
102102
<span class="bp">self</span><span class="o">.</span><span class="n">_name</span> <span class="o">=</span> <span class="n">name</span>
103103
<span class="bp">self</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="kc">None</span>
104104
<span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="kc">None</span>
105+
<span class="bp">self</span><span class="o">.</span><span class="n">created_at</span> <span class="o">=</span> <span class="kc">None</span>
106+
<span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span> <span class="o">=</span> <span class="kc">None</span>
105107
<span class="bp">self</span><span class="o">.</span><span class="n">_url</span> <span class="o">=</span> <span class="kc">None</span>
106108
<span class="bp">self</span><span class="o">.</span><span class="n">_successful_url</span> <span class="o">=</span> <span class="kc">None</span>
107109
<span class="bp">self</span><span class="o">.</span><span class="n">_acl</span> <span class="o">=</span> <span class="kc">None</span>
@@ -293,9 +295,18 @@ <h1>leancloud.file_ 源代码</h1><div class="highlight"><pre>
293295
<span class="p">}</span>
294296
<span class="n">response</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="s2">&quot;/files&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="p">),</span> <span class="n">data</span><span class="p">)</span>
295297
<span class="n">content</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
298+
296299
<span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="n">content</span><span class="p">[</span><span class="s2">&quot;objectId&quot;</span><span class="p">]</span>
300+
297301
<span class="bp">self</span><span class="o">.</span><span class="n">_successful_url</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_url</span>
298302

303+
<span class="n">_created_at</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode_date_string</span><span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;createdAt&quot;</span><span class="p">))</span>
304+
<span class="n">_updated_at</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode_updated_at</span><span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;updatedAt&quot;</span><span class="p">),</span> <span class="n">_created_at</span><span class="p">)</span>
305+
<span class="k">if</span> <span class="n">_created_at</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
306+
<span class="bp">self</span><span class="o">.</span><span class="n">created_at</span> <span class="o">=</span> <span class="n">_created_at</span>
307+
<span class="k">if</span> <span class="n">_updated_at</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
308+
<span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span> <span class="o">=</span> <span class="n">_updated_at</span>
309+
299310
<span class="k">def</span> <span class="nf">_save_to_qcloud</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">,</span> <span class="n">upload_url</span><span class="p">):</span>
300311
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span>
301312
<span class="s2">&quot;Authorization&quot;</span><span class="p">:</span> <span class="n">token</span><span class="p">,</span>
@@ -356,10 +367,19 @@ <h1>leancloud.file_ 源代码</h1><div class="highlight"><pre>
356367
<span class="k">if</span> <span class="s2">&quot;url&quot;</span> <span class="ow">in</span> <span class="n">server_data</span><span class="p">:</span>
357368
<span class="bp">self</span><span class="o">.</span><span class="n">_url</span> <span class="o">=</span> <span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;url&quot;</span><span class="p">)</span>
358369
<span class="bp">self</span><span class="o">.</span><span class="n">_successful_url</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_url</span>
370+
<span class="k">if</span> <span class="s2">&quot;key&quot;</span> <span class="ow">in</span> <span class="n">server_data</span><span class="p">:</span>
371+
<span class="bp">self</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;key&quot;</span><span class="p">)</span>
359372
<span class="k">if</span> <span class="s2">&quot;mime_type&quot;</span> <span class="ow">in</span> <span class="n">server_data</span><span class="p">:</span>
360373
<span class="bp">self</span><span class="o">.</span><span class="n">_mime_type</span> <span class="o">=</span> <span class="n">server_data</span><span class="p">[</span><span class="s2">&quot;mime_type&quot;</span><span class="p">]</span>
361374
<span class="k">if</span> <span class="s2">&quot;metaData&quot;</span> <span class="ow">in</span> <span class="n">server_data</span><span class="p">:</span>
362375
<span class="bp">self</span><span class="o">.</span><span class="n">_metadata</span> <span class="o">=</span> <span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;metaData&quot;</span><span class="p">)</span>
376+
377+
<span class="n">_created_at</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode_date_string</span><span class="p">(</span><span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;createdAt&quot;</span><span class="p">))</span>
378+
<span class="n">_updated_at</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode_updated_at</span><span class="p">(</span><span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;updatedAt&quot;</span><span class="p">),</span> <span class="n">_created_at</span><span class="p">)</span>
379+
<span class="k">if</span> <span class="n">_created_at</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
380+
<span class="bp">self</span><span class="o">.</span><span class="n">created_at</span> <span class="o">=</span> <span class="n">_created_at</span>
381+
<span class="k">if</span> <span class="n">_updated_at</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
382+
<span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span> <span class="o">=</span> <span class="n">_updated_at</span>
363383

364384
<span class="k">def</span> <span class="nf">_get_file_token</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
365385
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>

docs/_modules/leancloud/object_.html

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -401,25 +401,18 @@ <h1>leancloud.object_ 源代码</h1><div class="highlight"><pre>
401401
<span class="p">}</span>
402402

403403
<span class="k">def</span> <span class="nf">_merge_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">server_data</span><span class="p">):</span>
404-
<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;objectId&quot;</span><span class="p">,</span> <span class="s2">&quot;createdAt&quot;</span><span class="p">,</span> <span class="s2">&quot;updatedAt&quot;</span><span class="p">):</span>
405-
<span class="k">if</span> <span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
406-
<span class="k">continue</span>
407-
<span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">&quot;objectId&quot;</span><span class="p">:</span>
408-
<span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="n">server_data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
409-
<span class="k">else</span><span class="p">:</span>
410-
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">server_data</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="n">six</span><span class="o">.</span><span class="n">string_types</span><span class="p">):</span>
411-
<span class="n">dt</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;__type&quot;</span><span class="p">:</span> <span class="s2">&quot;Date&quot;</span><span class="p">,</span> <span class="s2">&quot;iso&quot;</span><span class="p">:</span> <span class="n">server_data</span><span class="p">[</span><span class="n">key</span><span class="p">]})</span>
412-
<span class="k">elif</span> <span class="n">server_data</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="s2">&quot;__type&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;Date&quot;</span><span class="p">:</span>
413-
<span class="n">dt</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">server_data</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
414-
<span class="k">else</span><span class="p">:</span>
415-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Invalid date type&quot;</span><span class="p">)</span>
416-
<span class="n">server_data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">dt</span>
417-
<span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">&quot;createdAt&quot;</span><span class="p">:</span>
418-
<span class="bp">self</span><span class="o">.</span><span class="n">created_at</span> <span class="o">=</span> <span class="n">dt</span>
419-
<span class="k">elif</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">&quot;updatedAt&quot;</span><span class="p">:</span>
420-
<span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span> <span class="o">=</span> <span class="n">dt</span>
421-
<span class="k">else</span><span class="p">:</span>
422-
<span class="k">raise</span> <span class="ne">TypeError</span>
404+
<span class="n">object_id</span> <span class="o">=</span> <span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;objectId&quot;</span><span class="p">)</span>
405+
<span class="n">_created_at</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode_date_string</span><span class="p">(</span><span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;createdAt&quot;</span><span class="p">))</span>
406+
<span class="n">_updated_at</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">decode_updated_at</span><span class="p">(</span><span class="n">server_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;updatedAt&quot;</span><span class="p">),</span> <span class="n">_created_at</span><span class="p">)</span>
407+
408+
<span class="k">if</span> <span class="n">object_id</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
409+
<span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="n">object_id</span>
410+
<span class="k">if</span> <span class="n">_created_at</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
411+
<span class="bp">self</span><span class="o">.</span><span class="n">created_at</span> <span class="o">=</span> <span class="n">_created_at</span>
412+
<span class="k">if</span> <span class="n">_updated_at</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
413+
<span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span> <span class="o">=</span> <span class="n">_updated_at</span>
414+
415+
423416

424417
<div class="viewcode-block" id="Object.validate"><a class="viewcode-back" href="../../index.html#leancloud.Object.validate">[文档]</a> <span class="k">def</span> <span class="nf">validate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
425418
<span class="k">if</span> <span class="s2">&quot;ACL&quot;</span> <span class="ow">in</span> <span class="n">attrs</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">attrs</span><span class="p">[</span><span class="s2">&quot;ACL&quot;</span><span class="p">],</span> <span class="n">leancloud</span><span class="o">.</span><span class="n">ACL</span><span class="p">):</span>
@@ -437,6 +430,23 @@ <h1>leancloud.object_ 源代码</h1><div class="highlight"><pre>
437430
<span class="c1"># for backward compatibility</span>
438431
<span class="k">if</span> <span class="p">(</span><span class="n">deafult</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">default</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">):</span>
439432
<span class="n">default</span> <span class="o">=</span> <span class="n">deafult</span>
433+
434+
<span class="c1"># createdAt is stored as string in the cloud but used as datetime object on the client side.</span>
435+
<span class="c1"># We need to make sure that `.created_at` and `.get(&quot;createdAt&quot;)` return the same value.</span>
436+
<span class="c1"># Otherwise users will get confused.</span>
437+
<span class="k">if</span> <span class="n">attr</span> <span class="o">==</span> <span class="s2">&quot;createdAt&quot;</span><span class="p">:</span>
438+
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">created_at</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
439+
<span class="k">return</span> <span class="kc">None</span>
440+
<span class="k">else</span><span class="p">:</span>
441+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">created_at</span>
442+
443+
<span class="c1"># Similar to createdAt.</span>
444+
<span class="k">if</span> <span class="n">attr</span> <span class="o">==</span> <span class="s2">&quot;updatedAt&quot;</span><span class="p">:</span>
445+
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
446+
<span class="k">return</span> <span class="kc">None</span>
447+
<span class="k">else</span><span class="p">:</span>
448+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">updated_at</span>
449+
440450
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="n">default</span><span class="p">)</span></div>
441451

442452
<div class="viewcode-block" id="Object.relation"><a class="viewcode-back" href="../../index.html#leancloud.Object.relation">[文档]</a> <span class="k">def</span> <span class="nf">relation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
setup(
2222
name='leancloud',
23-
version='2.9.8',
23+
version='2.9.9',
2424
description='LeanCloud Python SDK',
2525
url='https://leancloud.cn/',
2626
author='asaka',

0 commit comments

Comments
 (0)