{"library":"parsley","title":"Parsley","description":"Parsley is a Python parsing library designed to simplify parsing and pattern matching. It implements the Parsing Expression Grammar (PEG) algorithm, compiling grammar definitions into Python classes where rules become methods. This approach aims to make parsing expressions behave similarly to standard Python expressions. It is an implementation of OMeta, an object-oriented pattern-matching language. The current version is 1.3, released in 2017.","language":"python","status":"abandoned","last_verified":"Fri May 15","install":{"commands":["pip install parsley"],"cli":null},"imports":["import parsley\nparser_class = parsley.makeGrammar(grammar_source, bindings)"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import parsley\n\ngrammar_source = \"\"\"\n    integer = <digit+>:ds -> int(ds)\n    sum = integer:left '+' integer:right -> left + right\n    product = integer:left '*' integer:right -> left * right\n    expression = sum | product | integer\n\"\"\"\n\ncalculator_grammar = parsley.makeGrammar(grammar_source, {})\n\n# Parse a sum\nparser_sum = calculator_grammar(\"10+20\")\nresult_sum = parser_sum.sum()\nprint(f\"10+20 = {result_sum}\") # Expected: 30\n\n# Parse a product\nparser_product = calculator_grammar(\"5*6\")\nresult_product = parser_product.product()\nprint(f\"5*6 = {result_product}\") # Expected: 30\n\n# Parse a single integer\nparser_int = calculator_grammar(\"123\")\nresult_int = parser_int.integer()\nprint(f\"123 = {result_int}\") # Expected: 123","lang":"python","description":"This quickstart defines a simple grammar for basic arithmetic (addition, multiplication, and integers). It demonstrates how to create a grammar, instantiate a parser with input, and execute a rule to get the result. Note the use of `-> int(ds)` to convert matched digit strings to integers and `-> left + right` for performing calculations within the grammar itself.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"1.3","pypi_latest":"1.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.03,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.4,"disk_size":"18.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.02,"mem_mb":1.4,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"21.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.5,"disk_size":"12.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.03,"mem_mb":1.5,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"12.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.03,"mem_mb":1.5,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.4,"disk_size":"18.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"parsley","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.02,"mem_mb":1.4,"disk_size":"19M"}]}}