Skip to content

zinzilulo/magic-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

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

Magic.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages