Skip to main content

A python clang-tidy runner

Project description

Clang Tidy Runner

Installation

Please install it via pip install pyclang.

pyclang

Examples

import os

from pyclang import Runner

# all the dirs you want to run clang-tidy in, will use this value to pass to all chained methods automatically
runner = Runner([os.path.join(os.environ['IDF_PATH'], 'examples', 'get-started', 'hello_world')])
runner.idf_reconfigure().normalize()  # each function is a step, all these steps are chainable
runner()  # the class instance is callable, call it to run all the chained methods

You can write custom chain method by using decorator @chain.

Restrictions: all arguments are fixed, you need to pass the rest of them when initializing Runner instance with kwargs

  • folder: which is the folder you passed when initializing Runner instance
  • log_fs: file stream (if you provided log_path) or sys.stdout
import os

from pyclang import Runner


class CustomRunner(Runner):
    @chain
    def hello(self, *args):
        print('hello world')


# and used by
runner = Runner([os.path.join(os.environ['IDF_PATH'], 'examples', 'get-started', 'hello_world')])
runner.hello().idf_reconfigure()
runner()

CLI Extension

For each custom chain method, you should also define this in cli_ext.py if there're additional arguments.

Use as a script

You can also customize it into a scripts. Now we provide a predefined script: idf_clang_tidy, which procedure is: idf_reconfigure().filter_cmd().run_clang_tidy().normalize(). You can run it by idf_clang_tidy --help for detail.

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

pyclang-0.6.3.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

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

pyclang-0.6.3-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file pyclang-0.6.3.tar.gz.

File metadata

  • Download URL: pyclang-0.6.3.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pyclang-0.6.3.tar.gz
Algorithm Hash digest
SHA256 0b1151c1986219f41cb91a5773241095e8d2283feaa8f947c989c6584fc4d56a
MD5 427dd33dfe8056aadacf83a17dafb5cf
BLAKE2b-256 845a246d89413dfb3fbd24185e0baf2697be3eb6ef5ce7f0dc22f32fcc4ce47b

See more details on using hashes here.

File details

Details for the file pyclang-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: pyclang-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pyclang-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4fdaacb66046fc6343dd95c150ea4b79dddde7f89242c3f8c166a223bdff4b12
MD5 12a53fc2c620cb106e558ee1bb3bb6d0
BLAKE2b-256 fb7881a490810908e675b80de332262aa17e4f2b485a412f817819bf78717fb1

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