fixed up file path, fixed up some gitignores, add version support, working on a better install and binary compilation

This commit is contained in:
klein panic
2024-11-14 22:22:18 -05:00
parent b6680be0ab
commit c1372606a6
52 changed files with 318 additions and 8267 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
venv/
sample_tests/
backups/

230
README.md
View File

@@ -1,168 +1,196 @@
# Convertions
The `convertions` project is a collection of Python scripts designed to convert between various file formats and extract content from different types of files. This toolset includes scripts for converting CSV, JSON, Excel, HTML, Markdown, YAML, PNG, JPG, PDF files, and more.
The `convertions` project is a comprehensive suite of Python scripts designed to handle various file format conversions and content extractions. It supports operations on CSV, JSON, Excel, HTML, Markdown, YAML, PNG, JPG, PDF, audio, video, and more.
This tool is modular, highly extensible, and packaged for ease of use. You can run it as a Python script or compile it into a standalone binary for seamless deployment.
---
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [CSV to Excel](#csv-to-excel)
- [CSV to JSON](#csv-to-json)
- [Excel to CSV](#excel-to-csv)
- [HTML to Markdown](#html-to-markdown)
- [JSON to CSV](#json-to-csv)
- [Markdown to HTML](#markdown-to-html)
- [YAML to Markdown](#yaml-to-markdown)
- [PNG to JPG](#png-to-jpg)
- [JPG to PNG](#jpg-to-png)
- [PDF to JPG](#pdf-to-jpg)
- [JPGs to PDF](#jpgs-to-pdf)
- [Image to Markdown](#image-to-markdown)
- [PDF to Markdown](#pdf-to-markdown)
- [Global Options](#global-options)
- [Available Commands](#available-commands)
- [Adding New Scripts](#adding-new-scripts)
- [Virtual Environment](#virtual-environment)
- [Compilation into a Binary](#compilation-into-a-binary)
- [Dependencies](#dependencies)
- [License](#license)
- [Acknowledgments](#acknowledgments)
---
## Installation
1. **Clone the Repository**:
### 1. Clone the Repository
```bash
git clone https://github.com/yourusername/convertions.git
cd convertions
```
2. **Set Up the Virtual Environment**:
### 2. Set Up the Virtual Environment
Create and activate a Python virtual environment to isolate dependencies:
```bash
python3 -m venv venv
source venv/bin/activate
```
3. **Install Dependencies**:
### 3. Install Dependencies
Install the required Python packages using the virtual environment's pip:
```bash
pip install -r requirements.txt
./venv/bin/pip install -r requirements.txt
```
4. **Add the Convertions Directory to PATH**:
### 4. Optional: Add Convertions to Your PATH
To make the `convertions` command globally accessible:
- For Bash:
```bash
echo 'export PATH="$HOME/codeWS/Python3/convertions:$PATH"' >> ~/.bashrc
echo 'export PATH="$HOME/convertions:$PATH"' >> ~/.bashrc
source ~/.bashrc
```
- For Zsh:
```bash
echo 'export PATH="$HOME/codeWS/Python3/convertions:$PATH"' >> ~/.zshrc
echo 'export PATH="$HOME/convertions:$PATH"' >> ~/.zshrc
source ~/.zshrc
```
---
## Usage
### CSV to Excel
Convert a CSV file to an Excel file.
The `convertions` tool accepts various commands corresponding to supported operations. Each command is mapped to a specific utility script.
### Global Options
- `--help` or `-h`: Display help and a list of available commands.
- `--version` or `-v`: Print the version of the `convertions` tool.
```bash
convertions csvtoexcel <input_csv_path> <output_excel_path>
convertions --help
convertions --version
```
### CSV to JSON
Convert a CSV file to a JSON file.
### Available Commands
Each command has its usage syntax. Below is the full list:
#### General Format
```bash
convertions csvtojson <input_csv_path> <output_json_path>
convertions <command> <input_path> <output_path>
```
### Excel to CSV
Convert an Excel file to a CSV file.
```bash
convertions excelto_csv <input_excel_path> <output_csv_path>
```
#### File Operations
- **CSV to Excel**: `csvtoexcel <input_csv_path> <output_excel_path>`
- **CSV to JSON**: `csvtojson <input_csv_path> <output_json_path>`
- **CSV to YAML**: `csvtoyaml <input_csv_path> <output_yaml_path>`
- **Excel to CSV**: `exceltocsv <input_excel_path> <output_csv_path>`
- **Excel to JSON**: `exceltojson <input_excel_path> <output_json_path>`
- **HTML to Markdown**: `htmltomd <input_html_path> <output_md_path>`
- **HTML to PDF**: `htmltopdf <input_html_path> <output_pdf_path>`
- **Image to Markdown (OCR)**: `imagetomd <input_image_path> <output_md_path>`
- **JPG to PNG**: `jpgtopng <input_jpg_path> <output_png_path>`
- **JSON to CSV**: `jsontocsv <input_json_path> <output_csv_path>`
- **JSON to Excel**: `jsontoexcel <input_json_path> <output_excel_path>`
- **JSON to YAML**: `jsontoyaml <input_json_path> <output_yaml_path>`
- **Markdown Table to CSV**: `mdtabletocsv <input_md_path> <output_csv_path>`
- **Markdown to DOCX**: `mdtodocx <input_md_path> <output_docx_path>`
- **Markdown to HTML**: `mdtohtml <input_md_path> <output_html_path>`
- **Markdown to PDF**: `mdtopdf <input_md_path> <output_pdf_path>`
- **Markdown to YAML**: `mdtoyaml <input_md_path> <output_yaml_path>`
- **Merge PDFs**: `mergepdfs <output_pdf_path> <input_pdf1> <input_pdf2> ...`
- **PDF to JPG**: `pdftojpg <input_pdf_path> <output_jpg_base_path>`
- **PDF to Markdown**: `pdftomd <input_pdf_path> <output_md_path>`
- **PDF to Text**: `pdftotext <input_pdf_path> <output_txt_path>`
- **PNG to JPG**: `pngtojpg <input_png_path> <output_jpg_path>`
- **Text to Speech**: `texttospeech <input_text_path> <output_audio_path>`
- **Video to Audio**: `videotoaudio <input_video_path> <output_audio_path>`
- **YAML to JSON**: `yamltojson <input_yaml_path> <output_json_path>`
- **YAML to Markdown**: `yamltomd <input_yaml_path> <output_md_path>`
### HTML to Markdown
Convert an HTML file to a Markdown file.
```bash
convertions htmltomd <input_html_path> <output_md_path>
```
### JSON to CSV
Convert a JSON file to a CSV file.
```bash
convertions jsontocsv <input_json_path> <output_csv_path>
```
### Markdown to HTML
Convert a Markdown file to an HTML file.
```bash
convertions mdtohtml <input_md_path> <output_html_path>
```
### YAML to Markdown
Convert a YAML file to a Markdown file.
```bash
convertions yamltomd <input_yaml_path> <output_md_path>
```
### PNG to JPG
Convert a PNG image to a JPG image.
```bash
convertions pngtojpg <input_png_path> <output_jpg_path>
```
### JPG to PNG
Convert a JPG image to a PNG image.
```bash
convertions jpgtopng <input_jpg_path> <output_png_path>
```
### PDF to JPG
Convert a PDF file to JPG images (one per page).
```bash
convertions pdftojpg <input_pdf_path> <output_jpg_path>
```
### JPGs to PDF
Combine multiple JPG images into a single PDF file.
```bash
convertions jpgstopdf <output_pdf_path> <input_jpg_path1> <input_jpg_path2> ...
```
### Image to Markdown
Extract text content from an image (JPG/PNG) using OCR and convert it to a Markdown file.
```bash
convertions imagetomd <input_image_path> <output_md_path>
```
### PDF to Markdown
Extract text content from a PDF file and convert it to a Markdown file.
```bash
convertions pdftomd <input_pdf_path> <output_md_path>
```
---
## Adding New Scripts
To add a new script to the convertions toolset:
To extend `convertions` with additional commands:
1. Place the new script in the \`~/codeWS/Python3/convertions\` directory.
2. Ensure the script is executable:
1. **Add the Script**: Place the script in the `utils` directory.
2. **Make It Executable**: Ensure the script has execute permissions:
```bash
chmod +x ~/codeWS/Python3/convertions/new_script.py
chmod +x <script_name>.py
```
3. Update \`convertions.py\` to include the new command and map it to the script.
3. **Update the Mapping**: Edit `convertions.py` and add a new entry to the `SCRIPT_MAP` dictionary:
```python
"newcommand": "new_script.py"
```
---
## Virtual Environment
The convertions toolset uses a virtual environment to manage dependencies. Ensure the virtual environment is activated before running any scripts:
To ensure proper dependency management, activate the virtual environment before running or modifying the `convertions` tool:
```bash
source venv/bin/activate
```
To deactivate the virtual environment, use:
To deactivate the virtual environment:
```bash
deactivate
```
---
## Compilation into a Binary
The `install.sh` script simplifies the process of creating a standalone binary using PyInstaller. It also allows for optional installation to `/usr/local/bin` for system-wide usage.
### Steps:
1. Run the `install.sh` script:
```bash
./install.sh
```
2. Follow the prompts to decide whether to move the compiled binary to `/usr/local/bin`. If skipped, the binary will remain in the `./dist` directory.
### Key Features of `install.sh`:
- Checks and installs dependencies in the virtual environment.
- Compiles all scripts and utilities into a single binary.
- Optionally installs the binary globally for ease of use.
---
## Dependencies
This project relies on several Python libraries and external tools. Ensure the following are installed:
- Python 3.11+
- `wkhtmltopdf` (for HTML to PDF conversion)
- External dependencies in `requirements.txt`, managed by the virtual environment:
- `pandas`
- `PyMuPDF`
- `pytesseract`
- `markdown`
- `pdfkit`
- `gTTS`
- `pillow`
- `moviepy`
- `PyYAML`
---
## License
This project is licensed under the MIT License - see the LICENSE file for details.
This project is licensed under the MIT License. See the `LICENSE` file for details.
---
## Acknowledgments
- [Pillow](https://python-pillow.org/)
The following libraries and tools power `convertions`:
- [Pillow (PIL)](https://python-pillow.org/)
- [PyMuPDF](https://pymupdf.readthedocs.io/)
- [pytesseract](https://pypi.org/project/pytesseract/)
- [pdfkit](https://pypi.org/project/pdfkit/)
- [Markdown](https://pypi.org/project/Markdown/)
- [MoviePy](https://zulko.github.io/moviepy/)
- [gTTS](https://pypi.org/project/gTTS/)
- [PyYAML](https://pypi.org/project/PyYAML/)
- [wkhtmltopdf](https://wkhtmltopdf.org/)

View File

@@ -1,344 +0,0 @@
(['/home/klein/codeWS/Python3/convertions/convertions.py'],
['/home/klein/codeWS/Python3/convertions'],
[],
['/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/numpy/_pyinstaller',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/_pyinstaller_hooks_contrib/stdhooks',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/_pyinstaller_hooks_contrib'],
{},
[],
[],
False,
{},
0,
[],
[('audiototext.py',
'/home/klein/codeWS/Python3/convertions/audiototext.py',
'DATA'),
('csvmerge.py', '/home/klein/codeWS/Python3/convertions/csvmerge.py', 'DATA'),
('csvtoexcel.py',
'/home/klein/codeWS/Python3/convertions/csvtoexcel.py',
'DATA'),
('csvtojson.py',
'/home/klein/codeWS/Python3/convertions/csvtojson.py',
'DATA'),
('csvtoyaml.py',
'/home/klein/codeWS/Python3/convertions/csvtoyaml.py',
'DATA'),
('docxtomd.py', '/home/klein/codeWS/Python3/convertions/docxtomd.py', 'DATA'),
('exceltocsv.py',
'/home/klein/codeWS/Python3/convertions/exceltocsv.py',
'DATA'),
('exceltojson.py',
'/home/klein/codeWS/Python3/convertions/exceltojson.py',
'DATA'),
('htmltomd.py', '/home/klein/codeWS/Python3/convertions/htmltomd.py', 'DATA'),
('htmltopdf.py',
'/home/klein/codeWS/Python3/convertions/htmltopdf.py',
'DATA'),
('imagetomd.py',
'/home/klein/codeWS/Python3/convertions/imagetomd.py',
'DATA'),
('jpgstopdf.py',
'/home/klein/codeWS/Python3/convertions/jpgstopdf.py',
'DATA'),
('jpgtopng.py', '/home/klein/codeWS/Python3/convertions/jpgtopng.py', 'DATA'),
('jsontocsv.py',
'/home/klein/codeWS/Python3/convertions/jsontocsv.py',
'DATA'),
('jsontoexcel.py',
'/home/klein/codeWS/Python3/convertions/jsontoexcel.py',
'DATA'),
('jsontoyaml.py',
'/home/klein/codeWS/Python3/convertions/jsontoyaml.py',
'DATA'),
('mdtabletocsv.py',
'/home/klein/codeWS/Python3/convertions/mdtabletocsv.py',
'DATA'),
('mdtodocx.py', '/home/klein/codeWS/Python3/convertions/mdtodocx.py', 'DATA'),
('mdtohtml.py', '/home/klein/codeWS/Python3/convertions/mdtohtml.py', 'DATA'),
('mdtopdf.py', '/home/klein/codeWS/Python3/convertions/mdtopdf.py', 'DATA'),
('mdtoyaml.py', '/home/klein/codeWS/Python3/convertions/mdtoyaml.py', 'DATA'),
('pdftojpg.py', '/home/klein/codeWS/Python3/convertions/pdftojpg.py', 'DATA'),
('pdftomd.py', '/home/klein/codeWS/Python3/convertions/pdftomd.py', 'DATA'),
('pdftotext.py',
'/home/klein/codeWS/Python3/convertions/pdftotext.py',
'DATA'),
('pngtojpg.py', '/home/klein/codeWS/Python3/convertions/pngtojpg.py', 'DATA'),
('texttospeech.py',
'/home/klein/codeWS/Python3/convertions/texttospeech.py',
'DATA'),
('videotoaudio.py',
'/home/klein/codeWS/Python3/convertions/videotoaudio.py',
'DATA'),
('yamltojson.py',
'/home/klein/codeWS/Python3/convertions/yamltojson.py',
'DATA'),
('yamltomd.py',
'/home/klein/codeWS/Python3/convertions/yamltomd.py',
'DATA')],
'3.11.2 (main, May 2 2024, 11:59:08) [GCC 12.2.0]',
[('pyi_rth_inspect',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('convertions',
'/home/klein/codeWS/Python3/convertions/convertions.py',
'PYSOURCE')],
[('inspect', '/usr/lib/python3.11/inspect.py', 'PYMODULE'),
('importlib', '/usr/lib/python3.11/importlib/__init__.py', 'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.11/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.11/importlib/metadata/__init__.py',
'PYMODULE'),
('typing', '/usr/lib/python3.11/typing.py', 'PYMODULE'),
('importlib.abc', '/usr/lib/python3.11/importlib/abc.py', 'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.11/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.11/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._legacy',
'/usr/lib/python3.11/importlib/resources/_legacy.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.11/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.11/importlib/resources/_adapters.py',
'PYMODULE'),
('tempfile', '/usr/lib/python3.11/tempfile.py', 'PYMODULE'),
('random', '/usr/lib/python3.11/random.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.11/_strptime.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.11/datetime.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.11/calendar.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.11/statistics.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.11/decimal.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.11/_pydecimal.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.11/contextvars.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.11/fractions.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.11/numbers.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.11/hashlib.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.11/bisect.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.11/shutil.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.11/tarfile.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.11/gzip.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.11/_compression.py', 'PYMODULE'),
('copy', '/usr/lib/python3.11/copy.py', 'PYMODULE'),
('struct', '/usr/lib/python3.11/struct.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.11/lzma.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.11/bz2.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.11/fnmatch.py', 'PYMODULE'),
('importlib._abc', '/usr/lib/python3.11/importlib/_abc.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.11/contextlib.py', 'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.11/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.11/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.11/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.11/importlib/metadata/_meta.py',
'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.11/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.11/importlib/metadata/_text.py',
'PYMODULE'),
('email.message', '/usr/lib/python3.11/email/message.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.11/email/policy.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.11/email/contentmanager.py',
'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.11/email/quoprimime.py', 'PYMODULE'),
('string', '/usr/lib/python3.11/string.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.11/email/headerregistry.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.11/email/_header_value_parser.py',
'PYMODULE'),
('urllib', '/usr/lib/python3.11/urllib/__init__.py', 'PYMODULE'),
('email.iterators', '/usr/lib/python3.11/email/iterators.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.11/email/generator.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.11/email/_encoded_words.py',
'PYMODULE'),
('base64', '/usr/lib/python3.11/base64.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.11/getopt.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.11/gettext.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.11/email/charset.py', 'PYMODULE'),
('email.encoders', '/usr/lib/python3.11/email/encoders.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.11/email/base64mime.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.11/email/_policybase.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.11/email/header.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.11/email/errors.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.11/email/utils.py', 'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.11/email/_parseaddr.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.11/urllib/parse.py', 'PYMODULE'),
('socket', '/usr/lib/python3.11/socket.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.11/selectors.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.11/quopri.py', 'PYMODULE'),
('textwrap', '/usr/lib/python3.11/textwrap.py', 'PYMODULE'),
('zipfile', '/usr/lib/python3.11/zipfile.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.11/py_compile.py', 'PYMODULE'),
('threading', '/usr/lib/python3.11/threading.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.11/_threading_local.py', 'PYMODULE'),
('importlib.util', '/usr/lib/python3.11/importlib/util.py', 'PYMODULE'),
('pathlib', '/usr/lib/python3.11/pathlib.py', 'PYMODULE'),
('email', '/usr/lib/python3.11/email/__init__.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.11/email/parser.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.11/email/feedparser.py', 'PYMODULE'),
('csv', '/usr/lib/python3.11/csv.py', 'PYMODULE'),
('importlib.readers', '/usr/lib/python3.11/importlib/readers.py', 'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.11/importlib/resources/readers.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.11/importlib/resources/_itertools.py',
'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.11/importlib/_bootstrap.py',
'PYMODULE'),
('argparse', '/usr/lib/python3.11/argparse.py', 'PYMODULE'),
('token', '/usr/lib/python3.11/token.py', 'PYMODULE'),
('tokenize', '/usr/lib/python3.11/tokenize.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.11/importlib/machinery.py',
'PYMODULE'),
('dis', '/usr/lib/python3.11/dis.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.11/opcode.py', 'PYMODULE'),
('ast', '/usr/lib/python3.11/ast.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.11/_py_abc.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.11/stringprep.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.11/tracemalloc.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.11/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.11/pprint.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.11/dataclasses.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.11/_compat_pickle.py', 'PYMODULE'),
('logging', '/usr/lib/python3.11/logging/__init__.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.11/subprocess.py', 'PYMODULE'),
('signal', '/usr/lib/python3.11/signal.py', 'PYMODULE')],
[('libpython3.11.so.1.0',
'/lib/x86_64-linux-gnu/libpython3.11.so.1.0',
'BINARY'),
('lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/resource.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/resource.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'),
('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'),
('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY')],
[],
[],
[('audiototext.py',
'/home/klein/codeWS/Python3/convertions/audiototext.py',
'DATA'),
('csvmerge.py', '/home/klein/codeWS/Python3/convertions/csvmerge.py', 'DATA'),
('csvtoexcel.py',
'/home/klein/codeWS/Python3/convertions/csvtoexcel.py',
'DATA'),
('csvtojson.py',
'/home/klein/codeWS/Python3/convertions/csvtojson.py',
'DATA'),
('csvtoyaml.py',
'/home/klein/codeWS/Python3/convertions/csvtoyaml.py',
'DATA'),
('docxtomd.py', '/home/klein/codeWS/Python3/convertions/docxtomd.py', 'DATA'),
('exceltocsv.py',
'/home/klein/codeWS/Python3/convertions/exceltocsv.py',
'DATA'),
('exceltojson.py',
'/home/klein/codeWS/Python3/convertions/exceltojson.py',
'DATA'),
('htmltomd.py', '/home/klein/codeWS/Python3/convertions/htmltomd.py', 'DATA'),
('htmltopdf.py',
'/home/klein/codeWS/Python3/convertions/htmltopdf.py',
'DATA'),
('imagetomd.py',
'/home/klein/codeWS/Python3/convertions/imagetomd.py',
'DATA'),
('jpgstopdf.py',
'/home/klein/codeWS/Python3/convertions/jpgstopdf.py',
'DATA'),
('jpgtopng.py', '/home/klein/codeWS/Python3/convertions/jpgtopng.py', 'DATA'),
('jsontocsv.py',
'/home/klein/codeWS/Python3/convertions/jsontocsv.py',
'DATA'),
('jsontoexcel.py',
'/home/klein/codeWS/Python3/convertions/jsontoexcel.py',
'DATA'),
('jsontoyaml.py',
'/home/klein/codeWS/Python3/convertions/jsontoyaml.py',
'DATA'),
('mdtabletocsv.py',
'/home/klein/codeWS/Python3/convertions/mdtabletocsv.py',
'DATA'),
('mdtodocx.py', '/home/klein/codeWS/Python3/convertions/mdtodocx.py', 'DATA'),
('mdtohtml.py', '/home/klein/codeWS/Python3/convertions/mdtohtml.py', 'DATA'),
('mdtopdf.py', '/home/klein/codeWS/Python3/convertions/mdtopdf.py', 'DATA'),
('mdtoyaml.py', '/home/klein/codeWS/Python3/convertions/mdtoyaml.py', 'DATA'),
('pdftojpg.py', '/home/klein/codeWS/Python3/convertions/pdftojpg.py', 'DATA'),
('pdftomd.py', '/home/klein/codeWS/Python3/convertions/pdftomd.py', 'DATA'),
('pdftotext.py',
'/home/klein/codeWS/Python3/convertions/pdftotext.py',
'DATA'),
('pngtojpg.py', '/home/klein/codeWS/Python3/convertions/pngtojpg.py', 'DATA'),
('texttospeech.py',
'/home/klein/codeWS/Python3/convertions/texttospeech.py',
'DATA'),
('videotoaudio.py',
'/home/klein/codeWS/Python3/convertions/videotoaudio.py',
'DATA'),
('yamltojson.py',
'/home/klein/codeWS/Python3/convertions/yamltojson.py',
'DATA'),
('yamltomd.py', '/home/klein/codeWS/Python3/convertions/yamltomd.py', 'DATA'),
('base_library.zip',
'/home/klein/codeWS/Python3/convertions/build/convertions/base_library.zip',
'DATA')])

View File

@@ -1,164 +0,0 @@
('/home/klein/codeWS/Python3/convertions/dist/convertions',
True,
False,
False,
None,
None,
False,
False,
None,
True,
False,
None,
None,
None,
'/home/klein/codeWS/Python3/convertions/build/convertions/convertions.pkg',
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/klein/codeWS/Python3/convertions/build/convertions/PYZ-00.pyz',
'PYZ'),
('struct',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('convertions',
'/home/klein/codeWS/Python3/convertions/convertions.py',
'PYSOURCE'),
('libpython3.11.so.1.0',
'/lib/x86_64-linux-gnu/libpython3.11.so.1.0',
'BINARY'),
('lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/resource.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/resource.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'),
('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'),
('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'),
('audiototext.py',
'/home/klein/codeWS/Python3/convertions/audiototext.py',
'DATA'),
('csvmerge.py', '/home/klein/codeWS/Python3/convertions/csvmerge.py', 'DATA'),
('csvtoexcel.py',
'/home/klein/codeWS/Python3/convertions/csvtoexcel.py',
'DATA'),
('csvtojson.py',
'/home/klein/codeWS/Python3/convertions/csvtojson.py',
'DATA'),
('csvtoyaml.py',
'/home/klein/codeWS/Python3/convertions/csvtoyaml.py',
'DATA'),
('docxtomd.py', '/home/klein/codeWS/Python3/convertions/docxtomd.py', 'DATA'),
('exceltocsv.py',
'/home/klein/codeWS/Python3/convertions/exceltocsv.py',
'DATA'),
('exceltojson.py',
'/home/klein/codeWS/Python3/convertions/exceltojson.py',
'DATA'),
('htmltomd.py', '/home/klein/codeWS/Python3/convertions/htmltomd.py', 'DATA'),
('htmltopdf.py',
'/home/klein/codeWS/Python3/convertions/htmltopdf.py',
'DATA'),
('imagetomd.py',
'/home/klein/codeWS/Python3/convertions/imagetomd.py',
'DATA'),
('jpgstopdf.py',
'/home/klein/codeWS/Python3/convertions/jpgstopdf.py',
'DATA'),
('jpgtopng.py', '/home/klein/codeWS/Python3/convertions/jpgtopng.py', 'DATA'),
('jsontocsv.py',
'/home/klein/codeWS/Python3/convertions/jsontocsv.py',
'DATA'),
('jsontoexcel.py',
'/home/klein/codeWS/Python3/convertions/jsontoexcel.py',
'DATA'),
('jsontoyaml.py',
'/home/klein/codeWS/Python3/convertions/jsontoyaml.py',
'DATA'),
('mdtabletocsv.py',
'/home/klein/codeWS/Python3/convertions/mdtabletocsv.py',
'DATA'),
('mdtodocx.py', '/home/klein/codeWS/Python3/convertions/mdtodocx.py', 'DATA'),
('mdtohtml.py', '/home/klein/codeWS/Python3/convertions/mdtohtml.py', 'DATA'),
('mdtopdf.py', '/home/klein/codeWS/Python3/convertions/mdtopdf.py', 'DATA'),
('mdtoyaml.py', '/home/klein/codeWS/Python3/convertions/mdtoyaml.py', 'DATA'),
('pdftojpg.py', '/home/klein/codeWS/Python3/convertions/pdftojpg.py', 'DATA'),
('pdftomd.py', '/home/klein/codeWS/Python3/convertions/pdftomd.py', 'DATA'),
('pdftotext.py',
'/home/klein/codeWS/Python3/convertions/pdftotext.py',
'DATA'),
('pngtojpg.py', '/home/klein/codeWS/Python3/convertions/pngtojpg.py', 'DATA'),
('texttospeech.py',
'/home/klein/codeWS/Python3/convertions/texttospeech.py',
'DATA'),
('videotoaudio.py',
'/home/klein/codeWS/Python3/convertions/videotoaudio.py',
'DATA'),
('yamltojson.py',
'/home/klein/codeWS/Python3/convertions/yamltojson.py',
'DATA'),
('yamltomd.py', '/home/klein/codeWS/Python3/convertions/yamltomd.py', 'DATA'),
('base_library.zip',
'/home/klein/codeWS/Python3/convertions/build/convertions/base_library.zip',
'DATA')],
[],
False,
False,
1727911017,
[('run',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run',
'EXECUTABLE')],
'/lib/x86_64-linux-gnu/libpython3.11.so.1.0')

View File

@@ -1,159 +0,0 @@
('/home/klein/codeWS/Python3/convertions/build/convertions/convertions.pkg',
{'BINARY': True,
'DATA': True,
'EXECUTABLE': True,
'EXTENSION': True,
'PYMODULE': True,
'PYSOURCE': True,
'PYZ': False,
'SPLASH': True,
'SYMLINK': False},
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/klein/codeWS/Python3/convertions/build/convertions/PYZ-00.pyz',
'PYZ'),
('struct',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/klein/codeWS/Python3/convertions/build/convertions/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/home/klein/codeWS/Python3/convertions/venv/lib/python3.11/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('convertions',
'/home/klein/codeWS/Python3/convertions/convertions.py',
'PYSOURCE'),
('libpython3.11.so.1.0',
'/lib/x86_64-linux-gnu/libpython3.11.so.1.0',
'BINARY'),
('lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/resource.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/resource.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so',
'/usr/lib/python3.11/lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so',
'EXTENSION'),
('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'),
('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'),
('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'),
('audiototext.py',
'/home/klein/codeWS/Python3/convertions/audiototext.py',
'DATA'),
('csvmerge.py', '/home/klein/codeWS/Python3/convertions/csvmerge.py', 'DATA'),
('csvtoexcel.py',
'/home/klein/codeWS/Python3/convertions/csvtoexcel.py',
'DATA'),
('csvtojson.py',
'/home/klein/codeWS/Python3/convertions/csvtojson.py',
'DATA'),
('csvtoyaml.py',
'/home/klein/codeWS/Python3/convertions/csvtoyaml.py',
'DATA'),
('docxtomd.py', '/home/klein/codeWS/Python3/convertions/docxtomd.py', 'DATA'),
('exceltocsv.py',
'/home/klein/codeWS/Python3/convertions/exceltocsv.py',
'DATA'),
('exceltojson.py',
'/home/klein/codeWS/Python3/convertions/exceltojson.py',
'DATA'),
('htmltomd.py', '/home/klein/codeWS/Python3/convertions/htmltomd.py', 'DATA'),
('htmltopdf.py',
'/home/klein/codeWS/Python3/convertions/htmltopdf.py',
'DATA'),
('imagetomd.py',
'/home/klein/codeWS/Python3/convertions/imagetomd.py',
'DATA'),
('jpgstopdf.py',
'/home/klein/codeWS/Python3/convertions/jpgstopdf.py',
'DATA'),
('jpgtopng.py', '/home/klein/codeWS/Python3/convertions/jpgtopng.py', 'DATA'),
('jsontocsv.py',
'/home/klein/codeWS/Python3/convertions/jsontocsv.py',
'DATA'),
('jsontoexcel.py',
'/home/klein/codeWS/Python3/convertions/jsontoexcel.py',
'DATA'),
('jsontoyaml.py',
'/home/klein/codeWS/Python3/convertions/jsontoyaml.py',
'DATA'),
('mdtabletocsv.py',
'/home/klein/codeWS/Python3/convertions/mdtabletocsv.py',
'DATA'),
('mdtodocx.py', '/home/klein/codeWS/Python3/convertions/mdtodocx.py', 'DATA'),
('mdtohtml.py', '/home/klein/codeWS/Python3/convertions/mdtohtml.py', 'DATA'),
('mdtopdf.py', '/home/klein/codeWS/Python3/convertions/mdtopdf.py', 'DATA'),
('mdtoyaml.py', '/home/klein/codeWS/Python3/convertions/mdtoyaml.py', 'DATA'),
('pdftojpg.py', '/home/klein/codeWS/Python3/convertions/pdftojpg.py', 'DATA'),
('pdftomd.py', '/home/klein/codeWS/Python3/convertions/pdftomd.py', 'DATA'),
('pdftotext.py',
'/home/klein/codeWS/Python3/convertions/pdftotext.py',
'DATA'),
('pngtojpg.py', '/home/klein/codeWS/Python3/convertions/pngtojpg.py', 'DATA'),
('texttospeech.py',
'/home/klein/codeWS/Python3/convertions/texttospeech.py',
'DATA'),
('videotoaudio.py',
'/home/klein/codeWS/Python3/convertions/videotoaudio.py',
'DATA'),
('yamltojson.py',
'/home/klein/codeWS/Python3/convertions/yamltojson.py',
'DATA'),
('yamltomd.py', '/home/klein/codeWS/Python3/convertions/yamltomd.py', 'DATA'),
('base_library.zip',
'/home/klein/codeWS/Python3/convertions/build/convertions/base_library.zip',
'DATA')],
'libpython3.11.so.1.0',
False,
False,
False,
[],
None,
None,
None)

Binary file not shown.

View File

@@ -1,141 +0,0 @@
('/home/klein/codeWS/Python3/convertions/build/convertions/PYZ-00.pyz',
[('_compat_pickle', '/usr/lib/python3.11/_compat_pickle.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.11/_compression.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.11/_py_abc.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.11/_pydecimal.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.11/_strptime.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.11/_threading_local.py', 'PYMODULE'),
('argparse', '/usr/lib/python3.11/argparse.py', 'PYMODULE'),
('ast', '/usr/lib/python3.11/ast.py', 'PYMODULE'),
('base64', '/usr/lib/python3.11/base64.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.11/bisect.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.11/bz2.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.11/calendar.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.11/contextlib.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.11/contextvars.py', 'PYMODULE'),
('copy', '/usr/lib/python3.11/copy.py', 'PYMODULE'),
('csv', '/usr/lib/python3.11/csv.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.11/dataclasses.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.11/datetime.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.11/decimal.py', 'PYMODULE'),
('dis', '/usr/lib/python3.11/dis.py', 'PYMODULE'),
('email', '/usr/lib/python3.11/email/__init__.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.11/email/_encoded_words.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.11/email/_header_value_parser.py',
'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.11/email/_parseaddr.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.11/email/_policybase.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.11/email/base64mime.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.11/email/charset.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.11/email/contentmanager.py',
'PYMODULE'),
('email.encoders', '/usr/lib/python3.11/email/encoders.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.11/email/errors.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.11/email/feedparser.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.11/email/generator.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.11/email/header.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.11/email/headerregistry.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.11/email/iterators.py', 'PYMODULE'),
('email.message', '/usr/lib/python3.11/email/message.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.11/email/parser.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.11/email/policy.py', 'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.11/email/quoprimime.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.11/email/utils.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.11/fnmatch.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.11/fractions.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.11/getopt.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.11/gettext.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.11/gzip.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.11/hashlib.py', 'PYMODULE'),
('importlib', '/usr/lib/python3.11/importlib/__init__.py', 'PYMODULE'),
('importlib._abc', '/usr/lib/python3.11/importlib/_abc.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.11/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.11/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.abc', '/usr/lib/python3.11/importlib/abc.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.11/importlib/machinery.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.11/importlib/metadata/__init__.py',
'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.11/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.11/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.11/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.11/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.11/importlib/metadata/_meta.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.11/importlib/metadata/_text.py',
'PYMODULE'),
('importlib.readers', '/usr/lib/python3.11/importlib/readers.py', 'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.11/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.11/importlib/resources/_adapters.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.11/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.11/importlib/resources/_itertools.py',
'PYMODULE'),
('importlib.resources._legacy',
'/usr/lib/python3.11/importlib/resources/_legacy.py',
'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.11/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.11/importlib/resources/readers.py',
'PYMODULE'),
('importlib.util', '/usr/lib/python3.11/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.11/inspect.py', 'PYMODULE'),
('logging', '/usr/lib/python3.11/logging/__init__.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.11/lzma.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.11/numbers.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.11/opcode.py', 'PYMODULE'),
('pathlib', '/usr/lib/python3.11/pathlib.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.11/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.11/pprint.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.11/py_compile.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.11/quopri.py', 'PYMODULE'),
('random', '/usr/lib/python3.11/random.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.11/selectors.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.11/shutil.py', 'PYMODULE'),
('signal', '/usr/lib/python3.11/signal.py', 'PYMODULE'),
('socket', '/usr/lib/python3.11/socket.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.11/statistics.py', 'PYMODULE'),
('string', '/usr/lib/python3.11/string.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.11/stringprep.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.11/subprocess.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.11/tarfile.py', 'PYMODULE'),
('tempfile', '/usr/lib/python3.11/tempfile.py', 'PYMODULE'),
('textwrap', '/usr/lib/python3.11/textwrap.py', 'PYMODULE'),
('threading', '/usr/lib/python3.11/threading.py', 'PYMODULE'),
('token', '/usr/lib/python3.11/token.py', 'PYMODULE'),
('tokenize', '/usr/lib/python3.11/tokenize.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.11/tracemalloc.py', 'PYMODULE'),
('typing', '/usr/lib/python3.11/typing.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.11/urllib/__init__.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.11/urllib/parse.py', 'PYMODULE'),
('zipfile', '/usr/lib/python3.11/zipfile.py', 'PYMODULE')])

Binary file not shown.

Binary file not shown.

View File

@@ -1,24 +0,0 @@
This file lists modules PyInstaller was not able to find. This does not
necessarily mean this module is required for running your program. Python and
Python 3rd-party packages include a lot of conditional or optional modules. For
example the module 'ntpath' only exists on Windows, whereas the module
'posixpath' only exists on Posix systems.
Types if import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
tracking down the missing module yourself. Thanks!
missing module named 'org.python' - imported by copy (optional)
missing module named winreg - imported by importlib._bootstrap_external (conditional)
missing module named nt - imported by os (delayed, conditional, optional), ntpath (optional), shutil (conditional), importlib._bootstrap_external (conditional)
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional)
missing module named _winapi - imported by encodings (delayed, conditional, optional), ntpath (optional), subprocess (conditional)
missing module named org - imported by pickle (optional)
missing module named msvcrt - imported by subprocess (optional)

File diff suppressed because it is too large Load Diff

View File

View File

@@ -3,8 +3,9 @@ import sys
import subprocess
import os
import logging
import argparse
# Set up logging to write to /tmp directory
# Configure logging
log_path = '/tmp/convertions.log'
logging.basicConfig(
filename=log_path,
@@ -12,82 +13,21 @@ logging.basicConfig(
format='%(asctime)s - %(levelname)s - %(message)s'
)
def display_help():
help_text = """
Usage: convertions <command> [args...]
Available commands:
csvtoexcel <input_csv_path> <output_excel_path>
csvtojson <input_csv_path> <output_json_path>
exceltocsv <input_excel_path> <output_csv_path> # corrected command
htmltomd <input_html_path> <output_md_path>
jsontocsv <input_json_path> <output_csv_path>
mdtohtml <input_md_path> <output_html_path>
yamltomd <input_yaml_path> <output_md_path>
pngtojpg <input_png_path> <output_jpg_path>
jpgtopng <input_jpg_path> <output_png_path>
pdftojpg <input_pdf_path> <output_jpg_path>
imagetomd <input_image_path> <output_md_path>
jpgstopdf <output_pdf_path> <input_jpg_path1> <input_jpg_path2> ...
pdftomd <input_pdf_path> <output_md_path>
csvmerge <output_csv_path> <common_key> <input_csv1> <input_csv2> ...
mdtabletocsv <input_md_path> <output_csv_path>
yamlttojson <input_yaml_path> <output_json_path>
jsontoyaml <input_json_path> <output_yaml_path>
audiototext <input_audio_path> <output_text_path>
texttospeech <input_text_path> <output_audio_path>
videotoaudio <input_video_path> <output_audio_path>
pdftoexcel <input_pdf_path> <output_excel_path>
docxtomd <input_pdf_path> <output_excel_path>
mergepdfs <output_pdf_path> <input_pdf1> <input_pdf2> ...
"""
print(help_text)
VERSION = "0.0.1"
def expand_path(path):
""" Expand ~ to the user's home directory """
return os.path.expanduser(path)
def display_version():
"""Display the current version."""
print(f"Convertions version: {VERSION}")
def validate_paths(command, args):
if command in ["jpgstopdf", "csvmerge", "mergepdfs"]:
output_path = expand_path(args[0])
input_paths = [expand_path(path) for path in args[1:]]
if len(input_paths) < 2:
print(f"Error: Command '{command}' requires at least two input files.")
sys.exit(1)
if not all(os.path.isfile(path) for path in input_paths):
print("Error: One or more input paths do not exist.")
sys.exit(1)
else:
if len(args) < 2:
print(f"Error: Command '{command}' requires an input and an output path.")
sys.exit(1)
input_path, output_path = expand_path(args[0]), expand_path(args[1])
if not os.path.isfile(input_path):
print(f"Error: Input file '{input_path}' does not exist.")
sys.exit(1)
return output_path
def main():
if len(sys.argv) < 2:
display_help()
sys.exit(1)
command = sys.argv[1]
args = sys.argv[2:]
if command == "help":
display_help()
sys.exit(0)
script_map = {
# Mapping of commands to utility scripts
SCRIPT_MAP = {
"csvtoexcel": "csvtoexcel.py",
"csvtojson": "csvtojson.py",
"docxtomd": "docxtomd.py",
"exceltocsv": "exceltocsv.py", # corrected from "excelto_csv"
"exceltocsv": "exceltocsv.py",
"htmltomd": "htmltomd.py",
"jsontocsv": "jsontocsv.py",
"mdtohtml": "mdtohtml.py",
"mdtodocx": "mdtodocx.py",
"yamltomd": "yamltomd.py",
"pngtojpg": "pngtojpg.py",
"jpgtopng": "jpgtopng.py",
@@ -106,26 +46,119 @@ def main():
"mergepdfs": "mergepdfs.py"
}
if command not in script_map:
print(f"Unknown command: {command}")
display_help()
sys.exit(1)
# Display help for all commands
def display_help():
help_text = """
Usage: convertions <command> [args...]
Available commands:
csvtoexcel <input_csv_path> <output_excel_path>
csvtojson <input_csv_path> <output_json_path>
exceltocsv <input_excel_path> <output_csv_path>
htmltomd <input_html_path> <output_md_path>
jsontocsv <input_json_path> <output_csv_path>
mdtohtml <input_md_path> <output_html_path>
yamltomd <input_yaml_path> <output_md_path>
pngtojpg <input_png_path> <output_jpg_path>
jpgtopng <input_jpg_path> <output_png_path>
pdftojpg <input_pdf_path> <output_jpg_path>
imagetomd <input_image_path> <output_md_path>
jpgstopdf <output_pdf_path> <input_jpg_path1> <input_jpg_path2> ...
pdftomd <input_pdf_path> <output_md_path>
csvmerge <output_csv_path> <common_key> <input_csv1> <input_csv2> ...
mdtabletocsv <input_md_path> <output_csv_path>
yamlttojson <input_yaml_path> <output_json_path>
jsontoyaml <input_json_path> <output_yaml_path>
audiototext <input_audio_path> <output_text_path>
texttospeech <input_text_path> <output_audio_path>
videotoaudio <input_video_path> <output_audio_path>
pdftoexcel <input_pdf_path> <output_excel_path>
docxtomd <input_docx_path> <output_md_path>
mergepdfs <output_pdf_path> <input_pdf1> <input_pdf2> ...
"""
print(help_text)
if len(args) < 2 and command not in ["jpgstopdf", "csvmerge"]:
print(f"Error: Insufficient arguments for command '{command}'.")
display_help()
sys.exit(1)
def expand_path(path):
""" Expand ~ to the user's home directory """
return os.path.expanduser(path)
# Adjust script path to locate `utils` correctly in binary or development mode
def get_script_path(script_name):
# When running as a PyInstaller binary, locate utils in the `_MEIPASS` path
if getattr(sys, 'frozen', False):
script_path = os.path.join(sys._MEIPASS, 'utils', script_name)
else:
# In development, locate utils relative to the script
script_path = os.path.join(os.path.dirname(__file__), 'utils', script_name)
return script_path
def validate_paths(command, args):
"""Validate paths for commands with specific argument requirements."""
if command in ["jpgstopdf", "csvmerge", "mergepdfs"]:
output_path = expand_path(args[0])
input_paths = [expand_path(path) for path in args[1:]]
if len(input_paths) < 2:
raise ValueError(f"Command '{command}' requires at least two input files.")
if not all(os.path.isfile(path) for path in input_paths):
raise FileNotFoundError("One or more input paths do not exist.")
else:
if len(args) < 2:
raise ValueError(f"Command '{command}' requires an input and an output path.")
input_path, output_path = expand_path(args[0]), expand_path(args[1])
if not os.path.isfile(input_path):
raise FileNotFoundError(f"Input file '{input_path}' does not exist.")
return output_path
def run_command(command, args):
"""Run the specified command by calling the appropriate script."""
if command not in SCRIPT_MAP:
raise ValueError(f"Unknown command: {command}")
# Validate paths and get output path
output_path = validate_paths(command, args)
script_path = os.path.join(os.path.dirname(__file__), script_map[command])
# Locate the correct path for the utility script
script_path = get_script_path(SCRIPT_MAP[command])
try:
result = subprocess.run([sys.executable, script_path] + args, check=True)
logging.info(f"Successfully executed {command} on {args}.")
print(f"Conversion completed successfully. Output saved to '{output_path}'.")
except subprocess.CalledProcessError as e:
logging.error(f"Error executing {command} on {args}: {e}")
print(f"Error: Conversion failed. Check the log file at /tmp/convertions.log for details.")
print(f"Error: Conversion failed. Check the log file at {log_path} for details.")
def main():
parser = argparse.ArgumentParser(
description="Convertions: A tool for various file format conversions."
)
parser.add_argument('--version', '-v', action='store_true', help="Display the program version and exit.")
parser.add_argument('command', type=str, nargs='?', help="The command to run (e.g., csvtoexcel, htmltomd).")
parser.add_argument('args', nargs=argparse.REMAINDER, help="Arguments for the specified command.")
args = parser.parse_args()
# Display version and exit if --version or -v is specified
if args.version:
display_version()
sys.exit(0)
# If no command is provided, display help and exit
if not args.command:
display_help()
sys.exit(1)
# If help is requested, display help and exit
if args.command in ["help", "-h", "--help"]:
display_help()
sys.exit(0)
# Run the command
try:
run_command(args.command, args.args)
except (ValueError, FileNotFoundError) as e:
print(f"Error: {e}")
logging.error(e)
display_help()
sys.exit(1)
if __name__ == "__main__":
main()

View File

@@ -1,61 +0,0 @@
#!/usr/bin/env python3
import sys
import subprocess
import os
def main():
if len(sys.argv) < 2:
print("Usage: convertions <command> [args...]")
print("Available commands:")
print(" csvtoexcel <input_csv_path> <output_excel_path>")
print(" csvtojson <input_csv_path> <output_json_path>")
print(" excelto_csv <input_excel_path> <output_csv_path>")
print(" htmltomd <input_html_path> <output_md_path>")
print(" jsontocsv <input_json_path> <output_csv_path>")
print(" mdtohtml <input_md_path> <output_html_path>")
print(" yamltomd <input_yaml_path> <output_md_path>")
print(" pngtojpg <input_png_path> <output_jpg_path>")
print(" jpgtopng <input_jpg_path> <output_png_path>")
print(" pdftojpg <input_pdf_path> <output_jpg_path>")
print(" imagetomd <input_image_path> <output_md_path>")
print(" jpgstopdf <output_pdf_path> <input_jpg_path1> <input_jpg_path2> ...")
print(" pdftomd <input_pdf_path> <output_md_path>")
sys.exit(1)
command = sys.argv[1]
args = sys.argv[2:]
script_map = {
"csvtoexcel": "csvtoexcel.py",
"csvtojson": "csvtojson.py",
"excelto_csv": "excelto_csv.py",
"htmltomd": "htmltomd.py",
"jsontocsv": "jsontocsv.py",
"mdtohtml": "mdtohtml.py",
"yamltomd": "yamltomd.py",
"pngtojpg": "pngtojpg.py",
"jpgtopng": "jpgtopng.py",
"pdftojpg": "pdftojpg.py",
"imagetomd": "imagetomd.py",
"jpgstopdf": "jpgstopdf.py",
"pdftomd": "pdftomd.py",
}
if command not in script_map:
print(f"Unknown command: {command}")
sys.exit(1)
script_path = os.path.join(os.path.dirname(__file__), script_map[command])
# Path to the virtual environment's Python executable
venv_python = os.path.join(os.path.dirname(__file__), 'convertions-env', 'bin', 'python')
if not os.path.isfile(venv_python):
print(f"Virtual environment not found at {venv_python}. Please set up the virtual environment.")
sys.exit(1)
# Run the script using the virtual environment's Python interpreter
subprocess.run([venv_python, script_path] + args)
if __name__ == "__main__":
main()

View File

@@ -1,38 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['convertions.py'],
pathex=[],
binaries=[],
datas=[('audiototext.py', '.'), ('exceltocsv.py', '.'), ('mdtabletocsv.py', '.'), ('exceltojson.py', '.'), ('mdtodocx.py', '.'), ('htmltomd.py', '.'), ('htmltopdf.py', '.'), ('mdtohtml.py', '.'), ('mdtopdf.py', '.'), ('mdtoyaml.py', '.'), ('imagetomd.py', '.'), ('jpgstopdf.py', '.'), ('jpgtopng.py', '.'), ('pdftojpg.py', '.'), ('pdftomd.py', '.'), ('csvmerge.py', '.'), ('csvtoexcel.py', '.'), ('csvtojson.py', '.'), ('csvtoyaml.py', '.'), ('docxtomd.py', '.'), ('jsontocsv.py', '.'), ('jsontoexcel.py', '.'), ('jsontoyaml.py', '.'), ('pdftotext.py', '.'), ('pngtojpg.py', '.'), ('texttospeech.py', '.'), ('videotoaudio.py', '.'), ('yamltojson.py', '.'), ('yamltomd.py', '.')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='convertions',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)

74
install.sh Executable file
View File

@@ -0,0 +1,74 @@
#!/bin/bash
# Define paths and requirements
CONVERTIONS_PATH="./convertions.py"
UTILS_PATH="./utils"
REQUIREMENTS_FILE="requirements.txt"
VENV_DIR="./venv"
VERSION=$(grep "VERSION = " $CONVERTIONS_PATH | cut -d '"' -f 2)
TARGET_BINARY="/usr/local/bin/convertions"
TEMP_BINARY="./dist/convertions"
# Step 1: Check for or set up the virtual environment and install dependencies
echo "Setting up virtual environment and checking dependencies..."
if [ ! -d "$VENV_DIR" ]; then
python3 -m venv $VENV_DIR
fi
source $VENV_DIR/bin/activate
# Install requirements into the VENV if not already present
pip install -r $REQUIREMENTS_FILE || { echo "Error installing dependencies."; deactivate; exit 1; }
# Ensure PyInstaller is installed in the VENV
pip install pyinstaller || { echo "Error installing PyInstaller."; deactivate; exit 1; }
echo "Dependencies installed successfully in the virtual environment."
# Step 2: Build the binary using PyInstaller within the VENV
echo "Building binary with PyInstaller..."
pyinstaller --onefile --add-data "$UTILS_PATH:utils/" --name convertions $CONVERTIONS_PATH || { echo "Error creating binary."; deactivate; exit 1; }
deactivate
echo "Binary created successfully at $TEMP_BINARY"
# Step 3: Check for existing version in /usr/local/bin
if [ -f "$TARGET_BINARY" ]; then
INSTALLED_VERSION=$($TARGET_BINARY --version | awk '{print $NF}')
echo "Installed version: $INSTALLED_VERSION, New version: $VERSION"
if [ "$VERSION" = "$INSTALLED_VERSION" ]; then
echo "The installed version is up-to-date. No update required."
exit 0
else
echo "Updating convertions to version $VERSION."
fi
else
echo "No existing version found in /usr/local/bin. Installing new version."
fi
# Step 4: Ask the user if they want to install the binary to /usr/local/bin
while true; do
read -p "Do you want to install the binary to /usr/local/bin? (yes/no/cancel) " choice
case $choice in
yes )
sudo mv "$TEMP_BINARY" "$TARGET_BINARY" && echo "Convertions installed at $TARGET_BINARY, version $VERSION."
rm -rf build dist __pycache__ *.spec
break
;;
no )
echo "Installation to /usr/local/bin skipped. Binary remains at $TEMP_BINARY."
break
;;
cancel )
echo "Installation canceled. Cleaning up..."
rm -rf build dist __pycache__ *.spec
[ -d "$VENV_DIR" ] && rm -rf "$VENV_DIR"
echo "Cleanup complete. Exiting."
exit 0
;;
* )
echo "Please enter 'yes', 'no', or 'cancel'."
;;
esac
done
echo "Installation complete. Binary is available at $TARGET_BINARY or in the current directory as $TEMP_BINARY if skipped."

View File

@@ -1,38 +0,0 @@
#!/bin/bash
# Activate virtual environment
if [ -d "venv" ]; then
source venv/bin/activate
echo "Virtual environment activated."
else
echo "Error: Virtual environment not found. Please create one using 'python3 -m venv venv' and install the required packages."
exit 1
fi
# Check if pyinstaller is installed
if ! command -v pyinstaller &> /dev/null; then
echo "PyInstaller not found. Installing PyInstaller in the virtual environment..."
pip install pyinstaller
fi
# Define the path for your convertions directory
CONVERTIONS_DIR="."
# Collect all .py files
PY_FILES=$(find $CONVERTIONS_DIR -name "*.py" -not -name "venv/*")
# Construct --add-data arguments for each .py file
ADD_DATA_ARGS=""
for file in $PY_FILES; do
ADD_DATA_ARGS="$ADD_DATA_ARGS --add-data \"$file:./\""
done
# Run pyinstaller with --onefile and --add-data for all .py files
echo "Running PyInstaller to package convertions.py with dependencies..."
eval "pyinstaller --onefile $ADD_DATA_ARGS convertions.py"
# Deactivate virtual environment
deactivate
echo "Packaging complete. The binary can be found in the 'dist' directory."

View File