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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy