# Directory Tree Package
[](https://gitpod.io/from-referrer/)


[](https://badge.fury.io/py/directory-tree)

## About
Want to Display your Project / Current Working Directory as a Neat Tree? No Worries!
`Directory Tree` is a simple python utility package that displays out the Tree Structure of a User Defined Directory.
<b><i> Currently Available for All Platforms. </i></b>
## Installation
Run the Following Command on your Terminal to Install `directory_tree`:
1 . Installing the Package using `pip`:
```bash
pip install directory_tree
```
OR
```bash
pip3 install directory_tree
```
2 . Cloning the Repository:
```bash
git clone https://github.com/rahulbordoloi/Directory-Tree/
cd Directory-Tree
pip install -e .
```
You can use either of the above methods to install `directory_tree`.
## Usage
<h3> Function Signature </h3>
```python
DisplayTree(
dirPath: str='',
stringRep: bool=False,
header: bool=False,
maxDepth: float=float('inf'),
showHidden: bool=False,
ignoreList: List[str]=None,
onlyFiles: bool=False,
onlyDirs: bool=False,
sortBy: int=0
) -> Union[str, None]:
```
<h3> Arguments Description </h3>
| __Parameters__ | __CLI Parameters__ | __Description__ |
|----------------|--------------------|----------------------------------------------------------------------------------------------------------------|
| __dirPath__ | `directory` | Root Path of Operation. By Default, Refers to the Current Working Directory. |
| __stringRep__ | N/A | Boolean Flag for Direct Console Output or a String Return of the Same. By Default, It Gives out Console Output. |
| __header__ | `--header` | Boolean Flag for Displaying [OS & Directory Path] Info in the Console. Not Applicable if `stringRep=True`. |
| __maxDepth__ | `-L`, `--max-depth`| Max Depth of the Directory Tree. By Default, It goes upto the Deepest Directory/File. |
| __showHidden__ | `-a`, `--show-hidden`| Boolean Flag for Returning/Displaying Hidden Files/Directories if Value Set to `True`. |
| __ignoreList__ | `-I`, `--ignore-list`| List of File and Directory Names or Patterns to Ignore. |
| __onlyFiles__ | `-f`, `--only-files`| Boolean Flag to Display Only Files |
| __onlyDirs__ | `-d`, `--only-dirs` | Boolean Flag to Display Only Directories |
| __sortBy__ | `--sort-by` | Sorting order. Possible Options: 0 - Default, 1 - Files First, 2 - Directories First |
| __raiseException__ | `--raise-exception` | Boolean Flag to Raise Exception. By Default, It Doesn't Raise Exception |
| __printErrorTraceback__ | `--print-error-traceback` | Boolean Flag to Print Error Traceback. By Default, It Doesn't Print Error Traceback |
<h3> Command Line </h3>
1. **Treating the Cloned Directory as Executable** - <br>
(Works if you've cloning privileges but not of installation. You can clone the repo, go to its root and run the below)
```bash
python directory_tree
```
OR
```bash
python -m directory_tree
```
Use the inline help for command-line options:
```
python directory_tree --help
```
2. **Treating the Package as Module** - <br>
(You would need to install (`pip`) the Python Package in your system for the below to work)
```bash
directory_tree
```
Use the inline help for command-line options:
```bash
directory_tree --help
```
<h3> In Code </h3>
Example Script to Print out the Tree Structure of a User-Defined Directory `directoryPath`!
```python
# Importing Libraries
from directory_tree import DisplayTree
# Main Method
if __name__ == '__main__':
DisplayTree(directoryPath)
```
* Here by default, the `directoryPath` is the current working directory (CWD) unless specified by the user.
## Output Examples
Sample Directory Tree -

NOTE - Here, `letseee.txt` (File) and `Directory 4/` (Directory) are **HIDDEN** in Nature.
1. For <i>Current Working Directory</i> with Argument [Header Info = `False`]
```python
from directory_tree import DisplayTree
DisplayTree(header=True)
```

2. For <i>User Specified Directory</i> with Arguments [String Representation = `True`, Show Hidden Entities = `True`]
```python
from directory_tree import DisplayTree
customPath: str = 'Users/rahulbordoloi/Work/Python Packages Maintainence/Directory-Tree/Test/Main Directory'
stringRepresentation: str = DisplayTree(customPath, stringRep=True, showHidden=True)
print(stringRepresentation)
```

3. For <i>Current Working Directory</i> with Argument [Max Depth = `2`]
```python
from directory_tree import DisplayTree
DisplayTree(maxDepth=2)
```

## Developing `Directory Tree`
To install `directory_tree`, along with the tools you need to develop and run tests, use any of the following commands in your virtualenv:
```bash
pip install -e .[dev]
```
OR
```bash
pip install -e ".[dev]"
```
## Deprecation Notice
The `display_tree` function is deprecated and will be removed in a future release. Please use `DisplayTree` instead. The end-of-life date for `display_tree` is **December 31, 2024**. <br>
**Parameters Mapping Table** -
| __New Parameters__ | __Deprecated Parameters__ |
|----------------|----------------------------|
| __dirPath__ | dir_path |
| __stringRep__ | string_rep |
| __maxDepth__ | max_depth |
| __showHidden__ | show_hidden |
| __ignoreList__ | ignore_list |
| __onlyFiles__ | only_files |
| __onlyDirs__ | only_dirs |
| __sortBy__ | sort_by |
| __raiseException__ | raise_exception |
| __printErrorTraceback__ | print_error_traceback |
## Security & Probable Bugs
* `Directory Tree` uses recursion. It will raise a `RecursionError` on really deep directory trees.
* As the tree is lazily evaluated, it should behave well on really wide directory trees. Immediate children of a given directory are not lazily evaluated, though. It would be prompted to the last.
* If you're a Windows user, it is always advised to use `\\` instead of `\` in the address as using `\` might catchup escape sequences and corrupt the address string.
## Contact Author
Name : __Rahul Bordoloi__ <br>
Website : https://rahulbordoloi.me <br>
Email : rahulbordoloi24@gmail.com <br>
Made with <span style="color: #e25555;">♥</span> in Python!
Raw data
{
"_id": null,
"home_page": "https://github.com/rahulbordoloi/Directory-Tree/",
"name": "directory-tree",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Rahul Bordoloi",
"author_email": "rahulbordoloi24@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ba/48/7dbb436a54e0b727ba81ccb1bcf7875e875f826dcf43e01b9ad52726b179/directory_tree-1.0.0.tar.gz",
"platform": null,
"description": "# Directory Tree Package\n\n[](https://gitpod.io/from-referrer/)\n\n\n[](https://badge.fury.io/py/directory-tree)\n\n\n\n## About \n\nWant to Display your Project / Current Working Directory as a Neat Tree? No Worries!\n\n`Directory Tree` is a simple python utility package that displays out the Tree Structure of a User Defined Directory.\n\n<b><i> Currently Available for All Platforms. </i></b>\n\n## Installation\n\nRun the Following Command on your Terminal to Install `directory_tree`: \n\n1 . Installing the Package using `pip`:\n```bash\npip install directory_tree\n```\nOR\n\n```bash\npip3 install directory_tree\n```\n\n2 . Cloning the Repository:\n\n```bash\ngit clone https://github.com/rahulbordoloi/Directory-Tree/\ncd Directory-Tree\npip install -e .\n```\nYou can use either of the above methods to install `directory_tree`.\n\n## Usage\n\n<h3> Function Signature </h3>\n\n```python\nDisplayTree(\n dirPath: str='',\n stringRep: bool=False,\n header: bool=False,\n maxDepth: float=float('inf'),\n showHidden: bool=False,\n ignoreList: List[str]=None,\n onlyFiles: bool=False,\n onlyDirs: bool=False,\n sortBy: int=0\n) -> Union[str, None]:\n```\n\n<h3> Arguments Description </h3>\n\n| __Parameters__ | __CLI Parameters__ | __Description__ |\n|----------------|--------------------|----------------------------------------------------------------------------------------------------------------|\n| __dirPath__ | `directory` | Root Path of Operation. By Default, Refers to the Current Working Directory. |\n| __stringRep__ | N/A | Boolean Flag for Direct Console Output or a String Return of the Same. By Default, It Gives out Console Output. |\n| __header__ | `--header` | Boolean Flag for Displaying [OS & Directory Path] Info in the Console. Not Applicable if `stringRep=True`. |\n| __maxDepth__ | `-L`, `--max-depth`| Max Depth of the Directory Tree. By Default, It goes upto the Deepest Directory/File. |\n| __showHidden__ | `-a`, `--show-hidden`| Boolean Flag for Returning/Displaying Hidden Files/Directories if Value Set to `True`. |\n| __ignoreList__ | `-I`, `--ignore-list`| List of File and Directory Names or Patterns to Ignore. |\n| __onlyFiles__ | `-f`, `--only-files`| Boolean Flag to Display Only Files |\n| __onlyDirs__ | `-d`, `--only-dirs` | Boolean Flag to Display Only Directories |\n| __sortBy__ | `--sort-by` | Sorting order. Possible Options: 0 - Default, 1 - Files First, 2 - Directories First |\n| __raiseException__ | `--raise-exception` | Boolean Flag to Raise Exception. By Default, It Doesn't Raise Exception |\n| __printErrorTraceback__ | `--print-error-traceback` | Boolean Flag to Print Error Traceback. By Default, It Doesn't Print Error Traceback |\n\n\n<h3> Command Line </h3>\n\n1. **Treating the Cloned Directory as Executable** - <br>\n (Works if you've cloning privileges but not of installation. You can clone the repo, go to its root and run the below)\n```bash\npython directory_tree\n```\n\nOR\n\n```bash\npython -m directory_tree\n```\n\nUse the inline help for command-line options:\n```\npython directory_tree --help\n```\n\n2. **Treating the Package as Module** - <br>\n (You would need to install (`pip`) the Python Package in your system for the below to work)\n```bash\ndirectory_tree\n```\n\nUse the inline help for command-line options:\n```bash\ndirectory_tree --help\n```\n\n<h3> In Code </h3>\n\nExample Script to Print out the Tree Structure of a User-Defined Directory `directoryPath`!\n\n```python\n# Importing Libraries\nfrom directory_tree import DisplayTree\n\n# Main Method\nif __name__ == '__main__':\n DisplayTree(directoryPath)\n```\n\n* Here by default, the `directoryPath` is the current working directory (CWD) unless specified by the user.\n\n## Output Examples\n\nSample Directory Tree -\n\n\n\nNOTE - Here, `letseee.txt` (File) and `Directory 4/` (Directory) are **HIDDEN** in Nature.\n\n1. For <i>Current Working Directory</i> with Argument [Header Info = `False`]\n\n```python\nfrom directory_tree import DisplayTree\n\nDisplayTree(header=True)\n```\n\n\n\n2. For <i>User Specified Directory</i> with Arguments [String Representation = `True`, Show Hidden Entities = `True`]\n\n```python\nfrom directory_tree import DisplayTree\n\ncustomPath: str = 'Users/rahulbordoloi/Work/Python Packages Maintainence/Directory-Tree/Test/Main Directory'\nstringRepresentation: str = DisplayTree(customPath, stringRep=True, showHidden=True)\nprint(stringRepresentation)\n```\n\n\n\n3. For <i>Current Working Directory</i> with Argument [Max Depth = `2`]\n\n```python\nfrom directory_tree import DisplayTree\n\nDisplayTree(maxDepth=2)\n```\n\n\n\n\n## Developing `Directory Tree`\n\nTo install `directory_tree`, along with the tools you need to develop and run tests, use any of the following commands in your virtualenv:\n\n```bash\npip install -e .[dev]\n```\n\nOR\n\n```bash\npip install -e \".[dev]\"\n```\n\n## Deprecation Notice\nThe `display_tree` function is deprecated and will be removed in a future release. Please use `DisplayTree` instead. The end-of-life date for `display_tree` is **December 31, 2024**. <br>\n\n**Parameters Mapping Table** -\n\n| __New Parameters__ | __Deprecated Parameters__ |\n|----------------|----------------------------|\n| __dirPath__ | dir_path |\n| __stringRep__ | string_rep |\n| __maxDepth__ | max_depth |\n| __showHidden__ | show_hidden |\n| __ignoreList__ | ignore_list |\n| __onlyFiles__ | only_files |\n| __onlyDirs__ | only_dirs |\n| __sortBy__ | sort_by |\n| __raiseException__ | raise_exception |\n| __printErrorTraceback__ | print_error_traceback |\n\n\n## Security & Probable Bugs\n\n* `Directory Tree` uses recursion. It will raise a `RecursionError` on really deep directory trees.\n* As the tree is lazily evaluated, it should behave well on really wide directory trees. Immediate children of a given directory are not lazily evaluated, though. It would be prompted to the last.\n* If you're a Windows user, it is always advised to use `\\\\` instead of `\\` in the address as using `\\` might catchup escape sequences and corrupt the address string.\n\n## Contact Author\n\nName : __Rahul Bordoloi__ <br>\nWebsite : https://rahulbordoloi.me <br>\nEmail : rahulbordoloi24@gmail.com <br>\n\nMade with <span style=\"color: #e25555;\">♥</span> in Python!\n",
"bugtrack_url": null,
"license": null,
"summary": "Utility Package that Displays out the Tree Structure of a Particular Directory.",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/rahulbordoloi/Directory-Tree/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4efb047673ca107e735c0dd9e03811a6f0c8c22ed72d6db596134399580c80c5",
"md5": "2edd136a131ae7da104c63e47e225dfe",
"sha256": "2484ba5e9d35e087703913cc85e920f08b9b942859b9f5a0eae24699d3364734"
},
"downloads": -1,
"filename": "directory_tree-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2edd136a131ae7da104c63e47e225dfe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 23001,
"upload_time": "2024-08-18T17:36:57",
"upload_time_iso_8601": "2024-08-18T17:36:57.261622Z",
"url": "https://files.pythonhosted.org/packages/4e/fb/047673ca107e735c0dd9e03811a6f0c8c22ed72d6db596134399580c80c5/directory_tree-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ba487dbb436a54e0b727ba81ccb1bcf7875e875f826dcf43e01b9ad52726b179",
"md5": "0c4664610e87a39ea9d8639fd3bc8d2e",
"sha256": "d65b404d7e561db62e6321f36c612cd12da2e9fbe5cbae98da73ce14c0ec910d"
},
"downloads": -1,
"filename": "directory_tree-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "0c4664610e87a39ea9d8639fd3bc8d2e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 28347,
"upload_time": "2024-08-18T17:36:59",
"upload_time_iso_8601": "2024-08-18T17:36:59.190602Z",
"url": "https://files.pythonhosted.org/packages/ba/48/7dbb436a54e0b727ba81ccb1bcf7875e875f826dcf43e01b9ad52726b179/directory_tree-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-18 17:36:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rahulbordoloi",
"github_project": "Directory-Tree",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "directory-tree"
}