application-properties


Nameapplication-properties JSON
Version 0.8.2 PyPI version JSON
download
home_pagehttps://github.com/jackdewinter/application_properties
SummaryA simple, easy to use, unified manner of accessing program properties.
upload_time2024-01-28 23:43:07
maintainerJack De Winter
docs_urlNone
authorJack De Winter
requires_python>=3.8.0
license
keywords properties
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # Library Package: application_properties

|   |   |
|---|---|
|Project|[![Version](https://img.shields.io/pypi/v/application_properties.svg)](https://pypi.org/project/application_properties)  [![Python Versions](https://img.shields.io/pypi/pyversions/application_properties.svg)](https://pypi.org/project/application_properties)  ![platforms](https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey)  [![License](https://img.shields.io/github/license/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/blob/main/LICENSE.txt)  [![GitHub top language](https://img.shields.io/github/languages/top/jackdewinter/application_properties)](https://github.com/jackdewinter/application_properties)|
|Quality|[![GitHub Workflow Status (event)](https://img.shields.io/github/actions/workflow/status/jackdewinter/application_properties/main.yml?branch=main)](https://github.com/jackdewinter/application_properties/actions/workflows/main.yml)  [![Issues](https://img.shields.io/github/issues/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/issues)  [![codecov](https://codecov.io/gh/jackdewinter/application_properties/branch/main/graph/badge.svg?token=PD5TKS8NQQ)](https://codecov.io/gh/jackdewinter/application_properties)  [![Sourcery](https://img.shields.io/badge/Sourcery-enabled-brightgreen)](https://sourcery.ai)  ![snyk](https://img.shields.io/snyk/vulnerabilities/github/jackdewinter/application_properties) |
|  |![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/black/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/flake8/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/pylint/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/mypy/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/pyroma/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/pre-commit/main) ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/sourcery/main)|
|Community|[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/jackdewinter/application_properties/graphs/commit-activity) [![Stars](https://img.shields.io/github/stars/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/stargazers)  [![Forks](https://img.shields.io/github/forks/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/network/members)  [![Contributors](https://img.shields.io/github/contributors/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/graphs/contributors)  [![Downloads](https://img.shields.io/pypi/dm/application_properties.svg)](https://pypistats.org/packages/application_properties)|
|Maintainers|[![LinkedIn](https://img.shields.io/badge/-LinkedIn-black.svg?logo=linkedin&colorB=555)](https://www.linkedin.com/in/jackdewinter/)|

The `application_properties` package was born out of necessity.
During the creation of the [PyMarkdown](https://github.com/jackdewinter/pymarkdown) project,
there was a distinct need for a configuration subsystem that was able to handle more
complex configuration scenarios.

The `application_properties` library has the following advnatages:

- Thoroughly tested
  - The project currently has over 65 tests and coverage percentages over 99%.
- Simple... With Examples
  - The package was created with the intention of being as easy to use as possbile.
  - To that extent, there are 4 basic usage examples and over 10 advanced usage examples.
- 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, 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 allows 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 loaders for Json files, with Simple Property files right
      around the corner

## Requirements

This project required Python 3.8 or later to function.

## Installation

```sh
pip install application_properties
```

## How To Use This Package

The primary goal of this package is to provide a simple, easy to use interface
to access properties within a Python script or program.  It is our contention
that 80% or more of general usage of such a package will be focused on two
elements:

- loading a group of properties from a file that is properly formatted
  for a given format
- accessing a specific string property, possibly with a default, from the that
  property store

### Examples

For concrete examples that show the power of this library package, please consult
the [Examples Document](./docs/examples.md).  If you come up with a normal example
of how to use our package that we have missed, or come up with a novel example of
how to use our package, please file an issue using the process below and let us
know. From our experience, one example can often paint a picture of how to use our
project that is difficult to explain clearly with just words.

## Issues and Future Plans

If you would like to report an issue with the library or the documentation, please
file an issue [using GitHub](https://github.com/jackdewinter/application_properties/issues).
Please remember to fill in as much information as possible including a good, repeatable
pattern for reproducing the issue.  Do not overflow us with too much information,
but provide us with enough information to make the problem evident to us.

If you would like to us to implement a feature that you believe is important, please
file an issue [using GitHub](https://github.com/jackdewinter/application_properties/issues)
that includes what you want to add, why you want to add it, and why it is important
to you, and how you think it will help others.  We truly want to listen to what
you see as a good feature, so please do not be upset if we say "no" or "let me
think about it".

Please note that the issue you file will usually be the start of a conversation,
so be ready for more questions.  If you have any Python developer skills, please
mention that as well.  The conversations about "hey, can you..." is a lot different
than "if I do... can I add it to the project?".

## When Did Things Change?

The changelog for this project is maintained [at this location](/changelog.md).

## Still Have Questions?

If you still have questions, please consult our
[Frequently Asked Questions](/docs/faq.md) document.

## Instructions For Contributing

Developer notes on various topics are kept in the the
[Developer Notes](/docs/developer.md) document.

If you attempting to contribute something to this project,
please follow the steps outlined in the
[CONTRIBUTING.md](/CONTRIBUTING.md) file.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jackdewinter/application_properties",
    "name": "application-properties",
    "maintainer": "Jack De Winter",
    "docs_url": null,
    "requires_python": ">=3.8.0",
    "maintainer_email": "jack.de.winter@outlook.com",
    "keywords": "properties",
    "author": "Jack De Winter",
    "author_email": "jack.de.winter@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/c1/5e/29ec0fa553ee5befc6a1e47eb0c8ffea75eed941251524678700e2d3e747/application_properties-0.8.2.tar.gz",
    "platform": null,
    "description": "# Library Package: application_properties\r\n\r\n|   |   |\r\n|---|---|\r\n|Project|[![Version](https://img.shields.io/pypi/v/application_properties.svg)](https://pypi.org/project/application_properties)  [![Python Versions](https://img.shields.io/pypi/pyversions/application_properties.svg)](https://pypi.org/project/application_properties)  ![platforms](https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey)  [![License](https://img.shields.io/github/license/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/blob/main/LICENSE.txt)  [![GitHub top language](https://img.shields.io/github/languages/top/jackdewinter/application_properties)](https://github.com/jackdewinter/application_properties)|\r\n|Quality|[![GitHub Workflow Status (event)](https://img.shields.io/github/actions/workflow/status/jackdewinter/application_properties/main.yml?branch=main)](https://github.com/jackdewinter/application_properties/actions/workflows/main.yml)  [![Issues](https://img.shields.io/github/issues/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/issues)  [![codecov](https://codecov.io/gh/jackdewinter/application_properties/branch/main/graph/badge.svg?token=PD5TKS8NQQ)](https://codecov.io/gh/jackdewinter/application_properties)  [![Sourcery](https://img.shields.io/badge/Sourcery-enabled-brightgreen)](https://sourcery.ai)  ![snyk](https://img.shields.io/snyk/vulnerabilities/github/jackdewinter/application_properties) |\r\n|  |![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/black/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/flake8/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/pylint/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/mypy/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/pyroma/main)  ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/pre-commit/main) ![GitHub Pipenv locked dependency version (branch)](https://img.shields.io/github/pipenv/locked/dependency-version/jackdewinter/application_properties/dev/sourcery/main)|\r\n|Community|[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/jackdewinter/application_properties/graphs/commit-activity) [![Stars](https://img.shields.io/github/stars/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/stargazers)  [![Forks](https://img.shields.io/github/forks/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/network/members)  [![Contributors](https://img.shields.io/github/contributors/jackdewinter/application_properties.svg)](https://github.com/jackdewinter/application_properties/graphs/contributors)  [![Downloads](https://img.shields.io/pypi/dm/application_properties.svg)](https://pypistats.org/packages/application_properties)|\r\n|Maintainers|[![LinkedIn](https://img.shields.io/badge/-LinkedIn-black.svg?logo=linkedin&colorB=555)](https://www.linkedin.com/in/jackdewinter/)|\r\n\r\nThe `application_properties` package was born out of necessity.\r\nDuring the creation of the [PyMarkdown](https://github.com/jackdewinter/pymarkdown) project,\r\nthere was a distinct need for a configuration subsystem that was able to handle more\r\ncomplex configuration scenarios.\r\n\r\nThe `application_properties` library has the following advnatages:\r\n\r\n- Thoroughly tested\r\n  - The project currently has over 65 tests and coverage percentages over 99%.\r\n- Simple... With Examples\r\n  - The package was created with the intention of being as easy to use as possbile.\r\n  - To that extent, there are 4 basic usage examples and over 10 advanced usage examples.\r\n- Complex When Required\r\n  - The default is simplicity, but the package can step up when required to do so.\r\n  - Any actions outside of the simple scenario of getting an optional string value should\r\n    be relatively easy to request of the package API.\r\n- Hierarchically Aware\r\n  - By default, uses the `.` character in the property names to define levels of hierarchy.\r\n  - Hierarchy levels can be used to find only those properties that exist under a\r\n    given hierarchy.\r\n  - If desired, the `ApplicationPropertiesFacade` object can be used to restrict access\r\n    to only those properties that exist under a given hierarchy.\r\n- Command Line Aware\r\n  - The `set_manual_property` function allows for one or more individual properties to be\r\n    supplied by the command line.\r\n- Extensible\r\n  - The loading of the properties is separate from access to the values for those properties.\r\n  - Due to the separation of the loading and accessing parts of the library, custom loading\r\n    classes can be added with ease.\r\n    - Current loading classes include loaders for Json files, with Simple Property files right\r\n      around the corner\r\n\r\n## Requirements\r\n\r\nThis project required Python 3.8 or later to function.\r\n\r\n## Installation\r\n\r\n```sh\r\npip install application_properties\r\n```\r\n\r\n## How To Use This Package\r\n\r\nThe primary goal of this package is to provide a simple, easy to use interface\r\nto access properties within a Python script or program.  It is our contention\r\nthat 80% or more of general usage of such a package will be focused on two\r\nelements:\r\n\r\n- loading a group of properties from a file that is properly formatted\r\n  for a given format\r\n- accessing a specific string property, possibly with a default, from the that\r\n  property store\r\n\r\n### Examples\r\n\r\nFor concrete examples that show the power of this library package, please consult\r\nthe [Examples Document](./docs/examples.md).  If you come up with a normal example\r\nof how to use our package that we have missed, or come up with a novel example of\r\nhow to use our package, please file an issue using the process below and let us\r\nknow. From our experience, one example can often paint a picture of how to use our\r\nproject that is difficult to explain clearly with just words.\r\n\r\n## Issues and Future Plans\r\n\r\nIf you would like to report an issue with the library or the documentation, please\r\nfile an issue [using GitHub](https://github.com/jackdewinter/application_properties/issues).\r\nPlease remember to fill in as much information as possible including a good, repeatable\r\npattern for reproducing the issue.  Do not overflow us with too much information,\r\nbut provide us with enough information to make the problem evident to us.\r\n\r\nIf you would like to us to implement a feature that you believe is important, please\r\nfile an issue [using GitHub](https://github.com/jackdewinter/application_properties/issues)\r\nthat includes what you want to add, why you want to add it, and why it is important\r\nto you, and how you think it will help others.  We truly want to listen to what\r\nyou see as a good feature, so please do not be upset if we say \"no\" or \"let me\r\nthink about it\".\r\n\r\nPlease note that the issue you file will usually be the start of a conversation,\r\nso be ready for more questions.  If you have any Python developer skills, please\r\nmention that as well.  The conversations about \"hey, can you...\" is a lot different\r\nthan \"if I do... can I add it to the project?\".\r\n\r\n## When Did Things Change?\r\n\r\nThe changelog for this project is maintained [at this location](/changelog.md).\r\n\r\n## Still Have Questions?\r\n\r\nIf you still have questions, please consult our\r\n[Frequently Asked Questions](/docs/faq.md) document.\r\n\r\n## Instructions For Contributing\r\n\r\nDeveloper notes on various topics are kept in the the\r\n[Developer Notes](/docs/developer.md) document.\r\n\r\nIf you attempting to contribute something to this project,\r\nplease follow the steps outlined in the\r\n[CONTRIBUTING.md](/CONTRIBUTING.md) file.\r\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A simple, easy to use, unified manner of accessing program properties.",
    "version": "0.8.2",
    "project_urls": {
        "Change Log": "https://github.com/jackdewinter/application_properties/blob/main/changelog.md",
        "Homepage": "https://github.com/jackdewinter/application_properties"
    },
    "split_keywords": [
        "properties"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0627ea2b77232385ec1c4b5cb766ee13b5a3085ed2fa789d61374e7af36b79e1",
                "md5": "fbbfe5195e7cac0834763f6e61d3490b",
                "sha256": "a4fe684e4d95fc45054d3316acf763a7b0f29342ccea02eee09de53004f0139c"
            },
            "downloads": -1,
            "filename": "application_properties-0.8.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fbbfe5195e7cac0834763f6e61d3490b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8.0",
            "size": 18399,
            "upload_time": "2024-01-28T23:43:05",
            "upload_time_iso_8601": "2024-01-28T23:43:05.631101Z",
            "url": "https://files.pythonhosted.org/packages/06/27/ea2b77232385ec1c4b5cb766ee13b5a3085ed2fa789d61374e7af36b79e1/application_properties-0.8.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c15e29ec0fa553ee5befc6a1e47eb0c8ffea75eed941251524678700e2d3e747",
                "md5": "af2179f6eafe07d4104756d2bed09fc9",
                "sha256": "e5e6918c8e29ab57175567d51dfa39c00a1d75b3205625559bb02250f50f0420"
            },
            "downloads": -1,
            "filename": "application_properties-0.8.2.tar.gz",
            "has_sig": false,
            "md5_digest": "af2179f6eafe07d4104756d2bed09fc9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0",
            "size": 29595,
            "upload_time": "2024-01-28T23:43:07",
            "upload_time_iso_8601": "2024-01-28T23:43:07.403462Z",
            "url": "https://files.pythonhosted.org/packages/c1/5e/29ec0fa553ee5befc6a1e47eb0c8ffea75eed941251524678700e2d3e747/application_properties-0.8.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-28 23:43:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jackdewinter",
    "github_project": "application_properties",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "application-properties"
}
        
Elapsed time: 0.17090s