# Universal Timeseries Transformer
A Python package that provides a universal interface for transforming and manipulating time series data. This package offers flexible and efficient tools for handling various types of time series data transformations.
## Version Updates
### v0.3.0 (2025-07-03)
- Standardized timestamp format aliases across the package
- Updated FORMAT_ALIASES to use 'timestamp' instead of 'unix'
- Improved documentation for transform_timeseries_index function
- Completed timestamp conversion functionality with consistent naming
### v0.2.10 (2025-07-03)
- Fixed compatibility issues in PricesMatrix with TimeseriesMatrix changes
- Updated constructor parameter handling for better inheritance
### v0.2.9 (2025-07-03)
- Standardized property names in TimeseriesMatrix class
- Added 'dt' property as an alias for 'datetime'
- Added 'timestamp' property as the standard name for 'unixtime'
- Simplified TimeseriesMatrix by removing reference-based methods
- Improved index naming in transformed dataframes
### v0.2.8 (2025-06-23)
- Implemented cached_property decorator for lazy loading attributes
- Added type hints for better code readability and IDE support
- Improved documentation with class docstrings
- Renamed historical_dates to historical_date_pairs for consistency
- Added MANIFEST.in file for better package distribution
### v0.2.7 (2025-06-17)
- Updated string_date_controller dependency to version 0.2.7
- Modified historical_dates property to use get_all_data_historical_date_pairs function
- Added yearly_date_pairs property to PricesMatrix class
### v0.2.6 (2025-06-15)
- Renamed functions in timeseries_splitter module for better clarity and consistency
- Changed 'split_timeseries_to_two_columned_timeseries' to 'split_timeseries_to_pair_timeseries'
- Updated related partial functions with the new naming convention
### v0.2.5 (2025-06-15)
- Added timeseries_splitter module for splitting timeseries data into two-columned format
- Fixed incomplete function in timeseries_splitter module
### v0.2.4 (2025-06-08)
- Modified return calculation functions to display returns in percentage format (multiplied by 100)
- Updated all return-related functions in timeseries_application.py
### v0.2.3 (2025-06-04)
- Added new properties to PricesMatrix class: ytd_date_pairs, date_inception, date_end
- Updated string_date_controller dependency to version 0.2.3 or higher
### v0.2.2 (2025-06-04)
- Enhanced exception handling in PricesMatrix class
- Added set_date_ref method for better date reference management
### v0.2.1 (2025-06-03)
- Added monthly_date_pairs property to PricesMatrix class for convenient monthly date analysis
- Updated string_date_controller dependency to version 0.2.1 or higher
### v0.2.0 (2025-06-03)
- Major version update as the module reaches maturity
- Added date_ref property to PricesMatrix class for improved date reference handling
- All features from previous versions are now stable and production-ready
### v0.1.10 (2025-06-03)
- Fixed bug in PricesMatrix class to use correct string_date_controller function
- Updated to use get_all_data_historical_dates function from string_date_controller 0.2.0
### v0.1.9 (2025-06-02)
- Fixed bug in PricesMatrix class related to historical dates calculation
- Updated to use correct string_date_controller functions
### v0.1.8 (2025-06-02)
- Added PricesMatrix class extending TimeseriesMatrix for price data handling
- Enhanced matrix representation capabilities with historical dates support
### v0.1.7 (2025-06-02)
- Improved TimeseriesMatrix class with optimized property handling
- Updated string_date_controller dependency to version 0.2.0 or higher
- Removed unused date_calculus module
### v0.1.6 (2025-06-01)
- Added timeseries_slicer module with date-based and index-based slicing functions
- Added timeseries_extender module with enhanced date extension functionality
- Improved .gitignore to exclude Jupyter notebook files
### v0.1.5 (2025-05-30)
- Added TimeseriesMatrix class for matrix representation of time series data
- Enhanced data access with row, column, and component selection methods
- Added format conversion methods (datetime, unixtime, string)
### v0.1.4 (2025-05-28)
- Added verbose option to control log output
- Enhanced timeseries extension functionality
- Improved code readability and documentation
### v0.1.3 (2025-05-19)
- Added new timeseries_application module with financial calculations
- Added functions for returns and cumulative returns calculation
### v0.1.2 (2025-05-19)
- Improved stability and performance optimization
- Enhanced type checking functionality
- Documentation improvements
## Features
- Index Transformer
- Flexible time index manipulation
- Date range operations
- Frequency conversion
- DataFrame Transformer
- Universal interface for time series operations
- Data alignment and merging
- Efficient data transformation
- Timeseries Basis
- Core functionality for time series manipulation
- Common time series operations
## Installation
You can install the package using pip:
```bash
pip install universal-timeseries-transformer
```
## Requirements
- Python >= 3.8
- Dependencies:
- pandas
- numpy
## Usage Examples
### 1. Basic Time Series Transformation
```python
from universal_timeseries_transformer import IndexTransformer, DataFrameTransformer
import pandas as pd
# Create sample time series data
df = pd.DataFrame({'value': [1, 2, 3, 4]},
index=pd.date_range('2025-01-01', periods=4))
# Transform time series index
index_transformer = IndexTransformer(df)
weekly_data = index_transformer.to_weekly()
# Apply data transformations
df_transformer = DataFrameTransformer(weekly_data)
result = df_transformer.rolling_mean(window=2)
```
### 2. Advanced Time Series Operations
```python
from universal_timeseries_transformer import TimeseriesBasis
# Initialize time series basis
ts_basis = TimeseriesBasis(df)
# Perform complex transformations
transformed_data = ts_basis.transform()
```
)
# Find funds with borrowings
funds_with_borrowings = search_funds_having_borrowings(date_ref='2025-02-21')
# Get borrowing details
fund_code = '100075'
borrowing_details = get_borriwings_by_fund(fund_code=fund_code, date_ref='2025-02-21')
```
### 3. Check Repo Agreements
```python
from financial_dataset_preprocessor import (
search_funds_having_repos,
get_repos_by_fund
)
# Find funds with repos
funds_with_repos = search_funds_having_repos(date_ref='2025-02-21')
# Get repo details for a specific fund
fund_code = '100075'
repo_details = get_repos_by_fund(fund_code=fund_code, date_ref='2025-02-21')
```
## Development
To set up the development environment:
1. Clone the repository
2. Create a virtual environment
3. Install dependencies:
```bash
pip install -r requirements.txt
```
## License
This project is licensed under a proprietary license. All rights reserved.
### Terms of Use
- Source code viewing and forking is allowed
- Commercial use is prohibited without explicit permission
- Redistribution or modification of the code is prohibited
- Academic and research use is allowed with proper attribution
## Author
**June Young Park**
AI Management Development Team Lead & Quant Strategist at LIFE Asset Management
LIFE Asset Management is a hedge fund management firm that integrates value investing and engagement strategies with quantitative approaches and financial technology, headquartered in Seoul, South Korea.
### Contact
- Email: juneyoungpaak@gmail.com
- Location: TWO IFC, Yeouido, Seoul
Raw data
{
"_id": null,
"home_page": "https://github.com/nailen1/universal_timeseries_transformer",
"name": "universal-timeseries-transformer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "June Young Park",
"author_email": "juneyoungpaak@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/08/5a/d19892245eb223b5eae525318106393dfb939348a200007d79b52f2a03c0/universal_timeseries_transformer-0.3.2.tar.gz",
"platform": null,
"description": "# Universal Timeseries Transformer\n\nA Python package that provides a universal interface for transforming and manipulating time series data. This package offers flexible and efficient tools for handling various types of time series data transformations.\n\n## Version Updates\n\n### v0.3.0 (2025-07-03)\n- Standardized timestamp format aliases across the package\n- Updated FORMAT_ALIASES to use 'timestamp' instead of 'unix'\n- Improved documentation for transform_timeseries_index function\n- Completed timestamp conversion functionality with consistent naming\n\n### v0.2.10 (2025-07-03)\n- Fixed compatibility issues in PricesMatrix with TimeseriesMatrix changes\n- Updated constructor parameter handling for better inheritance\n\n### v0.2.9 (2025-07-03)\n- Standardized property names in TimeseriesMatrix class\n- Added 'dt' property as an alias for 'datetime'\n- Added 'timestamp' property as the standard name for 'unixtime'\n- Simplified TimeseriesMatrix by removing reference-based methods\n- Improved index naming in transformed dataframes\n\n### v0.2.8 (2025-06-23)\n- Implemented cached_property decorator for lazy loading attributes\n- Added type hints for better code readability and IDE support\n- Improved documentation with class docstrings\n- Renamed historical_dates to historical_date_pairs for consistency\n- Added MANIFEST.in file for better package distribution\n\n### v0.2.7 (2025-06-17)\n- Updated string_date_controller dependency to version 0.2.7\n- Modified historical_dates property to use get_all_data_historical_date_pairs function\n- Added yearly_date_pairs property to PricesMatrix class\n\n### v0.2.6 (2025-06-15)\n- Renamed functions in timeseries_splitter module for better clarity and consistency\n- Changed 'split_timeseries_to_two_columned_timeseries' to 'split_timeseries_to_pair_timeseries'\n- Updated related partial functions with the new naming convention\n\n### v0.2.5 (2025-06-15)\n- Added timeseries_splitter module for splitting timeseries data into two-columned format\n- Fixed incomplete function in timeseries_splitter module\n\n### v0.2.4 (2025-06-08)\n- Modified return calculation functions to display returns in percentage format (multiplied by 100)\n- Updated all return-related functions in timeseries_application.py\n\n### v0.2.3 (2025-06-04)\n- Added new properties to PricesMatrix class: ytd_date_pairs, date_inception, date_end\n- Updated string_date_controller dependency to version 0.2.3 or higher\n\n### v0.2.2 (2025-06-04)\n- Enhanced exception handling in PricesMatrix class\n- Added set_date_ref method for better date reference management\n\n### v0.2.1 (2025-06-03)\n- Added monthly_date_pairs property to PricesMatrix class for convenient monthly date analysis\n- Updated string_date_controller dependency to version 0.2.1 or higher\n\n### v0.2.0 (2025-06-03)\n- Major version update as the module reaches maturity\n- Added date_ref property to PricesMatrix class for improved date reference handling\n- All features from previous versions are now stable and production-ready\n\n### v0.1.10 (2025-06-03)\n- Fixed bug in PricesMatrix class to use correct string_date_controller function\n- Updated to use get_all_data_historical_dates function from string_date_controller 0.2.0\n\n### v0.1.9 (2025-06-02)\n- Fixed bug in PricesMatrix class related to historical dates calculation\n- Updated to use correct string_date_controller functions\n\n### v0.1.8 (2025-06-02)\n- Added PricesMatrix class extending TimeseriesMatrix for price data handling\n- Enhanced matrix representation capabilities with historical dates support\n\n### v0.1.7 (2025-06-02)\n- Improved TimeseriesMatrix class with optimized property handling\n- Updated string_date_controller dependency to version 0.2.0 or higher\n- Removed unused date_calculus module\n\n### v0.1.6 (2025-06-01)\n- Added timeseries_slicer module with date-based and index-based slicing functions\n- Added timeseries_extender module with enhanced date extension functionality\n- Improved .gitignore to exclude Jupyter notebook files\n\n### v0.1.5 (2025-05-30)\n- Added TimeseriesMatrix class for matrix representation of time series data\n- Enhanced data access with row, column, and component selection methods\n- Added format conversion methods (datetime, unixtime, string)\n\n### v0.1.4 (2025-05-28)\n- Added verbose option to control log output\n- Enhanced timeseries extension functionality\n- Improved code readability and documentation\n\n### v0.1.3 (2025-05-19)\n- Added new timeseries_application module with financial calculations\n- Added functions for returns and cumulative returns calculation\n\n### v0.1.2 (2025-05-19)\n- Improved stability and performance optimization\n- Enhanced type checking functionality\n- Documentation improvements\n\n## Features\n\n- Index Transformer\n - Flexible time index manipulation\n - Date range operations\n - Frequency conversion\n- DataFrame Transformer\n - Universal interface for time series operations\n - Data alignment and merging\n - Efficient data transformation\n- Timeseries Basis\n - Core functionality for time series manipulation\n - Common time series operations\n\n## Installation\n\nYou can install the package using pip:\n\n```bash\npip install universal-timeseries-transformer\n```\n\n## Requirements\n\n- Python >= 3.8\n- Dependencies:\n - pandas\n - numpy\n\n## Usage Examples\n\n### 1. Basic Time Series Transformation\n\n```python\nfrom universal_timeseries_transformer import IndexTransformer, DataFrameTransformer\nimport pandas as pd\n\n# Create sample time series data\ndf = pd.DataFrame({'value': [1, 2, 3, 4]},\n index=pd.date_range('2025-01-01', periods=4))\n\n# Transform time series index\nindex_transformer = IndexTransformer(df)\nweekly_data = index_transformer.to_weekly()\n\n# Apply data transformations\ndf_transformer = DataFrameTransformer(weekly_data)\nresult = df_transformer.rolling_mean(window=2)\n```\n\n### 2. Advanced Time Series Operations\n\n```python\nfrom universal_timeseries_transformer import TimeseriesBasis\n\n# Initialize time series basis\nts_basis = TimeseriesBasis(df)\n\n# Perform complex transformations\ntransformed_data = ts_basis.transform()\n```\n)\n\n# Find funds with borrowings\nfunds_with_borrowings = search_funds_having_borrowings(date_ref='2025-02-21')\n\n# Get borrowing details\nfund_code = '100075'\nborrowing_details = get_borriwings_by_fund(fund_code=fund_code, date_ref='2025-02-21')\n```\n\n### 3. Check Repo Agreements\n\n```python\nfrom financial_dataset_preprocessor import (\n search_funds_having_repos,\n get_repos_by_fund\n)\n\n# Find funds with repos\nfunds_with_repos = search_funds_having_repos(date_ref='2025-02-21')\n\n# Get repo details for a specific fund\nfund_code = '100075'\nrepo_details = get_repos_by_fund(fund_code=fund_code, date_ref='2025-02-21')\n```\n\n## Development\n\nTo set up the development environment:\n\n1. Clone the repository\n2. Create a virtual environment\n3. Install dependencies:\n\n```bash\npip install -r requirements.txt\n```\n\n## License\n\nThis project is licensed under a proprietary license. All rights reserved.\n\n### Terms of Use\n\n- Source code viewing and forking is allowed\n- Commercial use is prohibited without explicit permission\n- Redistribution or modification of the code is prohibited\n- Academic and research use is allowed with proper attribution\n\n## Author\n\n**June Young Park** \nAI Management Development Team Lead & Quant Strategist at LIFE Asset Management\n\nLIFE Asset Management is a hedge fund management firm that integrates value investing and engagement strategies with quantitative approaches and financial technology, headquartered in Seoul, South Korea.\n\n### Contact\n\n- Email: juneyoungpaak@gmail.com\n- Location: TWO IFC, Yeouido, Seoul\n",
"bugtrack_url": null,
"license": null,
"summary": "A package for transforming and manipulating time series data with universal interfaces",
"version": "0.3.2",
"project_urls": {
"Homepage": "https://github.com/nailen1/universal_timeseries_transformer"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b4b4786039cdbf131742ce13b439cf3a8ed3879decefe7c270d865ee057ee25d",
"md5": "fee832b176fab34ac0bb91de7b88ee49",
"sha256": "d3b703a14dcb3cc41d8d2a4f84ef03f48f6c9a7d48f2d3602aa3ca7264d7ec2b"
},
"downloads": -1,
"filename": "universal_timeseries_transformer-0.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fee832b176fab34ac0bb91de7b88ee49",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 17188,
"upload_time": "2025-07-09T07:19:11",
"upload_time_iso_8601": "2025-07-09T07:19:11.951311Z",
"url": "https://files.pythonhosted.org/packages/b4/b4/786039cdbf131742ce13b439cf3a8ed3879decefe7c270d865ee057ee25d/universal_timeseries_transformer-0.3.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "085ad19892245eb223b5eae525318106393dfb939348a200007d79b52f2a03c0",
"md5": "8a6eae95cb9273e14ef9e40e2e696697",
"sha256": "3d52cf7bbcda9a918bf7c5d96fb8a508a5c2c66677caf15f75fd02cdabb04b05"
},
"downloads": -1,
"filename": "universal_timeseries_transformer-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "8a6eae95cb9273e14ef9e40e2e696697",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 15516,
"upload_time": "2025-07-09T07:19:13",
"upload_time_iso_8601": "2025-07-09T07:19:13.204591Z",
"url": "https://files.pythonhosted.org/packages/08/5a/d19892245eb223b5eae525318106393dfb939348a200007d79b52f2a03c0/universal_timeseries_transformer-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 07:19:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nailen1",
"github_project": "universal_timeseries_transformer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pandas",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "string_date_controller",
"specs": [
[
">=",
"0.2.7"
]
]
}
],
"lcname": "universal-timeseries-transformer"
}