Skip to main content

Built using PyQt6, it provides a drag-and-drop interface, a file system browser, and a logging console, enabling users to easily copy file contents to the clipboard, parse Python files for functions and imports, and manage file extensions and directories dynamically.

Project description

Abstract ClipIt

Overview

Abstract ClipIt is a Python-based GUI application designed to simplify file management and analysis, particularly for developers. Built using PyQt6, it provides a drag-and-drop interface, a file system browser, and a logging console, enabling users to easily copy file contents to the clipboard, parse Python files for functions and imports, and manage file extensions and directories dynamically.

Features

  • Drag and Drop Support: Drag files or directories into the application to process their contents.
  • File System Browser: Navigate and select files or folders via a tree view interface.
  • Clipboard Integration: Copy file contents, function definitions, and import chains directly to the clipboard.
  • Extension Filtering: Dynamically filter files by extension using checkboxes.
  • Directory Filtering: Exclude or include specific directory patterns.
  • Function and Import Parsing: Analyze Python files to extract function definitions and import dependencies.
  • Logging: Toggleable log console for debugging and tracking actions.
  • View Toggle: Switch between array and print views for text output.

Installation

  1. Ensure you have Python 3.6 or higher installed.
  2. Install the required dependencies:
    pip install setuptools wheel abstract_utilities clipboard flask abstract_gui PyQt6
    
  3. Clone the repository or download the source code.
  4. Navigate to the project directory and install the package:
    python setup.py install
    

Usage

Running the Application

Run the application from the command line:

python -m abstract_clipit

This will launch the GUI with a file browser on the left, a drop area on the right, and a toggleable log console.

Interface

  • Toolbar: Contains buttons to toggle the log console and switch between view modes.
  • File System Tree: Left pane for browsing and selecting files or folders. Double-click to process a file, or use the "Copy Selected" button.
  • File Drop Area: Right pane where you can drag and drop files. Includes extension and directory filters, and displays function and file lists.
  • Log Console: Bottom section (toggleable) for viewing application logs.

Key Actions

  • Drag and Drop: Drop files to read and copy their contents. Python files are parsed for functions and imports.
  • Browse Files: Use the "Browse Files…" button to select multiple files via a dialog.
  • Copy Selected: Copy selected items from the tree view to the drop area for processing.
  • Toggle Logs: Show or hide the log console.
  • Toggle View: Switch between array and print views for text output in the drop area.

Directory Structure

abstract_clipit/
├── src/
│   ├── abstract_clipit/
│   │   ├── __init__.py
│   │   ├── imports.py
│   │   ├── main.py
│   │   ├── initFuncs.py
│   │   ├── FileDropArea/
│   │   │   ├── __init__.py
│   │   │   ├── imports.py
│   │   │   ├── main.py
│   │   │   ├── initFuncs.py
│   │   │   ├── functions/
│   │   │   │   ├── view_utils.py
│   │   │   │   ├── python_utils.py
│   │   │   │   ├── directory_utils.py
│   │   │   │   ├── rebuild_utils.py
│   │   ├── FileSystemTree/
│   │   │   ├── __init__.py
│   │   │   ├── imports.py
│   │   │   ├── main.py
│   │   │   ├── initFuncs.py
│   │   │   ├── functions/
│   │   │   │   ├── text_utils.py
│   │   ├── JSBridge/
│   │   │   ├── JSBridge.py
│   │   ├── clipitTab/
│   │   │   ├── __init__.py
│   │   │   ├── imports.py
│   │   │   ├── main.py
│   │   │   ├── initFuncs.py
│   │   │   ├── getFnames.py
│   │   │   ├── functions/
│   │   │   │   ├── drop_utils.py
│   │   ├── utils/
│   │   │   ├── read_utils.py
│   ├── imports/
│   │   ├── qt_funcs.py
│   │   ├── utils.py
├── setup.py
├── README.md

Dependencies

  • abstract_utilities
  • clipboard
  • flask
  • abstract_gui
  • PyQt6

Development

Contributing

Contributions are welcome! Please fork the repository, make your changes, and submit a pull request.

Building

To build the package, run:

python setup.py sdist bdist_wheel

Testing

Test the application by running it with sample files and verifying the clipboard output, log messages, and UI behavior.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For support or inquiries, contact partners@abstractendeavors.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abstract_clipit-0.0.1.66.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abstract_clipit-0.0.1.66-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file abstract_clipit-0.0.1.66.tar.gz.

File metadata

  • Download URL: abstract_clipit-0.0.1.66.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for abstract_clipit-0.0.1.66.tar.gz
Algorithm Hash digest
SHA256 2573ecd75dd232148336e3ee0c9e6501c8d4b9b875c5a74c4133ff04da1650ba
MD5 687c2472652f0b2fde24e5a9c7a1bc01
BLAKE2b-256 3df5d1a62e58fc23d32f81644b99b073a8dc0ce23950ec7765ce873fe8a46b4c

See more details on using hashes here.

File details

Details for the file abstract_clipit-0.0.1.66-py3-none-any.whl.

File metadata

File hashes

Hashes for abstract_clipit-0.0.1.66-py3-none-any.whl
Algorithm Hash digest
SHA256 7a776ca98120f7a04cb9fb1b79abd5ee3e3aed121bbe7f8be49b8a55b77c9be0
MD5 9cd5f54c0780e3c32e74bf6682120a26
BLAKE2b-256 751f11e3884844380ebf4c4e208d78cab995ebcd8b5f0ebcc5341bb7a4b123d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page