nester-struct


Namenester-struct JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttps://github.com/ByteOtter/nester
SummaryAutomated creation of project structure
upload_time2024-01-09 13:53:56
maintainer
docs_urlNone
authorChristopher Hock
requires_python
licenseGPLv3.0
keywords automation project_structure python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
<img
    style="display: block;
           margin-left: auto;
           margin-right: auto;
           width:60%"
    src="./index_logo.png"
    alt="Our logo">
</img>
</p>
<h2 align="center" style="text-decoration:underline">Building the nest for you</h2>

<div align="center">

[![Documentation Status](https://readthedocs.org/projects/nester/badge/?version=latest)](https://nester.readthedocs.io/en/latest/?badge=latest)
![Tests](https://img.shields.io/github/actions/workflow/status/ByteOtter/nester/tests.yml?label=tests)

[![PyPI - Version](https://img.shields.io/pypi/v/nester-struct?color=green&label=PyPi%20Version&logo=PyPi&logoColor=green)](https://pypi.org/project/nester-struct/)
![PyPI - Downloads](https://img.shields.io/pypi/dm/nester-struct?label=PyPi%20Downloads&logo=pypi&logoColor=green)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nester-struct?color=green&label=Python%20Version&logo=Python&logoColor=green)
![PyPI - License](https://img.shields.io/pypi/l/nester-struct?color=green&label=License)

</div>


<h3 style="text-decoration:underline">Welcome to Nester!</h3>
A small command line tool to set up the basic structure for your Python, C#, C++, Java or Ruby project.

**Index**
- [Introduction](#introduction)
- [Our Goal](#our-goal)
- [Installation](#installation)
  - [Get it from PyPi!](#get-it-from-pypi)
  - [Get it as an `.rpm` package (wip)](#get-it-as-an-rpm-package-wip)
  - [Build it from source](#build-it-from-source)
- [Usage](#usage)
  - [CLI Mode](#cli-mode)
  - [Interactive / GUI - Mode](#interactive--gui---mode)
  - [Supported Languages](#supported-languages)
- [Documentation](#documentation)
    - [Read the Docs](#read-the-docs)
    - [Towncrier (wip)](#towncrier-wip)
- [Contributing](#contributing)

## 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.<br>
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.<br>
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](https://pypi.org)!<br>
To do so, make sure you have at least `Python 3.10` and `pip` installed.<br>
To get `Nester` simply run:

```bash
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`](https://github.com/pypa/pipx).

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

```bash
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
```bash
sudo zypper addrepo https://download.opensuse.org/repositories/home:kodymo/openSUSE_Tumbleweed/home:kodymo.repo
```
2. Refresh your repositories
```bash
sudo zypper ref
```
3. Install Nester
```bash
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](https://build.opensuse.org/package/show/home:kodymo/python-nester).

### Build it from source

If you want to contribute to `Nester` or just prefer building it yoursef, refer to the [Contributing Guide](docs/CONTRIBUTING.md) 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.<br>
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<br>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`|:heavy_check_mark:|
|C|`c`|:heavy_check_mark:|
|C++|`cpp`|:heavy_check_mark:|
|C#|`cs`|:heavy_check_mark:|
|Ruby|`rb`|:heavy_check_mark:|
|Java|`java`|:heavy_check_mark:|

*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](https://nester.readthedocs.io/en/latest/index.html#) 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](docs/CONTRIBUTING.md) 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](https://github.com/ByteOtter/nester/issues).

![GitHub issues](https://img.shields.io/github/issues/ByteOtter/nester)
![GitHub milestone](https://img.shields.io/github/milestones/progress/ByteOtter/nester/3)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ByteOtter/nester",
    "name": "nester-struct",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "automation,project_structure,python",
    "author": "Christopher Hock",
    "author_email": "christopher-hock@protonmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ff/72/a6ac30b0664725304beac3bb4c2cf456e9d36ce7bba62f266d81689d8ce8/nester-struct-1.1.2.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n<img\n    style=\"display: block;\n           margin-left: auto;\n           margin-right: auto;\n           width:60%\"\n    src=\"./index_logo.png\"\n    alt=\"Our logo\">\n</img>\n</p>\n<h2 align=\"center\" style=\"text-decoration:underline\">Building the nest for you</h2>\n\n<div align=\"center\">\n\n[![Documentation Status](https://readthedocs.org/projects/nester/badge/?version=latest)](https://nester.readthedocs.io/en/latest/?badge=latest)\n![Tests](https://img.shields.io/github/actions/workflow/status/ByteOtter/nester/tests.yml?label=tests)\n\n[![PyPI - Version](https://img.shields.io/pypi/v/nester-struct?color=green&label=PyPi%20Version&logo=PyPi&logoColor=green)](https://pypi.org/project/nester-struct/)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/nester-struct?label=PyPi%20Downloads&logo=pypi&logoColor=green)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nester-struct?color=green&label=Python%20Version&logo=Python&logoColor=green)\n![PyPI - License](https://img.shields.io/pypi/l/nester-struct?color=green&label=License)\n\n</div>\n\n\n<h3 style=\"text-decoration:underline\">Welcome to Nester!</h3>\nA small command line tool to set up the basic structure for your Python, C#, C++, Java or Ruby project.\n\n**Index**\n- [Introduction](#introduction)\n- [Our Goal](#our-goal)\n- [Installation](#installation)\n  - [Get it from PyPi!](#get-it-from-pypi)\n  - [Get it as an `.rpm` package (wip)](#get-it-as-an-rpm-package-wip)\n  - [Build it from source](#build-it-from-source)\n- [Usage](#usage)\n  - [CLI Mode](#cli-mode)\n  - [Interactive / GUI - Mode](#interactive--gui---mode)\n  - [Supported Languages](#supported-languages)\n- [Documentation](#documentation)\n    - [Read the Docs](#read-the-docs)\n    - [Towncrier (wip)](#towncrier-wip)\n- [Contributing](#contributing)\n\n## Introduction\n\nWhen you are reading this, you are probably thinking \"what?\", \"how?\" and \"why?\".\n\n**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.<br>\nJust run a command, select a language and everything will be set up for you ready to go.\n\nNow, 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.<br>\nLet me tell you though, who cares?\n\n## Our Goal\n\nOur 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.\n\nOne simple cli-Command and Nester will do the rest for you, optionally even initializing a new git-repository for you.\n\nNester, 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!\n\n## Installation\n\n### Get it from PyPi!\n\n`Nester` is released on [PyPi](https://pypi.org)!<br>\nTo do so, make sure you have at least `Python 3.10` and `pip` installed.<br>\nTo get `Nester` simply run:\n\n```bash\npip install nester-struct\n```\nYour done! Have fun with `Nester`!\n\nNote: 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.\n\nTo install the most recent Nester version from PyPi, you can use [`pipx`](https://github.com/pypa/pipx).\n\nSimply download `pipx` using your distribution's package manager and install Nester just like you would with `pip`.\n\n```bash\npipx install nester-struct\n```\n\n### Get it as an `.rpm` package (wip)\n\nWe can now offer a `.rpm` package!\n\nTo do so follow these steps (on openSUSE):\n\n1. Add the repository\n```bash\nsudo zypper addrepo https://download.opensuse.org/repositories/home:kodymo/openSUSE_Tumbleweed/home:kodymo.repo\n```\n2. Refresh your repositories\n```bash\nsudo zypper ref\n```\n3. Install Nester\n```bash\nsudo zypper install python3-nester\n```\nNote: 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.\n\nYou can visit the repository on the [package maintainer's OBS account](https://build.opensuse.org/package/show/home:kodymo/python-nester).\n\n### Build it from source\n\nIf you want to contribute to `Nester` or just prefer building it yoursef, refer to the [Contributing Guide](docs/CONTRIBUTING.md) to find out how.\n\n\n## Usage\n\n**Nester** strives to be easy to use and will have to modes of operation:\n\n### CLI Mode\n\nThis mode will be the default and how **Nester** is supposed to be used.<br>\nSimply call `nester`, hand it the operation and the language you want and whether you want to initialize a git repository alongside it. Done!\n\n```\nnester <OPERATION> <OPTIONAL FLAGS> <LANGUAGE> <PROJECT_NAME>\n```\nThe following operations will be available:\n|`Operation`|Flags|Argument|Argument|Effect|\n|-|-|-|-|-|\n|`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`|\n|`validate`|n/A|`Language`|`Project_Name`|Checks the current directory and its sub-directories if it corresponds to the schema provided for the language|\n|`rename`|n/A|`Old_Project_Name`|`New_Project_Name`|Renames your chosen project and its corresponding log entry. **Only works for logged projects.**|\n|`log`|`--clean`|n/A|n/A|Prints out all *logged* projects that have been created previously<br>If the `--clean` flag is set, orphaned log entries (projects which had their directory deleted) will be purged from the log|\n|`clean`|`-y/--yes`|`Project_Name`|n/A|Deletes the content of the specified project|\n\n### Interactive / GUI - Mode\n\nThis is considered to be the fallback mode. If **Nester** is called without any arguments you will be asked to enter all parameters manually.\n\nThe parameters themselves will stay the same though.\n\n```\nnester\n```\n\n### Supported Languages\n\nCurrently planned support for the following languages is planned.\n\n|Language|Parameter|Supported yet?|\n|-|-|-|\n|Python|`py`|:heavy_check_mark:|\n|C|`c`|:heavy_check_mark:|\n|C++|`cpp`|:heavy_check_mark:|\n|C#|`cs`|:heavy_check_mark:|\n|Ruby|`rb`|:heavy_check_mark:|\n|Java|`java`|:heavy_check_mark:|\n\n*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.\n\nFor 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.\n\n## Documentation\n\nGood 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:\n\n#### Read the Docs\n\nOn our [Read the Docs](https://nester.readthedocs.io/en/latest/index.html#) 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.\n\nAlso there is the automatically build documentation of functions and modules that make Nester go.\n\n#### Towncrier (wip)\n\nTowncrier is used to build changelogs for us. It is required that Pull Requests, which change Nesters behaviour, include a changelog file.\n\n## Contributing\n\nWe are happy to welcome you to the group of Nester contributors. Please check the [Contributing Guide](docs/CONTRIBUTING.md) to find out how you can help achieve our goal.\n\nIf you are curious on what we next need help with, [check the issues page](https://github.com/ByteOtter/nester/issues).\n\n![GitHub issues](https://img.shields.io/github/issues/ByteOtter/nester)\n![GitHub milestone](https://img.shields.io/github/milestones/progress/ByteOtter/nester/3)\n",
    "bugtrack_url": null,
    "license": "GPLv3.0",
    "summary": "Automated creation of project structure",
    "version": "1.1.2",
    "project_urls": {
        "Homepage": "https://github.com/ByteOtter/nester"
    },
    "split_keywords": [
        "automation",
        "project_structure",
        "python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9208f4dece3f1ea9e948acaadcb2536e24b650090a8d82c4015de7372af6920",
                "md5": "f42a4714f4f2d59187336a80781653b5",
                "sha256": "e6091ae96562d55257aae0f7e10af6f81c5f6f649f010b1ccf56d5762f9b4a5c"
            },
            "downloads": -1,
            "filename": "nester_struct-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f42a4714f4f2d59187336a80781653b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 30019,
            "upload_time": "2024-01-09T13:53:54",
            "upload_time_iso_8601": "2024-01-09T13:53:54.107323Z",
            "url": "https://files.pythonhosted.org/packages/c9/20/8f4dece3f1ea9e948acaadcb2536e24b650090a8d82c4015de7372af6920/nester_struct-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ff72a6ac30b0664725304beac3bb4c2cf456e9d36ce7bba62f266d81689d8ce8",
                "md5": "a0e48177c8c04c819c7b7f78a86b47eb",
                "sha256": "a3709ed5d5efb0d9e264c6d505f42132529a82cea937e05b6c5df7616c35a504"
            },
            "downloads": -1,
            "filename": "nester-struct-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "a0e48177c8c04c819c7b7f78a86b47eb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3331346,
            "upload_time": "2024-01-09T13:53:56",
            "upload_time_iso_8601": "2024-01-09T13:53:56.798927Z",
            "url": "https://files.pythonhosted.org/packages/ff/72/a6ac30b0664725304beac3bb4c2cf456e9d36ce7bba62f266d81689d8ce8/nester-struct-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-09 13:53:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ByteOtter",
    "github_project": "nester",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "nester-struct"
}
        
Elapsed time: 0.16530s