just-bash 0.1.5__py3-none-any.whl → 0.1.10__py3-none-any.whl
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.
- just_bash/ast/factory.py +3 -1
- just_bash/bash.py +28 -6
- just_bash/commands/awk/awk.py +362 -17
- just_bash/commands/cat/cat.py +5 -1
- just_bash/commands/echo/echo.py +33 -1
- just_bash/commands/grep/grep.py +141 -3
- just_bash/commands/od/od.py +144 -30
- just_bash/commands/printf/printf.py +289 -87
- just_bash/commands/pwd/pwd.py +32 -2
- just_bash/commands/read/read.py +243 -64
- just_bash/commands/readlink/readlink.py +3 -9
- just_bash/commands/registry.py +32 -0
- just_bash/commands/rmdir/__init__.py +5 -0
- just_bash/commands/rmdir/rmdir.py +160 -0
- just_bash/commands/sed/sed.py +142 -31
- just_bash/commands/shuf/__init__.py +5 -0
- just_bash/commands/shuf/shuf.py +242 -0
- just_bash/commands/stat/stat.py +9 -0
- just_bash/commands/time/__init__.py +5 -0
- just_bash/commands/time/time.py +74 -0
- just_bash/commands/touch/touch.py +118 -8
- just_bash/commands/whoami/__init__.py +5 -0
- just_bash/commands/whoami/whoami.py +18 -0
- just_bash/fs/in_memory_fs.py +22 -0
- just_bash/fs/overlay_fs.py +22 -1
- just_bash/interpreter/__init__.py +1 -1
- just_bash/interpreter/builtins/__init__.py +2 -0
- just_bash/interpreter/builtins/control.py +4 -8
- just_bash/interpreter/builtins/declare.py +321 -24
- just_bash/interpreter/builtins/getopts.py +163 -0
- just_bash/interpreter/builtins/let.py +2 -2
- just_bash/interpreter/builtins/local.py +71 -5
- just_bash/interpreter/builtins/misc.py +22 -6
- just_bash/interpreter/builtins/readonly.py +38 -10
- just_bash/interpreter/builtins/set.py +58 -8
- just_bash/interpreter/builtins/test.py +136 -19
- just_bash/interpreter/builtins/unset.py +62 -10
- just_bash/interpreter/conditionals.py +29 -4
- just_bash/interpreter/control_flow.py +61 -17
- just_bash/interpreter/expansion.py +1647 -104
- just_bash/interpreter/interpreter.py +436 -69
- just_bash/interpreter/types.py +263 -2
- just_bash/parser/__init__.py +2 -0
- just_bash/parser/lexer.py +295 -26
- just_bash/parser/parser.py +523 -64
- just_bash/types.py +11 -0
- {just_bash-0.1.5.dist-info → just_bash-0.1.10.dist-info}/METADATA +40 -1
- {just_bash-0.1.5.dist-info → just_bash-0.1.10.dist-info}/RECORD +49 -40
- {just_bash-0.1.5.dist-info → just_bash-0.1.10.dist-info}/WHEEL +0 -0
just_bash/types.py
CHANGED
|
@@ -109,6 +109,14 @@ class IFileSystem(Protocol):
|
|
|
109
109
|
"""Read symbolic link target."""
|
|
110
110
|
...
|
|
111
111
|
|
|
112
|
+
async def utimes(self, path: str, atime: float, mtime: float) -> None:
|
|
113
|
+
"""Set access and modification times for a file."""
|
|
114
|
+
...
|
|
115
|
+
|
|
116
|
+
async def realpath(self, path: str) -> str:
|
|
117
|
+
"""Resolve path to absolute canonical path (resolve all symlinks)."""
|
|
118
|
+
...
|
|
119
|
+
|
|
112
120
|
def resolve_path(self, base: str, path: str) -> str:
|
|
113
121
|
"""Resolve path relative to base."""
|
|
114
122
|
...
|
|
@@ -169,6 +177,9 @@ class CommandContext:
|
|
|
169
177
|
sleep: Optional[Callable[[float], Awaitable[None]]] = None
|
|
170
178
|
"""Custom sleep implementation for testing."""
|
|
171
179
|
|
|
180
|
+
fd_contents: dict[int, str] = field(default_factory=dict)
|
|
181
|
+
"""Contents of custom file descriptors (3+), for commands like read -u."""
|
|
182
|
+
|
|
172
183
|
|
|
173
184
|
class Command(Protocol):
|
|
174
185
|
"""Protocol for command implementations."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: just-bash
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.10
|
|
4
4
|
Summary: A pure Python bash interpreter with in-memory virtual filesystem
|
|
5
5
|
Project-URL: Homepage, https://github.com/dbreunig/just-bash-py
|
|
6
6
|
Project-URL: Repository, https://github.com/dbreunig/just-bash-py
|
|
@@ -126,6 +126,7 @@ bash = Bash(
|
|
|
126
126
|
env={...}, # Environment variables
|
|
127
127
|
cwd="/home/user", # Working directory
|
|
128
128
|
network=NetworkConfig(...), # Network configuration (for curl)
|
|
129
|
+
unescape_html=True, # Auto-fix HTML entities in LLM output (default: True)
|
|
129
130
|
)
|
|
130
131
|
```
|
|
131
132
|
|
|
@@ -266,6 +267,32 @@ async def main():
|
|
|
266
267
|
asyncio.run(main())
|
|
267
268
|
```
|
|
268
269
|
|
|
270
|
+
### HTML Escaping Compatibility
|
|
271
|
+
|
|
272
|
+
When LLMs generate bash commands, they sometimes output HTML-escaped operators:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
wc -l < file.txt # LLM outputs this instead of: wc -l < file.txt
|
|
276
|
+
echo "done" && exit # Instead of: echo "done" && exit
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
By default, just-bash automatically unescapes these HTML entities (`<` → `<`, `>` → `>`, `&` → `&`, `"` → `"`, `'` → `'`) in operator positions, so LLM-generated commands work correctly.
|
|
280
|
+
|
|
281
|
+
Entities inside quotes and heredocs are preserved:
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
# These work as expected
|
|
285
|
+
await bash.exec('echo "<"') # Outputs: <
|
|
286
|
+
await bash.exec("cat << 'EOF'\n<tag>\nEOF") # Outputs: <tag>
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
To disable this behavior for strict bash compatibility:
|
|
290
|
+
|
|
291
|
+
```python
|
|
292
|
+
bash = Bash(unescape_html=False)
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
|
|
269
296
|
## Security
|
|
270
297
|
|
|
271
298
|
- **No native execution** - All commands are pure Python implementations
|
|
@@ -395,6 +422,18 @@ curl (disabled by default)
|
|
|
395
422
|
bash sh
|
|
396
423
|
```
|
|
397
424
|
|
|
425
|
+
## Test Results
|
|
426
|
+
|
|
427
|
+
Test suite history per commit (spec_tests excluded). Each `█` ≈ 53 tests.
|
|
428
|
+
|
|
429
|
+
```
|
|
430
|
+
Commit Date Passed Failed Skipped Graph
|
|
431
|
+
c816182 2026-01-25 2641 3 2 ████████████████████████████████████████████████▒░
|
|
432
|
+
e91d4d8 2026-01-26 2643 2 2 ████████████████████████████████████████████████▒░
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
`█` passed · `▒` failed · `░` skipped
|
|
436
|
+
|
|
398
437
|
## License
|
|
399
438
|
|
|
400
439
|
Apache 2.0
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
just_bash/__init__.py,sha256=tiXmLS8Go-RFG7Q6Klqfk9yV0ied-Ik12FumuToA_hk,999
|
|
2
|
-
just_bash/bash.py,sha256=
|
|
2
|
+
just_bash/bash.py,sha256=SAx4oC2YS48hSsM5nzMzV3ARq1fX4YoYazf041h5_E8,7662
|
|
3
3
|
just_bash/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
just_bash/types.py,sha256=
|
|
4
|
+
just_bash/types.py,sha256=z0DEYwb-XHnW2qQFnRuOeos-i_7V8lKHX_1O-TSMU0k,5036
|
|
5
5
|
just_bash/ast/__init__.py,sha256=yItXk_RIPHj3Op6JKBKjxdyZaxW_1lTg5d-L-KHgDLc,4570
|
|
6
|
-
just_bash/ast/factory.py,sha256=
|
|
6
|
+
just_bash/ast/factory.py,sha256=Uycslt6UrHeiQfwc8Tyo8BJaM4tE_hNBrxfEhNBiHKI,8328
|
|
7
7
|
just_bash/ast/types.py,sha256=o8MdwIirjAcA1HgvQaOmrK5iwSWpYOlvvnRdkbvTBck,26574
|
|
8
8
|
just_bash/commands/__init__.py,sha256=sKNb1FjmMY56svg4BJuVgm0ljhbpVl_tMKcx3jFNdE8,523
|
|
9
|
-
just_bash/commands/registry.py,sha256=
|
|
9
|
+
just_bash/commands/registry.py,sha256=94TNVIUlUELDDzGg5hMc0aqx86mm6lk-7iYiFqnnoqI,22813
|
|
10
10
|
just_bash/commands/argv/__init__.py,sha256=QrGig0hlCcxkOYGzqWsw_bWVOFwxxLLeukU7wAiGDp4,85
|
|
11
11
|
just_bash/commands/argv/argv.py,sha256=Qbn7gIjplMA3HSB7scnLd0wOerjcwuTfg_m5HmyTYIE,560
|
|
12
12
|
just_bash/commands/awk/__init__.py,sha256=ZpgMK6A0QsApd3GyCIvpkmL3iPf7FaUPav13bdUsZhk,89
|
|
13
|
-
just_bash/commands/awk/awk.py,sha256=
|
|
13
|
+
just_bash/commands/awk/awk.py,sha256=Akt6g2DY6WzZ032mgfoRCW3bkJ3nNsjxvW2k7A_o-bU,54535
|
|
14
14
|
just_bash/commands/base64/__init__.py,sha256=0hKkKgCi7m_TDz83hd3KaFJgjmBDjIqfLx7bctx98xA,101
|
|
15
15
|
just_bash/commands/base64/base64.py,sha256=UtzE0e-3MAYm_61anfI3Vxm36UlOB4X9fobl9ySV8s0,4927
|
|
16
16
|
just_bash/commands/basename/__init__.py,sha256=mEapj7eo70RrVGjwhVj9S9idWrBxptOPu6uV6z_cteo,94
|
|
@@ -18,7 +18,7 @@ just_bash/commands/basename/basename.py,sha256=gwN-fbw7W1brCsP3qfnHBhq50ZNYcpk6g
|
|
|
18
18
|
just_bash/commands/bash/__init__.py,sha256=Ex1nZTRGKKGnQgfaimqUClcnsa-cFoUAU6CEe63cpo8,110
|
|
19
19
|
just_bash/commands/bash/bash.py,sha256=HNKijbjCnUQL3clRehnkL0pDiBd94xaMYTzylmt-3RU,6790
|
|
20
20
|
just_bash/commands/cat/__init__.py,sha256=XlNjapD9s5p_xVRKj1ejpTPd9sZQEIrlkzsHKsqlfgs,89
|
|
21
|
-
just_bash/commands/cat/cat.py,sha256=
|
|
21
|
+
just_bash/commands/cat/cat.py,sha256=PhdBFc3sewaPeUjBiIt45MIjKxaxFbYvmZ-f10o-hp8,6106
|
|
22
22
|
just_bash/commands/checksum/__init__.py,sha256=gUaSlBm6lr68tFCAZ_O20CsvgISaRi2-gseP6MxNp_M,163
|
|
23
23
|
just_bash/commands/checksum/checksum.py,sha256=uUuKgMRrYGJMgEd7Ix2QlGQ0IT1-8njEqOreINCYPgc,5822
|
|
24
24
|
just_bash/commands/chmod/__init__.py,sha256=egGRvaYIeEVDaq2mIQUZE3rtw6px1EGTNDezCLx_7Cc,97
|
|
@@ -44,7 +44,7 @@ just_bash/commands/dirname/dirname.py,sha256=42Axi-oosF9qUtaf__YFowTLWT8pjCO8xAh
|
|
|
44
44
|
just_bash/commands/du/__init__.py,sha256=9bZp6U1xY4ADt2j0BsDOSf5DdK3pso7hqe8YGQsNG68,70
|
|
45
45
|
just_bash/commands/du/du.py,sha256=qmwMpDhzwTLFTLAd85SAdstp7YYFPJ2mRoHqAOzxUVk,5118
|
|
46
46
|
just_bash/commands/echo/__init__.py,sha256=Sx2A-cuaoyHfuLg_4O34VmnoxWbgSzbX-N-JgwrsHxI,93
|
|
47
|
-
just_bash/commands/echo/echo.py,sha256=
|
|
47
|
+
just_bash/commands/echo/echo.py,sha256=5zxj8fpywCxqKuQThVHBqKKhMD0_YFpWRKCXZRjaa4Y,5044
|
|
48
48
|
just_bash/commands/env/__init__.py,sha256=pa6xN-fb05ebTZfYnhgNiIUz8gURMAeDL4bwkpG6F1w,124
|
|
49
49
|
just_bash/commands/env/env.py,sha256=pJRuxN-LnjyJXR2qt6eydqvadMwE65LFYdpagCQyxZk,5278
|
|
50
50
|
just_bash/commands/expand/__init__.py,sha256=8O92n7Xx000IlTI8-7puKYPrAzO6kT-nSqPP3kWA7Y8,136
|
|
@@ -58,7 +58,7 @@ just_bash/commands/find/find.py,sha256=I2Qmn3cSUvyiVfdh2XIYJqACpe2ggiPdxnNhPlN2d
|
|
|
58
58
|
just_bash/commands/fold/__init__.py,sha256=R0PCq0oBJ5PWEXIeRz-M1vuNkoRdvWLaSSiXyEx9nKQ,78
|
|
59
59
|
just_bash/commands/fold/fold.py,sha256=QWGehi7vdVhcAGxaAZ4lWYHAuWquduhFb515zpKL09M,5417
|
|
60
60
|
just_bash/commands/grep/__init__.py,sha256=Ho400PkJRLXBf5Rt7tYF4uiS8Dbv4VhWcfkQNzqgxB4,153
|
|
61
|
-
just_bash/commands/grep/grep.py,sha256=
|
|
61
|
+
just_bash/commands/grep/grep.py,sha256=qVlGv74EuX5K8jur5Vxqt-i5hraf_2rmbhq4xXx5VGE,22032
|
|
62
62
|
just_bash/commands/head/__init__.py,sha256=UTgOtL29ZxbqIKjEXC0EjaxmlnWD8dYFFbW4YruJCDI,93
|
|
63
63
|
just_bash/commands/head/head.py,sha256=41Ib8Z5uIBiiISWB-My9CAK7nDfpQJnnS7vkRwkA2yo,6083
|
|
64
64
|
just_bash/commands/help/__init__.py,sha256=F-NY6nt_1vpSm4qPDd93-muE6Pz_K68wy3-_PpMNvlE,78
|
|
@@ -82,32 +82,36 @@ just_bash/commands/mv/mv.py,sha256=nuzB_yzGcrQMFOCxqYboitz4DEQkxGafOWDlBRybPE0,4
|
|
|
82
82
|
just_bash/commands/nl/__init__.py,sha256=OPZWDtLn3MGvgrWWggTfQcJuxsfJEbAFhqSb62Av8Ew,70
|
|
83
83
|
just_bash/commands/nl/nl.py,sha256=cXsxH_b0YF3C4Gd3m180t2hXQKURCHK44i1I4KKzUPM,6226
|
|
84
84
|
just_bash/commands/od/__init__.py,sha256=cfacRaC8aJRfnoc-lnseNT3h7Ra8XERqzbDu78uh-CM,70
|
|
85
|
-
just_bash/commands/od/od.py,sha256=
|
|
85
|
+
just_bash/commands/od/od.py,sha256=TAFe8Rci5hUGo0PY0n6NCL6gCbJfaPXy5v-Di96rDKs,10058
|
|
86
86
|
just_bash/commands/paste/__init__.py,sha256=gpVl4JgzzQCdehehgTAsfhPer-9JbRUGxcHO4qR1pRo,82
|
|
87
87
|
just_bash/commands/paste/paste.py,sha256=DrSFp0yv5cxhpUXow9c9HLZKNU5LApgkERfxd0sK9q8,3342
|
|
88
88
|
just_bash/commands/printf/__init__.py,sha256=Y2GE9w1QBZQmcxn6U7CrRyPUlfl3S3xDUO6_JMgHaXA,86
|
|
89
|
-
just_bash/commands/printf/printf.py,sha256=
|
|
89
|
+
just_bash/commands/printf/printf.py,sha256=e8QLg6eNw0qivvRkRNSAKFT8YXglN3mvDMdMBW79ais,13038
|
|
90
90
|
just_bash/commands/pwd/__init__.py,sha256=28Z9r9nceiLy3jSJnT_vjWNYBnzquxqW6-a6TpzV2AE,89
|
|
91
|
-
just_bash/commands/pwd/pwd.py,sha256=
|
|
91
|
+
just_bash/commands/pwd/pwd.py,sha256=S5RH7QCJxyffSvSXpVeH9PrWQUfJKH8yOmBAq6xItbg,1696
|
|
92
92
|
just_bash/commands/read/__init__.py,sha256=uuekWKV4Ca5wN6qKgA6Tf1ckDNNASskpVMlHF7cIR98,85
|
|
93
|
-
just_bash/commands/read/read.py,sha256=
|
|
93
|
+
just_bash/commands/read/read.py,sha256=shTxzJNG7TZMfYQcJ5Dzwpf1vUezU6nTSqM5DuAe4yI,13270
|
|
94
94
|
just_bash/commands/readlink/__init__.py,sha256=07eL4MP_r5FoxwTKAhPnnQwN3H_ljgeD3HgP-o_0x2c,94
|
|
95
|
-
just_bash/commands/readlink/readlink.py,sha256
|
|
95
|
+
just_bash/commands/readlink/readlink.py,sha256=l5zLfUysICa8G3XPXg_pCs9ZwoGd9oLUmhpdR5bvJUo,2638
|
|
96
96
|
just_bash/commands/rev/__init__.py,sha256=zwR9cCm_kUU2cEv8sdmZP7zyVt8Kw-cXABVzI8iBydE,74
|
|
97
97
|
just_bash/commands/rev/rev.py,sha256=UKXuKaoo7eoDO_MnWbQeQzKpeXOcOgogC_XGqfJKG-E,2369
|
|
98
98
|
just_bash/commands/rg/__init__.py,sha256=xh2mUedPwkMjHuCbQIEYv0FQZIQ0HE1Er1wS3WyRpWk,80
|
|
99
99
|
just_bash/commands/rg/rg.py,sha256=otv28NCA40dWnqT-zOUHIpNDiBo5fA8neLBUok-_1EI,40196
|
|
100
100
|
just_bash/commands/rm/__init__.py,sha256=rKzvwJDnXU4FJTvBnMiFQVRWMNsml1lJYviOSPi7bv4,85
|
|
101
101
|
just_bash/commands/rm/rm.py,sha256=iscJLQ4ZLCE80ya0MBdnZRfFNxNpRPc2y3zrcOmqfAU,3368
|
|
102
|
+
just_bash/commands/rmdir/__init__.py,sha256=3TXJGuyVqagMDQwqVuuadMOjbj1HPPaQa6R7awyzHac,82
|
|
103
|
+
just_bash/commands/rmdir/rmdir.py,sha256=9OdD5inMxoeVOQdReX__5jnATM4xizOSSEsfBh7zd4E,5073
|
|
102
104
|
just_bash/commands/search_engine/__init__.py,sha256=-OizNEms1HS7nih5YERemvIIdrDrjiS04YqH1oQb0tQ,331
|
|
103
105
|
just_bash/commands/search_engine/matcher.py,sha256=I-fDRenZEGCESwDwEFkqirXuiKdVbtNiUrZ9eVOzeLg,5091
|
|
104
106
|
just_bash/commands/search_engine/regex.py,sha256=8_MSSI5JgScRjl3KJfMWNRhxhj8V0HCdaKu6sBnwnSs,4782
|
|
105
107
|
just_bash/commands/sed/__init__.py,sha256=qp6p9u6dao-qvf68EAU3wB8dPG5te6Vv0gNnIYehmHE,89
|
|
106
|
-
just_bash/commands/sed/sed.py,sha256=
|
|
108
|
+
just_bash/commands/sed/sed.py,sha256=GH7L1KMv7tQ9Tc7l_ffOwISKzPXx9d-TJT3jMglcPKA,35437
|
|
107
109
|
just_bash/commands/seq/__init__.py,sha256=WoS9bcCPBCi4kEAwqmUSyxo-1ekumaJ-QFJYLNswFQQ,89
|
|
108
110
|
just_bash/commands/seq/seq.py,sha256=cBfVJqbZMmXXXUA2FcXDJk8H2yZpTXqKLgy6-f5vciE,6485
|
|
109
111
|
just_bash/commands/shell/__init__.py,sha256=7FUmyHPZv-ujikzHzks8SRTPYScfs9vr_9KJ8Ny72XM,189
|
|
110
112
|
just_bash/commands/shell/shell.py,sha256=NEuSVfXz-L-0L2ev6M5ir4S9z6TvEN8-mIJgSlV1wjg,6753
|
|
113
|
+
just_bash/commands/shuf/__init__.py,sha256=0xLdf5wRMK4vfOoCwDWdOisHy09PGuJnkIp0oRnBhjM,78
|
|
114
|
+
just_bash/commands/shuf/shuf.py,sha256=BDGkvKqYvAq1I6ZGetBfvOzsaSjznwfIc2vPZ4yhoSs,8523
|
|
111
115
|
just_bash/commands/sleep/__init__.py,sha256=c2BuhU78G38aj6zOZwplWhtqmbf0ydfv8y_cIdc9N3I,82
|
|
112
116
|
just_bash/commands/sleep/sleep.py,sha256=tKXLGndy43nDgT-gO5jLnclkmMY_k2mU7cZh3Hxcb2M,1710
|
|
113
117
|
just_bash/commands/sort/__init__.py,sha256=97Zp6z7YGf6HLvhVYsN9atRXUDfCTxr7GrfsQmY0fBY,93
|
|
@@ -117,7 +121,7 @@ just_bash/commands/split/split.py,sha256=t9BCYeA48nP4WjFN5vnmasj4ooQhTvMnPWHiyWM
|
|
|
117
121
|
just_bash/commands/sqlite3/__init__.py,sha256=U2OyLiCUMsbRfRt1ydX2TMjCZBjPHFRrH-E15avelA8,116
|
|
118
122
|
just_bash/commands/sqlite3/sqlite3_cmd.py,sha256=pX4x_g5O2T12SiVTJEbQibrZ6dj2m1btDjZUWXrjApI,15790
|
|
119
123
|
just_bash/commands/stat/__init__.py,sha256=AZWUFpGS_TzgkXZ75f7VT-Ge9Y3EJsFtUZg-nDdpN08,78
|
|
120
|
-
just_bash/commands/stat/stat.py,sha256=
|
|
124
|
+
just_bash/commands/stat/stat.py,sha256=xUjauxs8blKlPdVwCfTGhm9czXArhnFNtO1PdJ3l8LI,5042
|
|
121
125
|
just_bash/commands/strings/__init__.py,sha256=ujX0Xp2K9C-mATONU4GyYPG_UiGE5OiCGNm-JRjCDDg,90
|
|
122
126
|
just_bash/commands/strings/strings.py,sha256=wTcWkO75fabJJ-JVjAn2SASUznlRtuEhEi6U7zT6WRo,5397
|
|
123
127
|
just_bash/commands/tac/__init__.py,sha256=zzP9GYFRNdfTlPQWyzBAiAinmAbPd3KT-tBozAVqXFM,74
|
|
@@ -128,10 +132,12 @@ just_bash/commands/tar/__init__.py,sha256=tfy1xL2nrVx4L8fm-igMQn3CVfgkPHZVz95iN9
|
|
|
128
132
|
just_bash/commands/tar/tar.py,sha256=ZBVYoGdKuTp3l3LUHOpOWVXoF_h7duecsY2m42poyVI,38343
|
|
129
133
|
just_bash/commands/tee/__init__.py,sha256=CqKf3u-TMO-cwWFAYLtuwKLxRe96gbELizTnwkGXvJw,74
|
|
130
134
|
just_bash/commands/tee/tee.py,sha256=M0YppP2fHq8nzDH0rPyot3jWaEQRBFURzjp_Drj43iU,1896
|
|
135
|
+
just_bash/commands/time/__init__.py,sha256=mQ9a4qqgUkPFnt5hOdTIFhm1m1w1j46m1_QottzqmEU,78
|
|
136
|
+
just_bash/commands/time/time.py,sha256=r7KUl90cuFVr62IfT7VHMFpDkYgE0tSJ1y_2XfrHaHg,2148
|
|
131
137
|
just_bash/commands/timeout/__init__.py,sha256=0Fut3Ss5MHRlRzPklxWKf76IEbw73sKqzEoLJIZOJmY,90
|
|
132
138
|
just_bash/commands/timeout/timeout.py,sha256=vVeW9bLEECWPxrmNLlCFeCCccWLflZu-VLF67VOICIo,6939
|
|
133
139
|
just_bash/commands/touch/__init__.py,sha256=CXCkt-2zysVVp4jAXio8EJdDKdbUKxe4AVL2TrelL-E,97
|
|
134
|
-
just_bash/commands/touch/touch.py,sha256=
|
|
140
|
+
just_bash/commands/touch/touch.py,sha256=Xm5A4rHbpuD_teOqmaM1HAb1a0ReE9TwqEdYDcGTCV8,7415
|
|
135
141
|
just_bash/commands/tr/__init__.py,sha256=0RLKFP0Sh_RNncKdTTzn4Ziyb0OAV1wrhRlhjF9RufM,85
|
|
136
142
|
just_bash/commands/tr/tr.py,sha256=JhOtWw-aziSKN1Ei4QXJvbeO4zN5ejOnhOT_oXIng20,9905
|
|
137
143
|
just_bash/commands/tree/__init__.py,sha256=wO-3O1X1zrdi_u-MGRE-bFjLbu5IsKxJBjUQoCkZ83c,78
|
|
@@ -144,6 +150,8 @@ just_bash/commands/wc/__init__.py,sha256=rvAXLKu6x5_cIZiibQDrFRL_1zqahrtEjAgo8v8
|
|
|
144
150
|
just_bash/commands/wc/wc.py,sha256=9-6ukug5nZlmS4T8AaGsuNaj27Js6Af41nA9OyxPF3Q,5881
|
|
145
151
|
just_bash/commands/which/__init__.py,sha256=K0GaqdG-4KR_KVW0ue3fKGPy5OBLyJsDdiOVCwe5FQA,82
|
|
146
152
|
just_bash/commands/which/which.py,sha256=dxFcFF2s0q5d_xNLD7J4A2vneMTPcJJVXnQALsysr1E,1525
|
|
153
|
+
just_bash/commands/whoami/__init__.py,sha256=l5pI_4o14OAlj_LeCJjoZLIN3Tw1W7kG0e0qX3CPRQI,86
|
|
154
|
+
just_bash/commands/whoami/whoami.py,sha256=9MJPWTMjdmUBtOdmNjNtg4TJaDm5pTN05S84kNoxCXk,398
|
|
147
155
|
just_bash/commands/xan/__init__.py,sha256=6bOPK4bAIhyw2rLEkpBFTjN3BeJeyu7Uh7qVVR0RJBM,88
|
|
148
156
|
just_bash/commands/xan/xan.py,sha256=1-TI4pcFqPHTibV_aDBohJX5APZJCLqldq0pjHeEfrc,50117
|
|
149
157
|
just_bash/commands/xargs/__init__.py,sha256=LSUy4ZEM5X_1XPNkhuLZNDp8N8ujLTg0UXehNIyWT4c,82
|
|
@@ -151,43 +159,44 @@ just_bash/commands/xargs/xargs.py,sha256=Vfgo9buACoBvvAvjjUTawcFDjAc3WUEShvqWxpg
|
|
|
151
159
|
just_bash/commands/yq/__init__.py,sha256=2y80NUG8-011i_WrKC8T4Fl1V_RVsqDzYHurz3Bb1-k,70
|
|
152
160
|
just_bash/commands/yq/yq.py,sha256=Av6QQSHOvV5pp11lgvK22bJR0SEzQNuNkVvXbznc5a0,27519
|
|
153
161
|
just_bash/fs/__init__.py,sha256=hEDypfPi7T7tHOIyf97JOcoryKjd9fF_XAShDUyGj58,636
|
|
154
|
-
just_bash/fs/in_memory_fs.py,sha256=
|
|
162
|
+
just_bash/fs/in_memory_fs.py,sha256=WGC55k99GnBCxWMfjlgoQCcqP4LSSM_nCnwIsdN1rXc,22374
|
|
155
163
|
just_bash/fs/mountable_fs.py,sha256=xhYLRllN1mCScL4tG8q0JXyanEntyZLxMYK6hvc3Pg4,17774
|
|
156
|
-
just_bash/fs/overlay_fs.py,sha256=
|
|
164
|
+
just_bash/fs/overlay_fs.py,sha256=MSeoC6ZumLOKjZspnH6Bp8ma_x5NGsvsKnl15mHHnPk,31379
|
|
157
165
|
just_bash/fs/read_write_fs.py,sha256=7auXvArIuKlmbQGxPNSpV8tR48tJp4mfqUhrBNEpbXc,14813
|
|
158
|
-
just_bash/interpreter/__init__.py,sha256=
|
|
159
|
-
just_bash/interpreter/conditionals.py,sha256=
|
|
160
|
-
just_bash/interpreter/control_flow.py,sha256=
|
|
166
|
+
just_bash/interpreter/__init__.py,sha256=y9zyV5QpuWEQZPvKCQ4yF3gjsmPrcfOY7bqHgoMbg7E,805
|
|
167
|
+
just_bash/interpreter/conditionals.py,sha256=rlOKDSiCtHftg6Medn9ypCJ6aMNpek_Lneprq5HFdDg,11984
|
|
168
|
+
just_bash/interpreter/control_flow.py,sha256=QaDxWV6DwmznZjf-gFtiZt5oUsE1rB3rdsP6UP2KOb8,13661
|
|
161
169
|
just_bash/interpreter/errors.py,sha256=Nz_dbvGxCybfnxFSTxKD5QIEQBz0Y6SrRA4KDhq2n20,3585
|
|
162
|
-
just_bash/interpreter/expansion.py,sha256=
|
|
163
|
-
just_bash/interpreter/interpreter.py,sha256=
|
|
164
|
-
just_bash/interpreter/types.py,sha256=
|
|
165
|
-
just_bash/interpreter/builtins/__init__.py,sha256=
|
|
170
|
+
just_bash/interpreter/expansion.py,sha256=m9bZCnza_G5IMyYyqaIRU0H9suzN7lBzTSXkY1ySOxc,103338
|
|
171
|
+
just_bash/interpreter/interpreter.py,sha256=3lAaqhn8_TdyXTfQ_fYwN5eggKU-r5eTaGu-VGfRb6I,49347
|
|
172
|
+
just_bash/interpreter/types.py,sha256=qwPUMKm5eWTofkszNWsFXO-5bOaZ72jjVldCQnGqAvM,12952
|
|
173
|
+
just_bash/interpreter/builtins/__init__.py,sha256=rw2BYjzrBxNl_nhPPiZ9tcw8Gu-79Me0XhGr2m6PtCQ,2528
|
|
166
174
|
just_bash/interpreter/builtins/alias.py,sha256=b575DQKcNbT2uNK-7YBsPEyNZ54-YjjduUaoQ6-z150,4017
|
|
167
175
|
just_bash/interpreter/builtins/cd.py,sha256=dsoTnilC1BibToVx-KeuTA1x1HDNkZc5ikUN24vV70Y,2071
|
|
168
|
-
just_bash/interpreter/builtins/control.py,sha256=
|
|
169
|
-
just_bash/interpreter/builtins/declare.py,sha256=
|
|
176
|
+
just_bash/interpreter/builtins/control.py,sha256=4Oj1J2hzsqCpE6ydStIAzKQ0INY2HoGH27miQb2epP4,3497
|
|
177
|
+
just_bash/interpreter/builtins/declare.py,sha256=L5zDt1m1jyGoR7JibBMcRPPNVocPeFY0ZZIGCt5Vr4k,21005
|
|
170
178
|
just_bash/interpreter/builtins/export.py,sha256=ct_nl9oUiKL0j0exS0n8C0xWazj9whZhLmIg26tk5U0,1715
|
|
171
|
-
just_bash/interpreter/builtins/
|
|
172
|
-
just_bash/interpreter/builtins/
|
|
179
|
+
just_bash/interpreter/builtins/getopts.py,sha256=dqzYlKQC97VfoRfI132VzrS335MCj_QMLVlg0Ly_3O4,5649
|
|
180
|
+
just_bash/interpreter/builtins/let.py,sha256=Y1DdDWCp7BHQFckhKdezSmW5WZOwVlBNrhq55YQ0a6k,1358
|
|
181
|
+
just_bash/interpreter/builtins/local.py,sha256=EWbN_AN7uxcZTjS5UDgbw7xbONI8nP6dIizfcbzrsmw,4139
|
|
173
182
|
just_bash/interpreter/builtins/mapfile.py,sha256=EKgpzaqzGZ_TdrYYT-MXy4LzTYK_yVBM1P-9icKhjaQ,4821
|
|
174
|
-
just_bash/interpreter/builtins/misc.py,sha256=
|
|
175
|
-
just_bash/interpreter/builtins/readonly.py,sha256
|
|
176
|
-
just_bash/interpreter/builtins/set.py,sha256=
|
|
183
|
+
just_bash/interpreter/builtins/misc.py,sha256=r9OzMvecNSqVwHgOXzoJ400-oZ7b-LY-mCPz04Ao3xU,12054
|
|
184
|
+
just_bash/interpreter/builtins/readonly.py,sha256=k8Wm4rHsqeZaJuhGnAzKgx1L9FyO5LUCEaJZJjhg95g,3371
|
|
185
|
+
just_bash/interpreter/builtins/set.py,sha256=zv0-eOMkVn1FAMSVlD5jB7JE7UmE6Xti2RUi5QMAr1A,9590
|
|
177
186
|
just_bash/interpreter/builtins/shopt.py,sha256=c43nz8Z0aKonikN-zP3YkmwfGgvL4orlFe8OxOY1lVo,6362
|
|
178
187
|
just_bash/interpreter/builtins/source.py,sha256=smd2tS-_lX7zHgAtQSPvVRb8fLYwg2vmfTC4dItO3Qk,3775
|
|
179
|
-
just_bash/interpreter/builtins/test.py,sha256=
|
|
180
|
-
just_bash/interpreter/builtins/unset.py,sha256=
|
|
188
|
+
just_bash/interpreter/builtins/test.py,sha256=CR9It5nFilGHO9td1zI21mlq4kaZYJFF3L0Bn3GIdgQ,13548
|
|
189
|
+
just_bash/interpreter/builtins/unset.py,sha256=uod4SS5K0kUQiz1N-v9j-4jvUFiW0pmcTWYUcnxKnJU,3560
|
|
181
190
|
just_bash/network/__init__.py,sha256=QviRrsoIAuxyCrZn4AYgPW3S9g0X4x_foH2M9-9VIiY,36
|
|
182
|
-
just_bash/parser/__init__.py,sha256=
|
|
183
|
-
just_bash/parser/lexer.py,sha256=
|
|
184
|
-
just_bash/parser/parser.py,sha256=
|
|
191
|
+
just_bash/parser/__init__.py,sha256=NnVIxkYPqEtOuuOiJJWvLDwmZCK46UiZSWz7au_kdBI,691
|
|
192
|
+
just_bash/parser/lexer.py,sha256=nd7tWkciKyLgutb-xTS1Ezk1HxsHYrnWOW5cH3VCgOQ,39070
|
|
193
|
+
just_bash/parser/parser.py,sha256=KQPQ_w0wQ4Rhf_Szj6MbM1GrBzKeifJtP5a3yAow2Uw,98099
|
|
185
194
|
just_bash/query_engine/__init__.py,sha256=EflFZo-yX_ZPQkksKCeewx_Gz63JdMs01bc3GUq2H_4,1661
|
|
186
195
|
just_bash/query_engine/evaluator.py,sha256=L0n5avw3zLPD5OZSRiCbg2mmN-Rb-bk3ip6nVOQKJLM,20539
|
|
187
196
|
just_bash/query_engine/parser.py,sha256=pHw-il3AoaIbuvL9MBuxgv4BVsPCJjTl3OHEZmqenE8,19098
|
|
188
197
|
just_bash/query_engine/tokenizer.py,sha256=PfaHJ8Y8N_KkFCiti7iGP4Le4A2JjAhg3OtAMJuNIBo,10161
|
|
189
198
|
just_bash/query_engine/types.py,sha256=zhUj2FvClAANpWvcvXSyvWBxT-g2jAczCiE7kNQzHrM,7272
|
|
190
199
|
just_bash/query_engine/builtins/__init__.py,sha256=Rs7TjJ0rjFmL9GyQXBbU4H0k9WLbgDlT31_mhpd-1aw,40315
|
|
191
|
-
just_bash-0.1.
|
|
192
|
-
just_bash-0.1.
|
|
193
|
-
just_bash-0.1.
|
|
200
|
+
just_bash-0.1.10.dist-info/METADATA,sha256=5xDJZhgF9TO0Im9qprAyqomg-CYzlCpbg6MqCgrd8VM,14294
|
|
201
|
+
just_bash-0.1.10.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
202
|
+
just_bash-0.1.10.dist-info/RECORD,,
|
|
File without changes
|