dtPyAppFramework


NamedtPyAppFramework JSON
Version 2.5 PyPI version JSON
download
home_pageNone
SummaryA Python library for common features in application development.
upload_time2024-12-19 01:10:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT License Copyright (c) 2024 Digital-Thought Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords framework logging secrets settings
VCS
bugtrack_url
requirements PyYaml colorlog psutil pybase64 boto3 cryptography azure-identity azure-keyvault-secrets pytest-mock pytest-watch pytest watchdog
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # dtPyAppFramework

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

**dtPyAppFramework** is a Python library designed to streamline the development of Python applications by providing common features and abstractions. It promotes good practices, modular design, and ease of use.

## Features

- **Singleton Management:** Simplify the use of singleton classes by automating initialisation with predefined parameters.
- **Settings and Configuration:** Manage application settings and configurations effortlessly.
- **Secrets Management:** Securely handle secrets and credentials using local or cloud-based stores like AWS Secrets Manager and Asure KeyVault.
- **Application Initialisation:** Quickly initialise your Python applications with the `AbstractApp` class, which takes care of common initialisation tasks.
- **Process Management:** Use the `ProcessManager` for efficient process handling in your applications.

## Installation

```bash
pip install dtPyAppFramework
```

## Getting Started
### AbstractApp Class ###
The **`AbstractApp`** class serves as a base class for creating Python applications. It handles common initialisation tasks and provides a structure for defining command-line arguments and the main application logic.


To create a simple Python application using dtPyAppFramework:
```python
from dtPyAppFramework.application import AbstractApp
from dtPyAppFramework import settings

import logging

class MyApplication(AbstractApp):

    def define_args(self, arg_parser):
        # Define your command-line arguments here
        return

    def main(self, args):
        logging.info("Running your code")
        ## Place you own code here that you wish to run
        
# Initialise and run the application
MyApplication(description="Simple App", version="1.0", short_name="simple_app",
          full_name="Simple Application", console_app=True).run()
```

## Features
Now lets take some time to go over the various features that makes `dtPyAppFramework` such a power library to base your 
Python projects of.

### Logging
`dtPyAppFramework` offers flexible logging capabilities, allowing you to configure and manage logs easily. <br>
In addition it offers some pretty cool logging capabilities straight out of the door which requires no setup from you.

### Configuration Files
Easily read and manage configuration settings from configurations files.<br>
Configuration files can be set for a specific user or for any user of the application.

### Secrets Management
Securely store and retrieve sensitive information with encryption and best practices.<br>
You can store secrets for a specific user or make secrets available to all users of the application.<br>
In addition, you can use the AWS Secrets Management seamlessly within the application alongside the in-built secrets store.

### Command Line Arguments
Effortlessly parse and manage command line arguments with support for defining options and accessing them in your code.

### Application Directories
Access common resource paths like user storage directories.

### Resource Manager
A robust Resource Manager, which is a singleton class named `ResourceManager`.

## License

This project is licensed under the [MIT License](https://opensource.org/licenses/MIT).

## Contact

If you have any questions, bug reports, or feature requests, feel free to [contact us](mailto:dev@digital-thought.org).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "dtPyAppFramework",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Digital-Thought <dev@digital-thought.org>",
    "keywords": "framework, logging, secrets, settings",
    "author": null,
    "author_email": "Digital-Thought <dev@digital-thought.org>",
    "download_url": "https://files.pythonhosted.org/packages/06/be/6dc0318a18767e45b587013a5c3daaf3571d33413f7a04bd8df4fdb1a29c/dtpyappframework-2.5.tar.gz",
    "platform": null,
    "description": "# dtPyAppFramework\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n**dtPyAppFramework** is a Python library designed to streamline the development of Python applications by providing common features and abstractions. It promotes good practices, modular design, and ease of use.\n\n## Features\n\n- **Singleton Management:** Simplify the use of singleton classes by automating initialisation with predefined parameters.\n- **Settings and Configuration:** Manage application settings and configurations effortlessly.\n- **Secrets Management:** Securely handle secrets and credentials using local or cloud-based stores like AWS Secrets Manager and Asure KeyVault.\n- **Application Initialisation:** Quickly initialise your Python applications with the `AbstractApp` class, which takes care of common initialisation tasks.\n- **Process Management:** Use the `ProcessManager` for efficient process handling in your applications.\n\n## Installation\n\n```bash\npip install dtPyAppFramework\n```\n\n## Getting Started\n### AbstractApp Class ###\nThe **`AbstractApp`** class serves as a base class for creating Python applications. It handles common initialisation tasks and provides a structure for defining command-line arguments and the main application logic.\n\n\nTo create a simple Python application using dtPyAppFramework:\n```python\nfrom dtPyAppFramework.application import AbstractApp\nfrom dtPyAppFramework import settings\n\nimport logging\n\nclass MyApplication(AbstractApp):\n\n    def define_args(self, arg_parser):\n        # Define your command-line arguments here\n        return\n\n    def main(self, args):\n        logging.info(\"Running your code\")\n        ## Place you own code here that you wish to run\n        \n# Initialise and run the application\nMyApplication(description=\"Simple App\", version=\"1.0\", short_name=\"simple_app\",\n          full_name=\"Simple Application\", console_app=True).run()\n```\n\n## Features\nNow lets take some time to go over the various features that makes `dtPyAppFramework` such a power library to base your \nPython projects of.\n\n### Logging\n`dtPyAppFramework` offers flexible logging capabilities, allowing you to configure and manage logs easily. <br>\nIn addition it offers some pretty cool logging capabilities straight out of the door which requires no setup from you.\n\n### Configuration Files\nEasily read and manage configuration settings from configurations files.<br>\nConfiguration files can be set for a specific user or for any user of the application.\n\n### Secrets Management\nSecurely store and retrieve sensitive information with encryption and best practices.<br>\nYou can store secrets for a specific user or make secrets available to all users of the application.<br>\nIn addition, you can use the AWS Secrets Management seamlessly within the application alongside the in-built secrets store.\n\n### Command Line Arguments\nEffortlessly parse and manage command line arguments with support for defining options and accessing them in your code.\n\n### Application Directories\nAccess common resource paths like user storage directories.\n\n### Resource Manager\nA robust Resource Manager, which is a singleton class named `ResourceManager`.\n\n## License\n\nThis project is licensed under the [MIT License](https://opensource.org/licenses/MIT).\n\n## Contact\n\nIf you have any questions, bug reports, or feature requests, feel free to [contact us](mailto:dev@digital-thought.org).\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 Digital-Thought  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "A Python library for common features in application development.",
    "version": "2.5",
    "project_urls": {
        "Documentation": "https://dtpyappframework.readthedocs.io",
        "Homepage": "https://github.com/Digital-Thought/dtPyAppFramework",
        "Repository": "https://github.com/Digital-Thought/dtPyAppFramework"
    },
    "split_keywords": [
        "framework",
        " logging",
        " secrets",
        " settings"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ee3bf6d6961ab020af4aab518fa9c17f72267bbaddad342ee367b215b6ead77",
                "md5": "2a50c0712fc6c112017f62a13fbdf371",
                "sha256": "7dd99b9f47962505db6a3457aeff9cf7e93cff9e338edc8a7093593726f3dac6"
            },
            "downloads": -1,
            "filename": "dtPyAppFramework-2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2a50c0712fc6c112017f62a13fbdf371",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 38336,
            "upload_time": "2024-12-19T01:10:49",
            "upload_time_iso_8601": "2024-12-19T01:10:49.569112Z",
            "url": "https://files.pythonhosted.org/packages/4e/e3/bf6d6961ab020af4aab518fa9c17f72267bbaddad342ee367b215b6ead77/dtPyAppFramework-2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "06be6dc0318a18767e45b587013a5c3daaf3571d33413f7a04bd8df4fdb1a29c",
                "md5": "df05073372349ce3ea493c2b392ae6c3",
                "sha256": "f93126f681c541e2f919d19edd23e8771967ca5d07876952d27a5a0e6a240880"
            },
            "downloads": -1,
            "filename": "dtpyappframework-2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "df05073372349ce3ea493c2b392ae6c3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 30570,
            "upload_time": "2024-12-19T01:10:52",
            "upload_time_iso_8601": "2024-12-19T01:10:52.363313Z",
            "url": "https://files.pythonhosted.org/packages/06/be/6dc0318a18767e45b587013a5c3daaf3571d33413f7a04bd8df4fdb1a29c/dtpyappframework-2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-19 01:10:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Digital-Thought",
    "github_project": "dtPyAppFramework",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "PyYaml",
            "specs": []
        },
        {
            "name": "colorlog",
            "specs": []
        },
        {
            "name": "psutil",
            "specs": []
        },
        {
            "name": "pybase64",
            "specs": []
        },
        {
            "name": "boto3",
            "specs": []
        },
        {
            "name": "cryptography",
            "specs": []
        },
        {
            "name": "azure-identity",
            "specs": []
        },
        {
            "name": "azure-keyvault-secrets",
            "specs": []
        },
        {
            "name": "pytest-mock",
            "specs": []
        },
        {
            "name": "pytest-watch",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "watchdog",
            "specs": []
        }
    ],
    "lcname": "dtpyappframework"
}
        
Elapsed time: 0.42084s