Skip to main content

Common package for Microsoft Teams

Project description

Microsoft Teams Common Utilities

Shared utilities including HTTP client, logging, storage, and event handling. Provides common functionality used across other Teams SDK packages.

Features

  • HTTP Client: Async HTTP client with token support and interceptors
  • Event System: Type-safe event emitter for application lifecycle management
  • Storage: Local storage implementations for key-value and list data
  • Logging: Console logging with formatting and filtering

HTTP Client

from microsoft_teams.common import Client, ClientOptions

# Create HTTP client
client = Client(ClientOptions(
    base_url="https://api.example.com",
    headers={"User-Agent": "Teams-Bot/1.0"}
))

# Make requests
response = await client.get("/users/me")
data = await client.post("/messages", json={"text": "Hello"})

Event System

from microsoft_teams.common import EventEmitter

# Create type-safe event emitter
emitter = EventEmitter[str]()

# Register handler
def handle_message(data: str):
    print(f"Received: {data}")

subscription_id = emitter.on("message", handle_message)

# Emit event
emitter.emit("message", "Hello World")

# Remove handler
emitter.off(subscription_id)

Storage

from microsoft_teams.common import LocalStorage, ListLocalStorage

# Key-value storage
storage = LocalStorage[str]()
storage.set("key", {"data": "value"})
data = storage.get("key")

# Async operations
await storage.async_set("key", {"data": "value"})
data = await storage.async_get("key")

# List storage
list_storage = ListLocalStorage[str]()
list_storage.append("new-item")
items = list_storage.items()

Logging

The SDK uses Python's standard logging module. The library doesn't configure logging - your application should.

import logging

# Configure logging once at application startup
logging.getLogger().setLevel(logging.DEBUG)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(ConsoleFormatter())
logging.getLogger().addHandler(stream_handler)

# Use module-level loggers in your code
logger = logging.getLogger(__name__)
logger.info("Application started")

Custom Filtering

The SDK provides optional filtering as well:

stream_handler.addFilter(ConsoleFilter("microsoft_teams.*"))

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

microsoft_teams_common-2.0.12.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

microsoft_teams_common-2.0.12-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file microsoft_teams_common-2.0.12.tar.gz.

File metadata

File hashes

Hashes for microsoft_teams_common-2.0.12.tar.gz
Algorithm Hash digest
SHA256 36228607f09e15c71ab7af091859988f6c10532bf33988dfd732e979d9a994ff
MD5 d95fc6bfad0f25329d07016bac66d578
BLAKE2b-256 ef74f5175324efedb45d57c993062f062010c68a53019bda6af1870a6cf463c5

See more details on using hashes here.

File details

Details for the file microsoft_teams_common-2.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for microsoft_teams_common-2.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 06a3ebaeb8853f2224c7cba0a8dfc4bd593c68d947aa9189dd9e40f90f729aaa
MD5 863517e78bdc74fffc415f536f587ac9
BLAKE2b-256 4c7038e819dcf5b9ec14805c68b70ea5fba133ca6a21cb18ff8a9e5bf63af2ed

See more details on using hashes here.

Supported by

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