{"categories":[{"label":"Build Tools","url":"https://skillfed.io/packages/category/software-development-build-tools/2"}],"enrichment":{"capability":"A pure Python implementation of a C99 preprocessor that can preprocess C/C++ header files and source code, available both as a Python module and command-line tool.","skillfed_tags":["c-preprocessing","build-automation","header-processing"],"use_cases":["Collapse header-only C++ template libraries into single-file includes for easier distribution","Preprocess C code before feeding it to documentation generators like Doxygen that have limited preprocessor capabilities","Expand macros and resolve conditional compilation in C source files as part of a Python-based build system","Benchmark and analyze header file complexity to identify optimization opportunities in build times","Selectively expand nested includes while preserving system header references in generated output"],"what_it_does":"pcpp is a C99 preprocessor written entirely in Python, designed to handle C and C++ preprocessing tasks at build or packaging time. It processes #include directives, macro definitions, and conditional compilation blocks, and can output either fully expanded code or partially preprocessed code with selective pass-through of certain directives. The package is useful for collapsing header-only C++ libraries into single files, preparing code for documentation tools like Doxygen, or integrating preprocessing into Python-based build pipelines.\n\nThe preprocessor passes a modified mcpp unit test suite and handles complex recursive macro expansions that conform to C99 standards. It offers both a Python API (by subclassing the Preprocessor class) and a command-line tool that mimics conventional C preprocessors. Partial preprocessing modes allow fine-grained control over which directives are executed versus passed through, making it flexible for different build scenarios.","worth_installing":"Yes, if you need C99 preprocessing in a Python environment. The package is stable and dependency-free, making it easy to integrate. However, the 2021 release date and aging maintenance status mean it may not track the latest C standards or receive active bug fixes\u2014suitable for established workflows but verify compatibility with your specific C/C++ code patterns first."},"id":"pcpp","links":{"html":"https://skillfed.io/packages/pcpp","md":"https://skillfed.io/packages/pcpp.md","pypi":"https://pypi.org/project/pcpp/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2021-10-29","license_spdx":null,"license_treatment":"permissive","name":"pcpp","python_support":"unspecified","summary":"A C99 preprocessor written in pure Python"},"popularity":{"monthly_downloads":791555,"position":5046,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"1.30"}
