|
|
|
|
@@ -0,0 +1,166 @@
|
|
|
|
|
Metadata-Version: 2.4
|
|
|
|
|
Name: crcmod
|
|
|
|
|
Version: 1.7
|
|
|
|
|
Summary: CRC Generator
|
|
|
|
|
Home-page: http://crcmod.sourceforge.net/
|
|
|
|
|
Download-URL: http://sourceforge.net/projects/crcmod
|
|
|
|
|
Author: Ray Buvel
|
|
|
|
|
Author-email: rlbuvel@gmail.com
|
|
|
|
|
License: MIT
|
|
|
|
|
Classifier: Development Status :: 5 - Production/Stable
|
|
|
|
|
Classifier: Intended Audience :: Developers
|
|
|
|
|
Classifier: Intended Audience :: Education
|
|
|
|
|
Classifier: Intended Audience :: End Users/Desktop
|
|
|
|
|
Classifier: Intended Audience :: Information Technology
|
|
|
|
|
Classifier: Intended Audience :: Science/Research
|
|
|
|
|
Classifier: License :: OSI Approved :: MIT License
|
|
|
|
|
Classifier: Operating System :: OS Independent
|
|
|
|
|
Classifier: Programming Language :: C
|
|
|
|
|
Classifier: Programming Language :: C++
|
|
|
|
|
Classifier: Programming Language :: Python
|
|
|
|
|
Classifier: Programming Language :: Python :: 2
|
|
|
|
|
Classifier: Programming Language :: Python :: 2.4
|
|
|
|
|
Classifier: Programming Language :: Python :: 2.5
|
|
|
|
|
Classifier: Programming Language :: Python :: 2.6
|
|
|
|
|
Classifier: Programming Language :: Python :: 2.7
|
|
|
|
|
Classifier: Programming Language :: Python :: 3
|
|
|
|
|
Classifier: Programming Language :: Python :: 3.1
|
|
|
|
|
Classifier: Topic :: Communications
|
|
|
|
|
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
|
|
|
|
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
|
|
|
Classifier: Topic :: Utilities
|
|
|
|
|
License-File: LICENSE
|
|
|
|
|
Dynamic: author
|
|
|
|
|
Dynamic: author-email
|
|
|
|
|
Dynamic: classifier
|
|
|
|
|
Dynamic: description
|
|
|
|
|
Dynamic: download-url
|
|
|
|
|
Dynamic: home-page
|
|
|
|
|
Dynamic: license
|
|
|
|
|
Dynamic: license-file
|
|
|
|
|
Dynamic: summary
|
|
|
|
|
|
|
|
|
|
===========================
|
|
|
|
|
crcmod for Calculating CRCs
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
The software in this package is a Python module for generating objects that
|
|
|
|
|
compute the Cyclic Redundancy Check (CRC). There is no attempt in this package
|
|
|
|
|
to explain how the CRC works. There are a number of resources on the web that
|
|
|
|
|
give a good explanation of the algorithms. Just do a Google search for "crc
|
|
|
|
|
calculation" and browse till you find what you need. Another resource can be
|
|
|
|
|
found in chapter 20 of the book "Numerical Recipes in C" by Press et. al.
|
|
|
|
|
|
|
|
|
|
This package allows the use of any 8, 16, 24, 32, or 64 bit CRC. You can
|
|
|
|
|
generate a Python function for the selected polynomial or an instance of the
|
|
|
|
|
Crc class which provides the same interface as the ``md5`` and ``sha`` modules
|
|
|
|
|
from the Python standard library. A ``Crc`` class instance can also generate
|
|
|
|
|
C/C++ source code that can be used in another application.
|
|
|
|
|
|
|
|
|
|
----------
|
|
|
|
|
Guidelines
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
Documentation is available from the doc strings. It is up to you to decide
|
|
|
|
|
what polynomials to use in your application. If someone has not specified the
|
|
|
|
|
polynomials to use, you will need to do some research to find one suitable for
|
|
|
|
|
your application. Examples are available in the unit test script ``test.py``.
|
|
|
|
|
You may also use the ``predefined`` module to select one of the standard
|
|
|
|
|
polynomials.
|
|
|
|
|
|
|
|
|
|
If you need to generate code for another language, I suggest you subclass the
|
|
|
|
|
``Crc`` class and replace the method ``generateCode``. Use ``generateCode`` as
|
|
|
|
|
a model for the new version.
|
|
|
|
|
|
|
|
|
|
------------
|
|
|
|
|
Dependencies
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
Python Version
|
|
|
|
|
^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
The package has separate code to support the 2.x and 3.x Python series.
|
|
|
|
|
|
|
|
|
|
For the 2.x versions of Python, these versions have been tested:
|
|
|
|
|
|
|
|
|
|
* 2.4
|
|
|
|
|
* 2.5
|
|
|
|
|
* 2.6
|
|
|
|
|
* 2.7
|
|
|
|
|
|
|
|
|
|
It may still work on earlier versions of Python 2.x, but these have not been
|
|
|
|
|
recently tested.
|
|
|
|
|
|
|
|
|
|
For the 3.x versions of Python, these versions have been tested:
|
|
|
|
|
|
|
|
|
|
* 3.1
|
|
|
|
|
|
|
|
|
|
Building C extension
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
To build the C extension, the appropriate compiler tools for your platform must
|
|
|
|
|
be installed. Refer to the Python documentation for building C extensions for
|
|
|
|
|
details.
|
|
|
|
|
|
|
|
|
|
------------
|
|
|
|
|
Installation
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
The crcmod package is installed using ``distutils``.
|
|
|
|
|
Run the following command::
|
|
|
|
|
|
|
|
|
|
python setup.py install
|
|
|
|
|
|
|
|
|
|
If the extension module builds, it will be installed. Otherwise, the
|
|
|
|
|
installation will include the pure Python version. This will run significantly
|
|
|
|
|
slower than the extension module but will allow the package to be used.
|
|
|
|
|
|
|
|
|
|
For Windows users who want to use the mingw32 compiler, run this command::
|
|
|
|
|
|
|
|
|
|
python setup.py build --compiler=mingw32 install
|
|
|
|
|
|
|
|
|
|
For Python 3.x, the install process is the same but you need to use the 3.x
|
|
|
|
|
interpreter.
|
|
|
|
|
|
|
|
|
|
------------
|
|
|
|
|
Unit Testing
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
The ``crcmod`` package has a module ``crcmod.test``, which contains unit
|
|
|
|
|
tests for both ``crcmod`` and ``crcmod.predefined``.
|
|
|
|
|
|
|
|
|
|
When you first install ``crcmod``, you should run the unit tests to make sure
|
|
|
|
|
everything is installed properly. The test script performs a number of tests
|
|
|
|
|
including a comparison to the direct method which uses a class implementing
|
|
|
|
|
polynomials over the integers mod 2.
|
|
|
|
|
|
|
|
|
|
To run the unit tests on Python >=2.5::
|
|
|
|
|
|
|
|
|
|
python -m crcmod.test
|
|
|
|
|
|
|
|
|
|
Alternatively, in the ``test`` directory run::
|
|
|
|
|
|
|
|
|
|
python test_crcmod.py
|
|
|
|
|
|
|
|
|
|
---------------
|
|
|
|
|
Code Generation
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
The crcmod package is capable of generating C functions that can be compiled
|
|
|
|
|
with a C or C++ compiler. In the test directory, there is an examples.py
|
|
|
|
|
script that demonstrates how to use the code generator. The result of this is
|
|
|
|
|
written out to the file ``examples.c``. The generated code was checked to make
|
|
|
|
|
sure it compiles with the GCC compiler.
|
|
|
|
|
|
|
|
|
|
-------
|
|
|
|
|
License
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
The ``crcmod`` package is released under the MIT license. See the ``LICENSE``
|
|
|
|
|
file for details.
|
|
|
|
|
|
|
|
|
|
------------
|
|
|
|
|
Contributors
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
Craig McQueen
|