2025-04-20

モッチーポップ フォント

今はフリーあるいはオープンソースのフォントが利用できる時代です。いろいろなフォントを紹介しているサイトはありますが、気に入ったデザインのフォントを自分なりのやり方で紹介しています。

今回紹介するフォントは「モッチーポップ」です。

フォント名 モッチーポップ
収録文字
  • 基本 ASCII + Latin-1 文字
  • ひらがな、カタカナ、全角英数、全角記号、縦書き用文字、濁点仮名
  • 漢字のみ SILライセンス の源ノ角ゴシックのものを収録
配布ライセンス SIL Open Font License 1.1
配布サイト (Github)

モッチーポップ フォント (MochiyPopOne-Regular.ttf) の利用例を下記に示しました。

MochiyPopOne-Regular.ttf の利用例

使用したプログラム

スクリーンショット用に使用したプログラムは、本ブログの過去記事 [1] で紹介しています。

参考・関連サイト

  1. bitWalk's: 「ポプらむ☆キウイ」フォント [2024-08-27]
  2. bitWalk's: 「廻想体 ネクスト ユーピー B」フォント [2024-08-29]
  3. bitWalk's: 「源暎ぽっぷる」フォント [2024-09-02]
  4. bitWalk's: 「コーポレート・ロゴ(ラウンド)」フォント [2024-09-08]
  5. bitWalk's: 「ニコ角V2」フォント [2024-09-16]
  6. bitWalk's: Train One フォント [2024-09-28]
  7. bitWalk's: たぬき油性マジック フォント [2025-01-10]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



2025-03-25

【備忘録】Pandas で ODS ファイルを読み込む

Pandas は、プログラミング言語 Python において、データ解析を支援する機能を提供するライブラリです。特に、数表および時系列データを操作するためのデータ構造と演算を提供します。Pandas は BSD ライセンスのもとで提供されています。Pandas の 開発により、R 言語における DataFrame が扱える「ベクトル処理」の操作性と同等な機能が導入されました。

Wikipedia より引用、編集

Pandas で Excel ファイルをデータフレームに読み込むには pandas.read_excel() 関数を使いますが [1]、名前の通り Excel ファイルを読み込むためだけの関数だと思い込んでいました。

自分のメイン PC の OS は Linux (Fedora Linux) ですので、普段使いのスプレッドシートは LibreOffice Calc になります。この Calc は Excel ファイルの読み書きができるので、Windows 上で作成した Excel ファイルを Linux 上で読み書きするのには不自由しません。一方、Excel ファイルで Windows とのやりとりを考慮しなくとも良い場合には、Calc デフォルトの ODS 形式(OpenDocument Spreadsheet, 拡張子 .ods)で保存しています。)

この ODS 形式のファイルを Pandas で読み込む方法を調べたところ、Excel の時と同じ pandas.read_excel() 関数にたどり着きました。Pandas で Excel ファイルを扱うために openpyxlxlrd という Excel ファイルを読み書きするパッケージをあらかじめインストールしておく必要があるのと同じように、ODS 形式のファイルを読み込むときには、あらかじめ odfpy [2] というパッケージをインストールしておけば良いことが判りました

判りました」と書いたのは、pandas.read_excel() 関数のマニュアル [3] のパラメータ engine の説明に、

If path_or_buffer is an OpenDocument format (.odf, .ods, .odt), then odf will be used.

とあったので、早速 pip install odfodf パッケージをインストールしたのですが、pandas.read_excel() 関数ではエラーが出て ODF ファイルを読み込めなかったからです。

上記マニュアルページの odf の文字列部分にリンクが張ってあったのでクリックしたところ PyPi の odfpy のページが開きました。ここでインストールするパッケージを間違えたことに気づいたので、odf をアンインストールして、odfpy をインストール。そして ODF 形式のファイルを読み込めることを確認出来ました。

ちょっとハマってしまった間違いだったので備忘録にしました。

参考サイト

  1. pandasでExcelファイル(xlsx, xls)の読み込み(read_excel) | note.nkmk.me
  2. odfpy · PyPI
  3. pandas.read_excel — pandas documentation

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



2025-03-13

【備忘録】Jupyter Lab で上位階層のライブラリをインポート

Python で GUI アプリを作るとき、自分の場合、プロジェクトのルートにメイン・プログラム app.py などを置き、アプリの処理は、機能別に名前を付けたサブディレクトリ内の Python ファイルに用意して、メイン・プログラムからインポートして利用する、といった構成にしています。IDE はもっぱら PyCharm Community 版を使っています。

GUI のレイアウトは、その都度プログラムを起動して確認する、という効率の悪いやり方で良しとしていますが、GUI とは関係が無い関数の機能をテストする際には、Jupyter Lab で対象の関数をインポートして確認しています。

Jupyter Lab の .ipynb ファイルをメイン・プログラムと同じルートに置けば、メイン・プログラムと同じようにインポートができて都合が良いのですが、ルートに .ipynb ファイルがうじゃうじゃ増えてしまって煩わしいです。そこで、jupyter というディレクトリを作って .ipynb ファイルをまとめて置くようにしています。

そうすると、対象の関数をインポートするために一手間かける必要があります。いろいろ試して、結局、なんてことはないやりかたに落ち着きましたが、もっと良いやり方が見つかるかもしれないので備忘録にしました。

下記の OS 環境で動作確認をしています。

Fedora Linux 41 Workstation x86_64
Python 3.13.2
PyCharm Community Edition 2024.3.4
jupyterlab 4.3.5

説明用に下記のプロジェクトを使います。

メイン・プログラムが app.py、テストする関数が funcs/myfunc.py 内に記載されている myfunc01、この関数を Jupyter Lab を起動して jupyter/myfunc.py でテストするというケースです。以下は、例示用に用意した PyCharm のプロジェクトです。

 

funcs/myfunc.py 内に記載されている myfunc01True を返すだけの関数です。

funcs/myfunc.py
def myfunc01() -> bool:
    return True

Jupyter Lab 上でのテスト

Jupyter Lab を起動してテスト用に使う jupyter/myfunc01_test.ipynb は、テスト対象の関数 myfunc01 をインポートする前に、以下のように一つ上のパスをシステムパスに追加します。

jupyter/myfunc01_test.ipynb
import sys
path_up = '..'
if not path_up in sys.path:
    sys.path.append(path_up)

myfunc01 を実行すると確かに True が返ってきます。

from funcs.myfunc import myfunc01
 
myfunc01()
True

念のため、システムのパスを確認しました。

sys.path
['/usr/lib64/python313.zip',
 '/usr/lib64/python3.13',
 '/usr/lib64/python3.13/lib-dynload',
 '',
 '/home/bitwalk/PycharmProjects/PythonProject/.venv/lib64/python3.13/site-packages',
 '/home/bitwalk/PycharmProjects/PythonProject/.venv/lib/python3.13/site-packages',
 '..']

結局 .. をシステムパスに追加するだけで用が足りてしまいました。Jupyter Lab 上で何回も実行してしまう可能性がありますので、一応、システムパスに .. が含まれているか確認してはいますが、なんだこれだけか…記事にするほどの内容でなかったかもしれません。

もともと Jupyter Lab では __file__ が定義されていない、ということから始まった調査だったのですが、記事公開直前に迷走してあれこれ調べ直している中で、参考サイト [3] で、__file__'__file__'"__file__" の違いを知りました。結局どれも使わなかったのですが…。

Python について、ちょっとしたことでも知らないことがまだまだありそうです。😅

もっと良さげな方法が見つかれば、その都度、備忘録にします。

参考サイト

  1. Jupyter NoteBookとPythonで上位階層のimportをする方法 - nyatla@hatena blog [2019-04-25]
  2. Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me
  3. 絶対パスの取得(まとめなおし) #Python - Qiita [2018-09-08]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



2025-02-27

こんどの Fedora Linux 42

Fedora Linux は Red Hat 社が支援するコミュニティ Fedora Project で開発されている Linux ディストロです。このディストロは、最新の技術を積極的に取り込むことで知られています。Fedora Linux の開発成果は CentOS Stream に取り込まれます。ここでテストを経て最終的に Red Hat Enterprise Linux, RHEL へ反映されます。Fedora Linux は、おおむね春と秋の年二回の頻度で新しい版がリリースされています。

Fedora Linux 42 の開発スケジュール [1] によると、ベータ版の公開は 2025-03-11、正式リリースは 2025-04-15 に予定されています。

2025-02-04 に、Fedora Rawhide の開発レポジトリから Fedora Linux 42 のレポジトリがブランチされていましたので、下記サイトから開発中の Fedora Linux 42 の iso ファイル (Fedora-Workstation-Live-42-20250226.n.0.x86_64.iso) をダウンロードして仮想環境 (GNOME Boxes) にインストールしてみました。

プレリリース版の Fedora Linux 42 がダウンロードできるサイト

インストールしてみたところ、すでにデスクトップの壁紙が Fedora Linux 42 用になっていました。

Fedora Linux 42 Workstation(Prerelease 版)のデスクトップ (1)
Fedora Linux 42 Workstation(Prerelease 版)のデスクトップ (2)

ベータ版が公開される前ですので、変更される可能性は残っています。

Anaconda WebUI インストーラ

インストール時、インストーラが WebUI のバージョンになっていました。すでにインストーラが変更されることがアナウンスされており [2]、Fedora Linux 39 の時にフライングで当ブログにまとめてしまいましたが [3]、今回は最終的にどうなるでしょうか。

ISO イメージを起動すると、下記の画面が表示されます。

Install Fedora... をクリックすると WebUI のインストーラが起動します。以下、スクリーンショットを紹介します。

 

Fedora Linux 42 のベータ版が公開された後、今回の変更点などの内容をまとめる予定です。

参考サイト

  1. Fedora Linux 42 Schedule: Key
  2. Changes/AnacondaWebUIforFedoraWorkstation - Fedora Project Wiki
  3. bitWalk's: Fedora Linux 39 のインストーラ [2023-09-02]
  4. Changes/Promote KDE Plasma Desktop variant to Edition - Fedora Project Wiki

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



2025-02-24

【備忘録】アルファベット文字の全角 → 半角変換 ~ Python

コーディングのみならず、表示する文字列において、たとえ漢字やひらがなが混じっていても、(数字などを含む)アルファベット文字はいわゆる半角文字 "ABC" を使うようにしています。しかし、公開されているファイルを読み込んで集計するときなどで、アルファベット文字に全角文字が使われていて無駄に表示文字列の幅が長くなってしまうとイラっとするときがあります。😅

アルファベットの全角文字を半角文字に変換するために変換テーブルを作って対応していましたが、あらためて調べたところ Python の標準ライブラリ unicodedata で変換できることを参考サイト [1] で知ったので、具体例を備忘録にしました。

下記の OS 環境で動作確認をしています。

Fedora Linux 41 Workstation x86_64
Python 3.13.2
jupyterlab 4.3.5
openpyxl 3.1.5
pandas 2.2.3
xlrd 2.0.1

以下の作業は JupyterLab 上でおこなっています。

最初に必要なライブラリをインポートします。

import unicodedata
import pandas as pd

今回の例では、インターネット上の Excel ファイルを読み込むので、import 文で明示しませんが、pandas で Excel ファイルを読み込むために openpyxlxlrd をあらかじめインストールしておく必要があります [3]

例として、東京証券取引所に上場している銘柄のリスト(Excel ファイル)を取得します。

tse = "https://www.jpx.co.jp/markets/statistics-equities/misc/tvdivq0000001vg2-att/data_j.xls"
df = pd.read_excel(tse)
df

 

「銘柄名」列の文字列は全て全角文字になっています。この列の文字列をアルファベット文字のみ半角文字に置き換えます。

df['銘柄名'] = [unicodedata.normalize('NFKC', s) for s in df['銘柄名']]
df

 

Unicode の正規化については、参考サイト [4] に日本語表現や説明がありますが、そのまま引用してもピンとこないので、正規化には下記の4種類があることを示すにとどめました。

form 正規化形式
NFC Normalization Form Canonical Composition
NFKC (Normalization Form Compatibility Composition
NFD Normalization Form Canonical Decomposition
NFKD Normalization Form Compatibility Decomposition

四種類の具体的な違いについては、参考サイト [5] で紹介されています。

参考サイト

  1. Pythonで全角・半角を変換(mojimojiなど) | note.nkmk.me
  2. unicodedata --- Unicode データベース — Python ドキュメント
  3. pandasでExcelファイル(xlsx, xls)の読み込み(read_excel) | note.nkmk.me
  4. Unicode正規化 - Wikipedia
  5. Unicode正規化 #文字コード - Qiita [2020-05-15]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース