🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis β†’
Socket
Book a DemoInstallSign in
Socket

compression-cache

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compression-cache

Python function caching with compression

pipPyPI
Version
0.0.24
Maintainers
1

COMPRESSION-CACHE

PyPI version GitHub

ОписаниС

COMPRESSION-CACHE β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, прСдназначСнная для эффСктивного ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ сТатых Π΄Π°Π½Π½Ρ‹Ρ…. Она прСдоставляСт инструмСнты для хранСния ΠΈ управлСния сТатыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² памяти ΠΈΠ»ΠΈ Π½Π° дискС, позволяя ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΡƒΠΆΠ΅ сТатых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² прилоТСниях, Π³Π΄Π΅ трСбуСтся частоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, систСмы хранСния ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² областях с ограничСниями ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ встроСнных систСмах.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ COMPRESSION-CACHE:

  • Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… - ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сТатия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ZIP, GZIP) для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ объСма Π΄Π°Π½Π½Ρ‹Ρ….
  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ - сохранСниС сТатых Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти ΠΈΠ»ΠΈ Π½Π° дискС для ускорСния ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… запросов.
  • Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ - оптимизация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ….
  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² сТатия ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ прилоТСния.

Установка

  • Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:
    pip install compression-cache
    

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Async:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ асинхронного ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅

import asyncio, faker, random
from typing import Dict, List, Union
from compression_cache import CacheTTL


async def get_accounts(count_account: int) -> List[Dict[str, Union[str, int]]]:
 print(f"Get new list accounts count_account: {count_account}")
 fake = faker.Faker()
 accounts: List[Dict[str, Union[str, int]]] = []
 for _ in range(count_account):
     account = {
         "id": random.randint(1000, 9999),
         "name": fake.user_name(),
         "first_name": fake.first_name(),
         "last_name": fake.last_name(),
     }
     accounts.append(account) # type: ignore
 return accounts


@CacheTTL(ttl=60 * 5, key_args=["count_account"], compressor_level=3)
async def async_function(count_account: int) -> List[Dict[str, Union[str, int]]]:
 return await get_accounts(count_account=count_account)


async def main():
 for count_account in [10, 20, 10, 20]:
     print(f"count_account: {count_account}")
     await async_function(count_account=count_account)


asyncio.run(main())

Sync:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ синхронного ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅

import faker, random
from typing import Dict, List, Union
from compression_cache import CacheTTL


def get_accounts(count_account: int) -> List[Dict[str, Union[str, int]]]:
 print(f"Get new list accounts count_account: {count_account}")
 fake = faker.Faker()
 accounts: List[Dict[str, Union[str, int]]] = []
 for _ in range(count_account):
     account = {
         "id": random.randint(1000, 9999),
         "name": fake.user_name(),
         "first_name": fake.first_name(),
         "last_name": fake.last_name(),
     }
     accounts.append(account) # type: ignore
 return accounts


@CacheTTL(ttl=60 * 5, key_args=["count_account"], compressor_level=3)
def async_function(count_account: int) -> List[Dict[str, Union[str, int]]]:
 return get_accounts(count_account=count_account)


def main():
 for count_account in [10, 20, 10, 20]:
     print(f"count_account: {count_account}")
     async_function(count_account=count_account)


main()

License

MIT License

FAQs

Did you know?

Socket

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.

Install

Related posts