ae: alma enumerator
Alma Enumerator is set of Python scripts to update enumeration and chronology information in Alma, an integrated library system made by Ex Libris. It parses item record description fields, extracts enumeration and chronology information and updates the item record's enumeration and chronology fields. This is particularly useful cases when a library has volume, issue and date information saved in item description fields but not in the corresponding enumeration and chronology fields.
- Python 3 (Has been tested and works with Python 3.4 and 3.5. Probably works with earlier versions of Python 3.)
- External dependencies
First make sure your settings are correct in
settings.py, including the API
key and the MMS ID of the title you wish to update. If you don't have an API
key, you'll need to get one from the Ex Libris Developer Network.
To use ae's graphical interface, run
ae_gui. This will open up a window like
the one below:
Alma Enumerator can also be used on the command line. To get enumeration and
chronology data out of item description fields, run
To update items' enumeration and chronology fields, run
ae_fetch saves the information it gets to a CSV file. It is always a good idea
ae_fetch's output to make sure the data it has extracted from the item
descriptions is correct. The CSV file can be loaded into a spreadsheet
application for easier viewing. If you do load it into a spreadsheet app, it's
a good idea to have the program treat each column as plain text rather than
ae_fetch recognizes a pattern doesn't parse correctly,
it records the error in an error file and
ae_update won't update the item
record in Alma. This way you can edit these records yourself.
Once everything checks out in the CSV, you can run
ae_update to update the
enumeration and chronology information for each item under the current title.
Then verify that your records updated correctly in Alma.
If you'd rather pass ae_fetch and ae_update command line arguments instead of
updating settings.py each time you make change
mms_id, you can.
ae_fetch [(-m | --mms-id) <mms>] [(-o | --output-file) <of>] [(-e | --error-file) <ef>] [(-a | --api-key) <api>]
So you could specify an mms_id by typing
ae_fetch -m 999999999999999999 or
ae_fetch --mms-id 999999999999999999 and
ae_fetch would use the MMS ID
provided while using settings.py for the output and error files and the API
ae_update [(-m | --mms-id) <mms>] [(-i | --input-file) <if>] [(-a | --api-key) <api>]
If you're not comfortable working on the command line, run
ae_gui or use
an IDE like Spyder or PyCharm that will allow you to open and then run
Certain patterns pass through the parser without raising an error, but do not process correctly. Some examples:
- no.51 12 Dec 2015 (12 is treated as
- v 19 07-08 (07-08 is treated like
- v 63 #1 P.1 JAN 1990 (P.1 is treated like
- v 20-21 1983-1984, c 2 (c 2 treated like
- For more known issues see notes.md