Metadata-Version: 2.1
Name: disk-treemap
Version: 1.0.7
Summary: Just another disk usage analyzer with treemap GUI.
Home-page: https://github.com/exzhawk/disk_treemap
Author: Epix Zhang
License: MIT
Description: # disk_treemap
        
        Just another disk usage analyzer with treemap GUI.
        
        ## Pros
        
        * Written in Python. Easy to run, modify and extend. Cross platform support. (Tested on Linux, Windows, and Android with
          Termux.)
        * B/S structure. You can run the scanner on a remote machine, and view treemap via a browser on a local machine
        * Support save/load a treemap. You can run the scanner on a machine, then copy result to another one and view it.
        * Support S3 or S3 compatible object storage service
        
        ## Cons
        
        * The web base frontend may suffer from performance issue if the treemap is too large.
        * Scan speed is not ideal, especially on Windows.
        
        # Installation
        
        ## Install via pip package installer
        
        ```shell
        pip install disk_treemap
        ```
        
        ## Build and install from source
        
        ```shell
        # clone the repository
        git clone 
        git submodules update --recursively
        # build static
        python3 setup.py build_static
        
        #build wheel
        python3 setup.py bdist_wheel
        #install built wheel 
        pip install dist/disk_treemap-1.0.0-py3-none-any.whl # change the filename
        ```
        
        # Usage
        
        ```
        usage: main.py [-h] [--size-tree-path SIZE_TREE_PATH] [--overwrite]
                       [--scan-only] [--host HOST] [--port PORT] [--compression]
                       [--endpoint-url ENDPOINT_URL] [--follow-links]
                       [--follow-mounts]
                       [paths [paths ...]]
        
        positional arguments:
          paths                 path(s) to scan. If multiple paths is provided, they
                                will be show in root side by side. S3 or compatible
                                object storage service is supported by a "s3://"
                                prefixed URI
        
        optional arguments:
          -h, --help            show this help message and exit
          --size-tree-path SIZE_TREE_PATH, --size_tree_path SIZE_TREE_PATH, -f SIZE_TREE_PATH
                                path to save scan result as a JSON file
          --overwrite, -o       overwrite existed JSON file. default to False
          --scan-only, --scan_only, -s
                                scan and save JSON file but do not start web server.
                                default to False
          --host HOST, -H HOST  listening host of the web server
          --port PORT, -p PORT  listening port of the web server. default to 8000
          --compression, -c     enable compression of web server. require
                                flask_compress to operate. default to False
          --endpoint-url ENDPOINT_URL
                                custom endpoint url, only affects S3
          --follow-links, --follow_links
                                follow symlinks
          --follow-mounts, --follow_mounts
                                follow mounts
        ```
        
        You may also use the module directly: `python -m disk_treemap.main`. Same arguments apply.
        
        A `size_tree.json` will be generated in the current directory. It contains file tree and file size information. Keep it
        safe!
        
        # Typical Usage
        
        **Analyze an ordinary computer**
        
        1. Run `disk-treemap <Paths to analyze>`
           
        1. After `listening 127.0.0.1:8000` appearing, open browser and navigate to http://127.0.0.1:8000 .
        
        **Analyze a remote Linux server, view on the local machine**
        
        1. Run `disk-treemap <Paths to analyze> --host 0.0.0.0`.
        
           If bandwidth between the server and the local machine is limited, try to install optional dependencies and append `--compression` to command above to enable compression.
        
        1. After `listening 0.0.0.0:8000` appearing, open browser on the local machine and navigate to http:
           //<IP address of the server>:8000 .
        
        **Analyze a remote Linux server without external accessible IP, view on the local machine**
        
        1. Run `disk-treemap <Paths to analyze> --scan_only`
        
        1. After process exit without error. There should be a file named `size_tree.json` in the current directory. Copy the
           file to local machine using `rsync` or other tools.
        
        1. Run `disk-treemap` in the directory where the copied file located.
        
        1. After `listening 127.0.0.1:8000` appearing, open browser and navigate to http://127.0.0.1:8000 .
        
        **Install and analyze an Android phone with Termux**
        
        1. Install Termux https://termux.com/
        
        1. Install Python and pip in Termux https://wiki.termux.com/wiki/Python
        
        1. Install disk_treemap via pip: `pip install termux`
        
        # TODO
        
        * Provide more visualization. Icicle/flame, sunburst maybe.
        
        * Use NTFS USN Journal to speed up scanning on Windows.
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: JavaScript
Classifier: Topic :: Desktop Environment :: File Managers
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: System :: Filesystems
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/markdown
