Skip to main content

No project description provided

Project description

Build Status

גamla is a functional programming library for python.

pip install gamla

Debugging anonymous compositions

gamla.compose(x, y, z) produces a new function which doesn't have a proper name. If x raises an exception, it is sometimes hard to figure out where this occurred. To overcome this, set the env variable GAMLA_DEBUG_MODE (to anything). This will cause the composition functions to give a name for the anonymous composition. The name would be a concatenation of its constituents' names, e.g. x_of_y_of_z. The name is given in a way that persists to the stack exceptions.

This is turned on only by flag because it incurs significant overhead so things might get slow.

Mixing asynchronous and synchronous code

Most functions in this lib will work seamlessly with async and regular functions, and allow the developer to focus on the logic instead of deciding where to place an await.

For example:

import asyncio

import gamla


def increment(i):
    return i + 1


async def increment_async(i):
    asyncio.sleep(1)
    return i + 1


async def run():
    mixed_composition = gamla.compose_left(increment, increment_async, increment)
    return await mixed_composition(0)  # returns 3!

Releasing a new version

  1. Create a pypi account.
  2. Download twine and give it your pypi credentials.
  3. Get pypi permissions for the project from its owner.
  4. python setup.py sdist bdist_wheel; twine upload dist/*; rm -rf dist;

Project details


Release history Release notifications | RSS feed

This version

37

Download files

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

Source Distribution

gamla-37.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

gamla-37-py3-none-any.whl (161.3 kB view details)

Uploaded Python 3

File details

Details for the file gamla-37.tar.gz.

File metadata

  • Download URL: gamla-37.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.4.2 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.6

File hashes

Hashes for gamla-37.tar.gz
Algorithm Hash digest
SHA256 781a7bf6d6840e1b0b44f4a16df96075744b958ad2cb53e5b7c52fb07f8d241a
MD5 14febc6a34246b5d149f99397fb8f618
BLAKE2b-256 6b86812a7f2f6b4827c93e9b59ceed0e8c363b82b46a55b42be94464826c4d53

See more details on using hashes here.

File details

Details for the file gamla-37-py3-none-any.whl.

File metadata

  • Download URL: gamla-37-py3-none-any.whl
  • Upload date:
  • Size: 161.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.4.2 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.6

File hashes

Hashes for gamla-37-py3-none-any.whl
Algorithm Hash digest
SHA256 e36da3f5491f7625e24d0f2b3d1fa5ce869848ad556e014ca45520c962c6adfc
MD5 bf33df4901d8f10492aebade9b928a03
BLAKE2b-256 4a1836853303a7b3d2581625cc98953ef0e1b3595087c294d4b8eccaad515f47

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