Skip to content

Commit 3721a71

Browse files
committed
Class, Plotly
1 parent d7e9592 commit 3721a71

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,7 @@ raise Exception(<obj>)
999999
print/str/repr([<obj>])
10001000
print/str/repr({<obj>: <obj>})
10011001
f'{<obj>!r}'
1002-
Z = dataclasses.make_dataclass('Z', ['a']); print/str/repr(Z(<obj>))
1002+
Z = make_dataclass('Z', ['a']); print/str/repr(Z(<obj>))
10031003
>>> <obj>
10041004
```
10051005

@@ -1034,9 +1034,9 @@ class C(A, B): pass
10341034
```python
10351035
from collections import abc
10361036

1037-
<name>: <type> [| ...] [= <obj>] # `|` since 3.10.
1038-
<name>: list/set/abc.Iterable/abc.Sequence[<type>] [= <obj>] # Since 3.9.
1039-
<name>: dict/tuple[<type>, ...] [= <obj>] # Since 3.9.
1037+
<name>: <type> [| ...] [= <obj>]
1038+
<name>: list/set/abc.Iterable/abc.Sequence[<type>] [= <obj>]
1039+
<name>: dict/tuple[<type>, ...] [= <obj>]
10401040
```
10411041

10421042
### Dataclass
@@ -1056,9 +1056,9 @@ class <class_name>:
10561056
* **For attributes of arbitrary type use `'typing.Any'`.**
10571057

10581058
```python
1059-
Point = make_dataclass('Point', ['x', 'y'])
1060-
Point = make_dataclass('Point', [('x', float), ('y', float)])
1061-
Point = make_dataclass('Point', [('x', float, 0), ('y', float, 0)])
1059+
P = make_dataclass('P', ['x', 'y'])
1060+
P = make_dataclass('P', [('x', float), ('y', float)])
1061+
P = make_dataclass('P', [('x', float, 0), ('y', float, 0)])
10621062
```
10631063

10641064
### Property
@@ -3440,7 +3440,7 @@ import plotly.express as px, pandas as pd
34403440
```python
34413441
covid = pd.read_csv('https://raw.githubusercontent.com/owid/covid-19-data/8dde8ca49b'
34423442
'6e648c17dd420b2726ca0779402651/public/data/owid-covid-data.csv',
3443-
usecols=['iso_code', 'date', 'total_deaths', 'population'])
3443+
usecols=['iso_code', 'date', 'population', 'total_deaths'])
34443444
continents = pd.read_csv('https://gto76.github.io/python-cheatsheet/web/continents.csv',
34453445
usecols=['Three_Letter_Country_Code', 'Continent_Name'])
34463446
df = pd.merge(covid, continents, left_on='iso_code', right_on='Three_Letter_Country_Code')
@@ -3483,7 +3483,8 @@ def get_ticker(driver, name, symbol):
34833483
driver.get(url + '?period1=1579651200&period2=9999999999')
34843484
if buttons := driver.find_elements('xpath', '//button[@name="reject"]'):
34853485
buttons[0].click()
3486-
dataframes = pd.read_html(io.StringIO(driver.page_source), parse_dates=['Date'])
3486+
html = io.StringIO(driver.page_source)
3487+
dataframes = pd.read_html(html, parse_dates=['Date'])
34873488
s = dataframes[0].set_index('Date').Open
34883489
return s.rename(name)
34893490

index.html

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
<body>
5858
<header>
59-
<aside>March 8, 2025</aside>
59+
<aside>March 9, 2025</aside>
6060
<a href="https://gto76.github.io" rel="author">Jure Šorn</a>
6161
</header>
6262

@@ -847,7 +847,7 @@
847847
<div><h4 id="expressionsthatcallthereprmethod">Expressions that call the repr() method:</h4><pre><code class="python language-python hljs">print/str/repr([&lt;obj&gt;])
848848
print/str/repr({&lt;obj&gt;: &lt;obj&gt;})
849849
<span class="hljs-string">f'<span class="hljs-subst">{&lt;obj&gt;!r}</span>'</span>
850-
Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span class="hljs-string">'a'</span>]); print/str/repr(Z(&lt;obj&gt;))
850+
Z = make_dataclass(<span class="hljs-string">'Z'</span>, [<span class="hljs-string">'a'</span>]); print/str/repr(Z(&lt;obj&gt;))
851851
<span class="hljs-meta">&gt;&gt;&gt; </span>&lt;obj&gt;
852852
</code></pre></div>
853853

@@ -875,9 +875,9 @@
875875
<li><strong>Hints are used by type checkers like <a href="https://pypi.org/project/mypy/">mypy</a>, data validation libraries such as <a href="https://pypi.org/project/pydantic/">Pydantic</a> and lately also by <a href="https://pypi.org/project/Cython/">Cython</a> compiler. However, they are not enforced by CPython interpreter.</strong></li>
876876
</ul><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> abc
877877

878-
&lt;name&gt;: &lt;type&gt; [| ...] [= &lt;obj&gt;] <span class="hljs-comment"># `|` since 3.10.</span>
879-
&lt;name&gt;: list/set/abc.Iterable/abc.Sequence[&lt;type&gt;] [= &lt;obj&gt;] <span class="hljs-comment"># Since 3.9.</span>
880-
&lt;name&gt;: dict/tuple[&lt;type&gt;, ...] [= &lt;obj&gt;] <span class="hljs-comment"># Since 3.9.</span>
878+
&lt;name&gt;: &lt;type&gt; [| ...] [= &lt;obj&gt;]
879+
&lt;name&gt;: list/set/abc.Iterable/abc.Sequence[&lt;type&gt;] [= &lt;obj&gt;]
880+
&lt;name&gt;: dict/tuple[&lt;type&gt;, ...] [= &lt;obj&gt;]
881881
</code></pre></div>
882882

883883

@@ -897,9 +897,9 @@
897897
<li><strong>Function field() is needed because <code class="python hljs"><span class="hljs-string">'&lt;attr_name&gt;: list = []'</span></code> would make a list that is shared among all instances. Its 'default_factory' argument can be any <a href="#callable">callable</a>.</strong></li>
898898
<li><strong>For attributes of arbitrary type use <code class="python hljs"><span class="hljs-string">'typing.Any'</span></code>.</strong></li>
899899
</ul>
900-
<pre><code class="python language-python hljs">Point = make_dataclass(<span class="hljs-string">'Point'</span>, [<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>])
901-
Point = make_dataclass(<span class="hljs-string">'Point'</span>, [(<span class="hljs-string">'x'</span>, float), (<span class="hljs-string">'y'</span>, float)])
902-
Point = make_dataclass(<span class="hljs-string">'Point'</span>, [(<span class="hljs-string">'x'</span>, float, <span class="hljs-number">0</span>), (<span class="hljs-string">'y'</span>, float, <span class="hljs-number">0</span>)])
900+
<pre><code class="python language-python hljs">P = make_dataclass(<span class="hljs-string">'P'</span>, [<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>])
901+
P = make_dataclass(<span class="hljs-string">'P'</span>, [(<span class="hljs-string">'x'</span>, float), (<span class="hljs-string">'y'</span>, float)])
902+
P = make_dataclass(<span class="hljs-string">'P'</span>, [(<span class="hljs-string">'x'</span>, float, <span class="hljs-number">0</span>), (<span class="hljs-string">'y'</span>, float, <span class="hljs-number">0</span>)])
903903
</code></pre>
904904
<div><h3 id="property">Property</h3><p><strong>Pythonic way of implementing getters and setters.</strong></p><pre><code class="python language-python hljs"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span>:</span>
905905
<span class="hljs-meta"> @property</span>
@@ -2803,7 +2803,7 @@ <h3 id="format-2">Format</h3><div><h4 id="forstandardtypesizesandmanualalignment
28032803
</code></pre>
28042804
<div><h4 id="displaysalinechartoftotalcoronavirusdeathspermilliongroupedbycontinent">Displays a line chart of total coronavirus deaths per million grouped by continent:</h4><p></p><div id="2a950764-39fc-416d-97fe-0a6226a3095f" class="plotly-graph-div" style="height:312px; width:914px;"></div><pre><code class="python language-python hljs">covid = pd.read_csv(<span class="hljs-string">'https://raw.githubusercontent.com/owid/covid-19-data/8dde8ca49b'</span>
28052805
<span class="hljs-string">'6e648c17dd420b2726ca0779402651/public/data/owid-covid-data.csv'</span>,
2806-
usecols=[<span class="hljs-string">'iso_code'</span>, <span class="hljs-string">'date'</span>, <span class="hljs-string">'total_deaths'</span>, <span class="hljs-string">'population'</span>])
2806+
usecols=[<span class="hljs-string">'iso_code'</span>, <span class="hljs-string">'date'</span>, <span class="hljs-string">'population'</span>, <span class="hljs-string">'total_deaths'</span>])
28072807
continents = pd.read_csv(<span class="hljs-string">'https://gto76.github.io/python-cheatsheet/web/continents.csv'</span>,
28082808
usecols=[<span class="hljs-string">'Three_Letter_Country_Code'</span>, <span class="hljs-string">'Continent_Name'</span>])
28092809
df = pd.merge(covid, continents, left_on=<span class="hljs-string">'iso_code'</span>, right_on=<span class="hljs-string">'Three_Letter_Country_Code'</span>)
@@ -2842,7 +2842,8 @@ <h3 id="format-2">Format</h3><div><h4 id="forstandardtypesizesandmanualalignment
28422842
driver.get(url + <span class="hljs-string">'?period1=1579651200&amp;period2=9999999999'</span>)
28432843
<span class="hljs-keyword">if</span> buttons := driver.find_elements(<span class="hljs-string">'xpath'</span>, <span class="hljs-string">'//button[@name="reject"]'</span>):
28442844
buttons[<span class="hljs-number">0</span>].click()
2845-
dataframes = pd.read_html(io.StringIO(driver.page_source), parse_dates=[<span class="hljs-string">'Date'</span>])
2845+
html = io.StringIO(driver.page_source)
2846+
dataframes = pd.read_html(html, parse_dates=[<span class="hljs-string">'Date'</span>])
28462847
s = dataframes[<span class="hljs-number">0</span>].set_index(<span class="hljs-string">'Date'</span>).Open
28472848
<span class="hljs-keyword">return</span> s.rename(name)
28482849

@@ -2943,7 +2944,7 @@ <h3 id="format-2">Format</h3><div><h4 id="forstandardtypesizesandmanualalignment
29432944

29442945

29452946
<footer>
2946-
<aside>March 8, 2025</aside>
2947+
<aside>March 9, 2025</aside>
29472948
<a href="https://gto76.github.io" rel="author">Jure Šorn</a>
29482949
</footer>
29492950

parse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ const REPR_USE_CASES =
7676
'print/str/repr([&lt;obj&gt;])\n' +
7777
'print/str/repr({&lt;obj&gt;: &lt;obj&gt;})\n' +
7878
'<span class="hljs-string">f\'<span class="hljs-subst">{&lt;obj&gt;!r}</span>\'</span>\n' +
79-
'Z = dataclasses.make_dataclass(<span class="hljs-string">\'Z\'</span>, [<span class="hljs-string">\'a\'</span>]); print/str/repr(Z(&lt;obj&gt;))\n' +
79+
'Z = make_dataclass(<span class="hljs-string">\'Z\'</span>, [<span class="hljs-string">\'a\'</span>]); print/str/repr(Z(&lt;obj&gt;))\n' +
8080
'<span class="hljs-meta">&gt;&gt;&gt; </span>&lt;obj&gt;\n';
8181

8282
const CONSTRUCTOR_OVERLOADING =

0 commit comments

Comments
 (0)