Browse Source

Plot, Console app

pull/102/merge
Jure Šorn 2 days ago
parent
commit
c836531176
3 changed files with 19 additions and 18 deletions
  1. 12
      README.md
  2. 16
      index.html
  3. 9
      parse.js

12
README.md

@ -2419,8 +2419,7 @@ import matplotlib.pyplot as plt
plt.plot/bar/scatter(x_data, y_data [, label=<str>]) # Also plt.plot(y_data).
plt.legend() # Adds a legend.
plt.title/xlabel/ylabel(<str>) # Adds a title or label.
plt.savefig(<path>) # Saves the plot.
plt.show() # Displays the plot.
plt.show() # Also plt.savefig(<path>).
plt.clf() # Clears the plot.
```
@ -2443,7 +2442,7 @@ Console App
```python
# $ pip3 install windows-curses
import curses, os
from curses import A_REVERSE, KEY_DOWN, KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_ENTER
from curses import A_REVERSE, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ENTER
def main(screen):
ch, first, selected, paths = 0, 0, 0, os.listdir()
@ -2454,9 +2453,10 @@ def main(screen):
color = A_REVERSE if filename == paths[selected] else 0
screen.addnstr(y, 0, filename, width-1, color)
ch = screen.getch()
selected += (ch == KEY_DOWN) - (ch == KEY_UP)
selected = max(0, min(len(paths)-1, selected))
first += (selected >= first + height) - (selected < first)
selected -= (ch == KEY_UP) and (selected > 0)
selected += (ch == KEY_DOWN) and (selected < len(paths)-1)
first = min(first, selected)
first = max(first, selected - (height-1))
if ch in [KEY_LEFT, KEY_RIGHT, KEY_ENTER, ord('\n'), ord('\r')]:
new_dir = '..' if ch == KEY_LEFT else paths[selected]
if os.path.isdir(new_dir):

16
index.html

@ -56,7 +56,7 @@
<body>
<header>
<aside>February 19, 2025</aside>
<aside>February 25, 2025</aside>
<a href="https://gto76.github.io" rel="author">Jure Šorn</a>
</header>
@ -1990,8 +1990,7 @@ Processing: 100%|████████████████████| 3
plt.plot/bar/scatter(x_data, y_data [, label=&lt;str&gt;]) <span class="hljs-comment"># Also plt.plot(y_data).</span>
plt.legend() <span class="hljs-comment"># Adds a legend.</span>
plt.title/xlabel/ylabel(&lt;str&gt;) <span class="hljs-comment"># Adds a title or label.</span>
plt.savefig(&lt;path&gt;) <span class="hljs-comment"># Saves the plot.</span>
plt.show() <span class="hljs-comment"># Displays the plot.</span>
plt.show() <span class="hljs-comment"># Also plt.savefig(&lt;path&gt;).</span>
plt.clf() <span class="hljs-comment"># Clears the plot.</span>
</code></pre></div>
@ -2005,7 +2004,7 @@ print(tabulate.tabulate(rows, headers=<span class="hljs-string">'firstrow'</span
<div><h2 id="consoleapp"><a href="#consoleapp" name="consoleapp">#</a>Console App</h2><div><h4 id="runsabasicfileexplorerintheconsole">Runs a basic file explorer in the console:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install windows-curses</span>
<span class="hljs-keyword">import</span> curses, os
<span class="hljs-keyword">from</span> curses <span class="hljs-keyword">import</span> A_REVERSE, KEY_DOWN, KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_ENTER
<span class="hljs-keyword">from</span> curses <span class="hljs-keyword">import</span> A_REVERSE, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ENTER
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">main</span><span class="hljs-params">(screen)</span>:</span>
ch, first, selected, paths = <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, os.listdir()
@ -2016,9 +2015,10 @@ print(tabulate.tabulate(rows, headers=<span class="hljs-string">'firstrow'</span
color = A_REVERSE <span class="hljs-keyword">if</span> filename == paths[selected] <span class="hljs-keyword">else</span> <span class="hljs-number">0</span>
screen.addnstr(y, <span class="hljs-number">0</span>, filename, width-<span class="hljs-number">1</span>, color)
ch = screen.getch()
selected += (ch == KEY_DOWN) - (ch == KEY_UP)
selected = max(<span class="hljs-number">0</span>, min(len(paths)-<span class="hljs-number">1</span>, selected))
first += (selected &gt;= first + height) - (selected &lt; first)
selected -= (ch == KEY_UP) <span class="hljs-keyword">and</span> (selected &gt; <span class="hljs-number">0</span>)
selected += (ch == KEY_DOWN) <span class="hljs-keyword">and</span> (selected &lt; len(paths)-<span class="hljs-number">1</span>)
first = min(first, selected)
first = max(first, selected - (height-<span class="hljs-number">1</span>))
<span class="hljs-keyword">if</span> ch <span class="hljs-keyword">in</span> [KEY_LEFT, KEY_RIGHT, KEY_ENTER, ord(<span class="hljs-string">'\n'</span>), ord(<span class="hljs-string">'\r'</span>)]:
new_dir = <span class="hljs-string">'..'</span> <span class="hljs-keyword">if</span> ch == KEY_LEFT <span class="hljs-keyword">else</span> paths[selected]
<span class="hljs-keyword">if</span> os.path.isdir(new_dir):
@ -2942,7 +2942,7 @@ $ deactivate <span class="hljs-comment"># Deactivates the active
<footer>
<aside>February 19, 2025</aside>
<aside>February 25, 2025</aside>
<a href="https://gto76.github.io" rel="author">Jure Šorn</a>
</footer>

9
parse.js

@ -168,7 +168,7 @@ const COROUTINES =
const CURSES =
'<span class="hljs-comment"># $ pip3 install windows-curses</span>\n' +
'<span class="hljs-keyword">import</span> curses, os\n' +
'<span class="hljs-keyword">from</span> curses <span class="hljs-keyword">import</span> A_REVERSE, KEY_DOWN, KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_ENTER\n' +
'<span class="hljs-keyword">from</span> curses <span class="hljs-keyword">import</span> A_REVERSE, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ENTER\n' +
'\n' +
'<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">main</span><span class="hljs-params">(screen)</span>:</span>\n' +
' ch, first, selected, paths = <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, os.listdir()\n' +
@ -179,9 +179,10 @@ const CURSES =
' color = A_REVERSE <span class="hljs-keyword">if</span> filename == paths[selected] <span class="hljs-keyword">else</span> <span class="hljs-number">0</span>\n' +
' screen.addnstr(y, <span class="hljs-number">0</span>, filename, width-<span class="hljs-number">1</span>, color)\n' +
' ch = screen.getch()\n' +
' selected += (ch == KEY_DOWN) - (ch == KEY_UP)\n' +
' selected = max(<span class="hljs-number">0</span>, min(len(paths)-<span class="hljs-number">1</span>, selected))\n' +
' first += (selected &gt;= first + height) - (selected &lt; first)\n' +
' selected -= (ch == KEY_UP) <span class="hljs-keyword">and</span> (selected &gt; <span class="hljs-number">0</span>)\n' +
' selected += (ch == KEY_DOWN) <span class="hljs-keyword">and</span> (selected &lt; len(paths)-<span class="hljs-number">1</span>)\n' +
' first = min(first, selected)\n' +
' first = max(first, selected - (height-<span class="hljs-number">1</span>))\n' +
' <span class="hljs-keyword">if</span> ch <span class="hljs-keyword">in</span> [KEY_LEFT, KEY_RIGHT, KEY_ENTER, ord(<span class="hljs-string">\'\\n\'</span>), ord(<span class="hljs-string">\'\\r\'</span>)]:\n' +
' new_dir = <span class="hljs-string">\'..\'</span> <span class="hljs-keyword">if</span> ch == KEY_LEFT <span class="hljs-keyword">else</span> paths[selected]\n' +
' <span class="hljs-keyword">if</span> os.path.isdir(new_dir):\n' +

Loading…
Cancel
Save