Skip to main content

Create directory and file architecture from a tree structure text file

Project description

๐Ÿ—๏ธ mkarchi

mkarchi (make architecture) is a command-line tool that generates complete project structures from simple tree-format text files โ€” and now, with v0.1.6, it can also generate mkarchi syntax from an existing project.

Design your architecture once, apply it anywhere, or reverse-engineer your folders back into mkarchi format.


mkarchi logo PyPI Downloads

โœจ Features

๐Ÿ“ Create directories from a tree structure ๐Ÿ“„ Create empty files automatically โœ๏ธ Create files with content using (begincontenu) / (endcontenu) ๐ŸŽฏ Preserve indentation (perfect for Python, YAML, JSONโ€ฆ) ๐Ÿ’ฌ Support comments inside structure files ๐Ÿ”„ Generate mkarchi structure from existing folders (NEW in v0.1.6) ๐Ÿš€ Fast, simple, and AI-friendly


๐Ÿ“ฆ Installation

โœ… Recommended (via pip)

pip install mkarchi

Option 2: Install from source

git clone https://github.com/yourusername/mkarchi.git
cd mkarchi
pip install -e .

Option 3: Run as module (no installation)

git clone https://github.com/yourusername/mkarchi.git
cd mkarchi
python -m mkarchi apply structure.txt

๐Ÿš€ Quick Start

1๏ธโƒฃ Create a structure file

Create a file called structure.txt:

my_project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py(begincontenu)
โ”‚   โ”‚   def main():
โ”‚   โ”‚       print("Hello, World!")
โ”‚   โ”‚
โ”‚   โ”‚   if __name__ == "__main__":
โ”‚   โ”‚       main()
โ”‚   (endcontenu)
โ”‚   โ””โ”€โ”€ utils.py(begincontenu)
โ”‚       def helper():
โ”‚           return "Helper function"
โ”‚   (endcontenu)
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ test_main.py
โ”œโ”€โ”€ README.md(begincontenu)
โ”‚   # My Project
โ”‚
โ”‚   This is an awesome project!
โ”‚   (endcontenu)
โ””โ”€โ”€ requirements.txt(begincontenu)
    pytest>=7.0.0
    requests>=2.28.0
(endcontenu)

2๏ธโƒฃ Run mkarchi

mkarchi apply structure.txt

3๏ธโƒฃ See the magic โœจ

๐Ÿš€ Creating structure from structure.txt...

๐Ÿ“ Created directory: my_project
๐Ÿ“ Created directory: my_project/src
๐Ÿ“„ Created file with content: my_project/src/main.py
๐Ÿ“„ Created file with content: my_project/src/utils.py
๐Ÿ“ Created directory: my_project/tests
๐Ÿ“„ Created file: my_project/tests/test_main.py
๐Ÿ“„ Created file with content: my_project/README.md
๐Ÿ“„ Created file with content: my_project/requirements.txt

โœ… Architecture created successfully!

๐Ÿ“– Usage

mkarchi apply structure.txt
mkarchi give [options] [output_file]
mkarchi --help
mkarchi --version
mkarchi -v

๐Ÿ”„ NEW: mkarchi give (v0.1.6)

Generate mkarchi syntax from your current directory.

Default behavior

mkarchi give

โžก๏ธ Generates structure.txt โžก๏ธ Includes file contents

Generate structure without file contents

mkarchi give -c

or

mkarchi give -c myproject.txt

๐Ÿ“„ Structure File Format

๐Ÿ“ Create Directories

Directories must end with /:

my_folder/
โ”œโ”€โ”€ subfolder/
โ””โ”€โ”€ another_folder/

๐Ÿ“„ Create Empty Files

Files without (begincontenu) / (endcontenu) are created empty:

my_folder/
โ”œโ”€โ”€ empty_file.txt
โ””โ”€โ”€ config.json

โœ๏ธ Create Files with Content

Use (begincontenu) and (endcontenu) to define file content:

script.py(begincontenu)
    print("Hello!")
    print("This is Python code")
(endcontenu)

๐ŸŽฏ Indentation Preservation

mkarchi automatically preserves indentation:

utils.py(begincontenu)
    def greet(name):
        if name:
            print(f"Hello, {name}!")
        else:
            print("Hello, World!")
(endcontenu)

Result (utils.py):

def greet(name):
    if name:
        print(f"Hello, {name}!")
    else:
        print("Hello, World!")

๐Ÿ’ฌ Comments Support

Use # for comments in your structure file:

project/
โ”œโ”€โ”€ src/          # Source code
โ”‚   โ””โ”€โ”€ main.py   # Entry point
โ””โ”€โ”€ tests/        # Tests

๐ŸŽฏ Use Cases

โšก Rapid project scaffolding

๐Ÿ“ฆ Reusable templates

๐Ÿค– AI-generated architectures

๐Ÿ“˜ Documentation & tutorials

๐Ÿงฉ Microservices setup

mkarchi apply service1.txt
mkarchi apply service2.txt

๐Ÿ”ง Advanced Example (Python Project)

python_project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ main.py(begincontenu)
โ”‚       """Main module."""
โ”‚
โ”‚       def main():
โ”‚           print("Starting application...")
โ”‚   (endcontenu)
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ test_main.py(begincontenu)
โ”‚       import pytest
โ”‚       from src.main import main
โ”‚
โ”‚       def test_main():
โ”‚           assert main() is None
โ”‚   (endcontenu)
โ”œโ”€โ”€ setup.py(begincontenu)
โ”‚   from setuptools import setup, find_packages
โ”‚
โ”‚   setup(
โ”‚       name="my-project",
โ”‚       version="0.1.0",
โ”‚       packages=find_packages(),
โ”‚   )
โ”‚   (endcontenu)
โ””โ”€โ”€ README.md

๐Ÿค Contributing

Contributions are welcome! ๐Ÿš€

Fork the repository

Create a feature branch:

git checkout -b feature/amazing-feature

Commit your changes:

git commit -m "Add amazing feature"

Push to your branch:

git push origin feature/amazing-feature

Open a Pull Request

๐Ÿ“ License

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

๐Ÿ› Issues & Feedback

Found a bug or have a feature request? Please open an issue on GitHub Issues.

โญ Support the Project

If you find mkarchi useful, please consider giving it a โญ on GitHub!


โค๏ธ Made with passion by Soufyan Rachdi

๐Ÿ“ฆ Installation

โœ… Recommended (via pip)

pip install mkarchi

Option 2: Install from source

git clone https://github.com/yourusername/mkarchi.git
cd mkarchi
pip install -e .

Option 3: Run as module (no installation)

git clone https://github.com/yourusername/mkarchi.git
cd mkarchi
python -m mkarchi apply structure.txt

๐Ÿš€ Quick Start

1๏ธโƒฃ Create a structure file

Create a file called structure.txt:

my_project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py(begincontenu)
โ”‚   โ”‚   def main():
โ”‚   โ”‚       print("Hello, World!")
โ”‚   โ”‚
โ”‚   โ”‚   if __name__ == "__main__":
โ”‚   โ”‚       main()
โ”‚   (endcontenu)
โ”‚   โ””โ”€โ”€ utils.py(begincontenu)
โ”‚       def helper():
โ”‚           return "Helper function"
โ”‚   (endcontenu)
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ test_main.py
โ”œโ”€โ”€ README.md(begincontenu)
โ”‚   # My Project
โ”‚
โ”‚   This is an awesome project!
โ”‚   (endcontenu)
โ””โ”€โ”€ requirements.txt(begincontenu)
    pytest>=7.0.0
    requests>=2.28.0
(endcontenu)

2๏ธโƒฃ Run mkarchi

mkarchi apply structure.txt

3๏ธโƒฃ See the magic โœจ

๐Ÿš€ Creating structure from structure.txt...

๐Ÿ“ Created directory: my_project
๐Ÿ“ Created directory: my_project/src
๐Ÿ“„ Created file with content: my_project/src/main.py
๐Ÿ“„ Created file with content: my_project/src/utils.py
๐Ÿ“ Created directory: my_project/tests
๐Ÿ“„ Created file: my_project/tests/test_main.py
๐Ÿ“„ Created file with content: my_project/README.md
๐Ÿ“„ Created file with content: my_project/requirements.txt

โœ… Architecture created successfully!

๐Ÿ“– Usage

mkarchi apply structure.txt
mkarchi give [options] [output_file]
mkarchi --help
mkarchi --version
mkarchi -v

๐Ÿ”„ NEW: mkarchi give (v0.1.6)

Generate mkarchi syntax from your current directory.

Default behavior

mkarchi give

โžก๏ธ Generates structure.txt โžก๏ธ Includes file contents

Generate structure without file contents

mkarchi give -c

or

mkarchi give -c myproject.txt

๐Ÿ“„ Structure File Format

๐Ÿ“ Create Directories

Directories must end with /:

my_folder/
โ”œโ”€โ”€ subfolder/
โ””โ”€โ”€ another_folder/

๐Ÿ“„ Create Empty Files

Files without (begincontenu) / (endcontenu) are created empty:

my_folder/
โ”œโ”€โ”€ empty_file.txt
โ””โ”€โ”€ config.json

โœ๏ธ Create Files with Content

Use (begincontenu) and (endcontenu) to define file content:

script.py(begincontenu)
    print("Hello!")
    print("This is Python code")
(endcontenu)

๐ŸŽฏ Indentation Preservation

mkarchi automatically preserves indentation:

utils.py(begincontenu)
    def greet(name):
        if name:
            print(f"Hello, {name}!")
        else:
            print("Hello, World!")
(endcontenu)

Result (utils.py):

def greet(name):
    if name:
        print(f"Hello, {name}!")
    else:
        print("Hello, World!")

๐Ÿ’ฌ Comments Support

Use # for comments in your structure file:

project/
โ”œโ”€โ”€ src/          # Source code
โ”‚   โ””โ”€โ”€ main.py   # Entry point
โ””โ”€โ”€ tests/        # Tests

๐ŸŽฏ Use Cases

โšก Rapid project scaffolding

๐Ÿ“ฆ Reusable templates

๐Ÿค– AI-generated architectures

๐Ÿ“˜ Documentation & tutorials

๐Ÿงฉ Microservices setup

mkarchi apply service1.txt
mkarchi apply service2.txt

๐Ÿ”ง Advanced Example (Python Project)

python_project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ main.py(begincontenu)
โ”‚       """Main module."""
โ”‚
โ”‚       def main():
โ”‚           print("Starting application...")
โ”‚   (endcontenu)
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ test_main.py(begincontenu)
โ”‚       import pytest
โ”‚       from src.main import main
โ”‚
โ”‚       def test_main():
โ”‚           assert main() is None
โ”‚   (endcontenu)
โ”œโ”€โ”€ setup.py(begincontenu)
โ”‚   from setuptools import setup, find_packages
โ”‚
โ”‚   setup(
โ”‚       name="my-project",
โ”‚       version="0.1.0",
โ”‚       packages=find_packages(),
โ”‚   )
โ”‚   (endcontenu)
โ””โ”€โ”€ README.md

๐Ÿค Contributing

Contributions are welcome! ๐Ÿš€

Fork the repository

Create a feature branch:

git checkout -b feature/amazing-feature

Commit your changes:

git commit -m "Add amazing feature"

Push to your branch:

git push origin feature/amazing-feature

Open a Pull Request

๐Ÿ“ License

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

๐Ÿ› Issues & Feedback

Found a bug or have a feature request? Please open an issue on GitHub Issues.

โญ Support the Project

If you find mkarchi useful, please consider giving it a โญ on GitHub!


โค๏ธ Made with passion by Soufyan Rachdi

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

mkarchi-0.1.7.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

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

mkarchi-0.1.7-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file mkarchi-0.1.7.tar.gz.

File metadata

  • Download URL: mkarchi-0.1.7.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for mkarchi-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c39c7fcbe073d0c1c29b3c4bef7cb2761274277d270e0d361104748fe7521d75
MD5 c8d31b9120708dbb934d6acf9f7e241b
BLAKE2b-256 ef57615bc5f1b05621a55887ceae617126062f9b1dc1fcd6069cb92c07b78d11

See more details on using hashes here.

File details

Details for the file mkarchi-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: mkarchi-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for mkarchi-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5773037cca0e05943c19c195dc67749570358f5cbe4a47719efe271c0158755b
MD5 15c27d17c83087d3d9f0fbb0f9cf2f20
BLAKE2b-256 39b014a09da1ad12246de9810918a715be71bc3f1310c0f16ff467be84ebbfa0

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