Skip to content

hornc/isbn_hyphenate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ISBN Hyphenate

isbn_hyphenate is a Python library to add hyphens in the right place to an ISBN (International Standard Book Number).

Example:

>>> import isbn_hyphenate
>>> isbn_hyphenate.hyphenate("9781590593561")
'978-1-59059-356-1'

Most libraries for handling ISBNs can not do hyphenation because it requires using a list of prefixes, available from the International ISBN Agency.

isbn_hyphenate can handle both 10 and 13 digit ISBNs, and will keep the number of digits. If the ISBN is malformed (wrong length or invalid characters) an IsbnMalformedError exception is raised. If the correct hyphen positions cannot be determined, an IsbnUnableToHyphenateError exception is raised. This can mean that the input ISBN is wrong, or it is in a range that is not yet in the known list.

To update the prefix list:

  1. Download a new RangeMessage.xml file from https://www.isbn-international.org/range_file_generation or, from the command line:

    wget -O RangeMessage.xml https://www.isbn-international.org/export_rangemessage.xml
    
  2. Convert it to Python format:

    ./isbn_hyphenate/isbn_xml2py.py RangeMessage.xml > isbn_hyphenate/isbn_lengthmaps.py
    

These alternative Python libraries can also hyphenate:

About

Python library to add hyphens to an ISBN

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 99.5%
  • Shell 0.5%