Skip to main content

Definitely typed. Type any object to any type as you wish.

Project description

definitely

Typing tricks that make your type checker a little more quiet.

Key features:

  • definitely – Type everything as you wish.
  • asyncily – Run a function asynchronously.
  • asyncily_iterate – Iterate through an iterator asynchronously.
  • reversely – Reverse a dictionary.
pip install definitely-typed

I should all be responsible about this, admittedly. Sorry guys.

Methods

They just exist!

def definitely

Definitely typed.

person = "Charles"

# Transforms `person` into any type you desire
assert definitely(person, int)

reveal_type(person)
#           ^^^^^^
# runtime:     str
# typecheck:   int

The runtime type WILL NOT change, yet when TYPE_CHECKING, the variable acts just like the desired type (in this case, int).

def asyncily

Asynchronously run a function.

# You can use this as a decorator like so:
@asyncily
def buy_stuff(item: str):
    print("dad is going out!")
    time.sleep(2 << 40)
    print("came back with the %s!" % item)

await buy_stuff("milk")

# Or, you can use this as a "async function factory" like so:
def make(name: str):
    return f"Made product: {name!r}"

amake = asyncily(make)
await amake("milk")

def asyncily_iterate

Asynchronously iterate through an iterator.

def get_resources():
    yield from ["banana", "guava", "apple"]

async for resource in asyncily_iterate(get_resources()):
    print("-", resource)

# Output:
# - banana
# - guava
# - apple

def reversely

Reverse a dictionary.

metadata = {"password": 1234, "total_users": 100_000}
reversed_metadata = reversely(metadata)

assert reversed_metadata == {1234: "password", 100_000: "users"}

reveal_type(reversed_metadata)
#           ^^^^^^^^^^^^^^^^^
# runtime:     dict[int, str]
# typecheck:   dict[str, int]

(c) 2024 AWeirdDev, and other silly people

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

definitely_typed-0.2.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file definitely_typed-0.2.tar.gz.

File metadata

  • Download URL: definitely_typed-0.2.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for definitely_typed-0.2.tar.gz
Algorithm Hash digest
SHA256 a6970ff8ee56827119f4e50aa3891196c6a4f3f7a96fc6540faa5586432af21e
MD5 da8287f4ad71c03af62a500cd5584ad4
BLAKE2b-256 6b8e6316b08fbc2b034a1dd2ceabad77eae91224973f49c57b6e3e1e06079992

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