Skip to main content

Python implementation of Krausening

Project description

Krausening Python - Externalized Property Management and Access for Python Projects

PyPI PyPI - Python Version PyPI - Wheel License

Krausening property management and encryption for Python is packaged using the open-source Python Maven plugin Habushu and made available as a PyPI package.

Managing Properties with Krausening and Python

Managing properties with Krausening's Python library utilizes a similar approach to that required by Krausening Java. Krausening Python expects that developers prime their target environment by configuring the following environment variables (which are named and leveraged in the same manner as the Java System Properties expected by Krausening Java):

  • KRAUSENING_BASE
  • KRAUSENING_EXTENSIONS
  • KRAUSENING_OVERRIDE_EXTENSIONS
  • KRAUSENING_PASSWORD

In order to use the Krausening Python, developers may directly use PropertyManager or extend PropertyManager to provide a custom interface. For example, developers may directly use the PropertyManager as such:

from krausening.properties import PropertyManager

propertyManager = PropertyManager.get_instance()
properties = None
properties = propertyManager.get_properties('my-property-file.properties')
assert properties['foo'] == 'bar2'

This has the disadvantage that you must know the property keys in order to find the corresponding property values. To mitigate the need for all property file consumers to rely on specific property keys, consider wrapping the PropertyManager and writing your own custom methods to get the corresponding keys and values, abstracting away the exact key values:

from krausening.properties import PropertyManager

class TestConfig():
    """
    Configurations utility class for being able to read in and reload properties
    """

    def __init__(self):
        self.properties = None
        self.reload()
 
    def integration_test_enabled(self):
        """
        Returns whether the integration tests are enabled or not
        """
        integration_test_enable = False
        integration_enable_str = self.properties['integration.test.enabled']
        if (integration_enable_str):
            integration_test_enable = (integration_enable_str == 'True')
        return integration_test_enable
    
    def reload(self):
        self.properties = PropertyManager.get_instance().get_properties('test.properties')

Note: Due to updates the M1 Apple Chip, we strongly recommend using Python >= 3.9 for compatibility reasons.

Distribution Channel

Krausening Python is published to PyPI under the krausening project and may be installed using any package installer/manager that leverages PyPI. For example:

  • Poetry - poetry add krausening
  • pip - pip install krausening

Releasing to PyPI

Releasing Krausening Python integrates into the project's larger utilization of the maven-release-plugin, specifically publishing the package to PyPI during the deploy phase. A PyPI account with access to the krausening project is required. PyPI account credentials should be specified in your settings.xml under the <id>pypi</id> <server> entry:

<settings>
  <servers>
    <server>
      <id>pypi</id>
      <username>pypi-username</username>
      <password>pypi-password</password>
    </server>
  </servers>
</settings>

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

krausening-15.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

krausening-15-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file krausening-15.tar.gz.

File metadata

  • Download URL: krausening-15.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.11.2 Darwin/22.3.0

File hashes

Hashes for krausening-15.tar.gz
Algorithm Hash digest
SHA256 b6f5f039e1113617fbac8f2509f9c23988a60919a111e4943629b6d0c60ebb84
MD5 e18fc00a6883107c5a909df7ed481316
BLAKE2b-256 0a67d254785e65bc84a90871c4f844a626b58be754ebc5a114902200cb1e1d93

See more details on using hashes here.

File details

Details for the file krausening-15-py3-none-any.whl.

File metadata

  • Download URL: krausening-15-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.11.2 Darwin/22.3.0

File hashes

Hashes for krausening-15-py3-none-any.whl
Algorithm Hash digest
SHA256 d16fd462b5143d89fe06bcbd192ffec98a357938e0d99129945320f0751012dd
MD5 fa6305676ceb057228e71657cf18e551
BLAKE2b-256 ccb4e8b49ecce6d654983f5de926b9fc0ab5ebdd7d0a9ea2610a3b569b740b2f

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