• Stars
    star
    162
  • Rank 226,057 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 24 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Netherlands eScience Center Python Template

Netherlands eScience Center Python Template

Spend less time setting up and configuring your new Python packages and comply with the Netherlands eScience Center Software Development Guide from the start.

Use this Cookiecutter template to generate an empty Python package. Features include:

Badges

fair-software.nl recommendations
(1/5) code repository github repo badge
(2/5) license github license badge
(3/5) community registry RSD
(4/5) citation DOI
(5/5) checklist Β 
overall fair-software badge
Other best practices Β 
Β  Β 
GitHub Actions Β 
Citation metadata consistency cffconvert
MarkDown link checker markdown-link-check
Tests tests

How to use

Step 1/3: Install cookiecutter

We recommend installing cookiecutter in user space as per cookiecutter's instructions. This way, you don't have to install cookiecutter for every new project.

python3 -m pip install --user --upgrade cookiecutter

Step 2/3: Generate the files and directory structure

Run cookiecutter with the template:

# Notes:
#   1. See table below for explanation of each question
#   2. The files will be generated in a new directory
cookiecutter https://github.com/nlesc/python-template.git
Name Default value Explanation
directory_name my-python-project Name of the directory that contains the package. Avoid using spaces or uppercase letters for the best experience across operating systems. To get an impression of what will be generated, see the directory tree below
package_name my_python_package Name of the package. Avoid using spaces, dashes, or uppercase letters for the best experience across operating systems.
package_short_description Short description of package The information that you enter here will end up in the README, documentation, license, and setup.cfg, so it may be a good idea to prepare something in advance.
keyword1 keyword1 A term that describes your package.
keyword2 keyword2 Another term that describes your package.
version 0.1.0 Β 
github_organization <my-github-organization> GitHub organization that will contain this project's repository. This can also be your GitHub user name.
license Apache Software License 2.0 The software license under which the code is made available.
full_name Jane Smith Your full name, e.g. Jane Smith.
email [email protected] Your (work) email address.
copyright_holder Netherlands eScience Center Name(s) of the organization(s) or person(s) who hold the copyright of the software.
code_of_conduct_email [email protected] Email address of the person who should be contacted in case of violations of the Code of Conduct.

Once the project files have been generated, follow the steps outlined in {{cookiecutter.directory_name}}/next_steps.md.

Step 3/3: Read about what was just generated

Good job! You have now generated the skeleton for your package:

my-python-project/
β”œβ”€β”€ .bumpversion.cfg
β”œβ”€β”€ CHANGELOG.md
β”œβ”€β”€ CITATION.cff
β”œβ”€β”€ CODE_OF_CONDUCT.md
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ docs
β”‚   β”œβ”€β”€ conf.py
β”‚   β”œβ”€β”€ index.rst
β”‚   β”œβ”€β”€ make.bat
β”‚   β”œβ”€β”€ Makefile
β”‚   β”œβ”€β”€ _static
β”‚   β”‚   └── theme_overrides.css
β”‚   └── _templates
β”‚       └── .gitignore
β”œβ”€β”€ .editorconfig
β”œβ”€β”€ .githooks
β”‚   └── pre-commit
β”œβ”€β”€ .github
β”‚   β”œβ”€β”€ next_steps
β”‚   β”‚   β”œβ”€β”€ 01_sonarcloud_integration.md
β”‚   β”‚   β”œβ”€β”€ 02_citation.md
β”‚   β”‚   β”œβ”€β”€ 03_readthedocs.md
β”‚   β”‚   β”œβ”€β”€ 04_zenodo_integration.md
β”‚   β”‚   └── 05_linting.md
β”‚   └── workflows
β”‚       β”œβ”€β”€ build.yml
β”‚       β”œβ”€β”€ cffconvert.yml
β”‚       β”œβ”€β”€ lint.yml
β”‚       β”œβ”€β”€ markdown-link-check.yml
β”‚       β”œβ”€β”€ next_steps.yml
β”‚       └── sonarcloud.yml
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
β”œβ”€β”€ MANIFEST.in
β”œβ”€β”€ .mlc-config.json
β”œβ”€β”€ my_python_package
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ my_module.py
β”‚   └── __version__.py
β”œβ”€β”€ next_steps.md
β”œβ”€β”€ NOTICE
β”œβ”€β”€ project_setup.md
β”œβ”€β”€ .prospector.yml
β”œβ”€β”€ .pylintrc
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ README.dev.md
β”œβ”€β”€ README.md
β”œβ”€β”€ setup.cfg
β”œβ”€β”€ setup.py
β”œβ”€β”€ sonar-project.properties
└── tests
    β”œβ”€β”€ __init__.py
    └── test_my_module.py

For an explanation of what's there, read on in the project_setup.md file. There are also instructions on how to apply the template to an existing Python package.

Examples

Many developers have gone before you in using this template to get started quickly. Check out their projects in the list below:

  1. Cerise: https://github.com/MD-Studio/cerise
  2. cerulean: https://github.com/MD-Studio/cerulean
  3. cffconvert: https://github.com/citation-file-format/cff-converter-python
  4. fairtally: https://github.com/fair-software/fairtally
  5. howfairis: https://github.com/fair-software/howfairis
  6. matchms: https://github.com/matchms/matchms
  7. MUSCLE 3: https://github.com/multiscale/muscle3
  8. pycff: https://github.com/citation-file-format/pycff
  9. spec2vec: https://github.com/iomega/spec2vec
  10. yatiml: https://github.com/yatiml/yatiml
  11. ... And many more. Make a PR to add your project here!

How to contribute

Suggestions/improvements/edits are most welcome. Please read the contribution guidelines before creating an issue or a pull request.

More Repositories

1

mcfly

A deep learning tool for time series classification and regression
JavaScript
362
star
2

litstudy

LitStudy: Using the power of Python to automate scientific literature analysis from the comfort of a Jupyter notebook
Python
131
star
3

xtas

Distributed text analysis suite based on Celery
Python
94
star
4

Massive-PotreeConverter

Convert massive pointcloud, for example ahn2 (640 Billion points) to potree format.
Python
79
star
5

mcfly-tutorial

tutorial for mcfly repository
Jupyter Notebook
76
star
6

awesome-research-software-registries

Awesome list of Research Software Registries
69
star
7

structure-from-motion

Structure from Motion Pipeline
Python
61
star
8

guide

Software Development Guide
HTML
46
star
9

scriptcwl

Create cwl workflows by writing a simple Python script
Python
40
star
10

root-conda-recipes

Conda recipes for building ROOT 5 and ROOT 6 binaries, root_numpy, rootpy, root_pandas, with both Python 2 and Python 3 support.
Shell
30
star
11

ShiCo

Netherlands eScience Center - Shifting Concepts Through Time project
Python
26
star
12

XAI

Prototyping about eXplainable Artificial Inteligence (XAI)
Jupyter Notebook
26
star
13

DiVE

An interactive 3D web viewer of up to million points on one screen that represent data. Provides interaction for viewing high-dimensional data that has been previously embedded in 3D or 2D. Based on graphosaurus.js and three.js. For a Linux release of a complete embedding+visualization pipeline please visit https://github.com/sonjageorgievska/Embed-Dive.
HTML
25
star
14

yeap16-ai-3d-printing

CNN's for bone segmentation of CT-scans.
Python
24
star
15

spot

Try the demo
JavaScript
21
star
16

ahn-pointcloud-viewer

3D point cloud visualization of the Netherlands
JavaScript
21
star
17

noodles

Computational workflow engine, making distributed computing in Python easy!
Jupyter Notebook
21
star
18

polyphase-filter-bank-generator

This code generates the filter weights for polyphase filter banks with arbitrary numbers of channels, and with configurable windows.
C++
19
star
19

spudisc-emotion-classification

Python
17
star
20

geospatial-voxels

geospatial-voxels
C#
16
star
21

PattyAnalytics

Reusable point cloud analytics software. Includes segmentation, registration, file format conversion.
Python
14
star
22

deep-learning-assignments-solutions

CS231n: Convolutional Neural Networks for Visual Recognition Assignment solutions
Jupyter Notebook
14
star
23

PattyVis

Webgl pointcloud visualization of the Via Appia based on potree
JavaScript
13
star
24

MAGMa

eMetabolomics project: Mass Annotation based on in silico Generated Metabolites
Python
13
star
25

Machine_Learning_SIG

The topics discussed in the Machine Learning SIG group.
Jupyter Notebook
12
star
26

cptm

Cross-Perspective Topic Modeling
Python
10
star
27

DifferentialEvolution

Java implementation of the Differential Evolution algorithm by Storn & Price
Java
10
star
28

pointcloud-benchmark

Python
9
star
29

case-law-app

JavaScript
8
star
30

PattyData

HTML
7
star
31

ahn-pointcloud-viewer-ws

Webservice for ahn pointcloud viewer
Java
6
star
32

Chemical-Analytics-Platform

Scripts to create chemical analytics platform based on Knime
Shell
6
star
33

full-stack-recipes

Full-stack guidelines and recipes with examples to create offline first reactive Web Applications with 'pluggable' world-wide adopted technologies.
6
star
34

Analytics-SIG

NLeSc Analytics SIG
Mathematica
5
star
35

software.esciencecenter.nl

eStep website with projects software and people.
Python
5
star
36

eAstroViz

Java
5
star
37

softwarehorrorgame

https://nlesc.github.io/softwarehorrorgame/SoftwareHorrorGame.html
HTML
5
star
38

enram

IDL
5
star
39

com-com-kernels

Kernels for computation and communication overlap
Cuda
5
star
40

nlesc.github.io

Overview of Github organizations of all NLeSC projects.
SCSS
4
star
41

boatswain

A simple build system for docker images
Python
4
star
42

nuxt-apollo-hasura

Full Sack Recipe with Nuxt + Apollo + Hasura
Vue
4
star
43

EEG-epilepsy-diagnosis

Detection of Epilepsy from EEG data (14 channel x 5 minutes)
R
4
star
44

reinforcement-learning-course

Code from excersizes and other documents related to following this course can be stored here.
Jupyter Notebook
3
star
45

Neon

OpenGL and Java (JOGL) based Visualization library
Java
3
star
46

pycoeman

Python Commands Execution Manager
Python
3
star
47

PowerSensor

PowerSensor is a low-cost, custom-built device that measures the instantaneous power consumption of GPUs and other devices at a high time resolution.
C++
3
star
48

LargeScaleImaging

Data, Software,Results and Publications for the Large Scale Imaging research @ NLeSc
TeX
3
star
49

nlesc-serverless-boilerplate

An AWS amplify boilerplate web application
TypeScript
3
star
50

spot-desktop-app

Desktop version of SPOT
CSS
3
star
51

OCTSegmentation

EYR4-OCTSEG
MATLAB
3
star
52

teamwork-for-research-software-development

This lesson teaches how to successfully work together in a team. It is geared primarily towards people that create research software in an academic setting, however the lesson is most likely also useful for anyone trying to work on a team in scientific projects. Finally we hope that anyone wanting to get better at working in teams can learn something from this lesson.
HTML
3
star
53

baklava

Deploy a Kubernetes cluster and big data services on the cloud.
Python
3
star
54

eEcology-Annotation-WS

Webservice for eEcology Annotation project.
HTML
2
star
55

spot-tutorial

Tutorial for SPOT
Python
2
star
56

natural-language-processing-sig

Information related to the meetings of the Natural Language Processing SIG of the Netherlands eScience Center
2
star
57

collab-demos

This repository collects knowledge about the demos in the Collaboratorium
Python
2
star
58

eEcology-Classification

Classification tool
Java
2
star
59

candYgene

Python
2
star
60

cwl-object-model

Work in progress object model proposal for CWL2
2
star
61

docker-couch-admin

Configures a web service using angular-schema-form and CouchDB
JavaScript
2
star
62

embodied-emotions-scripts

Python
2
star
63

TEAM2018

This is the repo for the 2018 TEAM sprint
2
star
64

3D_geospatial_risk_management

C
2
star
65

pycwl

Python Library for CWL
Python
2
star
66

SalientDetector-python

Python package for Large Scale Imaging research @ NLeSC
Jupyter Notebook
2
star
67

spot-framework

Try the demo
JavaScript
2
star
68

gpu-sig

The GPU Computing Special Interest Group (SIG) of the Netherlands eScience Center.
2
star
69

app-estep.esciencecenter.nl

Angular app used as frontend for estep website
JavaScript
2
star
70

eEcology-Annotation-UI

User interface for eEcology annotation project.
JavaScript
2
star
71

esibayes

Optimization and state estimation of dynamic models
HTML
2
star
72

zarrviz

A package to visualize zarr files using threejs
Svelte
2
star
73

eEcology-Classification-Database

Java
2
star
74

teamwork-sig

Special interest group on teamwork
1
star
75

eEcology-SMS-reciever

Webservice to store SMS messages into a database table
Python
1
star
76

NumTech-sig

Special Interest Group on Numerical Techniques
TeX
1
star
77

Aether

Communication library for distributed, heterogeneous and dynamic environments
Java
1
star
78

research.esciencecenter.nl

HTML
1
star
79

spot-server

JavaScript
1
star
80

SalientDetector-matlab

MATLAB Software for Large Scale Imaging research @ NLeSc
MATLAB
1
star
81

wasmbase64

C
1
star
82

Constellation

Java
1
star
83

Visualization-SIG

Visualization and Computer Graphics SIG
1
star
84

TuneDinia

C
1
star
85

eSalsa-Visualization

eSalsa globe visualization based on eSight
Java
1
star
86

eSalsa-MPI

This project contains the wide area MPI used in the eSalsa project
C
1
star
87

dask-cassandra-loader

A data loader to load load data from a Cassandra table into a Dask Dataframe.
Python
1
star
88

recordTimings

C++
1
star
89

DeskTracker

A Repository to track issues related to the desks in the eScience Center
1
star
90

eSalsa-POP

eSalsa project version of The Parallel Ocean Program
Fortran
1
star
91

embem-ml-dataset

1
star
92

geospatial-handbook

NLeSC Geospatial handbook
1
star
93

knowledge.esciencecenter.nl

NLeSC knowledge website
CSS
1
star
94

cwl-tutorial

Simple CWL tutorial based on the gentle introduction to CWL
1
star
95

eEcology-Classification-Web

Web interface for eEcology classification
Java
1
star
96

eEcology-Annotation-Model

classification of the bird behavoiur from the accelerometer data
MATLAB
1
star
97

asterisk

Astrophysics visualization for AMUSE, based on eSight
Java
1
star
98

rsemg

Code for exploration of clinical electromyography
Jupyter Notebook
1
star
99

eEcology-CartoDB

Documentation and script to setup a CartoDB server with eEcology tables
1
star
100

monthly_report

File monthly reports
PowerShell
1
star