Utilities for parsing Japanese numeric ranges.
Project description
jp-range
jp-range is a small library for parsing Japanese numeric range expressions. It returns an Interval object implemented with Pydantic or None when parsing fails.
Installation
pip install jp-range
# or install from GitHub
pip install git+https://github.com/first-automation/jp-range.git
Python 3.12 or later is required.
Features
- Normalizes full width numbers and common punctuation
- Supports inclusive and exclusive bounds (
以上,未満, etc.) - Parses connectors such as
〜,-andから - Handles single-sided bounds, approximate expressions (
90前後) andA±dnotation - Integrates with pandas via
apply_parseforSeriesandDataFrame
Usage
Basic parsing
from jp_range import parse
interval = parse("40以上50未満")
print(interval) # [40, 50)
print(interval.contains(45)) # True
Pandas integration
from pandas import Series
from jp_range import apply_parse
# Convert Series of textual ranges to pandas.Interval
s = Series(["20~30", "50超", "未満100"])
result = apply_parse(s)
# result:
# 0 [20.0, 30.0]
# 1 (50.0, inf)
# 2 (-inf, 100.0)
# dtype: object
# Expand columns into numeric min/max
df = apply_parse(s.to_frame(name="range"), split_numeric=True)
# df:
# range_max range_min
# 0 30.0 20.0
# 1 NaN 50.0
# 2 100.0 NaN
Supported expressions
"20から30"– inclusive 20 to 30"20〜30"– inclusive 20 to 30 using a tilde connector"30以上40以下"– inclusive 30 to 40"40以上50未満"– 40 to under 50"70超90以下"– greater than 70 and up to 90"50より上"– greater than 50"60より下"– less than 60"90前後"– roughly around 90 (5% margin)"(2,3]"– standard interval notation
parse_jp_range returns None if the expression cannot be parsed.
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
jp_range-0.4.2.tar.gz
(21.7 kB
view details)
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_range-0.4.2.tar.gz.
File metadata
- Download URL: jp_range-0.4.2.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71c7c81918873bd2c5302a3c2fe20319cd7eaacd58ffd303ea029b5551f88de8
|
|
| MD5 |
b2d51a34912412635cf585f48a8e7abc
|
|
| BLAKE2b-256 |
4af4ae7bddbb2950671424fc66fd41626f7ecf2f4196133fd19c46cb8b2481cc
|
File details
Details for the file jp_range-0.4.2-py3-none-any.whl.
File metadata
- Download URL: jp_range-0.4.2-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed1d5a42cd4e88d3691eeb89fb283ba11ac25be86815562cb1836f9a819e00e2
|
|
| MD5 |
a321459afbd0267921c1bc3b99aef0e3
|
|
| BLAKE2b-256 |
23cba988797bf06580f202447cb983dbb6e2992a17f584e7d7f62888254cda7b
|