Skip to main content

A library for tracing function calls with depth control and filtering.

Project description

call-tracer

call-tracer is a library for tracing function calls with depth control and filtering.



Installation

pip install call-tracer

(Required: python >= 3.6)



Usage

Basic Usage

from calltracer import tracer

def add_one(n):
    return n+1

def add_two(n):
    n = add_one(n)
    n = add_one(n)
    return n

@tracer
def main():
    n = add_two(4)

main()

sample_1



Alternatively, you can use tracer.start() instead of the decorator.

tracer.start()
add_two()
tracer.end()


Customizations

If you want to use tracer to monitor the internal workings of langchain, you'll encounter a tremendous number of calls and returns, each accompanied by very long file paths. Therefore, you may need to customize the tracer slightly:

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from calltracer import tracer
tracer.set_max_depth(3)
tracer.set_path_cuts(['python3.9'])
tracer.set_path_filters(['python3.9/abc', 'pydantic'])


@tracer
def main():
    prompt = ChatPromptTemplate.from_messages([
        ("system", f"You are a helpful assistant"),
        MessagesPlaceholder(variable_name="chat_history"),
        ("user", "{input}")
    ])

main()

sample_1

  • set_max_depth : Set the maximum depth for tracing. (prints depth <= max_depth)
  • set_path_cuts : Specify paths to be shortened in the trace output to simplify and clean up the displayed file paths in the trace logs.
    • For example, if you use trace.set_path_cuts(['PythonProjects']), the path /Users/your_name/PythonProjects/your_project/sample.py will be shortened to your_project/sample.py.
  • set_path_filters : Specify paths to be excluded from tracing, preventing the trace function from logging calls and returns for files matching these paths.
  • set_show_args : If True, the tracer displays the input arguments of the calls.


Contributing

  • Pull requests are welcome.
    • For major changes, please open an issue first to discuss what you would like to change.
    • Please make sure to update tests as appropriate.


License

MIT

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

call-tracer-1.2.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

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

call_tracer-1.2.2-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file call-tracer-1.2.2.tar.gz.

File metadata

  • Download URL: call-tracer-1.2.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for call-tracer-1.2.2.tar.gz
Algorithm Hash digest
SHA256 d39e96e1375611f897b630709e8c2751bd0855e03409156d1f07c139f5df41d3
MD5 7e5004492c2a594a60e4525826cfa956
BLAKE2b-256 5312badffeeea193baf93e09e3a929e64b741b89a5e626e2b66bcc61b397925d

See more details on using hashes here.

File details

Details for the file call_tracer-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: call_tracer-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for call_tracer-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dbda4ca1efc26c1493846b03102ec77b493efba4c11d916aa985d0b9d8969dd6
MD5 befa61651b7104ba4d945d942247c6b2
BLAKE2b-256 0ba53cd31e0dbe033d42cb13329563c73e5e2ef2016476fadfa883befe221116

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