Skip to main content

Declerative resource management library for python

Project description

PyRAII

https://img.shields.io/travis/sasha-tkachev/pyraii.svg https://codecov.io/gh/sasha-tkachev/pyraii/branch/master/graph/badge.svg

Declerative resource management library for python

Examples

Closing Resources only on exception:

from pyraii.context import closing_on_exception

def wait_for_authenticated_client_connection():
    my_socket = wait_for_client_connection(*args)
    with closing_on_exception(my_socket):
        username = authenticate_connection(my_socket)
        return my_socket, username

Nothrow closing:

from pyraii.context import closing_nothrow

# If the file fails to close no exception will be thrown
with closing_nothrow(my_file):
    my_file.write(data)

Resource owning classes:

from pyraii.resource_owner import ResourceOwner

class Server(ResourceOwner):
    def __init__():
        self.socket_a = get_socket()
        self.socket_b = get_other_socket()
        self._log_file = open_log_file()
        self._data = "asdasd"
my_server = Server()
my_server.close() # will close all sockets and files which are members of the server

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

  • Free software: MIT license

History

1.0.0 (2019-10-18)

  • First release on PyPI.

1.0.1 (2019-10-18)

  • Add coverage

  • Fix documentation

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

pyraii-1.0.1.tar.gz (11.8 kB view hashes)

Uploaded Source

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