Skip to main content

Tutorial edition framework

Project description

Gepetuto

PyPI version pre-commit.ci status Tests Release

Code style: black Poetry Ruff

Tutorial edition framework

This project contains some tools to help authoring and maintaing python tutorials presented on notebooks.

Install

Add gepetuto in your pip / PyPI dependencies

Usage

  1. create a (eg. tp1) directory (tp0 can be used to check prerequisites)
  2. write python scripts (eg. example_script.py) in this directory
  3. delimit snippets inside those scripts between # %jupyter_snippet example_snippet and # %end_jupyter_snippet
  4. create a (eg. 1-example_notebook.ipynb) notebook, containing import gepetuto.magic
  5. run gepetuto -a generate: this will create a tp{i}/generated directory with eg. example_script_example_snippet
  6. cells can contain either eg. %load tp1/generated/example_script_example_snippet to display some code to students, or their %do_not_load version to let the student write the code themself
  7. run gepetuto -a test to check all python scripts in tp directories
  8. run gepetuto -a lint to ensure the coding standards are respected in all python scripts in tp directories
  9. add gepetuto -a test in your CI, and gepetuto -a lint + gepetuto -a generate in your pre-commit

Command line

$ gepetuto -h
usage: gepetuto [-h] [-v] [-a [{lint,test,generate,all}]] [-f [FILE [FILE ...]]] [-F [FILTER [FILTER ...]]]
                [-p PYTHON] [-c] [-C DIRECTORY] [--version] [tp_id [tp_id ...]]

Tutorial edition framework

positional arguments:
  tp_id                 choose which tp to process. Default to all.

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increment verbosity level
  -a [{lint,test,generate,all}], --action [{lint,test,generate,all}]
                        choose what to do. Default to 'generate'.
  -f [FILE [FILE ...]], --file [FILE [FILE ...]]
                        choose which files to process.
  -F [FILTER [FILTER ...]], --filter [FILTER [FILTER ...]]
                        filter files to process.
  -p PYTHON, --python PYTHON
                        choose python interpreter to use.
  -c, --check           check if linters change files.
  -C DIRECTORY, --directory DIRECTORY
                        choose directory to run action on.
  --version             Get gepetuto version.

CI Example

example of CI using all gepetuto actions on tests folder here :

Pre commit example

- repo: https://github.com/Gepetto/gepetuto
  rev: v1.3.0
  hooks:
  - id: generate-action
  - id: lint-action
  - id: test-action

Examples

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

gepetuto-1.3.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

gepetuto-1.3.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file gepetuto-1.3.0.tar.gz.

File metadata

  • Download URL: gepetuto-1.3.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/5.15.0-1041-azure

File hashes

Hashes for gepetuto-1.3.0.tar.gz
Algorithm Hash digest
SHA256 599936116bec319897a4042c487a121747de2f944356f0c3c3c9c4a6e0af70ac
MD5 ad969ccc41ffcfce42eee5eee88b3354
BLAKE2b-256 a5133f4a083486810d5677c52c37bb9e82c5d2d0e35407133febcbb18b5b8622

See more details on using hashes here.

File details

Details for the file gepetuto-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: gepetuto-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/5.15.0-1041-azure

File hashes

Hashes for gepetuto-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 db5b9024d36a29f4cbff67e443d749eda7678ed9f62b3d098e338d065c1def26
MD5 305a9c07e0fbcc474b4d21d34eacd15f
BLAKE2b-256 5930f0946bf3aca88f7a7945558a994be58e77cd2db6ee14f57a951777fb5cfd

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