hspylib


Namehspylib JSON
Version 1.12.38 PyPI version JSON
download
home_pagehttps://github.com/yorevs/hspylib
SummaryHsPyLib - Core python library
upload_time2024-04-25 02:12:52
maintainerNone
docs_urlNone
authorHugo Saporetti Junior
requires_python>=3.10
licenseMIT
keywords python library solid patterns development integration application framework
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img src="https://iili.io/HYBJFA7.png" width="64" height="64" align="right" />

# HomeSetup Python Library
>
> Because your Python code is not JUST a script !

[![PyPi](https://badgen.net/badge/icon/python?icon=pypi&label)](https://pypi.org/project/hspylib)
[![Gitter](https://badgen.net/badge/icon/gitter?icon=gitter&label)](https://gitter.im/hspylib/community)
[![Donate](https://badgen.net/badge/paypal/donate/yellow)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J5CDEFLF6M3H4)
[![License](https://badgen.net/badge/license/MIT/gray)](LICENSE.md)
[![Release](https://badgen.net/badge/release/v1.12.4/gray)](docs/CHANGELOG.md#unreleased)
[![build-and-test](https://github.com/yorevs/hspylib/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/yorevs/hspylib/actions/workflows/build-and-test.yml)

HsPyLib is not just a Python library; it's a gateway to elevating your programming experience to new heights. Built on
established principles like **SOLID**, **DRY** (Don't Repeat Yourself), **KISS** (Keep It Simple, Stupid), and **YAGNI**
(You Ain’t Gonna Need It), HsPyLib offers a wealth of frameworks and features. It empowers you to craft sophisticated
Python3 applications, adhering to the philosophy that code should not merely be a simple script - it should be a part
of the 'PYCSNBASS' (Python Code Should Not Be A Simple Script) mindset.

> This project is a part of the [HomeSetup](https://github.com/yorevs/homesetup) project.

## Key Features

- Seamless installation process.
- Application manager offering a helpful scaffold for Python applications.
- Widgets manager for running both 'built-in' and custom Python widgets.
- Improved TUI (Text User Interface) helpers and input methods to enhance your User Experience with terminal applications.
- CRUD (Create, Read, Update, Delete) framework aiding with databases, repositories, and services.
- HTTP request helpers for simplified communication.
- Support for enabling Properties and AppConfigs using popular extensions like .properties, toml, yml, and more.
- Code rigorously tested and consistently adhering to Pylint standards.
- Utilizes the Gradle build system with numerous extensions.
- Diverse set of demos to facilitate a deeper understanding of the library.
- AI model integrations (currently supporting OpenAI).

> Create beautiful menu-select inputs

```python
class SelectableItem:
    def __init__(self, name: str, value: str):
        self.name = name
        self.value = value

    def __str__(self):
        return f"Name: {self.name} Value: {self.value}"

    def __repr__(self):
        return str(self)


if __name__ == "__main__":
    quantity = 22
    digits = len(str(quantity))
    it = [SelectableItem(f"Item-{n:>0{digits}}", f"Value-{n:>0{digits}}") for n in range(1, quantity)]
    sel = mselect(it)
    print(str(sel))
```

![MenuSelect](https://iili.io/HYBFh74.png "MenuSelect")

> And create beautiful menu-choose inputs

```python
class ChooseableItem:
    def __init__(self, name: str, value: str):
        self.name = name
        self.value = value

    def __str__(self):
        return f"Name: {self.name} Value: {self.value}"

    def __repr__(self):
        return str(self)


if __name__ == "__main__":
    quantity = 22
    digits = len(str(quantity))
    it = [ChooseableItem(f"Item-{n:>0{digits}}", f"Value-{n:>0{digits}}") for n in range(1, quantity)]
    sel = mchoose(it, [n % 2 == 0 for n in range(1, quantity)])
    print(str(sel))
```

![MenuChoose](https://iili.io/HYBFwp2.png "MenuChoose")

> And also, create beautiful form inputs

```python
from clitt.core.tui.minput.input_validator import InputValidator
from clitt.core.tui.minput.minput import MenuInput, minput

if __name__ == "__main__":
    # fmt: off
    form_fields = MenuInput.builder() \
        .field() \
            .label('letters') \
            .validator(InputValidator.letters()) \
            .build() \
        .field() \
            .label('word') \
            .validator(InputValidator.words()) \
            .build() \
        .field() \
            .label('number') \
            .validator(InputValidator.numbers()) \
            .min_max_length(1, 4) \
            .build() \
        .field() \
            .label('masked') \
            .itype('masked') \
            .value('|##::##::## @@') \
            .build() \
        .field() \
            .label('selectable') \
            .itype('select') \
            .value('one|two|three') \
            .build() \
        .field() \
            .label('checkbox') \
            .itype('checkbox') \
            .build() \
        .field() \
            .label('password') \
            .itype('password') \
            .validator(InputValidator.anything()) \
            .min_max_length(4, 8) \
            .build() \
        .field() \
            .label('read-only') \
            .access_type('read-only') \
            .value('READ-ONLY') \
            .build() \
        .build()
    # fmt: on

    result = minput(form_fields)
    print(result.__dict__ if result else "None")
```

![MenuInput](https://iili.io/HYBFVrG.png "MenuInput")

> Or even, create nice dashboards:

```python
if __name__ == "__main__":
    # fmt: off
    dashboard_items = MenuDashBoard.builder() \
        .item() \
            .icon(DashboardIcons.POWER) \
            .tooltip('Do something') \
            .on_trigger(lambda: print('Something')) \
            .build() \
        .item() \
            .icon(DashboardIcons.MOVIE) \
            .tooltip('Another something') \
            .on_trigger(lambda: print('Another')) \
            .build() \
        .item() \
            .icon(DashboardIcons.NOTIFICATION) \
            .tooltip('Notify something') \
            .on_trigger(lambda: print('Notification')) \
            .build() \
        .item() \
            .icon(DashboardIcons.LIST) \
            .tooltip('List everything') \
            .on_trigger(lambda: print('List')) \
            .build() \
        .item() \
            .icon(DashboardIcons.DATABASE) \
            .tooltip('Database console') \
            .on_trigger(lambda: print('Database')) \
            .build() \
        .item() \
            .icon(DashboardIcons.EXIT) \
            .tooltip('Exit application') \
            .on_trigger(lambda: print('Exit')) \
            .build() \
        .build()
    # fmt: on

    result = mdashboard(dashboard_items)
```

![MenuDashboard](https://iili.io/HYBFX2f.png "MenuDashboard")

> And even more, create beautiful menus !

```bash
if __name__ == "__main__":
    # fmt: off
    main_menu = TUIMenuFactory \
        .create_main_menu('TUI Main Menu', tooltip='Test Terminal UI Menus') \
            .with_item('Sub-Menu-1') \
                .with_action("DO IT 1", "Let's do it") \
                    .on_trigger(lambda x: print("ACTION 1", x)) \
                .with_view("Just a View 1", "Show the view 1") \
                    .on_render("MY BEAUTIFUL VIEW 1") \
                .with_action("Back", "Back to the previous menu") \
                    .on_trigger(TUIMenuUi.back) \
                .then() \
            .with_item('Sub-Menu-2') \
                .with_action("DO IT 2", "Let's do it too") \
                    .on_trigger(lambda x: print("ACTION 2", x)) \
                .with_view("Just a View 2", "Show the view 2") \
                    .on_render("MY BEAUTIFUL VIEW 2") \
                .with_action("Back", "Back to the previous menu") \
                    .on_trigger(TUIMenuUi.back) \
                .then() \
            .then() \
        .build()
    # fmt: on

    TUIMenuUi(main_menu, "TUI Main Menu").execute()
```

![Menus](https://iili.io/JAGQJkJ.png "Menus")

## PyPi Modules

- [A Pivotal Cloud Foundry](https://pypi.org/project/hspylib-cfman) application tool.
- [A CLI Terminal](https://pypi.org/project/hspylib-clitt) tools.
- [Datasource](https://pypi.org/project/hspylib-datasource) framework.
- [A Firebase](https://pypi.org/project/hspylib-firebase) integration tool.
- [A PyQt](https://pypi.org/project/hspylib-hqt) application framework.
- [Core](https://pypi.org/project/hspylib) HomeSetup library.
- [A Kafka manager](https://pypi.org/project/hspylib-kafman) application tool.
- [A System Settings](https://pypi.org/project/hspylib-kafman) application tool.
- [A Vault](https://pypi.org/project/hspylib-vault) application tool.

## Installation

### Requirements

#### Python

- Python 3.10 and higher

#### Operating Systems

- Darwin
  + High Sierra and higher
- Linux
  + Ubuntu 16 and higher
  + CentOS 7 and higher
  + Fedora 31 and higher

You may want to install HsPyLib on other OS's and it will probably work, but there are no guarantees that it
**WILL ACTUALLY WORK**.

#### Required software

The following software are required:

- Git (To clone the github repository)
- Gradle (To build the HsPyLib project)

There are some python dependencies, but they will be automatically downloaded when the build runs.

### PyPi

To install HsPyLib from PyPi issue the command:

`# python3 -m pip install hspylib`

To upgrade HsPyLib use the command:

`# python3 -m pip install hspylib --upgrade`

Additional modules that can also be installed:

- [CLItt](https://pypi.org/project/hspylib-clitt) : `# python3 -m pip install hspylib-clitt` to install HsPyLib CLI terminal tools.
- [Firebase](https://pypi.org/project/hspylib-firebase) : `# python3 -m pip install hspylib-firebase` to install HsPyLib Firebase application.
- [Vault](https://pypi.org/project/hspylib-vault) : `# python3 -m pip install hspylib-vault` to install HsPyLib Vault application.
- [CFMan](https://pypi.org/project/hspylib-cfman) : `# python3 -m pip install hspylib-cfman` to install CloudFoundry manager.
- [Kafman](https://pypi.org/project/hspylib-kafman) : `# python3 -m pip install hspylib-kafman` to install Kafka manager.
- [Datasource](https://pypi.org/project/hspylib-datasource) : `# python3 -m pip install hspylib-datasource` to install datasource helpers.
- [HQT](https://pypi.org/project/hspylib-hqt) : `# python3 -m pip install hspylib-hqt` to install HsPyLib PyQt framework.

### GitHub

To clone HsPyLib into your local machine type the command:

`# git clone https://github.com/yorevs/hspylib.git`

## Documentation

The API documentation can be found [here](docs/api/index.html)

## Support

> Your support and contributions are greatly appreciated in helping us improve and enhance HomeSetup. Together, we can
make it even better!

You can support HomeSetup by [donating](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J5CDEFLF6M3H4)
or contributing code. Feel free to contact me for further details. When making code contributions, please make sure to
review our [guidelines](docs/CONTRIBUTING.md) and adhere to our [code of conduct](docs/CODE_OF_CONDUCT.md).

[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/yorevs)

You can also sponsor it by using our [GitHub Sponsors](https://github.com/sponsors/yorevs) page.

This project is already supported by:

<a href="https://www.jetbrains.com/community/opensource/?utm_campaign=opensource&utm_content=approved&utm_medium=email&utm_source=newsletter&utm_term=jblogo#support">
  <img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" width="120" height="120">
</a>

Thank you <3 !!

## Known Issues

- [In-Progress] We are aware that there is a problems when using python@3.12 and we are already working on a fix.

## Contacts

- Documentation: [API](docs/api/index.html)
- License: [MIT](LICENSE.md)
- Issue tracker: [HSPyLib-Issues](https://github.com/yorevs/hspylib/issues)
- Official chat: [HSPyLib](https://gitter.im/hspylib/community)
- Contact: [yorevs](https://www.reddit.com/user/yorevs)
- Mailto: [yorevs](mailto:yorevs@hotmail.com)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yorevs/hspylib",
    "name": "hspylib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "python, library, solid, patterns, development, integration, application, framework",
    "author": "Hugo Saporetti Junior",
    "author_email": "yorevs@hotmail.com",
    "download_url": "https://files.pythonhosted.org/packages/18/17/d94c3081c1c4db58f6ddea8557bc138b4c9be97069e9cf5f518efe8ed388/hspylib-1.12.38.tar.gz",
    "platform": "Darwin",
    "description": "<img src=\"https://iili.io/HYBJFA7.png\" width=\"64\" height=\"64\" align=\"right\" />\n\n# HomeSetup Python Library\n>\n> Because your Python code is not JUST a script !\n\n[![PyPi](https://badgen.net/badge/icon/python?icon=pypi&label)](https://pypi.org/project/hspylib)\n[![Gitter](https://badgen.net/badge/icon/gitter?icon=gitter&label)](https://gitter.im/hspylib/community)\n[![Donate](https://badgen.net/badge/paypal/donate/yellow)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J5CDEFLF6M3H4)\n[![License](https://badgen.net/badge/license/MIT/gray)](LICENSE.md)\n[![Release](https://badgen.net/badge/release/v1.12.4/gray)](docs/CHANGELOG.md#unreleased)\n[![build-and-test](https://github.com/yorevs/hspylib/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/yorevs/hspylib/actions/workflows/build-and-test.yml)\n\nHsPyLib is not just a Python library; it's a gateway to elevating your programming experience to new heights. Built on\nestablished principles like **SOLID**, **DRY** (Don't Repeat Yourself), **KISS** (Keep It Simple, Stupid), and **YAGNI**\n(You Ain\u2019t Gonna Need It), HsPyLib offers a wealth of frameworks and features. It empowers you to craft sophisticated\nPython3 applications, adhering to the philosophy that code should not merely be a simple script - it should be a part\nof the 'PYCSNBASS' (Python Code Should Not Be A Simple Script) mindset.\n\n> This project is a part of the [HomeSetup](https://github.com/yorevs/homesetup) project.\n\n## Key Features\n\n- Seamless installation process.\n- Application manager offering a helpful scaffold for Python applications.\n- Widgets manager for running both 'built-in' and custom Python widgets.\n- Improved TUI (Text User Interface) helpers and input methods to enhance your User Experience with terminal applications.\n- CRUD (Create, Read, Update, Delete) framework aiding with databases, repositories, and services.\n- HTTP request helpers for simplified communication.\n- Support for enabling Properties and AppConfigs using popular extensions like .properties, toml, yml, and more.\n- Code rigorously tested and consistently adhering to Pylint standards.\n- Utilizes the Gradle build system with numerous extensions.\n- Diverse set of demos to facilitate a deeper understanding of the library.\n- AI model integrations (currently supporting OpenAI).\n\n> Create beautiful menu-select inputs\n\n```python\nclass SelectableItem:\n    def __init__(self, name: str, value: str):\n        self.name = name\n        self.value = value\n\n    def __str__(self):\n        return f\"Name: {self.name} Value: {self.value}\"\n\n    def __repr__(self):\n        return str(self)\n\n\nif __name__ == \"__main__\":\n    quantity = 22\n    digits = len(str(quantity))\n    it = [SelectableItem(f\"Item-{n:>0{digits}}\", f\"Value-{n:>0{digits}}\") for n in range(1, quantity)]\n    sel = mselect(it)\n    print(str(sel))\n```\n\n![MenuSelect](https://iili.io/HYBFh74.png \"MenuSelect\")\n\n> And create beautiful menu-choose inputs\n\n```python\nclass ChooseableItem:\n    def __init__(self, name: str, value: str):\n        self.name = name\n        self.value = value\n\n    def __str__(self):\n        return f\"Name: {self.name} Value: {self.value}\"\n\n    def __repr__(self):\n        return str(self)\n\n\nif __name__ == \"__main__\":\n    quantity = 22\n    digits = len(str(quantity))\n    it = [ChooseableItem(f\"Item-{n:>0{digits}}\", f\"Value-{n:>0{digits}}\") for n in range(1, quantity)]\n    sel = mchoose(it, [n % 2 == 0 for n in range(1, quantity)])\n    print(str(sel))\n```\n\n![MenuChoose](https://iili.io/HYBFwp2.png \"MenuChoose\")\n\n> And also, create beautiful form inputs\n\n```python\nfrom clitt.core.tui.minput.input_validator import InputValidator\nfrom clitt.core.tui.minput.minput import MenuInput, minput\n\nif __name__ == \"__main__\":\n    # fmt: off\n    form_fields = MenuInput.builder() \\\n        .field() \\\n            .label('letters') \\\n            .validator(InputValidator.letters()) \\\n            .build() \\\n        .field() \\\n            .label('word') \\\n            .validator(InputValidator.words()) \\\n            .build() \\\n        .field() \\\n            .label('number') \\\n            .validator(InputValidator.numbers()) \\\n            .min_max_length(1, 4) \\\n            .build() \\\n        .field() \\\n            .label('masked') \\\n            .itype('masked') \\\n            .value('|##::##::## @@') \\\n            .build() \\\n        .field() \\\n            .label('selectable') \\\n            .itype('select') \\\n            .value('one|two|three') \\\n            .build() \\\n        .field() \\\n            .label('checkbox') \\\n            .itype('checkbox') \\\n            .build() \\\n        .field() \\\n            .label('password') \\\n            .itype('password') \\\n            .validator(InputValidator.anything()) \\\n            .min_max_length(4, 8) \\\n            .build() \\\n        .field() \\\n            .label('read-only') \\\n            .access_type('read-only') \\\n            .value('READ-ONLY') \\\n            .build() \\\n        .build()\n    # fmt: on\n\n    result = minput(form_fields)\n    print(result.__dict__ if result else \"None\")\n```\n\n![MenuInput](https://iili.io/HYBFVrG.png \"MenuInput\")\n\n> Or even, create nice dashboards:\n\n```python\nif __name__ == \"__main__\":\n    # fmt: off\n    dashboard_items = MenuDashBoard.builder() \\\n        .item() \\\n            .icon(DashboardIcons.POWER) \\\n            .tooltip('Do something') \\\n            .on_trigger(lambda: print('Something')) \\\n            .build() \\\n        .item() \\\n            .icon(DashboardIcons.MOVIE) \\\n            .tooltip('Another something') \\\n            .on_trigger(lambda: print('Another')) \\\n            .build() \\\n        .item() \\\n            .icon(DashboardIcons.NOTIFICATION) \\\n            .tooltip('Notify something') \\\n            .on_trigger(lambda: print('Notification')) \\\n            .build() \\\n        .item() \\\n            .icon(DashboardIcons.LIST) \\\n            .tooltip('List everything') \\\n            .on_trigger(lambda: print('List')) \\\n            .build() \\\n        .item() \\\n            .icon(DashboardIcons.DATABASE) \\\n            .tooltip('Database console') \\\n            .on_trigger(lambda: print('Database')) \\\n            .build() \\\n        .item() \\\n            .icon(DashboardIcons.EXIT) \\\n            .tooltip('Exit application') \\\n            .on_trigger(lambda: print('Exit')) \\\n            .build() \\\n        .build()\n    # fmt: on\n\n    result = mdashboard(dashboard_items)\n```\n\n![MenuDashboard](https://iili.io/HYBFX2f.png \"MenuDashboard\")\n\n> And even more, create beautiful menus !\n\n```bash\nif __name__ == \"__main__\":\n    # fmt: off\n    main_menu = TUIMenuFactory \\\n        .create_main_menu('TUI Main Menu', tooltip='Test Terminal UI Menus') \\\n            .with_item('Sub-Menu-1') \\\n                .with_action(\"DO IT 1\", \"Let's do it\") \\\n                    .on_trigger(lambda x: print(\"ACTION 1\", x)) \\\n                .with_view(\"Just a View 1\", \"Show the view 1\") \\\n                    .on_render(\"MY BEAUTIFUL VIEW 1\") \\\n                .with_action(\"Back\", \"Back to the previous menu\") \\\n                    .on_trigger(TUIMenuUi.back) \\\n                .then() \\\n            .with_item('Sub-Menu-2') \\\n                .with_action(\"DO IT 2\", \"Let's do it too\") \\\n                    .on_trigger(lambda x: print(\"ACTION 2\", x)) \\\n                .with_view(\"Just a View 2\", \"Show the view 2\") \\\n                    .on_render(\"MY BEAUTIFUL VIEW 2\") \\\n                .with_action(\"Back\", \"Back to the previous menu\") \\\n                    .on_trigger(TUIMenuUi.back) \\\n                .then() \\\n            .then() \\\n        .build()\n    # fmt: on\n\n    TUIMenuUi(main_menu, \"TUI Main Menu\").execute()\n```\n\n![Menus](https://iili.io/JAGQJkJ.png \"Menus\")\n\n## PyPi Modules\n\n- [A Pivotal Cloud Foundry](https://pypi.org/project/hspylib-cfman) application tool.\n- [A CLI Terminal](https://pypi.org/project/hspylib-clitt) tools.\n- [Datasource](https://pypi.org/project/hspylib-datasource) framework.\n- [A Firebase](https://pypi.org/project/hspylib-firebase) integration tool.\n- [A PyQt](https://pypi.org/project/hspylib-hqt) application framework.\n- [Core](https://pypi.org/project/hspylib) HomeSetup library.\n- [A Kafka manager](https://pypi.org/project/hspylib-kafman) application tool.\n- [A System Settings](https://pypi.org/project/hspylib-kafman) application tool.\n- [A Vault](https://pypi.org/project/hspylib-vault) application tool.\n\n## Installation\n\n### Requirements\n\n#### Python\n\n- Python 3.10 and higher\n\n#### Operating Systems\n\n- Darwin\n  + High Sierra and higher\n- Linux\n  + Ubuntu 16 and higher\n  + CentOS 7 and higher\n  + Fedora 31 and higher\n\nYou may want to install HsPyLib on other OS's and it will probably work, but there are no guarantees that it\n**WILL ACTUALLY WORK**.\n\n#### Required software\n\nThe following software are required:\n\n- Git (To clone the github repository)\n- Gradle (To build the HsPyLib project)\n\nThere are some python dependencies, but they will be automatically downloaded when the build runs.\n\n### PyPi\n\nTo install HsPyLib from PyPi issue the command:\n\n`# python3 -m pip install hspylib`\n\nTo upgrade HsPyLib use the command:\n\n`# python3 -m pip install hspylib --upgrade`\n\nAdditional modules that can also be installed:\n\n- [CLItt](https://pypi.org/project/hspylib-clitt) : `# python3 -m pip install hspylib-clitt` to install HsPyLib CLI terminal tools.\n- [Firebase](https://pypi.org/project/hspylib-firebase) : `# python3 -m pip install hspylib-firebase` to install HsPyLib Firebase application.\n- [Vault](https://pypi.org/project/hspylib-vault) : `# python3 -m pip install hspylib-vault` to install HsPyLib Vault application.\n- [CFMan](https://pypi.org/project/hspylib-cfman) : `# python3 -m pip install hspylib-cfman` to install CloudFoundry manager.\n- [Kafman](https://pypi.org/project/hspylib-kafman) : `# python3 -m pip install hspylib-kafman` to install Kafka manager.\n- [Datasource](https://pypi.org/project/hspylib-datasource) : `# python3 -m pip install hspylib-datasource` to install datasource helpers.\n- [HQT](https://pypi.org/project/hspylib-hqt) : `# python3 -m pip install hspylib-hqt` to install HsPyLib PyQt framework.\n\n### GitHub\n\nTo clone HsPyLib into your local machine type the command:\n\n`# git clone https://github.com/yorevs/hspylib.git`\n\n## Documentation\n\nThe API documentation can be found [here](docs/api/index.html)\n\n## Support\n\n> Your support and contributions are greatly appreciated in helping us improve and enhance HomeSetup. Together, we can\nmake it even better!\n\nYou can support HomeSetup by [donating](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J5CDEFLF6M3H4)\nor contributing code. Feel free to contact me for further details. When making code contributions, please make sure to\nreview our [guidelines](docs/CONTRIBUTING.md) and adhere to our [code of conduct](docs/CODE_OF_CONDUCT.md).\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/yorevs)\n\nYou can also sponsor it by using our [GitHub Sponsors](https://github.com/sponsors/yorevs) page.\n\nThis project is already supported by:\n\n<a href=\"https://www.jetbrains.com/community/opensource/?utm_campaign=opensource&utm_content=approved&utm_medium=email&utm_source=newsletter&utm_term=jblogo#support\">\n  <img src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png\" width=\"120\" height=\"120\">\n</a>\n\nThank you <3 !!\n\n## Known Issues\n\n- [In-Progress] We are aware that there is a problems when using python@3.12 and we are already working on a fix.\n\n## Contacts\n\n- Documentation: [API](docs/api/index.html)\n- License: [MIT](LICENSE.md)\n- Issue tracker: [HSPyLib-Issues](https://github.com/yorevs/hspylib/issues)\n- Official chat: [HSPyLib](https://gitter.im/hspylib/community)\n- Contact: [yorevs](https://www.reddit.com/user/yorevs)\n- Mailto: [yorevs](mailto:yorevs@hotmail.com)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "HsPyLib - Core python library",
    "version": "1.12.38",
    "project_urls": {
        "GitHub": "https://github.com/yorevs/hspylib",
        "Homepage": "https://github.com/yorevs/hspylib",
        "PyPi": "https://pypi.org/project/hspylib/"
    },
    "split_keywords": [
        "python",
        " library",
        " solid",
        " patterns",
        " development",
        " integration",
        " application",
        " framework"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1ae5d4851d1fa1d3ebc905f8876d5357daa723252a7378907cc0a095d3a5354a",
                "md5": "3576179a8780f1f4eefeae3fb6d73343",
                "sha256": "af242a8ba37e5576a27f7a28912c62d6f89d67990c42b6eb9cf61674de6e7733"
            },
            "downloads": -1,
            "filename": "hspylib-1.12.38-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3576179a8780f1f4eefeae3fb6d73343",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 79718,
            "upload_time": "2024-04-25T02:12:48",
            "upload_time_iso_8601": "2024-04-25T02:12:48.527940Z",
            "url": "https://files.pythonhosted.org/packages/1a/e5/d4851d1fa1d3ebc905f8876d5357daa723252a7378907cc0a095d3a5354a/hspylib-1.12.38-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1817d94c3081c1c4db58f6ddea8557bc138b4c9be97069e9cf5f518efe8ed388",
                "md5": "ed3774cf4107b64558ce281385e57c4b",
                "sha256": "93374bde95dad44aede4049206991c79ef2476416d491dfa745efa25c43b5487"
            },
            "downloads": -1,
            "filename": "hspylib-1.12.38.tar.gz",
            "has_sig": false,
            "md5_digest": "ed3774cf4107b64558ce281385e57c4b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 55533,
            "upload_time": "2024-04-25T02:12:52",
            "upload_time_iso_8601": "2024-04-25T02:12:52.333310Z",
            "url": "https://files.pythonhosted.org/packages/18/17/d94c3081c1c4db58f6ddea8557bc138b4c9be97069e9cf5f518efe8ed388/hspylib-1.12.38.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-25 02:12:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yorevs",
    "github_project": "hspylib",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "hspylib"
}
        
Elapsed time: 0.26747s