/fastero

Python timeit CLI for the 21st century! colored output, multi-line input with syntax highlighting and autocompletion and much more!

Primary LanguagePythonMIT LicenseMIT

fastero

Python timeit CLI for the 21st century

Read the Documentation

Installation & Usage

Install either with pipx or pip. Both work, use what you want. Or optionally you can install from github using pip install git+https://github.com/wasi-master/fastero

For usage please check out the documentation

Features

For more info on all of these features, please the documentation

  • 🌟 Beautiful formatted, and colored output. Output is reminiscent of hyperfine
  • 🤯 Amazing exporting options
    • 📊 Export as a bar plot with matplotlib
    • 🌃 Export as a beautiful image with the console output
    • ℹ️ Export as Markdown, HTML, CSV, AsciiDoc tables
    • 💾 Export as JSON and YAML data to use them elsewhere
      • 🔁 You can also import the JSON data later within fastero to re-run the benchmark with the same parameters or to export the data again with different parameters.
  • 🚀 Extremely intuitive and easy to use.
  • 🔢 Benchmark multiple snippets
    • 🔤 Assign a name to each snippet to make it easier to distinguish
    • 📈 Get nice statistics about the each of the snippet and a summary on how fast each of them are compared to each other
  • ↩ Enter multiline code in an input with syntax highlighting and amazing autocomplete
  • ⏰ Excellent time parsing. Inputs like 500ms, 10s, 1m5s, 1.5m, 1h30m15s, etc. work flawlessly
  • 🔥 Run a few times without timing with the warmup parameter to fill caches and things like that.
  • 👨 Customize it to your liking.
    • 🔣 Custom time formats e.g. nanoseconds, microseconds, milliseconds, seconds etc.
    • 🎨 Custom theme for code input and/or output.
  • 🎛️ Control how long each snippet is benchmarked for
    • 🔢 Specify a minimum and a maximum amount of runs to calculate the number of runs automatically based on run duration
    • 🔟 Or specify a definite number of runs for manual override
  • 💻 Cross-platform.
  • 🤯 Open source.
  • 📚 Extensive documentation.

Acknowledgements

  • hyperfine - Inspiration for creating this library and the UI.
  • snappify.io - Inspiration for the Image export.
  • rich - Used for beautiful output