Browse Source

Class, Plotly

pull/196/head
Jure Šorn 1 month ago
parent
commit
3721a7151b
3 changed files with 23 additions and 21 deletions
  1. 19
      README.md
  2. 23
      index.html
  3. 2
      parse.js

19
README.md

@ -999,7 +999,7 @@ raise Exception(<obj>)
print/str/repr([<obj>])
print/str/repr({<obj>: <obj>})
f'{<obj>!r}'
Z = dataclasses.make_dataclass('Z', ['a']); print/str/repr(Z(<obj>))
Z = make_dataclass('Z', ['a']); print/str/repr(Z(<obj>))
>>> <obj>
```
@ -1034,9 +1034,9 @@ class C(A, B): pass
```python
from collections import abc
<name>: <type> [| ...] [= <obj>] # `|` since 3.10.
<name>: list/set/abc.Iterable/abc.Sequence[<type>] [= <obj>] # Since 3.9.
<name>: dict/tuple[<type>, ...] [= <obj>] # Since 3.9.
<name>: <type> [| ...] [= <obj>]
<name>: list/set/abc.Iterable/abc.Sequence[<type>] [= <obj>]
<name>: dict/tuple[<type>, ...] [= <obj>]
```
### Dataclass
@ -1056,9 +1056,9 @@ class <class_name>:
* **For attributes of arbitrary type use `'typing.Any'`.**
```python
Point = make_dataclass('Point', ['x', 'y'])
Point = make_dataclass('Point', [('x', float), ('y', float)])
Point = make_dataclass('Point', [('x', float, 0), ('y', float, 0)])
P = make_dataclass('P', ['x', 'y'])
P = make_dataclass('P', [('x', float), ('y', float)])
P = make_dataclass('P', [('x', float, 0), ('y', float, 0)])
```
### Property
@ -3440,7 +3440,7 @@ import plotly.express as px, pandas as pd
```python
covid = pd.read_csv('https://raw.githubusercontent.com/owid/covid-19-data/8dde8ca49b'
'6e648c17dd420b2726ca0779402651/public/data/owid-covid-data.csv',
usecols=['iso_code', 'date', 'total_deaths', 'population'])
usecols=['iso_code', 'date', 'population', 'total_deaths'])
continents = pd.read_csv('https://gto76.github.io/python-cheatsheet/web/continents.csv',
usecols=['Three_Letter_Country_Code', 'Continent_Name'])
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):
driver.get(url + '?period1=1579651200&period2=9999999999')
if buttons := driver.find_elements('xpath', '//button[@name="reject"]'):
buttons[0].click()
dataframes = pd.read_html(io.StringIO(driver.page_source), parse_dates=['Date'])
html = io.StringIO(driver.page_source)
dataframes = pd.read_html(html, parse_dates=['Date'])
s = dataframes[0].set_index('Date').Open
return s.rename(name)

23
index.html

@ -56,7 +56,7 @@
<body>
<header>
<aside>March 8, 2025</aside>
<aside>March 9, 2025</aside>
<a href="https://gto76.github.io" rel="author">Jure Šorn</a>
</header>
@ -847,7 +847,7 @@ csv.writer(&lt;file&gt;).writerow([&lt;obj&gt;])
<div><h4 id="expressionsthatcallthereprmethod">Expressions that call the repr() method:</h4><pre><code class="python language-python hljs">print/str/repr([&lt;obj&gt;])
print/str/repr({&lt;obj&gt;: &lt;obj&gt;})
<span class="hljs-string">f'<span class="hljs-subst">{&lt;obj&gt;!r}</span>'</span>
Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span class="hljs-string">'a'</span>]); print/str/repr(Z(&lt;obj&gt;))
Z = make_dataclass(<span class="hljs-string">'Z'</span>, [<span class="hljs-string">'a'</span>]); print/str/repr(Z(&lt;obj&gt;))
<span class="hljs-meta">&gt;&gt;&gt; </span>&lt;obj&gt;
</code></pre></div>
@ -875,9 +875,9 @@ Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span clas
<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>
</ul><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> abc
&lt;name&gt;: &lt;type&gt; [| ...] [= &lt;obj&gt;] <span class="hljs-comment"># `|` since 3.10.</span>
&lt;name&gt;: list/set/abc.Iterable/abc.Sequence[&lt;type&gt;] [= &lt;obj&gt;] <span class="hljs-comment"># Since 3.9.</span>
&lt;name&gt;: dict/tuple[&lt;type&gt;, ...] [= &lt;obj&gt;] <span class="hljs-comment"># Since 3.9.</span>
&lt;name&gt;: &lt;type&gt; [| ...] [= &lt;obj&gt;]
&lt;name&gt;: list/set/abc.Iterable/abc.Sequence[&lt;type&gt;] [= &lt;obj&gt;]
&lt;name&gt;: dict/tuple[&lt;type&gt;, ...] [= &lt;obj&gt;]
</code></pre></div>
@ -897,9 +897,9 @@ Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span clas
<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>
<li><strong>For attributes of arbitrary type use <code class="python hljs"><span class="hljs-string">'typing.Any'</span></code>.</strong></li>
</ul>
<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>])
Point = make_dataclass(<span class="hljs-string">'Point'</span>, [(<span class="hljs-string">'x'</span>, float), (<span class="hljs-string">'y'</span>, float)])
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>)])
<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>])
P = make_dataclass(<span class="hljs-string">'P'</span>, [(<span class="hljs-string">'x'</span>, float), (<span class="hljs-string">'y'</span>, float)])
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>)])
</code></pre>
<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>
<span class="hljs-meta"> @property</span>
@ -2803,7 +2803,7 @@ z
</code></pre>
<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>
<span class="hljs-string">'6e648c17dd420b2726ca0779402651/public/data/owid-covid-data.csv'</span>,
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>])
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>])
continents = pd.read_csv(<span class="hljs-string">'https://gto76.github.io/python-cheatsheet/web/continents.csv'</span>,
usecols=[<span class="hljs-string">'Three_Letter_Country_Code'</span>, <span class="hljs-string">'Continent_Name'</span>])
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 @@ px.line(df, x=<span class="hljs-string">'Date'</span>, y=<span class="hljs-strin
driver.get(url + <span class="hljs-string">'?period1=1579651200&amp;period2=9999999999'</span>)
<span class="hljs-keyword">if</span> buttons := driver.find_elements(<span class="hljs-string">'xpath'</span>, <span class="hljs-string">'//button[@name="reject"]'</span>):
buttons[<span class="hljs-number">0</span>].click()
dataframes = pd.read_html(io.StringIO(driver.page_source), parse_dates=[<span class="hljs-string">'Date'</span>])
html = io.StringIO(driver.page_source)
dataframes = pd.read_html(html, parse_dates=[<span class="hljs-string">'Date'</span>])
s = dataframes[<span class="hljs-number">0</span>].set_index(<span class="hljs-string">'Date'</span>).Open
<span class="hljs-keyword">return</span> s.rename(name)
@ -2943,7 +2944,7 @@ $ deactivate <span class="hljs-comment"># Deactivates the active
<footer>
<aside>March 8, 2025</aside>
<aside>March 9, 2025</aside>
<a href="https://gto76.github.io" rel="author">Jure Šorn</a>
</footer>

2
parse.js

@ -76,7 +76,7 @@ const REPR_USE_CASES =
'print/str/repr([&lt;obj&gt;])\n' +
'print/str/repr({&lt;obj&gt;: &lt;obj&gt;})\n' +
'<span class="hljs-string">f\'<span class="hljs-subst">{&lt;obj&gt;!r}</span>\'</span>\n' +
'Z = dataclasses.make_dataclass(<span class="hljs-string">\'Z\'</span>, [<span class="hljs-string">\'a\'</span>]); print/str/repr(Z(&lt;obj&gt;))\n' +
'Z = make_dataclass(<span class="hljs-string">\'Z\'</span>, [<span class="hljs-string">\'a\'</span>]); print/str/repr(Z(&lt;obj&gt;))\n' +
'<span class="hljs-meta">&gt;&gt;&gt; </span>&lt;obj&gt;\n';
const CONSTRUCTOR_OVERLOADING =

Loading…
Cancel
Save