pyscript-programming-language 1.11.3__tar.gz → 1.12.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyscript_programming_language-1.12.0/MANIFEST.in +5 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/PKG-INFO +45 -13
- pyscript_programming_language-1.11.3/pyscript_programming_language.egg-info/PKG-INFO → pyscript_programming_language-1.12.0/README.md +42 -38
- pyscript_programming_language-1.12.0/changelog.md +21 -0
- pyscript_programming_language-1.12.0/pyproject.toml +51 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/__init__.py +9 -6
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/__init__.pyi +6 -5
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/__main__.py +27 -20
- pyscript_programming_language-1.12.0/pyscript/core/cache.py +70 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/constants.py +3 -1
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/editor/bases.py +2 -1
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/editor/gui.py +4 -2
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/editor/terminal.py +26 -3
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/handlers.py +7 -12
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/highlight.py +36 -10
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/interpreter.py +2 -1
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/lexer.py +4 -4
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/pysbuiltins.py +29 -19
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/results.py +4 -5
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/runner.py +48 -19
- pyscript_programming_language-1.12.0/pyscript/core/shell.py +287 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/ansi.py +1 -1
- pyscript_programming_language-1.12.0/pyscript/core/utils/debug.py +60 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/decorators.py +3 -10
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/generic.py +1 -32
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/jsdict.py +2 -2
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/version.py +10 -4
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/brainfuck.pys +17 -17
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/fpstimer/py_fpstimer.py +1 -1
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/inspect.pys +1 -2
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/parser.pys +2 -2
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/tokenize/tok_untokenize.py +2 -2
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/site-packages/this.pys +1 -1
- pyscript_programming_language-1.11.3/README.md → pyscript_programming_language-1.12.0/pyscript_programming_language.egg-info/PKG-INFO +70 -2
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript_programming_language.egg-info/SOURCES.txt +2 -1
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/setup.py +4 -1
- pyscript_programming_language-1.11.3/MANIFEST.in +0 -4
- pyscript_programming_language-1.11.3/pyscript/core/cache.py +0 -119
- pyscript_programming_language-1.11.3/pyscript/core/shell.py +0 -134
- pyscript_programming_language-1.11.3/pyscript/core/utils/debug.py +0 -29
- pyscript_programming_language-1.11.3/pyscript/lib/sys.pys +0 -29
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/__init__.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/analyzer.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/bases.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/buffer.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/checks.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/context.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/editor/__init__.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/exceptions.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/mapping.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/nodes.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/objects.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/parser.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/position.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/symtab.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/token.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/__init__.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/module.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/path.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/similarity.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/core/utils/string.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/__hello__.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/ansi.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/ast/__init__.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/ast/ast_dump.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/ast/ast_literal_eval.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/ast/ast_unparse.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/ast/ast_walk.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/dis.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/explorer.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/fpstimer/__init__.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/getch.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/jsdict.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/keyword.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/opcode.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/site.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/symtable.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/token.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/lib/tokenize/__init__.pys +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/other/.nomedia +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/other/PyScript.ico +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/other/copyright +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/other/credits +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/other/license +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/this.py +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript_programming_language.egg-info/dependency_links.txt +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript_programming_language.egg-info/requires.txt +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript_programming_language.egg-info/top_level.txt +0 -0
- {pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/setup.cfg +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyscript-programming-language
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.12.0
|
|
4
4
|
Summary: PyScript Programming Language
|
|
5
5
|
Home-page: https://azzammuhyala.github.io/pyscript
|
|
6
6
|
Author: azzammuhyala
|
|
7
|
-
Author-email: azzammuhyala@gmail.com
|
|
8
|
-
License: MIT
|
|
7
|
+
Author-email: azzammuhyala <azzammuhyala@gmail.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Project-URL: Homepage, https://azzammuhyala.github.io/pyscript
|
|
9
10
|
Project-URL: Source, https://github.com/azzammuhyala/pyscript
|
|
10
11
|
Project-URL: Bug Tracker, https://github.com/azzammuhyala/pyscript/issues
|
|
11
12
|
Keywords: pyscript,pyslang,pys,programming,language,programming language
|
|
@@ -22,17 +23,8 @@ Requires-Dist: beartype; extra == "other"
|
|
|
22
23
|
Requires-Dist: pygments; extra == "other"
|
|
23
24
|
Requires-Dist: prompt_toolkit; extra == "other"
|
|
24
25
|
Dynamic: author
|
|
25
|
-
Dynamic: author-email
|
|
26
|
-
Dynamic: classifier
|
|
27
|
-
Dynamic: description
|
|
28
|
-
Dynamic: description-content-type
|
|
29
26
|
Dynamic: home-page
|
|
30
|
-
Dynamic: keywords
|
|
31
|
-
Dynamic: license
|
|
32
|
-
Dynamic: project-url
|
|
33
|
-
Dynamic: provides-extra
|
|
34
27
|
Dynamic: requires-python
|
|
35
|
-
Dynamic: summary
|
|
36
28
|
|
|
37
29
|
# PyScript
|
|
38
30
|
|
|
@@ -78,7 +70,7 @@ And also, you can download PyScript with `git`:
|
|
|
78
70
|
```sh
|
|
79
71
|
git clone https://github.com/azzammuhyala/pyscript
|
|
80
72
|
cd pyscript
|
|
81
|
-
|
|
73
|
+
pip install .
|
|
82
74
|
```
|
|
83
75
|
|
|
84
76
|
After that, you can run the PyScript shell (_REPL_) with this command:
|
|
@@ -94,6 +86,46 @@ If successful, you can see the version, release date, and a `>>>` like Python sh
|
|
|
94
86
|
Familiar? There it is!
|
|
95
87
|
<pre><span style="color:#549952"># get a number and operator with input()</span><span style="color:#D4D4D4"><br></span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> = </span><span style="color:#4EC9B0">float</span><span style="color:#FFD705">(</span><span style="color:#DCDCAA">input</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Enter a first number : "</span><span style="color:#D45DBA">)</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br></span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"> = </span><span style="color:#4EC9B0">float</span><span style="color:#FFD705">(</span><span style="color:#DCDCAA">input</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Enter a second number: "</span><span style="color:#D45DBA">)</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br></span><span style="color:#8CDCFE">op</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">input</span><span style="color:#FFD705">(</span><span style="color:#CE9178">"Enter an operation (+, -, *, /): "</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br><br></span><span style="color:#549952"># define a functions</span><span style="color:#D4D4D4"><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">add</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> + </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">sub</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> - </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">mul</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> * </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">floordiv</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#549952"># check b is zero</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"> != </span><span style="color:#B5CEA8">0</span><span style="color:#D4D4D4"> ? </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> / </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"> : </span><span style="color:#CE9178">"Cannot be divided by 0!"</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#549952"># operation matching</span><span style="color:#D4D4D4"><br></span><span style="color:#C586C0">switch</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">op</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">strip</span><span style="color:#D45DBA">()</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'+'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">add</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} + {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'-'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">sub</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} - {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'*'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">mul</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} * {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'/'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">floordiv</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} / {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">default</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Unknown operation"</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span></pre>
|
|
96
88
|
|
|
89
|
+
## Library Requirements
|
|
90
|
+
| No | Name | Status |
|
|
91
|
+
|:--:|:------------------|:----------------------:|
|
|
92
|
+
| 1 | `argparse` | **required** |
|
|
93
|
+
| 2 | `builtins` | **required** |
|
|
94
|
+
| 3 | `collections.abc` | **required** |
|
|
95
|
+
| 4 | `functools` | **required** |
|
|
96
|
+
| 5 | `html` | **required** |
|
|
97
|
+
| 6 | `importlib` | **required** |
|
|
98
|
+
| 7 | `inspect` | **required** |
|
|
99
|
+
| 8 | `io` | **required** |
|
|
100
|
+
| 9 | `itertools` | **required** |
|
|
101
|
+
| 10 | `json` | **required** |
|
|
102
|
+
| 11 | `math` | **required** |
|
|
103
|
+
| 12 | `operator` | **required** |
|
|
104
|
+
| 13 | `os` | **required** |
|
|
105
|
+
| 14 | `re` | **required** |
|
|
106
|
+
| 15 | `sys` | **required** |
|
|
107
|
+
| 16 | `threading` | **required** |
|
|
108
|
+
| 17 | `types` | **required** |
|
|
109
|
+
| 18 | `typing` | **required** |
|
|
110
|
+
| 19 | `unicodedata` | **required** |
|
|
111
|
+
| 1 | `msvcrt` | **required (library)** |
|
|
112
|
+
| 2 | `shutil` | **required (library)** |
|
|
113
|
+
| 3 | `stat` | **required (library)** |
|
|
114
|
+
| 4 | `termios` | **required (library)** |
|
|
115
|
+
| 5 | `time` | **required (library)** |
|
|
116
|
+
| 6 | `tty` | **required (library)** |
|
|
117
|
+
| 1 | `beartype` | **optional** |
|
|
118
|
+
| 2 | `google.colab` | **optional** |
|
|
119
|
+
| 3 | `prompt_toolkit` | **optional** |
|
|
120
|
+
| 4 | `pygments` | **optional** |
|
|
121
|
+
| 5 | `tkinter` | **optional** |
|
|
122
|
+
|
|
123
|
+
### Status Explanation
|
|
124
|
+
- **required**: Required by PyScript entirely.
|
|
125
|
+
- **required (library)**: Required PyScript library (located in `pyscript/lib`). PyScript is not affected unless you
|
|
126
|
+
import it.
|
|
127
|
+
- **optional**: Not required, but if it is present, some features can be used without issue.
|
|
128
|
+
|
|
97
129
|
## Behind it
|
|
98
130
|
This language created from based up on a
|
|
99
131
|
[YouTube tutorial](https://www.youtube.com/playlist?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD) (check more on GitHub
|
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: pyscript-programming-language
|
|
3
|
-
Version: 1.11.3
|
|
4
|
-
Summary: PyScript Programming Language
|
|
5
|
-
Home-page: https://azzammuhyala.github.io/pyscript
|
|
6
|
-
Author: azzammuhyala
|
|
7
|
-
Author-email: azzammuhyala@gmail.com
|
|
8
|
-
License: MIT
|
|
9
|
-
Project-URL: Source, https://github.com/azzammuhyala/pyscript
|
|
10
|
-
Project-URL: Bug Tracker, https://github.com/azzammuhyala/pyscript/issues
|
|
11
|
-
Keywords: pyscript,pyslang,pys,programming,language,programming language
|
|
12
|
-
Classifier: Programming Language :: Python
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
-
Classifier: Topic :: Software Development :: Interpreters
|
|
17
|
-
Classifier: Topic :: Software Development :: Compilers
|
|
18
|
-
Requires-Python: >=3.10
|
|
19
|
-
Description-Content-Type: text/markdown
|
|
20
|
-
Provides-Extra: other
|
|
21
|
-
Requires-Dist: beartype; extra == "other"
|
|
22
|
-
Requires-Dist: pygments; extra == "other"
|
|
23
|
-
Requires-Dist: prompt_toolkit; extra == "other"
|
|
24
|
-
Dynamic: author
|
|
25
|
-
Dynamic: author-email
|
|
26
|
-
Dynamic: classifier
|
|
27
|
-
Dynamic: description
|
|
28
|
-
Dynamic: description-content-type
|
|
29
|
-
Dynamic: home-page
|
|
30
|
-
Dynamic: keywords
|
|
31
|
-
Dynamic: license
|
|
32
|
-
Dynamic: project-url
|
|
33
|
-
Dynamic: provides-extra
|
|
34
|
-
Dynamic: requires-python
|
|
35
|
-
Dynamic: summary
|
|
36
|
-
|
|
37
1
|
# PyScript
|
|
38
2
|
|
|
39
3
|
<div align="center">
|
|
@@ -78,7 +42,7 @@ And also, you can download PyScript with `git`:
|
|
|
78
42
|
```sh
|
|
79
43
|
git clone https://github.com/azzammuhyala/pyscript
|
|
80
44
|
cd pyscript
|
|
81
|
-
|
|
45
|
+
pip install .
|
|
82
46
|
```
|
|
83
47
|
|
|
84
48
|
After that, you can run the PyScript shell (_REPL_) with this command:
|
|
@@ -94,8 +58,48 @@ If successful, you can see the version, release date, and a `>>>` like Python sh
|
|
|
94
58
|
Familiar? There it is!
|
|
95
59
|
<pre><span style="color:#549952"># get a number and operator with input()</span><span style="color:#D4D4D4"><br></span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> = </span><span style="color:#4EC9B0">float</span><span style="color:#FFD705">(</span><span style="color:#DCDCAA">input</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Enter a first number : "</span><span style="color:#D45DBA">)</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br></span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"> = </span><span style="color:#4EC9B0">float</span><span style="color:#FFD705">(</span><span style="color:#DCDCAA">input</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Enter a second number: "</span><span style="color:#D45DBA">)</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br></span><span style="color:#8CDCFE">op</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">input</span><span style="color:#FFD705">(</span><span style="color:#CE9178">"Enter an operation (+, -, *, /): "</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br><br></span><span style="color:#549952"># define a functions</span><span style="color:#D4D4D4"><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">add</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> + </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">sub</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> - </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">mul</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> * </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#307CD6">func</span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">floordiv</span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#549952"># check b is zero</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">return</span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"> != </span><span style="color:#B5CEA8">0</span><span style="color:#D4D4D4"> ? </span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4"> / </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4"> : </span><span style="color:#CE9178">"Cannot be divided by 0!"</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span><span style="color:#D4D4D4"><br><br></span><span style="color:#549952"># operation matching</span><span style="color:#D4D4D4"><br></span><span style="color:#C586C0">switch</span><span style="color:#D4D4D4"> </span><span style="color:#FFD705">(</span><span style="color:#8CDCFE">op</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">strip</span><span style="color:#D45DBA">()</span><span style="color:#FFD705">)</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">{</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'+'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">add</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} + {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'-'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">sub</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} - {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'*'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">mul</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} * {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">case</span><span style="color:#D4D4D4"> </span><span style="color:#CE9178">'/'</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#8CDCFE">result</span><span style="color:#D4D4D4"> = </span><span style="color:#DCDCAA">floordiv</span><span style="color:#D45DBA">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Result of {} / {} = {}"</span><span style="color:#D4D4D4">.</span><span style="color:#DCDCAA">format</span><span style="color:#1A9FFF">(</span><span style="color:#8CDCFE">a</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">b</span><span style="color:#D4D4D4">, </span><span style="color:#8CDCFE">result</span><span style="color:#1A9FFF">)</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">break</span><span style="color:#D4D4D4"><br><br></span><span style="color:#D4D4D4"> </span><span style="color:#C586C0">default</span><span style="color:#D4D4D4">:</span><span style="color:#D4D4D4"><br></span><span style="color:#D4D4D4"> </span><span style="color:#DCDCAA">print</span><span style="color:#D45DBA">(</span><span style="color:#CE9178">"Unknown operation"</span><span style="color:#D45DBA">)</span><span style="color:#D4D4D4"><br></span><span style="color:#FFD705">}</span></pre>
|
|
96
60
|
|
|
61
|
+
## Library Requirements
|
|
62
|
+
| No | Name | Status |
|
|
63
|
+
|:--:|:------------------|:----------------------:|
|
|
64
|
+
| 1 | `argparse` | **required** |
|
|
65
|
+
| 2 | `builtins` | **required** |
|
|
66
|
+
| 3 | `collections.abc` | **required** |
|
|
67
|
+
| 4 | `functools` | **required** |
|
|
68
|
+
| 5 | `html` | **required** |
|
|
69
|
+
| 6 | `importlib` | **required** |
|
|
70
|
+
| 7 | `inspect` | **required** |
|
|
71
|
+
| 8 | `io` | **required** |
|
|
72
|
+
| 9 | `itertools` | **required** |
|
|
73
|
+
| 10 | `json` | **required** |
|
|
74
|
+
| 11 | `math` | **required** |
|
|
75
|
+
| 12 | `operator` | **required** |
|
|
76
|
+
| 13 | `os` | **required** |
|
|
77
|
+
| 14 | `re` | **required** |
|
|
78
|
+
| 15 | `sys` | **required** |
|
|
79
|
+
| 16 | `threading` | **required** |
|
|
80
|
+
| 17 | `types` | **required** |
|
|
81
|
+
| 18 | `typing` | **required** |
|
|
82
|
+
| 19 | `unicodedata` | **required** |
|
|
83
|
+
| 1 | `msvcrt` | **required (library)** |
|
|
84
|
+
| 2 | `shutil` | **required (library)** |
|
|
85
|
+
| 3 | `stat` | **required (library)** |
|
|
86
|
+
| 4 | `termios` | **required (library)** |
|
|
87
|
+
| 5 | `time` | **required (library)** |
|
|
88
|
+
| 6 | `tty` | **required (library)** |
|
|
89
|
+
| 1 | `beartype` | **optional** |
|
|
90
|
+
| 2 | `google.colab` | **optional** |
|
|
91
|
+
| 3 | `prompt_toolkit` | **optional** |
|
|
92
|
+
| 4 | `pygments` | **optional** |
|
|
93
|
+
| 5 | `tkinter` | **optional** |
|
|
94
|
+
|
|
95
|
+
### Status Explanation
|
|
96
|
+
- **required**: Required by PyScript entirely.
|
|
97
|
+
- **required (library)**: Required PyScript library (located in `pyscript/lib`). PyScript is not affected unless you
|
|
98
|
+
import it.
|
|
99
|
+
- **optional**: Not required, but if it is present, some features can be used without issue.
|
|
100
|
+
|
|
97
101
|
## Behind it
|
|
98
102
|
This language created from based up on a
|
|
99
103
|
[YouTube tutorial](https://www.youtube.com/playlist?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD) (check more on GitHub
|
|
100
104
|
[here](https://github.com/davidcallanan/py-myopl-code) by **@davidcallanan**). At least, it takes about 6 months to
|
|
101
|
-
learn it, and also need to learn general things that exist in other programming languages.
|
|
105
|
+
learn it, and also need to learn general things that exist in other programming languages.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
## [1.12.0] - 18/02/2026
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- The `sys` (PyScript) module is fully stored at the Python level (stored in `pyscript.core.cache`).
|
|
7
|
+
- The `/clear` shell command support for the **Google Colab** platform.
|
|
8
|
+
- The `/clean` shell command resets the `parser_flags` value.
|
|
9
|
+
- Adds _insert_, _pageup_, and _pagedown_ key system in the terminal editor.
|
|
10
|
+
- Adds new argument flag `-k/--classic-line-shell` and enviroment `PYSCRIPT_CLASSIC_LINE_SHELL`.
|
|
11
|
+
- Interactive shell input is supported and is the default with `prompt_toolkit`.
|
|
12
|
+
- Using a new way to wrap and configure this packages with `pyproject.toml`.
|
|
13
|
+
- _etc_.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **Fixed some bugs**.
|
|
17
|
+
- _etc._
|
|
18
|
+
|
|
19
|
+
### Removed
|
|
20
|
+
- `pyscript.core.cache.PysHook` object.
|
|
21
|
+
- _etc_.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pyscript-programming-language"
|
|
7
|
+
version = "1.12.0"
|
|
8
|
+
description = "PyScript Programming Language"
|
|
9
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
|
|
13
|
+
authors = [
|
|
14
|
+
{ name = "azzammuhyala", email = "azzammuhyala@gmail.com" }
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
keywords = [
|
|
18
|
+
"pyscript",
|
|
19
|
+
"pyslang",
|
|
20
|
+
"pys",
|
|
21
|
+
"programming",
|
|
22
|
+
"language",
|
|
23
|
+
"programming language"
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
classifiers = [
|
|
27
|
+
"Programming Language :: Python",
|
|
28
|
+
"Programming Language :: Python :: 3",
|
|
29
|
+
"Intended Audience :: Developers",
|
|
30
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
31
|
+
"Topic :: Software Development :: Interpreters",
|
|
32
|
+
"Topic :: Software Development :: Compilers"
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
Homepage = "https://azzammuhyala.github.io/pyscript"
|
|
37
|
+
Source = "https://github.com/azzammuhyala/pyscript"
|
|
38
|
+
"Bug Tracker" = "https://github.com/azzammuhyala/pyscript/issues"
|
|
39
|
+
|
|
40
|
+
[project.optional-dependencies]
|
|
41
|
+
other = [
|
|
42
|
+
"beartype",
|
|
43
|
+
"pygments",
|
|
44
|
+
"prompt_toolkit"
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[tool.setuptools.packages.find]
|
|
48
|
+
include = ["pyscript", "pyscript.*"]
|
|
49
|
+
|
|
50
|
+
[tool.setuptools]
|
|
51
|
+
include-package-data = true
|
{pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/__init__.py
RENAMED
|
@@ -9,11 +9,13 @@ if __import__('sys').version_info < (3, 10):
|
|
|
9
9
|
from . import core
|
|
10
10
|
|
|
11
11
|
from .core.constants import (
|
|
12
|
-
DEFAULT, NO_COLOR, DEBUG, SILENT, RETURN_RESULT, DONT_SHOW_BANNER_ON_SHELL,
|
|
12
|
+
DEFAULT, NO_COLOR, DEBUG, SILENT, RETURN_RESULT, DONT_SHOW_BANNER_ON_SHELL, CLASSIC_LINE_SHELL, LEXER_HIGHLIGHT,
|
|
13
|
+
DICT_TO_JSDICT
|
|
13
14
|
)
|
|
14
|
-
from .core.cache import undefined
|
|
15
|
+
from .core.cache import undefined
|
|
15
16
|
from .core.highlight import (
|
|
16
|
-
HLFMT_HTML, HLFMT_ANSI, HLFMT_BBCODE, pys_highlight, PygmentsPyScriptStyle, PygmentsPyScriptLexer
|
|
17
|
+
HLFMT_HTML, HLFMT_ANSI, HLFMT_BBCODE, pys_highlight, PygmentsPyScriptStyle, PygmentsPyScriptLexer,
|
|
18
|
+
PygmentsPyScriptShellLexer
|
|
17
19
|
)
|
|
18
20
|
from .core.runner import pys_runner, pys_exec, pys_eval, pys_require, pys_shell
|
|
19
21
|
from .core.version import version, version_info, __version__, __date__
|
|
@@ -26,13 +28,13 @@ __all__ = (
|
|
|
26
28
|
'SILENT',
|
|
27
29
|
'RETURN_RESULT',
|
|
28
30
|
'DONT_SHOW_BANNER_ON_SHELL',
|
|
29
|
-
'
|
|
31
|
+
'CLASSIC_LINE_SHELL',
|
|
32
|
+
'LEXER_HIGHLIGHT',
|
|
30
33
|
'DICT_TO_JSDICT',
|
|
31
34
|
'HLFMT_HTML',
|
|
32
35
|
'HLFMT_ANSI',
|
|
33
36
|
'HLFMT_BBCODE',
|
|
34
37
|
'undefined',
|
|
35
|
-
'hook',
|
|
36
38
|
'version',
|
|
37
39
|
'version_info',
|
|
38
40
|
'pys_highlight',
|
|
@@ -42,5 +44,6 @@ __all__ = (
|
|
|
42
44
|
'pys_require',
|
|
43
45
|
'pys_shell',
|
|
44
46
|
'PygmentsPyScriptStyle',
|
|
45
|
-
'PygmentsPyScriptLexer'
|
|
47
|
+
'PygmentsPyScriptLexer',
|
|
48
|
+
'PygmentsPyScriptShellLexer'
|
|
46
49
|
)
|
{pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/__init__.pyi
RENAMED
|
@@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, Callable, Iterable, Literal, Optional
|
|
|
2
2
|
|
|
3
3
|
if TYPE_CHECKING:
|
|
4
4
|
from .core.buffer import PysFileBuffer
|
|
5
|
-
from .core.cache import PysUndefined
|
|
5
|
+
from .core.cache import PysUndefined
|
|
6
6
|
from .core.context import PysContext
|
|
7
7
|
from .core.highlight import _PysHighlightFormatter
|
|
8
8
|
from .core.position import PysPosition
|
|
@@ -16,7 +16,8 @@ if TYPE_CHECKING:
|
|
|
16
16
|
from . import core as core
|
|
17
17
|
from .core.highlight import (
|
|
18
18
|
PygmentsPyScriptStyle as PygmentsPyScriptStyle,
|
|
19
|
-
PygmentsPyScriptLexer as PygmentsPyScriptLexer
|
|
19
|
+
PygmentsPyScriptLexer as PygmentsPyScriptLexer,
|
|
20
|
+
PygmentsPyScriptShellLexer as PygmentsPyScriptShellLexer
|
|
20
21
|
)
|
|
21
22
|
|
|
22
23
|
DEFAULT: int
|
|
@@ -25,7 +26,8 @@ DEBUG: int
|
|
|
25
26
|
SILENT: int
|
|
26
27
|
RETURN_RESULT: int
|
|
27
28
|
DONT_SHOW_BANNER_ON_SHELL: int
|
|
28
|
-
|
|
29
|
+
CLASSIC_LINE_SHELL: int
|
|
30
|
+
LEXER_HIGHLIGHT: int
|
|
29
31
|
DICT_TO_JSDICT: int
|
|
30
32
|
|
|
31
33
|
HLFMT_HTML: _PysHighlightFormatter
|
|
@@ -33,13 +35,12 @@ HLFMT_ANSI: _PysHighlightFormatter
|
|
|
33
35
|
HLFMT_BBCODE: _PysHighlightFormatter
|
|
34
36
|
|
|
35
37
|
undefined: PysUndefined
|
|
36
|
-
hook: PysHook
|
|
37
38
|
version: str
|
|
38
39
|
version_info: PysVersionInfo
|
|
39
40
|
|
|
40
41
|
def pys_highlight(
|
|
41
42
|
source: str | bytes | bytearray | Iterable | BuiltinMethodType | IOBase | PysFileBuffer,
|
|
42
|
-
|
|
43
|
+
formatter: Optional[
|
|
43
44
|
Callable[
|
|
44
45
|
[
|
|
45
46
|
str | Literal[
|
{pyscript_programming_language-1.11.3 → pyscript_programming_language-1.12.0}/pyscript/__main__.py
RENAMED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
from .core.buffer import PysFileBuffer
|
|
2
|
-
from .core.cache import
|
|
3
|
-
from .core.constants import
|
|
2
|
+
from .core.cache import pys_sys, undefined
|
|
3
|
+
from .core.constants import (
|
|
4
|
+
ENV_PYSCRIPT_CLASSIC_LINE_SHELL, DEFAULT, DEBUG, NO_COLOR, DONT_SHOW_BANNER_ON_SHELL, CLASSIC_LINE_SHELL
|
|
5
|
+
)
|
|
4
6
|
from .core.editor.gui import PysGUIEditor, GUI_SUPPORT
|
|
5
7
|
from .core.editor.terminal import PysTerminalEditor, TERMINAL_SUPPORT
|
|
6
8
|
from .core.highlight import (
|
|
7
|
-
HLFMT_HTML, HLFMT_ANSI, HLFMT_BBCODE, pys_highlight, PygmentsPyScriptStyle, PygmentsPyScriptLexer
|
|
9
|
+
PYGMENTS, HLFMT_HTML, HLFMT_ANSI, HLFMT_BBCODE, pys_highlight, PygmentsPyScriptStyle, PygmentsPyScriptLexer
|
|
8
10
|
)
|
|
9
11
|
from .core.runner import _normalize_namespace, pys_runner, pys_shell
|
|
10
12
|
from .core.utils.module import remove_python_path
|
|
11
13
|
from .core.utils.path import getcwd, normpath, get_name_from_path
|
|
12
14
|
from .core.version import __version__
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
if PYGMENTS:
|
|
15
17
|
from pygments import highlight
|
|
16
18
|
from pygments.formatters import (
|
|
17
19
|
BBCodeFormatter, HtmlFormatter, LatexFormatter, TerminalFormatter, TerminalTrueColorFormatter,
|
|
@@ -27,10 +29,6 @@ try:
|
|
|
27
29
|
'pm-256-terminal': Terminal256Formatter
|
|
28
30
|
}
|
|
29
31
|
|
|
30
|
-
PYGMENTS = True
|
|
31
|
-
except ImportError:
|
|
32
|
-
PYGMENTS = False
|
|
33
|
-
|
|
34
32
|
from argparse import OPTIONAL, REMAINDER, ArgumentParser
|
|
35
33
|
from os import environ
|
|
36
34
|
|
|
@@ -81,6 +79,12 @@ parser.add_argument(
|
|
|
81
79
|
help="Inspect interactively after running a code",
|
|
82
80
|
)
|
|
83
81
|
|
|
82
|
+
parser.add_argument(
|
|
83
|
+
'-k', '--classic-line-shell',
|
|
84
|
+
action='store_true',
|
|
85
|
+
help="Use a classic command line shell"
|
|
86
|
+
)
|
|
87
|
+
|
|
84
88
|
parser.add_argument(
|
|
85
89
|
'-l', '--highlight',
|
|
86
90
|
choices=tuple(FORMAT_HIGHLIGHT_MAP.keys()) + tuple(FORMAT_PYGMENTS_MAP.keys() if PYGMENTS else ()),
|
|
@@ -134,9 +138,9 @@ parser.add_argument(
|
|
|
134
138
|
)
|
|
135
139
|
|
|
136
140
|
parser.add_argument(
|
|
137
|
-
'
|
|
141
|
+
'arg',
|
|
138
142
|
nargs=REMAINDER,
|
|
139
|
-
help="Remaining arguments stored in
|
|
143
|
+
help="Remaining arguments stored in sys_module.argv (sys.argv)"
|
|
140
144
|
)
|
|
141
145
|
|
|
142
146
|
def argument_error(argument, message):
|
|
@@ -157,9 +161,11 @@ if args.terminal:
|
|
|
157
161
|
try:
|
|
158
162
|
import ctypes
|
|
159
163
|
kernel32 = ctypes.windll.kernel32
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
164
|
+
for i in (-11, -12, -10):
|
|
165
|
+
try:
|
|
166
|
+
kernel32.SetConsoleMode(kernel32.GetStdHandle(i), 7)
|
|
167
|
+
except:
|
|
168
|
+
continue
|
|
163
169
|
except:
|
|
164
170
|
pass
|
|
165
171
|
|
|
@@ -182,17 +188,18 @@ if args.debug:
|
|
|
182
188
|
flags |= DEBUG
|
|
183
189
|
if args.no_color or environ.get('NO_COLOR') is not None:
|
|
184
190
|
flags |= NO_COLOR
|
|
191
|
+
if args.classic_line_shell or environ.get(ENV_PYSCRIPT_CLASSIC_LINE_SHELL) is not None:
|
|
192
|
+
flags |= CLASSIC_LINE_SHELL
|
|
193
|
+
if args.q:
|
|
194
|
+
flags |= DONT_SHOW_BANNER_ON_SHELL
|
|
185
195
|
if args.P:
|
|
186
196
|
for cwd in {'', '.', getcwd()}:
|
|
187
197
|
remove_python_path(cwd)
|
|
188
|
-
if args.q:
|
|
189
|
-
flags |= DONT_SHOW_BANNER_ON_SHELL
|
|
190
198
|
|
|
191
|
-
|
|
192
|
-
hook.argv[1:] = args.argv
|
|
199
|
+
pys_sys.argv = argv = ['', *args.arg]
|
|
193
200
|
|
|
194
201
|
if args.file is not None:
|
|
195
|
-
|
|
202
|
+
argv[0] = args.file
|
|
196
203
|
path = normpath(args.file)
|
|
197
204
|
|
|
198
205
|
try:
|
|
@@ -228,7 +235,7 @@ if args.file is not None:
|
|
|
228
235
|
print(
|
|
229
236
|
pys_highlight(
|
|
230
237
|
source=file,
|
|
231
|
-
|
|
238
|
+
formatter=FORMAT_HIGHLIGHT_MAP[args.highlight]
|
|
232
239
|
)
|
|
233
240
|
)
|
|
234
241
|
else:
|
|
@@ -264,7 +271,7 @@ if args.file is not None:
|
|
|
264
271
|
)
|
|
265
272
|
|
|
266
273
|
elif args.command is not None:
|
|
267
|
-
|
|
274
|
+
argv[0] = '-c'
|
|
268
275
|
|
|
269
276
|
file = PysFileBuffer(args.command, '<arg-command>')
|
|
270
277
|
result = pys_runner(
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from .bases import Pys
|
|
2
|
+
from .constants import PYSCRIPT_PATH, CORE_PATH, LIBRARIES_PATH, SITE_PACKAGES_PATH
|
|
3
|
+
from .utils.debug import print_display, print_traceback, clear_shell
|
|
4
|
+
from .utils.decorators import inheritable, singleton
|
|
5
|
+
|
|
6
|
+
from typing import Literal
|
|
7
|
+
from types import ModuleType
|
|
8
|
+
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
pys_sys = ModuleType(
|
|
12
|
+
'sys',
|
|
13
|
+
"This is a sys module for PyScript, which provides necessary attributes, functions, and objects for the PyScript "
|
|
14
|
+
"environment. It is designed to be used within the PyScript runtime and should not be confused with the standard "
|
|
15
|
+
"Python sys module."
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
pys_sys.__running_shell__ = False
|
|
19
|
+
pys_sys.__running_breakpoint__ = False
|
|
20
|
+
pys_sys.argv = ['']
|
|
21
|
+
pys_sys.displayhook = print_display
|
|
22
|
+
pys_sys.excepthook = print_traceback
|
|
23
|
+
pys_sys.clearhook = clear_shell
|
|
24
|
+
pys_sys.exec_prefix = pys_sys.prefix = pys_sys.pyscript_path = PYSCRIPT_PATH
|
|
25
|
+
pys_sys.core_path = CORE_PATH
|
|
26
|
+
pys_sys.libraries_path = LIBRARIES_PATH
|
|
27
|
+
pys_sys.site_packages_path = SITE_PACKAGES_PATH
|
|
28
|
+
pys_sys.executable = f'"{sys.executable}" -m pyscript'
|
|
29
|
+
pys_sys.ps1 = '>>> '
|
|
30
|
+
pys_sys.ps2 = '... '
|
|
31
|
+
pys_sys.float_info = sys.float_info
|
|
32
|
+
pys_sys.int_info = sys.int_info
|
|
33
|
+
pys_sys.hash_info = sys.hash_info
|
|
34
|
+
pys_sys.stderr = sys.stderr
|
|
35
|
+
pys_sys.stdout = sys.stdout
|
|
36
|
+
pys_sys.stdin = sys.stdin
|
|
37
|
+
pys_sys.platform = sys.platform
|
|
38
|
+
pys_sys.exit = sys.exit
|
|
39
|
+
pys_sys.getrecursionlimit = sys.getrecursionlimit
|
|
40
|
+
pys_sys.getrefcount = sys.getrefcount
|
|
41
|
+
pys_sys.getsizeof = sys.getsizeof
|
|
42
|
+
pys_sys.setrecursionlimit = sys.setrecursionlimit
|
|
43
|
+
|
|
44
|
+
# added in python>=3.10.7
|
|
45
|
+
if hasattr(sys, 'set_int_max_str_digits'):
|
|
46
|
+
pys_sys.set_int_max_str_digits = sys.set_int_max_str_digits
|
|
47
|
+
|
|
48
|
+
pys_sys.path = [SITE_PACKAGES_PATH, LIBRARIES_PATH]
|
|
49
|
+
pys_sys.loading_modules = set()
|
|
50
|
+
pys_sys.modules = {}
|
|
51
|
+
pys_sys.singletons = {}
|
|
52
|
+
|
|
53
|
+
@singleton
|
|
54
|
+
@inheritable
|
|
55
|
+
class PysUndefined(Pys):
|
|
56
|
+
|
|
57
|
+
__slots__ = ()
|
|
58
|
+
|
|
59
|
+
def __new_singleton__(cls) -> 'PysUndefined':
|
|
60
|
+
global undefined
|
|
61
|
+
undefined = super(cls, cls).__new__(cls)
|
|
62
|
+
return undefined
|
|
63
|
+
|
|
64
|
+
def __repr__(self) -> Literal['undefined']:
|
|
65
|
+
return 'undefined'
|
|
66
|
+
|
|
67
|
+
def __bool__(self) -> Literal[False]:
|
|
68
|
+
return False
|
|
69
|
+
|
|
70
|
+
PysUndefined()
|
|
@@ -15,6 +15,7 @@ ENV_PYSCRIPT_NO_GIL = 'PYSCRIPT_NO_GIL'
|
|
|
15
15
|
ENV_PYSCRIPT_NO_READLINE = 'PYSCRIPT_NO_READLINE'
|
|
16
16
|
ENV_PYSCRIPT_NO_TYPECHECK = 'PYSCRIPT_NO_TYPECHECK'
|
|
17
17
|
ENV_PYSCRIPT_MAXIMUM_TRACEBACK_LINE = 'PYSCRIPT_MAXIMUM_TRACEBACK_LINE'
|
|
18
|
+
ENV_PYSCRIPT_CLASSIC_LINE_SHELL = 'PYSCRIPT_CLASSIC_LINE_SHELL'
|
|
18
19
|
|
|
19
20
|
# tokens offset
|
|
20
21
|
DOUBLE = 2**8
|
|
@@ -115,7 +116,8 @@ DEBUG = 1 << 1
|
|
|
115
116
|
SILENT = 1 << 2
|
|
116
117
|
RETURN_RESULT = 1 << 3
|
|
117
118
|
DONT_SHOW_BANNER_ON_SHELL = 1 << 4
|
|
119
|
+
CLASSIC_LINE_SHELL = 1 << 5
|
|
118
120
|
|
|
119
121
|
# parser flags
|
|
120
|
-
|
|
122
|
+
LEXER_HIGHLIGHT = 1 << 0
|
|
121
123
|
DICT_TO_JSDICT = 1 << 1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from ..bases import Pys
|
|
2
2
|
from ..buffer import PysFileBuffer
|
|
3
|
-
from ..utils.decorators import inheritable
|
|
3
|
+
from ..utils.decorators import typechecked, inheritable
|
|
4
4
|
from ..utils.generic import setimuattr
|
|
5
5
|
from ..utils.string import normstr
|
|
6
6
|
|
|
@@ -10,6 +10,7 @@ class PysEditor(Pys):
|
|
|
10
10
|
|
|
11
11
|
__slots__ = ('file', 'used', 'modified', 'wrapped', 'basename')
|
|
12
12
|
|
|
13
|
+
@typechecked
|
|
13
14
|
def __init__(self, file: PysFileBuffer) -> None:
|
|
14
15
|
self.file = file
|
|
15
16
|
self.used = False
|