Skip to content

baggiponte/pymi-pyo3

Repository files navigation

🦀 Get started with PyO3

cookiecutter slidev

Source code for the talk on PyO3 and maturin tutorial I held @Python Milano.

🛩️ How to run

Make sure you have installed the following:

  • git (of course)
  • GitHub CLI: gh (optional)
  • node.js
  • just is a command runner (optional, recommended for contributing)
  1. Clone the repo
# with github CLI
gh repo clone baggiponte/pyconit-polars

# with git
git clone git@github.com:baggiponte/pyconit-polars

Note

🎬 How to configure SSH

Cloning over SSH is safer. Follow this guide. Alternatively, you can follow the steps in this workshop of GitHub's.

  1. Install the dependencies
# with the command runner
just install

# with npm
npm install
  1. Open the slideshow locally
# with the command runner
just preview

# with npx
npx slidev --open -- slides.md
  1. Visit http://localhost:3030

🤗 contributing

Install the dependencies above (just is highly recommended) and the following:

  • commitizen is a release management tool. It's used to release new versions.
  1. Fork the repo
  2. Create your own branch.
  3. Before opening a PR, run the following:
just test-release

This will format the slides, try to build them and test whether a version bump is possibile.

Note

Credits:

  • slidev is an amazing framework to build slides from markdown and host them.
  • just is just a command runner.
  • commitizen is a release management tool.
  • PyO3 is a library of Rust bindings for Python, including tools for creating native Python extension modules.
  • maturin allows you to build and publish crates with pyo3, rust-cpython, cffi and uniffi bindings as well as rust binaries as python packages.