Packager

ocdskit.packager.adapt_json(data)[source]
ocdskit.packager.convert_json(string)[source]
class ocdskit.packager.Packager(force_version=None)[source]

The Packager context manager helps to build a single record package, or a stream of compiled releases or merged releases. Release packages and/or individual releases can be added to the packager. All releases should use the same version of OCDS.

Parameters:

force_version (str | None)

add(data, ignore_version=False)[source]

Adds release packages and/or individual releases to be merged.

Parameters:
  • data – an iterable of release packages and individual releases

  • ignore_version (bool) – do not raise an error if the versions are inconsistent across items to merge

Raises:

InconsistentVersionError – if the versions are inconsistent across items to merge

output_package(merger, return_versioned_release=False, use_linked_releases=False, streaming=False, convert_exceptions_to_warnings=False)[source]

Yields a record package.

Parameters:
  • merger (Merger) – a merger

  • return_versioned_release (bool) – whether to include a versioned release in each record

  • use_linked_releases (bool) – whether to use linked releases instead of full releases, if possible

  • streaming (bool) – whether to set the package’s records to a generator instead of a list

  • convert_exceptions_to_warnings (bool) – whether to convert inconsistent type errors from OCDS Merge to warnings

output_records(merger, return_versioned_release=False, use_linked_releases=False, convert_exceptions_to_warnings=False)[source]

Yields records, ordered by OCID.

Parameters:
  • merger (Merger) – a merger

  • return_versioned_release (bool) – whether to include a versioned release in the record

  • use_linked_releases (bool) – whether to use linked releases instead of full releases, if possible

  • convert_exceptions_to_warnings (bool) – whether to convert inconsistent type errors from OCDS Merge to warnings

output_releases(merger, return_versioned_release=False, convert_exceptions_to_warnings=False)[source]

Yields compiled releases or versioned releases, ordered by OCID.

Parameters:
  • merger (Merger) – a merger

  • return_versioned_release (bool) – whether to yield versioned releases instead of compiled releases

  • convert_exceptions_to_warnings (bool) – whether to convert inconsistent type errors from OCDS Merge to warnings

class ocdskit.packager.AbstractBackend[source]
add_release(release, package_uri)[source]

Adds a release to the backend. (The release might be added to an internal buffer.)

Raises:

MissingOcidKeyError – if the release is missing an ocid field

abstract get_releases_by_ocid()[source]

Yields an OCIDs and an iterable of tuples of (ocid, package_uri, release).

OCIDs are yielded in alphabetical order. The iterable is in any order.

flush()[source]

Flushes the internal buffer of releases. This may be a no-op on some backends.

close()[source]

Tidies up any resources used by the backend. This may be a no-op on some backends.

class ocdskit.packager.PythonBackend[source]
get_releases_by_ocid()[source]

Yields an OCIDs and an iterable of tuples of (ocid, package_uri, release).

OCIDs are yielded in alphabetical order. The iterable is in any order.

class ocdskit.packager.SQLiteBackend[source]
flush()[source]

Flushes the internal buffer of releases. This may be a no-op on some backends.

get_releases_by_ocid()[source]

Yields an OCIDs and an iterable of tuples of (ocid, package_uri, release).

OCIDs are yielded in alphabetical order. The iterable is in any order.

close()[source]

Tidies up any resources used by the backend. This may be a no-op on some backends.