Skip to main content

handle dirs, mktree from .rst or .json

Project description

Installation

$ pip3 install efdir

License

  • MIT

Quickstart

  • pip3 install efdir

  • edit a cfg.rst file using bullet-list as below:

/docs/images/rst.0.png
  • run cmd efdir cfg.rst wkdir

/docs/images/mktree.0.png

Usage

  • fobj

    from efdir import fobj
    
    # creat a dir
    fo = fobj.F('tstdir')
    fo
    #>>> fo
    #/opt/PY3/EFDIR/TEST/tstdir
    
    # creat subdir
    fo.subdir0
    fo.subdir1
    fo.sub#<TAB>
    
    #>>> fo.subdir0
    #/opt/PY3/EFDIR/TEST/tstdir/subdir0
    #>>> fo.subdir1
    #/opt/PY3/EFDIR/TEST/tstdir/subdir1
    #>>>
    #>>> fo.subdir
    #fo.subdir0  fo.subdir1
    #>>> fo.subdir
    
    fo.subdir0.dir10
    fo.subdir0.dir11
    fo.subdir0.dir12
    #>>> fo.subdir0.dir10
    #/opt/PY3/EFDIR/TEST/tstdir/subdir0/dir10
    #>>> fo.subdir0.dir11
    #/opt/PY3/EFDIR/TEST/tstdir/subdir0/dir11
    #>>> fo.subdir0.dir12
    #/opt/PY3/EFDIR/TEST/tstdir/subdir0/dir12
    #>>>
    
    #check
    import os
    os.system('tree tstdir')
    #>>> import os
    #>>> os.system('tree tstdir')
    #tstdir
    #├── subdir0
    #│   ├── dir10
    #│   ├── dir11
    #│   └── dir12
    #└── subdir1>>> import os
    #
    
    #rename
    
    fo.subdir0 = "subdir00"
    fo.subdir#<TAB>
    
    #>>> fo.subdir0 = "subdir00"
    #>>> fo.subdir
    #fo.subdir00  fo.subdir1
    #>>> fo.subdir
    
    #rmdir
    del fo.subdir1
    os.system('tree tstdir')
    
    #>>> del fo.subdir1
    #/opt/PY3/EFDIR/TEST/tstdir/subdir1
    #>>>
    #>>> os.system('tree tstdir')
    #tstdir
    #└── subdir00
    #    ├── dir10
    #    ├── dir11
    #    └── dir12
    
    
    
    # parent
    fo.subdir00.dir12.__parent
    fo.subdir00.dir12.__parent.__parent
    fo.subdir00.dir12.__parent.__parent.__parent
    # >>> fo.subdir00.dir12.__parent
    # /tstdir/subdir00
    # >>> fo.subdir00.dir12.__parent.__parent
    # /tstdir
    # >>> fo.subdir00.dir12.__parent.__parent.__parent
    # null
    # >>>
  • using .rst

     import efdir.mktree as emk
    
    
    # if the name end with a "$", it means this is a file, such as "xx$",  will touch a empty file named xx
    # else, it means this is a dir ,will make a dir
    
    rst_cfg = """
    - a
    
        - b
    
                - xx$
                - yy
                - zz
        - c
        - d
    - e
    - f
    """
    
    
    emk.mktree(rst_cfg,"./wkdir")
    #or directly from a cfg.rst file(filename must end with .rst)
    emk.fmktree("./cfg.rst","./wkdir")
    
    ######################
    TEST# tree wkdir
    wkdir
    ├── a
    │   ├── b
    │   │   ├── xx
    │   │   ├── yy
    │   │   └── zz
    │   ├── c
    │   └── d
    ├── e
    └── f
    
    8 directories, 1 file
    ######################
  • using .json

    import efdir.mktree as emk
    # if the name end with a "$", it means this is a file, such as "init.sh$",  will touch a empty file named init.sh
    # else, it means this is a dir ,will make a dir
    
    json_cfg = {
        "REPO":{
            "BACKUP" : {},
            "DRAFT" : {},
            "INIT" : {
                "init.sh$":{}
            },
            "EDICT" : {
                "IMGS":{
                    "img0.desc$":{},
                    "img1.desc$":{}
                },
                "DETAILS":{
                    "1.info$":{},
                    "2.info$":{}
                },
                "edict.py$":{}
            },
            "setup.py$":{},
            "README.md$":{},
            "LICENSE$":{},
            "install.sh$":{},
            "uninstall.sh$":{},
            "update.sh$":{},
            "pypiupload.sh$":{}
        }
    }
    
    emk.mktree(json_cfg,"./wkdir")
    #or directly from a cfg.json file(filename must end with .rst)
    emk.fmktree("./cfg.json","./wkdir")
  • from cmdline

    root@# efdir cfg.rst "rstwkdir"
    root@# tree rstwkdir
    root@# efdir cfg.json "jsonwkdir"
    root@# tree jsonwkdir

Features

  • mktree from .rst bullet-list config

  • mktree from .json config

References

  • docutils

  • shutil

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

efdir-0.0.24.tar.gz (20.1 kB view details)

Uploaded Source

File details

Details for the file efdir-0.0.24.tar.gz.

File metadata

  • Download URL: efdir-0.0.24.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.9

File hashes

Hashes for efdir-0.0.24.tar.gz
Algorithm Hash digest
SHA256 6bb806b2888bf77d90eaab50230547f3b4dd0990acaf75c19bec51766f0f8d1d
MD5 1d71158052c6895bb47f656b51f57a57
BLAKE2b-256 b857ac521fa48f0d2bebc1d090f3ad7644d0bfc111ada8be4d5c7a55cca0433b

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