Skip to main content

DataTrade Processing

[!IMPORTANT] Project development has moved to Codeberg.

Overview

DataTrade Processing is a robust, high-performance Python library designed for processing and analyzing international trade data for Puerto Rico. Built on top of Polars, the project employs a configuration-driven design to handle dynamic aggregation, unit conversions, and advanced rolling statistical analysis across various taxonomy levels and time frames.


Key Features

  • High-Performance Processing: Leverages Polars DataFrames for fast, memory-efficient data manipulation and aggregation.

  • Flexible Data Sources: Supports ingestion from both organizational (org) and JP-specific (jp) trade data sources.

  • Multi-Level Classification: Aggregate metrics by:

    • Total trade (total)
    • Harmonized Tariff Schedule code (hts)
    • North American Industry Classification System code (naics)
    • Country (country)
  • Flexible Time Frames: Group trade data by calendar year, fiscal year (beginning in July), quarter, or month.

  • Granular Filtering: Filter data dynamically by date ranges, specific calendar years, agricultural indicators (agri_prod), and taxonomy code prefixes.

  • Standardized Unit Conversions: Automatically normalizes diverse source units (kilograms, liters, metric tons, dozens, cubic meters, grams, etc.) into a unified metric representation.

  • Advanced Price Analysis (process_price):

    • Computes HS4-level import and export unit prices.
    • Calculates 3-month rolling averages and standard deviations.
    • Derives statistical price bands ($\pm 2\sigma$) and monthly market rankings.
    • Evaluates year-over-year percentage changes and ranking shifts.

Requirements

  • Python: 3.10 or higher
  • Core Dependencies: polars
  • Development/Testing Dependencies: pytest
  • External Dependencies: pr-imports

Installation

Clone the repository and set up your environment using your preferred package or environment manager:

git clone https://codeberg.org/gitinference/jp-imports.git
cd jp-imports

# Using devenv (recommended if configured)
devenv shell --profile dev

# Or via standard pip requirements
pip install -r requirements.txt

Usage

Initializing JPTrade

The core processing logic is encapsulated within the JPTrade class. By default, processed outputs are written to a local data/ directory and logs are recorded in data.log.

from jp_imports.jp_imports import JPTrade

# Initialize with default settings

trade = JPTrade()

# Or specify custom directories and logs

trade = JPTrade(saving_dir="data/", log_file="data.log")

Processing International Trade Data

Use the process_int_jp() method to load, filter, convert, and aggregate trade datasets.

result = trade.process_int_jp(
    level="total",
    time_frame="yearly",
)

Supported Parameters

Parameter Type Description
level str Aggregation level: "total", "hts", "naics", or "country".
time_frame str Time period: "yearly", "fiscal", "qtr", or "monthly".
datetime str Optional filter for a single year ("2024") or range ("2024-01-01+2024-12-31").
agriculture_filter bool If True, restricts records to agricultural products (agri_prod == 1).
source str Data source origin: "org" (default) or "jp".
level_filter str Optional taxonomy prefix filter (e.g., level_filter="2207" for HTS codes).

Price Analysis Pipeline

To generate rolling price metrics, unit costs, bands, and year-over-year variations at the HS4 classification level over a 3 month window, use process_price():

# Standard price processing

prices = trade.process_price()

# Isolated for agricultural commodities

ag_prices = trade.process_price(agriculture_filter=True)

Running Tests

Execute the test suite using pytest:

pytest

Project Architecture

jp-imports/
├── src/
│   └── jp_imports/
│       ├── jp_imports.py
│       └── resources/
│           └── code_agr.json
├── tests/
├── requirements.txt
├── environment.yml
├── README.md
└── LICENSE

License

Distributed under the GPL v3 License. See LICENSE for more information.

Download files

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

Source Distribution

jp_imports-1.7.1.tar.gz (234.9 kB view details)

Uploaded Source

Built Distribution

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

jp_imports-1.7.1-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file jp_imports-1.7.1.tar.gz.

File metadata

  • Download URL: jp_imports-1.7.1.tar.gz
  • Upload date:
  • Size: 234.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for jp_imports-1.7.1.tar.gz
Algorithm Hash digest
SHA256 e8d9058eaa2113819f7474e12970592a81f4e473b5bc2059a1286fcb03f31d94
MD5 b5191ee93662017658de350ef4143099
BLAKE2b-256 9d70a1a765fd175b8b01eb9bd9494803045949c5a1c7883772e218a15f084d04

See more details on using hashes here.

File details

Details for the file jp_imports-1.7.1-py3-none-any.whl.

File metadata

  • Download URL: jp_imports-1.7.1-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for jp_imports-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dd5b1713faca349f4463c3b2e66e6d140fc2a738a00ee1e74c24fe82b2647707
MD5 c82bf46aeb6663eec746ead3ce16179e
BLAKE2b-256 f7fbec6b6e3452a5bdb0c9d26e5ff8d7618a23e22a155407ae76a5f5aeea5385

See more details on using hashes here.

Release history Release notifications | RSS feed

1.8.0

2 files

1.7.5

2 files

1.7.4

2 files

1.7.2

2 files

This release

1.7.1 This release

2 files

1.7.0

2 files

1.6.7

2 files

1.6.6

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.1

2 files

1.5.0

2 files

1.4.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

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