From sciris
Uses Sciris utilities for merging dicts/lists, type conversion/checking, fuzzy matching, file downloads, shell commands, dynamic imports, pretty-printing, and debugging.
npx claudepluginhub sciris/scirisThis skill uses the workspace's default tool permissions.
Reference for type handling, downloading, and other tools. See full tutorial: `docs/tutorials/tut_utils.ipynb`.
Provides code patterns for basic Sciris features: array operations like findinds, date-formatted plotting, objdict containers, object save/load, and parallelization.
Invokes MCP tools via tool-executor for semantic code search, refactoring, AI research, image generation, and library docs when basic tools fall short.
Generates and executes Python code using tools from gentools/ and mcptools/ via ipybox IPython execution. Activated on explicit 'use codeact skill' requests.
Share bugs, ideas, or general feedback.
Reference for type handling, downloading, and other tools. See full tutorial: docs/tutorials/tut_utils.ipynb.
If you need more detail, use your MCP tools (Context7 or GitMCP) to look up current Sciris documentation, or consult the other Sciris skills.
def my_func(json=None, **kwargs):
default = dict(a=1, b=2)
output = sc.mergedicts(default, json, kwargs) # None inputs are OK
return output
sc.mergelists(['a', 'b'], 'c', None, {'d': 1}) # ['a', 'b', 'c', {'d': 1}]
sc.tolist('single') # ['single'] — safe to iterate
sc.tolist(['already']) # ['already'] — unchanged
sc.toarray(2) # array([2]) — handles scalars (np.array doesn't)
sc.toarray([1, 2, 3]) # array([1, 2, 3])
sc.cat(1, [2, 3], np.array([4, 5])) # array([1, 2, 3, 4, 5]) — concatenates
output = sc.autolist()
for item in data:
output += f'Result: {item}' # Appends automatically with +=
sc.isnumber(3) # True
sc.isnumber(3.14j) # True
sc.isnumber('3') # False
sc.suggest('Scirys', ['Python', 'NumPy', 'Sciris'], n=2) # ['Sciris']
data = sc.download(urls, save=False) # Download to memory (parallel)
sc.download(urls, save=True) # Download to disk
out = sc.runcommand('ls *.py', printoutput=True) # Use instead of Popen()
old = sc.importbypath('sim_v1/sim.py') # Import without sys.path
new = sc.importbypath('sim_v2/sim.py') # Two modules with same name
sc.help('interpol') # Search all Sciris source code
sc.help('interpol', context=True) # With surrounding context
sc.traceback() # Get exception traceback as string
sc.loadtext('file.py') # Load text file as string
sc.pp(obj) # Pretty-print any object