huggingface나 코테에서 활용되는 python built-in container들을 정리했다.
Docs
일반적인 python의 dictionary와 동일하다. 상속받거나 객체로써 다루기 쉽도록 만든 단순한 wrapper다.
HuggingFace BatchEncoding Github
HuggingFace의 tokenizer를 호출하면 BatchEncoding type으로 return해준다. BatchEncoding을 아래와 같이 pop하는 코드들이 있었는데 이해가 가지 않았다. 찾아보니 BatchEncoding은 UserDict의 subclass였다. 즉, python dictionary에서 쓰는 pop의 기능을 그대로 사용한 것이다.
sample_mapping = tokenized_examples.pop("overflow_to_sample_mapping")
ref blog
python 3.6이전에는 Dictionary의 순서가 보장되지 않아서 OrderedDict가 필요했다. 3.6 이후부터는 기본 Dictionary도 iteration에서의 순서성이 보장된다.
비교 연산 시에 Dictionary는 순서성을 고려하지 않고, OrderedDict는 고려한다.
양방향 큐(Double-ended queue).
공식 docs보다 ref blog에 정리가 더 잘 돼있다.