harupy
Overview
harupy๋ ํ์ด์ฌ์ผ๋ก ๊ฐ๋ฐ์ ํ๊ธ ์ฒ๋ฆฌ๋ฅผ ์ ์ฐํ๊ฒ ํ ์ ์๋๋ก ํ ๋ชจ๋์ด ์ฃผ์ ๊ธฐ๋ฅ์ ๋๋ค.
ํ๊ธ ์ฒ๋ฆฌ ์ธ์๋ ๊ฐ๋ฐ ์ค๋ฌด์์ ์ค์ ๋ก ํ์ํ ํ ์คํธ ์ฒ๋ฆฌ ๊ธฐ๋ฅ๋ค์ ์ดํ๋ก๋ ์ถ๊ฐํ ๊ณํ์ ๋๋ค.
Install
pip๋ฅผ ํตํด์ ์ค์นํฉ๋๋ค.
pip install harupy
Usage
String
ํ๊ธ ์ฒ๋ฆฌ ๊ด๋ จ ๋ฌธ์์ด ๊ฐ์ฒด๋ String
์
๋๋ค. ๋ด์ฅ ๊ฐ์ฒด์ธ str
์ ํ์ฅ์ด๋ฏ๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก str
๊ฐ์ฒด์ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
>>> from harupy.text import String
josa()
๋ฉ์๋๋ฅผ ํตํด ์ ์ ํ๊ฒ ๋ณํ๋ ์กฐ์ฌ๋ฅผ ๋ถ์ผ ์ ์์ต๋๋ค.
>>> name1 = String('๊น์์๋ฌด')
>>> name2 = String('์ผ์ฒ๊ฐ์ ๋๋ฐฉ์ญ')
>>>
>>> name1.josa('์ด')
'๊น์์๋ฌด๊ฐ'
>>> name2.josa('๊ฐ')
'์ผ์ฒ๊ฐ์ ๋๋ฐฉ์ญ์ด'
>>>
>>> title = '์ ์ธ๊ณ'
>>> String(title).josa('์ด๋ผ๋') + ' ์ํ ๋ดค๋์?'
'์ ์ธ๊ณ๋ผ๋ ์ํ ๋ดค๋์?'
์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ์๋๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ฌ์ฉ์์ ํธ์๋ฅผ ์ํด ์์ฑ๊ฐ์ผ๋ก ์กฐ์ฌ๋ฅผ ์ง์ ์ ๋ ฅํ๋ ๊ฒ์ ํ์ฉํด๋์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ํ๊ธ๋ก ๋ ์์ฑ๊ฐ์ ์๋์ผ๋ก josa()
๋ฉ์๋์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ํ์ํฉ๋๋ค.
>>> target = String('์ค์๊ธธ')
>>> target.๋ก
'์ค์๊ธธ๋ก'
>>> String('ํธ๋ก').์ด๋ + ' ๋จน์'
'ํธ๋ก์ด๋ ๋จน์'
>>> String('๋ก๋ณถ์ด').์ด๋ + ' ๋จน์'
'๋ก๋ณถ์ด๋ ๋จน์'
>>> String('๊ฒ').๋ + ' ' + String('๊ณ ๋').๋
'๊ฒ๋ ๊ณ ๋์ด๋'
์ซ์๋ฅผ ํ๊ธ๋ก ์ฝ์ ์ ์์ต๋๋ค.
>>> price = String(152000)
>>> price.to_hangul()
'์ญ์ค๋ง์ด์ฒ'
>>> String('37501600').to_hangul()
'์ผ์ฒ์น ๋ฐฑ์ค์ญ๋ง์ฒ์ก๋ฐฑ'
1์ ์๋ตํ์ง ์๊ณ ์ฝ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
>>> String(1110000).to_hangul()
'๋ฐฑ์ญ์ผ๋ง'
>>> String(1110000).to_hangul(read_one=True)
'์ผ๋ฐฑ์ผ์ญ์ผ๋ง'
๋ฐ๋๋ก ํ๊ธ๋ก ์ฝ์ ์ซ์๋ฅผ ์ ์๋ก ๋ณํํ๋ to_number()
๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
>>> String('์ด์ฒ์ญํ').to_number(True)
2018
>>> String('์ฒ์ด๋ฐฑ์ญ์ผ์ต์ฒ๋ฐฑ๋ง').to_number()
121111000000
๋ํ, ๋ด์ฅ str ๊ฐ์ฒด์ isnumeric()
์ ํ์ฅํ์ฌ, ํ๊ธ๋ก ์ฝ์ ์ซ์์ ๋ํด์๋ ์ฐธ์ผ๋ก ํ๋จํ ์ ์์ต๋๋ค.
>>> String('์ฌ์ฒ์ค๋ฐฑ๋ง').isnumeric()
True
๋ด์ฅ ๋ชจ๋ unicodedata
์ ์ ๋์ฝ๋ ์ ๊ทํ ๋ฉ์๋๋ฅผ ๋ฐ๋ก ํธ์ถํ ์ ์์ต๋๋ค.
>>> list(String('ํ๋ฃจํ์ด').normalize())
['แ', 'แ
ก', 'แ
', 'แ
ฎ', 'แ', 'แ
ก', 'แ', 'แ
ต']
Feedback
๋ฒ๊ทธ ์ ๋ณด, ๊ฐ์ ์์ฒญ์ Issues์ ์ฌ๋ ค์ฃผ์๊ฑฐ๋, sookim@outlook.jp ๋ก ์ฐ๋ฝ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
ํ ๋ฆฌํ์คํธ๋ ์ธ์ ๋ ํ์ํฉ๋๋ค!
License
Apache License, Version 2.0