Python type converter
Project description
TypePigeon
TypePigeon is a Python type converter focused on converting values between various Python data types.
pip install typepigeon
Features
- convert values directly from one Python type to another with
convert_value()
- convert values to JSON format with
convert_to_json()
- convert generic aliases (
List[str]
) to simple collection types ([str]
) withguard_generic_alias()
Usage
With TypePigeon, you can convert simple values from one type to another:
convert_value()
import typepigeon
typepigeon.convert_value(0.55, str)
'0.55'
typepigeon.convert_value(1, float)
1.0
typepigeon.convert_value([1], str)
'[1]'
Additionally, you can also cast values into a collection:
import typepigeon
typepigeon.convert_value([1, 2.0, '3'], [int])
[1, 2, 3]
typepigeon.convert_value('[1, 2, 3]', (int, str, float))
[1, '2', 3.0]
typepigeon.convert_value({'a': 2.5, 'b': 4, 3: '18'}, {str: float})
{'a': 2.5, 'b': 4.0, '3': 18.0}
Some commonly-used classes such as datetime
and CRS
are also supported:
from datetime import datetime, timedelta
from pyproj import CRS
import typepigeon
typepigeon.convert_value(datetime(2021, 3, 26), str)
'2021-03-26 00:00:00'
typepigeon.convert_value('20210326', datetime)
datetime(2021, 3, 26)
typepigeon.convert_value('01:13:20:00', timedelta)
timedelta(days=1, hours=13, minutes=20, seconds=0)
typepigeon.convert_value(timedelta(hours=1), str)
'01:00:00.0'
typepigeon.convert_value(timedelta(hours=1), int)
3600
typepigeon.convert_value(CRS.from_epsg(4326), int)
4326
typepigeon.convert_value(CRS.from_epsg(4326), str)
'GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]'
typepigeon.convert_value(4326, CRS)
CRS.from_epsg(4326)
convert_to_json()
from datetime import datetime
import typepigeon
typepigeon.convert_to_json(5)
5
typepigeon.convert_to_json('5')
'5'
typepigeon.convert_to_json(datetime(2021, 3, 26))
'2021-03-26 00:00:00'
typepigeon.convert_to_json([5, '6', {3: datetime(2021, 3, 27)}])
[5, '6', {3: '2021-03-27 00:00:00'}]
typepigeon.convert_to_json({'test': [5, '6', {3: datetime(2021, 3, 27)}]})
{'test': [5, '6', {3: '2021-03-27 00:00:00'}]}
guard_generic_alias()
from typing import Dict, List, Tuple
import typepigeon
typepigeon.guard_generic_alias(List[str])
[str]
typepigeon.guard_generic_alias(Dict[str, float])
{str: float}
typepigeon.guard_generic_alias({str: (Dict[int, str], str)})
{str: ({int: str}, str)}
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
typepigeon-1.0.14.tar.gz
(18.6 kB
view details)
Built Distribution
File details
Details for the file typepigeon-1.0.14.tar.gz
.
File metadata
- Download URL: typepigeon-1.0.14.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.8 CPython/3.8.10 Linux/5.13.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8385dfee5a6f4dccebfe1355f40569c10233a57948b3463234b46cf5c792f021 |
|
MD5 | 228cbd2e124a8e4b29bb97da97fc39f5 |
|
BLAKE2b-256 | c1a1f275b351d69f7b6e53c94d8ad11ffe0f85a77275e2e392cbe0a97c5ef60c |
File details
Details for the file typepigeon-1.0.14-py3-none-any.whl
.
File metadata
- Download URL: typepigeon-1.0.14-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.8 CPython/3.8.10 Linux/5.13.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12d5e2df7a7a39943bf26a3dc9662183dd38a5a76c29ccbde5a0f8a31a9449a3 |
|
MD5 | cb62138980831ee9f3ec091bde072c57 |
|
BLAKE2b-256 | 46ce1cb6c8c335ae221c577129856e56431107bba4448a879afa3bfc66636f12 |