From 263873f244f5b9d370a5d028f5cb0bead6b1ac4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Mon, 16 Nov 2020 22:40:35 +0100
Subject: [PATCH 001/812] Pandas
---
README.md | 6 +++---
index.html | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 3fb771399..701d0dadb 100644
--- a/README.md
+++ b/README.md
@@ -3103,7 +3103,7 @@ Name: a, dtype: int64
```python
= ><== # Returns a Series of bools.
- = +-*/ # Non-matching keys get value NaN.
+ = +-*/ # Items with non-matching keys get value NaN.
```
```python
@@ -3176,7 +3176,7 @@ b 3 4
```python
= ><== # Returns DataFrame of bools.
- = +-*/ # Non-matching keys get value NaN.
+ = +-*/ # Items with non-matching keys get value NaN.
```
```python
@@ -3298,7 +3298,7 @@ c 7 8
```python
= .groupby(column_key/s) # DF is split into groups based on passed column.
- = .get_group(group_key) # Selects a group by value of grouping column.
+ = .get_group(group_key/s) # Selects a group by value of grouping column.
```
#### Aggregate, Transform, Map:
diff --git a/index.html b/index.html
index 32d2e81de..c7ed4f229 100644
--- a/index.html
+++ b/index.html
@@ -2650,7 +2650,7 @@
<Sr> = <Sr>[bools]
<Sr> = <Sr> ><== <el/Sr>
-<Sr> = <Sr> +-*/ <el/Sr>
+<Sr> = <Sr> +-*/ <el/Sr>
<Sr> = <Sr>.append(<Sr>)
<Sr> = <Sr>.combine_first(<Sr>)
@@ -2706,7 +2706,7 @@
<DF> = <DF>[<DF_of_bools>]
<DF> = <DF> ><== <el/Sr/DF>
-<DF> = <DF> +-*/ <el/Sr/DF>
+<DF> = <DF> +-*/ <el/Sr/DF>
<DF> = <DF>.set_index(column_key)
<DF> = <DF>.reset_index()
@@ -2809,7 +2809,7 @@
<GB> = <DF>.groupby(column_key/s)
-<DF> = <GB>.get_group(group_key)
+<DF> = <GB>.get_group(group_key/s)
<DF> = <GB>.sum/max/mean/idxmax/all()
<DF> = <GB>.rank/diff/cumsum/ffill()
From aa13ea52283c7433d498c751229ecfd6da1fe86d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Wed, 18 Nov 2020 01:04:07 +0100
Subject: [PATCH 002/812] Fixing index
---
pdf/HOW_TO_CREATE_PDF.md | 4 ++--
pdf/index_for_pdf.html | 20 ++++++++++----------
pdf/index_for_pdf_print.html | 2 +-
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/pdf/HOW_TO_CREATE_PDF.md b/pdf/HOW_TO_CREATE_PDF.md
index dc93c39d1..5d32f83a3 100644
--- a/pdf/HOW_TO_CREATE_PDF.md
+++ b/pdf/HOW_TO_CREATE_PDF.md
@@ -13,14 +13,14 @@ Printing to PDF
---------------
### Normal PDF
* Open `index.html` in text editor and first remove element `
` before the `Libraries
`.
-* Then replace the footer and last three `
` elements with contents of `pdf/index_for_pdf.html` file and save.
+* Then replace the index and footer with contents of `pdf/index_for_pdf.html` file and save.
* Open `index.html` in Chrome and select 'Print...'.
* Select destination 'Save as PDF', paper size 'A4', margins and scale 'Default' and no headers and footers and save.
### PDF optimized for laser color printing
* Run `./parse.js` again.
* Open `index.html` in text editor and first remove element `
` before the `Libraries
`.
-* Then replace the footer and last three `
` elements with contents of `pdf/index_for_pdf_print.html` file.
+* Then replace the index and footer with contents of `pdf/index_for_pdf_print.html` file.
* Change all links in text to normal text and optionally add a page number in brackets like that: '(p. )'. Links can be found with this regex: `.*a href.*`.
* Save and open `index.html` in Chrome.
* Change brightness of elements by right clicking on them and selecting inspect. Then click on the rectangle that represents color and toggle the color space to HSLA by clicking on the button with two vertical arrows.
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 9a6acc8bd..41df90ddc 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -23,7 +23,7 @@ C
callable, 17
class, 4, 14-19, 31-32
closure, 12
-collection, 4, 18
+collection, 4, 18
collections module, 2, 3, 4, 19, 29
combinatorics, 8
command line arguments, 22
@@ -34,7 +34,7 @@ C
coroutine, 33
counter, 2, 4, 12, 17
csv module, 26, 34, 46
-curses module, 34
+curses module, 33, 34
cython, 49
D
dataclasses module, 12, 15
@@ -47,14 +47,14 @@
E
enum module, 19-20
enumerate function, 3
eval function, 33
-exceptions, 20-21, 23
+exceptions, 20-21, 23
F
-files, 23
+
files, 23
filter function, 11
floats, 4, 6, 7
-format, 6-7
-functools module, 11, 12, 13, 16
-futures, 30
+format, 6-7
+functools module, 11, 12, 13, 16
+futures, 30
G
generators, 4, 11
global keyword, 12
@@ -92,14 +92,14 @@ N
nonlocal keyword, 12
numpy library, 37-38
O
-open function, 22-23
+
open function, 22-23
operator module, 31
os commands, 24-25
os module, 23, 24-25
P
pandas library, 44
-partial function, 12, 20
-path, 23-24
+partial function, 12, 20
+path, 23-24
pickle module, 25
pillow library, 39
plotting, 34, 47
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index c7a974962..27063db15 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -34,7 +34,7 @@
C
coroutine, 33
counter, 2, 4, 12, 17
csv module, 26, 34, 46
-curses module, 34
+curses module, 33, 34
cython, 49
D
dataclasses module, 12, 15
From e2b3bb2b9e05013a5f0ba1d5429ef26426a9c084 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Sat, 21 Nov 2020 00:27:15 +0100
Subject: [PATCH 003/812] Exceptions, progress bar and index
---
README.md | 8 +++++---
index.html | 7 ++++---
parse.js | 7 ++++---
pdf/index_for_pdf.html | 23 +++++++++++------------
pdf/index_for_pdf_print.html | 17 ++++++++---------
5 files changed, 32 insertions(+), 30 deletions(-)
diff --git a/README.md b/README.md
index 701d0dadb..5504567d3 100644
--- a/README.md
+++ b/README.md
@@ -1414,7 +1414,8 @@ BaseException
| +-- IndexError # Raised when a sequence index is out of range.
| +-- KeyError # Raised when a dictionary key or set element is not found.
+-- NameError # Raised when a variable name is not found.
- +-- OSError # Failures such as “file not found” or “disk full”.
+ +-- OSError # Errors such as “file not found” or “disk full” (see Open).
+
| +-- FileNotFoundError # When a file or directory is requested but doesn't exist.
+-- RuntimeError # Raised by errors that don't fall into other categories.
| +-- RecursionError # Raised when the maximum recursion depth is exceeded.
@@ -2333,9 +2334,10 @@ Progress Bar
```python
# $ pip3 install tqdm
>>> from tqdm import tqdm
+>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
-... pass
-Processing: 100%|██████████████████| 3/3 [00:00<00:00, 11516.49it/s]
+... sleep(1)
+Processing: 100%|██████████████████| 3/3 [00:03<00:00, 1.00s/it]
```
diff --git a/index.html b/index.html
index c7ed4f229..c6f827672 100644
--- a/index.html
+++ b/index.html
@@ -1343,7 +1343,7 @@
│ ├── IndexError
│ └── KeyError
├── NameError
- ├── OSError
+ ├── OSError
│ └── FileNotFoundError
├── RuntimeError
│ └── RecursionError
@@ -2038,9 +2038,10 @@
Libraries
#Progress Bar
>>> from tqdm import tqdm
+>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
-... pass
-Processing: 100%|██████████████████| 3/3 [00:00<00:00, 11516.49it/s]
+... sleep(1)
+Processing: 100%|███████████████████| 3/3 [00:03<00:00, 1.00s/it]
diff --git a/parse.js b/parse.js
index 027356fb7..b212172a6 100755
--- a/parse.js
+++ b/parse.js
@@ -66,9 +66,10 @@ const EVAL =
const PROGRESS_BAR =
'\n' +
'>>> from tqdm import tqdm\n' +
+ '>>> from time import sleep\n' +
'>>> for el in tqdm([1, 2, 3], desc=\'Processing\'):\n' +
- '... pass\n' +
- 'Processing: 100%|██████████████████| 3/3 [00:00<00:00, 11516.49it/s]\n';
+ '... sleep(1)\n' +
+ 'Processing: 100%|███████████████████| 3/3 [00:03<00:00, 1.00s/it]\n';
const PYINSTALLER =
'$ pip3 install pyinstaller\n' +
@@ -200,7 +201,7 @@ const DIAGRAM_7_B =
" │ ├── IndexError \n" +
" │ └── KeyError \n" +
" ├── NameError \n" +
- " ├── OSError \n" +
+ " ├── OSError \n" +
" │ └── FileNotFoundError \n" +
" ├── RuntimeError \n" +
" │ └── RecursionError \n" +
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 41df90ddc..0956c5056 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -5,16 +5,15 @@ #Index
A
abstract base classes, 4, 19
-all function, 11
-animation, 40
-any function, 11
+animation, 40, 42-43
argparse module, 22
-arguments, 10
-arrays, 29
-audio, 40-41
+
arguments, 10, 12
+
arrays, 29, 37-38
+
asyncio module, 33
+
audio, 40-41, 42
B
beautifulsoup library, 35
-binary representation, 8
+binary representation, 7, 8
bitwise operators, 8
bottle library, 36
bytes, 28
@@ -23,8 +22,8 @@
C
callable, 17
class, 4, 14-19, 31-32
closure, 12
-
collection, 4, 18
-
collections module, 2, 3, 4, 19, 29
+
collection, 4, 18, 19
+
collections module, 2, 3, 4, 19, 29
combinatorics, 8
command line arguments, 22
comparable, 16
@@ -107,7 +106,7 @@
P
profiling, 36-37
progress bar, 34
property decorator, 15
-
pygame library, 42
+
pygame library, 42-43
Q
queues, 30
R
@@ -129,8 +128,8 @@
S
sqlite module, 27
statistics module, 7
strings, 5
-
struct module, 28-29
-
subprocess module, 25
+
struct module, 28-29
+
subprocess module, 25
super function, 14
synthesizer, 41
sys module, 15, 21, 22
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 27063db15..8808ba7ad 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -5,16 +5,15 @@
#Index
A
abstract base classes, 4, 19
-all function, 11
-animation, 40
-any function, 11
+animation, 40, 42-43
argparse module, 22
-arguments, 10
-arrays, 29
-audio, 40-41
+
arguments, 10, 12
+
arrays, 29, 37-38
+
asyncio module, 33
+
audio, 40-41, 42
B
beautifulsoup library, 35
-binary representation, 8
+binary representation, 7, 8
bitwise operators, 8
bottle library, 36
bytes, 28
@@ -23,7 +22,7 @@
C
callable, 17
class, 4, 14-19, 31-32
closure, 12
-
collection, 4, 18
+
collection, 4, 18, 19
collections module, 2, 3, 4, 19, 29
combinatorics, 8
command line arguments, 22
@@ -107,7 +106,7 @@
P
profiling, 36-37
progress bar, 34
property decorator, 15
-
pygame library, 42
+
pygame library, 42-43
Q
queues, 30
R
From 06bcd0321e59ba1a94fae2b8b2c0efd0f1a02262 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Sat, 21 Nov 2020 05:29:07 +0100
Subject: [PATCH 004/812] ABC, progress bar
---
README.md | 4 ++--
index.html | 4 ++--
parse.js | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 5504567d3..81209589d 100644
--- a/README.md
+++ b/README.md
@@ -261,7 +261,7 @@ from types import FunctionType, MethodType, LambdaType, GeneratorType
```
### Abstract Base Classes
-**Each abstract base class specifies a set of virtual subclasses. These classes are then recognized by isinstance() and issubclass() as subclasses of the ABC, although they are really not. ABC can also manually decide whether or not a specific class is its virtual subclass.**
+**Each abstract base class specifies a set of virtual subclasses. These classes are then recognized by isinstance() and issubclass() as subclasses of the ABC, although they are really not. ABC can also manually decide whether or not a specific class is its virtual subclass, usually based on which methods the class has implemented (Collection, Iterable).**
```python
>>> from collections.abc import Sequence, Collection, Iterable
@@ -2337,7 +2337,7 @@ Progress Bar
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
... sleep(1)
-Processing: 100%|██████████████████| 3/3 [00:03<00:00, 1.00s/it]
+Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]
```
diff --git a/index.html b/index.html
index c6f827672..6d09b8ce0 100644
--- a/index.html
+++ b/index.html
@@ -402,7 +402,7 @@
Some types do not have built-in names, so they must be imported:
from types import FunctionType, MethodType, LambdaType, GeneratorType
-Abstract Base Classes
Each abstract base class specifies a set of virtual subclasses. These classes are then recognized by isinstance() and issubclass() as subclasses of the ABC, although they are really not. ABC can also manually decide whether or not a specific class is its virtual subclass.
>>> from collections.abc import Sequence, Collection, Iterable
+Abstract Base Classes
Each abstract base class specifies a set of virtual subclasses. These classes are then recognized by isinstance() and issubclass() as subclasses of the ABC, although they are really not. ABC can also manually decide whether or not a specific class is its virtual subclass, usually based on which methods the class has implemented (Collection, Iterable).
>>> from collections.abc import Sequence, Collection, Iterable
>>> isinstance([1, 2, 3], Iterable)
True
@@ -2041,7 +2041,7 @@
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
... sleep(1)
-Processing: 100%|███████████████████| 3/3 [00:03<00:00, 1.00s/it]
+Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]
diff --git a/parse.js b/parse.js
index b212172a6..5a85cb4ae 100755
--- a/parse.js
+++ b/parse.js
@@ -69,7 +69,7 @@ const PROGRESS_BAR =
'
>>> from time
import sleep\n' +
'
>>> for el
in tqdm([
1,
2,
3], desc=
\'Processing\'):\n' +
'
... sleep(
1)\n' +
- 'Processing: 100%|███████████████████| 3/3 [00:03<00:00, 1.00s/it]\n';
+ 'Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]\n';
const PYINSTALLER =
'$ pip3 install pyinstaller\n' +
From c93c7002f34ac95c8c97c578b798856803c82cef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Sun, 22 Nov 2020 02:21:11 +0100
Subject: [PATCH 005/812] Progress bar, index
---
README.md | 2 +-
index.html | 2 +-
parse.js | 2 +-
pdf/index_for_pdf.html | 23 ++++++++++++-----------
pdf/index_for_pdf_print.html | 23 ++++++++++++-----------
5 files changed, 27 insertions(+), 25 deletions(-)
diff --git a/README.md b/README.md
index 81209589d..1b159de6d 100644
--- a/README.md
+++ b/README.md
@@ -2337,7 +2337,7 @@ Progress Bar
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
... sleep(1)
-Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]
+Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]
```
diff --git a/index.html b/index.html
index 6d09b8ce0..09451097b 100644
--- a/index.html
+++ b/index.html
@@ -2041,7 +2041,7 @@
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
... sleep(1)
-Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]
+Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]
diff --git a/parse.js b/parse.js
index 5a85cb4ae..2dc5b2028 100755
--- a/parse.js
+++ b/parse.js
@@ -69,7 +69,7 @@ const PROGRESS_BAR =
'>>> from time import sleep\n' +
'>>> for el in tqdm([1, 2, 3], desc=\'Processing\'):\n' +
'... sleep(1)\n' +
- 'Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]\n';
+ 'Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]\n';
const PYINSTALLER =
'$ pip3 install pyinstaller\n' +
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 0956c5056..5806048ed 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -7,7 +7,7 @@ A
abstract base classes, 4, 19
animation, 40, 42-43
argparse module, 22
-arguments, 10, 12
+arguments, 10, 12, 22
arrays, 29, 37-38
asyncio module, 33
audio, 40-41, 42
@@ -21,18 +21,18 @@ C
cache, 13
callable, 17
class, 4, 14-19, 31-32
-closure, 12
+closure, 12-13
collection, 4, 18, 19
collections module, 2, 3, 4, 19, 29
combinatorics, 8
command line arguments, 22
comparable, 16
comprehensions, 11
-context manager, 17
+context manager, 17, 23, 27, 30
copy function, 15
coroutine, 33
counter, 2, 4, 12, 17
-csv module, 26, 34, 46
+csv, 26, 34, 46
curses module, 33, 34
cython, 49
D
@@ -40,13 +40,13 @@ D
datetime module, 8-9
decorator, 13
deques, 29
-dictionaries, 2, 11
+dictionaries, 2, 4, 11, 19, 21
duck types, 16-19
E
enum module, 19-20
enumerate function, 3
eval function, 33
-exceptions, 20-21, 23
+exceptions, 20-21, 23, 35
F
files, 23
filter function, 11
@@ -56,16 +56,17 @@
F
futures, 30
G
generators, 4, 11
-global keyword, 12
+global keyword, 12
+gui, 48
H
-hashable, 16
-hexadecimal representation, 8
+hashable, 15, 16
+hexadecimal representation, 7, 8, 28
I
image, 39
-inline, 11-12
+inline, 11-12, 15, 20
input function, 22
introspection, 31
-ints, 4, 7, 8
+ints, 4, 7, 8, 28
is operator, 16
iterable, 4, 18
iterator, 3, 17
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 8808ba7ad..5d2a66d89 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -7,7 +7,7 @@
A
abstract base classes, 4, 19
animation, 40, 42-43
argparse module, 22
-arguments, 10, 12
+arguments, 10, 12, 22
arrays, 29, 37-38
asyncio module, 33
audio, 40-41, 42
@@ -21,18 +21,18 @@ C
cache, 13
callable, 17
class, 4, 14-19, 31-32
-closure, 12
+closure, 12-13
collection, 4, 18, 19
collections module, 2, 3, 4, 19, 29
combinatorics, 8
command line arguments, 22
comparable, 16
comprehensions, 11
-context manager, 17
+context manager, 17, 23, 27, 30
copy function, 15
coroutine, 33
counter, 2, 4, 12, 17
-csv module, 26, 34, 46
+csv, 26, 34, 46
curses module, 33, 34
cython, 49
D
@@ -40,13 +40,13 @@ D
datetime module, 8-9
decorator, 13
deques, 29
-dictionaries, 2, 11
+dictionaries, 2, 4, 11, 19, 21
duck types, 16-19
E
enum module, 19-20
enumerate function, 3
eval function, 33
-exceptions, 20-21, 23
+exceptions, 20-21, 23, 35
F
files, 23
filter function, 11
@@ -56,16 +56,17 @@
F
futures, 30
G
generators, 4, 11
-global keyword, 12
+global keyword, 12
+gui, 48
H
-hashable, 16
-hexadecimal representation, 8
+hashable, 15, 16
+hexadecimal representation, 7, 8, 28
I
image, 39
-inline, 11-12
+inline, 11-12, 15, 20
input function, 22
introspection, 31
-ints, 4, 7, 8
+ints, 4, 7, 8, 28
is operator, 16
iterable, 4, 18
iterator, 3, 17
From 4cfb34a96e0b49626f96cc652d2bb49fa686f9c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Sun, 22 Nov 2020 03:50:26 +0100
Subject: [PATCH 006/812] Index
---
pdf/index_for_pdf.html | 24 ++++++++++++------------
pdf/index_for_pdf_print.html | 24 ++++++++++++------------
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 5806048ed..404221c6a 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -68,7 +68,7 @@ I
introspection, 31
ints, 4, 7, 8, 28
is operator, 16
-iterable, 4, 18
+iterable, 4, 18, 19
iterator, 3, 17
itertools module, 3, 8
J
@@ -76,8 +76,8 @@ J
L
lambda, 11
list comprehension, 11
-lists, 1-2, 11
-locks, 29
+lists, 1-2, 4, 11, 19, 21
+locks, 29, 33
logging, 35
M
main function, 1, 41
@@ -97,7 +97,7 @@
O
os commands, 24-25
os module, 23, 24-25
P
-pandas library, 44
+
pandas library, 44-48
partial function, 12, 20
path, 23-24
pickle module, 25
@@ -109,37 +109,37 @@
P
property decorator, 15
pygame library, 42-43
Q
-queues, 30
+queues, 29, 30, 33
R
random module, 8
-ranges, 3
+ranges, 3, 4
recursion, 13
reduce function, 11, 31
regular expressions, 5-6
requests library, 35, 36
S
-scraping, 35, 43, 46, 47, 48
-sequence, 4, 18, 19
-sets, 2, 11
+
scraping, 35, 43, 46, 47-48
+sequence, 4, 18-19
+sets, 2, 4, 11, 19, 21
shell commands, 25
sleep function, 34
slots attribute, 15
sortable, 1, 16
splat operator, 10-11
sqlite module, 27
-statistics module, 7
+statistics, 7, 37-38, 44-48
strings, 5
struct module, 28-29
subprocess module, 25
super function, 14
synthesizer, 41
-sys module, 15, 21, 22
+sys module, 15, 21-22
T
table, 34
template function, 36
threading module, 30
time module, 34, 36
-tuples, 3, 11
+tuples, 3, 4, 11
type, 4, 31
W
wave module, 40-41
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 5d2a66d89..2fb7dcc96 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -68,7 +68,7 @@
I
introspection, 31
ints, 4, 7, 8, 28
is operator, 16
-iterable, 4, 18
+iterable, 4, 18, 19
iterator, 3, 17
itertools module, 3, 8
J
@@ -76,8 +76,8 @@ J
L
lambda, 11
list comprehension, 11
-lists, 1-2, 11
-locks, 29
+lists, 1-2, 4, 11, 19, 21
+locks, 29, 33
logging, 35
M
main function, 1, 41
@@ -97,7 +97,7 @@
O
os commands, 24-25
os module, 23, 24-25
P
-pandas library, 44
+
pandas library, 44-48
partial function, 12, 20
path, 23-24
pickle module, 25
@@ -109,37 +109,37 @@
P
property decorator, 15
pygame library, 42-43
Q
-queues, 30
+queues, 29, 30, 33
R
random module, 8
-ranges, 3
+ranges, 3, 4
recursion, 13
reduce function, 11, 31
regular expressions, 5-6
requests library, 35, 36
S
-scraping, 35, 43, 46, 47, 48
-sequence, 4, 18, 19
-sets, 2, 11
+
scraping, 35, 43, 46, 47-48
+sequence, 4, 18-19
+sets, 2, 4, 11, 19, 21
shell commands, 25
sleep function, 34
slots attribute, 15
sortable, 1, 16
splat operator, 10-11
sqlite module, 27, 46
-statistics module, 7
+statistics, 7, 37-38, 44-48
strings, 5
struct module, 28-29
subprocess module, 25
super function, 14
synthesizer, 41
-sys module, 15, 21, 22
+sys module, 15, 21-22
T
table, 34
template function, 36
threading module, 30
time module, 34, 36
-tuples, 3, 11
+tuples, 3, 4, 11
type, 4, 31
W
wave module, 40-41
From fa0d587b0198bc34952083e967070b08ac65cdb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Mon, 23 Nov 2020 07:43:43 +0100
Subject: [PATCH 007/812] Index
---
pdf/index_for_pdf.html | 18 +++++++++---------
pdf/index_for_pdf_print.html | 16 ++++++++--------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 404221c6a..7a947d5b7 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -32,13 +32,13 @@ C
copy function, 15
coroutine, 33
counter, 2, 4, 12, 17
-csv, 26, 34, 46
+csv, 26, 34, 46, 47
curses module, 33, 34
cython, 49
D
dataclasses module, 12, 15
datetime module, 8-9
-decorator, 13
+decorator, 13, 14, 15, 16
deques, 29
dictionaries, 2, 4, 11, 19, 21
duck types, 16-19
@@ -62,17 +62,17 @@ H
hashable, 15, 16
hexadecimal representation, 7, 8, 28
I
-image, 39
+
image, 35, 39-40, 42-43
inline, 11-12, 15, 20
input function, 22
introspection, 31
ints, 4, 7, 8, 28
is operator, 16
iterable, 4, 18, 19
-iterator, 3, 17
+iterator, 3-4, 11, 17
itertools module, 3, 8
J
-json module, 25, 46
+json, 25, 36, 46
L
lambda, 11
list comprehension, 11
@@ -126,9 +126,9 @@
S
slots attribute, 15
sortable, 1, 16
splat operator, 10-11
-sqlite module, 27
-statistics, 7, 37-38, 44-48
-strings, 5
+sql, 27, 46
+statistics, 7, 37-38, 44-48
+strings, 4-7, 14
struct module, 28-29
subprocess module, 25
super function, 14
@@ -140,7 +140,7 @@ T
threading module, 30
time module, 34, 36
tuples, 3, 4, 11
-type, 4, 31
+type, 4, 31-32
W
wave module, 40-41
web, 36
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 2fb7dcc96..21c4553d5 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -32,13 +32,13 @@ C
copy function, 15
coroutine, 33
counter, 2, 4, 12, 17
-csv, 26, 34, 46
+csv, 26, 34, 46, 47
curses module, 33, 34
cython, 49
D
dataclasses module, 12, 15
datetime module, 8-9
-decorator, 13
+decorator, 13, 14, 15, 16
deques, 29
dictionaries, 2, 4, 11, 19, 21
duck types, 16-19
@@ -62,17 +62,17 @@ H
hashable, 15, 16
hexadecimal representation, 7, 8, 28
I
-image, 39
+
image, 25, 39-40, 42-43
inline, 11-12, 15, 20
input function, 22
introspection, 31
ints, 4, 7, 8, 28
is operator, 16
iterable, 4, 18, 19
-iterator, 3, 17
+iterator, 3-4, 11, 17
itertools module, 3, 8
J
-json module, 25, 46
+json, 25, 36, 46
L
lambda, 11
list comprehension, 11
@@ -86,7 +86,7 @@
M
memoryviews, 29
metaclass attribute, 32
metaprograming, 31-32
-mysql library, 26
+mysql library, 27
N
namedtuples, 3
nonlocal keyword, 12
@@ -126,9 +126,9 @@
S
slots attribute, 15
sortable, 1, 16
splat operator, 10-11
-sqlite module, 27, 46
+sql, 27, 46
statistics, 7, 37-38, 44-48
-strings, 5
+strings, 4-7, 14
struct module, 28-29
subprocess module, 25
super function, 14
From 58b48d0c6225f551b4c6bf27fbc91aec375c0794 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Tue, 24 Nov 2020 00:01:52 +0100
Subject: [PATCH 008/812] Index and pandas
---
README.md | 2 +-
index.html | 2 +-
pdf/index_for_pdf.html | 13 ++++++-------
pdf/index_for_pdf_print.html | 15 +++++++--------
4 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index 1b159de6d..19899fe64 100644
--- a/README.md
+++ b/README.md
@@ -3273,7 +3273,7 @@ b 3 4
```python
= pd.read_json/html('')
= pd.read_csv/pickle/excel('')
- = pd.read_sql('', )
+ = pd.read_sql('', )
= pd.read_clipboard()
```
diff --git a/index.html b/index.html
index 09451097b..0a71ee190 100644
--- a/index.html
+++ b/index.html
@@ -2789,7 +2789,7 @@
Encode, Decode:
<DF> = pd.read_json/html('<str/path/url>')
<DF> = pd.read_csv/pickle/excel('<path/url>')
-<DF> = pd.read_sql('<query>', <connection>)
+<DF> = pd.read_sql('<table_name/query>', <connection>)
<DF> = pd.read_clipboard()
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 7a947d5b7..a0adbc0b1 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -48,7 +48,7 @@ E
eval function, 33
exceptions, 20-21, 23, 35
F
-files, 23
+
files, 22-26, 28, 46
filter function, 11
floats, 4, 6, 7
format, 6-7
@@ -86,16 +86,15 @@
M
memoryviews, 29
metaclass attribute, 32
metaprograming, 31-32
-mysql library, 26, 46
+mysql library, 27
N
namedtuples, 3
nonlocal keyword, 12
numpy library, 37-38
O
-open function, 22-23
+
open function, 17, 22-23, 25, 26, 28
operator module, 31
-os commands, 24-25
-os module, 23, 24-25
+os commands, 23-25
P
pandas library, 44-48
partial function, 12, 20
@@ -135,8 +134,8 @@
S
synthesizer, 41
sys module, 15, 21-22
T
-table, 34
-template function, 36
+
table, 27, 34, 45-46
+template, 6, 36
threading module, 30
time module, 34, 36
tuples, 3, 4, 11
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 21c4553d5..61fa07c2e 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -48,7 +48,7 @@
E
eval function, 33
exceptions, 20-21, 23, 35
F
-files, 23
+
files, 22-26, 28, 46
filter function, 11
floats, 4, 6, 7
format, 6-7
@@ -62,7 +62,7 @@
H
hashable, 15, 16
hexadecimal representation, 7, 8, 28
I
-image, 25, 39-40, 42-43
+
image, 35, 39-40, 42-43
inline, 11-12, 15, 20
input function, 22
introspection, 31
@@ -92,10 +92,9 @@
N
nonlocal keyword, 12
numpy library, 37-38
O
-open function, 22-23
+
open function, 17, 22-23, 25, 26, 28
operator module, 31
-os commands, 24-25
-os module, 23, 24-25
+os commands, 23-25
P
pandas library, 44-48
partial function, 12, 20
@@ -135,12 +134,12 @@
S
synthesizer, 41
sys module, 15, 21-22
T
-table, 34
-template function, 36
+
table, 27, 34, 45-46
+template, 6, 36
threading module, 30
time module, 34, 36
tuples, 3, 4, 11
-type, 4, 31
+type, 4, 31-32
W
wave module, 40-41
web, 36
From 46aecb1e9776f6204dbd5cdf0c8d04fe556f4f81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Tue, 24 Nov 2020 07:51:01 +0100
Subject: [PATCH 009/812] Index
---
pdf/index_for_pdf.html | 20 ++++++++++----------
pdf/index_for_pdf_print.html | 12 ++++++------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index a0adbc0b1..6589c0ae1 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -12,15 +12,15 @@ A
asyncio module, 33
audio, 40-41, 42
B
-beautifulsoup library, 35
+
beautifulsoup library, 35
binary representation, 7, 8
bitwise operators, 8
bottle library, 36
-bytes, 28
+bytes, 22-23, 25, 28-29
C
cache, 13
callable, 17
-class, 4, 14-19, 31-32
+class, 4, 14-20, 31-32
closure, 12-13
collection, 4, 18, 19
collections module, 2, 3, 4, 19, 29
@@ -55,14 +55,14 @@
F
functools module, 11, 12, 13, 16
futures, 30
G
-generators, 4, 11
+
generators, 4, 11, 17
global keyword, 12
gui, 48
H
hashable, 15, 16
hexadecimal representation, 7, 8, 28
I
-image, 35, 39-40, 42-43
+
image, 35, 39-40, 42-43
inline, 11-12, 15, 20
input function, 22
introspection, 31
@@ -77,10 +77,10 @@
L
lambda, 11
list comprehension, 11
lists, 1-2, 4, 11, 19, 21
-locks, 29, 33
+locks, 30, 33
logging, 35
M
-main function, 1, 41
+
main function, 1, 49
map function, 11, 31
math module, 7
memoryviews, 29
@@ -101,7 +101,7 @@
P
path, 23-24
pickle module, 25
pillow library, 39
-plotting, 34, 47
+plotting, 34, 47-48
print function, 22
profiling, 36-37
progress bar, 34
@@ -115,7 +115,7 @@ R
recursion, 13
reduce function, 11, 31
regular expressions, 5-6
-requests library, 35, 36
+requests library, 35, 36
S
scraping, 35, 43, 46, 47-48
sequence, 4, 18-19
@@ -132,7 +132,7 @@
S
subprocess module, 25
super function, 14
synthesizer, 41
-sys module, 15, 21-22
+sys module, 13, 21-22
T
table, 27, 34, 45-46
template, 6, 36
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 61fa07c2e..806bc81b3 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -16,11 +16,11 @@
B
binary representation, 7, 8
bitwise operators, 8
bottle library, 36
-bytes, 28
+bytes, 22-23, 25, 28-29
C
cache, 13
callable, 17
-class, 4, 14-19, 31-32
+class, 4, 14-20, 31-32
closure, 12-13
collection, 4, 18, 19
collections module, 2, 3, 4, 19, 29
@@ -55,7 +55,7 @@
F
functools module, 11, 12, 13, 16
futures, 30
G
-generators, 4, 11
+
generators, 4, 11, 17
global keyword, 12
gui, 48
H
@@ -77,10 +77,10 @@ L
lambda, 11
list comprehension, 11
lists, 1-2, 4, 11, 19, 21
-locks, 29, 33
+locks, 30, 33
logging, 35
M
-main function, 1, 41
+
main function, 1, 49
map function, 11, 31
math module, 7
memoryviews, 29
@@ -132,7 +132,7 @@
S
subprocess module, 25
super function, 14
synthesizer, 41
-sys module, 15, 21-22
+sys module, 13, 21-22
T
table, 27, 34, 45-46
template, 6, 36
From ffbd440e23b25c63f8d8aa6ccdc1f82ee66bf864 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Tue, 24 Nov 2020 10:16:19 +0100
Subject: [PATCH 010/812] Index
---
pdf/index_for_pdf.html | 10 +++++-----
pdf/index_for_pdf_print.html | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/pdf/index_for_pdf.html b/pdf/index_for_pdf.html
index 6589c0ae1..cd2c530e2 100644
--- a/pdf/index_for_pdf.html
+++ b/pdf/index_for_pdf.html
@@ -10,13 +10,13 @@ A
arguments, 10, 12, 22
arrays, 29, 37-38
asyncio module, 33
-audio, 40-41, 42
+audio, 40-41, 42
B
beautifulsoup library, 35
binary representation, 7, 8
bitwise operators, 8
bottle library, 36
-bytes, 22-23, 25, 28-29
+bytes, 22-23, 25, 28-29
C
cache, 13
callable, 17
@@ -100,7 +100,7 @@
P
partial function, 12, 20
path, 23-24
pickle module, 25
-pillow library, 39
+pillow library, 39-40
plotting, 34, 47-48
print function, 22
profiling, 36-37
@@ -132,9 +132,9 @@ S
subprocess module, 25
super function, 14
synthesizer, 41
-sys module, 13, 21-22
+sys module, 13, 21-22
T
-table, 27, 34, 45-46
+
table, 26, 27, 34, 37-38, 45-46
template, 6, 36
threading module, 30
time module, 34, 36
diff --git a/pdf/index_for_pdf_print.html b/pdf/index_for_pdf_print.html
index 806bc81b3..d7d786d34 100644
--- a/pdf/index_for_pdf_print.html
+++ b/pdf/index_for_pdf_print.html
@@ -100,8 +100,8 @@
P
partial function, 12, 20
path, 23-24
pickle module, 25
-pillow library, 39
-plotting, 34, 47
+pillow library, 39-40
+plotting, 34, 47-48
print function, 22
profiling, 36-37
progress bar, 34
@@ -134,7 +134,7 @@ S
synthesizer, 41
sys module, 13, 21-22
T
-table, 27, 34, 45-46
+
table, 26, 27, 34, 37-38, 45-46
template, 6, 36
threading module, 30
time module, 34, 36
From 3fc61a53045f920a8e6ad0a10399874b2a5879d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Tue, 24 Nov 2020 10:17:20 +0100
Subject: [PATCH 011/812] Renamed HOW_TO_CREATE_PDF.md
---
pdf/{HOW_TO_CREATE_PDF.md => README.md} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename pdf/{HOW_TO_CREATE_PDF.md => README.md} (100%)
diff --git a/pdf/HOW_TO_CREATE_PDF.md b/pdf/README.md
similarity index 100%
rename from pdf/HOW_TO_CREATE_PDF.md
rename to pdf/README.md
From a7e519556fab163c8f355b090bc19fa9c81f8884 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Thu, 26 Nov 2020 09:21:00 +0100
Subject: [PATCH 012/812] Updated pdf readme and faq
---
pdf/README.md | 6 ++++--
web/faq.html | 14 +++++++++-----
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/pdf/README.md b/pdf/README.md
index 5d32f83a3..98d90e8ad 100644
--- a/pdf/README.md
+++ b/pdf/README.md
@@ -14,8 +14,10 @@ Printing to PDF
### Normal PDF
* Open `index.html` in text editor and first remove element `
` before the `Libraries
`.
* Then replace the index and footer with contents of `pdf/index_for_pdf.html` file and save.
+* Change brightness of comments by right clicking on them and selecting inspect. Then click on the rectangle that represents color and toggle the color space to HSLA by clicking on the button with two vertical arrows.
+* Change lightness (L) percentage to 77%.
* Open `index.html` in Chrome and select 'Print...'.
-* Select destination 'Save as PDF', paper size 'A4', margins and scale 'Default' and no headers and footers and save.
+* Select destination 'Save as PDF', paper size 'A4', customised margins of top 10mm, right 9.5mm, bottom 5mm and left 10mm, 'Default' scale and no headers and footers and save (the document should be 50 pages long).
### PDF optimized for laser color printing
* Run `./parse.js` again.
@@ -33,7 +35,7 @@ Printing to PDF
* 58% for the comments.
* Individually change brightness of every comment line that starts with: `# $ pip3 install
...` and of comments in basic script template to 57%, by adding `color: hsla(0, 0%, 57%, 1);` to their element.style.
-* Select 'Print...' and destination 'Save as PDF', paper size 'A4', margins and scale 'Default' and no headers and footers and save.
+* Select 'Print...' with destination 'Save as PDF', paper size 'A4', customised margins of top 10mm, right 9.5mm, bottom 5mm and left 10mm, 'Default' scale and no headers and footers and save (the document should be 50 pages long).
Adding headers and footers to PDF (the same for both files)
-----------------------------------------------------------
diff --git a/web/faq.html b/web/faq.html
index 7b0374a46..088ed6110 100644
--- a/web/faq.html
+++ b/web/faq.html
@@ -4,7 +4,7 @@
What is the best way to use it?
I keep the text file open on separate desktop at all times. It is also in a different text editor than the one I usually use, so it's easier to switch to with Ctrl+↹ / ⌘↹. Cheatsheet consists of minimal text and short examples so things are easy to find with Ctrl+F / ⌘F. If you're on the webpage, searching for '#<name>' will only search for the titles.
- I also keep the Python console open at all times to test little snippets of code, to check out the available functions of a module using code completion and above all, to use help(<module/object/function/type>) command. If something is still unclear, then I search the Python docs by googling 'python docs <module/function>'.
+ I also keep the Python console open at all times to test little snippets of code, to check out the available functions of a module using code completion and above all, to use help(<module/object/function/type/str>) command. If something is still unclear, then I search the Python docs by googling 'python docs <module/function>'.
What does the '<type>' signify?
@@ -32,12 +32,16 @@
Check out Google Style Guide and use Ctrl+Alt+L / ⌥⌘L shortcut in PyCharm to automatically reformat code.
-Why are import statements, virtual environment, tests, packaging and installation not covered?
+Why are there no blank lines between method definitions?
+ This way classes can be copy-pasted into the Python console, which would otherwise raise IndentationError.
+
+
+Why are import statements, virtual environments and tests not covered?
Check out The Hitchhiker’s Guide to Python for a nice overview of the mentioned topics.
-Why is Django not covered?
- Maybe it will be in the future. For now, here is a nice Django cheatsheet.
+Why are Flask and Django not covered?
+ Maybe they will be in the future. For now, here is a nice Django cheatsheet.
Why are there no concrete Regex examples?
@@ -49,7 +53,7 @@
Why is staticmethod decorator not covered in Class section?
- Because it's of very limited use and is easy to mix up with classmethod.
+ Because it is of very limited use and is easy to mix up with classmethod.
Why are descriptors not covered?
From fab2ef93ed340e4266455138cb280f2c901a42e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Fri, 27 Nov 2020 09:53:38 +0100
Subject: [PATCH 013/812] Operator
---
README.md | 2 +-
index.html | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 19899fe64..1172e2255 100644
--- a/README.md
+++ b/README.md
@@ -2116,7 +2116,7 @@ Operator
```python
from operator import add, sub, mul, truediv, floordiv, mod, pow, neg, abs
from operator import eq, ne, lt, le, gt, ge
-from operator import and_, or_, not_
+from operator import and_, or_, xor, not_
from operator import itemgetter, attrgetter, methodcaller
```
diff --git a/index.html b/index.html
index 0a71ee190..cc252c5f2 100644
--- a/index.html
+++ b/index.html
@@ -1870,7 +1870,7 @@
#Operator
Module of functions that provide the functionality of operators.
from operator import add, sub, mul, truediv, floordiv, mod, pow, neg, abs
from operator import eq, ne, lt, le, gt, ge
-from operator import and_, or_, not_
+from operator import and_, or_, xor, not_
from operator import itemgetter, attrgetter, methodcaller
From 75e53004ea9a415ad1f90835a11e6089b236988d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jure=20=C5=A0orn?=
Date: Sat, 28 Nov 2020 15:23:06 +0100
Subject: [PATCH 014/812] New plots and exceptions fix
---
README.md | 3 +-
index.html | 6 +-
pdf/README.md | 7 +-
web/covid_cases.js | 632 +++++++++++++++++++++++---------------
web/covid_cases.png | Bin 51969 -> 53006 bytes
web/covid_deaths.js | 710 ++++++++++++++++++++++++++++---------------
web/covid_deaths.png | Bin 47446 -> 45078 bytes
web/template.html | 4 +-
8 files changed, 851 insertions(+), 511 deletions(-)
diff --git a/README.md b/README.md
index 1172e2255..c5ab9cbec 100644
--- a/README.md
+++ b/README.md
@@ -1415,7 +1415,6 @@ BaseException
| +-- KeyError # Raised when a dictionary key or set element is not found.
+-- NameError # Raised when a variable name is not found.
+-- OSError # Errors such as “file not found” or “disk full” (see Open).
-
| +-- FileNotFoundError # When a file or directory is requested but doesn't exist.
+-- RuntimeError # Raised by errors that don't fall into other categories.
| +-- RecursionError # Raised when the maximum recursion depth is exceeded.
@@ -3369,7 +3368,7 @@ continents = pd.read_csv('https://datahub.io/JohnSnowLabs/country-and-continent-%20df%20=%20pd.merge(covid,%20continents,%20left_on='iso_code', right_on='Three_Letter_Country_Code')
df = df.groupby(['Continent_Name', 'date']).sum().reset_index()
df['Total Deaths per Million'] = df.total_deaths * 1e6 / df.population
-df = df[('2020-03-14' < df.date) & (df.date < '2020-11-08')]
+df = df[('2020-03-14' < df.date) & (df.date < '2020-11-25')]
df = df.rename({'date': 'Date', 'Continent_Name': 'Continent'}, axis='columns')
line(df, x='Date', y='Total Deaths per Million', color='Continent').show()
```
diff --git a/index.html b/index.html
index cc252c5f2..3686d2fa2 100644
--- a/index.html
+++ b/index.html
@@ -213,7 +213,7 @@
@@ -2859,7 +2859,7 @@
df = pd.merge(covid, continents, left_on='iso_code', right_on='Three_Letter_Country_Code')
df = df.groupby(['Continent_Name', 'date']).sum().reset_index()
df['Total Deaths per Million'] = df.total_deaths * 1e6 / df.population
-df = df[('2020-03-14' < df.date) & (df.date < '2020-11-08')]
+df = df[('2020-03-14' < df.date) & (df.date < '2020-11-25')]
df = df.rename({'date': 'Date', 'Continent_Name': 'Continent'}, axis='columns')
line(df, x='Date', y='Total Deaths per Million', color='Continent').show()
@@ -2991,7 +2991,7 @@
diff --git a/pdf/README.md b/pdf/README.md
index 98d90e8ad..75d225de6 100644
--- a/pdf/README.md
+++ b/pdf/README.md
@@ -17,7 +17,7 @@ Printing to PDF
* Change brightness of comments by right clicking on them and selecting inspect. Then click on the rectangle that represents color and toggle the color space to HSLA by clicking on the button with two vertical arrows.
* Change lightness (L) percentage to 77%.
* Open `index.html` in Chrome and select 'Print...'.
-* Select destination 'Save as PDF', paper size 'A4', customised margins of top 10mm, right 9.5mm, bottom 5mm and left 10mm, 'Default' scale and no headers and footers and save (the document should be 50 pages long).
+* Select destination 'Save as PDF', paper size 'A4', customised margins of top 10mm, right 9.5mm, bottom 5mm and left 10mm, 'Default' scale and no headers and footers and save (the document should be 51 pages long with last page empty).
### PDF optimized for laser color printing
* Run `./parse.js` again.
@@ -35,7 +35,7 @@ Printing to PDF
* 58% for the comments.
* Individually change brightness of every comment line that starts with: `# $ pip3 install
...` and of comments in basic script template to 57%, by adding `color: hsla(0, 0%, 57%, 1);` to their element.style.
-* Select 'Print...' with destination 'Save as PDF', paper size 'A4', customised margins of top 10mm, right 9.5mm, bottom 5mm and left 10mm, 'Default' scale and no headers and footers and save (the document should be 50 pages long).
+* Select 'Print...' with destination 'Save as PDF', paper size 'A4', customised margins of top 10mm, right 9.5mm, bottom 5mm and left 10mm, 'Default' scale and no headers and footers and save (the document should be 51 pages long with last page empty).
Adding headers and footers to PDF (the same for both files)
-----------------------------------------------------------
@@ -46,7 +46,8 @@ Adding headers and footers to PDF (the same for both files)
* Select 'Edit PDF' tab and add headers and footers by clicking 'Header & Footer' button, selecting a preset from 'Saved Settings' dropdown menu and clicking ok. Repeat the process for each preset.
* If presets get lost, the font and the margins are as follow: Borders: left-line: 0.6, left-text: 0.8, top-line: 11.4, bottom-text: 0.27, right-text-odd: 0.57, font-name: menlo, font-size: 8.
* Set title and author by selecting 'File/Properties...'.
-* Save in Adobe, Optimized format.
+* Save the progress by running 'Save as' in 'Adobe PDF format'.
+* Run 'Save as' again, this time in 'Adobe optimized format', so that Menlo font error gets fixed.
Printing the PDF
----------------
diff --git a/web/covid_cases.js b/web/covid_cases.js
index 5522242a2..b6305c98b 100644
--- a/web/covid_cases.js
+++ b/web/covid_cases.js
@@ -269,7 +269,24 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
"2020-11-05",
"2020-11-06",
"2020-11-07",
- "2020-11-08"
+ "2020-11-08",
+ "2020-11-09",
+ "2020-11-10",
+ "2020-11-11",
+ "2020-11-12",
+ "2020-11-13",
+ "2020-11-14",
+ "2020-11-15",
+ "2020-11-16",
+ "2020-11-17",
+ "2020-11-18",
+ "2020-11-19",
+ "2020-11-20",
+ "2020-11-21",
+ "2020-11-22",
+ "2020-11-23",
+ "2020-11-24",
+ "2020-11-25"
],
"y": [
100.0,
@@ -529,9 +546,26 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
97.38663529709316,
98.17547185114833,
99.11907962047327,
- 100.012547330084,
- 100.55361441813406,
- 101.16727320355385
+ 100.10595330282132,
+ 101.03441408253919,
+ 101.79996493869096,
+ 102.51033598914871,
+ 103.14584188320757,
+ 103.64435790080016,
+ 104.2223218394103,
+ 104.64211148550294,
+ 104.84055379148343,
+ 104.95609398951513,
+ 104.90016765776701,
+ 104.89132705747815,
+ 105.03406920958436,
+ 105.07366215783658,
+ 105.2191455042381,
+ 105.24717539030853,
+ 105.22621021412539,
+ 105.27133064836063,
+ 105.3489847170559,
+ 105.42615505457347
],
"yaxis": "y2"
},
@@ -798,7 +832,24 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
"2020-11-05",
"2020-11-06",
"2020-11-07",
- "2020-11-08"
+ "2020-11-08",
+ "2020-11-09",
+ "2020-11-10",
+ "2020-11-11",
+ "2020-11-12",
+ "2020-11-13",
+ "2020-11-14",
+ "2020-11-15",
+ "2020-11-16",
+ "2020-11-17",
+ "2020-11-18",
+ "2020-11-19",
+ "2020-11-20",
+ "2020-11-21",
+ "2020-11-22",
+ "2020-11-23",
+ "2020-11-24",
+ "2020-11-25"
],
"y": [
100.0,
@@ -1058,9 +1109,26 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
116.02642648143858,
116.14824171723517,
116.0005988224007,
- 115.94975775853476,
- 116.04777923273136,
- 116.13725938396422
+ 115.96195961386258,
+ 115.80719897008687,
+ 115.69860216482468,
+ 115.55950071514197,
+ 115.5084563337943,
+ 115.15134850190285,
+ 114.7669900590762,
+ 114.5630156111975,
+ 114.48939785036809,
+ 114.53759533143624,
+ 114.52051244113275,
+ 114.52234302041104,
+ 114.38080179552001,
+ 114.08856795830941,
+ 113.59174948080523,
+ 113.09716721292324,
+ 112.52673010114016,
+ 111.90077506924476,
+ 111.63409676766705,
+ 111.39531345251345
],
"yaxis": "y2"
},
@@ -1327,7 +1395,24 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
"2020-11-05",
"2020-11-06",
"2020-11-07",
- "2020-11-08"
+ "2020-11-08",
+ "2020-11-09",
+ "2020-11-10",
+ "2020-11-11",
+ "2020-11-12",
+ "2020-11-13",
+ "2020-11-14",
+ "2020-11-15",
+ "2020-11-16",
+ "2020-11-17",
+ "2020-11-18",
+ "2020-11-19",
+ "2020-11-20",
+ "2020-11-21",
+ "2020-11-22",
+ "2020-11-23",
+ "2020-11-24",
+ "2020-11-25"
],
"y": [
100.0,
@@ -1587,9 +1672,26 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
149.1959992065398,
151.33938994876942,
153.21414189308825,
- 154.91851114530473,
- 156.10787776170685,
- 157.83948174049442
+ 154.79926489373742,
+ 156.86134317199955,
+ 159.72298564540958,
+ 162.20843046049214,
+ 164.23922548716735,
+ 164.63368213288194,
+ 165.84121113854275,
+ 168.79292546946795,
+ 171.23315545579766,
+ 173.84170848781508,
+ 177.33802451387004,
+ 180.42541715923693,
+ 182.6233705922216,
+ 184.771619804003,
+ 187.96234949623997,
+ 190.87719523208418,
+ 191.333352079023,
+ 190.73562606228532,
+ 191.16079628515072,
+ 191.67508936185212
],
"yaxis": "y2"
},
@@ -1856,7 +1958,24 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
"2020-11-05",
"2020-11-06",
"2020-11-07",
- "2020-11-08"
+ "2020-11-08",
+ "2020-11-09",
+ "2020-11-10",
+ "2020-11-11",
+ "2020-11-12",
+ "2020-11-13",
+ "2020-11-14",
+ "2020-11-15",
+ "2020-11-16",
+ "2020-11-17",
+ "2020-11-18",
+ "2020-11-19",
+ "2020-11-20",
+ "2020-11-21",
+ "2020-11-22",
+ "2020-11-23",
+ "2020-11-24",
+ "2020-11-25"
],
"y": [
78818.0,
@@ -1884,241 +2003,258 @@ if (document.getElementById("e23ccacc-a456-478b-b467-7282a2165921")) {
173492.0,
187733.0,
204825.0,
- 225119.0,
- 256315.0,
- 288303.0,
- 322529.0,
- 356799.0,
- 401369.0,
- 443905.0,
- 497740.0,
- 558849.0,
- 624034.0,
- 686888.0,
- 744252.0,
- 808965.0,
- 883804.0,
- 961451.0,
- 1039097.0,
- 1121096.0,
- 1206366.0,
- 1272626.0,
- 1345891.0,
- 1423285.0,
- 1508343.0,
- 1595776.0,
- 1685399.0,
- 1760764.0,
- 1829287.0,
- 1894542.0,
- 1971519.0,
- 2050331.0,
- 2134761.0,
- 2217038.0,
- 2296734.0,
- 2367237.0,
- 2441893.0,
- 2529214.0,
- 2595818.0,
- 2674605.0,
- 2747755.0,
- 2847602.0,
- 2929436.0,
- 2996209.0,
- 3069037.0,
- 3148547.0,
- 3234220.0,
- 3322751.0,
- 3403382.0,
- 3480405.0,
- 3558014.0,
- 3637570.0,
- 3725873.0,
- 3818689.0,
- 3908387.0,
- 3996805.0,
- 4071339.0,
- 4142710.0,
- 4229829.0,
- 4317319.0,
- 4414503.0,
- 4512734.0,
- 4605708.0,
- 4684759.0,
- 4772710.0,
- 4869088.0,
- 4974061.0,
- 5082846.0,
- 5189649.0,
- 5288603.0,
- 5380855.0,
- 5471806.0,
- 5566446.0,
- 5670259.0,
- 5789591.0,
- 5912777.0,
- 6040543.0,
- 6146168.0,
- 6248940.0,
- 6362151.0,
- 6488667.0,
- 6616019.0,
- 6749876.0,
- 6875263.0,
- 6988931.0,
- 7097681.0,
- 7224453.0,
- 7360114.0,
- 7496842.0,
- 7641832.0,
- 7774801.0,
- 7894417.0,
- 8016009.0,
- 8159260.0,
- 8337288.0,
- 8476098.0,
- 8657452.0,
- 8816588.0,
- 8942874.0,
- 9079368.0,
- 9243545.0,
- 9419366.0,
- 9598234.0,
- 9787934.0,
- 9969181.0,
- 10128251.0,
- 10290066.0,
- 10483863.0,
- 10686101.0,
- 10894985.0,
- 11100785.0,
- 11288558.0,
- 11465107.0,
- 11642269.0,
- 11850780.0,
- 12066692.0,
- 12291653.0,
- 12523373.0,
- 12739092.0,
- 12933285.0,
- 13125838.0,
- 13350892.0,
- 13585180.0,
- 13841331.0,
- 14090158.0,
- 14317178.0,
- 14530806.0,
- 14735442.0,
- 14976978.0,
- 15260868.0,
- 15536709.0,
- 15820996.0,
- 16077986.0,
- 16307329.0,
- 16522676.0,
- 16767380.0,
- 17067356.0,
- 17357581.0,
- 17634845.0,
- 17896867.0,
- 18117780.0,
- 18325100.0,
- 18581911.0,
- 18859752.0,
- 19145687.0,
- 19421539.0,
- 19687229.0,
- 19914763.0,
- 20135944.0,
- 20397552.0,
- 20687271.0,
- 20972816.0,
- 21262241.0,
- 21518580.0,
- 21748836.0,
- 21948479.0,
- 22206544.0,
- 22487202.0,
- 22761655.0,
- 23015976.0,
- 23279287.0,
- 23503508.0,
- 23716689.0,
- 23973248.0,
- 24251510.0,
- 24535142.0,
- 24812123.0,
- 25078177.0,
- 25321396.0,
- 25566912.0,
- 25835917.0,
- 26120893.0,
- 26400958.0,
- 26695865.0,
- 26969306.0,
- 27215335.0,
- 27424352.0,
- 27670048.0,
- 27959232.0,
- 28264923.0,
- 28569619.0,
- 28853755.0,
- 29123698.0,
- 29369220.0,
- 29672743.0,
- 29962460.0,
- 30280647.0,
- 30592615.0,
- 30886120.0,
- 31170449.0,
- 31439388.0,
- 31722098.0,
- 32033579.0,
- 32354468.0,
- 32666069.0,
- 32965336.0,
- 33245193.0,
- 33483705.0,
- 33777645.0,
- 34093656.0,
- 34416828.0,
- 34735618.0,
- 35037530.0,
- 35318548.0,
- 35588964.0,
- 35915720.0,
- 36269350.0,
- 36632393.0,
- 36981623.0,
- 37331053.0,
- 37635137.0,
- 37920177.0,
- 38250883.0,
- 38639272.0,
- 39041865.0,
- 39439223.0,
- 39809563.0,
- 40171464.0,
- 40520482.0,
- 40915439.0,
- 41367715.0,
- 41840206.0,
- 42328982.0,
- 42788582.0,
- 43227554.0,
- 43643411.0,
- 44122781.0,
- 44636197.0,
- 45184307.0,
- 45726409.0,
- 46184350.0,
- 46671506.0,
- 47141989.0,
- 47646807.0,
- 48216449.0,
- 48805036.0,
- 49384557.0,
- 49951976.0
+ 225120.0,
+ 256316.0,
+ 288304.0,
+ 322530.0,
+ 356800.0,
+ 401370.0,
+ 443906.0,
+ 497741.0,
+ 558850.0,
+ 624037.0,
+ 686892.0,
+ 744257.0,
+ 808971.0,
+ 883810.0,
+ 961458.0,
+ 1039104.0,
+ 1121103.0,
+ 1206374.0,
+ 1272635.0,
+ 1345900.0,
+ 1423294.0,
+ 1508352.0,
+ 1595785.0,
+ 1685408.0,
+ 1760775.0,
+ 1829298.0,
+ 1894554.0,
+ 1971531.0,
+ 2050343.0,
+ 2134774.0,
+ 2217052.0,
+ 2296748.0,
+ 2367252.0,
+ 2441910.0,
+ 2529231.0,
+ 2595836.0,
+ 2674623.0,
+ 2747773.0,
+ 2847620.0,
+ 2929454.0,
+ 2996227.0,
+ 3069055.0,
+ 3148565.0,
+ 3234239.0,
+ 3322770.0,
+ 3403401.0,
+ 3480424.0,
+ 3558033.0,
+ 3637589.0,
+ 3725892.0,
+ 3818708.0,
+ 3908406.0,
+ 3996824.0,
+ 4071358.0,
+ 4142729.0,
+ 4229848.0,
+ 4317338.0,
+ 4414522.0,
+ 4512754.0,
+ 4605728.0,
+ 4684779.0,
+ 4772730.0,
+ 4869108.0,
+ 4974081.0,
+ 5082866.0,
+ 5189669.0,
+ 5288623.0,
+ 5380875.0,
+ 5471826.0,
+ 5566466.0,
+ 5670279.0,
+ 5789611.0,
+ 5912797.0,
+ 6040563.0,
+ 6146188.0,
+ 6248960.0,
+ 6362173.0,
+ 6488689.0,
+ 6616041.0,
+ 6749898.0,
+ 6875285.0,
+ 6988953.0,
+ 7097704.0,
+ 7224476.0,
+ 7360137.0,
+ 7496865.0,
+ 7641855.0,
+ 7774824.0,
+ 7894440.0,
+ 8016032.0,
+ 8159283.0,
+ 8337311.0,
+ 8476121.0,
+ 8657475.0,
+ 8816611.0,
+ 8942897.0,
+ 9079391.0,
+ 9243568.0,
+ 9419389.0,
+ 9598257.0,
+ 9787957.0,
+ 9969204.0,
+ 10128274.0,
+ 10290089.0,
+ 10483886.0,
+ 10686124.0,
+ 10895008.0,
+ 11100808.0,
+ 11288581.0,
+ 11465130.0,
+ 11642292.0,
+ 11850803.0,
+ 12066715.0,
+ 12291676.0,
+ 12523396.0,
+ 12739115.0,
+ 12933308.0,
+ 13125861.0,
+ 13350915.0,
+ 13585203.0,
+ 13841354.0,
+ 14090181.0,
+ 14317201.0,
+ 14530829.0,
+ 14735465.0,
+ 14977001.0,
+ 15260891.0,
+ 15536732.0,
+ 15821019.0,
+ 16078009.0,
+ 16307352.0,
+ 16522699.0,
+ 16767403.0,
+ 17067379.0,
+ 17357604.0,
+ 17634868.0,
+ 17896890.0,
+ 18117803.0,
+ 18325123.0,
+ 18581934.0,
+ 18859784.0,
+ 19145719.0,
+ 19421571.0,
+ 19687261.0,
+ 19914795.0,
+ 20135976.0,
+ 20397584.0,
+ 20687303.0,
+ 20972848.0,
+ 21262273.0,
+ 21518612.0,
+ 21748868.0,
+ 21948511.0,
+ 22206576.0,
+ 22487234.0,
+ 22761687.0,
+ 23016008.0,
+ 23279319.0,
+ 23503540.0,
+ 23716721.0,
+ 23973280.0,
+ 24251542.0,
+ 24535174.0,
+ 24812155.0,
+ 25078209.0,
+ 25321428.0,
+ 25566944.0,
+ 25835949.0,
+ 26120925.0,
+ 26400990.0,
+ 26695897.0,
+ 26969338.0,
+ 27215367.0,
+ 27424384.0,
+ 27670080.0,
+ 27959264.0,
+ 28264955.0,
+ 28569651.0,
+ 28853787.0,
+ 29123730.0,
+ 29369253.0,
+ 29672776.0,
+ 29962493.0,
+ 30280681.0,
+ 30592649.0,
+ 30886154.0,
+ 31170483.0,
+ 31439424.0,
+ 31722134.0,
+ 32033616.0,
+ 32354505.0,
+ 32666108.0,
+ 32965375.0,
+ 33245232.0,
+ 33483744.0,
+ 33777684.0,
+ 34093695.0,
+ 34416868.0,
+ 34735659.0,
+ 35037571.0,
+ 35318590.0,
+ 35589007.0,
+ 35915763.0,
+ 36269393.0,
+ 36632438.0,
+ 36981671.0,
+ 37331102.0,
+ 37635186.0,
+ 37920228.0,
+ 38250937.0,
+ 38639329.0,
+ 39041929.0,
+ 39439290.0,
+ 39809632.0,
+ 40171533.0,
+ 40520554.0,
+ 40915521.0,
+ 41367807.0,
+ 41840303.0,
+ 42329082.0,
+ 42788685.0,
+ 43227657.0,
+ 43643540.0,
+ 44122943.0,
+ 44636369.0,
+ 45184499.0,
+ 45726633.0,
+ 46184592.0,
+ 46671746.0,
+ 47142350.0,
+ 47647360.0,
+ 48217148.0,
+ 48829573.0,
+ 49435572.0,
+ 50028890.0,
+ 50557624.0,
+ 51059869.0,
+ 51626707.0,
+ 52250192.0,
+ 52897568.0,
+ 53533147.0,
+ 54127701.0,
+ 54642114.0,
+ 55186571.0,
+ 55769341.0,
+ 56395008.0,
+ 57035918.0,
+ 57715431.0,
+ 58287281.0,
+ 58806033.0,
+ 59338940.0,
+ 59900689.0
],
"yaxis": "y"
}
diff --git a/web/covid_cases.png b/web/covid_cases.png
index 1795ea35c39435c08568f184af518e71932b8b85..4134e468b8415258f94092cd5d8b23652ac8b459 100644
GIT binary patch
literal 53006
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