┏━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━┯━━━━━━━━━━━━━┓
+Sample Values
┏━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━┯━━━━━━━━━━━━━┓
┃ sampwidth │ min │ zero │ max ┃
┠───────────┼─────────────┼──────┼─────────────┨
-┃ 1 │ 0 │ 128 │ 255 ┃
-┃ 2 │ -32768 │ 0 │ 32767 ┃
-┃ 3 │ -8388608 │ 0 │ 8388607 ┃
-┃ 4 │ -2147483648 │ 0 │ 2147483647 ┃
+┃ 1 │ 0 │ 128 │ 255 ┃
+┃ 2 │ -32768 │ 0 │ 32767 ┃
+┃ 3 │ -8388608 │ 0 │ 8388607 ┃
+┃ 4 │ -2147483648 │ 0 │ 2147483647 ┃
┗━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━┷━━━━━━━━━━━━━┛
@@ -2662,19 +2662,19 @@ x 1
y 2
dtype: int64
-┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
-┃ │ 'sum' │ ['sum'] │ {'s': 'sum'} ┃
+┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
+┃ │ 'sum' │ ['sum'] │ {'s': 'sum'} ┃
┠─────────────┼─────────────┼─────────────┼───────────────┨
-┃ sr.apply(…) │ 3 │ sum 3 │ s 3 ┃
+┃ sr.apply(…) │ 3 │ sum 3 │ s 3 ┃
┃ sr.agg(…) │ │ │ ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
-┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
-┃ │ 'rank' │ ['rank'] │ {'r': 'rank'} ┃
+┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
+┃ │ 'rank' │ ['rank'] │ {'r': 'rank'} ┃
┠─────────────┼─────────────┼─────────────┼───────────────┨
┃ sr.apply(…) │ │ rank │ ┃
-┃ sr.agg(…) │ x 1 │ x 1 │ r x 1 ┃
-┃ sr.trans(…) │ y 2 │ y 2 │ y 2 ┃
+┃ sr.agg(…) │ x 1 │ x 1 │ r x 1 ┃
+┃ sr.trans(…) │ y 2 │ y 2 │ y 2 ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
DataFrame
Table with labeled rows and columns.
>>> DataFrame([[1, 2], [3, 4]], index=['a', 'b'], columns=['x', 'y'])
@@ -2714,34 +2714,34 @@ b 4 5
c 6 7
-┏━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃ how/join │ 'outer' │ 'inner' │ 'left' │ description ┃
+┏━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃ how/join │ 'outer' │ 'inner' │ 'left' │ description ┃
┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨
-┃ l.merge(r, on='y', │ x y z │ x y z │ x y z │ Joins/merges on column. ┃
-┃ how=…) │ 0 1 2 . │ 3 4 5 │ 1 2 . │ Also accepts left_on and ┃
-┃ │ 1 3 4 5 │ │ 3 4 5 │ right_on parameters. ┃
-┃ │ 2 . 6 7 │ │ │ Uses 'inner' by default. ┃
+┃ l.merge(r, on='y', │ x y z │ x y z │ x y z │ Joins/merges on column. ┃
+┃ how=…) │ 0 1 2 . │ 3 4 5 │ 1 2 . │ Also accepts left_on and ┃
+┃ │ 1 3 4 5 │ │ 3 4 5 │ right_on parameters. ┃
+┃ │ 2 . 6 7 │ │ │ Uses 'inner' by default. ┃
┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨
-┃ l.join(r, lsuffix='l', │ x yl yr z │ │ x yl yr z │ Joins/merges on row_keys.┃
-┃ rsuffix='r', │ a 1 2 . . │ x yl yr z │ 1 2 . . │ Uses 'left' by default. ┃
-┃ how=…) │ b 3 4 4 5 │ 3 4 4 5 │ 3 4 4 5 │ ┃
-┃ │ c . . 6 7 │ │ │ ┃
+┃ l.join(r, lsuffix='l', │ x yl yr z │ │ x yl yr z │ Joins/merges on row_keys.┃
+┃ rsuffix='r', │ a 1 2 . . │ x yl yr z │ 1 2 . . │ Uses 'left' by default. ┃
+┃ how=…) │ b 3 4 4 5 │ 3 4 4 5 │ 3 4 4 5 │ ┃
+┃ │ c . . 6 7 │ │ │ ┃
┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨
┃ pd.concat([l, r], │ x y z │ y │ │ Adds rows at the bottom. ┃
-┃ axis=0, │ a 1 2 . │ 2 │ │ Uses 'outer' by default. ┃
-┃ join=…) │ b 3 4 . │ 4 │ │ By default works the ┃
-┃ │ b . 4 5 │ 4 │ │ same as `l.append(r)`. ┃
-┃ │ c . 6 7 │ 6 │ │ ┃
+┃ axis=0, │ a 1 2 . │ 2 │ │ Uses 'outer' by default. ┃
+┃ join=…) │ b 3 4 . │ 4 │ │ By default works the ┃
+┃ │ b . 4 5 │ 4 │ │ same as `l.append(r)`. ┃
+┃ │ c . 6 7 │ 6 │ │ ┃
┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨
┃ pd.concat([l, r], │ x y y z │ │ │ Adds columns at the ┃
-┃ axis=1, │ a 1 2 . . │ x y y z │ │ right end. ┃
-┃ join=…) │ b 3 4 4 5 │ 3 4 4 5 │ │ Uses 'outer' by default. ┃
-┃ │ c . . 6 7 │ │ │ ┃
+┃ axis=1, │ a 1 2 . . │ x y y z │ │ right end. ┃
+┃ join=…) │ b 3 4 4 5 │ 3 4 4 5 │ │ Uses 'outer' by default. ┃
+┃ │ c . . 6 7 │ │ │ ┃
┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨
-┃ l.combine_first(r) │ x y z │ │ │ Adds missing rows and ┃
-┃ │ a 1 2 . │ │ │ columns. ┃
-┃ │ b 3 4 5 │ │ │ ┃
-┃ │ c . 6 7 │ │ │ ┃
+┃ l.combine_first(r) │ x y z │ │ │ Adds missing rows and ┃
+┃ │ a 1 2 . │ │ │ columns. ┃
+┃ │ b 3 4 5 │ │ │ ┃
+┃ │ c . 6 7 │ │ │ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Aggregate, Transform, Map:
<Sr> = <DF>.sum/max/mean/idxmax/all() # Or: <DF>.apply/agg/transform(<agg_func>)
@@ -2757,21 +2757,21 @@ c 6 7
a 1 2
b 3 4
-┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
-┃ │ 'sum' │ ['sum'] │ {'x': 'sum'} ┃
+┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
+┃ │ 'sum' │ ['sum'] │ {'x': 'sum'} ┃
┠─────────────┼─────────────┼─────────────┼───────────────┨
┃ df.apply(…) │ │ x y │ ┃
-┃ df.agg(…) │ x 4 │ sum 4 6 │ x 4 ┃
-┃ │ y 6 │ │ ┃
+┃ df.agg(…) │ x 4 │ sum 4 6 │ x 4 ┃
+┃ │ y 6 │ │ ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
-┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
-┃ │ 'rank' │ ['rank'] │ {'x': 'rank'} ┃
+┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
+┃ │ 'rank' │ ['rank'] │ {'x': 'rank'} ┃
┠─────────────┼─────────────┼─────────────┼───────────────┨
┃ df.apply(…) │ x y │ x y │ x ┃
-┃ df.agg(…) │ a 1 1 │ rank rank │ a 1 ┃
-┃ df.trans(…) │ b 2 2 │ a 1 1 │ b 2 ┃
-┃ │ │ b 2 2 │ ┃
+┃ df.agg(…) │ a 1 1 │ rank rank │ a 1 ┃
+┃ df.trans(…) │ b 2 2 │ a 1 1 │ b 2 ┃
+┃ │ │ b 2 2 │ ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
Encode, Decode:
<DF> = pd.read_json/html('<str/path/url>')
@@ -2810,19 +2810,19 @@ c 7 8
6: b 4 5 6
c 7 8 6
-┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
-┃ │ 'sum' │ 'rank' │ ['rank'] │ {'x': 'rank'} ┃
+┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
+┃ │ 'sum' │ 'rank' │ ['rank'] │ {'x': 'rank'} ┃
┠─────────────┼─────────────┼─────────────┼─────────────┼───────────────┨
┃ gb.agg(…) │ x y │ x y │ x y │ x ┃
-┃ │ z │ a 1 1 │ rank rank │ a 1 ┃
-┃ │ 3 1 2 │ b 1 1 │ a 1 1 │ b 1 ┃
-┃ │ 6 11 13 │ c 2 2 │ b 1 1 │ c 2 ┃
-┃ │ │ │ c 2 2 │ ┃
+┃ │ z │ a 1 1 │ rank rank │ a 1 ┃
+┃ │ 3 1 2 │ b 1 1 │ a 1 1 │ b 1 ┃
+┃ │ 6 11 13 │ c 2 2 │ b 1 1 │ c 2 ┃
+┃ │ │ │ c 2 2 │ ┃
┠─────────────┼─────────────┼─────────────┼─────────────┼───────────────┨
┃ gb.trans(…) │ x y │ x y │ │ ┃
-┃ │ a 1 2 │ a 1 1 │ │ ┃
-┃ │ b 11 13 │ b 1 1 │ │ ┃
-┃ │ c 11 13 │ c 1 1 │ │ ┃
+┃ │ a 1 2 │ a 1 1 │ │ ┃
+┃ │ b 11 13 │ b 1 1 │ │ ┃
+┃ │ c 11 13 │ c 1 1 │ │ ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
Rolling
Object for rolling window calculations.
<R_Sr/R_DF/R_GB> = <Sr/DF/GB>.rolling(window_size) # Also: `min_periods=None, center=False`.
diff --git a/parse.js b/parse.js
index 1ae5bfd..e0a0550 100755
--- a/parse.js
+++ b/parse.js
@@ -67,45 +67,11 @@ const DATETIME =
'\'<DT> = resolve_imaginary(<DT>)\'
';
const DIAGRAM_1_A =
- '+-------------+-------------+\n' +
- '| Classes | Metaclasses |\n' +
- '+-------------+-------------|\n' +
- '| MyClass --> MyMetaClass |\n';
-
-const DIAGRAM_1_B =
- '┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┓\n' +
- '┃ Classes │ Metaclasses ┃\n' +
- '┠─────────────┼─────────────┨\n' +
- '┃ MyClass ──→ MyMetaClass ┃\n' +
- '┃ │ ↓ ┃\n' +
- '┃ object ─────→ type ←╮ ┃\n' +
- '┃ │ ↑ ╰──╯ ┃\n' +
- '┃ str ──────────╯ ┃\n' +
- '┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┛\n';
-
-const DIAGRAM_2_A =
- '+-------------+-------------+\n' +
- '| Classes | Metaclasses |\n' +
- '+-------------+-------------|\n' +
- '| MyClass | MyMetaClass |\n';
-
-const DIAGRAM_2_B =
- '┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┓\n' +
- '┃ Classes │ Metaclasses ┃\n' +
- '┠─────────────┼─────────────┨\n' +
- '┃ MyClass │ MyMetaClass ┃\n' +
- '┃ ↓ │ ↓ ┃\n' +
- '┃ object ←───── type ┃\n' +
- '┃ ↑ │ ┃\n' +
- '┃ str │ ┃\n' +
- '┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┛\n';
-
-const DIAGRAM_3_A =
'+------------------+------------+------------+------------+\n' +
'| | Sequence | Collection | Iterable |\n' +
'+------------------+------------+------------+------------+\n';
-const DIAGRAM_3_B =
+const DIAGRAM_1_B =
'┏━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┓\n' +
'┃ │ Sequence │ Collection │ Iterable ┃\n' +
'┠──────────────────┼────────────┼────────────┼────────────┨\n' +
@@ -114,12 +80,12 @@ const DIAGRAM_3_B =
'┃ iter │ │ │ ✓ ┃\n' +
'┗━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┛\n';
-const DIAGRAM_4_A =
+const DIAGRAM_2_A =
'+--------------------+----------+----------+----------+----------+----------+\n' +
'| | Integral | Rational | Real | Complex | Number |\n' +
'+--------------------+----------+----------+----------+----------+----------+\n';
-const DIAGRAM_4_B =
+const DIAGRAM_2_B =
'┏━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┓\n' +
'┃ │ Integral │ Rational │ Real │ Complex │ Number ┃\n' +
'┠────────────────────┼──────────┼──────────┼──────────┼──────────┼──────────┨\n' +
@@ -130,12 +96,26 @@ const DIAGRAM_4_B =
'┃ decimal.Decimal │ │ │ │ │ ✓ ┃\n' +
'┗━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┛\n';
-const DIAGRAM_5_A =
+const DIAGRAM_3_A =
+ '+---------------+----------+----------+----------+----------+----------+\n';
+
+const DIAGRAM_3_B =
+ '┏━━━━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┓\n' +
+ '┃ │ [ !#$%…] │ [a-zA-Z] │ [¼½¾] │ [²³¹] │ [0-9] ┃\n' +
+ '┠───────────────┼──────────┼──────────┼──────────┼──────────┼──────────┨\n' +
+ '┃ isprintable() │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ ┃\n' +
+ '┃ isalnum() │ │ ✓ │ ✓ │ ✓ │ ✓ ┃\n' +
+ '┃ isnumeric() │ │ │ ✓ │ ✓ │ ✓ ┃\n' +
+ '┃ isdigit() │ │ │ │ ✓ │ ✓ ┃\n' +
+ '┃ isdecimal() │ │ │ │ │ ✓ ┃\n' +
+ '┗━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┛\n';
+
+const DIAGRAM_4_A =
"+---------------+-----------------+-----------------+-----------------+-----------------+\n" +
"| | {} | {:f} | {:e} | {:%} |\n" +
"+---------------+-----------------+-----------------+-----------------+-----------------+\n";
-const DIAGRAM_5_B =
+const DIAGRAM_4_B =
"┏━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┓\n" +
"┃ │ {<float>} │ {<float>:f} │ {<float>:e} │ {<float>:%} ┃\n" +
"┠───────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┨\n" +
@@ -149,12 +129,12 @@ const DIAGRAM_5_B =
"┃ 567.89 │ '567.89' │ '567.890000' │ '5.678900e+02' │ '56789.000000%' ┃\n" +
"┗━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┛\n";
-const DIAGRAM_6_A =
+const DIAGRAM_5_A =
"+---------------+-----------------+-----------------+-----------------+-----------------+\n" +
"| | {:.2} | {:.2f} | {:.2e} | {:.2%} |\n" +
"+---------------+-----------------+-----------------+-----------------+-----------------+\n";
-const DIAGRAM_6_B =
+const DIAGRAM_5_B =
"┏━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━┓\n" +
"┃ │ {<float>:.2} │ {<float>:.2f} │ {<float>:.2e} │ {<float>:.2%} ┃\n" +
"┠───────────────┼─────────────────┼─────────────────┼─────────────────┼─────────────────┨\n" +
@@ -168,12 +148,12 @@ const DIAGRAM_6_B =
"┃ 567.89 │ '5.7e+02' │ '567.89' │ '5.68e+02' │ '56789.00%' ┃\n" +
"┗━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━┛\n";
-const DIAGRAM_7_A =
+const DIAGRAM_6_A =
'+------------+------------+------------+------------+--------------+\n' +
'| | Iterable | Collection | Sequence | abc.Sequence |\n' +
'+------------+------------+------------+------------+--------------+\n';
-const DIAGRAM_7_B =
+const DIAGRAM_6_B =
'┏━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━━━┓\n' +
'┃ │ Iterable │ Collection │ Sequence │ abc.Sequence ┃\n' +
'┠────────────┼────────────┼────────────┼────────────┼──────────────┨\n' +
@@ -186,11 +166,11 @@ const DIAGRAM_7_B =
'┃ count() │ │ │ │ ✓ ┃\n' +
'┗━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━┛\n';
-const DIAGRAM_8_A =
+const DIAGRAM_7_A =
'BaseException\n' +
' +-- SystemExit';
-const DIAGRAM_8_B =
+const DIAGRAM_7_B =
"BaseException\n" +
" ├── SystemExit # Raised by the sys.exit() function.\n" +
" ├── KeyboardInterrupt # Raised when the user hits the interrupt key (ctrl-c).\n" +
@@ -212,6 +192,21 @@ const DIAGRAM_8_B =
" └── ValueError # When an argument is of right type but inappropriate value.\n" +
" └── UnicodeError # Raised when encoding/decoding strings to/from bytes fails.\n";
+const DIAGRAM_8_A =
+ '+-----------+------------+------------+------------+\n' +
+ '| | list | dict | set |\n' +
+ '+-----------+------------+------------+------------+\n';
+
+const DIAGRAM_8_B =
+ '┏━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┓\n' +
+ '┃ │ list │ dict │ set ┃\n' +
+ '┠───────────┼────────────┼────────────┼────────────┨\n' +
+ '┃ getitem() │ IndexError │ KeyError │ ┃\n' +
+ '┃ pop() │ IndexError │ KeyError │ KeyError ┃\n' +
+ '┃ remove() │ ValueError │ │ KeyError ┃\n' +
+ '┃ index() │ ValueError │ │ ┃\n' +
+ '┗━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┛\n';
+
const DIAGRAM_9_A =
'+------------------+--------------+--------------+--------------+\n' +
'| | excel | excel-tab | unix |\n' +
@@ -231,26 +226,45 @@ const DIAGRAM_9_B =
"┗━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┛\n";
const DIAGRAM_10_A =
- '+-----------+------------+------------+------------+\n' +
- '| | list | dict | set |\n' +
- '+-----------+------------+------------+------------+\n';
+ '+-------------+-------------+\n' +
+ '| Classes | Metaclasses |\n' +
+ '+-------------+-------------|\n' +
+ '| MyClass --> MyMetaClass |\n';
const DIAGRAM_10_B =
- '┏━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┓\n' +
- '┃ │ list │ dict │ set ┃\n' +
- '┠───────────┼────────────┼────────────┼────────────┨\n' +
- '┃ getitem() │ IndexError │ KeyError │ ┃\n' +
- '┃ pop() │ IndexError │ KeyError │ KeyError ┃\n' +
- '┃ remove() │ ValueError │ │ KeyError ┃\n' +
- '┃ index() │ ValueError │ │ ┃\n' +
- '┗━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┛\n';
+ '┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┓\n' +
+ '┃ Classes │ Metaclasses ┃\n' +
+ '┠─────────────┼─────────────┨\n' +
+ '┃ MyClass ──→ MyMetaClass ┃\n' +
+ '┃ │ ↓ ┃\n' +
+ '┃ object ─────→ type ←╮ ┃\n' +
+ '┃ │ ↑ ╰──╯ ┃\n' +
+ '┃ str ──────────╯ ┃\n' +
+ '┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┛\n';
const DIAGRAM_11_A =
+ '+-------------+-------------+\n' +
+ '| Classes | Metaclasses |\n' +
+ '+-------------+-------------|\n' +
+ '| MyClass | MyMetaClass |\n';
+
+const DIAGRAM_11_B =
+ '┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┓\n' +
+ '┃ Classes │ Metaclasses ┃\n' +
+ '┠─────────────┼─────────────┨\n' +
+ '┃ MyClass │ MyMetaClass ┃\n' +
+ '┃ ↓ │ ↓ ┃\n' +
+ '┃ object ←───── type ┃\n' +
+ '┃ ↑ │ ┃\n' +
+ '┃ str │ ┃\n' +
+ '┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┛\n';
+
+const DIAGRAM_12_A =
'+-----------+-------------+------+-------------+\n' +
'| sampwidth | min | zero | max |\n' +
'+-----------+-------------+------+-------------+\n';
-const DIAGRAM_11_B =
+const DIAGRAM_12_B =
'┏━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━┯━━━━━━━━━━━━━┓\n' +
'┃ sampwidth │ min │ zero │ max ┃\n' +
'┠───────────┼─────────────┼──────┼─────────────┨\n' +
@@ -260,20 +274,6 @@ const DIAGRAM_11_B =
'┃ 4 │ -2147483648 │ 0 │ 2147483647 ┃\n' +
'┗━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━┷━━━━━━━━━━━━━┛\n';
-const DIAGRAM_12_A =
- '+---------------+----------+----------+----------+----------+----------+\n';
-
-const DIAGRAM_12_B =
- '┏━━━━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━┓\n' +
- '┃ │ [ !#$%…] │ [a-zA-Z] │ [¼½¾] │ [²³¹] │ [0-9] ┃\n' +
- '┠───────────────┼──────────┼──────────┼──────────┼──────────┼──────────┨\n' +
- '┃ isprintable() │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ ┃\n' +
- '┃ isalnum() │ │ ✓ │ ✓ │ ✓ │ ✓ ┃\n' +
- '┃ isnumeric() │ │ │ ✓ │ ✓ │ ✓ ┃\n' +
- '┃ isdigit() │ │ │ │ ✓ │ ✓ ┃\n' +
- '┃ isdecimal() │ │ │ │ │ ✓ ┃\n' +
- '┗━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┛\n';
-
const DIAGRAM_13_A =
'| sr.apply(…) | 3 | sum 3 | s 3 |';
@@ -297,10 +297,44 @@ const DIAGRAM_14_B =
"┃ sr.trans(…) │ y 2 │ y 2 │ y 2 ┃\n" +
"┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛\n";
-const DIAGRAM_15_A =
- '| df.apply(…) | | x y | |';
+const DIAGRAM_15_A =
+ '+------------------------+---------------+------------+------------+--------------------------+';
const DIAGRAM_15_B =
+ "┏━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n" +
+ "┃ how/join │ 'outer' │ 'inner' │ 'left' │ description ┃\n" +
+ "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
+ "┃ l.merge(r, on='y', │ x y z │ x y z │ x y z │ Joins/merges on column. ┃\n" +
+ "┃ how=…) │ 0 1 2 . │ 3 4 5 │ 1 2 . │ Also accepts left_on and ┃\n" +
+ "┃ │ 1 3 4 5 │ │ 3 4 5 │ right_on parameters. ┃\n" +
+ "┃ │ 2 . 6 7 │ │ │ Uses 'inner' by default. ┃\n" +
+ "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
+ "┃ l.join(r, lsuffix='l', │ x yl yr z │ │ x yl yr z │ Joins/merges on row_keys.┃\n" +
+ "┃ rsuffix='r', │ a 1 2 . . │ x yl yr z │ 1 2 . . │ Uses 'left' by default. ┃\n" +
+ "┃ how=…) │ b 3 4 4 5 │ 3 4 4 5 │ 3 4 4 5 │ ┃\n" +
+ "┃ │ c . . 6 7 │ │ │ ┃\n" +
+ "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
+ "┃ pd.concat([l, r], │ x y z │ y │ │ Adds rows at the bottom. ┃\n" +
+ "┃ axis=0, │ a 1 2 . │ 2 │ │ Uses 'outer' by default. ┃\n" +
+ "┃ join=…) │ b 3 4 . │ 4 │ │ By default works the ┃\n" +
+ "┃ │ b . 4 5 │ 4 │ │ same as `l.append(r)`. ┃\n" +
+ "┃ │ c . 6 7 │ 6 │ │ ┃\n" +
+ "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
+ "┃ pd.concat([l, r], │ x y y z │ │ │ Adds columns at the ┃\n" +
+ "┃ axis=1, │ a 1 2 . . │ x y y z │ │ right end. ┃\n" +
+ "┃ join=…) │ b 3 4 4 5 │ 3 4 4 5 │ │ Uses 'outer' by default. ┃\n" +
+ "┃ │ c . . 6 7 │ │ │ ┃\n" +
+ "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
+ "┃ l.combine_first(r) │ x y z │ │ │ Adds missing rows and ┃\n" +
+ "┃ │ a 1 2 . │ │ │ columns. ┃\n" +
+ "┃ │ b 3 4 5 │ │ │ ┃\n" +
+ "┃ │ c . 6 7 │ │ │ ┃\n" +
+ "┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";
+
+const DIAGRAM_16_A =
+ '| df.apply(…) | | x y | |';
+
+const DIAGRAM_16_B =
"┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓\n" +
"┃ │ 'sum' │ ['sum'] │ {'x': 'sum'} ┃\n" +
"┠─────────────┼─────────────┼─────────────┼───────────────┨\n" +
@@ -309,10 +343,10 @@ const DIAGRAM_15_B =
"┃ │ y 6 │ │ ┃\n" +
"┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛\n";
-const DIAGRAM_16_A =
+const DIAGRAM_17_A =
'| df.apply(…) | x y | x y | x |';
-const DIAGRAM_16_B =
+const DIAGRAM_17_B =
"┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓\n" +
"┃ │ 'rank' │ ['rank'] │ {'x': 'rank'} ┃\n" +
"┠─────────────┼─────────────┼─────────────┼───────────────┨\n" +
@@ -322,10 +356,10 @@ const DIAGRAM_16_B =
"┃ │ │ b 2 2 │ ┃\n" +
"┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛\n";
-const DIAGRAM_17_A =
+const DIAGRAM_18_A =
'| gb.agg(…) | x y | x y | x y | x |';
-const DIAGRAM_17_B =
+const DIAGRAM_18_B =
"┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓\n" +
"┃ │ 'sum' │ 'rank' │ ['rank'] │ {'x': 'rank'} ┃\n" +
"┠─────────────┼─────────────┼─────────────┼─────────────┼───────────────┨\n" +
@@ -341,40 +375,6 @@ const DIAGRAM_17_B =
"┃ │ c 11 13 │ c 1 1 │ │ ┃\n" +
"┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛\n";
-const DIAGRAM_18_A =
- '+------------------------+---------------+------------+------------+--------------------------+';
-
-const DIAGRAM_18_B =
- "┏━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n" +
- "┃ how/join │ 'outer' │ 'inner' │ 'left' │ description ┃\n" +
- "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
- "┃ l.merge(r, on='y', │ x y z │ x y z │ x y z │ Joins/merges on column. ┃\n" +
- "┃ how=…) │ 0 1 2 . │ 3 4 5 │ 1 2 . │ Also accepts left_on and ┃\n" +
- "┃ │ 1 3 4 5 │ │ 3 4 5 │ right_on parameters. ┃\n" +
- "┃ │ 2 . 6 7 │ │ │ Uses 'inner' by default. ┃\n" +
- "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
- "┃ l.join(r, lsuffix='l', │ x yl yr z │ │ x yl yr z │ Joins/merges on row_keys.┃\n" +
- "┃ rsuffix='r', │ a 1 2 . . │ x yl yr z │ 1 2 . . │ Uses 'left' by default. ┃\n" +
- "┃ how=…) │ b 3 4 4 5 │ 3 4 4 5 │ 3 4 4 5 │ ┃\n" +
- "┃ │ c . . 6 7 │ │ │ ┃\n" +
- "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
- "┃ pd.concat([l, r], │ x y z │ y │ │ Adds rows at the bottom. ┃\n" +
- "┃ axis=0, │ a 1 2 . │ 2 │ │ Uses 'outer' by default. ┃\n" +
- "┃ join=…) │ b 3 4 . │ 4 │ │ By default works the ┃\n" +
- "┃ │ b . 4 5 │ 4 │ │ same as `l.append(r)`. ┃\n" +
- "┃ │ c . 6 7 │ 6 │ │ ┃\n" +
- "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
- "┃ pd.concat([l, r], │ x y y z │ │ │ Adds columns at the ┃\n" +
- "┃ axis=1, │ a 1 2 . . │ x y y z │ │ right end. ┃\n" +
- "┃ join=…) │ b 3 4 4 5 │ 3 4 4 5 │ │ Uses 'outer' by default. ┃\n" +
- "┃ │ c . . 6 7 │ │ │ ┃\n" +
- "┠────────────────────────┼───────────────┼────────────┼────────────┼──────────────────────────┨\n" +
- "┃ l.combine_first(r) │ x y z │ │ │ Adds missing rows and ┃\n" +
- "┃ │ a 1 2 . │ │ │ columns. ┃\n" +
- "┃ │ b 3 4 5 │ │ │ ┃\n" +
- "┃ │ c . 6 7 │ │ │ ┃\n" +
- "┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";
-
function main() {
const html = getMd();
@@ -406,9 +406,9 @@ function modifyPage() {
addToc();
insertLinks();
unindentBanner();
+ updateDiagrams();
highlightCode();
removePlotImages();
- updateDiagrams();
}
function removeOrigToc() {
@@ -439,6 +439,27 @@ function unindentBanner() {
downloadPraragrapth.addClass('banner');
}
+function updateDiagrams() {
+ $(`code:contains(${DIAGRAM_1_A})`).html(DIAGRAM_1_B);
+ $(`code:contains(${DIAGRAM_2_A})`).html(DIAGRAM_2_B);
+ $(`code:contains(${DIAGRAM_3_A})`).html(DIAGRAM_3_B);
+ $(`code:contains(${DIAGRAM_4_A})`).html(DIAGRAM_4_B);
+ $(`code:contains(${DIAGRAM_5_A})`).html(DIAGRAM_5_B);
+ $(`code:contains(${DIAGRAM_6_A})`).html(DIAGRAM_6_B);
+ $(`code:contains(${DIAGRAM_7_A})`).html(DIAGRAM_7_B);
+ $(`code:contains(${DIAGRAM_8_A})`).html(DIAGRAM_8_B);
+ $(`code:contains(${DIAGRAM_9_A})`).html(DIAGRAM_9_B);
+ $(`code:contains(${DIAGRAM_10_A})`).html(DIAGRAM_10_B);
+ $(`code:contains(${DIAGRAM_11_A})`).html(DIAGRAM_11_B);
+ $(`code:contains(${DIAGRAM_12_A})`).html(DIAGRAM_12_B).removeClass("text").removeClass("language-text").addClass("python");
+ $(`code:contains(${DIAGRAM_13_A})`).html(DIAGRAM_13_B).removeClass("text").removeClass("language-text").addClass("python");
+ $(`code:contains(${DIAGRAM_14_A})`).html(DIAGRAM_14_B).removeClass("text").removeClass("language-text").addClass("python");
+ $(`code:contains(${DIAGRAM_15_A})`).html(DIAGRAM_15_B).removeClass("text").removeClass("language-text").addClass("python");
+ $(`code:contains(${DIAGRAM_16_A})`).html(DIAGRAM_16_B).removeClass("text").removeClass("language-text").addClass("python");
+ $(`code:contains(${DIAGRAM_17_A})`).html(DIAGRAM_17_B).removeClass("text").removeClass("language-text").addClass("python");
+ $(`code:contains(${DIAGRAM_18_A})`).html(DIAGRAM_18_B).removeClass("text").removeClass("language-text").addClass("python");
+}
+
function highlightCode() {
setApaches(['', '', '', '', '', '']);
$('code').not('.python').not('.text').not('.bash').not('.apache').addClass('python');
@@ -518,27 +539,6 @@ function removePlotImages() {
$('img[alt="Covid Cases"]').remove();
}
-function updateDiagrams() {
- $(`code:contains(${DIAGRAM_1_A})`).html(DIAGRAM_1_B);
- $(`code:contains(${DIAGRAM_2_A})`).html(DIAGRAM_2_B);
- $(`code:contains(${DIAGRAM_3_A})`).html(DIAGRAM_3_B);
- $(`code:contains(${DIAGRAM_4_A})`).html(DIAGRAM_4_B);
- $(`code:contains(${DIAGRAM_5_A})`).html(DIAGRAM_5_B);
- $(`code:contains(${DIAGRAM_6_A})`).html(DIAGRAM_6_B);
- $(`code:contains(${DIAGRAM_7_A})`).html(DIAGRAM_7_B);
- $(`code:contains(${DIAGRAM_8_A})`).html(DIAGRAM_8_B);
- $(`code:contains(${DIAGRAM_9_A})`).html(DIAGRAM_9_B);
- $(`code:contains(${DIAGRAM_10_A})`).html(DIAGRAM_10_B);
- $(`code:contains(${DIAGRAM_11_A})`).html(DIAGRAM_11_B);
- $(`code:contains(${DIAGRAM_12_A})`).html(DIAGRAM_12_B);
- $(`code:contains(${DIAGRAM_13_A})`).html(DIAGRAM_13_B);
- $(`code:contains(${DIAGRAM_14_A})`).html(DIAGRAM_14_B);
- $(`code:contains(${DIAGRAM_15_A})`).html(DIAGRAM_15_B);
- $(`code:contains(${DIAGRAM_16_A})`).html(DIAGRAM_16_B);
- $(`code:contains(${DIAGRAM_17_A})`).html(DIAGRAM_17_B);
- $(`code:contains(${DIAGRAM_18_A})`).html(DIAGRAM_18_B);
-}
-
function readFile(filename) {
try {
return fs.readFileSync(filename, 'utf8');