Add your description here
Project description
astronote: AST to Reprodceble Output NOTEbook
This tool allows to generate a Jupyter notebook from a Python script. The generated notebook includes the original source code and hyperparameters used for execution, enabling reproducibility and easy sharing of results.
Usage
A notebook entry is defined by decorating a function with @notebook_entry.
This marks the function as an entry point for notebook generation.
When the decorated function is executed, astronote captures its source code and parameters, and generates a notebook that includes this information.
from astronote import notebook_entry
def func() -> str:
return "This is a sub-function, not a notebook entry."
def calc(x: int, y: int) -> int:
return x + y
@notebook_entry
def main(a: int = 10, b: int = 20) -> str:
result = calc(a, b)
return f"The result of calc({a}, {b}) is {result}"
if __name__ == "__main__":
main()
And run the script with:
astronote example.py
you are able to find the generated notebook in the same directory as example.py with a name like example.ipynb.
To embed local helper code directly into the generated notebook instead of keeping imports, use --expand-module for imported module names and --embed-file for local .py paths:
astronote examples/example_multiple_file.py --expand-module sub_mod
astronote examples/example_multiple_file.py --embed-file examples/sub_mod.py
When --embed-file is used, the .py path must resolve to a local module that is actually imported by the source script.
pyproject.toml Configuration
CLI options can also be provided from [tool.astronote] in pyproject.toml.
CLI arguments take precedence over pyproject.toml, and list-style options are merged as pyproject.toml first, then CLI.
[tool.astronote]
source = "examples/example_single_file.py"
parameter_file = "examples/params.json"
override = ['beta="from_pyproject"']
entrypoint = "run"
expand_module = ["sub_mod"]
embed_file = ["examples/sub_mod.py"]
output = "dist/example_single_file.ipynb"
show_analysis = true
show_schema = true
With that configuration, astronote can be run without repeating those options on the command line.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file astronote-0.1.4.tar.gz.
File metadata
- Download URL: astronote-0.1.4.tar.gz
- Upload date:
- Size: 57.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cce6f1161304eaee7c218d6710cd9bfeb5f9db1c01e6d3703c182d9cebfb5dfb
|
|
| MD5 |
b7b8dcc7cca8099543c30458d7432307
|
|
| BLAKE2b-256 |
85756dda12afcf30e5993b385a42ba1b7e4362bc92769638911565ed5ccf80fd
|
File details
Details for the file astronote-0.1.4-py3-none-any.whl.
File metadata
- Download URL: astronote-0.1.4-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7fdd9aec31c506e26dfe1aa795d7e10e77f10e54f73483348972154fdfd98a8
|
|
| MD5 |
589cb795f7a5043fec451d1ba1c918b5
|
|
| BLAKE2b-256 |
47de0bf8d35bf28b6cd0005f0d5fe9de7fa0ce7e4ef88da82b79aea50ac10ff2
|