def extract_availability(self, circulation_data, element, ns): identifier = self.text_of_subtag(element, 'axis:titleId', ns) primary_identifier = IdentifierData(Identifier.THETA_ID, identifier) if not circulation_data: circulation_data = CirculationData( data_source=DataSource.THETA, primary_identifier=primary_identifier, ) availability = self._xpath1(element, 'axis:availability', ns) total_copies = self.int_of_subtag(availability, 'axis:totalCopies', ns) available_copies = self.int_of_subtag(availability, 'axis:availableCopies', ns) size_of_hold_queue = self.int_of_subtag(availability, 'axis:holdsQueueSize', ns) availability_updated = self.text_of_optional_subtag( availability, 'axis:updateDate', ns) if availability_updated: try: attempt = datetime.datetime.strptime( availability_updated, self.FULL_DATE_FORMAT_IMPLICIT_UTC) availability_updated += ' +00:00' except ValueError: pass availability_updated = datetime.datetime.strptime( availability_updated, self.FULL_DATE_FORMAT) circulation_data.licenses_owned = total_copies circulation_data.licenses_available = available_copies circulation_data.licenses_reserved = 0 circulation_data.patrons_in_hold_queue = size_of_hold_queue return circulation_data
def extract_availability(self, circulation_data, element, ns): primary_identifier = IdentifierData(Identifier.ENKI_ID, element["id"]) if not circulation_data: circulation_data = CirculationData( data_source=DataSource.ENKI, primary_identifier=primary_identifier, ) # For now, assume there is a license available for each item. circulation_data.licenses_owned = 1 circulation_data.licenses_available = 1 circulation_data.licenses_reserved = 0 circulation_data.patrons_in_hold_queue = 0 return circulation_data