beaker-notebook 2.0.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.
- beaker_notebook-2.0.0/.gitignore +74 -0
- beaker_notebook-2.0.0/LICENSE.txt +9 -0
- beaker_notebook-2.0.0/PKG-INFO +85 -0
- beaker_notebook-2.0.0/README.md +43 -0
- beaker_notebook-2.0.0/pyproject.toml +293 -0
- beaker_notebook-2.0.0/src/beaker_kernel/__init__.py +37 -0
- beaker_notebook-2.0.0/src/beaker_notebook/__init__.py +172 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/__init__.py +13 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/api/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/api/handlers.py +84 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/api/integrations.py +299 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/api/notebook.py +118 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/api/subkernels.py +70 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/base.py +377 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/dev_app.py +145 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/handlers.py +608 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/notebook_app.py +13 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/server_app.py +16 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/beaker.svg +101 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/favicon.ico +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/index.html +15 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BaseQueryCell-BkYxksI5.js +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerAdmin-CmINXWMq.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerAdmin-DZrn90Yo.js +531 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerNotebookPanel-DlwDdhcR.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerNotebookPanel.vue_vue_type_style_index_0_lang-DVEpDAgJ.js +2352 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerQueryCell-CLP87HiT.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerQueryCell.vue_vue_type_style_index_0_lang-CsPbh_vB.js +364 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerRawCell-CYX7jUwf.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BeakerRawCell.vue_vue_type_style_index_0_lang-C0LQPDG_.js +845 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/BrainIcon-Cu5xmR-n.js +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/ChatInterface-CQS-IhF0.js +1065 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/ChatInterface-DKDl_3ZW.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/DevInterface-CX6JI9k4.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/DevInterface-D89vpZ2M.js +1171 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/IntegrationPanel-DKP_5B7W.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/IntegrationPanel.vue_vue_type_style_index_0_lang-c-zr1Dig.js +762 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/IntegrationsInterface-BlUeSxlA.js +1656 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/IntegrationsInterface-BzFBE6eg.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/MediaPanel-DNCoIEA4.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/MediaPanel.vue_vue_type_style_index_0_lang-qeorC2Wr.js +709 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NextBeakerQueryCell-C426bZbZ.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NextBeakerQueryCell.vue_vue_type_style_index_0_lang-COubACPH.js +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NextNotebookInterface-CnSA3fCt.js +1090 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NextNotebookInterface-DxBYBP58.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NotebookInterface-B63z6cMq.js +597 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NotebookInterface-BdxzVo_D.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/NotebookSvg-2w04pLXO.js +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/PlaygroundInterface-BiWl-IG6.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/PlaygroundInterface-CQXkNf61.js +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/WorkflowOutputPanel-CLNRizln.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/WorkflowOutputPanel.vue_vue_type_style_index_0_lang-CdsA6Nlb.js +20070 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/cellOperations-DiO7UBn1.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/cellOperations-mmhE2rpR.js +296 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/codemirror-CEJpu35t.js +12 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/index-8H8ONTyz.js +7212 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/index-CDHrXzwd.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/jupyterlab-DCB4j3g5.js +89 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-300-CGqVYVBd.woff2 +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-300-D-Ix9km9.woff +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-700-CCBIyjkE.woff +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-700-C_mCopxe.woff2 +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-regular-Dz3ZLxjK.woff +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-regular-GAITDyQJ.woff2 +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/pdf.worker-BQQyum15.mjs +58272 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/pdfjs-B7zhfHd9.js +16052 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/primeicons-C6QP2o4f.woff2 +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/primeicons-DMOk5skT.eot +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/primeicons-Dr5RGzOO.svg +345 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/primeicons-MpK4pl85.ttf +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/primeicons-WjwUDZjB.woff +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/primevue-DXcp5I-A.js +5711 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/renderers-D-ztt1K4.js +19617 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/renderers-DTrMDJiK.css +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/vue.esm-browser.prod.js +12 -0
- beaker_notebook-2.0.0/src/beaker_notebook/app/ui/static/xlsx-C3u7rb2R.js +63 -0
- beaker_notebook-2.0.0/src/beaker_notebook/builder/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/builder/beaker.py +210 -0
- beaker_notebook-2.0.0/src/beaker_notebook/builder/hooks.py +22 -0
- beaker_notebook-2.0.0/src/beaker_notebook/builder/templates.py +99 -0
- beaker_notebook-2.0.0/src/beaker_notebook/builder/utils.py +12 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/app.py +131 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/config.py +270 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/context.py +236 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/helpers.py +77 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/main.py +73 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/project.py +340 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/running.py +114 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/server.py +210 -0
- beaker_notebook-2.0.0/src/beaker_notebook/cli/subkernel.py +499 -0
- beaker_notebook-2.0.0/src/beaker_notebook/contexts/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/contexts/default/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/contexts/default/agent.py +91 -0
- beaker_notebook-2.0.0/src/beaker_notebook/contexts/default/context.py +46 -0
- beaker_notebook-2.0.0/src/beaker_notebook/contexts/default/default_payload.json +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/kernel.json +9 -0
- beaker_notebook-2.0.0/src/beaker_notebook/kernel.py +900 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/__init__.py +9 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/admin.py +105 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/agent.py +475 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/agent_tasks.py +111 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/app.py +458 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/autodiscovery.py +198 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/__init__.py +19 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/analysis_agent.py +149 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/analysis_types.py +144 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/analyzer.py +74 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/message_types.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/rules/__init__.py +1 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/rules/base.py +134 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/rules/trust/__init__.py +6 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/rules/trust/categories.py +103 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/code_analysis/rules/trust/rules.py +138 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/config.py +550 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/context.py +1225 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/context_dump.py +453 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/exporters/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/exporters/chat.py +349 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/exporters/full_context_notebook.py +24 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/exporters/streamline.py +223 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/extension.py +53 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/integrations/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/integrations/adhoc.py +645 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/integrations/base.py +203 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/integrations/registry.py +52 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/integrations/skill.py +746 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/integrations/types.py +254 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/jupyter_kernel_proxy.py +391 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/kernel_state.py +131 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/message_types.py +38 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/notebook_state.py +236 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/reflector.py +247 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/subkernel.py +898 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/__init__.py +105 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/agent_file.py +70 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/context_file.py +57 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/paths.py +12 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/procedure_file.py +21 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/readme_file.py +74 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/templates/subkernel_file.py +50 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/types.py +327 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/utils.py +400 -0
- beaker_notebook-2.0.0/src/beaker_notebook/lib/workflow.py +341 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/__init__.py +59 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/auth/__init__.py +185 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/auth/dummy.py +33 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/auth/notebook.py +22 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/context/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/context/discovery_service.py +78 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/context/handlers.py +36 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/context/manager.py +88 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/context/util.py +64 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/kernel/__init__.py +5 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/kernel/manager.py +158 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/kernel/mappingmanager.py +128 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/kernel/provisioner.py +60 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/kernel/spec.py +115 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/session/__init__.py +245 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/storage/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/storage/base.py +93 -0
- beaker_notebook-2.0.0/src/beaker_notebook/services/storage/notebook.py +361 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/__init__.py +3 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/.gitkeep +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/fetch_state.jl +71 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/reflectors/array.jl +24 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/reflectors/default.jl +20 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/reflectors/dict.jl +34 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/reflectors/function.jl +7 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/reflectors/module.jl +7 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/procedures/reflectors/type.jl +7 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/julia/subkernel.py +39 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/__init__.py +3 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/.gitkeep +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/describe_variables.py +69 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/fetch_state.py +59 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/class.py +14 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/dataframe.py +28 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/default.py +32 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/function.py +18 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/mapping.py +36 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/module.py +9 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/ndarray.py +27 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/primitive.py +22 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/sequence.py +32 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/series.py +26 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/procedures/reflectors/string.py +21 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/python/subkernel.py +165 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/__init__.py +3 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/.gitkeep +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/fetch_state.r +55 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/reflectors/data_frame.r +28 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/reflectors/default.r +23 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/reflectors/function.r +11 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/reflectors/list.r +23 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/procedures/reflectors/vector.r +25 -0
- beaker_notebook-2.0.0/src/beaker_notebook/subkernels/rlang/subkernel.py +38 -0
- beaker_notebook-2.0.0/src/beaker_notebook/util/__init__.py +0 -0
- beaker_notebook-2.0.0/src/beaker_notebook/util/refactor.py +52 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
**/__pycache__/**
|
|
2
|
+
*.pyc
|
|
3
|
+
.ipynb_checkpoints
|
|
4
|
+
/*.ipynb
|
|
5
|
+
**/.cache
|
|
6
|
+
**/.ipython
|
|
7
|
+
**/.notebooks/
|
|
8
|
+
|
|
9
|
+
# Gradle
|
|
10
|
+
.gradle/
|
|
11
|
+
build/
|
|
12
|
+
|
|
13
|
+
# Eclipse
|
|
14
|
+
.project
|
|
15
|
+
.classpath
|
|
16
|
+
.settings/
|
|
17
|
+
bin/
|
|
18
|
+
|
|
19
|
+
# IntelliJ
|
|
20
|
+
.idea/*
|
|
21
|
+
*.ipr
|
|
22
|
+
*.iml
|
|
23
|
+
*.iws
|
|
24
|
+
|
|
25
|
+
# NetBeans
|
|
26
|
+
nb-configuration.xml
|
|
27
|
+
|
|
28
|
+
# Visual Studio Code
|
|
29
|
+
.vscode/*
|
|
30
|
+
.factorypath
|
|
31
|
+
|
|
32
|
+
# Nova
|
|
33
|
+
.nova/*
|
|
34
|
+
|
|
35
|
+
# OSX
|
|
36
|
+
.DS_Store
|
|
37
|
+
|
|
38
|
+
# Vim
|
|
39
|
+
*.swp
|
|
40
|
+
*.swo
|
|
41
|
+
|
|
42
|
+
# patch
|
|
43
|
+
*.orig
|
|
44
|
+
*.rej
|
|
45
|
+
|
|
46
|
+
# Local environment
|
|
47
|
+
.env
|
|
48
|
+
|
|
49
|
+
# Yarn
|
|
50
|
+
**/.yarn/*
|
|
51
|
+
**/!.yarn/patches
|
|
52
|
+
**/!.yarn/plugins
|
|
53
|
+
**/!.yarn/releases
|
|
54
|
+
**/!.yarn/sdks
|
|
55
|
+
**/!.yarn/versions
|
|
56
|
+
**/.pnp.*
|
|
57
|
+
|
|
58
|
+
# NPM
|
|
59
|
+
node_modules
|
|
60
|
+
dist
|
|
61
|
+
build
|
|
62
|
+
|
|
63
|
+
# MISC
|
|
64
|
+
create.sql
|
|
65
|
+
.eslintcache
|
|
66
|
+
**/.venv/
|
|
67
|
+
.openai.toml
|
|
68
|
+
shell.nix
|
|
69
|
+
**/.jekyll-cache
|
|
70
|
+
|
|
71
|
+
.beaker.conf
|
|
72
|
+
beaker_config.py
|
|
73
|
+
beaker_*_config.py
|
|
74
|
+
src/beaker_notebook/**/ui/*
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-present Jataware Corp
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
+
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: beaker-notebook
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Summary: Beaker Notebook is a general-purpose, computational notebook with embedded agentic AI designed . It provides a flexible context system that enables domain-specific customization for domains such as data science, research, and computational workflows through specialized AI agents, integrations with external data sources and APIs, and structured workflows.
|
|
5
|
+
Project-URL: Documentation, https://github.com/jataware/beaker-kernel#readme
|
|
6
|
+
Project-URL: Issues, https://github.com/jataware/beaker-kernel/issues
|
|
7
|
+
Project-URL: Source, https://github.com/jataware/beaker-kernel
|
|
8
|
+
Author-email: Matthew Printz <matt@jataware.com>, Brandon Rose <brandon@jataware.com>, Five Grant <five@jataware.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE.txt
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Programming Language :: Python
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: archytas>=2.0.0
|
|
20
|
+
Requires-Dist: click~=8.1
|
|
21
|
+
Requires-Dist: dill
|
|
22
|
+
Requires-Dist: hatch
|
|
23
|
+
Requires-Dist: jinja2~=3.1.2
|
|
24
|
+
Requires-Dist: jupyterlab-server<3,>=2.22.1
|
|
25
|
+
Requires-Dist: jupyterlab~=4.0
|
|
26
|
+
Requires-Dist: matplotlib
|
|
27
|
+
Requires-Dist: numpy
|
|
28
|
+
Requires-Dist: openpyxl
|
|
29
|
+
Requires-Dist: pandas
|
|
30
|
+
Requires-Dist: python-dotenv~=1.0
|
|
31
|
+
Requires-Dist: requests<3,>=2.24
|
|
32
|
+
Requires-Dist: scipy
|
|
33
|
+
Requires-Dist: six
|
|
34
|
+
Requires-Dist: toml
|
|
35
|
+
Requires-Dist: tornado>=6.4.0
|
|
36
|
+
Requires-Dist: tree-sitter-julia<0.25
|
|
37
|
+
Requires-Dist: tree-sitter-python<0.25
|
|
38
|
+
Requires-Dist: tree-sitter<0.25
|
|
39
|
+
Requires-Dist: watchdog~=3.0
|
|
40
|
+
Requires-Dist: xarray
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
# Beaker: the AI-first coding notebook
|
|
44
|
+
|
|
45
|
+
Beaker is a next-generation coding notebook built for the AI era. Beaker seamlessly integrates a Jupyter-like experience with an AI agent that can generate and run code on your behalf. The agent has access to the entire notebook environment as its context, allowing it to make smart decisions about the code it generates and runs. It can even read tracebacks and fix its own errors, and install missing libraries automatically when it needs them.
|
|
46
|
+
|
|
47
|
+
Beaker also lets you swap effortlessly between a notebook-style coding interface and a chat-style interface, giving you the best of both worlds. Since everything is interoperable with Jupyter, you can always export your notebook and use it in any other Jupyter-compatible environment.
|
|
48
|
+
|
|
49
|
+
Beaker is built on top of [Archytas](https://github.com/jataware/archytas), our framework for building AI agents that can interact with code. Advanced users can build their own custom agents with custom ReAct toolsets to support any number of use cases.
|
|
50
|
+
|
|
51
|
+
We like to think of Beaker as a (much better!) drop-in replacement for workflows where you'd normally rely on Jupyter notebooks, and we hope you'll give it a try and let us know what you think.
|
|
52
|
+
|
|
53
|
+
## Getting Started
|
|
54
|
+
|
|
55
|
+
Getting Beaker up and running is easy. Install Beaker with:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pip install beaker-notebook
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Next, run `beaker config update` to set up your configuration. This creates a `beaker.conf` configuration file (you can find its location at any time with `beaker config find`). You can leave most fields at their defaults, but you'll need to set `LLM_SERVICE_TOKEN` to your OpenAI API key — or the API key for whichever LLM provider you've selected.
|
|
62
|
+
|
|
63
|
+
Once installed and configured, start a notebook with:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
beaker notebook
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Your notebook server will start up and Beaker will be ready to use at [`localhost:8888`](http://localhost:8888).
|
|
70
|
+
|
|
71
|
+
## Quick demo
|
|
72
|
+
|
|
73
|
+
Here is a quick demo of using Beaker to interact with a [free weather API](https://open-meteo.com/en/docs), fetch some data, perform some data transformations and a bit of analysis. This is really just scratching the surface of what you can do with Beaker, but it gives you a sense of the kinds of things it can do.
|
|
74
|
+
|
|
75
|
+
<div align="center">
|
|
76
|
+
<a href="https://www.youtube.com/watch?v=AP9LT_cxjzY" target="_blank">
|
|
77
|
+
<img src="docs/assets/beaker-movie-3x-optimized-higherres.gif" alt="Beaker demo" width="90%">
|
|
78
|
+
</a>
|
|
79
|
+
<br/>
|
|
80
|
+
Watch original video on <a href="https://www.youtube.com/watch?v=AP9LT_cxjzY">Youtube here</a>.
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
## Want to know more?
|
|
84
|
+
|
|
85
|
+
There is a lot more to Beaker than what we've covered here. The full [documentation](https://jataware.github.io/beaker-notebook/) covers how to customize and extend Beaker — building your own custom contexts, agents, subkernels, and integrations to make Beaker fit your specific needs. It also covers using the `beaker-ts` TypeScript library to embed Beaker into your own front-end application.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Beaker: the AI-first coding notebook
|
|
2
|
+
|
|
3
|
+
Beaker is a next-generation coding notebook built for the AI era. Beaker seamlessly integrates a Jupyter-like experience with an AI agent that can generate and run code on your behalf. The agent has access to the entire notebook environment as its context, allowing it to make smart decisions about the code it generates and runs. It can even read tracebacks and fix its own errors, and install missing libraries automatically when it needs them.
|
|
4
|
+
|
|
5
|
+
Beaker also lets you swap effortlessly between a notebook-style coding interface and a chat-style interface, giving you the best of both worlds. Since everything is interoperable with Jupyter, you can always export your notebook and use it in any other Jupyter-compatible environment.
|
|
6
|
+
|
|
7
|
+
Beaker is built on top of [Archytas](https://github.com/jataware/archytas), our framework for building AI agents that can interact with code. Advanced users can build their own custom agents with custom ReAct toolsets to support any number of use cases.
|
|
8
|
+
|
|
9
|
+
We like to think of Beaker as a (much better!) drop-in replacement for workflows where you'd normally rely on Jupyter notebooks, and we hope you'll give it a try and let us know what you think.
|
|
10
|
+
|
|
11
|
+
## Getting Started
|
|
12
|
+
|
|
13
|
+
Getting Beaker up and running is easy. Install Beaker with:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pip install beaker-notebook
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Next, run `beaker config update` to set up your configuration. This creates a `beaker.conf` configuration file (you can find its location at any time with `beaker config find`). You can leave most fields at their defaults, but you'll need to set `LLM_SERVICE_TOKEN` to your OpenAI API key — or the API key for whichever LLM provider you've selected.
|
|
20
|
+
|
|
21
|
+
Once installed and configured, start a notebook with:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
beaker notebook
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Your notebook server will start up and Beaker will be ready to use at [`localhost:8888`](http://localhost:8888).
|
|
28
|
+
|
|
29
|
+
## Quick demo
|
|
30
|
+
|
|
31
|
+
Here is a quick demo of using Beaker to interact with a [free weather API](https://open-meteo.com/en/docs), fetch some data, perform some data transformations and a bit of analysis. This is really just scratching the surface of what you can do with Beaker, but it gives you a sense of the kinds of things it can do.
|
|
32
|
+
|
|
33
|
+
<div align="center">
|
|
34
|
+
<a href="https://www.youtube.com/watch?v=AP9LT_cxjzY" target="_blank">
|
|
35
|
+
<img src="docs/assets/beaker-movie-3x-optimized-higherres.gif" alt="Beaker demo" width="90%">
|
|
36
|
+
</a>
|
|
37
|
+
<br/>
|
|
38
|
+
Watch original video on <a href="https://www.youtube.com/watch?v=AP9LT_cxjzY">Youtube here</a>.
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
## Want to know more?
|
|
42
|
+
|
|
43
|
+
There is a lot more to Beaker than what we've covered here. The full [documentation](https://jataware.github.io/beaker-notebook/) covers how to customize and extend Beaker — building your own custom contexts, agents, subkernels, and integrations to make Beaker fit your specific needs. It also covers using the `beaker-ts` TypeScript library to embed Beaker into your own front-end application.
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatch<1.16", "hatchling", "virtualenv<21.0.0"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "beaker-notebook"
|
|
7
|
+
version = "2.0.0"
|
|
8
|
+
description = "Beaker Notebook is a general-purpose, computational notebook with embedded agentic AI designed . It provides a flexible context system that enables domain-specific customization for domains such as data science, research, and computational workflows through specialized AI agents, integrations with external data sources and APIs, and structured workflows."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
keywords = []
|
|
13
|
+
authors = [
|
|
14
|
+
{ name = "Matthew Printz", email = "matt@jataware.com" },
|
|
15
|
+
{ name = "Brandon Rose", email = "brandon@jataware.com" },
|
|
16
|
+
{ name = "Five Grant", email = "five@jataware.com" },
|
|
17
|
+
]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Development Status :: 4 - Beta",
|
|
20
|
+
"Programming Language :: Python",
|
|
21
|
+
"Programming Language :: Python :: 3.11",
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Programming Language :: Python :: Implementation :: CPython",
|
|
25
|
+
"Programming Language :: Python :: Implementation :: PyPy",
|
|
26
|
+
]
|
|
27
|
+
dependencies = [
|
|
28
|
+
"archytas>=2.0.0",
|
|
29
|
+
"jupyterlab~=4.0",
|
|
30
|
+
"jupyterlab-server>=2.22.1,<3",
|
|
31
|
+
"requests>=2.24,<3",
|
|
32
|
+
"six",
|
|
33
|
+
"tornado>=6.4.0",
|
|
34
|
+
"jinja2~=3.1.2",
|
|
35
|
+
"watchdog~=3.0",
|
|
36
|
+
"click~=8.1",
|
|
37
|
+
"python-dotenv~=1.0",
|
|
38
|
+
"hatch",
|
|
39
|
+
"toml",
|
|
40
|
+
"dill",
|
|
41
|
+
"pandas",
|
|
42
|
+
"matplotlib",
|
|
43
|
+
"xarray",
|
|
44
|
+
"numpy",
|
|
45
|
+
"scipy",
|
|
46
|
+
"openpyxl",
|
|
47
|
+
"tree-sitter<0.25",
|
|
48
|
+
"tree-sitter-python<0.25",
|
|
49
|
+
"tree-sitter-julia<0.25",
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
[project.entry-points.hatch]
|
|
53
|
+
beaker = "beaker_notebook.builder.hooks"
|
|
54
|
+
|
|
55
|
+
[project.scripts]
|
|
56
|
+
beaker = "beaker_notebook.cli.main:cli"
|
|
57
|
+
|
|
58
|
+
[tool.hatch.metadata]
|
|
59
|
+
allow-direct-references = true
|
|
60
|
+
|
|
61
|
+
[tool.hatch.build]
|
|
62
|
+
require-runtime-dependencies = true
|
|
63
|
+
artifacts = [
|
|
64
|
+
"src/beaker_notebook/app/ui",
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
[tool.hatch.build.targets.wheel]
|
|
68
|
+
packages = [
|
|
69
|
+
"src/beaker_notebook",
|
|
70
|
+
"src/beaker_kernel",
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
[tool.hatch.build.targets.sdist]
|
|
74
|
+
only-include = ["src"]
|
|
75
|
+
|
|
76
|
+
# Beaker builder, loaded as a custom hook since it's not yet registered.
|
|
77
|
+
[tool.hatch.build.targets.wheel.hooks.custom]
|
|
78
|
+
path = "src/beaker_notebook/builder/beaker.py"
|
|
79
|
+
|
|
80
|
+
[tool.hatch.build.targets.wheel.shared-data]
|
|
81
|
+
"src/beaker_notebook/kernel.json" = "share/jupyter/kernels/beaker_kernel/kernel.json"
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
[tool.bumpversion]
|
|
85
|
+
current_version="2.0.0"
|
|
86
|
+
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)((?P<release>[ab])(?P<revision>\\d+))?"
|
|
87
|
+
serialize = [
|
|
88
|
+
"{major}.{minor}.{patch}{release}{revision}",
|
|
89
|
+
"{major}.{minor}.{patch}"
|
|
90
|
+
]
|
|
91
|
+
search = "{current_version}"
|
|
92
|
+
replace = "{new_version}"
|
|
93
|
+
regex = false
|
|
94
|
+
ignore_missing_version = false
|
|
95
|
+
ignore_missing_files = false
|
|
96
|
+
tag = true
|
|
97
|
+
sign_tags = false
|
|
98
|
+
tag_name = "v{new_version}"
|
|
99
|
+
tag_message = "Bump version: {current_version} → {new_version}"
|
|
100
|
+
allow_dirty = true
|
|
101
|
+
commit = true
|
|
102
|
+
message = "Bump version: {current_version} → {new_version}"
|
|
103
|
+
commit_args = ""
|
|
104
|
+
|
|
105
|
+
[tool.bumpversion.parts.release]
|
|
106
|
+
values = [
|
|
107
|
+
"a",
|
|
108
|
+
"b",
|
|
109
|
+
]
|
|
110
|
+
|
|
111
|
+
[[tool.bumpversion.files]]
|
|
112
|
+
filename = "pyproject.toml"
|
|
113
|
+
search = 'version = "{current_version}"'
|
|
114
|
+
replace = 'version = "{new_version}"'
|
|
115
|
+
|
|
116
|
+
[[tool.bumpversion.files]]
|
|
117
|
+
glob = "beaker-vue/package*.json"
|
|
118
|
+
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)-((?P<release>[ab]).(?P<revision>\\d+))?"
|
|
119
|
+
serialize = [
|
|
120
|
+
"{major}.{minor}.{patch}-{release}.{revision}",
|
|
121
|
+
"{major}.{minor}.{patch}"
|
|
122
|
+
]
|
|
123
|
+
search = """@jataware/beaker-client": "^{current_version}"""
|
|
124
|
+
replace = """@jataware/beaker-client": "^{new_version}"""
|
|
125
|
+
|
|
126
|
+
[[tool.bumpversion.files]]
|
|
127
|
+
glob = "beaker-*/package*.json"
|
|
128
|
+
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)-((?P<release>[ab]).(?P<revision>\\d+))?"
|
|
129
|
+
serialize = [
|
|
130
|
+
"{major}.{minor}.{patch}-{release}.{revision}",
|
|
131
|
+
"{major}.{minor}.{patch}"
|
|
132
|
+
]
|
|
133
|
+
regex = true
|
|
134
|
+
search = """
|
|
135
|
+
([^\\n]*"[^\\n"]*@jataware/beaker-(?:kernel|ts|vue|client)"[^\\n]*)
|
|
136
|
+
([\\s]*)"version": "{current_version}"([^\\n]*)"""
|
|
137
|
+
replace = """
|
|
138
|
+
\\1
|
|
139
|
+
\\2"version": "{new_version}"\\3"""
|
|
140
|
+
|
|
141
|
+
[project.urls]
|
|
142
|
+
Documentation = "https://github.com/jataware/beaker-kernel#readme"
|
|
143
|
+
Issues = "https://github.com/jataware/beaker-kernel/issues"
|
|
144
|
+
Source = "https://github.com/jataware/beaker-kernel"
|
|
145
|
+
|
|
146
|
+
[tool.hatch.version]
|
|
147
|
+
path = "src/beaker_notebook/__about__.py"
|
|
148
|
+
|
|
149
|
+
[tool.hatch.envs.default]
|
|
150
|
+
dependencies = [
|
|
151
|
+
"bump-my-version",
|
|
152
|
+
"coverage[toml]>=6.5",
|
|
153
|
+
"pytest",
|
|
154
|
+
"pytest-asyncio",
|
|
155
|
+
]
|
|
156
|
+
[tool.hatch.envs.default.scripts]
|
|
157
|
+
test = "pytest {args:tests}"
|
|
158
|
+
test-cov = "coverage run -m pytest {args:tests}"
|
|
159
|
+
cov-report = [
|
|
160
|
+
"- coverage combine",
|
|
161
|
+
"coverage report",
|
|
162
|
+
]
|
|
163
|
+
cov = [
|
|
164
|
+
"test-cov",
|
|
165
|
+
"cov-report",
|
|
166
|
+
]
|
|
167
|
+
bump = [
|
|
168
|
+
"bump-my-version bump {args:--help}"
|
|
169
|
+
]
|
|
170
|
+
|
|
171
|
+
[[tool.hatch.envs.all.matrix]]
|
|
172
|
+
python = ["3.11", "3.12", "3.13"]
|
|
173
|
+
|
|
174
|
+
[tool.hatch.envs.lint]
|
|
175
|
+
detached = true
|
|
176
|
+
dependencies = [
|
|
177
|
+
"black>=23.1.0",
|
|
178
|
+
"mypy>=1.0.0",
|
|
179
|
+
"ruff>=0.0.243",
|
|
180
|
+
]
|
|
181
|
+
[tool.hatch.envs.lint.scripts]
|
|
182
|
+
typing = "mypy --install-types --non-interactive {args:beaker_notebook tests}"
|
|
183
|
+
style = [
|
|
184
|
+
"ruff {args:.}",
|
|
185
|
+
"black --check --diff {args:.}",
|
|
186
|
+
]
|
|
187
|
+
fmt = [
|
|
188
|
+
"black {args:.}",
|
|
189
|
+
"ruff --fix {args:.}",
|
|
190
|
+
"style",
|
|
191
|
+
]
|
|
192
|
+
all = [
|
|
193
|
+
"style",
|
|
194
|
+
"typing",
|
|
195
|
+
]
|
|
196
|
+
|
|
197
|
+
[tool.black]
|
|
198
|
+
target-version = ["py310"]
|
|
199
|
+
line-length = 120
|
|
200
|
+
skip-string-normalization = true
|
|
201
|
+
|
|
202
|
+
[tool.ruff]
|
|
203
|
+
target-version = "py310"
|
|
204
|
+
line-length = 120
|
|
205
|
+
select = [
|
|
206
|
+
"A",
|
|
207
|
+
"ARG",
|
|
208
|
+
"B",
|
|
209
|
+
"C",
|
|
210
|
+
"DTZ",
|
|
211
|
+
"E",
|
|
212
|
+
"EM",
|
|
213
|
+
"F",
|
|
214
|
+
"FBT",
|
|
215
|
+
"I",
|
|
216
|
+
"ICN",
|
|
217
|
+
"ISC",
|
|
218
|
+
"N",
|
|
219
|
+
"PLC",
|
|
220
|
+
"PLE",
|
|
221
|
+
"PLR",
|
|
222
|
+
"PLW",
|
|
223
|
+
"Q",
|
|
224
|
+
"RUF",
|
|
225
|
+
"S",
|
|
226
|
+
"T",
|
|
227
|
+
"TID",
|
|
228
|
+
"UP",
|
|
229
|
+
"W",
|
|
230
|
+
"YTT",
|
|
231
|
+
]
|
|
232
|
+
ignore = [
|
|
233
|
+
# Allow non-abstract empty methods in abstract base classes
|
|
234
|
+
"B027",
|
|
235
|
+
# Allow boolean positional values in function calls, like `dict.get(... True)`
|
|
236
|
+
"FBT003",
|
|
237
|
+
# Ignore checks for possible passwords
|
|
238
|
+
"S105", "S106", "S107",
|
|
239
|
+
# Ignore complexity
|
|
240
|
+
"C901", "PLR0911", "PLR0912", "PLR0913", "PLR0915",
|
|
241
|
+
]
|
|
242
|
+
unfixable = [
|
|
243
|
+
# Don't touch unused imports
|
|
244
|
+
"F401",
|
|
245
|
+
]
|
|
246
|
+
|
|
247
|
+
[tool.ruff.isort]
|
|
248
|
+
known-first-party = ["beaker_notebook"]
|
|
249
|
+
|
|
250
|
+
[tool.ruff.flake8-tidy-imports]
|
|
251
|
+
ban-relative-imports = "all"
|
|
252
|
+
|
|
253
|
+
[tool.ruff.per-file-ignores]
|
|
254
|
+
# Tests can use magic values, assertions, and relative imports
|
|
255
|
+
"tests/**/*" = ["PLR2004", "S101", "TID252"]
|
|
256
|
+
|
|
257
|
+
[tool.coverage.run]
|
|
258
|
+
source_pkgs = ["beaker_notebook", "tests"]
|
|
259
|
+
branch = true
|
|
260
|
+
parallel = true
|
|
261
|
+
omit = [
|
|
262
|
+
"src/beaker_notebook/__about__.py",
|
|
263
|
+
]
|
|
264
|
+
|
|
265
|
+
[tool.coverage.paths]
|
|
266
|
+
beaker_notebook = ["beaker_notebook"]
|
|
267
|
+
tests = ["tests"]
|
|
268
|
+
|
|
269
|
+
[tool.coverage.report]
|
|
270
|
+
exclude_lines = [
|
|
271
|
+
"no cov",
|
|
272
|
+
"if __name__ == .__main__.:",
|
|
273
|
+
"if TYPE_CHECKING:",
|
|
274
|
+
]
|
|
275
|
+
|
|
276
|
+
[tool.hatch.envs.hatch-test]
|
|
277
|
+
extra-dependencies = [
|
|
278
|
+
"pytest",
|
|
279
|
+
"pytest-asyncio",
|
|
280
|
+
"rich",
|
|
281
|
+
]
|
|
282
|
+
|
|
283
|
+
[tool.pytest.ini_options]
|
|
284
|
+
asyncio_mode = "auto"
|
|
285
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
286
|
+
|
|
287
|
+
[project.entry-points."nbconvert.exporters"]
|
|
288
|
+
streamline = "beaker_notebook.lib.exporters.streamline:StreamlineExporter"
|
|
289
|
+
full_context_notebook = "beaker_notebook.lib.exporters.full_context_notebook:FullContextNotebookExporter"
|
|
290
|
+
chat = "beaker_notebook.lib.exporters.chat:ChatExporter"
|
|
291
|
+
|
|
292
|
+
[project.entry-points."jupyter_client.kernel_provisioners"]
|
|
293
|
+
beaker-local-provisioner = "beaker_notebook.services.kernel.provisioner:BeakerLocalProvisioner"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Compatibility shim: redirects any `beaker_kernel[.X]` import to `beaker_notebook[.X]`.
|
|
3
|
+
"""
|
|
4
|
+
import importlib
|
|
5
|
+
import sys
|
|
6
|
+
from importlib.abc import MetaPathFinder, Loader
|
|
7
|
+
from importlib.machinery import ModuleSpec
|
|
8
|
+
|
|
9
|
+
_OLD = "beaker_kernel"
|
|
10
|
+
_NEW = "beaker_notebook"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class _RenameLoader(Loader):
|
|
14
|
+
def create_module(self, spec):
|
|
15
|
+
target = _NEW + spec.name[len(_OLD):]
|
|
16
|
+
module = importlib.import_module(target)
|
|
17
|
+
sys.modules[spec.name] = module
|
|
18
|
+
return module
|
|
19
|
+
|
|
20
|
+
def exec_module(self, module):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class _RenameFinder(MetaPathFinder):
|
|
25
|
+
def find_spec(self, fullname, path=None, target=None):
|
|
26
|
+
if fullname == _OLD or fullname.startswith(_OLD + "."):
|
|
27
|
+
return ModuleSpec(fullname, _RenameLoader(), is_package=True)
|
|
28
|
+
return None
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Install once.
|
|
32
|
+
if not any(isinstance(f, _RenameFinder) for f in sys.meta_path):
|
|
33
|
+
sys.meta_path.insert(0, _RenameFinder())
|
|
34
|
+
|
|
35
|
+
# Make `beaker_kernel` itself be `beaker_notebook`.
|
|
36
|
+
import beaker_notebook as _bn
|
|
37
|
+
sys.modules[__name__] = _bn
|