{"categories":[{"label":"Code Generators","url":"https://skillfed.io/packages/category/software-development-code-generators"},{"label":"Pre-processors","url":"https://skillfed.io/packages/category/software-development-pre-processors"}],"enrichment":{"capability":"Fypp is a Python-powered preprocessor for Fortran that adds conditional compilation, template metaprogramming, and macro support to Fortran source files using Python expressions in preprocessor directives.","skillfed_tags":["fortran","code-generation","build-tool"],"use_cases":["Generate type-specific Fortran procedure overloads (e.g., real, complex variants) from a single template definition.","Conditionally include MPI, OpenMP, or serial code paths based on preprocessor variables set at build time.","Insert build metadata (timestamps, version strings) or debug assertions into Fortran source during preprocessing.","Define reusable Fortran macros for common patterns (error checking, array bounds validation) to reduce code duplication.","Automate boilerplate Fortran code generation for numerical libraries with multiple precision or dimension variants."],"what_it_does":"Fypp is a command-line preprocessor and Python module that extends Fortran with metaprogramming capabilities by interpreting Python expressions embedded in preprocessor directives. It reads Fortran source files annotated with special directives (like #:if, #:for, #:def), evaluates Python logic to conditionally include code or generate templates, and outputs the processed Fortran. The tool integrates into build toolchains as a preprocessing step before compilation.\n\nInstead of inventing its own expression syntax, Fypp leverages Python's full expression language for metaprogramming tasks\u2014defining variables, writing macros, iterating over types to generate overloaded procedures, and inserting dynamic content like timestamps. It handles multiline strings, file inclusion, line numbering directives for debugging, and automatic line folding, making it suitable for large Fortran projects that need code reuse and conditional compilation without leaving the Fortran ecosystem.","worth_installing":"Yes. Fypp is actively maintained, has no runtime dependencies, installs easily, carries a permissive BSD license, and solves a real problem for Fortran developers needing template metaprogramming and conditional compilation. It is production-stable and suitable for integration into scientific computing and numerical library build pipelines."},"id":"fypp","links":{"html":"https://skillfed.io/packages/fypp","md":"https://skillfed.io/packages/fypp.md","pypi":"https://pypi.org/project/fypp/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2023-08-22","license_spdx":null,"license_treatment":"permissive","name":"fypp","python_support":"unspecified","summary":"Python powered Fortran preprocessor"},"popularity":{"monthly_downloads":97160,"position":13165,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"3.2"}
