A Python library to fetch PyPI package information (sync & async)
Project description
PyPi Python Library
یک کتابخانه پایتون برای دریافت اطلاعات پکیجهای PyPI به صورت سینک یا آسنکرون.
این کتابخانه به طور خودکار تشخیص میدهد که در محیط آسنکرون هستید یا نه و متد مناسب را استفاده میکند.
نصب
برای نصب نیازی به پکیج خاصی نیست جز requests و aiohttp:
pip install requests aiohttp pypiget
سپس فایل pypi.py را در پروژه خود قرار دهید و import کنید:
from pypi import PyPi
استفاده
نمونه سینک:
from pypi import PyPi
pypi = PyPi()
# اطلاعات پکیج
info = pypi.get_package_info("requests")
print(info)
# ورژنهای پکیج
releases = pypi.get_releases("requests")
print(releases)
# بررسی بهروزرسانی
is_updated = pypi.is_package_updated("requests")
print(is_updated)
# اطلاعات نویسنده
author_info = pypi.show_package_author_info("requests")
print(author_info)
# تاریخ آخرین آپدیت
last_update = pypi.show_last_update_date("requests")
print(last_update)
# URL صفحه اصلی پکیج
home_url = pypi.get_package_url("requests")
print(home_url)
نمونه آسنکرون:
import asyncio
from pypi import PyPi
async def main():
pypi = PyPi()
# اطلاعات پکیج
info = await pypi.get_package_info("requests")
print(info)
# بررسی وضعیت پکیج
status = await pypi.check_package_status("requests")
print(status)
asyncio.run(main())
متدها
| متد | توضیح | نوع |
|---|---|---|
get_package_info(package_name) |
دریافت اطلاعات کامل پکیج | سینک/آسنکرون |
get_releases(package_name) |
دریافت لیست ورژنها | سینک/آسنکرون |
is_package_updated(package_name) |
بررسی آخرین بهروزرسانی (<30 روز) | سینک/آسنکرون |
show_package_author_info(package_name) |
اطلاعات نویسنده (نام و ایمیل) | سینک/آسنکرون |
show_last_update_date(package_name) |
تاریخ آخرین آپدیت | سینک/آسنکرون |
get_popular_packages(limit=10) |
دریافت لیست پکیجهای محبوب (HTML) | سینک/آسنکرون |
get_package_url(package_name) |
URL صفحه خانه پکیج | سینک/آسنکرون |
get_first_release_date(package_name) |
تاریخ اولین انتشار پکیج | سینک/آسنکرون |
check_package_status(package_name) |
بررسی موجودیت پکیج | سینک/آسنکرون |
ویژگیها
- خودکار تشخیص محیط سینک یا آسنکرون
- پشتیبانی کامل از تمام متدهای PyPI
- طراحی ساده و یکپارچه
- امکان استفاده در پروژههای async بدون تغییر کد
مثال پیشرفته
میتوان از متدها در پروژههای ترکیبی استفاده کرد، بدون اینکه نگران محیط سینک یا async باشید:
import asyncio
from pypi import PyPi
pypi = PyPi()
async def main():
info = await pypi.get_package_info("requests")
print(info['info']['summary'])
asyncio.run(main())
# یا سینک مستقیم
releases = pypi.get_releases("requests")
print(releases)
نصب در پروژه
کافیست فایل pypi.py را در پروژه خود قرار دهید و import کنید:
project/
├─ main.py
├─ pypi.py
└─ ...
مجوز
MIT License
میتوانید آزادانه استفاده، تغییر و انتشار دهید.
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 pypiget-0.2.0.tar.gz.
File metadata
- Download URL: pypiget-0.2.0.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a658fedfc05d6321c4565d768b11b967729459d0a2ee82b15a70145ecd4e10d7
|
|
| MD5 |
c9192eb5c820e44ce68a18a539c7bd4d
|
|
| BLAKE2b-256 |
4915257bc1922c1314187abc164d97ddf264e1cb5098bac08c8f3389f3ab691c
|
File details
Details for the file pypiget-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pypiget-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cf260b68cb41eec4b51a7d252cc39db35b4a4abc5881d87c91608ba65b9a6fd
|
|
| MD5 |
8af8acf11214ef947c5af0c96b16c708
|
|
| BLAKE2b-256 |
3f973fd04e4cab3b42a4268b1403e957c4edc4e008d8b562bcc36326b7ceed13
|