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?

https://pypi.org/project/pptx-builder-from-yaml/

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

pipenv install --dev

pipenv shell

pipenv graph

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.3.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

pptx_builder_from_yaml-0.0.3-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pptx-builder-from-yaml-0.0.3.tar.gz
  • Upload date:
  • Size: 5.8 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.3.tar.gz
Algorithm Hash digest
SHA256 a162014dc580e90ef2ef01cf4384939b7b7f1fa21bae8276d401d39d0c35efe3
MD5 1fd58d597df408bb80c16664c97b85f5
BLAKE2b-256 38d55184835d214948b402c34da906e5c7dab511b5ee46934e5e1d27efac26cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pptx_builder_from_yaml-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.9 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a1618d0de1882114f350a63dbb4e914b70462b4d6ed5e2a910febd42cd3fcf67
MD5 c05850baaae17709cf09e39487f64284
BLAKE2b-256 253f6ad66880a7a9dd95c1a177e360eb97b90c81ccf9f10fa5325c03f1e7ff49

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