Post 638

πŸ—‚ File: 638-photo.jpg

Post 637

Choose one of these options.
Exit in seconds: 8

Post 636

https://youtu.be/jj53cCZ0wFg?si=ccBpYalv6MHCG3WL

Post 635

'3.4.2': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'],
'4.0.0': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'],
'4.1.0': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'],
'4.1.1': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'],
'4.2.0': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'],
'4.2.1': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'],
'4.3.0': ['Only', '3.10', '3.11', '3.12', '3.13', '3.9', 'CPython', 'PyPy'

Post 634

import requests
from pprint import pprint

def get_compatible_versions(package_name, python_version):
"""
ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°, совмСстимых с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ вСрсиСй Python.

:param package_name: str, имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° PyPI
:param python_version: str, вСрсия Python (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, '3.7')
:return: list, список подходящих вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°
"""
url = f"https://pypi.org/pypi/{package_name}/json"
response = requests.get(url)

if response.status_code != 200:
raise ValueError(f"Ошибка запроса: {response.status_code}")

data = response.json()
versions = data.get('releases', {})
compatible_versions = []

for version, details in versions.items():
if not details: # ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Ссли Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π½Π΅Ρ‚
continue
requires_python = details[0].get('requires_python')
v_python_version = details[0].get('python_version')

print(version)
print(requires_python)
print(v_python_version)
print()


if not requires_python or ',' in requires_python: # ΠŸΡ€ΠΎΠΏΡƒΡΠΊ условий с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ
continue
min_version = requires_python.replace('>=', '')


if float(min_version) <= float(python_version):
compatible_versions.append(version)

print()

return compatible_versions

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
python_version = '3.10'
package_name = 'pillow'
compatible_versions = get_compatible_versions(package_name, python_version)

print("ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΠΈΠ΅ вСрсии:")
pprint(compatible_versions)


import requests
from pprint import pprint

def get_package_metadata(package_name):
"""
ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Classifiers.

:param package_name: str, имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° PyPI
:return: dict, ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°
"""
url = f"https://pypi.org/pypi/{package_name}/json"
response = requests.get(url)

if response.status_code != 200:
raise ValueError(f"Ошибка запроса: {response.status_code}")

data = response.json()
info = data.get('info', {})
classifiers = info.get('classifiers', [])

# ΠŸΠ°Ρ€ΡΠΈΠ½Π³ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· classifiers
metadata = {
"Programming Language": [cls for cls in classifiers if cls.startswith("Programming Language")]
}

return metadata

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
package_name = "pillow"
metadata = get_package_metadata(package_name)

print("ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°:")
pprint(metadata)



print('==='*10)

import requests
from pprint import pprint

def get_python_versions_for_package(package_name):
"""
ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ вСрсии Python, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ всСми вСрсиями ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

:param package_name: str, имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° PyPI
:return: dict, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ - вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π°, значСния - ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии Python
"""
url = f"https://pypi.org/pypi/{package_name}/json"
response = requests.get(url)

if response.status_code != 200:
raise ValueError(f"Ошибка запроса: {response.status_code}")

data = response.json()
releases = data.get('releases', {})
info = data.get('info', {})
all_classifiers = info.get('classifiers', [])

# Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСх Python вСрсий ΠΈΠ· classifiers
supported_python_versions = [
classifier.split("::")[-1].strip()
for classifier in all_classifiers
if classifier.startswith("Programming Language :: Python ::")
]

# БопоставлСниС с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсиСй ΠΏΠ°ΠΊΠ΅Ρ‚Π°
version_support = {}
for version, details in releases.items():
if details:
version_support[version] = supported_python_versions

return version_support

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
package_name = "pillow"
python_versions_by_package_version = get_python_versions_for_package(package_name)

print("ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии Python для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π°:")
pprint(python_versions_by_package_version)

Post 633

πŸ—‚ File: 633-photo.jpg

Post 632

https://svgomg.net/

Post 631

πŸ—‚ File: 631-photo.jpg

Post 630

πŸ—‚ File: 630-photo.jpg