Skip to main content

Our logo

Building the nest for you

Documentation Status Tests

PyPI - Version PyPI - Downloads PyPI - Python Version PyPI - License

Welcome to Nester!

A small command line tool to set up the basic structure for your Python, C#, C++, Java or Ruby project.

Index

Introduction

When you are reading this, you are probably thinking "what?", "how?" and "why?".

Nester was born out of the desire to have an easier way to set up new projects without having to check what file or folder goes where.
Just run a command, select a language and everything will be set up for you ready to go.

Now, you might say "but <Your IDE HERE> can do this all on its own!", yes I realize that many modern IDEs will set up a new project perfectly fine for you. And some languages, such as GoLang, have their own CLI utilites to set everything up where it belongs.
Let me tell you though, who cares?

Our Goal

Our goal with Nester is to provide developers a quick and easy way to set up and manage new projects adhearing to the given language's standard giving you more time to actually build your application without having to deal with mkdir-hell.

One simple cli-Command and Nester will do the rest for you, optionally even initializing a new git-repository for you.

Nester, by default, also logs all projects you create with it which allows you to easily view and clean up your projects and avoid creating duplicate projects. Never loose your overview over your projects again!

Installation

Get it from PyPi!

Nester is released on PyPi!
To do so, make sure you have at least Python 3.10 and pip installed.
To get Nester simply run:

pip install nester-struct

Your done! Have fun with Nester!

Note: At least on openSUSE, pip does no longer allow packages to be installed system-wide. At least not without using the --break-system-packages flag.

To install the most recent Nester version from PyPi, you can use pipx.

Simply download pipx using your distribution's package manager and install Nester just like you would with pip.

pipx install nester-struct

Get it as an .rpm package (wip)

We can now offer a .rpm package!

To do so follow these steps (on openSUSE):

  1. Add the repository
sudo zypper addrepo https://download.opensuse.org/repositories/home:kodymo/openSUSE_Tumbleweed/home:kodymo.repo
  1. Refresh your repositories
sudo zypper ref
  1. Install Nester
sudo zypper install python3-nester

Note: The repository contains three builds for nester for Python 3.9, 3.10 and 3.11. zypper will automatically decide which version to use when running the command above.

You can visit the repository on the package maintainer's OBS account.

Build it from source

If you want to contribute to Nester or just prefer building it yoursef, refer to the Contributing Guide to find out how.

Usage

Nester strives to be easy to use and will have to modes of operation:

CLI Mode

This mode will be the default and how Nester is supposed to be used.
Simply call nester, hand it the operation and the language you want and whether you want to initialize a git repository alongside it. Done!

nester <OPERATION> <OPTIONAL FLAGS> <LANGUAGE> <PROJECT_NAME>

The following operations will be available:

Operation Flags Argument Argument Effect
create -g/--git, --no-log Language Project_Name Creates the project structure for the selected lanugage in the current directory. IF -git is set it will also call git init in this directory. --no-log Will prevent Nester from creating a log entry for this project. You can find the log in your home directory at ~/nester.log
validate n/A Language Project_Name Checks the current directory and its sub-directories if it corresponds to the schema provided for the language
rename n/A Old_Project_Name New_Project_Name Renames your chosen project and its corresponding log entry. Only works for logged projects.
log --clean n/A n/A Prints out all logged projects that have been created previously
If the --clean flag is set, orphaned log entries (projects which had their directory deleted) will be purged from the log
clean -y/--yes Project_Name n/A Deletes the content of the specified project

Interactive / GUI - Mode

This is considered to be the fallback mode. If Nester is called without any arguments you will be asked to enter all parameters manually.

The parameters themselves will stay the same though.

nester

Supported Languages

Currently planned support for the following languages is planned.

Language Parameter Supported yet?
Python py ✔️
C c ✔️
C++ cpp ✔️
C# cs ✔️
Ruby rb ✔️
Java java ✔️

Note: Python will be set up with the src-Layout which currently seems to be the standard for Python projects and was the stone that started it all.

For the future we are also looking into supporting languages with built-in set up features simply by calling them aswell as other languages with standardized structure layouts, but for now this list is all which will be supported.

Documentation

Good documentation is very important to us, even with such a small project like Nester. To this end we have two methods in place to build documentation for us:

Read the Docs

On our Read the Docs we build the documentation for the project. You can find the installation and usage guides there, aswell as an overview over the languages we support or want to support.

Also there is the automatically build documentation of functions and modules that make Nester go.

Towncrier (wip)

Towncrier is used to build changelogs for us. It is required that Pull Requests, which change Nesters behaviour, include a changelog file.

Contributing

We are happy to welcome you to the group of Nester contributors. Please check the Contributing Guide to find out how you can help achieve our goal.

If you are curious on what we next need help with, check the issues page.

GitHub issues GitHub milestone

Metadata

Release files for nester-struct 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nester-struct 1.1.2
File Size Uploaded
nester-struct-1.1.2.tar.gz 3.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for nester-struct 1.1.2
File Interpreter ABI Platform
nester_struct-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 3.4 MB

Release files / nester-struct-1.1.2.tar.gz

Download URL nester-struct-1.1.2.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
a3709ed5d5efb0d9e264c6d505f42132529a82cea937e05b6c5df7616c35a504
BLAKE2b-256 checksum
How to use checksums
ff72a6ac30b0664725304beac3bb4c2cf456e9d36ce7bba62f266d81689d8ce8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.7

Release files / nester_struct-1.1.2-py3-none-any.whl

Download URL nester_struct-1.1.2-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6091ae96562d55257aae0f7e10af6f81c5f6f649f010b1ccf56d5762f9b4a5c
BLAKE2b-256 checksum
How to use checksums
c9208f4dece3f1ea9e948acaadcb2536e24b650090a8d82c4015de7372af6920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.7

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page