%global _empty_manifest_terminate_build 0 Name: python-deckz Version: 20.1.0 Release: 1 Summary: Tool to handle multiple beamer decks. License: Apache-2.0 URL: https://github.com/mlambda/deckz Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5b/54/244394450edb85dbe1e4c1095bc6b1466da924b7a740971db49bbb25e24b/deckz-20.1.0.tar.gz BuildArch: noarch Requires: python3-Jinja2 Requires: python3-PyYAML Requires: python3-appdirs Requires: python3-click Requires: python3-email-validator Requires: python3-google-api-python-client Requires: python3-google-auth-oauthlib Requires: python3-matplotlib Requires: python3-pydantic Requires: python3-pygit2 Requires: python3-rich Requires: python3-sendgrid Requires: python3-watchdog %description # `deckz` [![CI Status](https://img.shields.io/github/actions/workflow/status/mlambda/deckz/ci.yml?branch=main&label=CI&style=for-the-badge)](https://github.com/mlambda/deckz/actions?query=workflow%3ACI) [![CD Status](https://img.shields.io/github/actions/workflow/status/mlambda/deckz/cd.yml?branch=main&label=CD&style=for-the-badge)](https://github.com/mlambda/deckz/actions?query=workflow%3ACD) [![Test Coverage](https://img.shields.io/codecov/c/github/mlambda/deckz?style=for-the-badge)](https://codecov.io/gh/mlambda/deckz) [![PyPI Project](https://img.shields.io/pypi/v/deckz?style=for-the-badge)](https://pypi.org/project/deckz/) Tool to handle a large number of beamer decks, used by several persons, with shared slides amongst the decks. It is currently not meant to be usable directly by people finding about the package on GitHub. Please open an issue if you want more details or want to discuss this solution. ## Installation With `pip`: ```shell pip install deckz ``` ### Shell completion installation See the `--show-completion` or `--install-completion` options of the `deckz` CLI. ## Directory Structure `deckz` works with big assumptions on the directory structure of your presentation repository. Among those assumptions: - your directory should be a git repository - it should contain a `shared` folder for everything that will be shared by all decks during compilation (images, code snippets, etc) - it should contain jinja2 LaTeX templates in the `templates/jinja2` directory, with a specific name (listed below) - it should contain YAML templates in the `templates/yml` directory, with specific names (listed below) - your deck folders should be contained in an organization/company folder. This is meant to avoid repeating the company details all over the place - several configuration should be present to customize the decks efficiently (more on that later) ```text root (git repository) ├── global-config.yml ├── templates │   ├── jinja2 │ │ ├── main.tex │   └── yml │ ├── company-config.yml │ ├── deck-config.yml │ ├── global-config.yml │ └── user-config.yml ├── shared │   ├── img │   │   ├── image1.png │   │   └── image2.jpg │   ├── code │   │   ├── snippet1.py │   │   └── snippet2.js │   └── latex │      ├── module1.tex │      └── module2.tex ├── company1 │   ├── company-config.yml │   └── deck1 │      ├── session-config.yml │      ├── deck-config.yml │      └── targets.yml └── company2    ├── company-config.yml    └── deck2 ├── target1 │ └── custom-module.tex       ├── deck-config.yml       └── targets.yml ``` ## Configuration `deckz` uses small configuration files in several places to avoid repetition. ### Configuration merging The configuration are merged in this order (a value from a configuration on the bottom overrides a value from a configuration on the top): - `global-config.yml` - `user-config.yml` - `company-config.yml` - `deck-config.yml` - `session-config.yml` ### Using the configuration values in LaTeX files The values obtained from the merged configurations can be used in LaTeX after a conversion from snake case to camel case: if the configuration contains the key `trainer_email`, it will be defined as the `\TrainerEmail` command in LaTeX. ### Details about specific configurations #### Global configuration The global configuration contains the default values that don't fit at a more specific level. Example: ```yml presentation_size: 10pt ``` #### User configuration The user configuration contains the values that change when the speaker changes. It is located in the XDG compliant config location. It is `$HOME/.config/deckz/user-config.yml` on GNU/Linux for example. Example: ```yml trainer_activity: Data Scientist trainer_email: john@doe.me trainer_name: John Doe trainer_specialization: NLP, NLU trainer_training: MSc at UCL ``` #### Company configuration The company configuration contains everything required to brand the presentations according to the represented company. Example: ```yml company_logo: logo_company company_logo_height: 1cm company_name: Company company_website: https://www.company.com ``` #### Deck configuration The deck configuration contains the title and acronym of the talk. Example: ```yml deck_acronym: COV19 deck_title: Machine Learning and COVID-19 ``` #### Session configuration The session configuration is optional and contains everything that will change from one session of a specific talk to another one. Example: ```yml session_end: 30/04/2020 session_start: 27/04/2020 ``` ## Usage See the `--help` flag of the `deckz` command line tool. %package -n python3-deckz Summary: Tool to handle multiple beamer decks. Provides: python-deckz BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-deckz # `deckz` [![CI Status](https://img.shields.io/github/actions/workflow/status/mlambda/deckz/ci.yml?branch=main&label=CI&style=for-the-badge)](https://github.com/mlambda/deckz/actions?query=workflow%3ACI) [![CD Status](https://img.shields.io/github/actions/workflow/status/mlambda/deckz/cd.yml?branch=main&label=CD&style=for-the-badge)](https://github.com/mlambda/deckz/actions?query=workflow%3ACD) [![Test Coverage](https://img.shields.io/codecov/c/github/mlambda/deckz?style=for-the-badge)](https://codecov.io/gh/mlambda/deckz) [![PyPI Project](https://img.shields.io/pypi/v/deckz?style=for-the-badge)](https://pypi.org/project/deckz/) Tool to handle a large number of beamer decks, used by several persons, with shared slides amongst the decks. It is currently not meant to be usable directly by people finding about the package on GitHub. Please open an issue if you want more details or want to discuss this solution. ## Installation With `pip`: ```shell pip install deckz ``` ### Shell completion installation See the `--show-completion` or `--install-completion` options of the `deckz` CLI. ## Directory Structure `deckz` works with big assumptions on the directory structure of your presentation repository. Among those assumptions: - your directory should be a git repository - it should contain a `shared` folder for everything that will be shared by all decks during compilation (images, code snippets, etc) - it should contain jinja2 LaTeX templates in the `templates/jinja2` directory, with a specific name (listed below) - it should contain YAML templates in the `templates/yml` directory, with specific names (listed below) - your deck folders should be contained in an organization/company folder. This is meant to avoid repeating the company details all over the place - several configuration should be present to customize the decks efficiently (more on that later) ```text root (git repository) ├── global-config.yml ├── templates │   ├── jinja2 │ │ ├── main.tex │   └── yml │ ├── company-config.yml │ ├── deck-config.yml │ ├── global-config.yml │ └── user-config.yml ├── shared │   ├── img │   │   ├── image1.png │   │   └── image2.jpg │   ├── code │   │   ├── snippet1.py │   │   └── snippet2.js │   └── latex │      ├── module1.tex │      └── module2.tex ├── company1 │   ├── company-config.yml │   └── deck1 │      ├── session-config.yml │      ├── deck-config.yml │      └── targets.yml └── company2    ├── company-config.yml    └── deck2 ├── target1 │ └── custom-module.tex       ├── deck-config.yml       └── targets.yml ``` ## Configuration `deckz` uses small configuration files in several places to avoid repetition. ### Configuration merging The configuration are merged in this order (a value from a configuration on the bottom overrides a value from a configuration on the top): - `global-config.yml` - `user-config.yml` - `company-config.yml` - `deck-config.yml` - `session-config.yml` ### Using the configuration values in LaTeX files The values obtained from the merged configurations can be used in LaTeX after a conversion from snake case to camel case: if the configuration contains the key `trainer_email`, it will be defined as the `\TrainerEmail` command in LaTeX. ### Details about specific configurations #### Global configuration The global configuration contains the default values that don't fit at a more specific level. Example: ```yml presentation_size: 10pt ``` #### User configuration The user configuration contains the values that change when the speaker changes. It is located in the XDG compliant config location. It is `$HOME/.config/deckz/user-config.yml` on GNU/Linux for example. Example: ```yml trainer_activity: Data Scientist trainer_email: john@doe.me trainer_name: John Doe trainer_specialization: NLP, NLU trainer_training: MSc at UCL ``` #### Company configuration The company configuration contains everything required to brand the presentations according to the represented company. Example: ```yml company_logo: logo_company company_logo_height: 1cm company_name: Company company_website: https://www.company.com ``` #### Deck configuration The deck configuration contains the title and acronym of the talk. Example: ```yml deck_acronym: COV19 deck_title: Machine Learning and COVID-19 ``` #### Session configuration The session configuration is optional and contains everything that will change from one session of a specific talk to another one. Example: ```yml session_end: 30/04/2020 session_start: 27/04/2020 ``` ## Usage See the `--help` flag of the `deckz` command line tool. %package help Summary: Development documents and examples for deckz Provides: python3-deckz-doc %description help # `deckz` [![CI Status](https://img.shields.io/github/actions/workflow/status/mlambda/deckz/ci.yml?branch=main&label=CI&style=for-the-badge)](https://github.com/mlambda/deckz/actions?query=workflow%3ACI) [![CD Status](https://img.shields.io/github/actions/workflow/status/mlambda/deckz/cd.yml?branch=main&label=CD&style=for-the-badge)](https://github.com/mlambda/deckz/actions?query=workflow%3ACD) [![Test Coverage](https://img.shields.io/codecov/c/github/mlambda/deckz?style=for-the-badge)](https://codecov.io/gh/mlambda/deckz) [![PyPI Project](https://img.shields.io/pypi/v/deckz?style=for-the-badge)](https://pypi.org/project/deckz/) Tool to handle a large number of beamer decks, used by several persons, with shared slides amongst the decks. It is currently not meant to be usable directly by people finding about the package on GitHub. Please open an issue if you want more details or want to discuss this solution. ## Installation With `pip`: ```shell pip install deckz ``` ### Shell completion installation See the `--show-completion` or `--install-completion` options of the `deckz` CLI. ## Directory Structure `deckz` works with big assumptions on the directory structure of your presentation repository. Among those assumptions: - your directory should be a git repository - it should contain a `shared` folder for everything that will be shared by all decks during compilation (images, code snippets, etc) - it should contain jinja2 LaTeX templates in the `templates/jinja2` directory, with a specific name (listed below) - it should contain YAML templates in the `templates/yml` directory, with specific names (listed below) - your deck folders should be contained in an organization/company folder. This is meant to avoid repeating the company details all over the place - several configuration should be present to customize the decks efficiently (more on that later) ```text root (git repository) ├── global-config.yml ├── templates │   ├── jinja2 │ │ ├── main.tex │   └── yml │ ├── company-config.yml │ ├── deck-config.yml │ ├── global-config.yml │ └── user-config.yml ├── shared │   ├── img │   │   ├── image1.png │   │   └── image2.jpg │   ├── code │   │   ├── snippet1.py │   │   └── snippet2.js │   └── latex │      ├── module1.tex │      └── module2.tex ├── company1 │   ├── company-config.yml │   └── deck1 │      ├── session-config.yml │      ├── deck-config.yml │      └── targets.yml └── company2    ├── company-config.yml    └── deck2 ├── target1 │ └── custom-module.tex       ├── deck-config.yml       └── targets.yml ``` ## Configuration `deckz` uses small configuration files in several places to avoid repetition. ### Configuration merging The configuration are merged in this order (a value from a configuration on the bottom overrides a value from a configuration on the top): - `global-config.yml` - `user-config.yml` - `company-config.yml` - `deck-config.yml` - `session-config.yml` ### Using the configuration values in LaTeX files The values obtained from the merged configurations can be used in LaTeX after a conversion from snake case to camel case: if the configuration contains the key `trainer_email`, it will be defined as the `\TrainerEmail` command in LaTeX. ### Details about specific configurations #### Global configuration The global configuration contains the default values that don't fit at a more specific level. Example: ```yml presentation_size: 10pt ``` #### User configuration The user configuration contains the values that change when the speaker changes. It is located in the XDG compliant config location. It is `$HOME/.config/deckz/user-config.yml` on GNU/Linux for example. Example: ```yml trainer_activity: Data Scientist trainer_email: john@doe.me trainer_name: John Doe trainer_specialization: NLP, NLU trainer_training: MSc at UCL ``` #### Company configuration The company configuration contains everything required to brand the presentations according to the represented company. Example: ```yml company_logo: logo_company company_logo_height: 1cm company_name: Company company_website: https://www.company.com ``` #### Deck configuration The deck configuration contains the title and acronym of the talk. Example: ```yml deck_acronym: COV19 deck_title: Machine Learning and COVID-19 ``` #### Session configuration The session configuration is optional and contains everything that will change from one session of a specific talk to another one. Example: ```yml session_end: 30/04/2020 session_start: 27/04/2020 ``` ## Usage See the `--help` flag of the `deckz` command line tool. %prep %autosetup -n deckz-20.1.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-deckz -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 20.1.0-1 - Package Spec generated