Skip to main content

Python type converter

Project description

TypePigeon

tests codecov build version Anaconda-Server Badge License: GPL v3 style

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 to_type()
  • convert values to JSON format with to_json()
  • convert generic aliases (List[str]) to simple collection types ([str]) with subscripted_type()

Usage

With TypePigeon, you can convert simple values from one type to another:

to_type()

import typepigeon

typepigeon.to_type(0.55, str)
'0.55'

typepigeon.to_type(1, float)
1.0

typepigeon.to_type([1], str)
'[1]'

Additionally, you can also cast values into a collection:

import typepigeon

typepigeon.to_type([1, 2.0, '3'], [int])
[1, 2, 3]

typepigeon.to_type('[1, 2, 3]', (int, str, float))
[1, '2', 3.0]

typepigeon.to_type({'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.to_type(datetime(2021, 3, 26), str)
'2021-03-26 00:00:00'

typepigeon.to_type('20210326', datetime)
datetime(2021, 3, 26)

typepigeon.to_type('01:13:20:00', timedelta)
timedelta(days=1, hours=13, minutes=20, seconds=0)

typepigeon.to_type(timedelta(hours=1), str)
'01:00:00.0'

typepigeon.to_type(timedelta(hours=1), int)
3600

typepigeon.to_type(CRS.from_epsg(4326), int)
4326

typepigeon.to_type(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.to_type(4326, CRS)
CRS.from_epsg(4326)

to_json()

from datetime import datetime

import typepigeon

typepigeon.to_json(5)
5

typepigeon.to_json('5')
'5'

typepigeon.to_json(datetime(2021, 3, 26))
'2021-03-26 00:00:00'

typepigeon.to_json([5, '6', {3: datetime(2021, 3, 27)}])
[5, '6', {3: '2021-03-27 00:00:00'}]

typepigeon.to_json({'test': [5, '6', {3: datetime(2021, 3, 27)}]})
{'test': [5, '6', {3: '2021-03-27 00:00:00'}]}

subscripted_type()

import typepigeon.types
from typing import Dict, List, Tuple

import typepigeon

typepigeon.types.subscripted_type(List[str])
[str]

typepigeon.types.subscripted_type(Dict[str, float])
{str: float}

typepigeon.types.subscripted_type({str: (Dict[int, str], str)})
{str: ({int: str}, str)}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typepigeon-2.0.4.tar.gz (40.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typepigeon-2.0.4-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file typepigeon-2.0.4.tar.gz.

File metadata

  • Download URL: typepigeon-2.0.4.tar.gz
  • Upload date:
  • Size: 40.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.26

File hashes

Hashes for typepigeon-2.0.4.tar.gz
Algorithm Hash digest
SHA256 279c08f017f7841a0a06a4d411dbee10f3940972549f6863e0ad2b331e021b95
MD5 d1f0df9c0fb00874a3a50d6b73d151a0
BLAKE2b-256 56002b15ea6cf40393dc390f4c5ca280b643dac3bbfe0b71a70d17b752d691f8

See more details on using hashes here.

File details

Details for the file typepigeon-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: typepigeon-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.26

File hashes

Hashes for typepigeon-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c14f406f4282c49ca9dc71b4dbd2afab44bef601365f254b8795ed88ee084c82
MD5 b5f0edc4e5b9c93f19eebc7f2206fa30
BLAKE2b-256 fc42a9bd774270272df4b14a2e5a9ae67eee4d2c3db2990a08b576391c4fc692

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page