Add your description here
Project description
DataTrade Processing
[!IMPORTANT]
Proyect developent has moved to Codeberg
Overview
This project provides tools for processing trade data for Puerto Rico, integrating various data sources and performing necessary transformations using Polars and Ibis. The project also includes unit tests to ensure the integrity and correctness of data processing functionalities.
Features
- Import and process trade data from Parquet files.
- Support for various aggregation types (e.g., total, NAICS, HTS).
- Flexible handling of different timeframes (e.g., yearly, monthly, quarterly).
- Unit tests for validating data processing against expected results.
- The default data storage is SQLite, but can be configured to use PostgreSQL (other databases are not yet supported).
Requirements
- Python 3.10+
polarsibis-frameworkpytestsqlite3
You can install the required libraries using pip:
pip install polars ibis-framework pytest
Installation
-
Clone the repository:
git clone https://github.com/ouslan/jp-imports.git cd jp-imports
-
Install the necessary dependencies:
pip install -r requirements.txt # or conda env create -f environment.yml
Usage
DataTrade Class
The main class for processing trade data is DataTrade. You can initialize it with a SQLite database connection string and then use its methods to insert and process data.
from src.jp_imports.data_process import DataTrade
# Initialize DataTrade
data_trade = DataTrade("sqlite:///path/to/database.sqlite", dev=True)
# Insert data
data_trade.insert_int_jp("path/to/jp_data_sample.parquet", "path/to/code_agr.json")
data_trade.insert_int_org("path/to/org_data_sample.parquet")
# Process data
result_df = data_trade.process_int_jp("yearly", "total", True).to_polars()
However, you can call the DataTrade class directly and will do all the insert and data download steps for you. Example:
from src.jp_imports.data_process import DataTrade
data_trade = DataTrade()
data_trade.process_int_jp("yearly", "total", True)
# or
data_trade.process_int_org("yearly", "total", True)
Running Tests
To run the unit tests, use pytest:
pytest
This will execute all tests defined in the tests directory and report the results.
Directory Structure
datatrade-processing/
├── src/
│ └── jp_imports/
│ |── data_process.py
| └── data_pull.py
├── test/
│ └── test_inserts/
│ ├── jp_data_sample.parquet
│ ├── org_data_sample.parquet
│ └── jp_results_yearly_total_True.parquet
├── tests/
│ └── test_data_trade.py
└── requirements.txt
License
This project is licensed under the GPL V3 License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
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.1.0.tar.gz.
File metadata
- Download URL: jp_imports-1.1.0.tar.gz
- Upload date:
- Size: 122.5 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":"Debian GNU/Linux","version":"12","id":"bookworm","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 |
fb5dbdab4d782fa9d3ab52ae8d9ad89dc34e12adbdad581c7a1d7480c26f2951
|
|
| MD5 |
48750d2324b6bcaf7ae1c04cf176f02c
|
|
| BLAKE2b-256 |
b80ec4a0b63e0d442722af687ff97492819b586d4f3bec013563d2760d2e8e60
|
File details
Details for the file jp_imports-1.1.0-py3-none-any.whl.
File metadata
- Download URL: jp_imports-1.1.0-py3-none-any.whl
- Upload date:
- Size: 25.2 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":"Debian GNU/Linux","version":"12","id":"bookworm","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 |
c02d09a7d33bc839f4ed09519fe2130ac250c9f5aec6f27ab7747eb2ed8122cc
|
|
| MD5 |
6d611acc8e53e6d443a4d1df5c8dfae1
|
|
| BLAKE2b-256 |
cf6b93ffbd5f3ef9048167a52210480c0f903970ed4e4257852e822cc792a730
|