- mongo-ops now serves /mongo-ops/wiki/ and /mongo-ops/lib/ independently - add mongo-ops MCP bundle under mcp/mongo-ops - fix copy-paste mcp server (jwtlib -> mongo_ops) in config.yml - .drone.yml/Dockerfile: publish port 8007 for mongo-ops MCP
431 lines
22 KiB
JSON
431 lines
22 KiB
JSON
{
|
|
"module": "mongo_ops.repository",
|
|
"content": {
|
|
"path": "mongo_ops.repository",
|
|
"docstring": "Repository patterns and CRUD mixins for MongoDB.",
|
|
"objects": {
|
|
"datetime": {
|
|
"name": "datetime",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.datetime",
|
|
"signature": "<bound method Alias.signature of Alias('datetime', 'datetime.datetime')>",
|
|
"docstring": null
|
|
},
|
|
"Any": {
|
|
"name": "Any",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.Any",
|
|
"signature": "<bound method Alias.signature of Alias('Any', 'typing.Any')>",
|
|
"docstring": null
|
|
},
|
|
"Dict": {
|
|
"name": "Dict",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.Dict",
|
|
"signature": "<bound method Alias.signature of Alias('Dict', 'typing.Dict')>",
|
|
"docstring": null
|
|
},
|
|
"Generic": {
|
|
"name": "Generic",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.Generic",
|
|
"signature": "<bound method Alias.signature of Alias('Generic', 'typing.Generic')>",
|
|
"docstring": null
|
|
},
|
|
"List": {
|
|
"name": "List",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.List",
|
|
"signature": "<bound method Alias.signature of Alias('List', 'typing.List')>",
|
|
"docstring": null
|
|
},
|
|
"Optional": {
|
|
"name": "Optional",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.Optional",
|
|
"signature": "<bound method Alias.signature of Alias('Optional', 'typing.Optional')>",
|
|
"docstring": null
|
|
},
|
|
"TypeVar": {
|
|
"name": "TypeVar",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.TypeVar",
|
|
"signature": "<bound method Alias.signature of Alias('TypeVar', 'typing.TypeVar')>",
|
|
"docstring": null
|
|
},
|
|
"Union": {
|
|
"name": "Union",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.Union",
|
|
"signature": "<bound method Alias.signature of Alias('Union', 'typing.Union')>",
|
|
"docstring": null
|
|
},
|
|
"ObjectId": {
|
|
"name": "ObjectId",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.ObjectId",
|
|
"signature": "<bound method Alias.signature of Alias('ObjectId', 'bson.ObjectId')>",
|
|
"docstring": null
|
|
},
|
|
"AsyncIOMotorCollection": {
|
|
"name": "AsyncIOMotorCollection",
|
|
"kind": "alias",
|
|
"path": "mongo_ops.repository.AsyncIOMotorCollection",
|
|
"signature": "<bound method Alias.signature of Alias('AsyncIOMotorCollection', 'motor.motor_asyncio.AsyncIOMotorCollection')>",
|
|
"docstring": null
|
|
},
|
|
"MongoConnectionManager": {
|
|
"name": "MongoConnectionManager",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.MongoConnectionManager",
|
|
"signature": "<bound method Alias.signature of Alias('MongoConnectionManager', 'mongo_ops.connection.MongoConnectionManager')>",
|
|
"docstring": "Manages MongoDB connections with async lifecycle.\n\nThis class provides a singleton-like manager for the MongoDB client and \ndatabase instances, ensuring they are properly initialized and closed \nacross the application lifecycle.",
|
|
"members": {
|
|
"connect": {
|
|
"name": "connect",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.MongoConnectionManager.connect",
|
|
"signature": "<bound method Alias.signature of Alias('connect', 'mongo_ops.connection.MongoConnectionManager.connect')>",
|
|
"docstring": "Connect to MongoDB and initialize the shared client.\n\nArgs:\n uri: MongoDB connection URI (e.g., \"mongodb://localhost:27017\").\n db_name: Name of the database to use.\n **kwargs: Additional Motor client options (e.g., maxPoolSize).\n\nReturns:\n AsyncIOMotorDatabase: The initialized database instance."
|
|
},
|
|
"disconnect": {
|
|
"name": "disconnect",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.MongoConnectionManager.disconnect",
|
|
"signature": "<bound method Alias.signature of Alias('disconnect', 'mongo_ops.connection.MongoConnectionManager.disconnect')>",
|
|
"docstring": "Close the active MongoDB connection and cleanup resources."
|
|
},
|
|
"get_database": {
|
|
"name": "get_database",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.MongoConnectionManager.get_database",
|
|
"signature": "<bound method Alias.signature of Alias('get_database', 'mongo_ops.connection.MongoConnectionManager.get_database')>",
|
|
"docstring": "Retrieve the current database instance.\n\nReturns:\n AsyncIOMotorDatabase: The active database instance.\n\nRaises:\n RuntimeError: If connect() has not been called yet."
|
|
},
|
|
"get_client": {
|
|
"name": "get_client",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.MongoConnectionManager.get_client",
|
|
"signature": "<bound method Alias.signature of Alias('get_client', 'mongo_ops.connection.MongoConnectionManager.get_client')>",
|
|
"docstring": "Retrieve the current client instance.\n\nReturns:\n AsyncIOMotorClient: The active Motor client instance.\n\nRaises:\n RuntimeError: If connect() has not been called yet."
|
|
},
|
|
"lifespan": {
|
|
"name": "lifespan",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.MongoConnectionManager.lifespan",
|
|
"signature": "<bound method Alias.signature of Alias('lifespan', 'mongo_ops.connection.MongoConnectionManager.lifespan')>",
|
|
"docstring": "Async context manager for managing connection lifecycle.\n\nDesigned for use with FastAPI or other frameworks supporting \nlifespan management.\n\nArgs:\n uri: MongoDB connection URI.\n db_name: Name of the database.\n **kwargs: Additional Motor client options.\n\nYields:\n AsyncIOMotorDatabase: The active database instance.\n\nUsage:\n @asynccontextmanager\n async def lifespan(app: FastAPI):\n async with MongoConnectionManager.lifespan(uri, db_name):\n yield"
|
|
}
|
|
}
|
|
},
|
|
"BaseDocument": {
|
|
"name": "BaseDocument",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.BaseDocument",
|
|
"signature": "<bound method Alias.signature of Alias('BaseDocument', 'mongo_ops.models.BaseDocument')>",
|
|
"docstring": "Base document class with common MongoDB fields.\n\nInherit from this class to create Pydantic models that represent \nMongoDB documents. It includes automatic handling of the `_id` field \nand timestamps.\n\nAttributes:\n id: The MongoDB document ID (aliased to `_id`).\n created_at: Timestamp when the document was created.\n updated_at: Timestamp when the document was last updated.",
|
|
"members": {
|
|
"id": {
|
|
"name": "id",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.id",
|
|
"signature": "<bound method Alias.signature of Alias('id', 'mongo_ops.models.BaseDocument.id')>",
|
|
"docstring": null
|
|
},
|
|
"created_at": {
|
|
"name": "created_at",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.created_at",
|
|
"signature": "<bound method Alias.signature of Alias('created_at', 'mongo_ops.models.BaseDocument.created_at')>",
|
|
"docstring": null
|
|
},
|
|
"updated_at": {
|
|
"name": "updated_at",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.updated_at",
|
|
"signature": "<bound method Alias.signature of Alias('updated_at', 'mongo_ops.models.BaseDocument.updated_at')>",
|
|
"docstring": null
|
|
},
|
|
"Config": {
|
|
"name": "Config",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.BaseDocument.Config",
|
|
"signature": "<bound method Alias.signature of Alias('Config', 'mongo_ops.models.BaseDocument.Config')>",
|
|
"docstring": null,
|
|
"members": {
|
|
"populate_by_name": {
|
|
"name": "populate_by_name",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.Config.populate_by_name",
|
|
"signature": "<bound method Alias.signature of Alias('populate_by_name', 'mongo_ops.models.BaseDocument.Config.populate_by_name')>",
|
|
"docstring": null
|
|
},
|
|
"arbitrary_types_allowed": {
|
|
"name": "arbitrary_types_allowed",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.Config.arbitrary_types_allowed",
|
|
"signature": "<bound method Alias.signature of Alias('arbitrary_types_allowed', 'mongo_ops.models.BaseDocument.Config.arbitrary_types_allowed')>",
|
|
"docstring": null
|
|
},
|
|
"json_encoders": {
|
|
"name": "json_encoders",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.Config.json_encoders",
|
|
"signature": "<bound method Alias.signature of Alias('json_encoders', 'mongo_ops.models.BaseDocument.Config.json_encoders')>",
|
|
"docstring": null
|
|
},
|
|
"json_schema_extra": {
|
|
"name": "json_schema_extra",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseDocument.Config.json_schema_extra",
|
|
"signature": "<bound method Alias.signature of Alias('json_schema_extra', 'mongo_ops.models.BaseDocument.Config.json_schema_extra')>",
|
|
"docstring": null
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"PopulationEngine": {
|
|
"name": "PopulationEngine",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.PopulationEngine",
|
|
"signature": "<bound method Alias.signature of Alias('PopulationEngine', 'mongo_ops.populate.engine.PopulationEngine')>",
|
|
"docstring": null,
|
|
"members": {
|
|
"register_repo": {
|
|
"name": "register_repo",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulationEngine.register_repo",
|
|
"signature": "<bound method Alias.signature of Alias('register_repo', 'mongo_ops.populate.engine.PopulationEngine.register_repo')>",
|
|
"docstring": null
|
|
},
|
|
"populate": {
|
|
"name": "populate",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulationEngine.populate",
|
|
"signature": "<bound method Alias.signature of Alias('populate', 'mongo_ops.populate.engine.PopulationEngine.populate')>",
|
|
"docstring": null
|
|
},
|
|
"depopulate": {
|
|
"name": "depopulate",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulationEngine.depopulate",
|
|
"signature": "<bound method Alias.signature of Alias('depopulate', 'mongo_ops.populate.engine.PopulationEngine.depopulate')>",
|
|
"docstring": null
|
|
}
|
|
}
|
|
},
|
|
"PopulateRule": {
|
|
"name": "PopulateRule",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.PopulateRule",
|
|
"signature": "<bound method Alias.signature of Alias('PopulateRule', 'mongo_ops.populate.rules.PopulateRule')>",
|
|
"docstring": null,
|
|
"members": {
|
|
"field_name": {
|
|
"name": "field_name",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulateRule.field_name",
|
|
"signature": "<bound method Alias.signature of Alias('field_name', 'mongo_ops.populate.rules.PopulateRule.field_name')>",
|
|
"docstring": null
|
|
},
|
|
"collection_name": {
|
|
"name": "collection_name",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulateRule.collection_name",
|
|
"signature": "<bound method Alias.signature of Alias('collection_name', 'mongo_ops.populate.rules.PopulateRule.collection_name')>",
|
|
"docstring": null
|
|
},
|
|
"nested_rules": {
|
|
"name": "nested_rules",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulateRule.nested_rules",
|
|
"signature": "<bound method Alias.signature of Alias('nested_rules', 'mongo_ops.populate.rules.PopulateRule.nested_rules')>",
|
|
"docstring": null
|
|
},
|
|
"max_depth": {
|
|
"name": "max_depth",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulateRule.max_depth",
|
|
"signature": "<bound method Alias.signature of Alias('max_depth', 'mongo_ops.populate.rules.PopulateRule.max_depth')>",
|
|
"docstring": null
|
|
},
|
|
"filter": {
|
|
"name": "filter",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulateRule.filter",
|
|
"signature": "<bound method Alias.signature of Alias('filter', 'mongo_ops.populate.rules.PopulateRule.filter')>",
|
|
"docstring": null
|
|
},
|
|
"projection": {
|
|
"name": "projection",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulateRule.projection",
|
|
"signature": "<bound method Alias.signature of Alias('projection', 'mongo_ops.populate.rules.PopulateRule.projection')>",
|
|
"docstring": null
|
|
}
|
|
}
|
|
},
|
|
"T": {
|
|
"name": "T",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.T",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"CRUDMixin": {
|
|
"name": "CRUDMixin",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.CRUDMixin",
|
|
"signature": "<bound method Class.signature of Class('CRUDMixin', 16, 196)>",
|
|
"docstring": "Generic CRUD operations mixin for MongoDB collections.\n\nThis mixin provides standard Create, Read, Update, and Delete operations \nthat work with Pydantic models.\n\nAttributes:\n collection: The Motor collection instance.\n model: The Pydantic model class representing the document.",
|
|
"members": {
|
|
"collection": {
|
|
"name": "collection",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.CRUDMixin.collection",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"model": {
|
|
"name": "model",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.CRUDMixin.model",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"data_to_model": {
|
|
"name": "data_to_model",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.data_to_model",
|
|
"signature": "<bound method Function.signature of Function('data_to_model', 39, 40)>",
|
|
"docstring": null
|
|
},
|
|
"create": {
|
|
"name": "create",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.create",
|
|
"signature": "<bound method Function.signature of Function('create', 42, 58)>",
|
|
"docstring": "Create a new document in the collection.\n\nArgs:\n data: The Pydantic model instance to insert.\n\nReturns:\n T: The created Pydantic model instance, including the assigned ID."
|
|
},
|
|
"get_by_id": {
|
|
"name": "get_by_id",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.get_by_id",
|
|
"signature": "<bound method Function.signature of Function('get_by_id', 60, 74)>",
|
|
"docstring": "Retrieve a document by its ID.\n\nArgs:\n id: The document ID (string or ObjectId).\n\nReturns:\n Optional[T]: The Pydantic model instance if found, else None."
|
|
},
|
|
"get_many": {
|
|
"name": "get_many",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.get_many",
|
|
"signature": "<bound method Function.signature of Function('get_many', 76, 115)>",
|
|
"docstring": "Retrieve multiple documents with filtering, pagination, and sorting.\n\nArgs:\n filter: MongoDB filter dictionary (e.g., {\"is_active\": True}).\n skip: Number of documents to skip for pagination.\n limit: Maximum number of documents to return (default 100).\n sort: List of sort specifications [(field, direction), ...].\n E.g., [(\"created_at\", -1)] for descending.\n\nReturns:\n List[T]: A list of Pydantic model instances.\n\nUsage:\n ```python\n users = await repo.get_many(\n filter={\"role\": \"admin\"},\n limit=10,\n sort=[(\"username\", 1)]\n )\n ```"
|
|
},
|
|
"update": {
|
|
"name": "update",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.update",
|
|
"signature": "<bound method Function.signature of Function('update', 117, 142)>",
|
|
"docstring": "Update a document by its ID using the $set operator.\n\nArgs:\n id: The document ID (string or ObjectId).\n data: A dictionary of fields and values to update.\n\nReturns:\n Optional[T]: The updated Pydantic model instance if found, else None.\n\nUsage:\n ```python\n updated_user = await repo.update(user_id, {\"email\": \"new@example.com\"})\n ```"
|
|
},
|
|
"patch": {
|
|
"name": "patch",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.patch",
|
|
"signature": "<bound method Function.signature of Function('patch', 144, 167)>",
|
|
"docstring": "Partially update a document using $set (REST PATCH semantics).\n\nUnlike update(), patch() takes a partial dict and applies only those\nfields. PopulatingRepository overrides this to prevent patching FK fields.\n\nArgs:\n id: The document ID (string or ObjectId).\n data: A partial dictionary of fields and values to update.\n\nReturns:\n Optional[T]: The updated Pydantic model instance if found, else None."
|
|
},
|
|
"delete": {
|
|
"name": "delete",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.delete",
|
|
"signature": "<bound method Function.signature of Function('delete', 169, 183)>",
|
|
"docstring": "Delete a document by its ID.\n\nArgs:\n id: The document ID (string or ObjectId).\n\nReturns:\n bool: True if a document was deleted, False otherwise."
|
|
},
|
|
"count": {
|
|
"name": "count",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.CRUDMixin.count",
|
|
"signature": "<bound method Function.signature of Function('count', 185, 196)>",
|
|
"docstring": "Count documents matching a filter.\n\nArgs:\n filter: MongoDB filter dictionary.\n\nReturns:\n int: The number of matching documents."
|
|
}
|
|
}
|
|
},
|
|
"BaseRepository": {
|
|
"name": "BaseRepository",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.BaseRepository",
|
|
"signature": "<bound method Class.signature of Class('BaseRepository', 199, 221)>",
|
|
"docstring": "Base repository class combining CRUD operations and collection management.\n\nThis class simplifies repository creation by automatically obtaining the \ndatabase connection and collection instance.\n\nAttributes:\n collection_name: The name of the collection managed by this repository.",
|
|
"members": {
|
|
"collection_name": {
|
|
"name": "collection_name",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.BaseRepository.collection_name",
|
|
"signature": null,
|
|
"docstring": null
|
|
}
|
|
}
|
|
},
|
|
"PopulatingRepository": {
|
|
"name": "PopulatingRepository",
|
|
"kind": "class",
|
|
"path": "mongo_ops.repository.PopulatingRepository",
|
|
"signature": "<bound method Class.signature of Class('PopulatingRepository', 224, 342)>",
|
|
"docstring": null,
|
|
"members": {
|
|
"population_engine": {
|
|
"name": "population_engine",
|
|
"kind": "attribute",
|
|
"path": "mongo_ops.repository.PopulatingRepository.population_engine",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"set_population_engine": {
|
|
"name": "set_population_engine",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulatingRepository.set_population_engine",
|
|
"signature": "<bound method Function.signature of Function('set_population_engine', 236, 237)>",
|
|
"docstring": null
|
|
},
|
|
"set_populate_rules": {
|
|
"name": "set_populate_rules",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulatingRepository.set_populate_rules",
|
|
"signature": "<bound method Function.signature of Function('set_populate_rules', 239, 240)>",
|
|
"docstring": null
|
|
},
|
|
"data_to_model": {
|
|
"name": "data_to_model",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulatingRepository.data_to_model",
|
|
"signature": "<bound method Function.signature of Function('data_to_model', 242, 244)>",
|
|
"docstring": null
|
|
},
|
|
"create": {
|
|
"name": "create",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulatingRepository.create",
|
|
"signature": "<bound method Function.signature of Function('create', 322, 328)>",
|
|
"docstring": null
|
|
},
|
|
"update": {
|
|
"name": "update",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulatingRepository.update",
|
|
"signature": "<bound method Function.signature of Function('update', 330, 332)>",
|
|
"docstring": null
|
|
},
|
|
"patch": {
|
|
"name": "patch",
|
|
"kind": "function",
|
|
"path": "mongo_ops.repository.PopulatingRepository.patch",
|
|
"signature": "<bound method Function.signature of Function('patch', 334, 342)>",
|
|
"docstring": null
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |