Bookops-Worldcat 1.0.0
Bookops-Worldcat version 1.0 supports changes released in version 2.0 (May 2023) of the OCLC Metadata API and has expanded coverage to all endpoints of the Metadata API. This version introduces many breaking changes due to the complete refactor of the Metadata API.
New functionality in 1.0
- Send requests to all endpoints of WorldCat Metadata API
- Match bib records and retrieve bib classification
- Create, update, and validate bib records
- Create, retrieve, update, and delete local bib and holdings records
- Add automatic retries to failed requests
- Authenticate and authorize for multiple institutions within
MetadataSession
- Support for Python 3.11 and 3.12
Changelog
Added
- Support for OCLC Metadata API Version 2.0
MetadataSession
methods to support new functionality released in Metadata API 2.0bib_match
bib_get_classification
holdings_set_with_bib
andholdings_unset_with_bib
- New
MetadataSession
methods to support existing Metadata API functionality- Bib Record Management and Validation
bib_create
bib_replace
bib_validate
- Local Holdings Records
lhr_create
lhr_delete
lhr_get
lhr_replace
- Local Bibliographic Data
lbd_create
lbd_delete
lbd_get
lbd_replace
- Holdings Management
holdings_get_codes
- Bib Record Management and Validation
- Support for automatic retries of failed requests
- Support for multi-institution WSKeys
- Support for Python 3.11 and 3.12
- New dev dependencies:
- types-requests (2.31.0.20240125)
- mkdocs-material (9.5.13)
Changed
MetadataSession
methods that have been renamed and updated (replacing existing functionality in Bookops-Worldcat):get_brief_bib
is nowbrief_bibs_get
get_full_bib
is nowbib_get
holding_get_status
is nowholdings_get_current
holding_set
is nowholdings_set
holding_unset
is nowholdings_unset
search_brief_bib_other_editions
is nowbrief_bibs_get_other_editions
search_brief_bibs
is nowbrief_bibs_search
search_current_control_numbers
is nowbib_get_current_oclc_number
search_general_holdings
is nowsummary_holdings_search
search_shared_print_holdings
is nowshared_print_holdings_search
WorldcatAccessToken
scopes
arg now only accepts strings. ATypeError
is raised ifscopes
arg is passed a listtoken_expires_at
attribute is now an awaredatetime
object (change made due todatetime.utcnow()
deprecation)
- Error handling:
TypeError
andValueError
replaceWorldcatAuthorizationError
whenWorldcatAccessToken
is passed an invalid arg.MetadataSession
now raisesInvalidOclcNumber
exception when invalid OCLC identifiers are given
pytest
configuration moved frompytest.ini
topyproject.toml
- Updated and clarified type annotations for
MetadataSession
methods - Updated dependencies:
- requests: (2.31)
- Updated dev dependencies:
- black (23.3.0)
- mike (2.0.0)
- mypy (1.0.14)
- Documentation on https://bookops-cat.github.io/bookops-worldcat/ has been rewritten and reorganized
Fixed
AttributeError
changed toTypeError
if arg passed toQuery.prepared_request
is not aPreparedRequest
- All args for methods within
MetadataSession
have been changed to camel case to be consisted with Metadata API documentation
Removed
principalID
andprincipalIDNS
as args forWorldcatAccessToken
- Automatic handling of large sets of oclcNumbers
_split_into_legal_volume
removed fromMetadataSession
; aValueError
is now raised if a method is passed too many oclcNumbers
Deprecated
- Support for Python 3.7
- 409 error handling for holdings set/unset requests
WorldcatSessionError
- Replaced with
TypeError
orValueError
inWorldcatSession
- Replaced with