Metadata-Version: 2.1
Name: Global-Data-Interface
Version: 0.1.0a1
Summary: Global Data Interface is a Python package designed to provide a unified interface to easily query for data from a number of APIs providing international time series data.
Home-page: https://github.com/EMCampbell01/Global-Data-Interface
Author: Euan McLean Campbell
Author-email: euan.campbell.dev@pm.me
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

# GLOBAL DATA INTERFACE

[![Version](https://img.shields.io/badge/version-0.1.0a1-orange)](https://github.com/EMCampbell01/Global-Data-Interface)

Global Data Interface is a Python package designed to provide a unified interface to easily query for data from a number of APIs providing international time series data.

---

## README Contents

- [Installation](#Installation)
- [Usage](#Usage)
- [Examples](#Examples)
- [Design](#design)

## Installation



---

## Usage

---

## Examples

---

## Design

### Global Data Interface

The `GlobalDataInterface` class is the main interface for the package. It is a singleton class. The `GlobalDataInterface` contains several sub-clients which each interact with and retrive data from their associated API. A `GlobalDataInterface` object can be used to interact with each of its internal sub-clients individually to create API specific requests and retrive API specific data.

The `GlobalDataInterface` has the following methods to retrive data from multiple sub-clients, and return data in a unified structure.

- `indicators()`
- `economies()`
- `indicator_groups()`
- `economy_groups()`
- `data()`

### Sub-Clients

In its current version `GlobalDataInterface` has 4 sub-clients for the following organizations and their APIs:

- `WBClient`
- `UNClient`
- `WTOClient`
- `IMFClient`

these all inheriate from the `BaseClient` abstract class. The `BaseClient` contains internal utility methods for url construction and making REST HTTP requests. The `BaseClient` contains an abstract method `info()` which is implemented in child classes to print details om the specific API being interacted with, including the organization providing it and a link to its documentation.

**World Bank Client**

The WB client provides methods for retreiving data from the WB V2 API endpoints.

- `indicators()`
- `economies()`
- `regions()`
- `topics()`
- `sources()`
- `income_levels()`
- `data()`

**World Trade Organization Client**

The WTO Client provides methods for retreving data from the WTO timeseries V1 API endpoints.

- `indicators()`
- `economies()`
- `indicator_catagories()`
- `regions()`
- `economic_groups()`
- `product_classifications()`
- `products_and_sectors()`
- `topics()`
- `units()`
- `periods()`
- `frequencies()`
- `data()`

**International Monetary Fund Client**

The IMF Client provides methods for retreving data from the IMF datamapper V1 API endpoints.

- `indicators()`
- `economies()`
- `regions()`
- `groups()`
- `data()`

**United Nations Client**

The UN Client is still to be implemented.

### Data-Structures

