Skip to main content

Simple MongoDb dependency for nameko (microservices framework). Based on https://github.com/saiqi/nameko-mongodb

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nameko-mongodb-1.1.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

nameko_mongodb-1.1.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file nameko-mongodb-1.1.1.tar.gz.

File metadata

  • Download URL: nameko-mongodb-1.1.1.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for nameko-mongodb-1.1.1.tar.gz
Algorithm Hash digest
SHA256 e47dc208c3271c7a2ad407f6ee944f2125f42d67d98c0d114c3928c72e2844c4
MD5 21da7660ad8f967067884ab8a9668a0e
BLAKE2b-256 6e5691a8cd025ce146c866e9564223f47cea6d2f4a311667aa15f554d1fca0ca

See more details on using hashes here.

File details

Details for the file nameko_mongodb-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: nameko_mongodb-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for nameko_mongodb-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1fcc3c50dd064f27f27fe183b3ec50d84232b8a15591b54066c546f4830e31b
MD5 b947f3bddb254001de0c8548401e0c34
BLAKE2b-256 906ef8303d1597d9c8e4fcadcc2fccc697a172ccdb9622fdd3d1a8be488a721c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page