tree-creator


Nametree-creator JSON
Version 1.0.51 PyPI version JSON
download
home_pagehttps://github.com/jack-low/tree-creator
SummaryCreate directory and file structures from tree-like text representations
upload_time2025-07-28 13:40:17
maintainerNone
docs_urlNone
authorJack3Low
requires_python>=3.7
licenseMIT
keywords tree directory structure filesystem generator creator
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ๐Ÿ“ Tree Creator

Create directory and file structures from tree-like text representations โ€” just like the output of the `tree` command.

## โœจ Features

* Parse text-based tree structures and generate corresponding directories and files.
* Dry-run support (simulate without creating files).
* CLI and API support.
* Helpful logging for debugging and auditing.
* Version managed centrally via `_version.py`.
* Zero external dependencies.

## ๐Ÿ“ฆ Installation

```bash
pip install tree-creator
```

or (for development):

```bash
git clone https://github.com/jack-low/tree-creator
cd tree-creator
pip install -e ".[dev]"
```

## ๐Ÿš€ Usage

### โœจ Example (Python API)

```python
from tree_creator import TreeCreator

tree_text = '''
project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ””โ”€โ”€ utils.py
โ””โ”€โ”€ README.md
'''

creator = TreeCreator()
creator.create_from_text(tree_text, base_dir='./my_project')
```

### ๐Ÿ’ป CLI

```bash
tree-creator tree.txt --base-dir ./my_project
tree-creator tree.txt --dry-run
echo "dir/\nโ””โ”€โ”€ file.txt" | tree-creator -
```

### ๐Ÿงช Example using Here Document (EOF)

```bash
tree-creator -b ./output-dir -d - <<EOF
myapp/
โ”œโ”€โ”€ index.html
โ””โ”€โ”€ static/
    โ””โ”€โ”€ style.css
EOF
```

- `-d` enables dry-run mode
- `-b ./output-dir` sets the output base directory
- `-` reads from stdin

#### Options

| Option           | Description                                |
|------------------|--------------------------------------------|
| `-b, --base-dir` | Target base directory (default: `.`)       |
| `-e, --encoding` | Encoding for input file (default: `utf-8`) |
| `-d, --dry-run`  | Simulate without file creation             |
| `-v, --verbose`  | Verbose log output                         |
| `-V, --version`  | Display version                            |

## ๐Ÿ“„ Tree Format

A valid tree structure should follow conventions like:

```
project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ””โ”€โ”€ utils.py
โ””โ”€โ”€ README.md
```

- Directories end with `/`
- Use characters like `โ”œโ”€โ”€`, `โ””โ”€โ”€`, `โ”‚`

## ๐Ÿงช Development

```bash
pip install -e ".[dev]"
pytest
black .
flake8 .
mypy tree_creator
```

## ๐Ÿ“œ License

MIT License ยฉ [Jack3Low](mailto:xapa.pw@gmail.com)

## ๐Ÿ”— Links

* [PyPI tree-creator](https://pypi.org/project/tree-creator/)
* [Source Code](https://github.com/jack-low/tree-creator)
* [Issue Tracker](https://github.com/jack-low/tree-creator/issues)
* [Documentation](https://github.com/jack-low/tree-creator#readme)
* [Japanese README](https://github.com/jack-low/tree-creator/blob/main/README.ja.md)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jack-low/tree-creator",
    "name": "tree-creator",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "tree directory structure filesystem generator creator",
    "author": "Jack3Low",
    "author_email": "xapa.pw@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/18/d8/4f619d900806481054d50c98e9d26fb704f9eb60fc78ff8f0774c05f37bf/tree_creator-1.0.51.tar.gz",
    "platform": null,
    "description": "# \ud83d\udcc1 Tree Creator\n\nCreate directory and file structures from tree-like text representations \u2014 just like the output of the `tree` command.\n\n## \u2728 Features\n\n* Parse text-based tree structures and generate corresponding directories and files.\n* Dry-run support (simulate without creating files).\n* CLI and API support.\n* Helpful logging for debugging and auditing.\n* Version managed centrally via `_version.py`.\n* Zero external dependencies.\n\n## \ud83d\udce6 Installation\n\n```bash\npip install tree-creator\n```\n\nor (for development):\n\n```bash\ngit clone https://github.com/jack-low/tree-creator\ncd tree-creator\npip install -e \".[dev]\"\n```\n\n## \ud83d\ude80 Usage\n\n### \u2728 Example (Python API)\n\n```python\nfrom tree_creator import TreeCreator\n\ntree_text = '''\nproject/\n\u251c\u2500\u2500 src/\n\u2502   \u251c\u2500\u2500 main.py\n\u2502   \u2514\u2500\u2500 utils.py\n\u2514\u2500\u2500 README.md\n'''\n\ncreator = TreeCreator()\ncreator.create_from_text(tree_text, base_dir='./my_project')\n```\n\n### \ud83d\udcbb CLI\n\n```bash\ntree-creator tree.txt --base-dir ./my_project\ntree-creator tree.txt --dry-run\necho \"dir/\\n\u2514\u2500\u2500 file.txt\" | tree-creator -\n```\n\n### \ud83e\uddea Example using Here Document (EOF)\n\n```bash\ntree-creator -b ./output-dir -d - <<EOF\nmyapp/\n\u251c\u2500\u2500 index.html\n\u2514\u2500\u2500 static/\n    \u2514\u2500\u2500 style.css\nEOF\n```\n\n- `-d` enables dry-run mode\n- `-b ./output-dir` sets the output base directory\n- `-` reads from stdin\n\n#### Options\n\n| Option           | Description                                |\n|------------------|--------------------------------------------|\n| `-b, --base-dir` | Target base directory (default: `.`)       |\n| `-e, --encoding` | Encoding for input file (default: `utf-8`) |\n| `-d, --dry-run`  | Simulate without file creation             |\n| `-v, --verbose`  | Verbose log output                         |\n| `-V, --version`  | Display version                            |\n\n## \ud83d\udcc4 Tree Format\n\nA valid tree structure should follow conventions like:\n\n```\nproject/\n\u251c\u2500\u2500 src/\n\u2502   \u251c\u2500\u2500 main.py\n\u2502   \u2514\u2500\u2500 utils.py\n\u2514\u2500\u2500 README.md\n```\n\n- Directories end with `/`\n- Use characters like `\u251c\u2500\u2500`, `\u2514\u2500\u2500`, `\u2502`\n\n## \ud83e\uddea Development\n\n```bash\npip install -e \".[dev]\"\npytest\nblack .\nflake8 .\nmypy tree_creator\n```\n\n## \ud83d\udcdc License\n\nMIT License \u00a9 [Jack3Low](mailto:xapa.pw@gmail.com)\n\n## \ud83d\udd17 Links\n\n* [PyPI tree-creator](https://pypi.org/project/tree-creator/)\n* [Source Code](https://github.com/jack-low/tree-creator)\n* [Issue Tracker](https://github.com/jack-low/tree-creator/issues)\n* [Documentation](https://github.com/jack-low/tree-creator#readme)\n* [Japanese README](https://github.com/jack-low/tree-creator/blob/main/README.ja.md)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Create directory and file structures from tree-like text representations",
    "version": "1.0.51",
    "project_urls": {
        "Bug Reports": "https://github.com/jack-low/tree-creator/issues",
        "Documentation": "https://github.com/jack-low/tree-creator#readme",
        "Homepage": "https://github.com/jack-low/tree-creator",
        "Japanese README": "https://github.com/jack-low/tree-creator/blob/main/README.ja.md",
        "Source": "https://github.com/jack-low/tree-creator"
    },
    "split_keywords": [
        "tree",
        "directory",
        "structure",
        "filesystem",
        "generator",
        "creator"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2152f47a4f4f2b0e5e2d7a84679743870c4aeb4b492ebe6799769236abd6150",
                "md5": "0828d50094cbe46bc296cb390941633e",
                "sha256": "bd1ecda0a88e38f9bee760589a0a77b9cea875be638ce98fb4f48e051c4bb476"
            },
            "downloads": -1,
            "filename": "tree_creator-1.0.51-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0828d50094cbe46bc296cb390941633e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 7990,
            "upload_time": "2025-07-28T13:40:16",
            "upload_time_iso_8601": "2025-07-28T13:40:16.005696Z",
            "url": "https://files.pythonhosted.org/packages/a2/15/2f47a4f4f2b0e5e2d7a84679743870c4aeb4b492ebe6799769236abd6150/tree_creator-1.0.51-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "18d84f619d900806481054d50c98e9d26fb704f9eb60fc78ff8f0774c05f37bf",
                "md5": "09d7df65476397c2b67bfb27206a2c38",
                "sha256": "84ed4155bb69f52d4c17f7cb7de36a99ae1ed3c29a03b2d2ecd22dcc7d80b668"
            },
            "downloads": -1,
            "filename": "tree_creator-1.0.51.tar.gz",
            "has_sig": false,
            "md5_digest": "09d7df65476397c2b67bfb27206a2c38",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 9711,
            "upload_time": "2025-07-28T13:40:17",
            "upload_time_iso_8601": "2025-07-28T13:40:17.316232Z",
            "url": "https://files.pythonhosted.org/packages/18/d8/4f619d900806481054d50c98e9d26fb704f9eb60fc78ff8f0774c05f37bf/tree_creator-1.0.51.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-28 13:40:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jack-low",
    "github_project": "tree-creator",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "tree-creator"
}
        
Elapsed time: 1.18373s