Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Python library for interacting with the monday.com API. Respects monday.com API rate limits and query complexity limits.
This Python library provides an asynchronous client to interact with the monday.com API.
For detailed documentation, visit the official documentation site.
asyncio
and aiohttp
for efficient I/O operations.pip install monday-client
import asyncio
from monday import MondayClient
async def main():
monday_client = MondayClient(api_key='your_api_key_here')
boards = await monday_client.boards.query(board_ids=[987654321, 876543210])
items = await monday_client.items.query(item_ids=[123456789, 123456780])
asyncio.run(main())
All methods provided by the MondayClient
are asynchronous and should be awaited. This allows for efficient concurrent execution of API calls.
The client automatically handles rate limiting in compliance with monday.com's API policies. When a rate limit is reached, the client will wait for the specified reset time before retrying the request. This ensures that your application doesn't need to manually handle rate limit exceptions and can operate smoothly.
Custom exceptions are defined for handling specific error cases:
MondayAPIError
: Raised when an error occurs during API communication with monday.com.PaginationError
: Raised when item pagination fails during a request.QueryFormatError
: Raised when there is a query formatting error.ComplexityLimitExceeded
: Raised when the complexity limit and max retries are exceeded.MutationLimitExceeded
: Raised when the mutation limit and max retries are exceeded.The client uses a logger named monday_client
for all logging operations. By default, a NullHandler
is added to suppress logging output. To enable logging, you can configure the logger in your application:
import logging
logger = logging.getLogger('monday_client')
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)
Or update an already existing logging config:
import logging.config
logging_config = config['logging']
logging_config['loggers'].update({
'monday_client': {
'handlers': ['file', 'console'], # Use the same handlers as your main logger
'level': 'INFO', # Set appropriate level
'propagate': False
}
})
logging.config.dictConfig(logging_config)
logger = logging.getLogger(__name__)
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
FAQs
Python library for interacting with the monday.com API. Respects monday.com API rate limits and query complexity limits.
We found that monday-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.