{"library":"peppy","title":"peppy","description":"peppy is the official Python package for reading Portable Encapsulated Projects (PEPs). It provides a Python interface for managing project metadata, including samples and their attributes. The library facilitates loading, validating, and interacting with PEP-formatted metadata. The current stable version is 0.40.8, with significant breaking changes anticipated in the upcoming 0.50.0aX releases. It maintains an active development and release cadence.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install peppy"],"cli":{"name":"peppy","version":"sh: 1: peppy: not found"}},"imports":["from peppy import Project"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom peppy import Project\n\n# For a runnable example, clone the example_peps repository:\n# git clone https://github.com/pepkit/example_peps.git\n# and adjust the path below to 'example_peps/example_basic/project_config.yaml'\n\n# Placeholder for a project configuration file (YAML or CSV).\n# In a real scenario, replace with the actual path to your PEP config.\nproject_path = os.environ.get('PEPPY_PROJECT_CONFIG', 'path/to/your/project_config.yaml')\n\ntry:\n    # Instantiate an in-memory Project representation\n    prj = Project(cfg=project_path)\n    print(f\"Successfully loaded Project: '{prj.name}'\")\n    print(f\"Number of samples: {len(prj.samples)}\")\n\n    if prj.samples:\n        first_sample = prj.samples[0]\n        print(f\"\\nFirst sample name: {first_sample.sample_name}\")\n        # Access a sample attribute, e.g., 'protocol' or 'file'\n        if 'protocol' in first_sample:\n            print(f\"First sample's protocol: {first_sample.protocol}\")\n    else:\n        print(\"No samples found in the project.\")\n\nexcept FileNotFoundError:\n    print(f\"Error: Project configuration file not found at '{project_path}'.\")\n    print(\"Please ensure the path is correct or clone a PEP example.\")\nexcept Exception as e:\n    print(f\"An error occurred during project loading: {e}\")","lang":"python","description":"Demonstrates how to initialize a `peppy.Project` object from a configuration file and access its samples and their attributes. Users should provide their own PEP configuration file.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.40.8","pypi_latest":"0.40.8","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":11.7,"avg_import_s":1.22,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.07,"mem_mb":32.7,"disk_size":"195.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":12.3,"import_time_s":0.81,"mem_mb":32.7,"disk_size":"188M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.57,"mem_mb":37.7,"disk_size":"211.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":10.7,"import_time_s":1.45,"mem_mb":37.7,"disk_size":"203M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.34,"mem_mb":36.7,"disk_size":"195.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":10.4,"import_time_s":1.39,"mem_mb":36.7,"disk_size":"187M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.25,"mem_mb":37.7,"disk_size":"194.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":10.7,"import_time_s":1.32,"mem_mb":37.7,"disk_size":"186M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.99,"mem_mb":33.4,"disk_size":"202.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"peppy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":14.3,"import_time_s":0.98,"mem_mb":33.4,"disk_size":"197M"}]}}