Skip to main content

imfp

Tests PyPI Version Code style: ruff

imfp, by Christopher C. Smith, is a Python package for downloading data from the International Monetary Fund's RESTful JSON API.

📚 Full Documentation

Installation

pip install -q --upgrade imfp

Quick Start

imfp follows the econdataverse conventions, mirroring the R package imfapi. Fetching data takes four steps, one per function:

import imfp

# 1. Find a dataset
dataflows = imfp.imf_get_dataflows()

# 2. See how it can be filtered
dimensions = imfp.imf_get_datastructure("PCPS")

# 3. Find valid codes for those dimensions
codes = imfp.imf_get_codelists(["INDICATOR", "FREQUENCY"], "PCPS")

# 4. Fetch the data
df = imfp.imf_get(
    "PCPS",
    dimensions={
        "INDICATOR": ["PCOAL"],
        "DATA_TRANSFORMATION": ["INDEX"],
        "FREQUENCY": ["A"],
    },
)

Dimensions can also be passed as keyword arguments:

df = imfp.imf_get("PCPS", indicator="PCOAL", data_transformation="INDEX", frequency="A")

Upgrading from 1.x

Version 2.0.0 replaces the old four-function API. The old names still work but emit a DeprecationWarning, and will be removed in 3.0.0.

imfp 1.x imfp 2.0
imf_databases() imf_get_dataflows()
imf_parameters(db) imf_get_codelists(dims, db)
imf_parameter_defs(db) imf_get_datastructure(db)
imf_dataset(db, ...) imf_get(db, ...)

See the migration guide for argument-by-argument details.

Key Features

  • Comprehensive access to IMF's extensive economic databases
  • Dataset, dimension, and code discovery
  • Tidy pandas DataFrame output, with numeric observation values
  • Rate limit and bandwidth management

Contributing

We welcome contributions to improve imfp! Here's how you can help:

  1. If you find a bug, please open an issue
  2. To fix a bug:
    • Fork and clone the repository and open a terminal in the repository directory
    • Install uv with curl -LsSf https://astral.sh/uv/install.sh | sh
    • Install the dependencies with uv sync
    • Install a git hook to enforce conventional commits with curl -o- https://raw.githubusercontent.com/chriscarrollsmith/conventional-commits-git-hook/master/scripts/install.sh | sh
    • Create a fix, commit it with an "Angular-style Conventional Commit" message, and push it to your fork
    • Open a pull request to our main branch

Note that if you want to change and preview the documentation, you will need to install the Quarto CLI tool and run uv run great-docs build (or uv run great-docs preview).

Version incrementing, package building, testing, changelog generation, documentation rendering, publishing to PyPI, and Github release creation is handled automatically by the GitHub Actions workflow based on the commit messages.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imfp-2.0.0.tar.gz (48.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imfp-2.0.0-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

Details for the file imfp-2.0.0.tar.gz.

File metadata

  • Download URL: imfp-2.0.0.tar.gz
  • Upload date:
  • Size: 48.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for imfp-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e8604c8822b28b2f56700d1eb1e7e365cb3ac33be08176945aca1dfc14192af2
MD5 b52e37b0a0a7903b74554786bc64622d
BLAKE2b-256 c0bd33d1c85177c4e9e05270ef09235d29c37a59b152c2251f121e5fb5d0ea6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for imfp-2.0.0.tar.gz:

Publisher: release.yml on Promptly-Technologies-LLC/imfp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imfp-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: imfp-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 34.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for imfp-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 161d329bee5dfdc55c4faf5b80c614a56f48b9d77e721e88c50dc0bde01c52ed
MD5 1473fa28bcd1982580d129bb767d143e
BLAKE2b-256 0395e76b0f6b4bdfbd0560a55c662625ed0011a381f900a146e88c3592a2d492

See more details on using hashes here.

Provenance

The following attestation bundles were made for imfp-2.0.0-py3-none-any.whl:

Publisher: release.yml on Promptly-Technologies-LLC/imfp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.10

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page