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 details)

Uploaded Source

File details

Details for the file pyraii-1.0.1.tar.gz.

File metadata

  • Download URL: pyraii-1.0.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/28.6.1 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.12

File hashes

Hashes for pyraii-1.0.1.tar.gz
Algorithm Hash digest
SHA256 6552dac366b7d8a16986e5e32567450ec8daa35c8334348a6293ec75883850f3
MD5 bd626e45b459b9dd4bcb003b52601ed5
BLAKE2b-256 f1dc40a0571264477cb283d4217318ef3231e885f2dbcfe7f2347c6ac678ab85

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