Skip to main content

Dysco provides configurable dynamic scoping behavior in Python.

Project description

Dysco

Dysco - Dynamic Scoping in Python Tweet Share on Facebook Share on Reddit Share on Hacker News

Build Status Coverage License PyPI Version

Installation | Development | Contributing

Dysco is a lightweight Python library that brings dynamic scoping capabilities to Python in a highly configurable way.

Installation

Dysco can be installed from pypy using pip or any compatible Python package manager.

# Installation with pip.
pip install dysco

# Or, installation with poetry.
poetry add dysco

Development

To install the dependencies locally, you need poetry to be installed. You can then run

# This is only required if you're not using poetry v1.0.0 or greater.
# It tells poetry to place the virtual environment in `.venv`.
poetry config settings.virtualenvs.in-project true

# Install all of the dependencies.
poetry install

to install the project dependencies.

The library is tested against Python versions 3.7 and 3.8. These are most easily installed using pyenv with the following command.

# Install the supported Python versions.
pyenv install --skip-existing 3.7.5
pyenv install --skip-existing 3.8.0

Testing, linting, and document generation can then be run via tox. The bare tox command will run everything in all environments, or you can break it down by Python version and task. For example, you could run the individual Python 3.8 tasks manually by running the following.

# Install the project dependencies in `.tox/py38/`.
tox -e py38-init

# Run black, flake8, isort, and mypy.
tox -e py38-lint

# Run the tests and generate a coverage report.
tox -e py38-test --coverage

## Build the project documentation.
tox -e py38-docs

Deployment

You first need to configure your credentials with poetry.

poetry config http-basic.pypi intoli <pypi-password>

You can then use invoke to bump the version number, commit the changes, tag the version, and deploy to pypi.

# Bumps the patch version and deploys the package.
# Valid options are major, minor, and patch.
invoke bump patch

Contributing

Contributions are welcome, but please follow these contributor guidelines outlined in CONTRIBUTING.md.

License

Exodus is licensed under a BSD 2-Clause License and is copyright Intoli, LLC.

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

dysco-0.0.8.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

dysco-0.0.8-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file dysco-0.0.8.tar.gz.

File metadata

  • Download URL: dysco-0.0.8.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.0b4 CPython/3.8.0 Linux/5.3.5-arch1-1-ARCH

File hashes

Hashes for dysco-0.0.8.tar.gz
Algorithm Hash digest
SHA256 bef8241c9d9834e0cd4caa715c7600dc5f0918ac9c56aad2488457491b406286
MD5 635f2f20b9c0c89c498ce05b5195be5c
BLAKE2b-256 5e8153790055320d6f1ac644a8bdccfeec7229f5a70aaa022806cc37e3e268c1

See more details on using hashes here.

File details

Details for the file dysco-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: dysco-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.0b4 CPython/3.8.0 Linux/5.3.5-arch1-1-ARCH

File hashes

Hashes for dysco-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 adf9c9d3eebd3961edb10e5e842364622f13f7be2de4da14017b9f1ec617713b
MD5 b70c4589fdb513afb3edb3c792553daa
BLAKE2b-256 6eda297f4d76e10ae68db0c5fed69685abd71e637a6d32032a1621946614d412

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