The core library used by hypermea APIs.
Project description
hypermea-core
Please note: although we currently use this toolkit to create production-ready APIs, the toolkit is still under development. Use at your own risk. This doc is under a heavy rewrite. Information here is mostly correct, but there are gaps and it's messy.
Docs under construction!
Introduction
The core library is used by the hypermea toolkit. It is not intended to be used by itself (though if you know what you are doing, you could).
When you create an API using hypermea, this library is automatically installed and is available for you to use.
Please see hypermea for the full toolkit and documentation.
The core library
The core library consists of the following modules. These are all wired up in your API when you created it using hypermea. Some parts of the library provide useful functions to API developers. Others are intended for internal use and will not likely be useful to you directly.
Useful
hypermea.core.utils
details
- get_db() -> pymongo.database.Database
- get_api() -> flask.testing.FlaskClient
- make_error_response(message: str, code: int, issues) -> flask.wrappers.Response
- url_join(*parts: str) -> str
additional, but not likely useful
- get_my_base_url() -> str
- get_id_field(collection_name: str) -> str
- get_resource_id(resource: dict, collection_name: str) -> str
- is_mongo_running() -> bool (coming soon)
- echo_message()
Note: the log_setup.py
under utils
is used to set up logging and has no uses for your API
validation
Describe the HypermeaValidator
, used to add the following validations and types, as well as inheritable to extend:
validations
- unique_ignorecase
- unique_to_parent
- unique_to_tenant (coming soon)
- remote_relation (coming soon)
types
- iso_date
- iso_time
- iso_duration
(link to Eve doc for more info on extending)
logging
background explanation, mention the addition to the standard python logging
- configures
- standard formatting,
- logging errors to SMTP (
HY_SEND_ERROR_EMAILS
), - logging to folder (
HY_LOG_TO_FOLDER
) - doco details (timed rotation at midnight, etc.)
- the TRACE level accessible with
LOG.trace()
- the
@trace
decorator (enabled by default, disable by settingHY_TRACE_LOGGING
to disable)
reference how to adjust the logging verbosity level in the hypermea docs
settings_manager
details: singleton, pulls from environment variables, overridable with _env.conf
, etc. (note no underscores in prefix)
- create(prefix: str, setting_name: str, default_value: str = None, is_optional: bool = False)
- set_prefix_description(prefix: str, description: str)
- has_enabled(setting_name: str) -> bool
- dump(prefix: str = None, callback: Optional[Callable[[str], None]] = None)
- get(setting_name: str, default_value: str = None)
- []
Not ones you will likely use directly
affordances
details
gateway
details
hooks
details
render
details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file hypermea_core-0.9.25-py3-none-any.whl
.
File metadata
- Download URL: hypermea_core-0.9.25-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.5.0.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5421dea0a059ac3fd525171a42aef62d4329d3151c868435507a1d329922fea5 |
|
MD5 | d188f880a84edca9cc1011e8ccd8f8fe |
|
BLAKE2b-256 | 31472a7ff83b128911c86b513581d9aaca3e5e831eddc3a5e35f46699a8b0e82 |