Neptune Client Experimental
Project description
Neptune Experimental Package
This package consists of experimental features that are not yet ready for production use. The API is subject to change without notice.
Neptune Fetcher
Neptune Fetcher is a Python package designed for efficient fetching and manipulation of data from Neptune projects and runs. It provides classes and methods for interacting with Neptune data in a read-only manner.
Installation
pip install --upgrade neptune neptune-experimental
Usage
Importing
from neptune_fetcher import (
ReadOnlyProject, ProgressUpdateHandler
)
Overview of Classes
-
ReadOnlyProject
: A lightweight, read-only class for handling basic project information.- Constructor Parameters:
project
: Optional string specifying the project name.workspace
: Optional string specifying the workspace.api_token
: Optional string for the API token.proxies
: Optional dictionary for proxy configuration.
- Methods:
list_runs()
: Yields dictionaries with basic information about each run, includingsys/id
andsys/name
.fetch_read_only_runs(with_ids: List[str])
: Returns a generator forReadOnlyRun
instances for specified run IDs.fetch_runs()
: Fetches runs as a DataFrame with default columns.progress_indicator(handler: Union[ProgressUpdateHandler, bool])
: Sets a progress indicator.fetch_runs_df(columns, with_ids, states, owners, tags, trashed)
: Fetches runs as a DataFrame based on specified filters.
- Constructor Parameters:
-
ReadOnlyProject.ReadOnlyRun
: Represents a single Neptune run with read-only access.- Methods:
__getitem__(item)
: Accesses a field by its path.__delitem__(key)
: Removes a field from the local cache.field_names
: Yields the names of all available fields in the run.prefetch(paths: List[str])
: Loads values of specified fields into local cache.
- Methods:
-
ProgressUpdateHandler
: Handles feedback presentation during data fetching.- Method Overriding:
pre_series_fetch(total_series: int, series_limit: int)
: Sets up a progress bar for series fetching.on_series_fetch(step: int)
: On every step in the series fetching process.post_series_fetch()
: After series fetching is completed should clean up the resources.pre_runs_table_fetch()
: Initializes a progress bar for table fetching.on_runs_table_fetch(step: int)
: On every step in the table fetching process.post_runs_table_fetch()
: After table fetching is completed should clean up the resources.pre_download(total_size: int)
: Sets up tracking of download process.on_download_chunk(chunk: int)
: On every step of the download process.post_download()
: After the download process is completed should clean up the resources.
- Method Overriding:
Examples
Fetching Project Metadata
from neptune_fetcher import ReadOnlyProject
project = ReadOnlyProject(workspace="some", project="project")
Listing Runs in a Project
from neptune_fetcher import ReadOnlyProject
project = ReadOnlyProject(workspace="some", project="project")
ids = list(map(lambda row: row["sys/id"], project.list_runs()))
Filtering and Processing Runs
from neptune_fetcher import ReadOnlyProject
project = ReadOnlyProject(workspace="some", project="project")
df = project.fetch_runs_df()
matches = df["sys/name"].str.match("metrics.*")
ids = df[matches]["sys/id"]
Iterating Over Runs
from neptune_fetcher import ReadOnlyProject
project = ReadOnlyProject(workspace="some", project="project")
for run in project.fetch_read_only_runs(with_ids=["PROJ-2"]):
for field in run.field_names:
if field.startswith("param"):
print(run[field].fetch())
if field.startswith("metric"):
print(run[field].fetch_values())
Prefetching Values
run.prefetch(["metric1", "metric2"])
print(run["metric1"].fetch(), run["metric2"].fetch()) # This will use the local cache
Purging Local Cache
del run["metric1"]
Custom Progress Indicator
Use the default progress indicator:
from neptune_fetcher import ReadOnlyProject
project = ReadOnlyProject(workspace="some", project="project")
project.progress_indicator(True)
or define your own progress indicator by inheriting from ProgressUpdateHandler
:
from neptune_fetcher import (
ProgressUpdateHandler,
ReadOnlyProject,
)
class MyProgressIndicator(ProgressUpdateHandler):
def pre_runs_table_fetch(self):
pass
def on_runs_table_fetch(self, step: int):
print(f"Fetching runs table, step {step}")
def post_runs_table_fetch(self):
pass
project = ReadOnlyProject("some/project")
project.progress_indicator(MyProgressIndicator())
df = project.fetch_runs_df()
Output:
Fetching runs table, step 100
Fetching runs table, step 100
Fetching runs table, step 100
Implementation of the default update handler can be found in src/neptune_fetcher/progress_update_handler
.
Example
A full example can be found in examples/fetch_api.py
.
License
This project is licensed under the Apache License Version 2.0. For more details, see Apache License Version 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for neptune_experimental-0.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a81e59bc05f4b52753cef0d9de7bcb72a8e25223282b90390728894bb1bcbde |
|
MD5 | 3dfb7adc8ad3bd4fbb83587fa32bb61b |
|
BLAKE2b-256 | 65aac06a1187679875228c987c1ea9319da429aa66860b6ec199e2feb046c5a0 |
Hashes for neptune_experimental-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 635d7842ff436ead106e3227d8fde1cbcbb366f218b687ed2f14f6b00019bfcd |
|
MD5 | bcc7faeab155a97aea382bf6e993fcba |
|
BLAKE2b-256 | 145f7e5a079cf92be24c063e23d075042ec417e13160a541e4fd5e6d1102ab52 |