╔════════════════════════ Hi there ════════════════════════╗ 🤓 Will McGugan ║ I'm a software engineer, living in Edinburgh, Scotland. ║ ┣━━ 🐍 Python expert ║ ║ ┃ ┣━━ ⭐ Rich ║ Probably best known for Rich and Textual. Two Python ║ ┃ ┣━━ ⭐ Textual ║ libraries that have been downloaded over 3 billion times ║ ┃ ┣━━ ⭐ PyFilesystem ║ between them! ║ ┃ ┗━━ ⭐ Lomond ║ ║ ┣━━ 🔧 Full-stack developer ║ I'm currently taking a sabbatical, although I am still ║ ┣━━ 📘 Author ║ maintaining my projects. I'm not currently looking for ║ ┗━━ 📷 Photographer ║ work, although I could be tempted by the right offer. ║ ║ ║ ║ Follow me on twitter @willmcgugan ║ ╚══════════════════════════════════════════════════════════╝
CARVIEW |
Select Language
HTTP/2 200
date: Wed, 23 Jul 2025 06:31:42 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"51bfb5a3904d973699bffdc456c6d115"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=F4rSUR0T4kDZUNfj1KQUMb45bNWd4dbeJjJfOw6uvMg5qnWy9bioK1JJDqhX41GsPVpeag8JguVoaukA3b61B0Qbzl0%2FTyKLg9ZpmPgxBzvj6AYrurL%2FnkkAIJJjiHRVf4%2FirmEdl1aM2skO43BNaoq197YQmFUKS6Ib9s4K7X1RdyxVIMezrsLItWPnmNixbgFgeS%2BvmJ62yS%2Bv%2FouWHRjk6BpJ6p2W3fkvcJYV%2FBvz48V8vi17ftztdksbEJ1vo8Ck9A%2F1hiIISYczFUvxMQ%3D%3D--jynSKvaamzDXzLjW--c8dKTsHTp91cWTrsdDqTaA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.2069776091.1753252302; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 06:31:42 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 06:31:42 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: C524:261FF2:526BE7:6A56EA:688081CE
willmcgugan (Will McGugan) · GitHub
willmcgugan
Follow
Skip to content
Navigation Menu
{{ message }}
🏠
Taking a break. Contact me for *emergencies only*
I'm a full-stack software developer and Python expert. Creator and maintainer of @Textualize
Creator of Rich, Textual, and @PyFilesystem.
- Edinburgh, UK
-
07:31
(UTC +01:00) - https://willmcgugan.github.io/
- @willmcgugan
- @willmcgugan@mastodon.social
- @willmcgugan.bsky.social
- https://www.willmcgugan.com
Sponsors
Highlights
Pinned Loading
-
Textualize/rich
Textualize/rich PublicRich is a Python library for rich text and beautiful formatting in the terminal.
-
Textualize/textual
Textualize/textual PublicThe lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.
-
PyFilesystem/pyfilesystem2
PyFilesystem/pyfilesystem2 PublicPython's Filesystem abstraction layer
-
wildfoundry/dataplicity-lomond
wildfoundry/dataplicity-lomond PublicLomond is a Websocket client for Python which turns a websocket connection in to an orderly stream of events. Contrast this with the existing websocket clients available for Python which follow a m…
Something went wrong, please refresh the page to try again.
If the problem persists, check the GitHub status page or contact support.
If the problem persists, check the GitHub status page or contact support.
You can’t perform that action at this time.