GitHub / tmux-python / libtmux
⚙️ Python API / wrapper for tmux
JSON API: http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmux-python%2Flibtmux
PURL: pkg:github/tmux-python/libtmux
Stars: 1,106
Forks: 112
Open issues: 84
License: mit
Language: Python
Size: 4.21 MB
Dependencies parsed at: Pending
Created at: over 9 years ago
Updated at: 8 days ago
Pushed at: 8 days ago
Last synced at: 8 days ago
Commit Stats
Commits: 1770
Authors: 40
Mean commits per author: 44.25
Development Distribution Score: 0.102
More commit stats: https://commits.ecosyste.ms/hosts/GitHub/repositories/tmux-python/libtmux
Topics: api, cli, library, python, python-3, terminal, tmux
v0.47.0 - Drop Python 3.9
v0.47.0
Breaking changes
- Support Python 3.14 by @tony in https://github.com/tmux-python/libtmux/pull/601
- Drop Python 3.9 by @tony in https://github.com/tmux-python/libtmux/pull/602
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.46.2...v0.47.0
Download
v0.46.2 - `start_directory` typing fix
v0.46.2
What’s Changed
- Fix
new_windowargument typing inSessionby @Data5tream in https://github.com/tmux-python/libtmux/pull/596- types: Add
StrPathtyping, fixnew_sessionby @tony in https://github.com/tmux-python/libtmux/pull/597- types: Add
StrPathtyping, fixnew_session, part 2 by @tony in https://github.com/tmux-python/libtmux/pull/598
- types: Add
- types: Add
New Contributors
- @Data5tream made their first contribution in https://github.com/tmux-python/libtmux/pull/596
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.46.1...v0.46.2
Download
v0.46.1 - Maintenance release
v0.46.1
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.46.0...v0.46.1
Changes
Feature branch at v0.46.x
v0.46.x will extend the life of v0.46.0 while new features are being developed for watching for changes within libtmux panes, windows, and sessions.
See:
Documentation
-
Fix typo in
Pane.send_keys(https://github.com/tmux-python/libtmux/pull/593)Thank you @subbyte!
Download
v0.46.0 - Internal improvements
v0.46.0
Breaking Changes
-
Test Helper Imports Refactored: Direct imports from
libtmux.testare no longer possible. You must now import from specific submodules (#580)# Before: from libtmux.test import namer # After: from libtmux.test.named import namer# Before: from libtmux.test import RETRY_INTERVAL_SECONDS # After: from libtmux.test.constants import RETRY_INTERVAL_SECONDS
Internal Improvements
- Enhanced Test Utilities: The
EnvironmentVarGuardnow handles variable cleanup more reliably - Comprehensive Test Coverage: Added test suites for constants and environment utilities
- Code Quality: Added proper coverage markers to exclude type checking blocks from coverage reports
- Documentation: Improved docstrings and examples in the random module
These changes improve maintainability of test helpers both internally and for downstream packages that depend on libtmux.
What’s Changed
- Coverage: Test helpers by @tony in https://github.com/tmux-python/libtmux/pull/580
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.45.0...v0.46.0
Download
v0.45.0 - test helpers overhaul
v0.45.0
What’s Changed
Breaking Changes
Test helpers: Refactor
by @tony in https://github.com/tmux-python/libtmux/pull/578
Test helper functionality has been split into focused modules (#578):
libtmux.testmodule split into:libtmux.test.constants: Test-related constants (TEST_SESSION_PREFIX, etc.)libtmux.test.environment: Environment variable mockinglibtmux.test.random: Random string generation utilitieslibtmux.test.temporary: Temporary session/window management
Breaking: Import paths have changed. Update imports:
# Old (0.44.x and earlier)
from libtmux.test import (
TEST_SESSION_PREFIX,
get_test_session_name,
get_test_window_name,
namer,
temp_session,
temp_window,
EnvironmentVarGuard,
)
# New (0.45.0+)
from libtmux.test.constants import TEST_SESSION_PREFIX
from libtmux.test.environment import EnvironmentVarGuard
from libtmux.test.random import get_test_session_name, get_test_window_name, namer
from libtmux.test.temporary import temp_session, temp_window
Misc
- Cursor rules: Add Cursor Rules for Development and Git Commit Standards by @tony in https://github.com/tmux-python/libtmux/pull/575
CI
- tests(ci) Check runtime deps import correctly by @tony in https://github.com/tmux-python/libtmux/pull/574
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.44.2...v0.45.0
Download
v0.44.2 - Bug fix, doc and test tweaks
v0.44.2
What’s Changed
Bug fixes
- fix(typings) Move typing-extensions into
TypeGuardby @tony in https://github.com/tmux-python/libtmux/pull/572
Documentation
- Doc / typos fixes by @tony in https://github.com/tmux-python/libtmux/pull/569
Development
- Tests: Improved parametrization by @tony in https://github.com/tmux-python/libtmux/pull/570
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.44.1...v0.44.2
Download
v0.44.1 - Maintenance release
v0.44.1
What’s Changed
Packaging
- types: Only use typing-extensions if necessary by @ppentchev in https://github.com/tmux-python/libtmux/pull/563
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.44.0...v0.44.1
Download
v0.44.0 - Context managers
v0.44.0
What’s Changed
Support for context managers
by @tony in https://github.com/tmux-python/libtmux/pull/566.
Added context manager support for all main tmux objects:
Server: Automatically kills the server when exiting the contextSession: Automatically kills the session when exiting the contextWindow: Automatically kills the window when exiting the contextPane: Automatically kills the pane when exiting the context
Example usage:
with Server() as server:
with server.new_session() as session:
with session.new_window() as window:
with window.split() as pane:
pane.send_keys('echo "Hello"')
# Do work with the pane
# Everything is cleaned up automatically when exiting contexts
This makes it easier to write clean, safe code that properly cleans up tmux resources.
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.43.0...v0.44.0
Download
v0.43.0 - `TestServer` pytest fixture
v0.43.0
What’s Changed
New feature
TestServer:Server, butpartial’d to run on a test socket by @tony in https://github.com/tmux-python/libtmux/pull/565
Documentation
- Fix “Topics” links in docs
- docs(traversal) Add more doctests by @tony in https://github.com/tmux-python/libtmux/pull/567
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.42.1...v0.43.0
Download
v0.42.1 - Packaging fix
v0.42.1
Changes
Packaging: typing-extensions usage
- Move a typing-extensions import into a t.TYPE_CHECKING section by @ppentchev in https://github.com/tmux-python/libtmux/pull/562
- py(deps[testing,lint]) Add
typing-extensionsfor older python versions by @tony in https://github.com/tmux-python/libtmux/pull/564
Full Changelog: https://github.com/tmux-python/libtmux/compare/v0.42.0...v0.42.1
Download