satella


Namesatella JSON
Version 2.25.1 PyPI version JSON
download
home_page
SummaryUtilities for writing servers in Python
upload_time2024-03-12 08:39:34
maintainer
docs_urlNone
author
requires_python>=3.7
licenseMIT License
keywords ha high availability scalable scalability server metrics tracing instrumentation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            satella
========
![Workflow](https://github.com/piotrmaslanka/satella/actions/workflows/ci.yml/badge.svg)[![Code Climate](https://codeclimate.com/github/piotrmaslanka/satella/badges/gpa.svg)](https://codeclimate.com/github/piotrmaslanka/satella)
[![Issue Count](https://codeclimate.com/github/piotrmaslanka/satella/badges/issue_count.svg)](https://codeclimate.com/github/piotrmaslanka/satella)
[![PyPI](https://img.shields.io/pypi/pyversions/satella.svg)](https://pypi.python.org/pypi/satella)
[![PyPI version](https://badge.fury.io/py/satella.svg)](https://badge.fury.io/py/satella)
[![PyPI](https://img.shields.io/pypi/implementation/satella.svg)](https://pypi.python.org/pypi/satella)
[![Documentation Status](https://readthedocs.org/projects/satella/badge/?version=latest)](http://satella.readthedocs.io/en/latest/?badge=latest)
[![License](https://img.shields.io/pypi/l/satella)](https://github.com/piotrmaslanka/satella)
[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint)

Satella is an almost-zero-requirements Python 3.7+ library for writing server applications. It has arisen out of my
requirements to have some classes or design patterns handy, and kinda wish-they-were-in-the-stdlib ones. especially
those dealing with mundane but useful things. It also runs on PyPy, and most of it runs on Windows (the part not dealing
with forking processes, you see).

Satella uses [semantic versioning 2.0](https://semver.org/spec/v2.0.0.html).

Satella contains, among other things:

* things to help you manage your [application's configuration](satella/configuration) that allows
    you to both load a configuration and specify it's schema using only
    Python dictionaries
* a fully equipped [metrics library](satella/instrumentation/metrics)
    * alongside a fully metricized [ThreadPoolExecutor](satella/instrumentation/metrics/structures/threadpool.py)
    * and an exporter to [Prometheus](satella/instrumentation/metrics/exporters/prometheus.py) or really any
      [OpenMetrics](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md) compliant
      ingester
    * as well as exporters/metricizers for the following libraries:
        * [AWS](https://github.com/piotrmaslanka/aws-satella)
        * [FastAPI](https://github.com/Dronehub/fastapi-satella-metrics)
        * [Django](https://github.com/piotrmaslanka/django-satella-metrics)
        * [Flask](https://github.com/piotrmaslanka/flask-satella-metrics)
* helpful [exception handlers](satella/exception_handling) as well as capacity to dump all stack frames
    along with their local variables for each thread
* monitoring [CPU usage](satella/instrumentation/cpu_time/collectors) on the system and by your own process
* common programming [idioms and structures](satella/coding)

Most Satella objects make heavy use of `__slots__`, so they are memory friendly and usable on embedded systems, where
memory is at premium.

Change log is kept as part of [release notes](https://github.com/piotrmaslanka/satella/releases).
The [CHANGELOG.md](CHANGELOG.md) file is only to track changes since last release.

Full [documentation](http://satella.readthedocs.io/en/latest/?badge=latest)
is available for the brave souls that do decide to use this library.

See [LICENSE](LICENSE) for text of the license. This library may contain code taken from elsewhere on the internets, so
this is copyright (c) respective authors.

If you want to install extra modules, just run

```bash
pip install satella[extras]
```

Running unit tests
------------------

Tests run by default on GitHub Actions.

They should pass on Windows too, but some tests requiring POSIX-like functionality are skipped.

Automatic release system
------------------------

Releases happen automatically. Just add a tag with the name of the version.

**NOTE that changes from 2.25 will be numbered as tags without the prefix ```v```**!

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "satella",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "ha,high availability,scalable,scalability,server,metrics,tracing,instrumentation",
    "author": "",
    "author_email": "Piotr Ma\u015blanka <pmaslanka@smok.co>",
    "download_url": "https://files.pythonhosted.org/packages/39/ed/58ccfe39b58a281beb57b50d6093431234c531888edf00a74f51d9ce830f/satella-2.25.1.tar.gz",
    "platform": null,
    "description": "satella\r\n========\r\n![Workflow](https://github.com/piotrmaslanka/satella/actions/workflows/ci.yml/badge.svg)[![Code Climate](https://codeclimate.com/github/piotrmaslanka/satella/badges/gpa.svg)](https://codeclimate.com/github/piotrmaslanka/satella)\r\n[![Issue Count](https://codeclimate.com/github/piotrmaslanka/satella/badges/issue_count.svg)](https://codeclimate.com/github/piotrmaslanka/satella)\r\n[![PyPI](https://img.shields.io/pypi/pyversions/satella.svg)](https://pypi.python.org/pypi/satella)\r\n[![PyPI version](https://badge.fury.io/py/satella.svg)](https://badge.fury.io/py/satella)\r\n[![PyPI](https://img.shields.io/pypi/implementation/satella.svg)](https://pypi.python.org/pypi/satella)\r\n[![Documentation Status](https://readthedocs.org/projects/satella/badge/?version=latest)](http://satella.readthedocs.io/en/latest/?badge=latest)\r\n[![License](https://img.shields.io/pypi/l/satella)](https://github.com/piotrmaslanka/satella)\r\n[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint)\r\n\r\nSatella is an almost-zero-requirements Python 3.7+ library for writing server applications. It has arisen out of my\r\nrequirements to have some classes or design patterns handy, and kinda wish-they-were-in-the-stdlib ones. especially\r\nthose dealing with mundane but useful things. It also runs on PyPy, and most of it runs on Windows (the part not dealing\r\nwith forking processes, you see).\r\n\r\nSatella uses [semantic versioning 2.0](https://semver.org/spec/v2.0.0.html).\r\n\r\nSatella contains, among other things:\r\n\r\n* things to help you manage your [application's configuration](satella/configuration) that allows\r\n    you to both load a configuration and specify it's schema using only\r\n    Python dictionaries\r\n* a fully equipped [metrics library](satella/instrumentation/metrics)\r\n    * alongside a fully metricized [ThreadPoolExecutor](satella/instrumentation/metrics/structures/threadpool.py)\r\n    * and an exporter to [Prometheus](satella/instrumentation/metrics/exporters/prometheus.py) or really any\r\n      [OpenMetrics](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md) compliant\r\n      ingester\r\n    * as well as exporters/metricizers for the following libraries:\r\n        * [AWS](https://github.com/piotrmaslanka/aws-satella)\r\n        * [FastAPI](https://github.com/Dronehub/fastapi-satella-metrics)\r\n        * [Django](https://github.com/piotrmaslanka/django-satella-metrics)\r\n        * [Flask](https://github.com/piotrmaslanka/flask-satella-metrics)\r\n* helpful [exception handlers](satella/exception_handling) as well as capacity to dump all stack frames\r\n    along with their local variables for each thread\r\n* monitoring [CPU usage](satella/instrumentation/cpu_time/collectors) on the system and by your own process\r\n* common programming [idioms and structures](satella/coding)\r\n\r\nMost Satella objects make heavy use of `__slots__`, so they are memory friendly and usable on embedded systems, where\r\nmemory is at premium.\r\n\r\nChange log is kept as part of [release notes](https://github.com/piotrmaslanka/satella/releases).\r\nThe [CHANGELOG.md](CHANGELOG.md) file is only to track changes since last release.\r\n\r\nFull [documentation](http://satella.readthedocs.io/en/latest/?badge=latest)\r\nis available for the brave souls that do decide to use this library.\r\n\r\nSee [LICENSE](LICENSE) for text of the license. This library may contain code taken from elsewhere on the internets, so\r\nthis is copyright (c) respective authors.\r\n\r\nIf you want to install extra modules, just run\r\n\r\n```bash\r\npip install satella[extras]\r\n```\r\n\r\nRunning unit tests\r\n------------------\r\n\r\nTests run by default on GitHub Actions.\r\n\r\nThey should pass on Windows too, but some tests requiring POSIX-like functionality are skipped.\r\n\r\nAutomatic release system\r\n------------------------\r\n\r\nReleases happen automatically. Just add a tag with the name of the version.\r\n\r\n**NOTE that changes from 2.25 will be numbered as tags without the prefix ```v```**!\r\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Utilities for writing servers in Python",
    "version": "2.25.1",
    "project_urls": {
        "Changelog": "https://github.com/piotrmaslanka/satella/blob/develop/CHANGELOG.md",
        "Documentation": "https://satella.readthedocs.io/",
        "Homepage": "https://github.com/piotrmaslanka/satella",
        "Issues": "https://github.com/piotrmaslanka/satella/issues",
        "Repository": "https://github.com/piotrmaslanka/satella"
    },
    "split_keywords": [
        "ha",
        "high availability",
        "scalable",
        "scalability",
        "server",
        "metrics",
        "tracing",
        "instrumentation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "92513c8073db8a5420a043190aa1becd57d529fedaaa78fcc79cc70f66c82d0c",
                "md5": "60e7b56a5b5a66bdbdd6cb873d38bcfe",
                "sha256": "1c15fb30f52f5731afb7b82c2626325960473b0ffa9024a291e829cdb11df0e7"
            },
            "downloads": -1,
            "filename": "satella-2.25.1-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "60e7b56a5b5a66bdbdd6cb873d38bcfe",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.7",
            "size": 234774,
            "upload_time": "2024-03-12T08:39:28",
            "upload_time_iso_8601": "2024-03-12T08:39:28.750897Z",
            "url": "https://files.pythonhosted.org/packages/92/51/3c8073db8a5420a043190aa1becd57d529fedaaa78fcc79cc70f66c82d0c/satella-2.25.1-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39ed58ccfe39b58a281beb57b50d6093431234c531888edf00a74f51d9ce830f",
                "md5": "60a412c41d3fc1e73ea4f8c125450bd3",
                "sha256": "bbbb4ff0157518dd4a93ac650636f10eac6ba0404697681db0d708523f6c2656"
            },
            "downloads": -1,
            "filename": "satella-2.25.1.tar.gz",
            "has_sig": false,
            "md5_digest": "60a412c41d3fc1e73ea4f8c125450bd3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 250035,
            "upload_time": "2024-03-12T08:39:34",
            "upload_time_iso_8601": "2024-03-12T08:39:34.660105Z",
            "url": "https://files.pythonhosted.org/packages/39/ed/58ccfe39b58a281beb57b50d6093431234c531888edf00a74f51d9ce830f/satella-2.25.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-12 08:39:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "piotrmaslanka",
    "github_project": "satella",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "satella"
}
        
Elapsed time: 0.22258s