Skip to main content

Enhanced function parameters

Project description

param

Enhanced function parameters

Installation

pip install git+https://github.com/tombulled/param.git@main

Usage

Functions

The @params annotation works seamlessly with functions:

from param import Param, params

@params
def get(url: str, params: dict = Param(default_factory=dict)):
    print("GET", url, params)
>>> get("https://httpbin.com/get")
GET https://httpbin.com/get {}

Classes

The @params annotation also works seamlessly with classes. Importantly, the @params annotation should be specified before @staticmethod or @classmethod.

from param import Param, params

class MyClass:
    @params
    def get(self, url: str, params: dict = Param(default_factory=dict)):
        print("GET", url, params)

    @classmethod
    @params
    def post(cls, url: str, params: dict = Param(default_factory=dict)):
        print("POST", url, params)

    @staticmethod
    @params
    def put(url: str, params: dict = Param(default_factory=dict)):
        print("PUT", url, params)
>>> obj = MyClass()
>>>
>>> obj.get("https://httpbin.com/get")
GET https://httpbin.com/get {}
>>>
>>> obj.post("https://httpbin.com/post")
POST https://httpbin.com/post {}
>>> MyClass.post("https://httpbin.com/post")
POST https://httpbin.com/post {}
>>>
>>> obj.put("https://httpbin.com/put")
PUT https://httpbin.com/put {}
>>> MyClass.put("https://httpbin.com/put")
PUT https://httpbin.com/put {}

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

tombulled_param-0.1.14.tar.gz (7.8 kB view hashes)

Uploaded Source

Built Distribution

tombulled_param-0.1.14-py3-none-any.whl (10.7 kB view hashes)

Uploaded Python 3

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