Skip to main content

Fits JSON values into Python type-anotated objects

Project description

TypeFit

Read the Docs Build Status

Typing annotations make Python awesome, however it's complicated to keep your data annotated when it comes from external sources like APIs. The goal of Typefit is to help you map that external data into type-annotated native Python objects.

from typefit import api
from typing import NamedTuple, Text


class Item(NamedTuple):
    id: int
    title: Text


class HackerNews(api.SyncClient):
    BASE_URL = "https://hacker-news.firebaseio.com/v0/"

    @api.get("item/{item_id}.json")
    def get_item(self, item_id: int) -> Item:
        pass

story = HackerNews().get_item(42)
print(story.title)
# An alternative to VC: "Selling In"

This is the full example of a Hacker News API client. Its functionality is limited but in 14 lines counting white space you can build a type-safe client for Hacker News. You'll find a full example attached if you're interested.

Documentation

Documentation is there

Licence

This library is provided under the terms of the WTFPL.

If you find it useful, you can have a look at the contributors page to know who helped.

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

typefit-1.0.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

typefit-1.0.0-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file typefit-1.0.0.tar.gz.

File metadata

  • Download URL: typefit-1.0.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.10 Linux/6.8.0-41-generic

File hashes

Hashes for typefit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4300f773a83c48e8bf3911773555d50e5678d11ab7f2234e96f12263237a5a56
MD5 ad19ea6a94bd048be0fc35265304306e
BLAKE2b-256 b321ed76c10dc694b9e34ca44a24ba9012a59a652a1bccea8644f157c623ad3a

See more details on using hashes here.

File details

Details for the file typefit-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: typefit-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.10 Linux/6.8.0-41-generic

File hashes

Hashes for typefit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c21d92b83e18418ce1b786c4c88bd02b00ae890adc4e671cf6a7e524058b3df4
MD5 b1280c987b4bf92edbd89bc2225a3855
BLAKE2b-256 b3b356f9de7577e29ce044ed936ec9fcd43829f98d5435298eba2dd15ec19f3b

See more details on using hashes here.

Supported by

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