.. pydftracer documentation master file Welcome to pydftracer documentation! ==================================== **pydftracer** is the Python frontend for `DFTracer `_, a powerful I/O profiling and tracing tool. This library provides Python bindings and utilities to integrate DFTracer profiling capabilities into Python applications, with specialized support for AI/ML frameworks and PyTorch integration. Features -------- - **Python Frontend**: Easy-to-use Python API for DFTracer profiler - **Type-Safe Decorators**: Fully type-checked with mypy, preserves function signatures - **Function Decorators**: Simple ``@dft_fn`` decorator for tracing Python functions - **AI/ML Support**: Specialized tracing for AI/ML workflows - **PyTorch Integration**: Capture PyTorch profiler events to DFTracer traces - **PyTorch Dynamo Integration**: Wrapper of PyTorch's Dynamo - **Automatic I/O Tracing**: Transparent tracing of I/O operations when enabled - **Debugging Tools**: Built-in debugging utilities - **Environment Configuration**: Flexible configuration via environment variables - **Cross-platform**: Works on Linux and other Unix-like systems .. toctree:: :maxdepth: 1 :caption: Links: DFTracer Documentation DFTracer GitHub .. toctree:: :maxdepth: 2 :caption: Contents: installation quickstart examples type_safety ai_ml_guide pytorch dynamo_guide developers api/index Getting Started --------------- To get started with pydftracer, check out the :doc:`installation` guide and then follow the :doc:`quickstart` tutorial. Installation ~~~~~~~~~~~~ .. code-block:: bash pip install pydftracer For more detailed installation instructions, see :doc:`installation`. Quick Example ~~~~~~~~~~~~~ .. code-block:: bash # Enable DFTracer via environment variable export DFTRACER_ENABLE=1 .. code-block:: python from dftracer.python import dftracer, dft_fn # Initialize the DFTracer logger df_logger = dftracer.initialize_log("trace.pfw", "/tmp/data", -1) # Create a tracer for your functions io_tracer = dft_fn("io_operations") @io_tracer.log def read_data(filename): with open(filename, 'r') as f: return f.read() # I/O operations will be automatically profiled data = read_data('data.txt') # Finalize the logger df_logger.finalize() Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`