Giter Club home page Giter Club logo

artemis_py's Introduction

Artemis Analytics Python API

Overview

The ArtemisAPI class provides a convenient interface for interacting with the Artemis API to fetch asset data, metrics, and developer activity information. It allows users to retrieve data in the form of pandas DataFrames and visualize it using Plotly.

Visit artemis.xyz to explore their data and get an 'API Key'

Features

  • Fetch a list of supported assets.
  • Fetch available metrics for a specific asset.
  • Retrieve specific metric data for assets.
  • List supported ecosystems.
  • Fetch weekly commit data for ecosystems.
  • Fetch weekly active developer data for ecosystems.
  • Plot data using Plotly.

Installation

Prerequisites

  • Python 3.6 or higher
  • Required Python packages:
    • pandas
    • requests
    • plotly

Install Required Packages

You can install the required packages using pip:

pip install pandas requests plotly

Usage

Initialization

To use the ArtemisAPI class, you need to instantiate it with your API key:

from artemis_api import ArtemisAPI

api_key = "your_api_key_here"
api = ArtemisAPI(api_key)

Fetching Assets

To fetch a list of supported assets:

assets = api.get_assets()
print(assets)

Fetching Asset Metrics

To fetch available metrics for a specific asset:

asset_id = "bitcoin"
metrics = api.get_asset_metrics(asset_id)
print(metrics)

Fetching Metric Data for Assets

To fetch data for a specific metric of an asset:

asset_id = "bitcoin"
start_date = "2023-01-01"
metric = "price"
data = api.get_data(asset_id, start_date, metric)
print(data)

Fetching Data for Multiple Metrics and/or Assets

To fetch data for a set metrics for one or more assets:

api = ArtemisAPI(api_key="api_key_here")
asset_ids = ["bitcoin", "ethereum"]
metrics = ["price", "mc"]
start_date = "2023-06-01"
end_date = "2023-06-10"

data = api.get_data(asset_ids, metrics, start_date, end_date)

Listing Supported Ecosystems

To list supported ecosystems:

ecosystems = api.list_ecosystems()
print(ecosystems)

Fetching Weekly Commits for Ecosystems

To fetch weekly commits data for ecosystems:

commits = api.query_weekly_commits_for_ecosystem()
print(commits)

To fetch weekly commits data for a specific ecosystem:

ecosystem = "Uniswap"
commits = api.query_weekly_commits_for_ecosystem(ecosystem=ecosystem)
print(commits)

Fetching Weekly Active Developers for Ecosystems

To fetch weekly active developer data for ecosystems:

active_devs = api.query_active_devs_for_ecosystem()
print(active_devs)

To fetch weekly active developer data for a specific ecosystem:

ecosystem = "Uniswap"
active_devs = api.query_active_devs_for_ecosystem(ecosystem=ecosystem)
print(active_devs)

Plotting Data

To plot data using Plotly:

data = api.get_data("bitcoin", "2023-01-01", "price")
fig = api.plot_data(data, "Bitcoin Price Data")
fig.show()

To plot weekly data with performance annotations:

weekly_data = api.query_weekly_commits_for_ecosystem(ecosystem="Uniswap")
fig = api.plot_weekly_data(weekly_data, "Uniswap Weekly Commits")
fig.show()

Error Handling

The class includes basic error handling for HTTP errors and other exceptions. Errors are logged using the logging module.

Logging

Logging is configured to the INFO level by default. You can change the logging level as needed:

import logging
logging.basicConfig(level=logging.DEBUG)

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.

License

This project is licensed under the MIT License.

artemis_py's People

Contributors

mattmaximo avatar

Stargazers

0xnirmal avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.