Let your code take comprehensive notes and publish notes and figures as a beautiful consolidated PDF document.
Project description
Magazine
Let your code take comprehensive notes and publish notes and figures as a beautiful consolidated PDF document.
Idea
The magazine package helps you to create beautiful PDF reports of what has been done during the execution of your app.
- Your scripts or submodules can write topical reports in plain human-readable text, which could also include numerical results, data tables, figures, or citations.
- The collection of topics can be used to publish a glossy PDF document.
Example
from magazine import Magazine, Publish
E = 42
Magazine.report("Experiment", "The analysis found that energy equals {} Joule.", E)
Magazine.cite("10.1002/andp.19163540702")
with Publish("Report.pdf", "My physics report", info="Version 0.1") as M:
M.add_topic("Experiment")
M.add_references()
- View the resulting magazine in output/Report.pdf.
Instead of inline commands, you can also use a decorator to automatically write and format the content of the docstring section "Report" and its "References" section into the report.
@Magazine.reporting("Physics")
def Method_A(a, b, c=3):
"""
A complex method to calculate the sum of numbers.
Report
------
The method "{function}" used input parameters {args}, and c={c}.
Calculations have been performed following Einstein et al. (1935).
The result was: {return}. During the process, the magic number {magic} appeared.
References
----------
Einstein, A., Podolsky, B., & Rosen, N. (1935). Can Quantum-Mechanical Description of Physical Reality Be Considered Complete? Physical Review, 47(10), 777–780. https://doi.org/10.1103/physrev.47.777
"""
result = a + b + c
# Function "_report" is provided by the decorator to communicate more variables
_report["magic"] = 42
return result
# When the function is called, it is automatically reported.
Method_A(2, 3, c=4)
Output in the PDF:
The method "Method_A" used input parameters (2, 3), and c=4. Calculations have been performed following Einstein et al. (1935). The result was: 9. During the process, the magic number 42 appeared.
Check also example.py and output/Magazine.pdf for more full examples.
Documentation
A documentation and API reference can be found on ReadTheDocs:
- Magazine (class)
- Publish (context manager)
- PDF commands (class)
Install
pip install magazine
Requires:
- fpdf2
- habanero (optional, for academic citations)
- neatlogger (wrapper for loguru)
Acknowledgements
- Uses the Google font Roboto as it just looks great in PDFs.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file magazine-0.3.1.tar.gz
.
File metadata
- Download URL: magazine-0.3.1.tar.gz
- Upload date:
- Size: 291.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.10.11 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aef728bb542ce59c52f7928ff204064aaf63c6aeb2c7bf2706765c9a4cbc898 |
|
MD5 | 7ac0ff032e4d2df2a640459dfc6aa79d |
|
BLAKE2b-256 | 950a620e4daa75d722a5e6e0b9347d8c11ff1ec8a1131cbdf94e47b1e3cbb9db |
File details
Details for the file magazine-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: magazine-0.3.1-py3-none-any.whl
- Upload date:
- Size: 293.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.10.11 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fd057c405af9874c0e37a261a1f30015988cac10e47afbd28b52075dffe1a5b |
|
MD5 | a3de67e874ea15eb9ec5d3e612a58241 |
|
BLAKE2b-256 | c1afab483553403a1401a2b7bbec117a1dbc0055076f251722c0f44af6bf7f02 |