Skip to content

Commit

Permalink
Merge pull request #41 from LucasAndradeDias/LucasAndradeDias-patch-3
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
LucasAndradeDias authored Oct 5, 2023
2 parents 0ab5853 + 05e856a commit 14bb1d6
Showing 1 changed file with 51 additions and 2 deletions.
53 changes: 51 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,63 @@

# Outliner (Alpha)

The Outliner library is a Python tool that helps users trace and analyze complex objects, providing valuable insights and information about them. Whether you're dealing with intricate data structures or challenging scenarios, Outliner can assist you in gaining a clearer understanding.
Have you ever found an python complex object that you get lost trying to undestand the invoking sequence?! Now it is a solved problem.


Outliner is a Python utility that simplifies the process of tracing the calling flow of callable objects within a complex object. It helps you understand the order in which these callable objects are invoked, making it easier to navigate and comprehend complex code structures.

## Table of Contents
- [Example](#example)
- [Installation](#installation)
- [Usage](#usage)
- [Features](#features)
- [Contributing](#contributing)

## 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 visualyze the invoking flow in order with the default tree display:
```
outliner --file_path=path-to-module --object_name=test
```

```
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.
Expand All @@ -17,7 +66,7 @@ The Outliner library is a Python tool that helps users trace and analyze complex
- **Easy Integration**: Simple and straightforward integration into your Python projects.
- **Customizable**: Fine-tune tracing parameters to suit your debugging and exploration

## Instalation
## 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:**
Expand Down

0 comments on commit 14bb1d6

Please sign in to comment.