Skip to main content

a small package for enforcing package requirements at the class- or function-level

Project description

version number: “0.1.0”
author: Max Lee

Build Status Coverage Status

Overview

force-dependencies is a small package for enforcing package requirements at the class- or function-level.

Simply use:

from force_deps import requires, requires_any, requires_all

@requires("sqlalchemy")
class SQLHandler(object):
    def __init__(self):
        pass

db = SQLHandler()
Traceback (most recent call last):
    ...
ImportError: You must import `sqlalchemy` in order to run `SQLHandler`

to require users to have a package installed in order to use your class or function,

@requires_any(["sqlalchemy", "sqlite3"])
...

to require that users have at least one of a number of packages installed, or

@requires_all(["sqlalchemy", "pandas"])
...

to require that users have all of a number of packages installed in order to use a class or function.

Finally, you can combine the decorators together in pretty much any way you please:

@requires_any(["sqlalchemy", "sqlite3"])
@requires("pandas")
...

Installation / Usage

This library requires Python>=3.5. You should be able to extend its compatibility by removing the dependencies
on Python’s typing libraries.

To install use pip:

$ pip install force_deps

Or clone the repo:

$ git clone https://github.com/maxblee/force_deps.git
$ python setup.py install

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

force_deps-0.1.0.tar.gz (3.5 kB view hashes)

Uploaded source

Built Distribution

force_deps-0.1.0-py2.py3-none-any.whl (4.0 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page