Skip to content
Cookiecutter for a Python project making use of xtensor
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Travis Appveyor Documentation Status Join the Gitter Chat

A cookiecutter template for creating a custom Python extension with xtensor

What is xtensor-python-cookiecutter?

xtensor-python-cookiecutter helps extension authors create Python extension modules making use of xtensor.

It takes care of the initial work of generating a project skeleton with

  • A complete compiling the extension module

  • A few examples included in the resulting project including

    • A universal function defined from C++
    • A function making use of an algorithm from the STL on a numpy array
    • Unit tests
    • The generation of the HTML documentation with sphinx


Install cookiecutter:

$ pip install cookiecutter

After installing cookiecutter, use the xtensor-python-cookiecutter:

$ cookiecutter

As xtensor-python-cookiecutter runs, you will be asked for basic information about your custom extension project. You will be prompted for the following information:

  • author_name: your name or the name of your organization,
  • author_email: your project's contact email,
  • github_project_name: name of the GitHub repository for your project,
  • github_organization_name: name of the GithHub organization for your project,
  • python_package_name: name of the Python package created by your extension,
  • cpp_namespace: name for the cpp namespace holding the implementation of your extension,
  • project_short_description: a short description for your project.

This will produce a directory containing all the required content for a minimal extension project making use of xtensor with all the required boilerplate for package management, together with a few basic examples. The generated Python extension requires an installation of xtensor ^0.18.0, xtensor-python ^0.21.0, numpy, and pybind11 ^2.1.0.

Install the module:

$ pip install ./{{ cookiecutter.github_project_name }}/

If you have Jupyter installed, run the Test_Run notebook:

$ cd {{ cookiecutter.github_project_name }}
$ jupyter notebook


You can’t perform that action at this time.