{"id":15442935,"url":"https://github.com/jhermann/rudiments","last_synced_at":"2025-04-19T20:13:36.141Z","repository":{"id":29546228,"uuid":"33085306","full_name":"jhermann/rudiments","owner":"jhermann","description":":package: Fundamental elements for any Python project, like configuration handling.","archived":false,"fork":false,"pushed_at":"2021-07-31T09:39:29.000Z","size":161,"stargazers_count":11,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-18T13:17:02.269Z","etag":null,"topics":["package","python","python-3","utility-library"],"latest_commit_sha":null,"homepage":"https://rudiments.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jhermann.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-29T19:11:38.000Z","updated_at":"2024-05-15T12:55:38.000Z","dependencies_parsed_at":"2022-09-03T18:00:27.709Z","dependency_job_id":null,"html_url":"https://github.com/jhermann/rudiments","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhermann%2Frudiments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhermann%2Frudiments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhermann%2Frudiments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhermann%2Frudiments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhermann","download_url":"https://codeload.github.com/jhermann/rudiments/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249788934,"owners_count":21325775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["package","python","python-3","utility-library"],"created_at":"2024-10-01T19:32:00.689Z","updated_at":"2025-04-19T20:13:36.118Z","avatar_url":"https://github.com/jhermann.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rudiments\n\n![logo](https://raw.githubusercontent.com/jhermann/rudiments/master/docs/img/logo.png)  | Fundamental elements for any Python project, like configuration handling.\n:----: | :----\n**Project** | [![Librelist](https://img.shields.io/badge/Librelist-python.rudiments-orange.svg)](http://librelist.com/browser/python.rudiments) [![Documentation](https://readthedocs.org/projects/rudiments/badge/?version=latest)](https://readthedocs.org/projects/rudiments/?badge=latest) [![License](https://img.shields.io/pypi/l/rudiments.svg)](https://github.com/jhermann/rudiments/blob/master/LICENSE)\n**QA** | [![Travis CI](https://api.travis-ci.org/jhermann/rudiments.svg)](https://travis-ci.org/jhermann/rudiments) [![Coveralls](https://img.shields.io/coveralls/jhermann/rudiments.svg)](https://coveralls.io/r/jhermann/rudiments) [![GitHub Issues](https://img.shields.io/github/issues/jhermann/rudiments.svg)](https://github.com/jhermann/rudiments/issues)\n**Release** | [![Latest Version](https://img.shields.io/pypi/v/rudiments.svg)](https://pypi.python.org/pypi/rudiments/) [![Downloads](https://img.shields.io/pypi/dw/rudiments.svg)](https://pypi.python.org/pypi/rudiments/)\n\n\n## Overview\n\nThis library collects ‘miscellaneous’ functionality that is unspecific in nature and shared among many projects.\nIt also collects small extensions to other support packages that don't warrant their own project,\nin the ``rudiments.reamed`` package.\n\nSee “Other Packages” below for problem domains that are already covered by good to excellent solutions.\n\n:speech_balloon: | To get help or talk about this project, please use the python.rudiments@librelist.com mailing list.\n---- | :----\n\n\n## Usage\n\n*Rudiments* can be installed from PyPI via ``pip install rudiments`` as usual,\nsee [releases](https://github.com/jhermann/rudiments/releases) for an overview of available versions\n– the project uses [semantic versioning](http://semver.org/)\nand follows [PEP 440](https://www.python.org/dev/peps/pep-0440/) conventions.\nTo get a bleeding-edge version from source, use these commands:\n\n```sh\nrepo=\"jhermann/rudiments\"\npip install -r \"https://raw.githubusercontent.com/$repo/master/requirements.txt\"\npip install -UI -e \"git+https://github.com/$repo.git#egg=${repo#*/}\"\n```\n\nSee [Contributing](#contributing) on how to create a full development environment.\n\n\n## Other Packages\n\nThis is a list of packages that solve a certain problem domain\nand are (hopefully) best-of-breed.\n\nProject | Description\n----: | :----\n[Arrow](https://arrow.readthedocs.io/) | Better dates and times for Python – see also [Pendulum](https://github.com/sdispater/pendulum), [Delorean](https://github.com/myusuf3/delorean), and [Maya](https://github.com/kennethreitz/maya)\n[boltons](https://boltons.readthedocs.io/en/latest/) | A set of pure-Python utilities augmenting the stdlib\n[Click](http://click.pocoo.org/) | Command line interface framework\n[colorama](https://pypi.python.org/pypi/colorama) | Cross-platform colored terminal text\n[github3.py](http://github3py.readthedocs.io/) | GitHub API v3 client\n[netifaces](https://bitbucket.org/al45tair/netifaces) | Portable network interface information\n[pyparsing](https://pyparsing.wikispaces.com/) | A library of classes that allows to construct a grammar in pure Python code\n[poyo](https://github.com/hackebrot/poyo) | A pure-Python YAML parser\n[Requests](http://docs.python-requests.org/en/latest/) | Anything HTTP\n[Reusables](https://github.com/cdgriffith/Reusables) | Utilities that programmers may find themselves often recreating\n[sh](http://amoffat.github.io/sh/) | Full-fledged subprocess interface, treat any program as if it were a function\n[sorted_containers](https://github.com/grantjenks/sorted_containers) | Ordered collections (list, dict, set), pure Python and as fast as C\n[Soupy](http://soupy.readthedocs.io/) | Soupy wraps a fluent query interface around BeautifulSoup.\n\nSpecifically on the subject of configuration handling, these are the ones to consider…\n\nProject | Description\n----: | :----\n[configobj](http://configobj.readthedocs.io/en/latest/) | Config file reading, writing and validation\n[dectate](https://github.com/morepath/dectate) | A powerful configuration engine for Python frameworks, based on decorators.\n[dynaconf](https://github.com/rochacbruno/dynaconf) | OSM (Object Settings Mapper) reading from a set of different data stores such as Python settings files, environment variables, Redis, Memcached, INI files, JSON files, YAML files, or your custom extension\n[configman](https://github.com/mozilla/configman) | The grand unified configuration system from Mozilla\n[prettyconf](https://github.com/osantana/prettyconf) | Easy separation of configuration and code, following the recomendations for 12 Factor apps\n[biome](https://github.com/darvid/biome) | Provides painless typed access to namespaced environment variables\n\nThe following help you with writing your unit and integration tests.\n\nProject | Description\n----: | :----\n[pytest-localserver](https://pypi.python.org/pypi/pytest-localserver) | *py.test* plugin to test server connections locally\n[Responses](https://github.com/getsentry/responses) | A utility for mocking out the *Requests* library\n\n\n## Contributing\n\nTo create a working directory for this project, call these commands:\n\n```sh\ngit clone \"https://github.com/jhermann/rudiments.git\"\ncd \"rudiments\"\n. .env --yes --develop\ninvoke build --docs test check\n```\n\nContributing to this project is easy, and reporting an issue or\nadding to the documentation also improves things for every user.\nYou don’t need to be a developer to contribute.\nSee [CONTRIBUTING](https://github.com/jhermann/rudiments/blob/master/CONTRIBUTING.md) for more.\n\n\n## References\n\n**Tools**\n\n* [Cookiecutter](http://cookiecutter.readthedocs.io/en/latest/)\n* [PyInvoke](http://www.pyinvoke.org/)\n* [pytest](http://pytest.org/latest/contents.html)\n* [tox](https://tox.readthedocs.io/en/latest/)\n* [Pylint](http://docs.pylint.org/)\n* [twine](https://github.com/pypa/twine#twine)\n* [bpython](http://docs.bpython-interpreter.org/)\n* [yolk3k](https://github.com/myint/yolk#yolk)\n\n**Packages**\n\n* [Rituals](https://jhermann.github.io/rituals)\n* [keyring](http://pythonhosted.org/keyring/)\n\n\n## Acknowledgements\n\n* Documentation hosted by [Read the Docs](https://readthedocs.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhermann%2Frudiments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjhermann%2Frudiments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhermann%2Frudiments/lists"}