Package: cmpy
# 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.### InstallationYou can get cmpy with pip:```pip install cmpy```### OverviewComparison of files and directories in `cmpy` is handled with the `FCompare` and `DCompare` classes, respectively. Filescan also be compared using the static `shallow_fcmp()` and `deep_fcmp()` methods. As the names suggest, the former performsa 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 filesf = 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 comparisonf = FCompare('foo/bar', 'bar/foo', shallow=False)# Change the default buffer size (for deep comparison). Default is 2**10 bytesf = FCompare('foo/bar', 'bar/foo', buffer_size=2**8)```Files can also be compared without instantiating an object```python# Shallow comparisonshallow_fcmp('foo/bar', 'bar/foo')# Deep comparisondeep_fcmp('foo/bar', 'bar/foo')# Deep comparison specifying buffer sizedeep_fcmp('foo/bar', 'bar/foo', 2**8)```#### Comparing Directories:```python# Instantiate a directory compare object between to directoriesd = 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 comparisond = DCompare('foo/bar/', 'bar/foo/', shallow=False)# Change the default buffer size (for deep comparison). Default is 2**10 bytesd = DCompare('foo/bar/', 'bar/foo/', buffer_size=2**8)# Perform a comparison non-recursivelyd = 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```pythond = DCompare('foo/bar/', 'bar/foo/')# The names of files in the first directoryd.dir1_files# The names of directories in the first directoryd.dir1_directories# The names of the entries in the first directoryd.dir1_contents# The names of files in the second directoryd.dir2_files# The names of directories in the second directoryd.dir2_directories# The names of the entries in the second directoryd.dir2_contents# The names of the entries in the first directory which are not in the second directoryd.dir1_unique# The names of the entries in the second directory which are not in the first directoryd.dir2_unique# The names of the entries found in both directoriesd.common```