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)
- Total trade (
-
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jp_imports-1.7.4.tar.gz.
File metadata
- Download URL: jp_imports-1.7.4.tar.gz
- Upload date:
- Size: 236.7 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81760fb44fd5b4e1d59035c2166126a69c9b2bc53e84d0da392df9e6897d320b
|
|
| MD5 |
ea71a4b8690c99070e9a2cd9e668df88
|
|
| BLAKE2b-256 |
ffb12a6b2aaf98d58e8f87266bb11d2c992f833901c16cd9da1895e64a6066ff
|
File details
Details for the file jp_imports-1.7.4-py3-none-any.whl.
File metadata
- Download URL: jp_imports-1.7.4-py3-none-any.whl
- Upload date:
- Size: 22.5 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b061ce460a1fef94a5e180b107bfafa33e21973696058e0b6d5211f880767b2
|
|
| MD5 |
487637bbc224a782aa510965f36e0d02
|
|
| BLAKE2b-256 |
d13766a668a1f3996aaa0bdb81141a1ad769a701d60c7d17434773e80d52533c
|