{"categories":[{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/2"},{"label":"Utilities","url":"https://skillfed.io/packages/category/utilities/2"},{"label":"Filesystems","url":"https://skillfed.io/packages/category/system-filesystems"}],"enrichment":{"capability":"flexparser lets you build parsers by writing dataclasses with a `from_string` method, automatically handling file parsing, error reporting, and structured output with type safety.","skillfed_tags":["dataclass-parser","type-safe-parsing"],"use_cases":["Parse domain-specific languages or configuration formats where each line type maps to a distinct dataclass.","Build error-tolerant parsers that collect all parsing failures and continue, reporting them at the end.","Parse structured text files (logs, reports, DSLs) where you want position tracking and type safety without writing a grammar.","Validate and extract data from line-oriented text where different line patterns need different handling logic."],"what_it_does":"flexparser is a parser framework that lets you define custom statement types as frozen dataclasses with a `from_string` classmethod. Instead of writing a traditional recursive-descent or grammar-based parser, you write one class per statement type and the framework handles iteration, error collection, and file I/O. Each parsed statement is automatically annotated with line and column positions, raw text, and a content hash.\n\nThe framework distinguishes between statements the parser doesn't recognize (returns None), valid statements, and parsing errors (subclasses of ParsingError). It also supports grouping statements into blocks with begin/end markers. The result is a sequence of typed objects you can iterate over, making downstream processing type-safe and straightforward. It depends only on typing-extensions and requires Python 3.9 or later.","worth_installing":"Yes, if you need a lightweight, type-safe parser for line-oriented text and don't require active maintenance. The low dependency footprint and permissive license make it a reasonable choice for small-to-medium parsing tasks. The dormant status means no new features or bug fixes are likely, so evaluate whether the current API and behavior meet your needs before committing."},"id":"flexparser","links":{"html":"https://skillfed.io/packages/flexparser","md":"https://skillfed.io/packages/flexparser.md","pypi":"https://pypi.org/project/flexparser/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2024-11-07","license_spdx":null,"license_treatment":"permissive","name":"flexparser","python_support":"supports_current","summary":"Parsing made fun ... using typing."},"popularity":{"monthly_downloads":5716000,"position":2046,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.4"}
