Utility functions and tools for data processing and analysis
Project description
Orama Utils
A collection of utility functions for data processing and feature engineering.
Features
- Date feature generation: Add time-based features to your DataFrame
- Holiday feature generation: Add holiday information based on country and region
- Weather feature generation: (Coming soon)
Installation
You can install the package using pip:
pip install orama-utils
For development installation:
git clone https://github.com/Orama-Solutions/utils.git
cd utils
pip install -e .[dev]
Usage
Date Features
Add date-related features to your DataFrame:
import pandas as pd
from orama_utils import add_date_features
# Create your DataFrame
df = pd.DataFrame({
'date': ['2023-01-01', '2023-12-25'],
'value': [100, 200]
})
# Add all available date features
result = add_date_features(df, date_column='date')
# Add only specific features
selected_features = ['year', 'month', 'week_of_month', 'is_monday', 'is_weekend', 'season']
result = add_date_features(df, date_column='date', features=selected_features)
Available Date Features
- Basic Components:
year,month,day,week_of_month,week_of_year,quarter - Day of Week Flags:
is_monday,is_tuesday,is_wednesday,is_thursday,is_friday,is_saturday,is_sunday,is_weekend - Calendar Flags:
is_month_start,is_month_end,is_quarter_start,is_quarter_end,is_year_start,is_year_end - Season:
season(1=Winter, 2=Spring, 3=Summer, 4=Fall for Northern Hemisphere)
Holiday Features
Add holiday-related features to your DataFrame:
import pandas as pd
from orama_utils import add_holiday_features
# Create your DataFrame
df = pd.DataFrame({
'date': ['2023-01-01', '2023-12-25'],
'country': ['ES', 'ES'],
'county': ['ES-MD', 'ES-CT']
})
# Add holiday features with default threshold (3 counties)
result = add_holiday_features(df)
# With custom county threshold
result = add_holiday_features(df, county_threshold=5)
# With custom column names
result = add_holiday_features(
df,
date_column='date',
country_column='country_code',
county_column='region_code'
)
Available Holiday Features
The function adds the following columns:
is_public_holiday: True for national holidaysis_local_holiday: True for county-specific holidaysmany_counties_holiday: True when multiple counties celebrate the holiday (more than the specified threshold)is_day_before_holiday: True if the next day is a public or local holidayis_day_after_holiday: True if the previous day is a public or local holiday
Supported Countries
Currently supported countries:
ES: Spain (with county-level holiday information)IT: Italy (basic support, county-level information coming soon)
Development
Running Tests
python -m pytest tests/
Updating the Package Version
When releasing a new version of the package, you need to update the version number in three places:
-
In
pyproject.toml:[project] name = "orama-utils" version = "0.1.1" # Update this
-
In
setup.py:setup( name="orama-utils", version="0.1.1", # Update this # ... )
-
In
orama_utils/__init__.py:__version__ = '0.1.1' # Update this
Make sure to update all three files with the same version number to avoid build inconsistencies.
Building the Package
To build the package:
Windows:
# Clean previous builds
Remove-Item -Path dist\* -Force -ErrorAction SilentlyContinue
Remove-Item -Path *.egg-info -Recurse -Force -ErrorAction SilentlyContinue
# Build new package
python -m build
macOS/Linux:
# Clean previous builds
rm -rf dist/* *.egg-info/
# Build new package
python -m build
The build output will be in the dist/ directory:
orama_utils-x.y.z-py3-none-any.whl(wheel)orama_utils-x.y.z.tar.gz(source distribution)
Publishing to PyPI
First, ensure you have configured your PyPI credentials in ~/.pypirc or as environment variables.
Windows/macOS/Linux:
# Upload to PyPI
python -m twine upload dist/*
For test uploads, use TestPyPI:
python -m twine upload --repository testpypi dist/*
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT 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 orama_utils-0.1.3.tar.gz.
File metadata
- Download URL: orama_utils-0.1.3.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
674d330968fe9cfd36c0c79a87553ad9ef23cb50ff13bff6d9c03a50fc671116
|
|
| MD5 |
dbfe982c65048035edcdba8c56b4e000
|
|
| BLAKE2b-256 |
93b4c48be41a7ecb015c67cc4a1ceb0f6bfbe88c2a55942ffac4534f3976ca68
|
File details
Details for the file orama_utils-0.1.3-py3-none-any.whl.
File metadata
- Download URL: orama_utils-0.1.3-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc6e0b4488c08f1c0fc8858c6347b5769cf8ce7fea8ff2a9b487d13b7db4d56b
|
|
| MD5 |
6f07740aff454709118c15042dfa4edc
|
|
| BLAKE2b-256 |
d4aeb35224de42fc409bd682ac9d835537116110fd45e5d21f828b21f19726bb
|