Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Magic List

This library solves your need to write JavaScript in Python.

When should I use it?

In most cases, you shouldn’t.

How should I use it?

See the demo in main.py.

Expect:

Initial widgets:
[Widget(name='alpha', category='system', enabled=True), Widget(name='beta', category='system', enabled=True), Widget(name='gamma', category='user', enabled=True)]

Disable all system widgets:
[DISABLE] beta
[DISABLE] alpha

State after disabling system widgets:
[Widget(name='alpha', category='system', enabled=False), Widget(name='beta', category='system', enabled=False), Widget(name='gamma', category='user', enabled=True)]

Rename widgets whose name starts with 'g' or 'd':
[RENAME]  gamma -> renamed

State after rename:
[Widget(name='alpha', category='system', enabled=False), Widget(name='beta', category='system', enabled=False), Widget(name='renamed', category='user', enabled=True)]

Enable all widgets NOT in category 'system':
[ENABLE]  renamed

State after reverse selection:
[Widget(name='alpha', category='system', enabled=False), Widget(name='beta', category='system', enabled=False), Widget(name='renamed', category='user', enabled=True)]

Delete first disabled widget:
[DELETE]  alpha

State after delete:
[Widget(name='beta', category='system', enabled=False), Widget(name='renamed', category='user', enabled=True)]

Calling methods on an empty selection (no crash):

Final widgets:
[Widget(name='beta', category='system', enabled=False), Widget(name='renamed', category='user', enabled=True)]

Requirements

Python 3.10+

Tale

Earlier versions relied on inspect.getsource() and runtime callsite parsing; the current implementation is stable and unlikely to change.

About

ECMAScript-style lists in Python.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages