{"library":"pathmagic","title":"Pathmagic","description":"Pathmagic provides Object-Relational Mapping (ORM) style path classes, `File` and `Dir`, which automatically execute file system I/O operations when their attributes are modified. This approach aims to abstract away common filesystem interactions, offering an intuitive way to manipulate files and directories, including easy content management for various file types. The library is currently at version 0.3.14 and maintains an active development pace with frequent minor releases.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install pathmagic"],"cli":null},"imports":["from pathmagic import File","from pathmagic import Dir"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pathmagic import File, Dir\nimport os\n\n# Ensure a directory exists for demonstration\ntemp_dir_name = \"pathmagic_demo_dir\"\nif not os.path.exists(temp_dir_name):\n    os.makedirs(temp_dir_name)\nprint(f\"Working in directory: {temp_dir_name}\")\n\n# 1. Create a File object and write content\nmy_file_path = os.path.join(temp_dir_name, \"my_document.txt\")\nmy_file = File(my_file_path)\nmy_file.content = \"Hello, pathmagic world!\\nThis is a test.\"\nprint(f\"Created file at: {my_file.path} and wrote content.\")\n\n# 2. Read content from the File object\nread_content = my_file.content\nprint(f\"Read content: \\\"{read_content.strip()}\\\"\")\n\n# 3. Modify a file attribute, triggering a filesystem operation (e.g., rename)\nold_path = my_file.path\nmy_file.name = \"renamed_document.txt\" # This automatically renames the file on disk\nprint(f\"File renamed from '{old_path}' to '{my_file.path}'\")\n\n# 4. Demonstrate a Dir object\nmy_dir = Dir(temp_dir_name)\nprint(f\"Directory object created for: {my_dir.path}\")\n\n# Clean up\nos.remove(my_file.path)\nos.rmdir(temp_dir_name)\nprint(\"Cleaned up demo files and directory.\")","lang":"python","description":"This quickstart demonstrates the core functionality of `pathmagic.File` and `pathmagic.Dir` by creating a temporary directory and file, writing content, reading it back, and performing a rename operation via attribute modification. The `File` and `Dir` objects abstract away direct `os` or `pathlib` calls for these operations.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"0.3.14","pypi_latest":"0.3.14","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":15.6,"avg_import_s":null,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"239.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":15.4,"import_time_s":null,"mem_mb":null,"disk_size":"310M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"255.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":14.3,"import_time_s":null,"mem_mb":null,"disk_size":"325M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"238.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":14.7,"import_time_s":null,"mem_mb":null,"disk_size":"307M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"237.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":14.9,"import_time_s":null,"mem_mb":null,"disk_size":"306M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"245.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pathmagic","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":18.6,"import_time_s":null,"mem_mb":null,"disk_size":"318M"}]}}