skip to navigation
skip to content

Not Logged In

within 0.2.0

A collection of context managers.

Latest Version: 0.2.2

within is a collection of context managers designed to make everyday tasks simpler and safer to perform.

Instalation

within is in PyPI, so it can be installed directly using:

$ pip install within

Usage

Shell

The working_directory context manager allows temporary changes to the current working directory. Within the with statement, the path will be set to the supplied working directory. As soon as the context is left (even in case or errors) the working directory is restored. These context managers can be nested as necessary:

from within.shell import working_directory

...

with working_directory("my/file/path"):
    assert os.getcwd() == "my/file/path"

The temporary_directory context manager allows for the creation of temporary directories that only exist for the lifetime of the context manager. On close (normal, or with an Exception), the directory will be emptied then deleted. Exceptions will not be captured. The string path to the directory is returned on instantiation:

from within.shell import temporary_directory

...

with temporary_directory() as tempdir:
    assert os.path.isdir(tempdir)

    directory = tempdir

assert not os.path.isdir(directory)

For extra style points, why not combine the two context managers:

from within.shell import temporary_directory, working_directory

...

with working_directory(temporary_directory()) as tempdir:
    # do stuff

Database

The manage context manager manages database connections, ensuring that connections get closed:

from within.db import manage

...

with manage(sqlite3.connect(database)) as cursor:
    cursor.execute('SELECT * from table_name;')

Manage also provides an automatic way to commit changes on close:

from within.db import manage

...

with manage(sqlite3.connect(database), commit_on_close=True) as cursor:
    cursor.execute('INSERT into table_name (column) value ?;', (value,))

Development

Active development occurs on Github. Pull and feature requests are welcome

Testing

Testing is done under nose for python 2.7 and 3.4 and done by running the nose2.sh and nose3.sh scripts. Accepted code should have 100% coverage, and, unless absolutely necessary, should pass pep8 standards and score 10.0 on pylint (where possible, even tests should attain this).

License

within is released under an MIT license.

 
File Type Py Version Uploaded on Size
within-0.2.0.macosx-10.9-x86_64.exe (md5) MS Windows installer any 2014-06-29 65KB
within-0.2.0.tar.gz (md5) Source 2014-06-29 3KB
  • Downloads (All Versions):
  • 16 downloads in the last day
  • 131 downloads in the last week
  • 501 downloads in the last month