Skip to main content

A simple, easy to use, unified manner of accessing program properties.

Project description

Library Package: application_properties

Project Version Python Versions platforms License GitHub top language
Quality GitHub Workflow Status (event) Issues codecov Sourcery Dynamic JSON Badge
Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge
Community Maintenance Stars Forks Contributors Downloads
Maintainers LinkedIn

Jumping Off Points

  • I want a high-level overview.
    Stay on this page to learn what application_properties is, why you might use it, what it can do, and whether it fits your projects.
  • I've decided to use application_properties and want to start quickly.
    Follow our Quick Start guides to learn the core concepts and start incorporating configuration into your Python projects with easy-to-follow examples.
  • I've finished the Quick Starts or want deeper details.
    Read the full documentation for TBD.

What Is application_properties?

The application_properties package was born out of necessity. During the creation of the PyMarkdown project, there was a distinct need for a configuration subsystem that was able to handle more complex configuration scenarios, such as only exposing relevant configuration to the Rule Plugins that are a key part of PyMarkdown's rule system.

The application_properties package is for Pythond developers who want to add solidly-tested plug-and-play configuration retrieval to their projects with a minimum of fuss and management. The package has the following advantages:

  • Thoroughly tested
    • The project currently has over 280 tests and coverage percentages over 99%.
  • Simple... With Examples
    • The package was created with the intention of being as easy to use as possbile.
  • Complex When Required
    • The default is simplicity, but the package can step up when required to do so.
    • Any actions outside of the simple scenario of getting an optional string value should be relatively easy to request of the package API.
  • Hierarchically Aware
    • By default, uses the . character in the property names to define levels of hierarchy.
    • Hierarchy levels can be used to find only those properties that exist under a given hierarchy.
    • If desired for use cases that involve shared configuration, such as with PyMarkdown's Rule Plugins, the ApplicationPropertiesFacade object can be used to restrict access to only those properties that exist under a given hierarchy.
  • Command Line Aware
    • The set_manual_property function provides for one or more individual properties to be supplied by the command line.
  • Extensible
    • The loading of the properties is separate from access to the values for those properties.
    • Due to the separation of the loading and accessing parts of the library, custom loading classes can be added with ease.
      • Current loading classes include configuration file loaders for JSON files, YAML files, and TOML files.

Requirements

This project requires Python 3.10 or later to function.

Getting Started

If you are still with us at this point, you probably want to try this package out for yourself and see if we can live up to our claims in the previous section. To faciliate this, we have prepared Quick Start guides that walk your through the most common use cases for the application_properties package.

When you finish trying out the Quick Start guides for yourself, consider walking through one of more sections of our full documentation to get more information on how application_properties can help you with your Python configuration needs.

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

application_properties-0.9.3.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

application_properties-0.9.3-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file application_properties-0.9.3.tar.gz.

File metadata

  • Download URL: application_properties-0.9.3.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for application_properties-0.9.3.tar.gz
Algorithm Hash digest
SHA256 7dc7d8f23d11e539427e7b8e3afa70353e159c16f703bad6dd082cc6cdfeeaa8
MD5 6e44d2d40a79189de1a01a2f352c5dc7
BLAKE2b-256 c0bb321da0e373416080801d05b8dd9c0a8da77fe305c697adf8c025470ce170

See more details on using hashes here.

File details

Details for the file application_properties-0.9.3-py3-none-any.whl.

File metadata

File hashes

Hashes for application_properties-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 32dbd62b3fb657ec1c7fdc352590463c2ffd14950ffd258a5c091e8798d8aec0
MD5 248726a45f8dab0563b5cc5b5b803250
BLAKE2b-256 95723ac1bda73e9c95444b1e13a0de73e847048a776e5ac5b3977c37f04167f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page