Skip to main content

myopy, run blind python files.

Project description

tests pypi

myopy

Run blind python files.

This single class package, provides python objects to a python file at run time. This is ideal for configuration files where the user does not need to know where an object comes from or how to initialize it. It allows the python file to be blind to the origin of it's objects, removing the need for imports, object initializations or convoluted subclassing.

This is pretty much a standalone clone of the way the amazing qutebrowser handles it's config files.

Feel free to copy paste the PyFile class if you don't want the added dependency.

Installation

pip install myopy

Usage

Say you want to allow the user to change a dict containing some settings for an application in a configuration file called config.py:

In the application you would have something along the lines of:

from myopy import PyFile

user_dict = {'something': 2}

config = PyFile('path/to/config.py')
# we provide the config file the user_dict in the 'settings' variable
config.provide(settings=user_dict)
module = config.run()  # returns a module object
print('after running config: ', user_dict)
print('module: ', module)

And in the user facing config.py, the user_dict object would be provided in the settings variable, and the user can change its values at will:

print('in config: ', settings)
settings['something_else'] = 4
settings['something'] = 3

The output would be:

in config: {'something': 2}
after running config: {'something': 3, 'something_else': 4}
module: <module 'config' from 'path/to/config.py'>

the user_dict is modified in place.

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

myopy-1.1.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

myopy-1.1.2-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file myopy-1.1.2.tar.gz.

File metadata

  • Download URL: myopy-1.1.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.8 CPython/3.8.5 Linux/5.8.1-arch1-1

File hashes

Hashes for myopy-1.1.2.tar.gz
Algorithm Hash digest
SHA256 c65e4a4edaabec03568e6a9b0e73e67fce2bf23ffa42f40455bd8d1fc2bf780c
MD5 266f0d8b4a1d8a406c3641c42f350b64
BLAKE2b-256 0dabc35d0c9ef5d07aeeba6750b082f3e258e1741a2a1628bb0c8c406f200e2a

See more details on using hashes here.

File details

Details for the file myopy-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: myopy-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.8 CPython/3.8.5 Linux/5.8.1-arch1-1

File hashes

Hashes for myopy-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f820beba1870cd5a0bface9611e728df66f1c87a73264080366125cbd38e9dcf
MD5 f7e566df15d2ebea25fa37fa1c3dd6f8
BLAKE2b-256 1ad3c4c8bdc87de5ef4570782591e976073e679f4e3cc9cff020e9cb4486857a

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