Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] fixed some scripts for python3 #251

Merged
merged 1 commit into from
Mar 28, 2024

Conversation

YUKINA-3252
Copy link

@pazeshun will fix this PR to work with Python 2, too.

@k-okada
Copy link
Member

k-okada commented Apr 24, 2023

@annan-tang if you're interested in 20.04 support of hrpsys/rtmros_common system, plesee check this pr works both python2 and python3. Test code is also welcome.

@annan-tang
Copy link

annan-tang commented Apr 24, 2023 via email

@k-okada
Copy link
Member

k-okada commented Jan 19, 2024

@W567 added some more fix to this branch (see ban-masa#2 )
@Naoki-Hiraoka @Takuma-Hiraoka @kindsenior could someone check if this works on python2 environment?

@Takuma-Hiraoka
Copy link
Contributor

Takuma-Hiraoka commented Jan 22, 2024

@Naoki-Hiraoka と確認しました。

このPull Request及びban-masa#2 は以下5つの変更を含んでいます。

それぞれについて確認し、修正が必要なものについて修正したcommitをhttps://github.com/W567/jsk_model_tools/compare/dev...Takuma-Hiraoka:jsk_model_tools:fix_for_python3-python2_compatible?expand=1 に上げました。

  • sysモジュールのreload方法のpython3対応

python2ではimportlibにreload関数がないため、現在のPull Requestの内容ではpython2実行時にエラーになります。

https://github.com/jsk-ros-pkg/jsk_3rdparty/blob/56747c3a4e0cb13cea3996996846d107a1fa364b/chaplus_ros/scripts/chaplus_ros.py#L46 のように、実行寺にpython2かどうかを調べて挙動を変えるようにしました。

  • ソート関数の変更

sort()もsorted()もpython2/3ともに存在するため、この変更はpython3対応とは無関係です。

さらにsorted関数は非破壊処理であり、sortをsortedにするだけの変更ではプログラムの挙動が変わってしまうため、sortを使うもともとの実装に戻しました。

  • 文字列判定方法の変更

python3ではbasestring型がstr型に統一されたのに対し、python2ではstr型はbasestring型の部分集合であるため、単にstrかどうかを判定するだけではpython2環境だと全てを正しく判定することができません。

まずpython2のためにbasestring型か調べ、basestring型が存在しない場合にstr型を調べるようにしました。

  • yaml.SafeLoaderの使用

この変更はpython3対応とは無関係ですが、こちらの変更は問題ないかと思います。

  • ファイルopenを非バイナリモード化

この変更はpython3対応とは無関係ですが、こちらの変更は問題ないかと思います。

この変更を行って、python2環境でhrpsys_ros_bridge_tutorialsのビルドを行うことができ、生成されたJAXON_RED_WH_SENSORS.urdfがmasterと変わらないことを確認しました。

@k-okada
Copy link
Member

k-okada commented Jan 23, 2024

@Takuma-Hiraoka ありがとう。 @W567 のリポジトリはなぜかフォークではなくて、新たにコミットしているので、こちらからPR作れないので、ban-masa:fix_for_python3 向けのPRを作ってください。

@k-okada
Copy link
Member

k-okada commented Jan 23, 2024

@ban-masa のリポジトリもフォークでないのか。。。。という事で、作りました #254

@k-okada k-okada merged commit 27b8efb into jsk-ros-pkg:master Mar 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants