Metadata-Version: 2.5
Name: typemore
Version: 0.1.1
Summary: A collection of custom Python data types for specialized behavior.
Project-URL: Homepage, https://github.com/MCmaoshen/typemore
Project-URL: Repository, https://github.com/MCmaoshen/typemore
Project-URL: Issues, https://github.com/MCmaoshen/typemore/issues
Project-URL: Changelog, https://github.com/MCmaoshen/typemore/blob/main/CHANGELOG.md
Author: MCmaoshen
Maintainer: MCmaoshen
License-Expression: MIT
License-File: LICENSE
Keywords: Auto,ChainNode,Debug,DisplayProxy,InfiniteIterator,Interval,LenLimit,LenLimitError,MemLimit,MemLimitError,Point2D,Point3D,PointAnyD,Range,ReadOnlyBox,StrictFloat,TimeLimit,TimeLimitError,more,type,typemore
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: pympler>=1.0
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Description-Content-Type: text/markdown

# typemore

A collection of custom Python data types for specialized behavior.

## Install

```bash
pip install typemore
```

## Usage

```python
from typemore import StrictFloat, Range, Interval

StrictFloat(0.1) + StrictFloat(0.2)   # StrictFloat:0.3

3 in Range(1, 5)                      # True

Interval(True, 1, 5, False)           # [1, 5)
```

## Types

- `StrictFloat` — a float subclass that does arithmetic with Decimal
- `Range` — a closed numeric interval
- `Interval` — an interval with open or closed endpoints
- `Point2D` / `Point3D` / `PointAnyD` — points with element-wise operations
- `Auto` — a wrapper that forwards operations and supports most type-conversion functions without raising
- `Debug` — a debugging wrapper that prints what happens
- `ChainNode` — a linked-list node
- `InfiniteIterator` — an integer range iterator that can run forever
- `ReadOnlyBox` — a read-only wrapper
- `DisplayProxy` — a proxy that separates display behavior from real behavior
- `LenLimit` — enforces a maximum length on a container
- `TimeLimit` — expires after a given amount of time
- `MemLimit` — enforces a maximum memory size on a container

## License

MIT