- Add
IntelHex.find()
method to find a given byte pattern. (Scott Armitage) - API changes:
IntelHex.segments()
method supports new optional parametermin_gap
to allow consolidation of segments with small but existing gaps into a single segment. Default value is 1. (Ryan Downing) - API changes:
IntelHex.tofile()
now supports the optionalbyte_count
parameter fromIntelHex.write_hex_file()
. Only used ifformat = hex
. (Reis Baltaoglu) - Fix Python 3.9 compatibility issue with 'array' module (Piotr Korowacki)
- Fix installation for Python version taking setup rather from setuptools than distutils (Theo Sbrissa)
- Fixes for PyPI.
- API changes:
IntelHex.write_hex_file
method: added support for new parameter:eolstyle = native | CRLF
. (Alexander Belchenko) - API changes:
IntelHex.write_hex_file()
method gets new optional parameterbyte_count
to specify how many bytes should be written to each data record in output file. Default value is 16. (patch from GitHub user erki1993) - Unit tests: Fixed xrange overflow test for Python 2.7 on 64-bit platforms.
Use
sys.maxint
to ensure we trigger an exception. (Masayuki Takeda) - Script
hexinfo.py
: Python 3 compatibility for processing start address dict keys. (patch from GitHub user mentaal) - Added
get_memory_size()
method: approx memory footprint of IntelHex object plus data. (Alexander Belchenko) - Better compatibility with Python 3. (Alexander Belchenko)
- API changes: added
IntelHex.segments()
method that returns a list of ordered tuple objects, representing contiguous occupied data addresses. (Andrew Fernandes) - New command-line script
hexinfo.py
to print summary about hex files contents (file name, start address, address ranges covered by the data) in YAML format. (Andrew Fernandes) - Better Python 3 compatibility when
hex2bin.py
andbin2hex.py
scripts are trying to read/write binary data from stdin or to stdout. (GitHub issue #4) - The main activity of the IntelHex project slowly drifting towards GitHub - the main social network for OSS developers. I'd really like to get some help from additional maintainer though.
- API changes:
IntelHex.dump()
method gets new optional parameters:width
,withpadding
to control generation of output text. (patch from GitHub user durexyl) - Script
hex2dump.py
gets new option--width
to support corresponding parameter inIntelHex.dump()
method.
- The same codebase can be run on both Python 2 (2.4-2.7) and Python 3 (3.2+). No need to use 2to3.
compat.py
: provide more helper functions and aliases to reduce changes required to convert python 2 compatible sources to python 3. The code becomes quite ugly, but such compatibility has its price.- Python 3 compatibility: tobinstr should return bytes not unicode string (Bug #1212698).
- Python 2: better support for long int addresses (over 2GB) (Bug #1408934)
- API changes: Functions tobinarray/tobinstr/tobinfile:
pad parameter is deprecated and will be removed in
future releases. Use IntelHex.padding attribute instead,
and don't pass pad as None explicitly please.
If you need to use size parameter, then use syntax like that:
ih.tobinarray(start=xxx, size=yyy)
- API changes: Functions tobinarray/tobinstr/tobinfile:
default value of pad is None now (was
0xFF
) to allow using value ofIntelHex.padding
if no explicit pad specified. - Fixed bug: wrong
getopt
error handling in some scripts. (Thanks to Andy Mozhevilov for bug report) - PEP-8 style improvements. (Thanks to Stefan Schmitt)
IntelHex16bit.tobinarray
method returns array of unsigned short (words) values. (Feature request from Stefan Schmitt)- Improved Python 3 compatibility (don't use old file() function). (Thanks to Luis Panadero Guardeño for bug report)
- New feature: compare 2 hex files using hex dump as string representation. Feature available as worker function diff_dumps() and as command-line utility hexdiff.py (#627924).
- Changes in the codebase suggested by 2to3 tool to provide compatibility with Python3. Now sources can be successfully converted to Python3 with 2to3 utility. See Python 3 notes in README.txt and documentation. (Thanks to Bernhard Leiner for his help)
- Fixed bug #988148:
IntelHex16bit
should copy all public attributes from source IntelHex 8-bit object. (Thanks to Morgan McClure)
hex2dump
: show 0x7F character as dot for better compatibility with GNU less utility.- tobinarray, tobinfile, tobinstr: added size parameter. (Bug #408748)
- fixed error in
hexmerge.py
script. (#676023)
- Fixed bug 372620: tobinarray on empty file should return pad bytes when address range explicitly specified.
- Improved docstrings: explicitly say that
end
param of to-* methods is always inclusive. (see bug #372625 for details). - Improved documentation on
ih.dump(tofile)
.
- Fixed bug in writing hex files with small chains of bytes
- Improved Python 2.6 compatibility
- Improved API, better performance
- New User Manual (Zachary Clifford)
New API release.
- New API
- Performance improvements: read hex file now ~45% faster
Bug fixes and performance improvements.
IntelHex
is able to read/write start address records (HEX record type03
and05
). (fix bug #109872)- Backport (from 0.9 branch) of performance improvements for reading hex files
BugFix Release.
Performance improvements for writing big hex files when starting address is far from 0. Patch from Heiko Henkelmann.
License added.
The code is actually licensed under BSD, but there was no LICENSE file in sources archive. Added license file and explicit declaration in the source code.
BugFix Release.
Fix writing hex files with extended linear records (when address overlaps 64K boundary). Patch from Henrik Maier.
Major improvements release.
- Introduced new class
IntelHex16bit
for manipulate data as 16-bit values - You can manipulate data using dictionary-like interface
(i.e. syntax like:
ih[addr] = value
) - Added new method
writefile(file)
for writing data to hex file - Using unittest for testing functionality
Convertor engine hex2bin
extracted to stand-alone function
for using by external clients of intelhex.
First public release.