Skip to main content

Generate structured Python project folders instantly

Project description

Droot

Droot (short for Darkian Root) is a Python project scaffolding tool designed to help developers quickly bootstrap new Python applications with a clean, consistent, and well-organized project structure — which I call the Droot-type project structure.

Why Droot?

Starting a new Python project often involves repetitive setup tasks: creating folders, adding boilerplate files, initializing version control, configuring licenses, and more. Droot automates these routine steps, so you can focus on writing code faster and with best practices baked in.


Features

  • Creates a standardized folder layout:
    project_name/
    ├── LICENSE
    ├── README.md
    ├── pyproject.toml
    ├── requirements.txt
    ├── run.py
    ├── src/
        ├── project_name/
            ├── __init__.py
            └── main.py
        ├── autotests.py
        └── utils.py
        └── tests/
    
  • Supports multiple popular open-source licenses (MIT, Apache 2.0, GPL, BSD, Unlicense)
  • Automatically populates license files with current year and author name
  • Adds starter boilerplate files for application entry point, utility functions, and test skeletons
  • Adds metadata comments ("watermarks") in __init__.py
  • Interactive CLI to provide project details and select license(s)
  • Modular design for future extensibility and custom workflows

Installation

Clone the repository (or use pip once published):

git clone https://github.com/2kDarki/Droot.git
cd Droot

You can also install it globally or use directly from the source.


Usage

Run Droot to start scaffolding your new project:

You can launch Droot interactively:

python droot.py

Or provide arguments directly:

python droot.py --name Droot --author Darki --license MIT --path ./

Available Flags:

Flag Description
--name Project name
--author Author name
--path Target folder for project
--dual-license Optional second license
--no-license Skip license generation
--minimal Skip test setup and extras
--force Overwrite if folder exists

Configuration

Currently, Droot uses a fixed folder structure (the Droot-type structure) tailored for Python projects. In future versions, we may add support for other project types.

Testing

Test scripts should be placed inside the src/tests/ folder.

Run all tests with:

python src/autotests.py

License

Droot itself is licensed under the MIT License. See the LICENSE file for details.


Contributing

Contributions are welcome!
If you'd like to write tests, improve logic, or add features:

  • Fork the repo
  • Create a feature branch
  • Submit a pull request

Disclaimer

Droot is a powerful tool that manipulates the filesystem — it creates folders, generates files, and, in some cases (when --force is used), removes existing directories. While it includes safety checks and input validation to prevent accidental data loss, misuse or edge-case errors may still lead to destructive behavior.

Important notes

  • Always double-check your inputs (especially project name and target path).
  • Avoid running Droot in critical or sensitive directories.
  • If testing or experimenting with Droot, use a safe, empty workspace.
  • When using the CLI arguments, be cautious with --force, as it can delete existing content in the target folder.
  • NB: Its only when --force is true that it overwrites.

By using Droot, you accept full responsibility for how it interacts with your system. It is provided as-is, with no guarantees of safety in all environments.

That said — with careful use, Droot is a reliable and productivity-boosting tool.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

droots-0.1.1.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

droots-0.1.1-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file droots-0.1.1.tar.gz.

File metadata

  • Download URL: droots-0.1.1.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for droots-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2dd0701f20be4fafbba27d67d3ce3c255c094e9f95196d367a78e4f35e8c58b0
MD5 fc8c8022cc81c013ce76423d56b67fa4
BLAKE2b-256 7d6a2049cf07f9316b5d3a3e65f3e4818111df59e9e5feefa8a897d87a1e9fe3

See more details on using hashes here.

File details

Details for the file droots-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: droots-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for droots-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f0dbba24cfd89a69c5d1cbc050b35abc5731348b759a7c82a6b253256f6b0387
MD5 d14dcd810d25a20fa7f3757c1c4ca97e
BLAKE2b-256 6fd81dd9b0ec1266ec3817eb2f5ecae573cb053618f9150750fa2752395d7f52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page