https://github.com/plandes/rend
Use applications to view files
https://github.com/plandes/rend
display-manager html pdf visualization
Last synced: 6 months ago
JSON representation
Use applications to view files
- Host: GitHub
- URL: https://github.com/plandes/rend
- Owner: plandes
- License: mit
- Created: 2022-08-24T20:10:18.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-01-26T02:53:50.000Z (9 months ago)
- Last Synced: 2025-04-18T01:47:58.570Z (6 months ago)
- Topics: display-manager, html, pdf, visualization
- Language: Python
- Homepage: https://plandes.github.io/showfile/
- Size: 288 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Invoke native applications to view files
[![PyPI][pypi-badge]][pypi-link]
[![Python 3.11][python311-badge]][python311-link]
[![Build Status][build-badge]][build-link]Invoke native applications to view and render data from files.
Features:
- Uses [Dash] to render Excel, CSV and TSV files.
- Render PDF and HTML in the default web browser.Features on macOS:
- Default web browser used for HTML, [Preview.app] used for PDF files.
- Resize the window and a per display basis.
- Go to a specified page in [Preview.app].
- Multiple file rendering in browser tabs.The features on macOS are [needed for other operating systems](#contributing).
## Installing
The easiest way to install the command line program is via the `pip` installer:
```bash
pip3 install zensols.rend
```
For macOS systems, also install AppleScript: `pip install applescript`.## Usage
Create a [configuration file] with the dimensions of each of the screens you
work with and where you want [Preview.app] to be displayed. You can validate
these configurations by having the application echo them back at you:```bash
$ rend config
```### Command Line
Invoke the application to show the file and display it:
```bash
$ rend example.pdf
```See the [configuration file] example.
### From Python
The package is designed to be easy invoke from Python as well (note the
parenthesis needed to make the instance):
```python
from zensols.rend import ApplicationFactoryif (__name__ == '__main__'):
app = ApplicationFactory().get_instance()
app('test-resources/sample.pdf')
```Pandas `DataFrame`s can be rendered using the browser API (note the lack of
parenthesis as it is called as a class method):
```python
from zensols.rend import BrowserManager, ApplicationFactory
import pandas as pdif (__name__ == '__main__'):
mng: BrowserManager = ApplicationFactory.get_browser_manager()
url = 'https://raw.githubusercontent.com/scpike/us-state-county-zip/master/geo-data.csv'
df = pd.read_csv(url)
mng.show(df)
```## Documentation
See the [full documentation](https://plandes.github.io/rend/index.html).
The [API reference](https://plandes.github.io/rend/api.html) is also
available.## Contributing
Currently the more advanced features are only available on macOS. However, the
API is written to easily add other operating systems as plugins. If you would
like to write one for other operating systems, please contact and/or submit a
pull request.## Changelog
An extensive changelog is available [here](CHANGELOG.md).
## Community
Please star this repository and let me know how and where you use this API.
Contributions as pull requests, feedback and any input is welcome.## License
[MIT License](LICENSE.md)
Copyright (c) 2022 - 2025 Paul Landes
[pypi]: https://pypi.org/project/zensols.rend/
[pypi-link]: https://pypi.python.org/pypi/zensols.rend
[pypi-badge]: https://img.shields.io/pypi/v/zensols.rend.svg
[python311-badge]: https://img.shields.io/badge/python-3.11-blue.svg
[python311-link]: https://www.python.org/downloads/release/python-3110
[build-badge]: https://github.com/plandes/rend/workflows/CI/badge.svg
[build-link]: https://github.com/plandes/rend/actions[configuration file]: test-resources/rend.conf
[Dash]: https://plotly.com/dash/
[Preview.app]: https://en.wikipedia.org/wiki/Preview_(macOS)