Async Object-oriented Python SDK for the Pexels API.
Project description
Async Object-oriented Python SDK for the Pexels API.
Overview • Quick Start • Examples • Bugs and Feature Requests • PyPI
Overview
This SDK is designed to interact with the Pexels API in a more object-oriented way. It provides asynchronous methods to interact with the API. The SDK is designed to be as simple as possible to use, while still providing a lot of flexibility and uses Pydantic models to validate the data.
Used dependencies:
httpxfor asynchronous APIpydanticfor models
Supported Python versions:
- 3.11
- 3.12
Quick Start
After installing the SDK, you can create a new instance of the API. When creating a new instance, you can either use environment variables or pass the credentials directly. It's strongly recommended to use environment variables to store the API credentials.
Installation
pip install pypexel
Create a new instance of the API
It's recommended to use an environment variable to store the API credentials:
import os
os.environ["PEXELS_API_KEY"] = "your-api-key"
To work asynchronously:
import pypexel as pex
# Using environment variables:
api = pex.AsyncApi.from_env()
# Or using the credentials directly:
api = pex.AsyncApi("your-api-key")
Examples
You'll find detailed docs with usage examples for both APIs and for used models in the corresponding package directories:
In this section, you'll find some examples of how to use the SDK. You can also check out the demo.py file in the root directory for more examples.
Search for photos
import asyncio
import os
import pypexel as pex
os.environ["PEXELS_API_KEY"] = "your-api-key"
api = pex.AsyncApi.from_env()
async def main():
# Search for photos with the query "nature"
photos = await api.photos.search("nature", limit=10)
# Print the first photo's URL
if photos:
print(photos[0].src.original)
else:
print("No photos found.")
asyncio.run(main())
Search for videos
import asyncio
import os
import pypexel as pex
os.environ["PEXELS_API_KEY"] = "your-api-key"
api = pex.AsyncApi.from_env()
async def main():
# Search for videos with the query "nature"
videos = await api.videos.search("nature", limit=10)
# Print the first video URL
if videos:
print(videos[0].video_files[0].link)
else:
print("No videos found.")
asyncio.run(main())
Bugs and Feature Requests
If you find a bug or have a feature request, please open an issue on the GitHub repository.
You're also welcome to contribute to the project by opening a pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypexel-0.0.2.tar.gz.
File metadata
- Download URL: pypexel-0.0.2.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b74b52b7475b30f532a9fb1a96117d03285f0f4c40b9451778ac0d143c39251
|
|
| MD5 |
d44d8fe706c4d808e5dbdff6c4ad27f3
|
|
| BLAKE2b-256 |
9e7ebfe32993a3e2931da7f43c1d9185fc6675de88bb4dcccaddaa4aa2afce0e
|
File details
Details for the file pypexel-0.0.2-py3-none-any.whl.
File metadata
- Download URL: pypexel-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cac89096b140a625d465ff541c771b2c88b2599373b3fc2e77b03319b218c477
|
|
| MD5 |
c5b646e689e1cb42706231bf59a721bf
|
|
| BLAKE2b-256 |
1fc92dd72303aaba67eb3df1e5de42b7eaec265d230aa5f09d3dbfab2f3e68aa
|