{"categories":[{"label":"Testing","url":"https://skillfed.io/packages/category/software-development-testing/5"}],"enrichment":{"capability":"Parses and evaluates logical tag expressions using a modified Shunting Yard algorithm, supporting and, or, and not operators to filter data based on tag membership.","skillfed_tags":["bdd-testing","tag-filtering"],"use_cases":["Filter test cases in BDD frameworks by tag combinations without re-parsing the expression each time","Build dynamic test selection logic where users specify tag filters as human-readable boolean expressions","Implement tag-based feature gating or conditional logic in test runners or CI pipelines","Parse and evaluate user-supplied tag queries in applications that organize content or items by tags"],"what_it_does":"tag-expressions is a Python port of Cucumber's tag expression evaluator. It takes a logical expression written with tags and boolean operators (and, or, not) and compiles it into an evaluable form, then checks whether a given set of tags satisfies that expression. The package uses a modified Shunting Yard algorithm to parse infix expressions into an internal representation that respects operator precedence: parentheses, then or, then and, then not.\n\nIt's designed for test filtering and tagging scenarios, particularly in BDD frameworks like Cucumber and radish. You write an expression like '(a and b) or (c and d)', compile it once, then evaluate it repeatedly against different tag lists to determine whether they match the filter criteria.","worth_installing":"Yes, if you need to evaluate logical tag expressions in a test or filtering context. The package is stable, dependency-free, and supports modern Python versions. The copyleft license is a consideration for proprietary use. Dormancy is not a blocker for a mature, focused library with no external dependencies, but verify it meets your Python version and licensing requirements before adopting."},"id":"tag-expressions","links":{"html":"https://skillfed.io/packages/tag-expressions","md":"https://skillfed.io/packages/tag-expressions.md","pypi":"https://pypi.org/project/tag-expressions/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2024-11-23","license_spdx":null,"license_treatment":"copyleft","name":"tag-expressions","python_support":"unspecified","summary":"Built-in functions, types, exceptions, and other objects."},"popularity":{"monthly_downloads":176087,"position":10252,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.0.1"}
