nessie_client package

Subpackages

Submodules

nessie_client.cli module

Console script for nessie_client.

nessie_client.error module

Nessie Exceptions.

exception pynessie.error.NessieCliError(title, msg=None)[source]

Bases: Exception

Base Nessie CLI related errors.

json()[source]

Dump this error as a json object.

Return type

str

exception pynessie.error.NessieConflictException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieException

Generic Nessie exception for conflict error 409.

exception pynessie.error.NessieContentNotFoundException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieNotFoundException

This exception is thrown when the requested content object is not present in the store.

exception pynessie.error.NessieException(parsed_response, status, url, reason, msg=None)[source]

Bases: Exception

Base Nessie exception.

json()[source]

Dump this exception as a json object.

Return type

str

exception pynessie.error.NessieNotFoundException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieException

Generic Nessie exception for not found error 404.

exception pynessie.error.NessiePermissionException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieException

Nessie exception for permission error 403.

exception pynessie.error.NessiePreconidtionFailedException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieException

Nessie exception for pre-condition failed error 412.

exception pynessie.error.NessieReferenceAlreadyExistsException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieConflictException

Reference not found.

This exception is thrown when a reference could not be created because another reference with the same name is already present in the store.

exception pynessie.error.NessieReferenceConflictException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieConflictException

Expected hash did not match actual hash on a reference.

This exception is thrown when the hash associated with a named reference does not match with the hash provided by the caller.

exception pynessie.error.NessieReferenceNotFoundException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieNotFoundException

This exception is thrown when a requested reference is not present in the store.

exception pynessie.error.NessieServerException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieException

Nessie exception for server errors 5xx.

exception pynessie.error.NessieUnauthorizedException(parsed_response, status, url, reason, msg=None)[source]

Bases: pynessie.error.NessieException

Nessie exception for login error 401.

nessie_client.model module

Nessie Data objects.

class pynessie.model.Branch(name, hash_=None, metadata=None)[source]

Bases: pynessie.model.Reference

Dataclass for Nessie Branch.

hash_: Optional[str]
metadata: Optional[pynessie.model.ReferenceMetadata]
name: str
class pynessie.model.CommitMeta(hash_=None, commitTime=None, authorTime=None, committer=None, author=None, signedOffBy=None, message=None, properties=None)[source]

Bases: object

Dataclass for commit metadata.

author: str
authorTime: datetime.datetime
commitTime: datetime.datetime
committer: str
hash_: str
message: str
properties: dict
signedOffBy: str
class pynessie.model.Content(id)[source]

Bases: object

Dataclass for Nessie Content.

id: str
pretty_print()[source]

Print out for cli.

Return type

str

static requires_expected_state()[source]

Checks whether this Content object requires the “expected” state to be provided for Put operations.

Return type

bool

class pynessie.model.ContentKey(elements)[source]

Bases: object

ContentKey.

elements: List[str]
static from_path_string(key)[source]

Convert from path encoded string to normal string.

Return type

ContentKey

to_path_string()[source]

Convert this key to a url encoded path string.

Return type

str

to_string()[source]

Convert this key to friendly CLI string.

Return type

str

class pynessie.model.ContentSchema(*, only=None, exclude=(), many=False, context=None, load_only=(), dump_only=(), partial=False, unknown=None)[source]

Bases: marshmallow_oneofschema.one_of_schema.OneOfSchema

Schema for Nessie Content.

get_obj_type(obj)[source]

Returns the object type based on its class.

Return type

str

opts: SchemaOpts = <marshmallow.schema.SchemaOpts object>
type_schemas = {'DELTA_LAKE_TABLE': <class 'marshmallow.schema.DeltaLakeTable'>, 'ICEBERG_TABLE': <class 'marshmallow.schema.IcebergTable'>, 'ICEBERG_VIEW': <class 'marshmallow.schema.IcebergView'>}
class pynessie.model.Delete(key)[source]

Bases: pynessie.model.Operation

Delete single key.

key: pynessie.model.ContentKey
pretty_print()[source]

Print out for cli.

Return type

str

class pynessie.model.DeltaLakeTable(id, last_checkpoint, checkpoint_location_history, metadata_location_history)[source]

Bases: pynessie.model.Content

Dataclass for Nessie Content.

checkpoint_location_history: List[str]
last_checkpoint: str
metadata_location_history: List[str]
pretty_print()[source]

Print out for cli.

Return type

str

class pynessie.model.Detached(name, hash_=None, metadata=None)[source]

Bases: pynessie.model.Reference

Dataclass for Nessie detached commit id.

hash_: Optional[str]
metadata: Optional[pynessie.model.ReferenceMetadata]
name: str
class pynessie.model.DiffEntry(content_key, from_content, to_content)[source]

Bases: object

Dataclass for a Diff.

content_key: pynessie.model.ContentKey
from_content: pynessie.model.Content
pretty_print()[source]

Print out for cli.

Return type

str

to_content: pynessie.model.Content
class pynessie.model.DiffResponse(diffs)[source]

Bases: object

Dataclass for a DiffResponse.

diffs: List[pynessie.model.DiffEntry]
class pynessie.model.Entries(entries, has_more=False, token=None)[source]

Bases: object

Dataclass for Content Entries.

entries: List[pynessie.model.Entry]
has_more: bool
token: str
class pynessie.model.Entry(kind, name)[source]

Bases: object

Dataclass for Nessie Entry.

kind: str
name: pynessie.model.EntryName
class pynessie.model.EntryName(elements)[source]

Bases: object

Dataclass for Nessie Entry Name.

elements: List[str]
class pynessie.model.IcebergTable(id, metadata_location, snapshot_id, schema_id, spec_id, sort_order_id)[source]

Bases: pynessie.model.Content

Dataclass for Nessie Content.

metadata_location: str
pretty_print()[source]

Print out for cli.

Return type

str

static requires_expected_state()[source]

Returns True - expected state should be provided for Put operations on Iceberg tables.

Return type

bool

schema_id: int
snapshot_id: int
sort_order_id: int
spec_id: int
class pynessie.model.IcebergView(id, metadata_location, version_id, schema_id, dialect, sql_text)[source]

Bases: pynessie.model.Content

Dataclass for Nessie Iceberg View.

dialect: str
metadata_location: str
pretty_print()[source]

Print out for cli.

Return type

str

schema_id: int
sql_text: str
version_id: int
class pynessie.model.LogEntry(commit_meta, parent_commit_hash=None, operations=None)[source]

Bases: object

Dataclass for commit log entries.

commit_meta: pynessie.model.CommitMeta
operations: List[pynessie.model.Operation]
parent_commit_hash: str
class pynessie.model.LogResponse(log_entries, has_more=False, token=None)[source]

Bases: object

Dataclass for Log Response.

has_more: bool
log_entries: List[pynessie.model.LogEntry]
token: str
class pynessie.model.Merge(from_ref_name, from_hash=None)[source]

Bases: object

Dataclass for Merge operation.

from_hash: str
from_ref_name: str
class pynessie.model.MultiContents(commit_meta, operations)[source]

Bases: object

Contents container for commit.

commit_meta: pynessie.model.CommitMeta
operations: List[pynessie.model.Operation]
class pynessie.model.Operation(key)[source]

Bases: object

Single Commit Operation.

key: pynessie.model.ContentKey
pretty_print()[source]

Print out for cli.

Return type

str

class pynessie.model.OperationsSchema(*, only=None, exclude=(), many=False, context=None, load_only=(), dump_only=(), partial=False, unknown=None)[source]

Bases: marshmallow_oneofschema.one_of_schema.OneOfSchema

Schema for Nessie Operations.

get_obj_type(obj)[source]

Returns the object type based on its class.

Return type

str

opts: SchemaOpts = <marshmallow.schema.SchemaOpts object>
type_schemas = {'DELETE': <class 'marshmallow.schema.Delete'>, 'PUT': <class 'marshmallow.schema.Put'>, 'UNCHANGED': <class 'marshmallow.schema.Unchanged'>}
class pynessie.model.Put(key, content, expectedContent=None)[source]

Bases: pynessie.model.Operation

Single Commit Operation.

content: pynessie.model.Content
expectedContent: Optional[pynessie.model.Content]
pretty_print()[source]

Print out for cli.

Return type

str

class pynessie.model.Reference(name, hash_=None, metadata=None)[source]

Bases: object

Dataclass for Nessie Reference.

hash_: Optional[str]
metadata: Optional[pynessie.model.ReferenceMetadata]
name: str
class pynessie.model.ReferenceMetadata(commit_meta_of_head, num_commits_ahead=None, num_commits_behind=None, common_ancestor_hash=None, num_total_commits=None)[source]

Bases: object

Dataclass for Nessie ReferenceMetadata.

commit_meta_of_head: pynessie.model.CommitMeta
common_ancestor_hash: str
num_commits_ahead: int
num_commits_behind: int
num_total_commits: str
class pynessie.model.ReferenceSchema(*, only=None, exclude=(), many=False, context=None, load_only=(), dump_only=(), partial=False, unknown=None)[source]

Bases: marshmallow_oneofschema.one_of_schema.OneOfSchema

Schema for Nessie Reference.

get_obj_type(obj)[source]

Returns the object type based on its class.

Return type

str

opts: SchemaOpts = <marshmallow.schema.SchemaOpts object>
type_schemas = {'BRANCH': <class 'marshmallow.schema.Branch'>, 'DETACHED': <class 'marshmallow.schema.Detached'>, 'TAG': <class 'marshmallow.schema.Tag'>}
class pynessie.model.ReferencesResponse(references, has_more=False, token=None)[source]

Bases: object

Dataclass for References.

has_more: bool
references: List[pynessie.model.Reference]
token: str
class pynessie.model.ReflogEntry(reflog_id, ref_name, ref_type, commit_hash, parent_reflog_id, operation_time, operation, source_hashes)[source]

Bases: object

Dataclass for reflog entries.

commit_hash: str
operation: str
operation_time: int
parent_reflog_id: str
ref_name: str
ref_type: str
reflog_id: str
source_hashes: List[str]
class pynessie.model.ReflogResponse(log_entries, has_more=False, token=None)[source]

Bases: object

Dataclass for reflog Response.

has_more: bool
log_entries: List[pynessie.model.ReflogEntry]
token: str
class pynessie.model.Tag(name, hash_=None, metadata=None)[source]

Bases: pynessie.model.Reference

Dataclass for Nessie Tag.

hash_: Optional[str]
metadata: Optional[pynessie.model.ReferenceMetadata]
name: str
class pynessie.model.Transplant(from_ref_name, hashes_to_transplant)[source]

Bases: object

Dataclass for Transplant operation.

from_ref_name: str
hashes_to_transplant: List[str]
class pynessie.model.Unchanged(key)[source]

Bases: pynessie.model.Operation

Unchanged single key.

key: pynessie.model.ContentKey
pynessie.model.is_valid_hash(ref)[source]

Checks whether ‘ref’ is a valid commit id/hash.

Return type

bool

pynessie.model.is_valid_reference_name(ref)[source]

Checks whether ‘ref’ is a valid reference name.

Return type

bool

pynessie.model.split_into_reference_and_hash(ref_with_hash)[source]

Returns a tuple of reference-name + hash, if the given string represents a ref-name + hash tuple ‘ref_name@commit_id’.

Return type

Tuple[str, Optional[str]]

nessie_client.nessie_client module

Module contents

Top-level package for Python API and CLI for Nessie.

pynessie.get_config(config_dir=None, args=None)[source]

Retrieve a confuse Configuration object.

Return type

Configuration

pynessie.init(config_dir=None, config_dict=None)[source]

Create a new Nessie client object.

Parameters
  • config_dir (Optional[str]) – optional directory to look for config in

  • config_dict (Optional[dict]) – dictionary of extra config arguments

Return type

NessieClient

Returns

either a simple or rich client

Example

>>> client = init('/my/config/dir')