CHANGES
=======

0.9.0
-----

* Make ketos great(er than python2
* Adapt extractor to new template
* New template using CSS image maps
* Change transcription interface code
* More descriptive (verbose) output during training
* Recalculate alphabet after repartitioning
* Add ``train`` subcommand to ketos
* Add rudimentary error report computation methods
* Add trainSequence/trainString to ClstmSeqRecognizer
* Add KrakenEncodeException/KrakenDecodeException
* Add correct check mark to kraken output
* Add GroundTruthContainer for training data
* s/x_conf/x_confs
* Fix import broken by s/html/serialization
* Various documentation updates
* Use json instead of pickle for serialization data
* Open pickle in binary mode
* Make README reflect some minor syntax changes
* Make hOCR output XML compliant
* Minimal tests for output serialization
* Skip initial whitespace in records for ALTO serialization
* Correct output of translate_back_locations to output highest value
* Add character/word confidences to ALTO output
* typo: repositories -> models
* Add preliminary support for more serialization formats
* Use is_bitonal in page segmentation sanity check
* Binarize images in transcription()
* Robustness change in is_bitonal
* Add is_bitonal function to binarization module
* README: Capitalize the first letter in a sentence
* Fix exception in repository index retrieval
* Add mirroring to the prediction output
* Update README
* Switch 3.3 for 3.5 in Travis testing
* Use new packages available in conda
* Raise protobuf requirement to final release
* Use proper integral shape in binarization
* Add option to skip codepoint reordering for transcription extractor
* Add lxml to requirements file
* Add alphabet view to repository metadata display
* Remove unused template
* Add extractor for GT interface
* Escape data when downloading ground truth
* Correctly extract last class from output array
* Fix CI

0.8.0
-----

* Update documentation for new "default" case
* Jinja templating for hOCR output
* Remove smooth scrolling and make saving work
* Add legacy degradation to linegen module
* Catch UserWarning in binarization module
* Typo in transcription docstring
* Don't unload clstm model after recognition
* Make rpred BiDi- and RTL-compatible
* Add new back translation routine
* Add python-bidi to requirements
* Add helper function for proper RTL codepoint ordering
* Add transcription interface to CLI
* Remove subcommand-less invocation

0.7.7
-----

* Fix example in the documentation
* Correctly create app_dir for retrieval
* advanced_linegen stuff from the stash
* Add strip and max_length option to linegen
* Add renormalization switch to ketos linegen
* Reimplement line renderers using ctypes
* Add vext.gi for linegen
* Documentation for ketos linegen
* Deal with affine transformation changing image dims
* Crop image using pillow as get_pixel_extents is buggy
* fontconfig template for custom fonts
* Add preliminary line degradation code
* Add ketos command for training related tasks
* Add KrakenCairoSurfaceException
* Add help texts to subcommands
* Add degradation function to linegen module
* Add per-file license headers
* Add distortion/degradation from ocropy-linegen
* First draft of pango based artifical line generation utility
* Header for linegen work

0.7.6
-----

* requests needs 'params' argument when passing parameters in url
* Check input lines for emptyness

0.7.5
-----

* Pin protobuf version
* More transcription interfac work
* Finally fix bounding boxes
* Rough transcription interface

0.7.4
-----

* Increased robustness for recognition
* Ignore the LSTM maxlen parameter

0.7.3
-----

* Correctly select confidences
* Calculate bounding boxes correctly once and for all
* Don't include class 0 cuts for bounding boxes
* Fix output location properly this time
* Fix automatic conversion of models
* Fix calculation of bounding boxes
* Fix output of segmenter
* Use app dir storage instead of "POSIX"
* Really check that image is not empty
* Ensure model directory exists before writing to it

0.7.2
-----

* Remove in-place modification causing an exception

0.7.1
-----

* Correctly decode incoming data on python 3
* Add correct click version to requirements.txt

0.7
---

* Change default model
* Make CI work again
* Update documentation for new protobuf models
* Fix tests and python 3 compatibility
* Remove h5py from requirements
* Delete erroneous protoc output
* Get rid of HDF5 models and introduce new protobuf serialization
* Add documentation to public repository
* Rename subcommand function because of collisions
* Add subcommands dealing with the model repository
* ocropy got rid of a lot of spagetti code, too

0.6.3
-----

* Make verbose output switch do something again
* Revert "Add 3.5 to CI"
* Add 3.5 to CI

0.6.2
-----

* Remove support for bz2ipped models
* Update docs

0.6.1
-----

* Rip out the parallelization code
* Buffer reads off gzipped/bzipped pyrnn model
* Add support for CLSTM models

0.6
---

* Document new behavior
* Update README with new CLI syntax
* Default to binarize/segment/ocr without subcommands
* Skip tests only supported in python 2.7 on python 3
* Raise correct exception when using python 3
* Catch all exceptions in load_pyrnn

0.5
---

* Paralellize execution of subcommands and make them chainable
* Add Flake8 section to setup.cfg
* Armin seems to be able to keep an API consistent across releases
* Making everything PEP8 compatible again
* Smallest possible test models (6.8MB o.O)
* More tests
* Replace Lovecraftian horror that was the old download progress bar

0.4.7
-----

* Actually skip line if normalization fails
* Yield empty records when line can't be normalized

0.4.6
-----

* Raise exception when loading models failed

0.4.5
-----

* Fix off-by-one error in ocr_record class
* Fix exception in download command

0.4.4
-----

* Unpin dependencies

0.4.3
-----

* Link to new website
* Create model directory if it doesn't already exist
* Fix minor unit64->uint64 typo
* Reduce requirements a little

0.4.2
-----

* Temporarily install Cython on Travis
* Drop six requirement

0.4.1
-----

* Add we support python 3.3. too
* Update travis file

0.4.0
-----

* Add trove classifier
* Explanatory note on python 3
* Fix version number with python 3
* Yay we're universal now
* Make unpickling on python2 possible again
* And fix python 2 bugs in click
* Futurize stage 2
* Stage 1 futurizing

0.3.4
-----

* s/.next/next(
* Remove all methods related to training as we'll switch to CLSTM soonish
* Lonely test for rpred
* Fix unbound error when no model could be found
* Add image needed for segmentation test harness
* Correct inheritance of test harness
* Tests for page segmentation/error handling
* Binarization tests
* Update .gitignore
* Error handling/tests on model loading
* Tests never worked
* Some notes on advanced use
* Revert "Tell pbr to skip stuff"
* Tell pbr to skip stuff
* gitignore
* Download HDF5 model with download command
* default model is even larger
* Docs

0.3.3
-----

* Add h5py to requirements file

0.3.2
-----

* Fix links in readme
* command line usage of HDF5 models
* Fix line normalization parameter
* Convert README to rst
* New load_any function
* First work on an unified interface to trained models
* new tool for converting pyrnns to clstm format
* some utilities
* py3k: Add __future__ imports on remaining files
* py3k: Enable true division
* py3k: Wrap range, map and zip in list when necessary
* Use print function instead of statement
* Add Travis badge to readme
* Enable testing on Travis using Miniconda

0.3.1
-----

* Our wheel is not universal

0.3
---

* Remove the abomination that is native.py/nutils.py

0.2.5
-----

* Update requirements file

0.2.4
-----

* Hotfix for stupidity

0.2.3
-----

* Refactor some more code
* Preinstall of numpy is no longer necessary

0.2.2
-----

* Update requirements file

0.2.1
-----

* Add some error detection and handling to load_rnn
* Rename invalid model exception
* Create test files
* Refactor output of rpred, add separate dewarp function

0.2.0
-----

* Complete but relatively untested hocr output
* Some preliminary hOCR output
* Calculate character bounding boxes

0.1.0
-----

* Build wheel
* Add license
* Change behavior of cli
* Update requirements.txt
* Note that python package building is a serious case of wtf
* Some more initial work
* Initial commit
