본문 바로가기

Programming/Python47

uv - Python Package Manager Python 개발자들은 패키지 관리와 가상 환경 설정을 위해 주로 pip과 poetry를 사용해 왔습니다. 그러나 최근 Rust로 개발된 초고속 Python 패키징 도구인 uv가 등장하여 주목받고 있습니다. uv란 무엇인가요?uv는 Rust로 작성된 매우 빠른 Python 패키지 설치 및 관리 도구로, pip 및 pip-tools의 워크플로우를 대체하도록 설계되었습니다. 기존 도구보다 10배에서 100배까지 빠른 성능을 자랑하며, 단일 정적 바이너리로 제공되어 Python 버전에 따라 pip 설치를 관리할 필요 없이 독립적으로 설치할 수 있습니다. uv의 주요 기능• 가상 환경 생성: uv venv 명령을 통해 .venv 디렉토리에 가상 환경을 생성할 수 있습니다.uv venv특정 Python 버전을.. 2025. 1. 10.
decorator - 데커레이터 decorator 패턴은 '@'표기를 사용해 함수 또는 메서드의 변환을 우아하게 지정해준다'함수의 객체'와 '함수를 변경하는 다른 객체'의 wrapping을 허용한다@decodef method(arg): # method... passdecorator 를 사용한 위 코드는 아래코드와 같다def method(arg): # method... passmethod = deco(method)import functoolsimport timeline_len = 80def clen(s): """Calculate the effective length of a string considering full-width characters.""" return sum(1 if ord(c) >= 0x2E80 else.. 2024. 10. 30.
python 으로 asdict, from_dict 직접 구현 편의를 위해서 dict을 많이 사용하지만 변수들이 많아지면 class화 해서 사용하는 것이 좋다. 아래 처럼 dataclass 사용시 입력값을 request의 json으로 받거나 dict으로 변환했을 때 class의 파라미터에 셋하는 from_dict 구현내용이다. 구현된 asdict 대신에 dataclasses.asdict 을 사용해도 된다. 아래의 asdict는 조건들을 추가하고 싶어서 만든 것이다. from dataclasses import dataclass, fields @dataclass class AppRawData: sessionId: str = "" deviceId: str = "" uuid: str = "" view_url: str = "" event_name: str = "" event.. 2023. 12. 18.
docker compose - python default 컨테이너 만들기 매번 가상환경(pyenv, poetry) 생성하는 것보다, 별도의 도커 컨테이너 만들기 필요한 파일 docker-compose.yml Dockerfile requirements.txt # docker-compose.yml version: '3' services: app: build: . stdin_open: true tty: true volumes: - .:/app # Dockerfile FROM python:3.11-slim-buster WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt; \ apt-get update; \ apt-get install -y --no-install-recommen.. 2023. 4. 5.
try except를 깔끔하게 사용하기 - suppress 간혹 아래처럼 예외발생 후 로그나 다른 처리없이 pass를 사용하는 경우가 생긴다. 아래처럼 사용해도 상관없지만, 파이썬은 suppress를 사용하면 깔끔하게 된다. try: code... except Exception: pass from contextlib import suppress with suppress(Exception): code... 2023. 1. 31.
datetime, str, timestamp 변환 str로 변환 timestamp -> str('2020-11-30 00:00:00') import time timestamp = time.time() dt = str(datetime.fromtimestamp(timestamp)) print(dt) # 2020-11-30 00:00:00 datetime -> str('2020-11-30 00:00:00') from datetime import datetime s = datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(s) # 2020-12-12 00:00:00 timestamp 로 변환 str('2020-11-30 00:00:00') -> timestamp From date time import date time im.. 2021. 1. 13.