Skip to main content

A module to create project structures from a tree description text file

Project description

pytreebuilder

Table of Contents

Module Structure Description

Description of Directories and Files

  • examples/ : Contains example scripts demonstrating how to use the pytreebuilder module.

    • any_project_tree.py : Script to create a simple project structure based on trees/any_project_tree.txt.
    • complex_tree.py : Script to create a complex project structure based on trees/complex_tree.txt.
  • logs/ : Directory for log files generated by the pytreebuilder module.

    • pytreebuilder.log : Log file recording the actions performed by the pytreebuilder module.
  • tests/ : Contains unit tests for the pytreebuilder module.

    • init.py : Initialization file for the tests package.
    • test_pytreebuilder.py : Unit tests for the pytreebuilder module.
  • pytreebuilder/ : Core module directory containing the main functionality.

    • init.py : Initialization file for the pytreebuilder package.
    • pytreebuilder.py : Main script containing the PyTreeBuilder class and its methods.
  • trees/ : Directory containing project structure description files.

    • any_project_tree.txt : Description file for a simple project structure.
    • complex_tree.txt : Description file for a complex project structure.
  • .gitignore : Specifies files and directories to be ignored by Git.

  • DISCRIPTION.md : Provides a detailed description of the module's directory structure and their functions.

  • LICENSE : Contains the license information for the project.

  • README.md : Provides an overview and instructions for the project.

  • setup.py : Script for setting up the pytreebuilder module, including installation and dependencies.

  • TREE : Contains the detailed description of the module's directory structure.

Description of the pytreebuilder Project

Objective

The pytreebuilder project aims to simplify the creation of project structures using a text-based structure description file. It allows developers to quickly and easily generate consistent and well-organized project structures.

Key Features

  • Automatic creation of directories and files from a structure description file.
  • Logging configuration to track actions performed by the module.
  • Error handling to ensure smooth and uninterrupted execution.

Any Project Structure

The structure description file trees/any_project_tree.txt contains the following structure:

anyproject/
├── anyproject/
│   ├── __init__.py
│   └── anyproject.py
├── tests/
│   ├── __init__.py
│   └── test_anyproject.py
├── setup.py
├── README.md
└── LICENSE

Installation

Cloning the Repository

To get started, you need to clone the repository from GitHub. Follow these steps:

  1. Open your terminal or command prompt.
  2. Navigate to the directory where you want to clone the repository.
  3. Run the following command to clone the repository:
    git clone https://github.com/eis-x/pytreebuilder.git
    
  4. Navigate into the cloned repository:
    cd pytreebuilder
    

Local Installation

To install the pytreebuilder module locally, use the following command:

python -m pip install -e .

Installation via Internet

To install the pytreebuilder module from PyPI, use the following command:

pip install pytreebuilder

Usage

Running the Script

To run the script and generate the project structure, use the following command:

python examples/any_project_tree.py

Command Line Arguments

The pytreebuilder module accepts the following command line arguments:

  • -t or --tree-file-path : Path to the structure description file (required).
  • -v or --version : Show the program's version number and exit.

How to Test the pytreebuilder Module

Prerequisites

  • Python 3.6 or higher
  • unittest for unit testing

Step-by-Step Guide

  1. Ensure all necessary files are in place.
  2. Run the unit tests with the following command:
    python -m unittest discover tests/
    

Example Output

The unit tests should display a result indicating that all tests have passed. If the test passes, you should see something like this:

Directory created: anyproject/
Directory created: anyproject/anyproject/
File created: anyproject/anyproject/__init__.py
File created: anyproject/anyproject/anyproject.py
Directory created: anyproject/tests/
File created: anyproject/tests/__init__.py
File created: anyproject/tests/test_anyproject.py
File created: anyproject/setup.py
File created: anyproject/README.md
File created: anyproject/LICENSE
.
----------------------------------------------------------------------
Ran 1 test in 0.014s

OK

If there is a failure, you will see an output indicating what went wrong, similar to this:

F
======================================================================
FAIL: test_create_project_structure (tests.test_treebuilder.TestTreeBuilder)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "tests/test_treebuilder.py", line 27, in test_create_project_structure
    self.assertTrue(os.path.isdir('anyproject'))
AssertionError: False is not true

----------------------------------------------------------------------
Ran 1 test in 0.004s

FAILED (failures=1)

Troubleshooting

  • File Not Found: Ensure that the trees/any_project_tree.txt file exists in the root directory of your project.
  • Import Errors: Make sure the pytreebuilder module is installed and the import paths are correct.
  • Directory and File Checks: Verify that the paths and names in the test script match the actual structure and names in your project.

By following these steps, you can effectively test the pytreebuilder module and ensure that it works as expected. If you have any questions or need further assistance, feel free to reach out! 😊

Example: Using the pytreebuilder Module

Step 1: Create a Description File

Create a structure description file, for example trees/any_project_tree.txt.

Step 2: Install the pytreebuilder Module

Install the module using one of the installation methods described above.

Step 3: Create a Python Script to Use the Module

Create a Python script to generate the project structure, for example examples/any_project_tree.py.

Step 4: Run the Script

Run the script to generate the project structure:

python examples/any_project_tree.py

Step 5: Verify the Project Structure

Verify that the project structure has been created correctly by checking the generated directories and files.

Running Examples from the Project Root

Example 1: Simple Project Structure

Use the file trees/any_project_tree.txt to generate a simple project structure.

Example 2: Complex Project Structure

Use the file trees/complex_tree.txt to generate a complex project structure.

Summary

The pytreebuilder module simplifies the creation of project structures using text-based structure description files. It allows developers to quickly and easily generate consistent and well-organized project structures.

Contributing to the Project

Fork the Repository

  • Go to the GitHub repository page and click "Fork" to create a copy of the repository in your account.

Create a Branch

  • Create a branch for your changes:
    git checkout -b branch-name
    

Submit Changes

  • Commit your changes and push them to your forked repository:
    git add .
    git commit -m "Description of changes"
    git push origin branch-name
    
  • Create a Pull Request to submit your changes to the main repository.

Support and Assistance

For any questions or assistance, please contact the project author via GitHub.

Copyright

This project is licensed under the MIT License. See the LICENSE file for more details.


If you have any questions or suggestions for improvement, feel free to let me know! 😊

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

pytreebuilder-0.1.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

pytreebuilder-0.1-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file pytreebuilder-0.1.tar.gz.

File metadata

  • Download URL: pytreebuilder-0.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for pytreebuilder-0.1.tar.gz
Algorithm Hash digest
SHA256 5b0af7882994fadcef97242fb65f9197aa04ba413fb7c9cf94c41a2a10cfe13e
MD5 7d1ee6ff1ea17acbf951d2c2c5ba6bde
BLAKE2b-256 3ff379fb6d5d2f5468b77cf697e8faa29e5ec036f3eee04dd76a96f45df18a8c

See more details on using hashes here.

File details

Details for the file pytreebuilder-0.1-py3-none-any.whl.

File metadata

  • Download URL: pytreebuilder-0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for pytreebuilder-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e362c1e714d6f71b3af208242aff9a79e340752ee0729126441a44dc19a96a75
MD5 d8aad3cde8e823e4fa81b6ea87b7c59d
BLAKE2b-256 c93b981e08232818664ade94f2a7f8649e63aa900a252f9f3545ef6b5bec4294

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