Skip to main content

A tracer for compiled objects

Project description

Outliner

Have you ever got confused trying to undestand python complex object invoking sequence?! Now it is a solved problem.

Outliner is a Python utility designed to simplify the process of tracing the calling flow of callable objects within a complex Python object. It aims to help developers understand the order in which callable objects are invoked within complex code structures, making it easier to navigate and comprehend such structures.

Table of Contents

Example

We have the given complex object:

class test:
    def __init__(self) -> None:
        self.func1()
    def func1(self):
        self.func2()
        return
    def func2(self):
        return
def test2():
    a = test()
    return

With the outliner you can visualize the invoking flow in order with the default tree display:

 outliner --file_path=path-to-module --object_name=test

output:

    test2
        │──1. __init__
        │──2. func1
        │──3. func2

Or get more detailed data about invoked objects (-d="detailed_data"):

 outliner --file_path=path-to-module --object_name=test -d="detailed_data"

output:

('test2', {'call': 1, 'return': 1, 'line': 2})
('__init__', {'call': 1, 'return': 1, 'line': 1})
('func1', {'call': 1, 'return': 1, 'line': 2})
('func2', {'call': 1, 'return': 1, 'line': 1})

Features

  • Function Tracing: Trace function calls, returns, and line execution within a Python module.
  • Data Collection: Collect detailed data on function executions and execution flow.
  • Method Tree: Display a tree of functions used by the object for object behavior exploration.
  • Easy Integration: Simple and straightforward integration into your Python projects.
  • Customizable: Fine-tune tracing parameters to suit your debugging and exploration

Installation

As the library hasn't been released yet, to use it on your machine, you will need to do following steps:

  • Use pip install: Make sure that path contains the setup.py file
    pip install -i https://test.pypi.org/simple/ outliner
    

Usage

The Outliner library can be used via the command-line interface (CLI) to trace Python code. Follow these steps to use it:

  1. Open your terminal.

  2. Run the following command to trace a Python object's execution:

bashCopy code

outliner --file_path=<path-to-object> --object_name=<object-name> --object_args=<arguments-passed-to-object>

Command Line Options

  • --file_path: Specifies the path to the Python module containing the object to be traced.

  • --object_name: Specifies the name of the object to be traced.

  • --object_args: Optionally, you can specify arguments to pass to the object.

  • --display: Optionally, you can choose the output type(tree or detaield_data)

Contributing

Contributions to the Outliner library are welcome. If you have ideas for improvements, find any issues, or want to contribute to its development, please open an issue or submit a pull request on GitHub.

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

outliner-tracer-1.0.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

outliner_tracer-1.0.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file outliner-tracer-1.0.0.tar.gz.

File metadata

  • Download URL: outliner-tracer-1.0.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for outliner-tracer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 edc4665ea15e4c12c2d6805422223b3fbb39993ed310df72c7e6209d456832cd
MD5 91434ecb803c88fda8cf0eed22c74faa
BLAKE2b-256 8db892fb4ac5923d93d4da03cc05a2e10376e783b91682a7e2ab17152c7e2675

See more details on using hashes here.

File details

Details for the file outliner_tracer-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for outliner_tracer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ac00dbe1418e961bdd06bd497c58b9c779c3b6d730b2bbcd9749a1e4744a93b
MD5 6fc14fec2b550aef017a5d3784c357a9
BLAKE2b-256 7164d1c6c251c0b3833f20cf24e895a6e915c8c16003f67a5bede2446695983a

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