Skip to main content

Construct, deconstruct, and convert R markdown files.

Project description

Join the chat at https://gitter.im/py4ds/rmdawn Build License PyPI Project Status: Active – The project has reached a stable, usable state and is being actively developed. Updates PyPI - Python Version

Introduction

The rmdawn Python package allows you to (de)construct, convert, and render R Markdown (Rmd) files in

The rmdawn Python package consists of 6 shell commands and functions:

  • rmdawn, which concatenates input files to generate an Rmd file.

  • rmdusk, which extracts 1) a YAML file, 2) Python or R scripts and 3) Markdown (md) files from Rmd files.

  • rmdtor, which converts Rmd files into R scripts using knitr::purl.

  • rtormd, which converts R scripts into Rmd files using knitr::spin.

  • render, which creates rendered versions of R scripts or Rmd files into HTML, PDF, Word, and other output file formats.

  • catren, which combines the functionality of rmdawn and render to generate an Rmd file from source files and then create an output file.

All rmdawn functions and commands, except for rmdawn and rmdusk, rely on the rpy2 Python library. The command line interface relies on the click Python library.

For a related package that provides programmatic tools for working with Jupyter Notebooks, check out the Nbless Python package.

Documentation and Code

The documentation is hosted at https://py4ds.github.io/rmdawn/.

The code is hosted at https://github.com/py4ds/rmdawn.

Installation

pip install rmdawn

or clone the repo, e.g. git clone https://github.com/py4ds/rmdawn and install locally using setup.py (python setup.py install) or pip (pip install .).

Creating an R markdown file with the rmdawn shell command

rmdawn header.yml intro.md scrape.py plot.R notes.txt > example.Rmd

Instead of redirecting to a file (>), you can use the --out_file or -o flag:

rmdawn header.yml intro.md scrape.py plot.R notes.txt -o example.Rmd

The easiest way to handle large numbers of files is to use the * wildcard in the shell.

rmdawn source_file* -o example.Rmd

Extract YAML, markdown, and code files from R markdown files with the rmdusk shell command

rmdusk example.Rmd

Convert between R markdown and R code files with the rmdtor and rtormd shell commands

rmdtor example.Rmd

rtormd example.R

You can also specify an new filename with --out_file or -o flag.

rmdtor example.Rmd -o new.R

rtormd example.R -o new.Rmd

Render R markdown and R code files with the render shell command

The default output format is HTML.

render example.Rmd
render example.R

You can specify output format with the --format or -f flag.

render example.Rmd -f word_document
render example.R -f word_document

If you only specify output filename with the --out_file or -o flag, render will try to infer the output format from the file extension. This will not work for slides or R markdown notebooks.

render example.Rmd -o example.pdf
render example.R -o example.pdf

Create an R markdown file from source files with the catren shell command

You can pass --rmd_file (-r), --out_file (-o), and --format (-f) arguments to catren.

The default output format is HTML.

catren header.yml intro.md scrape.py plot.R notes.txt -r example.Rmd

If you only specify an output filename with the --out_file or -o flag, catren will try to infer the R markdown file name and output format from the file extension.

catren header.yml intro.md scrape.py plot.R notes.txt -o example.pdf

If you only specify an output format with the --format or -f flag or do not provide any optional arguments, catren will create a temporary file in a temporary location.

catren header.yml intro.md scrape.py plot.R notes.txt -f word_document
catren header.yml intro.md scrape.py plot.R notes.txt

Basic usage: Python environment

from pathlib import Path

from rmdawn import rmdawn
from rmdawn import rmdusk
from rmdawn import rtormd
from rmdawn import rmdtor
from rmdawn import render
from rmdawn import catren

# Create an R markdown file from source files
file_list = ["header.yml", "intro.md", "scrape.py", "plot.R", "notes.txt"]
Path("example.Rmd").write_text(rmdawn(file_list))

# Extract source files from an R markdown file
rmdusk("example.Rmd")

# Convert R markdown files into R scripts
rmdtor("example.Rmd")

# Convert R scripts into R markdown files
rtormd("example.R")

# Generate output files from R scripts or R markdown files
render("example.Rmd") # The default format is HTML
render("example.R") # The default format is HTML
render("example.Rmd", out_format="pdf_document")
render("example.R", out_format="word_document")

# Create an R markdown file from source files output files and render it
file_list = ["header.yml", "intro.md", "scrape.py", "plot.R", "notes.txt"]
catren(file_list, rmd_file="example.Rmd") # The default format is HTML
catren(file_list, rmd_file="example.Rmd", out_format="pdf_document")
catren(file_list, out_file="example.html")

# Another alternative is to import the package and use it as a namespace.
import rmdawn

rmdawn.rmdawn(["header.yml", "intro.md", "scrape.py", "plot.R", "notes.txt"])
rmdawn.rmdusk("example.Rmd")
rmdawn.rtormd("example.R")
rmdawn.rmdtor("example.Rmd")
rmdawn.render("example.Rmd") # The default format is HTML

Next Steps

Currently, xaringan slides require a special format.

  • Write remark/demark functions and commands to add/remove slide delimiters --- before headers #.

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

rmdawn-0.1.2.tar.gz (477.2 kB view details)

Uploaded Source

Built Distribution

rmdawn-0.1.2-py2.py3-none-any.whl (12.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file rmdawn-0.1.2.tar.gz.

File metadata

  • Download URL: rmdawn-0.1.2.tar.gz
  • Upload date:
  • Size: 477.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for rmdawn-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9f502ea982705e621eb94e5b9163321697b38521a86ef4039182778e8e61a3ac
MD5 11296b39c8ce621037ff449c3eff69fb
BLAKE2b-256 118daa8c3f3e4aa5bdc0caf6010b6fbc5b7343cffc96d58b69ed32109e045b3d

See more details on using hashes here.

File details

Details for the file rmdawn-0.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: rmdawn-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for rmdawn-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 da05aa031a04bb96e0d68b2971bd69fe6a95e945372e9f790725ec9231f59225
MD5 e21092040bb8f66cb8fd520f5f8f5a0a
BLAKE2b-256 e461dfe8d72017c800f89e4c34c96df00005578847e90a30ff5dfab683aad78b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page