scistag.filestag.azure.azure_blob_path.AzureBlobPath

class AzureBlobPath(**data)[source]

Bases: BaseModel

Defines a path to an Azure Blob Storage resource.

This path contains at least the account name, may contain the access key and path to the blob within the container.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

Methods

construct

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy

Duplicate a model, optionally choose which fields to include, exclude and change.

create_sas_url

Creates an SAS url pointing to a specific blob so it can be shared and downloaded by others.

dict

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

from_orm

rtype

Model

from_string

Create an AzureBlobPath object from a provided connection string.

get_connection_string

rtype

str

json

Generate a JSON representation of the model, include and exclude arguments as per dict().

parse_file

rtype

Model

parse_obj

rtype

Model

parse_raw

rtype

Model

schema

rtype

DictStrAny

schema_json

rtype

unicode

split_azure_url

Splits an Azure url of the format azure://CONNECTION_STRING_INCLUDING_KEY/container_name into its components.

update_forward_refs

Try to update ForwardRefs on fields based on this Model, globalns and localns.

validate

rtype

Model

Attributes

__abstractmethods__

__annotations__

__class_vars__

__custom_root_type__

__dict__

__doc__

__exclude_fields__

__fields__

__fields_set__

__hash__

__include_fields__

__module__

__post_root_validators__

__pre_root_validators__

__private_attributes__

__schema_cache__

__signature__

__slots__

__validators__

_abc_impl

default_endpoints_protocol

The protocol being used such as https

account_name

The account name

endpoint_suffix

The endpoint suffix such as core.windows.net

account_key

The account key, optional

container_name

The container name, optional

blob_name

The blob name or search mask, optional

__setattr__(name, value)

Implement setattr(self, name, value).

classmethod construct(_fields_set=None, **values)

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

Return type

Model

copy(*, include=None, exclude=None, update=None, deep=False)

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters
  • include (Union[AbstractSetIntStr, MappingIntStrAny, None]) – fields to include in new model

  • exclude (Union[AbstractSetIntStr, MappingIntStrAny, None]) – fields to exclude from new model, as with values this takes precedence over include

  • update (Optional[DictStrAny]) – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep (bool) – set to True to make a deep copy of the model

Return type

Model

Returns

new model instance

create_sas_url(blob_name, start_time_min=-15, end_time_days=365.0)[source]

Creates an SAS url pointing to a specific blob so it can be shared and downloaded by others.

Parameters
  • blob_name – The name of the blob

  • start_time_min – The start time from when on this URL is valid. By default 15 minutes in the past.

  • end_time_days (float) –

    The time in days - as floating point value thus also half days are valid - until when the link is valid.

    One year by default.

Return type

str

Returns

The https url pointing to the blob which can be shared as download link.

dict(*, include=None, exclude=None, by_alias=False, skip_defaults=None, exclude_unset=False, exclude_defaults=False, exclude_none=False)

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Return type

DictStrAny

classmethod from_string(connection_string)[source]

Create an AzureBlobPath object from a provided connection string.

Parameters

connection_string (str) –

The connection string.

This string can either be in official format, starting with DefaultEndpoints… or in the FileStag format azure://DefaultEndpoints… and can optionally contain the container name after a slash and either the blob name or search mask after an additional slash.

e.g. - DefaultEndpoints..;AccountName=..;AccountKey=…;windows.core.net - …;windows.core.net/container_name - …;windows.core.net/container_name/blob_name - …;windows.core.net/container_name/*.txt

Return type

AzureBlobPath

Returns

The AzureBlobPath object

json(*, include=None, exclude=None, by_alias=False, skip_defaults=None, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=None, models_as_dict=True, **dumps_kwargs)

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

Return type

unicode

classmethod split_azure_url(url, insert_key=True)[source]

Splits an Azure url of the format azure://CONNECTION_STRING_INCLUDING_KEY/container_name into its components.

Parameters
  • url (str) – The URL

  • insert_key (bool) – If true a referenced key using for example {{env.ENVIRONMENT_VARIABLE}} as format will automatically be inserted. True by default.

Return type

tuple[str, str, str] | None

Returns

ConnectionString, ContainerName, SearchPath. If the container name or the search path are not provided, empty strings will be returned.

classmethod update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

Return type

None

account_key: Optional[str]

The account key, optional

account_name: str

The account name

blob_name: Optional[str]

The blob name or search mask, optional

container_name: Optional[str]

The container name, optional

default_endpoints_protocol: str

The protocol being used such as https

endpoint_suffix: str

The endpoint suffix such as core.windows.net