rail_pz_service.client

Database table definitions and utility functions

class rail_pz_service.client.ClientConfiguration(_case_sensitive=None, _nested_model_default_partial_update=None, _env_prefix=None, _env_file=PosixPath('.'), _env_file_encoding=None, _env_ignore_empty=None, _env_nested_delimiter=None, _env_parse_none_str=None, _env_parse_enums=None, _cli_prog_name=None, _cli_parse_args=None, _cli_settings_source=None, _cli_parse_none_str=None, _cli_hide_none_type=None, _cli_avoid_json=None, _cli_enforce_required=None, _cli_use_class_docs_for_groups=None, _cli_exit_on_error=None, _cli_prefix=None, _cli_flag_prefix_char=None, _cli_implicit_flags=None, _cli_ignore_unknown_args=None, _cli_kebab_case=None, _secrets_dir=None, *, PZ_RAIL_SERVICE='http://localhost:8080/pz-rail-service/v1', PZ_RAIL_TOKEN=None, PZ_RAIL_COOKIES=None, PZ_RAIL_TIMEOUT=None)[source]

Bases: BaseSettings

Configuration for cm-client.

Parameters:
  • _case_sensitive (bool | None)

  • _nested_model_default_partial_update (bool | None)

  • _env_prefix (str | None)

  • _env_file (DotenvType | None)

  • _env_file_encoding (str | None)

  • _env_ignore_empty (bool | None)

  • _env_nested_delimiter (str | None)

  • _env_parse_none_str (str | None)

  • _env_parse_enums (bool | None)

  • _cli_prog_name (str | None)

  • _cli_parse_args (bool | list[str] | tuple[str, ...] | None)

  • _cli_settings_source (CliSettingsSource[Any] | None)

  • _cli_parse_none_str (str | None)

  • _cli_hide_none_type (bool | None)

  • _cli_avoid_json (bool | None)

  • _cli_enforce_required (bool | None)

  • _cli_use_class_docs_for_groups (bool | None)

  • _cli_exit_on_error (bool | None)

  • _cli_prefix (str | None)

  • _cli_flag_prefix_char (str | None)

  • _cli_implicit_flags (bool | None)

  • _cli_ignore_unknown_args (bool | None)

  • _cli_kebab_case (bool | None)

  • _secrets_dir (PathType | None)

  • PZ_RAIL_SERVICE (str)

  • PZ_RAIL_TOKEN (str | None)

  • PZ_RAIL_COOKIES (list[ClientCookie] | None)

  • PZ_RAIL_TIMEOUT (float | None)

auth_token: str | None
cookies: list[ClientCookie] | None
model_config: ClassVar[SettingsConfigDict] = {'arbitrary_types_allowed': True, 'case_sensitive': False, 'cli_avoid_json': False, 'cli_enforce_required': False, 'cli_exit_on_error': True, 'cli_flag_prefix_char': '-', 'cli_hide_none_type': False, 'cli_ignore_unknown_args': False, 'cli_implicit_flags': False, 'cli_kebab_case': False, 'cli_parse_args': None, 'cli_parse_none_str': None, 'cli_prefix': '', 'cli_prog_name': None, 'cli_use_class_docs_for_groups': False, 'enable_decoding': True, 'env_file': '~/.pz-rail-service', 'env_file_encoding': 'utf-8', 'env_ignore_empty': False, 'env_nested_delimiter': None, 'env_parse_enums': None, 'env_parse_none_str': None, 'env_prefix': '', 'extra': 'forbid', 'json_file': None, 'json_file_encoding': None, 'nested_model_default_partial_update': False, 'protected_namespaces': ('model_validate', 'model_dump', 'settings_customise_sources'), 'secrets_dir': None, 'toml_file': None, 'validate_default': True, 'yaml_file': None, 'yaml_file_encoding': None}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

service_url: str
timeout: float | None
classmethod validate_cookies(v)[source]
Parameters:

v (Any)

Return type:

list[ClientCookie] | None

classmethod validate_timeout(v)[source]
Parameters:

v (Any)

Return type:

float | None

class rail_pz_service.client.PZRailAlgorithmClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to manipulate Algorithm Tables

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

get_estimators(row_id)
Parameters:
Return type:

response_model_class

get_models(row_id)
Parameters:
Return type:

response_model_class

get_row(row_id)
Parameters:
Return type:

response_model_class

get_row_by_name(name)
Parameters:
Return type:

response_model_class | None

get_rows()
Parameters:

obj (PZRailClient)

Return type:

list[response_model_class]

class rail_pz_service.client.PZRailCatalogTagClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to manipulate CatalogTag Tables

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

get_datasets(row_id)
Parameters:
Return type:

response_model_class

get_estimators(row_id)
Parameters:
Return type:

response_model_class

get_models(row_id)
Parameters:
Return type:

response_model_class

get_row(row_id)
Parameters:
Return type:

response_model_class

get_row_by_name(name)
Parameters:
Return type:

response_model_class | None

get_rows()
Parameters:

obj (PZRailClient)

Return type:

list[response_model_class]

class rail_pz_service.client.PZRailClient[source]

Bases: object

Interface for accessing remote cm-service.

property client: Client

Return the httpx.Client

class rail_pz_service.client.PZRailDatasetClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to manipulate Dataset Tables

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

download(row_id, filename)
Parameters:
Return type:

Response

get_estimators(row_id)
Parameters:
Return type:

response_model_class

get_models(row_id)
Parameters:
Return type:

response_model_class

get_requests(row_id)
Parameters:
Return type:

response_model_class

get_row(row_id)
Parameters:
Return type:

response_model_class

get_row_by_name(name)
Parameters:
Return type:

response_model_class | None

get_rows()
Parameters:

obj (PZRailClient)

Return type:

list[response_model_class]

class rail_pz_service.client.PZRailEstimatorClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to manipulate Estimator Tables

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

get_requests(row_id)
Parameters:
Return type:

response_model_class

get_row(row_id)
Parameters:
Return type:

response_model_class

get_row_by_name(name)
Parameters:
Return type:

response_model_class | None

get_rows()
Parameters:

obj (PZRailClient)

Return type:

list[response_model_class]

class rail_pz_service.client.PZRailLoadClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to load data

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

dataset(**kwargs)[source]

Load a Dataset into the database

Parameters:

**kwargs (Any) – Input parameter. Must match LoadDatasetQuery

Returns:

Newly created and loaded dataset

Return type:

models.Dataset

Example

client = RZRailClient()
new_dataset = client.load.dataset(
    name='my_com_cam_dataset',
    path='local_version_of_data_file.hdf5',
    catalog_tag_name='com_cam',
)

or

data = dict(
    LSST_Obs_u=24.5,
    LSST_Obs_g=24.5,
    LSST_Obs_r=24.5,
    LSST_Obs_i=24.5,
    LSST_Obs_z=24.5,
    LSST_Obs_y=24.5,
    LSST_Obs_u_err=0.5,
    LSST_Obs_g_err=0.5,
    LSST_Obs_r_err=0.5,
    LSST_Obs_i_err=0.5,
    LSST_Obs_z_err=0.5,
    LSST_Obs_y_err=0.5,
)
client = RZRailClient()
new_dataset = client.load.dataset(
    name='my_com_cam_dataset',
    data=data,
    catalog_tag_name='com_cam',
)
estimator(**kwargs)[source]

Load a Estimator into the database

Parameters:

**kwargs (Any) – Input parameter. Must match LoadEstimatorQuery

Returns:

Newly created and loaded estimator

Return type:

models.Estimator

Example

client = RZRailClient()
new_estimator = client.load.estimator(
    name='my_gpz_com_cam_estimator',
    model_name='my_gpz_com_cam_model',
)
model(**kwargs)[source]

Load a Model into the database

Parameters:

**kwargs (Any) – Input parameter. Must match LoadModelQuery

Returns:

Newly created and loaded model

Return type:

models.Model

Example

client = RZRailClient()
new_model = client.load.model(
    name='my_gpz_com_cam_model',
    path='local_version_of_file.pkl',
    algo_name='GPZEstimator',
    catalog_tag_name='com_cam',
)
class rail_pz_service.client.PZRailModelClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to manipulate Model Tables

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

download(row_id, filename)
Parameters:
Return type:

Response

get_estimators(row_id)
Parameters:
Return type:

response_model_class

get_row(row_id)
Parameters:
Return type:

response_model_class

get_row_by_name(name)
Parameters:
Return type:

response_model_class | None

get_rows()
Parameters:

obj (PZRailClient)

Return type:

list[response_model_class]

class rail_pz_service.client.PZRailRequestClient(parent)[source]

Bases: object

Interface for accessing remote pz-rail-service to manipulate Request Tables

Parameters:

parent (PZRailClient)

property client: Client

Return the httpx.Client

create(**kwargs)
Parameters:
Return type:

response_model_class

delete(row_id)
Parameters:
Return type:

None

download(row_id, filename)
Parameters:
Return type:

Response

get_row(row_id)
Parameters:
Return type:

response_model_class

get_row_by_name(name)
Parameters:
Return type:

response_model_class | None

get_rows()
Parameters:

obj (PZRailClient)

Return type:

list[response_model_class]

run(row_id)[source]

Run a request

Parameters:
  • request_id – Id of the request in the Request table

  • row_id (int)

Returns:

Request in question

Return type:

Request

Example

client = RZRailClient()

new_request = client.request.create(
    dataset_name='my_com_cam_dataset',
    estimator_name='my_gpz_com_cam_estimaor',
)
updated_request = client.request.run(
    new_request.id,
)

Client CLI