{"id":20030277,"url":"https://github.com/pycontribs/subprocess-tee","last_synced_at":"2025-05-16T04:02:34.756Z","repository":{"id":40295581,"uuid":"306858274","full_name":"pycontribs/subprocess-tee","owner":"pycontribs","description":"A subprocess.run drop-in replacement that supports a tee mode, being able to display output in real time while still capturing it. No dependencies needed","archived":false,"fork":false,"pushed_at":"2025-04-07T15:24:49.000Z","size":149,"stargazers_count":58,"open_issues_count":10,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-08T14:06:18.887Z","etag":null,"topics":["pep-621","subprocess","tee"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pycontribs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["ssbarnea"]}},"created_at":"2020-10-24T10:23:15.000Z","updated_at":"2025-04-07T15:24:52.000Z","dependencies_parsed_at":"2023-10-02T23:21:52.938Z","dependency_job_id":"1ab219b7-61b3-4409-94eb-e69fd6909f30","html_url":"https://github.com/pycontribs/subprocess-tee","commit_stats":{"total_commits":83,"total_committers":12,"mean_commits":6.916666666666667,"dds":0.4819277108433735,"last_synced_commit":"d82470d75b3c629a40b2bc6194a29066c49e9f7b"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pycontribs","download_url":"https://codeload.github.com/pycontribs/subprocess-tee/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464891,"owners_count":22075570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pep-621","subprocess","tee"],"created_at":"2024-11-13T09:25:39.382Z","updated_at":"2025-05-16T04:02:34.130Z","avatar_url":"https://github.com/pycontribs.png","language":"Python","readme":"# subprocess-tee\n\nThis package provides a drop-in alternative to `subprocess.run` that captures\nthe output while still printing it in **real-time**, just the way `tee` does.\n\nPrinting output in real-time while still capturing is valuable for any tool that\nexecutes long-running child processes. For those, you do want to provide instant\nfeedback (progress) related to what is happening.\n\n```python\n# from subprocess import run\nfrom subprocess_tee import run\n\nresult = run(\"echo 123\")\nresult.stdout == \"123\\n\"\n```\n\nYou can add `tee=False` to disable the tee functionality if you want, this being\na much shorter alternative than adding the well known\n`stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL`.\n\nKeep in mind that `universal_newlines=True` is implied as we expect text\nprocessing, this being a divergence from the original `subprocess.run`.\n\nYou can still use `check=True` in order to make it raise CompletedProcess\nexception when the result code is not zero.\n","funding_links":["https://github.com/sponsors/ssbarnea"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpycontribs%2Fsubprocess-tee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpycontribs%2Fsubprocess-tee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpycontribs%2Fsubprocess-tee/lists"}