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

35

Download files

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

Source Distribution

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

Uploaded Source

Built Distribution

gamla-35-py3-none-any.whl (112.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gamla-35.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5

File hashes

Hashes for gamla-35.tar.gz
Algorithm Hash digest
SHA256 6c4734ff7f71264c7b332349ea259488df2f6380bb9d3d901e22a3f56f0ce00e
MD5 56480a15aa34a92b9bdfd3c2d7134e9d
BLAKE2b-256 658ef4dfb563a4c17142b6ee6d8ab5f7425301d8d4aed975ac116f410183801c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gamla-35-py3-none-any.whl
  • Upload date:
  • Size: 112.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5

File hashes

Hashes for gamla-35-py3-none-any.whl
Algorithm Hash digest
SHA256 ff8b53173c1039b35b8127e2497fcf30172f1a52fcfc4da58986888110e315f5
MD5 2231f2173d6721d49ab8d7ecf3d267ad
BLAKE2b-256 3083e07f2184587879f843af4681e9fefe6f21e73a8d2a491b59b1a190ac350b

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