Compare the files between two project folders.
Project description
📁 dircomply - Folder Comparison Tool
dircomply is a lightweight tool to compare files between two directories.It highlights files that differ and those that are unique to each folder.Supports both CLI mode and GUI mode for ease of use.
✅ Features
- Compare files between two folders
- Detect differences in file contents
- List unique files in each folder
- Supported filetypes are listed later
- Override or append compare extensions and skipped directories from CLI
- Configure GUI font size/zoom for high-DPI monitors
- Change result popup font size dynamically with Ctrl + mouse wheel
- GUI mode for interactive comparison
- CLI mode for quick terminal use
💾 Installation
Install dircomply using pip:
pip install dircomply
🧪 Example Usage
Compare two folders via CLI:
dircomply /path/to/folder1 /path/to/folder2
Append one skipped directory and one content extension to the JSON defaults:
dircomply /path/to/folder1 /path/to/folder2 --append_skip_dir dist --append_content_ext .toml
Overwrite skipped directories and content extensions from the JSON defaults:
dircomply /path/to/folder1 /path/to/folder2 --skip_dir .git,build --content_ext .py --content_ext .json
Launch GUI mode:
dircomply
Launch GUI mode with temporary larger text/zoom:
dircomply --font_size 16 --result_font_size 16 --result_line_spacing 8 --result_text_bold true --zoom 1.5
Launch GUI mode with light theme for one run:
dircomply --theme light
Show version info:
dircomply --version
Display author details:
dircomply --author
📌 Supported CLI Options
Option Description --help, -h Show help message and exit --version, -v Show version number and exit --author, -a Show author name and exit --email, -e Show author email and exit --content_ext VALUE Overwrite JSON content_extensions --append_content_ext VALUE Append to JSON content_extensions --existence_ext VALUE Overwrite JSON existence_extensions --append_existence_ext VALUE Append to JSON existence_extensions --skip_dir VALUE Overwrite JSON skip_dirs --append_skip_dir VALUE Append to JSON skip_dirs --font_size VALUE Override GUI label/input/button font size --result_font_size VALUE Override result popup text size --result_line_spacing VALUE Override result popup line spacing in pixels --result_text_bold VALUE Override result popup bold text: true or false --zoom VALUE Override Tk scaling for high-DPI monitors --theme {dark,light} Override GUI theme for this run
VALUE can be comma-separated or the flag can be repeated.
--existance_ext and --append_existance_ext are also accepted as aliases.
If no arguments are passed, GUI mode will be launched.
🔍 GUI Text Size / Zoom
The GUI reads user settings from:
~/.config/dircomply/settings.json
Example for a 2K/high-DPI monitor:
{
"ui": {
"font_family": "Arial",
"font_size": 16,
"result_font_size": 16,
"result_line_spacing": 6,
"result_text_bold": true,
"tk_scaling": 1.5,
"window_width": 750,
"window_height": 430,
"popup_width": 950,
"popup_height": 700,
"theme": "dark"
}
}
tk_scaling zooms the whole Tkinter UI. font_size and result_font_size control the text size. result_line_spacing controls extra pixels after each result text line. result_text_bold controls whether result popup text is bold. theme supports dark and light; dark is the default.
In the result popup, hold Ctrl and scroll the mouse wheel over the result text to increase or decrease the result font size dynamically. If your Wayland compositor intercepts Ctrl + mouse wheel, use Ctrl + plus or Ctrl + minus in the result window instead. This is temporary for the open result window and does not rewrite settings.json.
🔎 What Gets Compared?
dircomply compares only files with the following extensions:
".txt", ".py", ".bat", ".html", ".ts",".json",".scss",".tcl",".md",
".yaml",".yml",".ini",".in",".sh",".gitignore"
Also check below files on existence check rather than the content difference check.
".xlsx", ".csv", ".docx",
".png",".jpeg",".jpg",".ods",
".pdf", ".ico"
The default skipped directories are:
".git", ".venv", "nodemodules", ".vscode", "__pycache__", "build"
All other file types are ignored during the comparison.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dircomply-1.3.0.tar.gz.
File metadata
- Download URL: dircomply-1.3.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86acf9b7943feadd6b80e5c3da4479573338ad9bc7c6c1d7ccbd807ec258b206
|
|
| MD5 |
de1bbe683620b62a228024f655b51a1b
|
|
| BLAKE2b-256 |
f44752ead9bfb1c25999d304a5e1404dcb249effda2f62d2a1f5ebd90d32a6fe
|
File details
Details for the file dircomply-1.3.0-py3-none-any.whl.
File metadata
- Download URL: dircomply-1.3.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13fdefb96f5711c867d942b836be8c1a5c751f72dc2f72c9458cf99c3013a9c9
|
|
| MD5 |
bf0681c0c04d8f4b66827e5ac14f9b8d
|
|
| BLAKE2b-256 |
ea929797fab09af10efa20bbe039483b01821dc803734e291c6aecfa63590317
|