Skip to main content

A simple utility for detecting differences in directories and files.

Project description

# cmpy
[![License](https://pypip.in/license/cmpy/badge.svg)](https://pypi.python.org/pypi/cmpy/)
[![Latest Version](https://pypip.in/version/cmpy/badge.svg)](https://pypi.python.org/pypi/cmpy/)
[![Downloads](https://pypip.in/download/cmpy/badge.svg)](https://pypi.python.org/pypi/cmpy/)

A simple utility for detecting differences in directories and files.

### Installation

You can get cmpy with pip:

```
pip install cmpy
```

### Overview

Comparison of files and directories in `cmpy` is handled with the `FCompare` and `DCompare` classes, respectively. Files
can also be compared using the static `shallow_fcmp()` and `deep_fcmp()` methods. As the names suggest, the former performs
a shallow comparison (less strict comparison, faster and less resource intensive), while the latter performs a deep comparison
(strict comparison, slower, more resource intensive).

For additional information on the comparison methods and classes, see the docstring in `cmpy.py`.

### Usage

#### Comparing Files

```python
# Instantiate a file compare object between to files
f = FCompare('foo/bar', 'bar/foo')

# Compare the files (returns True or False)
f.compare()
```

Optional arguments may be provided

```python
# Perform a shallow comparison (default behavior)
f = FCompare('foo/bar', 'bar/foo', shallow=True)

# Perform a deep comparison
f = FCompare('foo/bar', 'bar/foo', shallow=False)

# Change the default buffer size (for deep comparison). Default is 2**10 bytes
f = FCompare('foo/bar', 'bar/foo', buffer_size=2**8)
```

Files can also be compared without instantiating an object

```python
# Shallow comparison
shallow_fcmp('foo/bar', 'bar/foo')

# Deep comparison
deep_fcmp('foo/bar', 'bar/foo')

# Deep comparison specifying buffer size
deep_fcmp('foo/bar', 'bar/foo', 2**8)
```

#### Comparing Directories:

```python
# Instantiate a directory compare object between to directories
d = DCompare('foo/bar/', 'bar/foo/')

# Compare the directories (returns True or False)
d.compare()
```

Optional arguments may be provided

```python
# Perform a shallow comparison (default behavior)
d = DCompare('foo/bar/', 'bar/foo/', shallow=True)

# Perform a deep comparison
d = DCompare('foo/bar/', 'bar/foo/', shallow=False)

# Change the default buffer size (for deep comparison). Default is 2**10 bytes
d = DCompare('foo/bar/', 'bar/foo/', buffer_size=2**8)

# Perform a comparison non-recursively
d = DCompare('foo/bar/', 'bar/foo/', recursive=False)

# Perform a comparison recursively (default behavior)
d = DCompare('foo/bar/', 'bar/foo/', recursive=True)
```

The `DCompare` class has various properties on it

```python
d = DCompare('foo/bar/', 'bar/foo/')

# The names of files in the first directory
d.dir1_files

# The names of directories in the first directory
d.dir1_directories

# The names of the entries in the first directory
d.dir1_contents

# The names of files in the second directory
d.dir2_files

# The names of directories in the second directory
d.dir2_directories

# The names of the entries in the second directory
d.dir2_contents

# The names of the entries in the first directory which are not in the second directory
d.dir1_unique

# The names of the entries in the second directory which are not in the first directory
d.dir2_unique

# The names of the entries found in both directories
d.common
```

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

cmpy-0.2.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file cmpy-0.2.tar.gz.

File metadata

  • Download URL: cmpy-0.2.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cmpy-0.2.tar.gz
Algorithm Hash digest
SHA256 ba2e0f218bd748855eb3121d5d45a25ea1b34f06980cceae80cbc6d3b99967be
MD5 b6ec65310661bc707a0e90c9cbc4cbc7
BLAKE2b-256 581129854680c85211fc1e813bc94dbedb32a9806dff94ae21577320d42df1d9

See more details on using hashes here.

Supported by

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