Skip to main content

CLI to generate powerpoint slides from simple yaml file[s]

Project description

pptx-builder-from-yaml

CLI to generate powerpoint slides from simple yaml file[s]

Dependencies to run the CLI

How to install?

pip install pptx-builder-from-yaml

How does a yaml file look like for generating pptx?

Here is a sample yaml file - Dummy.yml

How to run the CLI?

$ pptx-builder --help
Usage: pptx-builder [OPTIONS] YAML_PATHS...

  A powerpoint builder

  https://github.com/sukujgrg/pptx-builder-from-yaml

Options:
  -pt, --pptx-template-path PATH  [required]
  -ms, --master-slide-idx INTEGER
                                  [default: 0]
  -sl, --slide-layout-idx INTEGER
                                  [default: 6]
  -fs, --font-size INTEGER        [default: 32]
  -fn, --font-name TEXT           [default: Calibri]
  -ns, --new-slide-path DIRECTORY
                                  [default: /var/folders/jw/vrnt6ysj2v7cm85hqy
                                  n_sk0h0000gq/T]
  --validate
  --help                          Show this message and exit.
pptx-builder slide_yamls/ -pt pptx-templates/default.pptx

Notes:

  • slide_yamls/ is the directory that holds yaml files for slides. The yaml[s] must follow the schema defined in the code. Here is an example yaml file. slide_yamls are positional arguments and can accept files and directories. If a positional argument is a directory, it will try to build individual pptx with each yaml files in the same directory.
  • --pptx-template-path | -pt is expecting either a directory or a pptx file. If it is a directory, pptx-builder will chose one among all the pptx files found in the same directory. The pptx template file should be without any change to master slide index or in slide layout index. If there are any changes to master slide index or slide layout, you need to pass corresponding int type to -ms and -sl options. A sample pptx template file can seen here pptx-templates.
  • The default --new-slide-path is tmp directory and hence it depends on the operating system you run the pptx-builder on.

How to validate a yaml and then generate the PPTX?

pptx-builder slide_yamls/dummy.yml -dm master_slides/default.pptx --validate

FAQs

How can I add same footer to all pptx[s] built using the CLI?

Add footer to pptx template file to pass with --pptx-template-path option

How to get different backgrounds for the generated pptx files using the CLI?

Create different pptx template files with different backgrounds and pass it on to --pptx-template-path option. See this video on creating pptx template file.

How to setup development environment?

git clone https://github.com/sukujgrg/pptx-builder-from-yaml.git

cd pptx-builder-from-yaml

python3 -m venv ~/.pyenv/pptx-builder

source ~/.pyenv/pptx-builder/bin/activate

pip install -r requirements.txt

How to run tests?

cd pptx-builder-from-yaml/

pytest

or

$ tox .
py36 create: /Users/suku/GitHubPublic/pptx-builder-from-yaml/.tox/py36
py36 installdeps: ., pytest
py36 installed: atomicwrites==1.2.1,attrs==18.2.0,Click==7.0,jsonschema==2.6.0,lxml==4.2.5,more-itertools==4.3.0,Pillow==5.3.0,pluggy==0.8.0,pptx-builder-from-yaml==0.0.1,py==1.7.0,pytest==4.0.1,python-pptx==0.6.16,PyYAML==3.13,six==1.12.0,XlsxWriter==1.1.2
py36 runtests: PYTHONHASHSEED='69299544'
py36 runtests: commands[0] | pytest
===================================================== test session starts ======================================================
platform darwin -- Python 3.6.4, pytest-4.0.1, py-1.7.0, pluggy-0.8.0
rootdir: /Users/suku/GitHubPublic/pptx-builder-from-yaml, inifile:
collected 2 items

unit_tests/scripts/test_gen.py ..                                                                                        [100%]

=================================================== 2 passed in 0.29 seconds ===================================================
___________________________________________________________ summary ____________________________________________________________
  py36: commands succeeded
  congratulations :)

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

pptx-builder-from-yaml-0.0.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

pptx_builder_from_yaml-0.0.2-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file pptx-builder-from-yaml-0.0.2.tar.gz.

File metadata

  • Download URL: pptx-builder-from-yaml-0.0.2.tar.gz
  • Upload date:
  • Size: 5.7 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.28.1 CPython/3.7.0

File hashes

Hashes for pptx-builder-from-yaml-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3398067ca5d67feed3c68d972f6accae361caa27b44c5143b1712e5b98634ba4
MD5 b4123d5ad00d434273bcfb71b33f5512
BLAKE2b-256 ba7af658eaf59f82376b75d24cc5792a14dee395a88c54ae399f27c6c987211b

See more details on using hashes here.

File details

Details for the file pptx_builder_from_yaml-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pptx_builder_from_yaml-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: 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.28.1 CPython/3.7.0

File hashes

Hashes for pptx_builder_from_yaml-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c4cb3843d27cb5805735da4a81351979dad86e4506e00f6cd9afc03e980a90e
MD5 a0fa6349e6619fce86a13cb86d9ddf6e
BLAKE2b-256 604559e6f0e9da46b41af3fdfec990e82340e8a68067745caaf0de7fce03f4c6

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