
Security News
Open Source Maintainers Feeling the Weight of the EU’s Cyber Resilience Act
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.
Okapi ===== Python Library to send API info to Storage Server Okapi setup =========== In an existing project you should at least modify the following files: requirements/base.txt --------------------- Add the following requirement to the project's settings. It won't be needed to add ``requests`` if the project is already using it. ``requests`` version should be >= 2.2.11: .. code-block:: python okapi==X.Y.Z settings.py ----------- Add the following configuration to the project's settings: .. code-block:: python ########## OKAPI CONFIGURATION OKAPI_PROJECT = 'your-project-name' OKAPI_URI = None if settings.has_section('okapi'): OKAPI_URI = 'mongodb://{0},{1},{2}/{3}?replicaSet={4}'.format( settings.get('okapi', 'host0'), settings.get('okapi', 'host1'), settings.get('okapi', 'host2'), settings.get('okapi', 'name'), settings.get('okapi', 'replica'), ) ########## END OKAPI CONFIGURATION Note that if the project is already using *MongoDB*, you shouldn't store Okapi's data into the same database. Okapi creates collections dynamically and could conflict with your the project's. Initialization -------------- Initialize Okapi in the ``models.py`` file of a basic application of the project. This way Okapi will be imported at startup time: .. code-block:: python import requests from django.conf import settings from okapi.api import Api project_name = getattr(settings, 'OKAPI_PROJECT') mongodb_uri = getattr(settings, 'MONGODB_URI') okapi_client = Api(project_name, requests, mongodb_uri) Usage ----- Once initialized you can use Okapi wherever you use ``requests`` library. Think of Okapi as if you were using ``requests`` because they both have the same API. Requests documentation: http://docs.python-requests.org/en/latest/ Activating/deactivating okapi in your project --------------------------------------------- In the file ``settings/base.py`` under the ``OKAPI CONFIGURATION`` section, you can add a boolean setting in order to enable/disable okapi for your project. It could be interesting to have it enabled in QA or staging environment and after it has been properly tested, activate it also in production. You can have a section into ``your-project-name/settings/dev.py``: .. code-block:: python ########## OKAPI CONFIGURATION OKAPI_ENABLED = True ########## END OKAPI CONFIGURATION Another one into ``your-project-name/settings/production.py``: .. code-block:: python ########## OKAPI CONFIGURATION OKAPI_ENABLED = False ########## END OKAPI CONFIGURATION And so on. Note that ``get_custom_setting`` is a wrapper around ``getattr``. Then you could initialize it conditionally as shown below: .. code-block:: python http_lib = requests if (get_custom_setting('OKAPI_ENABLED') and okapi_uri is not None): project_name = get_custom_setting('OKAPI_PROJECT', required=True) okapi_uri = get_custom_setting('OKAPI_URI', required=True) okapi_client = Api(project_name, requests, okapi_uri) http_lib = okapi_client 0.12.0 (2015-04-01) ------------------- - New Features: - Method `get_mongodb_client` to get a MongoDB connection client. - Bugfixes: - None - Incompatible changes: - `Okapi.__init__` has changed to have a new mandatory `db` parameter. Parameters `mongodb_uri` and `connect_timeout_ms` have been removed. 0.11.0 (2014-12-29) ------------------- - New Features: - Changed blank space to a T letter as indicator of the beginning of the time element to be more iso-friendly: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15 0.10.0 (2014-11-11) ------------------- - New Features: - Don't hardcode the name of the database but expect it to be in the mongodb_uri parameter. 0.9.0 (2014-10-16) ------------------ - New Features: - Decouple okapi from requests so that any library following requests interface can be used. This introduces a backward incompatible change because now the __init__ method for okapi Api class requires a new argument 0.8.0 (2014-09-26) ------------------ - New features: - Use one collection per project instead of saving all projects in the same collection - Add a time_bucket attribute to make time based queries faster 0.7.1 (2014-07-28) ---------------- - Bug Fixes: -Make sure to raise the exception if an error occurs so the user know exactly what is happening instead of code crashing
Python Library to send API info to Storage Server
In an existing project you should at least modify the following files:
Add the following requirement to the project's settings. It won't be needed to
add requests
if the project is already using it.
requests
version should be >= 2.2.11:
.. code-block:: python
okapi==X.Y.Z
Add the following configuration to the project's settings:
.. code-block:: python
########## OKAPI CONFIGURATION
OKAPI_PROJECT = 'your-project-name'
OKAPI_URI = None
if settings.has_section('okapi'):
OKAPI_URI = 'mongodb://{0},{1},{2}/{3}?replicaSet={4}'.format(
settings.get('okapi', 'host0'),
settings.get('okapi', 'host1'),
settings.get('okapi', 'host2'),
settings.get('okapi', 'name'),
settings.get('okapi', 'replica'),
)
########## END OKAPI CONFIGURATION
Note that if the project is already using MongoDB, you shouldn't store Okapi's data into the same database. Okapi creates collections dynamically and could conflict with your the project's.
Initialize Okapi in the models.py
file of a basic application of the project.
This way Okapi will be imported at startup time:
.. code-block:: python
import requests
from django.conf import settings
from okapi.api import Api
project_name = getattr(settings, 'OKAPI_PROJECT')
mongodb_uri = getattr(settings, 'MONGODB_URI')
okapi_client = Api(project_name, requests, mongodb_uri)
Once initialized you can use Okapi wherever you use requests
library.
Think of Okapi as if you were using requests
because they both have the same
API.
Requests documentation: http://docs.python-requests.org/en/latest/
In the file settings/base.py
under the OKAPI CONFIGURATION
section, you
can add a boolean setting in order to enable/disable okapi for your project. It
could be interesting to have it enabled in QA or staging environment and after
it has been properly tested, activate it also in production.
You can have a section into your-project-name/settings/dev.py
:
.. code-block:: python
########## OKAPI CONFIGURATION
OKAPI_ENABLED = True
########## END OKAPI CONFIGURATION
Another one into your-project-name/settings/production.py
:
.. code-block:: python
########## OKAPI CONFIGURATION
OKAPI_ENABLED = False
########## END OKAPI CONFIGURATION
And so on. Note that get_custom_setting
is a wrapper around getattr
.
Then you could initialize it conditionally as shown below:
.. code-block:: python
http_lib = requests
if (get_custom_setting('OKAPI_ENABLED') and okapi_uri is not None):
project_name = get_custom_setting('OKAPI_PROJECT', required=True)
okapi_uri = get_custom_setting('OKAPI_URI', required=True)
okapi_client = Api(project_name, requests, okapi_uri)
http_lib = okapi_client
FAQs
Okapi ===== Python Library to send API info to Storage Server Okapi setup =========== In an existing project you should at least modify the following files: requirements/base.txt --------------------- Add the following requirement to the project's settings. It won't be needed to add ``requests`` if the project is already using it. ``requests`` version should be >= 2.2.11: .. code-block:: python okapi==X.Y.Z settings.py ----------- Add the following configuration to the project's settings: .. code-block:: python ########## OKAPI CONFIGURATION OKAPI_PROJECT = 'your-project-name' OKAPI_URI = None if settings.has_section('okapi'): OKAPI_URI = 'mongodb://{0},{1},{2}/{3}?replicaSet={4}'.format( settings.get('okapi', 'host0'), settings.get('okapi', 'host1'), settings.get('okapi', 'host2'), settings.get('okapi', 'name'), settings.get('okapi', 'replica'), ) ########## END OKAPI CONFIGURATION Note that if the project is already using *MongoDB*, you shouldn't store Okapi's data into the same database. Okapi creates collections dynamically and could conflict with your the project's. Initialization -------------- Initialize Okapi in the ``models.py`` file of a basic application of the project. This way Okapi will be imported at startup time: .. code-block:: python import requests from django.conf import settings from okapi.api import Api project_name = getattr(settings, 'OKAPI_PROJECT') mongodb_uri = getattr(settings, 'MONGODB_URI') okapi_client = Api(project_name, requests, mongodb_uri) Usage ----- Once initialized you can use Okapi wherever you use ``requests`` library. Think of Okapi as if you were using ``requests`` because they both have the same API. Requests documentation: http://docs.python-requests.org/en/latest/ Activating/deactivating okapi in your project --------------------------------------------- In the file ``settings/base.py`` under the ``OKAPI CONFIGURATION`` section, you can add a boolean setting in order to enable/disable okapi for your project. It could be interesting to have it enabled in QA or staging environment and after it has been properly tested, activate it also in production. You can have a section into ``your-project-name/settings/dev.py``: .. code-block:: python ########## OKAPI CONFIGURATION OKAPI_ENABLED = True ########## END OKAPI CONFIGURATION Another one into ``your-project-name/settings/production.py``: .. code-block:: python ########## OKAPI CONFIGURATION OKAPI_ENABLED = False ########## END OKAPI CONFIGURATION And so on. Note that ``get_custom_setting`` is a wrapper around ``getattr``. Then you could initialize it conditionally as shown below: .. code-block:: python http_lib = requests if (get_custom_setting('OKAPI_ENABLED') and okapi_uri is not None): project_name = get_custom_setting('OKAPI_PROJECT', required=True) okapi_uri = get_custom_setting('OKAPI_URI', required=True) okapi_client = Api(project_name, requests, okapi_uri) http_lib = okapi_client 0.12.0 (2015-04-01) ------------------- - New Features: - Method `get_mongodb_client` to get a MongoDB connection client. - Bugfixes: - None - Incompatible changes: - `Okapi.__init__` has changed to have a new mandatory `db` parameter. Parameters `mongodb_uri` and `connect_timeout_ms` have been removed. 0.11.0 (2014-12-29) ------------------- - New Features: - Changed blank space to a T letter as indicator of the beginning of the time element to be more iso-friendly: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15 0.10.0 (2014-11-11) ------------------- - New Features: - Don't hardcode the name of the database but expect it to be in the mongodb_uri parameter. 0.9.0 (2014-10-16) ------------------ - New Features: - Decouple okapi from requests so that any library following requests interface can be used. This introduces a backward incompatible change because now the __init__ method for okapi Api class requires a new argument 0.8.0 (2014-09-26) ------------------ - New features: - Use one collection per project instead of saving all projects in the same collection - Add a time_bucket attribute to make time based queries faster 0.7.1 (2014-07-28) ---------------- - Bug Fixes: -Make sure to raise the exception if an error occurs so the user know exactly what is happening instead of code crashing
We found that okapi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.
Security News
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.