# ๐ 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)
* [Changelog](./CHANGELOG.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/fa/c1/ae5d1038f95caf7862c0ea83e8260b0d3f181c3d1a7e6f49c1344ea60999/tree_creator-1.1.3.tar.gz",
"platform": null,
"description": "# \ud83d\udcc1 Tree Creator\n\n\n\n\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* [Changelog](./CHANGELOG.md)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Create directory and file structures from tree-like text representations",
"version": "1.1.3",
"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": "f592b78cb9834f0c0862f01b6a47901aebc78b81eaf18a9afa045eb3f2369c4e",
"md5": "fd1fc3455de38725c63af1f568813067",
"sha256": "bc1ed86b2a5d35ff1b56ebd66be4866fce8d8fd7543b50f303e1417a08480563"
},
"downloads": -1,
"filename": "tree_creator-1.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fd1fc3455de38725c63af1f568813067",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 8640,
"upload_time": "2025-08-28T16:38:12",
"upload_time_iso_8601": "2025-08-28T16:38:12.642073Z",
"url": "https://files.pythonhosted.org/packages/f5/92/b78cb9834f0c0862f01b6a47901aebc78b81eaf18a9afa045eb3f2369c4e/tree_creator-1.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fac1ae5d1038f95caf7862c0ea83e8260b0d3f181c3d1a7e6f49c1344ea60999",
"md5": "3b0e2e9f73231053febe79b8f3e29ecc",
"sha256": "46d2d3181b3bca6a8fe1a3bf99faecdd5db79d549a72d229fd0d35e53bccc887"
},
"downloads": -1,
"filename": "tree_creator-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "3b0e2e9f73231053febe79b8f3e29ecc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 10774,
"upload_time": "2025-08-28T16:38:13",
"upload_time_iso_8601": "2025-08-28T16:38:13.739325Z",
"url": "https://files.pythonhosted.org/packages/fa/c1/ae5d1038f95caf7862c0ea83e8260b0d3f181c3d1a7e6f49c1344ea60999/tree_creator-1.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-28 16:38:13",
"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"
}