본문 바로가기

Python50

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.
[issue] tensorflow, keras, transformer 버전 문제 TypeError: Exception encountered when calling layer 'embeddings' (type TFEmbeddings). colab, kaggle 에서 돌아가는 코드들이 로컬에서 돌리면 안돌아가는 경우가 있다. 대부분 버전문제로 아래 2줄의 코드로 해결했다. import os os.environ["TF_USE_LEGACY_KERAS"] = "1" 아래는 MacOS 에서 설치한 각버전 pip install tf-keras==2.16.0 pip install tensorflow-macos==2.15.0 pip install tensorflow-metal==1.1.0 # macos==2.15.0과 호환 pip install transformers==4.39.1 2024. 3. 29.
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.
Google 스타일 가이드 https://google.github.io/styleguide/ Google Style Guides Style guides for Google-originated open-source projects google.github.io AngularJS 스타일 가이드 일반적인 Lisp 스타일 가이드 C + + 스타일 가이드 C # 스타일 가이드 스타일 가이드 HTML / CSS 스타일 가이드 자바 스크립트 스타일 가이드 자바 스타일 가이드 Objective-C 스타일 가이드 파이썬 스타일 가이드 R 스타일 가이드 쉘 스타일 가이드 스위프트 스타일 가이드 TypeScript 스타일 가이드 Vim 스크립트 스타일 가이드 2023. 3. 23.
maturin, PyO3 - Rust 를 Python 에서 사용하자 Maturin 은 Rust 기반 Python 패키지를 구축하고 게시하는 도구이다 PyO3는 Python에서 rust코드를 실행할 수 있고, 반대로 rust에서 python 코드를 실행할 수 있게 도와주는 crate이다 // python 가상환경 활성화하고, 가상환경에 maturin 설치 $ pip install maturin $ mkdir temp & cd temp // rust project 시작, 위에서 만든 temp로 이름이 지정된다. $ maturin init -b pyo3 // 아래 파일들이 생성된다. rust 파일은 src/lib.rs // Cargo.toml, pyproject.toml 의 name을 변경하면 패키지 명을 변경할 수 있다 $ ls Cargo.toml pyproject.toml.. 2023. 3. 9.