home.social

#cyclomatic — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #cyclomatic, aggregated by home.social.

  1. So I've created a #wily report for one thousand Black (the Python formatter) commits.

    You can see that there was a huge (and complex), 7k lines __init__.py that got broken up around May 2021.

    There's a trend of increasing LOC and complexity.

    This report shows me there's a lot to improve in wily's code. Hopefully I'm back at that.

    @hugovk @ambv

    #Python #Black #formatter #CodeStyle #Cyclomatic #Complexity #Halstead #codequality #codemetrics

    devdanzin.github.io/black/

  2. Adding JSON support for #wily: now the results of diff, index, rank and report can be output as JSON.

    If you can help with code review or tips on how to improve the output, I'm open to all suggestions.

    Wily is a CLI application for tracking, reporting on complexity of Python code. It uses git to go through each revision and run complexity and code-analysis metrics over the code.

    #python #Cyclomatic #Complexity #Halstead

    github.com/tonybaloney/wily/pu

  3. Mike Driscoll: Learning About Code Metrics in #Python with Radon

    Nice introduction to #radon:

    """
    You can use Radon to help you find complex code in your code base.
    [...]
    Here are the four commands that radon currently can use:

    cc: compute #Cyclomatic #Complexity
    raw: compute raw metrics
    mi: compute #Maintainability Index
    hal: compute #Halstead complexity metrics
    [...]
    """

    #codequality #codemetrics

    blog.pythonlibrary.org/2023/09

  4. At last, submitted a proposal for a #Python source code annotator for #wily, by @tonybaloney.

    It allows inline visualization of code metrics in source code, inspired by @coveragepy

    Uses #radon to calculate #Cyclomatic #Complexity and #Halstead metrics, then adds color coded metric values to a #Pygments highlighted source listing and allows changing the metrics for visualization.

    The code works, there are screenshots and an example in the linked issue.

    #codequality

    github.com/tonybaloney/wily/is

  5. Today I wrote some trivial #python code to convert .gitignore rules to #radon exclude/ignore patterns. It turns out it was completely unnecessary for our project (#wily), because we already pass a tight list of targets for radon to scan.

    But it might be useful for upstream radon users, as an option to gather exclude/ignore rules from .gitignore. So I'll propose that as a new feature and see how it goes.

    #codequality #Cyclomatic #Complexity #Halstead #gitignore

    github.com/rubik/radon

  6. Proposed 2 simple PRs to #radon, adding class names to method names in Halstead reports. A third is in the works, adding line numbers to #Halstead metrics.

    "Radon is a #Python tool that computes various metrics from the source code. Radon can compute:

    #McCabe's complexity, i.e. #cyclomatic #complexity

    raw metrics (these include SLOC, comment lines, blank lines, &c.)

    Halstead metrics (all of them)

    #Maintainability Index (the one used in Visual Studio)"

    #codequality

    github.com/rubik/radon

  7. Working on a #Python source code annotator for #wily, which uses #radon to calculate #Cyclomatic #Complexity and #Halstead metrics. It adds metric values to a #Pygments highlighted source listing and allows changing the metrics for visualization.

    Because radon doesn't record line numbers for Halstead metrics, we do a little song and dance to add them. Will probably offer a patch to include them upstream.

    #codequality 🐍

    devdanzin.github.io/wily/annot

  8. Some more #Python code quality visualization improvements for #wily: it's now possible to annotate source code with #Halstead metrics (#Cyclomatic #Complexity was already working) and select which one to display and use to color code blocks.

    See a sample report here: devdanzin.github.io/wily/ (click the filenames for the annotated source code).

    Code for the annotator currently lives at github.com/devdanzin/wily/tree, I hope to submit it for upstreaming soon-ish.

    #CodeQuality