Skip to main content

Overview

Build Status

This is DependencyProvider for Nameko microservices framework which enables users to work with MongoDb.

First of all I should say that this package based on https://github.com/saiqi/nameko-mongodb . Thank you @saiqi :)

What has been changed:

  • Automatic uploading to PyPI by Travis-CI (it was a primary purpose for building of my pet projects)
  • Disabled by default results logging
  • Some fixes to make this stuff work with new Nameko

Requirements

  • Python 2.7 / 3.4 / 3.5 / 3.6 / 3.7
  • Nameko 3.11+
  • MongoDb :)

Installation

The same as you guessing: pip install nameko-mongodb

How to use

There are some configuration options to use this package (required are in bold):

  • MONGODB_CONNECTION_URL - connection URL
  • MONGODB_DB_NAME - database name. Default is your service name
  • MONGODB_USER - if you need to be authenticated, provide username
  • MONGODB_PASSWORD
  • MONGODB_AUTHENTICATION_BASE - a source to authenticate. See more information in PyMongo documentation
  • MONGODB_AUTH_MECHANISM - see more information in PyMongo documentation

You can use the connection following way:

from nameko.rpc import rpc
import MongoDatabase from nameko_mongodb


class YourService(object):
    name = 'your_service'

    database = MongoDatabase()

    @rpc
    def find_item(self):
        return self.database.your_collection.find_one()

Also this package can log all executions to logging collection. If you want to use it:

from nameko.rpc import rpc
import MongoDatabase from nameko_mongodb


class YourService(object):
    name = 'your_service'

    database = MongoDatabase(result_backend=True)

    @rpc
    def find_item(self):
        return self.database.your_collection.find_one()

Sometimes there can be useful to get possibility executing callbacks for DependencyProvider methods (i.e. migrating data when dependency initialized etc.). There are some callbacks:

  • on_before_setup: (instance)
  • on_after_setup: (instance)
  • on_before_stop: (instance)
  • on_after_stop: (instance)
  • on_before_worker_setup: (instance, worker_ctx)
  • on_after_worker_setup: (instance, worker_ctx)
  • on_before_worker_result: (instance, worker_ctx, result, exc_info)
  • on_after_worker_result: (instance, worker_ctx, result, exc_info)

How to use callbacks:

from nameko.rpc import rpc
import MongoDatabase from nameko_mongodb


class YourService(object):
    name = 'your_service'

    database = MongoDatabase(
        on_before_setup=lambda x: print("Start setup DP"), 
        on_after_setup=lambda x: print("Stop setup DP"),
    )

    @rpc
    def find_item(self):
        return self.database.your_collection.find_one()

Contribution

I'd be glad to see your pull requests

Metadata

Release files for nameko-mongodb 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nameko-mongodb 1.1.1
File Size Uploaded
nameko-mongodb-1.1.1.tar.gz 3.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nameko-mongodb 1.1.1
File Interpreter ABI Platform
nameko_mongodb-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.7 kB

Release files / nameko-mongodb-1.1.1.tar.gz

Download URL nameko-mongodb-1.1.1.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e47dc208c3271c7a2ad407f6ee944f2125f42d67d98c0d114c3928c72e2844c4
BLAKE2b-256 checksum
How to use checksums
6e5691a8cd025ce146c866e9564223f47cea6d2f4a311667aa15f554d1fca0ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

Release files / nameko_mongodb-1.1.1-py3-none-any.whl

Download URL nameko_mongodb-1.1.1-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1fcc3c50dd064f27f27fe183b3ec50d84232b8a15591b54066c546f4830e31b
BLAKE2b-256 checksum
How to use checksums
906ef8303d1597d9c8e4fcadcc2fccc697a172ccdb9622fdd3d1a8be488a721c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page