Rogii Solo.Papi.Base

BasePapiClient

attribute DEFAULT_OFFSET

Constant parameter equaled to 0

attribute DEFAULT_LIMIT

Constant parameter equaled to 100

attribute LIMIT_MAX

Constant parameter equaled to 200

attribute DATETIME_FORMAT

Constant parameter equaled to ‘%Y-%m-%dT%H:%M:%SZ’

attribute papi_url

PAPI url

attribute token_url

Token url

attribute papi_client_id

PAPI client id

attribute papi_client_secret

PAPI client secret

attribute solo_username

Solo username

attribute solo_password

Solo password

attribute headers

Headers

attribute proxies

Proxies

property session

Get the session object for the PAPI client.

PapiClient

method fetch_projects(offset, limit, query, headers)

Fetch a list of projects from the PAPI service.

method fetch_virtual_projects(offset, limit, query, headers)

Fetch a list of virtual projects from the PAPI service.

method fetch_project_raw_wells(project_id, offset, limit, query, headers)

Fetch a list of raw well data for a specific project.

method fetch_raw_well(well_id, headers)

Fetch raw data for a specific well.

method fetch_well_raw_trajectory(well_id, headers)

Fetch raw trajectory data for a specific well.

method fetch_well_raw_interpretations(well_id, offset, limit, query, headers)

Fetch raw interpretation data for a specific well.

method fetch_interpretation_horizons(interpretation_id, offset, limit, query, headers)

Fetch horizons for a specific interpretation.

method fetch_interpretation_horizons_data(interpretation_id, md_step, headers)

Fetch horizon data points for a specific interpretation.

method fetch_interpretation_assembled_segments(interpretation_id, headers)

Fetch assembled segments for a specific interpretation.

method fetch_interpretation_starred_horizons(interpretation_id, headers)

Fetch IDs of starred horizons for a specific interpretation.

method fetch_interpretation_earth_models(interpretation_id, offset, limit, headers)

Fetch earth models for a specific interpretation.

method fetch_earth_model_sections(earth_model_id, offset, limit, headers)

Fetch sections for a specific earth model.

method fetch_well_nested_wells(well_id, offset, limit, query, headers)

Fetches well’ well plans

method fetch_well_target_lines(well_id, offset, limit, headers)

Fetches well target lines data

method create_well_nested_well(well_id, name, operator, api, xsrf, ysrf, kb, tie_in_tvd, tie_in_ns, tie_in_ew, headers)

Create a new well plan within an existing well.

method replace_nested_well_trajectory(nested_well_id, md_uom, incl_uom, azi_uom, trajectory_stations, headers)

Replace the trajectory of a well plan.

method fetch_nested_well_raw_trajectory(nested_well_id, headers)

Fetch raw trajectory data for a specific nested well.

method fetch_well_logs(well_id, offset, limit, query, headers)

Fetch logs for a specific well.

method fetch_typewell_logs(typewell_id, offset, limit, headers)

Fetch logs for a specific type well.

method fetch_log_points(log_id, headers)

Fetch data points for a specific log.

method fetch_well_mudlogs(well_id, offset, limit, query, headers)

Fetch mudlogs for a specific well.

method fetch_typewell_mudlogs(typewell_id, offset, limit, query, headers)

Fetch mudlogs for a specific type well.

method fetch_mudlog_logs(mudlog_id, headers)

Fetch log data for a specific mudlog.

method fetch_project_typewells(project_id, offset, limit, query, headers)

Fetch type wells for a specific project.

method fetch_typewell_raw_trajectory(typewell_id, headers)

Fetch raw trajectory data for a specific type well.

method create_well_topset(well_id, name, headers)

Create a new topset in a well.

method create_typewell_topset(typewell_id, name, headers)

Create a new topset in a type well.

method create_nested_well_topset(nested_well_id, name, headers)

Create a new topset in a nested well.

method fetch_well_topsets(well_id, offset, limit, headers)

Fetch topsets for a specific well.

method fetch_typewell_topsets(typewell_id, offset, limit, headers)

Fetch topsets for a specific type well.

method fetch_nested_well_topsets(nested_well_id, offset, limit, headers)

Fetch topsets for a specific nested well.

method create_well_target_line(well_id, name, origin_x, origin_y, origin_z, target_x, target_y, target_z, headers)

Create a new target line in a well.

method create_topset_top(topset_id, name, md, headers)

Create a new top in a topset.

method fetch_topset_tops(topset_id, offset, limit, headers)

Fetch tops for a specific topset.

method fetch_topset_starred_tops(topset_id, headers)

Fetch IDs of starred tops for a specific topset.

method create_well_log(well_id, name, headers)

Create a new log in a well.

method replace_log(log_id, log_points, index_unit, value_unit, headers)

Replace data points in a log.

method update_log_meta(log_id, name, unit, headers)

Update metadata for a log.

method create_typewell_log(typewell_id, name, headers)

Create a new log in a type well.

method fetch_traces(headers)

Fetch all available traces.

method fetch_well_mapped_traces(well_id, trace_type, headers)

Fetch mapped traces of a specific type for a well.

method fetch_well_mapped_time_traces(well_id, headers)

Fetch mapped time traces for a well.

method fetch_well_mapped_calc_traces(well_id, headers)

Fetch mapped calculated traces for a well.

method fetch_well_time_trace(well_id, trace_id, time_from, time_to, trace_hash, limit, headers)

Fetch mapped calculated traces for a well.

method fetch_well_calc_trace(well_id, trace_id, time_from, time_to, trace_hash, headers)

Fetch mapped calculated traces for a well.

method update_well_meta(well_id, name, operator, api, xsrf, ysrf, kb, azimuth, convergence, tie_in_tvd, tie_in_ns, tie_in_ew, headers)

Update the metadata of a well.

method update_typewell_meta(well_id, name, operator, api, xsrf, ysrf, kb, convergence, tie_in_tvd, tie_in_ns, tie_in_ew, headers)

Update the metadata of a type well.

method update_nested_well_meta(well_id, name, operator, api, xsrf, ysrf, kb, tie_in_tvd, tie_in_ns, tie_in_ew, headers)

Update the metadata of a well plan.

method create_well(project_id, name, operator, api, convergence, azimuth, kb, tie_in_tvd, tie_in_ns, tie_in_ew, xsrf_real, ysrf_real, headers)

Create a well in the project

method create_typewell(project_id, name, operator, api, convergence, kb, tie_in_tvd, tie_in_ns, tie_in_ew, xsrf_real, ysrf_real, headers)

Create a type well in the project

method fetch_well_linked_typewells(well_id, offset, limit, headers)

Fetches well linked typewells

method fetch_well_comments(well_id, offset, limit, headers)

Fetches well comments

method fetch_well_attributes(well_id, headers)

Fetches well attributes

method replace_well_trajectory(well_id, md_uom, incl_uom, azi_uom, trajectory_stations, headers)

Replace well trajectory

method update_top_meta(top_id, name, md, headers)

Update top metadata

Module Contents

class BasePapiClient(papi_url: str, papi_auth_url: str, papi_client_id: str, papi_client_secret: str, solo_username: str = None, solo_password: str = None, headers: Dict | None = None, proxies: Dict | None = None)

BasePapiClient is a base class for the PapiClient.

Example:
from rogii_solo.papi.base import BasePapiClient

papi_client_id = ... # Input your client ID
papi_client_secret = ... # Input your client secret
papi_auth_url = ... # Input your papi auth url
papi_url = ... # Input your papi url
solo_username = ... # Input your solo username
solo_password = ... # Input your solo password
headers = ... # Input your headers or None
proxies = ... # Input your proxy or None

client = BasePapiClient(
    papi_client_id=papi_client_id,
    papi_client_secret=papi_client_secret,
    papi_auth_url=papi_auth_url,
    papi_url=papi_url,
    solo_username=solo_username,
    solo_password=solo_password,
    headers=headers,
    proxies=proxies
)
DEFAULT_OFFSET = 0

Constant parameter equaled to 0

DEFAULT_LIMIT = 100

Constant parameter equaled to 100

LIMIT_MAX = 200

Constant parameter equaled to 200

DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%SZ'

Constant parameter equaled to ‘%Y-%m-%dT%H:%M:%SZ’

papi_url

PAPI url

token_url

Token url

papi_client_id

PAPI client id

papi_client_secret

PAPI client secret

solo_username

Solo username

solo_password

Solo password

headers

Headers

proxies

Proxies

property session
Get the session object for the PAPI client.
Returns:

The session object.

Example:

from rogii_solo.papi.base import BasePapiClient

papi_client_id = ... # Input your client ID
papi_client_secret = ... # Input your client secret
papi_auth_url = ... # Input your papi auth url
papi_url = ... # Input your papi url
solo_username = ... # Input your solo username
solo_password = ... # Input your solo password
headers = ... # Input your headers or None
proxies = ... # Input your proxy or None

client = BasePapiClient(
    papi_client_id=papi_client_id,
    papi_client_secret=papi_client_secret,
    papi_auth_url=papi_auth_url,
    papi_url=papi_url,
    solo_username=solo_username,
    solo_password=solo_password,
    headers=headers,
    proxies=proxies
)

# Get Client's session
session = client.session
print(session)
class PapiClient(papi_url: str, papi_auth_url: str, papi_client_id: str, papi_client_secret: str, solo_username: str = None, solo_password: str = None, headers: Dict | None = None, proxies: Dict | None = None)

Bases: BasePapiClient

PapiClient for interacting with the Solo Platform API (PAPI). Provides low-level access to PAPI endpoints for data fetching and editing.

Example:
from rogii_solo.papi.base import PapiClient

papi_client_id = ... # Input your client ID
papi_client_secret = ... # Input your client secret
papi_auth_url = ... # Input your papi auth url
papi_url = ... # Input your papi url
solo_username = ... # Input your solo username
solo_password = ... # Input your solo password
headers = ... # Input your headers or None
proxies = ... # Input your proxy or None

client = PapiClient(
    papi_client_id=papi_client_id,
    papi_client_secret=papi_client_secret,
    papi_auth_url=papi_auth_url,
    papi_url=papi_url,
    solo_username=solo_username,
    solo_password=solo_password,
    headers=headers,
    proxies=proxies
)

# Fetch projects
projects = client.fetch_projects()
print(projects)
fetch_projects(offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str | None = None, headers: Dict | None = None)

Fetch a list of projects from the PAPI service.

Parameters:
  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing project data and pagination information.

Example:

# Fetch first 100 projects
projects = client.fetch_projects(offset=0, limit=100)

# Fetch projects with a filter query
filtered_projects = client.fetch_projects(query='Project1')
fetch_virtual_projects(offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str | None = None, headers: Dict | None = None)

Fetch a list of virtual projects from the PAPI service.

Parameters:
  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing virtual project data and pagination information.

Example:

# Fetch first 100 virtual projects
virtual_projects = client.fetch_virtual_projects(offset=0, limit=100)

# Fetch virtual projects with a filter query
filtered_projects = client.fetch_virtual_projects(query='Project1')
fetch_project_raw_wells(project_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str | None = None, headers: Dict | None = None)

Fetch a list of raw well data for a specific project.

Parameters:
  • project_id – UUID of the project.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing well data and pagination information.

Example:

# Fetch first 100 wells for a project
wells = client.fetch_project_raw_wells(
    project_id='ProjectID',
    offset=0,
    limit=100
)

# Fetch wells with a filter query
filtered_wells = client.fetch_project_raw_wells(
    project_id='ProjectUUID',
    query='Well1'
)
fetch_raw_well(well_id: str, headers: Dict | None = None)

Fetch raw data for a specific well.

Parameters:
  • well_id – UUID of the well.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing well data.

Example:

# Fetch data for a specific well
well_data = client.fetch_raw_well(well_id='WellUUID')
fetch_well_raw_trajectory(well_id: str, headers: Dict | None = None)

Fetch raw trajectory data for a specific well.

Parameters:
  • well_id – UUID of the well.

  • headers – Optional additional HTTP headers.

Returns:

List of trajectory points.

Example:

# Fetch trajectory data for a well
trajectory = client.fetch_well_raw_trajectory(well_id='WellUUID')
fetch_well_raw_interpretations(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetch raw interpretation data for a specific well.

Parameters:
  • well_id – UUID of the well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing interpretation data and pagination information.

Example:

# Fetch first 100 interpretations for a well
interpretations = client.fetch_well_raw_interpretations(
    well_id='WellUUID',
    offset=0,
    limit=100
)

# Fetch interpretations with a filter query
filtered_interpretations = client.fetch_well_raw_interpretations(
    well_id='WellUUID',
    query='Interpretation1'
)
fetch_interpretation_horizons(interpretation_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetch horizons for a specific interpretation.

Parameters:
  • interpretation_id – UUID of the interpretation.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing horizon data and pagination information.

Example:

# Fetch first 100 horizons for an interpretation
horizons = client.fetch_interpretation_horizons(
    interpretation_id="interpretation_uuid",
    offset=0,
    limit=100
)

# Fetch horizons with a filter query
filtered_horizons = client.fetch_interpretation_horizons(
    interpretation_id='InterpretationUUID',
    query='Horizon1'
)
fetch_interpretation_horizons_data(interpretation_id: str, md_step: int, headers: Dict | None = None)

Fetch horizon data points for a specific interpretation.

Parameters:
  • interpretation_id – UUID of the interpretation.

  • md_step – Step size for measured depth sampling.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing horizon data points.

Example:

# Fetch horizon data with 1-meter step
horizon_data = client.fetch_interpretation_horizons_data(
    interpretation_id='InterpretationUUID',
    md_step=1
)
fetch_interpretation_assembled_segments(interpretation_id: str, headers: Dict | None = None)

Fetch assembled segments for a specific interpretation.

Parameters:
  • interpretation_id – UUID of the interpretation.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing assembled segments data.

Example:

# Fetch assembled segments for an interpretation
segments = client.fetch_interpretation_assembled_segments(
    interpretation_id='InterpretationUUID'
)
fetch_interpretation_starred_horizons(interpretation_id: str, headers: Dict | None = None) rogii_solo.papi.types.PapiStarredHorizons

Fetch IDs of starred horizons for a specific interpretation.

Parameters:
  • interpretation_id – UUID of the interpretation.

  • headers – Optional additional HTTP headers.

Returns:

PapiStarredHorizons containing starred horizon UUIDs.

Example:

# Fetch starred horizons for an interpretation
starred = client.fetch_interpretation_starred_horizons(
    interpretation_id='InterpretationUUID'
)
print(f'Top horizon: {starred.top}')
print(f'Center horizon: {starred.center}')
print(f'Bottom horizon: {starred.bottom}')
fetch_interpretation_earth_models(interpretation_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch earth models for a specific interpretation.

Parameters:
  • interpretation_id – UUID of the interpretation.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing earth model data and pagination information.

Example:

# Fetch first 100 earth models for an interpretation
earth_models = client.fetch_interpretation_earth_models(
    interpretation_id='InterpretationUUID',
    offset=0,
    limit=100
)
fetch_earth_model_sections(earth_model_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch sections for a specific earth model.

Parameters:
  • earth_model_id – UUID of the earth model.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing section data and pagination information.

Example:

# Fetch first 100 sections for an earth model
sections = client.fetch_earth_model_sections(
    earth_model_id='EarthModelUUID',
    offset=0,
    limit=100
)
fetch_well_nested_wells(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetches well’ well plans

Parameters:
  • well_id – UUID of the well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing well plan data and pagination information.

Example:

# Fetch first 100 well plans
well_plans = client.fetch_well_nested_wells(
    well_id='WellUUID',
    offset=0,
    limit=100,
    query='WellPlan1'
)
fetch_well_target_lines(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetches well target lines data

Parameters:
  • well_id – UUID of the well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing target line data and pagination information.

Example:

# Fetch first 100 well plans
target_lines = client.fetch_well_target_lines(
    well_id='WellUUID',
    offset=0,
    limit=100,
)
create_well_nested_well(well_id: str, name: str, operator: str, api: str, xsrf: rogii_solo.papi.types.PapiVar, ysrf: rogii_solo.papi.types.PapiVar, kb: rogii_solo.papi.types.PapiVar, tie_in_tvd: rogii_solo.papi.types.PapiVar, tie_in_ns: rogii_solo.papi.types.PapiVar, tie_in_ew: rogii_solo.papi.types.PapiVar, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new well plan within an existing well.

Parameters:
  • well_id – UUID of the parent well.

  • name – Name of the well plan.

  • operator – Operator of the well plan.

  • api – API number of the well plan.

  • xsrf – Surface X coordinate as PapiVar.

  • ysrf – Surface Y coordinate as PapiVar.

  • kb – Kelly bushing elevation as PapiVar.

  • tie_in_tvd – Tie-in true vertical depth as PapiVar.

  • tie_in_ns – Tie-in North-South offset as PapiVar.

  • tie_in_ew – Tie-in East-West offset as PapiVar.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new well plan
result = client.create_well_nested_well(
    well_id='WellUUID',
    name='WellPlan1',
    operator='Operator',
    api='12345',
    xsrf={'val': 100.0},
    ysrf={'val': 200.0},
    kb={'val': 1000.0},
    tie_in_tvd={'val': 2000.0},
    tie_in_ns={'val': 50.0},
    tie_in_ew={'val': -30.0}
)
print(f'Created well plan with ID: {result.id}')
replace_nested_well_trajectory(nested_well_id: str, md_uom: str, incl_uom: str, azi_uom: str, trajectory_stations: rogii_solo.papi.types.PapiTrajectory, headers: Dict | None = None)

Replace the trajectory of a well plan.

Parameters:
  • nested_well_id – UUID of the well plan.

  • md_uom – Unit of measure for measured depth.

  • incl_uom – Unit of measure for inclination.

  • azi_uom – Unit of measure for azimuth.

  • trajectory_stations – List of trajectory points as PapiTrajectory.

  • headers – Optional additional HTTP headers.

Returns:

Response from the server.

Example:

# Replace well plan trajectory
trajectory = [
    {'md': {'val': 0}, 'incl': {'val': 0}, 'azi': {'val': 0}},
    {'md': {'val': 100}, 'incl': {'val': 5}, 'azi': {'val': 180}},
]
client.replace_nested_well_trajectory(
    nested_well_id='WellPlanUUID',
    md_uom='ft',
    incl_uom='deg',
    azi_uom='deg',
    trajectory_stations=trajectory
)
fetch_nested_well_raw_trajectory(nested_well_id: str, headers: dict = None)

Fetch raw trajectory data for a specific nested well.

Parameters:
  • nested_well_id – UUID of the nested well.

  • headers – Optional additional HTTP headers.

Returns:

List of trajectory points.

Example:

# Fetch trajectory data for a well plan
trajectory = client.fetch_nested_well_raw_trajectory(
    nested_well_id='WellPlanUUID'
)
fetch_well_logs(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetch logs for a specific well.

Parameters:
  • well_id – UUID of the well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing log data and pagination information.

Example:

# Fetch first 100 logs for a well
logs = client.fetch_well_logs(
    well_id='WellUUID',
    offset=0,
    limit=100
)

# Fetch logs with a filter query
filtered_logs = client.fetch_well_logs(
    well_id='WellUUID',
    query='Log1'
)
fetch_typewell_logs(typewell_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch logs for a specific type well.

Parameters:
  • typewell_id – UUID of the type well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing log data and pagination information.

Example:

# Fetch first 100 logs for a type well
logs = client.fetch_typewell_logs(
    typewell_id='TypeWellUUID',
    offset=0,
    limit=100
)
fetch_log_points(log_id: str, headers: Dict | None = None)

Fetch data points for a specific log.

Parameters:
  • log_id – UUID of the log.

  • headers – Optional additional HTTP headers.

Returns:

List of log data points.

Example:

# Fetch data points for a log
points = client.fetch_log_points(log_id='LogUUID')
fetch_well_mudlogs(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetch mudlogs for a specific well.

Parameters:
  • well_id – UUID of the well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing mudlog data and pagination information.

Example:

# Fetch first 100 mudlogs for a well
mudlogs = client.fetch_well_mudlogs(
    well_id='WellUUID',
    offset=0,
    limit=100
)

# Fetch mudlogs with a filter query
filtered_mudlogs = client.fetch_well_mudlogs(
    well_id='WellUUID',
    query='Mudlog1'
)
fetch_typewell_mudlogs(typewell_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetch mudlogs for a specific type well.

Parameters:
  • typewell_id – UUID of the type well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing mudlog data and pagination information.

Example:

# Fetch first 100 mudlogs for a type well
mudlogs = client.fetch_typewell_mudlogs(
    typewell_id='TypeWellUUID',
    offset=0,
    limit=100
)

# Fetch mudlogs with a filter query
filtered_mudlogs = client.fetch_typewell_mudlogs(
    typewell_id='TypeWellUUID',
    query='Mudlog1'
)
fetch_mudlog_logs(mudlog_id: str, headers: Dict | None = None)

Fetch log data for a specific mudlog.

Parameters:
  • mudlog_id – UUID of the mudlog.

  • headers – Optional additional HTTP headers.

Returns:

List of log data points.

Example:

# Fetch log data for a mudlog
log_data = client.fetch_mudlog_logs(mudlog_id='MudlogUUID')
fetch_project_typewells(project_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, query: str = None, headers: Dict | None = None)

Fetch type wells for a specific project.

Parameters:
  • project_id – UUID of the project.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • query – Optional filter query string.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing type well data and pagination information.

Example:

# Fetch first 100 type wells for a project
typewells = client.fetch_project_typewells(
    project_id='ProjectUUID',
    offset=0,
    limit=100
)

# Fetch type wells with a filter query
filtered_typewells = client.fetch_project_typewells(
    project_id='ProjectUUID',
    query='TypeWell1'
)
fetch_typewell_raw_trajectory(typewell_id: str, headers: Dict | None = None)

Fetch raw trajectory data for a specific type well.

Parameters:
  • typewell_id – UUID of the type well.

  • headers – Optional additional HTTP headers.

Returns:

List of trajectory points.

Example:

# Fetch trajectory data for a type well
trajectory = client.fetch_typewell_raw_trajectory(
    typewell_id='TypeWellUUID'
)
create_well_topset(well_id: str, name: str, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new topset in a well.

Parameters:
  • well_id – UUID of the well.

  • name – Name of the topset.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new topset in a well
result = client.create_well_topset(
    well_id='WellUUID',
    name='Topset1'
)
print(f'Created topset with ID: {result.id}')
create_typewell_topset(typewell_id: str, name: str, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new topset in a type well.

Parameters:
  • typewell_id – UUID of the type well.

  • name – Name of the topset.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new topset in a type well
result = client.create_typewell_topset(
    typewell_id='TypeWellUUID',
    name='Topset1'
)
print(f'Created topset with ID: {result.id}')
create_nested_well_topset(nested_well_id: str, name: str, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new topset in a nested well.

Parameters:
  • nested_well_id – UUID of the nested well.

  • name – Name of the topset.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new topset in a nested well
result = client.create_nested_well_topset(
    nested_well_id='NestedWellUUID',
    name='Topset1'
)
print(f'Created topset with ID: {result.id}')
fetch_well_topsets(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch topsets for a specific well.

Parameters:
  • well_id – UUID of the well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing topset data and pagination information.

Example:

# Fetch first 100 topsets for a well
topsets = client.fetch_well_topsets(
    well_id='WellUUID',
    offset=0,
    limit=100
)
fetch_typewell_topsets(typewell_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch topsets for a specific type well.

Parameters:
  • typewell_id – UUID of the type well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing topset data and pagination information.

Example:

# Fetch first 100 topsets for a type well
topsets = client.fetch_typewell_topsets(
    typewell_id='TypeWellUUID',
    offset=0,
    limit=100
)
fetch_nested_well_topsets(nested_well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch topsets for a specific nested well.

Parameters:
  • nested_well_id – UUID of the nested well.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing topset data and pagination information.

Example:

# Fetch first 100 topsets for a nested well
topsets = client.fetch_nested_well_topsets(
    nested_well_id='NestedWellUUID',
    offset=0,
    limit=100
)
create_well_target_line(well_id: str, name: str, origin_x: rogii_solo.papi.types.PapiVar, origin_y: rogii_solo.papi.types.PapiVar, origin_z: rogii_solo.papi.types.PapiVar, target_x: rogii_solo.papi.types.PapiVar, target_y: rogii_solo.papi.types.PapiVar, target_z: rogii_solo.papi.types.PapiVar, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new target line in a well.

Parameters:
  • well_id – UUID of the well.

  • name – Name of the target line.

  • origin_x – X coordinate of the origin point as PapiVar.

  • origin_y – Y coordinate of the origin point as PapiVar.

  • origin_z – Z coordinate of the origin point as PapiVar.

  • target_x – X coordinate of the target point as PapiVar.

  • target_y – Y coordinate of the target point as PapiVar.

  • target_z – Z coordinate of the target point as PapiVar.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new target line
result = client.create_well_target_line(
    well_id='WellUUID',
    name='TargetLine1',
    origin_x={'val': 100.0},
    origin_y={'val': 200.0},
    origin_z={'val': 300.0},
    target_x={'val': 400.0},
    target_y={'val': 500.0},
    target_z={'val': 600.0}
)
print(f'Created target line with ID: {result.id}')
create_topset_top(topset_id: str, name: str, md: rogii_solo.papi.types.PapiVar, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new top in a topset.

Parameters:
  • topset_id – UUID of the topset.

  • name – Name of the top.

  • md – Measured depth of the top as PapiVar.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new top in a topset
result = client.create_topset_top(
    topset_id='TopsetUUID',
    name='Top1',
    md={'val': 1000.0}
)
print(f'Created top with ID: {result.id}')
fetch_topset_tops(topset_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetch tops for a specific topset.

Parameters:
  • topset_id – UUID of the topset.

  • offset – Number of items to skip before starting to collect the result set.

  • limit – Maximum number of items to return.

  • headers – Optional additional HTTP headers.

Returns:

Dictionary containing top data and pagination information.

Example:

# Fetch first 100 tops for a topset
tops = client.fetch_topset_tops(
    topset_id='TopsetUUID',
    offset=0,
    limit=100
)
fetch_topset_starred_tops(topset_id: str, headers: Dict = None) rogii_solo.papi.types.PapiStarredTops

Fetch IDs of starred tops for a specific topset.

Parameters:
  • topset_id – UUID of the topset.

  • headers – Optional additional HTTP headers.

Returns:

PapiStarredTops containing starred top UUIDs.

Example:

# Fetch starred tops for a topset
starred = client.fetch_topset_starred_tops(
    topset_id='TopsetUUID'
)
print(f'Top: {starred.top}')
print(f'Center: {starred.center}')
print(f'Bottom: {starred.bottom}')
create_well_log(well_id: str, name: str, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new log in a well.

Parameters:
  • well_id – UUID of the well.

  • name – Name of the log.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new log in a well
result = client.create_well_log(
    well_id='WellUUID',
    name='Log1'
)
print(f'Created log with ID: {result.id}')
replace_log(log_id: str, log_points: List[rogii_solo.papi.types.PapiLogPoint], index_unit: str | None = None, value_unit: str | None = None, headers: Dict | None = None)

Replace data points in a log.

Parameters:
  • log_id – UUID of the log.

  • log_points – List of log points as PapiLogPoint.

  • index_unit – Optional unit of measure for the index values.

  • value_unit – Optional unit of measure for the data values.

  • headers – Optional additional HTTP headers.

Returns:

Response from the server.

Example:

# Replace log data points
points = [
    {'index': {'val': 0}, 'value': {'val': 100}},
    {'index': {'val': 1}, 'value': {'val': 200}},
]
client.replace_log(
    log_id='LogUUID',
    log_points=points,
    index_unit='ft',
    value_unit='API'
)
update_log_meta(log_id: str, name: str | None = None, unit: str | None = None, headers: Dict | None = None) bool

Update metadata for a log.

Parameters:
  • log_id – UUID of the log.

  • name – Optional new name for the log.

  • unit – Optional new unit of measure for the log values.

  • headers – Optional additional HTTP headers.

Returns:

True if the update was successful, False otherwise.

Example:

# Update log metadata
success = client.update_log_meta(
    log_id='LogUUID',
    name='Log1',
    unit='API'
)
if success:
    print('Log metadata updated successfully')
create_typewell_log(typewell_id: str, name: str, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a new log in a type well.

Parameters:
  • typewell_id – UUID of the type well.

  • name – Name of the log.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult containing the created object’s ID.

Example:

# Create a new log in a type well
result = client.create_typewell_log(
    typewell_id='TypewellUUID',
    name='Log1'
)
print(f'Created log with ID: {result.id}')
fetch_traces(headers: Dict | None = None)

Fetch all available traces.

Parameters:

headers – Optional additional HTTP headers.

Returns:

List of trace data.

Example:

# Fetch all available traces
traces = client.fetch_traces()
fetch_well_mapped_traces(well_id: str, trace_type: rogii_solo.papi.types.TraceType, headers: Dict | None = None)

Fetch mapped traces of a specific type for a well.

Parameters:
  • well_id – UUID of the well.

  • trace_type – Type of traces to fetch as TraceType.

  • headers – Optional additional HTTP headers.

Returns:

List of mapped trace data.

Example:

from rogii_solo.papi.types import TraceType

# Fetch mapped traces for a well
traces = client.fetch_well_mapped_traces(
    well_id="well_uuid",
    trace_type=TraceType.TIME
)
fetch_well_mapped_time_traces(well_id: str, headers: Dict | None = None)

Fetch mapped time traces for a well.

Parameters:
  • well_id – UUID of the well.

  • headers – Optional additional HTTP headers.

Returns:

List of mapped time trace data.

Example:

# Fetch mapped time traces for a well
traces = client.fetch_well_mapped_time_traces(well_id='WellUUID')
fetch_well_mapped_calc_traces(well_id: str, headers: Dict | None = None)

Fetch mapped calculated traces for a well.

Parameters:
  • well_id – UUID of the well.

  • headers – Optional additional HTTP headers.

Returns:

List of mapped calculated trace data.

Example:

# Fetch mapped calculated traces for a well
traces = client.fetch_well_mapped_calc_traces(well_id='WellUUID')
fetch_well_time_trace(well_id: str, trace_id: str, time_from: str | None = None, time_to: str | None = None, trace_hash: str | None = None, limit: int | None = None, headers: Dict | None = None)

Fetch mapped calculated traces for a well.

Parameters:
  • well_id – UUID of the well.

  • trace_id – UUID of the trace.

  • time_from – Start time of the trace.

  • time_to – End time of the trace.

  • trace_hash – Hash of the trace.

  • limit – Limit the number of traces.

  • headers – Optional additional HTTP headers.

Returns:

List of mapped calculated trace data.

Example:

# Fetch time traces for a well
traces = client.fetch_well_time_trace(well_id='WellUUID', trace_id='TraceUUID')
fetch_well_calc_trace(well_id: str, trace_id: str, time_from: str | None = None, time_to: str | None = None, trace_hash: str | None = None, headers: Dict | None = None)

Fetch mapped calculated traces for a well.

Parameters:
  • well_id – UUID of the well.

  • trace_id – UUID of the trace.

  • time_from – Start time of the trace.

  • time_to – End time of the trace.

  • trace_hash – Hash of the trace.

  • headers – Optional additional HTTP headers.

Returns:

List of mapped calculated trace data.

Example:

# Fetch calculated traces for a well
traces = client.fetch_well_calc_trace(well_id='WellUUID', trace_id='TraceUUID')
update_well_meta(well_id: str, name: str | None = None, operator: str | None = None, api: str | None = None, xsrf: rogii_solo.papi.types.PapiVar | None = None, ysrf: rogii_solo.papi.types.PapiVar | None = None, kb: rogii_solo.papi.types.PapiVar | None = None, azimuth: rogii_solo.papi.types.PapiVar | None = None, convergence: rogii_solo.papi.types.PapiVar | None = None, tie_in_tvd: rogii_solo.papi.types.PapiVar | None = None, tie_in_ns: rogii_solo.papi.types.PapiVar | None = None, tie_in_ew: rogii_solo.papi.types.PapiVar | None = None, headers: Dict | None = None)

Update the metadata of a well.

Parameters:
  • well_id – UUID of the well.

  • name – Name of the well.

  • operator – Operator of the well.

  • api – API of the well.

  • xsrf – XSRF of the well.

  • ysrf – YSRF of the well.

  • kb – KB of the well.

  • azimuth – Azimuth of the well.

  • convergence – Convergence of the well.

  • tie_in_tvd – Tie in TVD of the well.

  • tie_in_ns – Tie in NS of the well.

  • tie_in_ew – Tie in EW of the well.

  • headers – Optional additional HTTP headers.

Example:

# Update well metadata
client.update_well_meta(well_id='WellUUID', name='Well1')
update_typewell_meta(well_id: str, name: str | None = None, operator: str | None = None, api: str | None = None, xsrf: rogii_solo.papi.types.PapiVar | None = None, ysrf: rogii_solo.papi.types.PapiVar | None = None, kb: rogii_solo.papi.types.PapiVar | None = None, convergence: rogii_solo.papi.types.PapiVar | None = None, tie_in_tvd: rogii_solo.papi.types.PapiVar | None = None, tie_in_ns: rogii_solo.papi.types.PapiVar | None = None, tie_in_ew: rogii_solo.papi.types.PapiVar | None = None, headers: Dict | None = None)

Update the metadata of a type well.

Parameters:
  • well_id – UUID of the type well.

  • name – Name of the type well.

  • operator – Operator of the type well.

  • api – API of the type well.

  • xsrf – XSRF of the type well.

  • ysrf – YSRF of the type well.

  • kb – KB of the type well.

  • convergence – Convergence of the type well.

  • tie_in_tvd – Tie in TVD of the type well.

  • tie_in_ns – Tie in NS of the type well.

  • tie_in_ew – Tie in EW of the type well.

  • headers – Optional additional HTTP headers.

Example:

# Update type well metadata
client.update_typewell_meta(well_id='WellUUID', name='Well1')
update_nested_well_meta(well_id: str, name: str | None = None, operator: str | None = None, api: str | None = None, xsrf: rogii_solo.papi.types.PapiVar | None = None, ysrf: rogii_solo.papi.types.PapiVar | None = None, kb: rogii_solo.papi.types.PapiVar | None = None, tie_in_tvd: rogii_solo.papi.types.PapiVar | None = None, tie_in_ns: rogii_solo.papi.types.PapiVar | None = None, tie_in_ew: rogii_solo.papi.types.PapiVar | None = None, headers: Dict | None = None)

Update the metadata of a well plan.

Parameters:
  • well_id – UUID of the well plan.

  • name – Name of the well plan.

  • operator – Operator of the well plan.

  • api – API of the well plan.

  • xsrf – XSRF of the well plan.

  • ysrf – YSRF of the well plan.

  • kb – KB of the well plan.

  • convergence – Convergence of the well plan.

  • tie_in_tvd – Tie in TVD of the well plan.

  • tie_in_ns – Tie in NS of the well plan.

  • tie_in_ew – Tie in EW of the well plan.

  • headers – Optional additional HTTP headers.

Example:

# Update well plan metadata
client.update_nested_well_meta(well_id='WellPlanUUID', name='WellPlan1')
create_well(project_id: str, name: str, operator: str, api: str, convergence: rogii_solo.papi.types.PapiVar, azimuth: rogii_solo.papi.types.PapiVar, kb: rogii_solo.papi.types.PapiVar, tie_in_tvd: rogii_solo.papi.types.PapiVar, tie_in_ns: rogii_solo.papi.types.PapiVar, tie_in_ew: rogii_solo.papi.types.PapiVar, xsrf_real: rogii_solo.papi.types.PapiVar, ysrf_real: rogii_solo.papi.types.PapiVar, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a well in the project

Parameters:
  • project_id – UUID of the project.

  • name – Name of the well.

  • operator – Operator of the well.

  • api – API of the well.

  • xsrf – XSRF of the well.

  • ysrf – YSRF of the well.

  • kb – KB of the well.

  • convergence – Convergence of the well.

  • tie_in_tvd – Tie in TVD of the well plan.

  • tie_in_ns – Tie in NS of the well plan.

  • tie_in_ew – Tie in EW of the well plan.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult object.

Example:

# Create a well
client.create_well(project_id='ProjectUUID',
    name='Well1',
    operator='Operator1',
    api='API1',
    convergence=PapiVar(10),
    azimuth=PapiVar(20),
    kb=PapiVar(30),
    tie_in_tvd=PapiVar(40),
    tie_in_ns=PapiVar(50),
    tie_in_ew=PapiVar(60),
    xsrf_real=PapiVar(70),
    ysrf_real=PapiVar(80),
)
create_typewell(project_id: str, name: str, operator: str, api: str, convergence: rogii_solo.papi.types.PapiVar, kb: rogii_solo.papi.types.PapiVar, tie_in_tvd: rogii_solo.papi.types.PapiVar, tie_in_ns: rogii_solo.papi.types.PapiVar, tie_in_ew: rogii_solo.papi.types.PapiVar, xsrf_real: rogii_solo.papi.types.PapiVar, ysrf_real: rogii_solo.papi.types.PapiVar, headers: Dict | None = None) rogii_solo.papi.types.PapiObjectCreationResult

Create a type well in the project

Parameters:
  • project_id – UUID of the project.

  • name – Name of the type well.

  • operator – Operator of the type well.

  • api – API of the type well.

  • xsrf – XSRF of the type well.

  • ysrf – YSRF of the type well.

  • kb – KB of the type well.

  • convergence – Convergence of the type well.

  • tie_in_tvd – Tie in TVD of the type well.

  • tie_in_ns – Tie in NS of the type well.

  • tie_in_ew – Tie in EW of the type well.

  • headers – Optional additional HTTP headers.

Returns:

PapiObjectCreationResult object.

Example:

# Create a type well
client.create_typewell(project_id='ProjectUUID',
    name='TypeWell1',
    operator='Operator1',
    api='API1',
    convergence=PapiVar(10),
    kb=PapiVar(30),
    tie_in_tvd=PapiVar(40),
    tie_in_ns=PapiVar(50),
    tie_in_ew=PapiVar(60),
    xsrf_real=PapiVar(70),
    ysrf_real=PapiVar(80),
)
fetch_well_linked_typewells(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetches well linked typewells

Parameters:
  • well_id – UUID of the well.

  • offset – Offset of the well linked typewells.

  • limit – Limit of the well linked typewells.

  • headers – Optional additional HTTP headers.

Example:

# Fetch well linked typewells
client.fetch_well_linked_typewells(well_id='WellUUID')
fetch_well_comments(well_id: str, offset: int = BasePapiClient.DEFAULT_OFFSET, limit: int = BasePapiClient.DEFAULT_LIMIT, headers: Dict | None = None)

Fetches well comments

Parameters:
  • well_id – UUID of the well.

  • offset – Offset of the well comments.

  • limit – Limit of the well comments.

  • headers – Optional additional HTTP headers.

Example:

# Fetch well comments
client.fetch_well_comments(well_id='WellUUID')
fetch_well_attributes(well_id: str, headers: Dict | None = None)

Fetches well attributes

Parameters:
  • well_id – UUID of the well.

  • headers – Optional additional HTTP headers.

Example:

# Fetch well attributes
client.fetch_well_attributes(well_id='WellUUID')
replace_well_trajectory(well_id: str, md_uom: str, incl_uom: str, azi_uom: str, trajectory_stations: rogii_solo.papi.types.PapiTrajectory, headers: Dict | None = None)

Replace well trajectory

Parameters:
  • well_id – UUID of the well.

  • md_uom – MD unit of measure.

  • incl_uom – Inclination unit of measure.

  • azi_uom – Azimuth unit of measure.

  • trajectory_stationsPapiTrajectory object.

  • headers – Optional additional HTTP headers.

Example:

# Replace well trajectory
client.replace_well_trajectory(
    well_id='WellUUID',
    md_uom='m',
    incl_uom='deg',
    azi_uom='deg',
    trajectory_stations=PapiTrajectory(),
)
update_top_meta(top_id: str, name: str, md: rogii_solo.papi.types.PapiVar, headers: Dict | None = None) bool

Update top metadata

Parameters:
  • top_id – UUID of the top.

  • name – Name of the top.

  • md – MD of the top.

  • headers – Optional additional HTTP headers.

Returns:

True if the top metadata was updated successfully, False otherwise.

Example:

# Replace well trajectory
client.update_top_meta(
    top_id='TopUUID',
    name='Top1',
    md=PapiVar(1000),
)