깃허브(Github)의 파이썬(Python) 저장소인 Cpython에서, 애플(Apple)의 2020년 WWDC행사에서 공개한 arm64 플랫폼에 대한 PR 공개되었습니다.

https://github.com/python/cpython/pull/21224

 

bpo-41100: allow python to build for macosx-11.0-arm64 by lawrence-danna-apple · Pull Request #21224 · python/cpython

allow python to build for macosx-11.0-arm64, by adding the appropriate case to configure.ac https://bugs.python.org/issue41164

github.com

allow python to build for macosx-11.0-arm64

 

Issue 41164: allow python to build for macosx-11.0-arm64 - Python tracker

Issue41164 Created on 2020-06-29 23:57 by lawrence-danna-apple, last changed 2020-06-29 23:59 by lawrence-danna-apple. File name Uploaded Description Edit 0001-arm64.patch lawrence-danna-apple, 2020-06-29 23:57 URL Status Linked Edit PR 21224 open lawrence

bugs.python.org

bpo-41164: allow python to build for macosx-11.0-arm64 #21224

 

bpo-41164: allow python to build for macosx-11.0-arm64 by lawrence-danna-apple · Pull Request #21224 · python/cpython

allow python to build for macosx-11.0-arm64, by adding the appropriate case to configure.ac https://bugs.python.org/issue41164

github.com

PR를 검토자가 검토하고 적용되면, 앞으로 나올 새로운 애플(Apple)의 arm64플랫폼에서 파이썬(Python)을 쓸 수 있을 것 같습니다.

'컴퓨터 > Python' 카테고리의 다른 글

파이썬(Python)에 새로운 애플(Apple) arm64 지원 PR공개  (0) 2020.06.30
Buy me a coffeeBuy me a coffee

이번에 Python을 이용하여 LibreOffice의 Unittest 소스코드에 공헌을 해보았습니다.

출처:

관련 링크:

링크의 Cppunit 소스코드에 보면 입력된 값에 대해서 이 값이 기대된 값(Expected value)인지 검사하는 로직이 있습니다.

이 단위테스트에서 주석과 결과를 넣어야할텐데, 문자열의 유니코드 코드포인트값을 어떻게 빠르게 뽑아낼까 고민을 하다 역시 Python이 있었지 하면서 Python으로 결과값을 뽑아내서 cppunittest 소스코드를 수정 작성하였습니다.

        // DBNum1 -> NatNum4: Korean lower case characters
        // 一億二千三百四十五万六千七百八十九
        sExpected = u"\u4e00\u5104\u4e8c\u5343\u4e09\u767e\u56db\u5341\u4e94\u4e07\u516d\u5343\u4e03\u767e\u516b\u5341\u4e5d ";
        sCode = "[NatNum4][$-0412]General\\ ";
        checkPreviewString(aFormatter, sCode, 123456789, eLang, sExpected);
        sCode = "[DBNum1][$-0412]General\\ ";
        checkPreviewString(aFormatter, sCode, 123456789, eLang, sExpected);

아래는, 주석에 적은 문자열를 Python을 이용하여 Unicode Codepoint로 변환하는 예제입니다.

Python 3.8.3 (default, May 27 2020, 20:54:22) 
[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> "一億二千三百四十五万六千七百八十九".encode("unicode_escape")
b'\\u4e00\\u5104\\u4e8c\\u5343\\u4e09\\u767e\\u56db\\u5341\\u4e94\\u4e07\\u516d\\u5343\\u4e03\\u767e\\u516b\\u5341\\u4e5d'
>>> "壹億貳阡參佰四拾伍萬六阡七佰八拾九".encode("unicode_escape")
b'\\u58f9\\u5104\\u8cb3\\u9621\\u53c3\\u4f70\\u56db\\u62fe\\u4f0d\\u842c\\u516d\\u9621\\u4e03\\u4f70\\u516b\\u62fe\\u4e5d'
>>> "1억2천3백4십5만6천7백8십9".encode("unicode_escape")
b'\\uff11\\uc5b5\\uff12\\ucc9c\\uff13\\ubc31\\uff14\\uc2ed\\uff15\\ub9cc\\uff16\\ucc9c\\uff17\\ubc31\\uff18\\uc2ed\\uff19'
>>> "일억이천삼백사십오만육천칠백팔십구".encode("unicode_escape")
b'\\uc77c\\uc5b5\\uc774\\ucc9c\\uc0bc\\ubc31\\uc0ac\\uc2ed\\uc624\\ub9cc\\uc721\\ucc9c\\uce60\\ubc31\\ud314\\uc2ed\\uad6c'
>>> 

Python의 결과값을 이용하여 Cppunittest의 결과값 비교를 하는데 유용하여 사용했습니다.

Python이 아니였으면 일본사람인 小笠原徳彦(Naruhiko Ogasawara)님과 협업으로 리브레오피스 소스코드 수정하는데 많이 지연이 되었을 것 같아요.

 

ps. 파이썬(Python)같이 생산성 빠른 언어를 익혀두면 언젠간 쓸 일이 생긴다.

ps2. 참고할만한 글

https://towardsdatascience.com/a-guide-to-unicode-utf-8-and-strings-in-python-757a232db95c

A Guide to Unicode, UTF-8 and Strings in Python

Strings are one of the most common data types in Python. This guide will help you master Unicode, UTF-8 and strings in general.

towardsdatascience.com

 

Buy me a coffeeBuy me a coffee

The Guts of Unicode in Python 

- PyCon 2013 talk by Benjamin Peterson


Summary

This talk will examine how Python's internal Unicode representation has changed from its introduction through the latest major changes in Python 3.3. I'll present properties of the current Unicode implementation like algorithmic complexity and standard compliance. The talk will also compare Unicode in Python with some other languages. Finally, I'll look into the future of Python's Unicode.


Buy me a coffeeBuy me a coffee
突然の死




살아남아라! 개복치 게임 의 "돌연사"

_人人 人人_ 

> 돌연사 < 
 ̄Y^Y^Y^Y ̄ 

를 패러디한 Python 라이브러리



Buy me a coffeeBuy me a coffee

금융 데이터 이해와 분석 PyCon 2014


Buy me a coffeeBuy me a coffee

출처: Python-Patterns  https://github.com/faif/python-patterns


python-patterns

A collection of design patterns and idioms in Python.

Current Patterns:

Pattern Description
3-tier data<->business logic<->presentation separation (strict relationships)
abstract_factory use a generic function with specific factories
adapter adapt one interface to another using a whitelist
borg a singleton with shared-state among instances
bridge a client-provider middleman to soften interface changes
builder call many little discrete methods rather than having a huge number of constructor parameters
catalog general methods will call different specialized methods based on construction parameter
chain apply a chain of successive handlers to try and process the data
command bundle a command and arguments to call later
composite encapsulate and provide access to a number of different objects
decorator wrap functionality with other functionality in order to affect outputs
facade use one class as an API to a number of others
factory_method delegate a specialized function/method to create instances
flyweight transparently reuse existing instances of objects with similar/identical state
graph_search (graphing algorithms, not design patterns)
iterator structure repeated, identical calls as a generator
mediator an object that knows how to connect other objects and act as a proxy
memento generate an opaque token that can be used to go back to a previous state
mvc model<->view<->controller (non-strict relationships)
observer provide a callback for notification of events/changes to data
pool preinstantiate and maintain a group of instances of the same type
prototype use a factory and clones of a prototype for new instances (if instantiation is expensive)
proxy an object funnels operations to something else
publish_subscribe a source syndicates events/data to 0+ registered listeners
state logic is org'd into a discrete number of potential states and the next state that can be transitioned to
strategy selectable operations over the same data
template an object imposes a structure but takes pluggable components
visitor invoke a callback for all items of a collection

ps. 조만간 디자인 패턴(Design Pattern)내용을 한글로 번역해서 정리해볼 예정

Buy me a coffeeBuy me a coffee



빠르게 활용하는 파이썬 3.2 프로그래밍

저자
신호철, 우상정, 최동진 지음
출판사
위키북스 | 2012-04-12 출간
카테고리
컴퓨터/IT
책소개
[빠르게 활용하는 파이썬 3.2 프로그래밍]은 강력하고 쉬운 언...
가격비교

위키북스에서 "빠르게 활용하는 파이썬 3.2 프로그래밍"에 대한 동영상 강좌를 Youtube에 올려놓고 무료로 공개하였습니다.


이제 파이썬(Python) 공부 열심히 해볼까요? ㅎㅎ


출처: 위키북스 트위터


Buy me a coffeeBuy me a coffee

유명한 개발자인 허준회님의 블로그에서


오픈소스 개발 참여, 저 만화에 나온것처럼 어렵지 않아요.

저 만화를 보다보면 "GStreamer에 10여개 패치를 제출한 한국인 개발자"가 나오는데, 이 분은 제 지인이신 가나초코렛(@ganadist)님입니다. 

그리고 허준회님과 같이 그놈 한국에 소속되어 있지요.

"역시나 천재개발자는 오픈소스에 열심히 참여하더라는 말이 사실이였군요"란 생각을 함.


오픈소스 개발에 참여하는 방법에 대한 만화를 보다보니, 제가 오픈소스 개발에 참여한 후기를 적어볼까 합니다


우연히도 파이썬이라는 것을 배워볼까해서 스터디 그룹에 참여해본적이 있었습니다.

여기서 가나초코렛님을 만나게 되었고, 가나초코렛님은 저에게 파이썬을 알려주신 분으로써, 오픈소스 프로젝트에 참여하는 방법을 알려주신 고마운 분입니다.

스터디하던 그룹에서 오픈소스 개발자로 이름을 날리던 가나초코렛님께서 파이썬을 가지고 우분투(Ubuntu) 리눅스의 기본 SNS프로그램인 Gwibber에서, Gwibber-me2day플러그인을 만들어보자라는 프로젝트를 제안하고, 그룹원들이 서로 같이 개발을 해본적이 있었지요.

파이썬(Python)을 모르던 저가 오픈API와 연결하여 데이터 받기를 해보다, 파이썬(Python)이라는 언어가 정말 재미있는 언어구나를 그당시에 느끼게 되었죠.

그룹원들과 파이썬으로 Gwibber-Me2day플러그인을 만들다보니,  저는 다음에서 제공하는 URL축약 서비스인 durl.me 서비스에 대해서 플러그인 만들어볼까란 생각을 갑자기 하게 되더군요.

이분덕택에 저도 Gwibber에서 durl.me URL축약서비스를 제공하는 플러그인에 대한 파이썬 코드를 작성을 한 후에, 멋도 모르고 형상관리 툴인 bzr라는 툴로 파이썬 코드를 커밋하였습니다. (일 제대로 저질렸음)

2011년 2월 16일에 커밋하고, 약 2년 후에 내가 만든 파이썬 코드가 리뷰후에 승인되었을때의 희열감은 정말 어찌말로 표현할수가 없어요. 전세계 사람들이 드디어 제가 만든 파이썬 코드(Python Source code)를 쓴다는 그 생각을 하면 너무 기뻐서요 >.< 

(커밋을 한 이후, 쭉 바쁘게 지내다보니, 승인 메일 받기 전까지 파이썬 소스코드를 제출했었는지 기억도 없었음)



위의 화면갈무리는 제가 커밋한 파이썬 소스코드가 승인되어 전세계 사람들이 제가 만든 파이썬 코드를 사용할수 있게되었다는 결과 이메일입니다.


위의 이메일 내용을 보고, 저는 드디어 전세계 사람들에게 인정받는 오픈소스 개발자가 되었어요!


오픈소스 개발에 참여하는 방법은 오픈소스 소프트웨어가 어떤 내용일지를 뜯어보는 호기심과 개선해보겠다는 열정이 있으면 참여할수 있습니다.

처음에는 오픈소스 개발하는게 거창하고, 진입장벽이 높다라는 것을 느끼게 되지만, 점점 열심히 파보다보면 진입장벽을 뛰어넘어, 어느새 오픈소스 개발자라는 타이틀을 얻게 되는 자신을 느끼게 될것입니다.

오픈소스 개발은 자기 재능을 향상시키기에 딱 좋습니다. 시간 투자하여 오픈소스 개발해보시겠습니까? 


ps. 가나초코렛님과 같이 만들었던 Gwibber-Me2day플러그인은 커미터에게 반려되어서 소스코드에 적용이 되지 않았습니다. ㅠㅠ 

ps2. 이제 올해 6월달에 미투데이 종료되기때문에, 반려된걸 오히려 다행으로 여겨야 할지도?

ps3. 오랜만에 작성한 개발 글입니다. 그런데 개발 글인데 자기 자랑만 -_-;;

ps4. Python개발 해보고 싶은데, Java보다는 Python개발을 하고 싶은 1인. 근데 Python개발을 하고 싶으면 이직해야하나...

Buy me a coffeeBuy me a coffee

Python기반의 Flask Link정리

Summary Link Python-based Flask 


Flask 공식 문서 - http://flask.pocoo.org/docs/

Flask 공식 문서 한국어 번역 - http://kswa.codingstar.net:14705/html/index.html


Flask 테스트 해보기

Testing Flask Applications http://flask.pocoo.org/docs/testing/

Flask 어플리케이션 테스트하기(한국어번역)- http://kswa.codingstar.net:14705/html/testing.html

Flask는 아니지만 Flask에서 단위 테스트(Unit test)를 하기 위해서 Python의 unittest 모듈을 사용함.

The Python Standard Library: unittest — Unit testing framework http://docs.python.org/2/library/unittest.html


Flask-Testing 모듈

http://pythonhosted.org/Flask-Testing/


Flask tutorial for RESTful API

http://scriptogr.am/myevan/post/flask-tutorial-for-restful-api


Flask Pattern 심화

Advanced Flask Patterns https://speakerdeck.com/mitsuhiko/advanced-flask-patterns-1


Buy me a coffeeBuy me a coffee

저의 지인이며 비밀 스터디의 주도권을 가지고 계신 ganadist님께서 안드로이드 빌드 툴을 GTK와 Python기반으로 개발하셨다고 합니다.

아래는 저의 컴퓨터에서 실행한 화면으로 아직 Android Source kit을 받지 않았기 때문에 설정화면이 이상하게 되었군요.


(제대로 동작하는 화면의 경우는 그분의 동의를 받지 못해서 올리지 못하고, 주말 쯤 제가직접 프로그램 돌리는 스크린샷을 올리겠습니다.)


소스는 https://github.com/ganadist/abuild 에서 받을 수 있습니다.

안드로이드(Android)를 처음 접하는 초보자들도 쉽게 빌드 할수 있도록 GTK기반으로 UI를 구성한 후, 작성하였다고 합니다.


이 프로그램의 요구사항은 GNOME 3.0 개발환경에 맞게 만들어졌기 때문에 GTK+-3.0 이상이 설치되어야 한다고 나와 있군요. (GTK+-2.0과 GTK+-3.0간 호환성이 없다보니..)


* Requirements
	- python 2.6 or higher
	- pygobject 2.90 or higher
	- gtk 3.0 or higher with gobject-introspection
	- vte 2.90 or higher with gobject-introspection


실행방법

git으로 소스트리(참고 - https://github.com/ganadist/abuild  )를 받은 후 ./abuild를 실행하면 됩니다. 단 안드로이드 커널 소스를 미리 받으셔야 합니다.


* How to run?
	- change directory to source
	- run ./abuild
	 . need to fix for deployment
	- click "Source Top" button and select android source directory
	- if source directory has valid contents, "Build", "Product",
	  "Variant" button will be enabled
	  . TIP: If you set TOP shell environment and that is android
	    source directory, it will be set as "Source Top" directory
	- select check buttons and press "Build" button


ps. 제대로 빌드하는 모습을 다음 일요일에 제대로 된 실행화면을 블로그로 업로드할 예정입니다.

Buy me a coffeeBuy me a coffee

+ Recent posts