Metadata-Version: 2.1
Name: simple-parquet-viewer
Version: 0.10.0
Summary: A simple (and lightweight) visualization tool for Parquet files.
Project-URL: Homepage, https://github.com/mauromascarenhas/simple-parquet-viewer
Project-URL: Bug Tracker, https://github.com/mauromascarenhas/simple-parquet-viewer/issues
Author-email: Mauro Mascarenhas de Araújo <mauromascarenhas@users.noreply.github.com>
License-Expression: GPL-3.0-or-later
License-File: LICENCE.txt
Keywords: GUI,Parquet,Viewer
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=2.0
Requires-Dist: pyarrow
Requires-Dist: pyqt6~=6.5
Requires-Dist: xlsxwriter>=3.0
Provides-Extra: windows
Requires-Dist: pywin32>=306; extra == 'windows'
Description-Content-Type: text/markdown

# Simple Parquet Viewer

A simple (and lightweight) visualization tool for Parquet files.

## Installation

In order to install it, you just have to run the following command in the shell:

```sh
pip install simple-parquet-viewer
```

Alternatively you can install the distribution package available in the [releases page](https://github.com/mauromascarenhas/simple-parquet-viewer/releases).

## Usage

To open the app, it is just necessary to call it from the shell (notice that *path_to_file* arg is optional):

```sh
spv [path_to_file]
```

### Creating shortcut (Windows only)

In order to use the shortcut creation utility, the [pywin32](https://pypi.org/project/pywin32/) package must be already installed. Otherwise, you will have to install it by running either `pip install pywin32` or `pip install simple-parquet-viewer[windows]`.

Since this is a GUI application, it would be easier to start it from a shortcut rather than the command line. Therefore, in order to make the shortcut creation easier, this application provides a convenience script for that purpose. By running following command, for instance, a shortcut for "*Simple Parquet Viewer*" must be created in the Start Menu:

```cmd
spv-shortcut
```

**NB.:** Icons generated using this utility are not automatically removed when this package is uninstalled. Therefore, you must remove them manually afterwards.

#### Desktop shortcut

The `spv-shortcut` utility also supports a valid *`dir_path`* as first argument, allowing you to generate a shortcut in custom directories, such as "*Desktop*". The following example demonstrates how to create a desktop shortcut for this application:

```cmd
spv-shortcut %USERPROFILE%\Desktop
```

In PowerShell:

```powershell
spv-shortcut $env:USERPROFILE\Desktop
```

## Development

There are some utilities which have made the development of this application a bit easier:

- **Icon generation**: The application icons have been generated by using open source vectorized images, which can be found close to their "png/ico" versions at `./src/res/imgs/`;
- **i18n script**: This script makes creating and deploying translation files a bit easier by calling tools like *pylupdate*, *linguist* and *lrelease* under the hood;
- **package creation**: The distribution package of this library is build with [hatch](https://hatch.pypa.io/latest/) (check `pyproject.toml` file for specs).

### Generating icon

The usage of inkscape in order to create/modify application icons is strongly recommended, since it is free and open source (and anyone would be able to contribute), but any vectorized drawing tool can be used for this purpose.

In order to deploy the application icon, it was necessary to make use of *imagemagick* so as to convert the SVG file to a multi-sized icon. The following command has been used generate it:

```sh
magick convert ./src/res/imgs/app_icon.svg -define icon:auto-resize=256,128,48,32,16 -background none -fuzz 10% -transparent white  ./src/res/imgs/app_icon.ico
```

### Translations

The usage of **i18n** script is quite straightforward: it is usually `python ./scripts/i180n.py <COMMAND> <LANG_CODE>`, where the command depends on the translation step:

- **generate**: Used to generate a new translation file or update the strings of an existing one;
- **edit**: Convenience method to open **Qt Linguist** (an editor for translation files);
- **release**: Used when the translation is ready for deployment (builds a compiled translation file).

**NB:** It is necessary to have *PyQt6* and *qt6_applications* so as to be able to run every command.

### Package generation

In order to build this package, it is just necessary to run the following command in the sell:

```sh
python -m build
```