https://github.com/compas-dev/compas_nanobind_package_template

Cookiecutter template for COMPAS C++ extensions.

https://github.com/compas-dev/compas_nanobind_package_template

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary

Keywords

cibuildwheel cmake cookiecutter cpp nanobind python-package scikit-build template
Last synced: 5 months ago · JSON representation

Repository

Cookiecutter template for COMPAS C++ extensions.

Basic Info
  • Host: GitHub
  • Owner: compas-dev
  • License: mit
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 61.5 KB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
cibuildwheel cmake cookiecutter cpp nanobind python-package scikit-build template
Created 9 months ago · Last pushed 9 months ago
Metadata Files
Readme License

README.md

COMPAS package template for C++/Python binding

Cookiecutter template for COMPAS C++ based extensions.

Cookiecutter is a command-line utility that lets you quickly bootstrap a new project from a template. It takes a directory tree and copies it into your new project, replacing all the generic info that finds surrounded by templating tags {{ and }} with your project info written in cookiecutter.json.

Features

  • Project directory and file structure
  • Documentation based on Sphinx/reStructuredText
  • Testing framework: pytest
  • Basic setup script to create pip installable packages
  • Automation of common tasks for development workflow based on pyinvoke (generate documentation, run tests, check format, etc.)
  • EditorConfig integration
  • Minimal Github workflows for CI/CD
  • Example project for nanobind
  • Python wheel building via cibuildwheel and scikit-build-core for PyPI.

What's included

  • .github
  • data
  • docs
  • scripts
  • src
  • temp
  • tests
  • .editorconfig
  • .gitignore
  • CHANGELOG.md
  • CONTRIBUTING.md
  • LICENSE
  • pyproject.toml
  • README.md
  • requirements-dev.txt
  • requirements.txt
  • tasks.py

Requirements

Install the cookiecutter command line utility: pip install cookiecutter.

Usage

In the terminal, go to the folder where you want to place your project:

bash cd <your-projects-folder>

Generate a new Cookiecutter template layout:

bash cookiecutter gh:compas-dev/compas_package_template

Go to project folder:

bash cd <project-slug>

Add the project files to the new git repo:

bash git add . git commit -m "Initial commit"

Detailed instructions

Additional settings

To use the coding style feature with EditorConfig:

Some text editors have a native EditorConfig. If yours doesn't, you can download the appropriate plugin here.

Github Actions

Basic CI/CD has already been setup in the .github folder, including automatic building and testing across systems, documentation generation etc.

Automatic Publishing to PYPI

This requires adding your PYPI token in the repo or organization secrets as PYPI. If you don't need this feature, go to .github/workflows/release.yaml and delete lines 95-99. By default the package is uploaded to test.pypi.org. For publishing to pypi.org delete lines 97-99.

License

This template is licensed under the terms of the MIT License.

Owner

  • Name: compas-dev
  • Login: compas-dev
  • Kind: organization

COMPAS - an open source computational framework for research and collaboration in AEC

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 18
  • Total Committers: 2
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.056
Past Year
  • Commits: 18
  • Committers: 2
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.056
Top Committers
Name Email Commits
Petras Vestartas p****s@g****m 17
pv p****s@g****m 1

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

pyproject.toml pypi
{{cookiecutter.project_folder}}/environment.yml pypi
{{cookiecutter.project_folder}}/pyproject.toml pypi
  • numpy >=1.21.0
{{cookiecutter.project_folder}}/requirements-dev.txt pypi
  • attrs >=17.4 development
  • black >=22.12.0 development
  • build * development
  • bump-my-version * development
  • cmake * development
  • compas_invocations2 * development
  • invoke >=0.14 development
  • nanobind * development
  • ruff * development
  • scikit-build-core * development
  • sphinx_compas2_theme * development
  • twine * development
  • wheel * development
{{cookiecutter.project_folder}}/requirements.txt pypi
  • compas >=2