Metadata-Version: 2.1
Name: sysfstree
Version: 0.1.2
Summary: sysfstree displayes gadget usb information from the ConfigFS and SysFS
Home-page: http://github.com/Belarra/sysfstree
Author: Stuart Lynne
Author-email: stuart.lynne@gmail.com
License: MIT
Download-URL: http://github.com/Belarra/sysfstree.git
Description: # SysFSTree
        
        *sysfstree* implements a generator function that will recursively iterate a file system, typically /sys, retrieving
        the contents of the files, and displaying the path names and data in a fashion similar to the tree(1) command.
        
        A small python module for generating annotated tree(1) style output for /sys items.
        
        This can be used by other modules to generate system specific tools that allow
        for showing system specific information.
        
        Calling sequence:
        
            import sysfstree
        
            sysfs = sysfstree(root, maxlevel, include, exclude):
            for l in sysfs._tree(p, os.listdir(p), "", -1):
                print("%s" % (l))
        
        Where:
        - *root* is the top level path to start at
        - *maxlevel* is the maximum depth to recurse to
        - *include* is a list of requested includes at each recursion level
        - *exclude* is a list of requested excludes at each recursion level
        
        The include and exclude use shell matching (fnmatch).
        
        ## Examples
        
        The sysfstree_raspbian Python package uses this module to display information
        about various various Raspbian specific areas in /sys. For example:
        
            # sysfstree_raspbian --gadget
            [/sys/kernel/config/usb_gadget]
            ┗━[g1]
                ┣━[os_desc]
                ┃   ┣━qw_sign:
                ┃   ┣━b_vendor_code: 0x00
                ┃   ┗━use: 0
                ┣━[strings]
                ┃   ┗━[0x409]
                ┃       ┣━serialnumber: 0123456789
                ┃       ┣━product: Bar Gadget
                ┃       ┗━manufacturer: Foo Inc.
                ┣━[configs]
                ┃   ┗━[The only one.1]
                ┃       ┣━ecm.usb0 -> /sys/kernel/config/usb_gadget/g1/functions/ecm.usb0
                ┃       ┣━acm.GS1 -> /sys/kernel/config/usb_gadget/g1/functions/acm.usb1
                ┃       ┣━acm.GS0 -> /sys/kernel/config/usb_gadget/g1/functions/acm.usb0
                ┃       ┣━[strings]
                ┃       ┃   ┗━[0x409]
                ┃       ┃       ┗━configuration: CDC 2xACM+ECM
                ┃       ┣━bmAttributes: 0x80
                ┃       ┗━MaxPower: 2
                ┣━[functions]
                ┃   ┣━[ecm.usb0]
                ┃   ┃   ┣━ifname: usb0
                ┃   ┃   ┣━qmult: 5
                ┃   ┃   ┣━host_addr: b6:5f:5e:fe:f1:50
                ┃   ┃   ┗━dev_addr: ce:68:2d:82:a1:a9
                ┃   ┣━[acm.usb1]
                ┃   ┃   ┗━port_num: 1
                ┃   ┗━[acm.usb0]
                ┃       ┗━port_num: 0
                ┣━UDC: fe980000.usb
                ┣━bcdUSB: 0x0200
                ┣━bcdDevice: 0x0001
                ┣━idProduct: 0x0104
                ┣━idVendor: 0x1d6b
                ┣━bMaxPacketSize0: 0x40
                ┣━bDeviceProtocol: 0x00
                ┣━bDeviceSubClass: 0x00
                ┗━bDeviceClass: 0x00
        
        
            # sysfstree_raspbian --soc-udc
            [/sys/devices/platform/soc]
            ┣━[fe980000.usb]
            ┃   ┣━[udc]
            ┃   ┃   ┗━[fe980000.usb]
            ┃   ┃       ┣━device -> /sys/devices/platform/soc/fe980000.usb
            ┃   ┃       ┣━subsystem -> /sys/class/udc
            ┃   ┃       ┣━[power]
            ┃   ┃       ┃   ┣━runtime_suspended_time: 0
            ┃   ┃       ┃   ┣━runtime_active_time: 0
            ┃   ┃       ┃   ┣━control: auto
            ┃   ┃       ┃   ┗━runtime_status: unsupported
            ┃   ┃       ┣━current_speed: UNKNOWN
            ┃   ┃       ┣━is_selfpowered: 0
            ┃   ┃       ┣━b_hnp_enable: 0
            ┃   ┃       ┣━is_otg: 1
            ┃   ┃       ┣━function: g1
            ┃   ┃       ┣━state: not attached
            ┃   ┃       ┣━a_hnp_support: 0
            ┃   ┃       ┣━uevent: DRIVER=configfs-gadget
            ┃   ┃       ┃       : USB_UDC_NAME=fe980000.usb
            ┃   ┃       ┃       : USB_UDC_DRIVER=g1
            ┃   ┃       ┣━is_a_peripheral: 0
            ┃   ┃       ┣━a_alt_hnp_support: 0
            ┃   ┃       ┣━maximum_speed: high-speed
        
        
        That was generated by:
        
            import sysfstree
                sysfs = sysfstree("/sys/kernel/config/usb_gadget")
                for l in sysfs._tree(p, os.listdir(p), "", -1):
                        print("%s" % (l))
        
            import sysfstree
                sysfs = sysfstree("/sys/kernel/config/usb_gadget")
                for l in sysfs._tree(p, os.listdir(p), "", -1):
                        print("%s" % (l))
        
        
        ## Running Tests
        
        sysfstree currently only has doctests.
        
        Run tests with nose::
        
            nosetests --with-doctest src/sysfstree
        
        Run tests with doctest::
        
            python -m doctest -v src/sysfstree/__init__.py
        
        ## Author
        Stuart.Lynne@belcarra.com
        Copyright (c) 2020 Belcarra Technologies (2005) Corp.
        
        
Keywords: configfs,sysfs,pi,usb,gadget
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Topic :: System :: Logging
Classifier: Topic :: Text Processing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: System Shells
Classifier: Topic :: System :: Systems Administration
Description-Content-Type: text/markdown
