Releases: cwt/ananta
v1.3.9
v1.3.8
Fix connection closing logic in ssh.py (thanks @IceCodeNew), update pytest and tools, update test cases.
v1.3.7
V1.3.6
Release v1.3.6
This release focuses on improving the user experience, fixing minor bugs, and enhancing code stability.
Key Changes:
- Enhanced Mouse Scrolling: Improved mouse scroll wheel support in the Text User Interface (TUI) for a smoother experience.
- ANSI Stripping Fix: Resolved a bug in the ANSI stripping function that could cause issues with output containing carriage returns.
- Dependency Updates: Updated the
winloopdependency to improve compatibility and performance on Windows. - Internal Improvements: Addressed mypy typing errors and increased test coverage for better code quality and reliability.
v1.3.4
Release v1.3.4
This release focuses on improving the stability and user experience of the Text User Interface (TUI).
Bug Fixes
- Resolved a TUI crash that occurred during screen redraws and flushes, ensuring a smoother and more reliable operation.
- Fixed an issue that could cause
BlockingIOErrorby preventing automatic screen redraws when the application is idle. - Addressed a bug where input text could become invisible until the next screen update by forcing a redraw whenever the input changes.
- Corrected several issues related to window focusing and scrolling, making navigation within the TUI more intuitive.
Enhancements
- The scrolling experience has been significantly improved with the addition of a visual scrollbar to the output window, providing better feedback on content length and position.
v1.3.2
v1.3.1
Introducing TUI Mode for Enhanced Usability
New Features & Improvements
- TUI Mode: Ananta now supports Text User Interface (TUI) mode, transforming the application into a full-screen, text-based interface for streamlined command execution.
- Persistent Connections: Commands sent in TUI mode benefit from reduced latency, as connections remain active between executions.
- Enhanced Output Handling: TUI mode offers separate output capabilities similar to non-TUI mode. However, it requires significant resources—avoid processing large datasets in this mode for optimal performance.
Performance Enhancements
- Improved command execution efficiency in TUI mode.
- Reduced latency in subsequent commands by maintaining connections.
Known Issues & Recommendations
- The separate output mode in TUI can be resource-intensive. Large data sets may lead to high memory usage—users should process data accordingly.
Upgrade to the latest version and experience the new, powerful TUI mode for a more interactive and efficient workflow!
Tests
============================= test session starts ==============================
platform linux -- Python 3.12.8, pytest-8.4.0, pluggy-1.6.0
rootdir: /home/cwt/Projects/ananta
configfile: pyproject.toml
plugins: asyncio-0.26.0, cov-6.1.1
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collected 107 items
tests/test_ananta.py ........ [ 7%]
tests/test_ananta_async.py .... [ 11%]
tests/test_config.py ..................... [ 30%]
tests/test_output.py ..................... [ 50%]
tests/test_ssh_helpers.py . [ 51%]
tests/test_ssh_helpers_async.py .......... [ 60%]
tests/test_tui.py ................ [ 75%]
tests/test_tui_ansi.py .................... [ 94%]
tests/test_tui_extra.py ...... [100%]
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.12.8-final-0 ________________
Name Stmts Miss Cover Missing
------------------------------------------------------
ananta/__init__.py 10 0 100%
ananta/ananta.py 79 14 82% 224-247, 253-255, 282
ananta/config.py 113 20 82% 10-13, 56-64, 77-81, 128-129, 196-200, 215, 222-226
ananta/output.py 54 0 100%
ananta/ssh.py 83 42 49% 97-103, 113-131, 142-165, 183-208
ananta/tui/__init__.py 300 49 84% 222, 224, 250-252, 259, 270-272, 283, 320-334, 343, 370-373, 383-384, 394,
411-413, 452, 457, 461, 467-468, 527-530, 559-560, 564-565, 572, 582, 598-602
ananta/tui/ansi.py 158 18 89% 66, 104-105, 120, 134, 145-147, 158-160, 239-240, 276-283
------------------------------------------------------
TOTAL 797 143 82%
============================= 107 passed in 1.21s ==============================v1.3.0
Introducing TUI Mode for Enhanced Usability
New Features & Improvements
- TUI Mode: Ananta now supports Text User Interface (TUI) mode, transforming the application into a full-screen, text-based interface for streamlined command execution.
- Persistent Connections: Commands sent in TUI mode benefit from reduced latency, as connections remain active between executions.
- Enhanced Output Handling: TUI mode offers separate output capabilities similar to non-TUI mode. However, it requires significant resources—avoid processing large datasets in this mode for optimal performance.
Performance Enhancements
- Improved command execution efficiency in TUI mode.
- Reduced latency in subsequent commands by maintaining connections.
Known Issues & Recommendations
- The separate output mode in TUI can be resource-intensive. Large data sets may lead to high memory usage—users should process data accordingly.
Upgrade to the latest version and experience the new, powerful TUI mode for a more interactive and efficient workflow!
Tests
============================= test session starts ==============================
platform linux -- Python 3.12.8, pytest-8.4.0, pluggy-1.6.0
rootdir: /home/cwt/Projects/ananta
configfile: pyproject.toml
plugins: asyncio-0.26.0, cov-6.1.1
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collected 107 items
tests/test_ananta.py ........ [ 7%]
tests/test_ananta_async.py .... [ 11%]
tests/test_config.py ..................... [ 30%]
tests/test_output.py ..................... [ 50%]
tests/test_ssh_helpers.py . [ 51%]
tests/test_ssh_helpers_async.py .......... [ 60%]
tests/test_tui.py ................ [ 75%]
tests/test_tui_ansi.py .................... [ 94%]
tests/test_tui_extra.py ...... [100%]
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.12.8-final-0 ________________
Name Stmts Miss Cover Missing
------------------------------------------------------
ananta/__init__.py 10 0 100%
ananta/ananta.py 79 14 82% 224-247, 253-255, 282
ananta/config.py 113 20 82% 10-13, 56-64, 77-81, 128-129, 196-200, 215, 222-226
ananta/output.py 54 0 100%
ananta/ssh.py 83 42 49% 97-103, 113-131, 142-165, 183-208
ananta/tui/__init__.py 300 49 84% 222, 224, 250-252, 259, 270-272, 283, 320-334, 343, 370-373, 383-384, 394,
411-413, 452, 457, 461, 467-468, 527-530, 559-560, 564-565, 572, 582, 598-602
ananta/tui/ansi.py 158 18 89% 66, 104-105, 120, 134, 145-147, 158-160, 239-240, 276-283
------------------------------------------------------
TOTAL 797 143 82%
============================= 107 passed in 1.21s ==============================v1.2.2
Migrated Main Repository to GitHub!
We've officially moved the main repository to GitHub! This shift resolves issues with merge conflicts and weird interactions between Git and Mercurial when handling pull requests. Centralizing here streamlines collaboration and sets us up for smoother development moving forward.
Changes
- Expanded Unit Tests: Added a comprehensive set of unit tests to improve code reliability and catch issues early.
- Test Script with Coverage: Introduced a new test script that generates code coverage reports for better insight into test effectiveness.
Tests
$ ./runtest.sh
============================= test session starts ==============================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.6.0
rootdir: /home/cwt/Projects/ananta
configfile: pyproject.toml
plugins: asyncio-0.26.0, cov-6.1.1
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collected 65 items
tests/test_ananta.py ........ [ 12%]
tests/test_ananta_async.py .... [ 18%]
tests/test_config.py ..................... [ 50%]
tests/test_output.py ..................... [ 83%]
tests/test_ssh_helpers.py . [ 84%]
tests/test_ssh_helpers_async.py .......... [100%]
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.13.3-final-0 ________________
Name Stmts Miss Cover Missing
--------------------------------------------------
ananta/__init__.py 10 0 100%
ananta/ananta.py 58 1 98% 210
ananta/config.py 113 20 82% 10-13, 56-64, 77-81, 128-129, 196-200, 215, 222-226
ananta/output.py 54 0 100%
ananta/ssh.py 83 42 49% 97-103, 113-131, 142-165, 183-208
--------------------------------------------------
TOTAL 318 63 80%
============================== 65 passed in 0.67s ==============================v1.2.1
Migrated Main Repository to GitHub!
We've officially moved the main repository to GitHub! This shift resolves issues with merge conflicts and weird interactions between Git and Mercurial when handling pull requests. Centralizing here streamlines collaboration and sets us up for smoother development moving forward.
Changes
- Expanded Unit Tests: Added a comprehensive set of unit tests to improve code reliability and catch issues early.
- Test Script with Coverage: Introduced a new test script that generates code coverage reports for better insight into test effectiveness.