テスト自動化において、Pythonがおすすめのプログラミング言語である理由がいくつかございます。本ブログでは、テスト自動化で使えるPythonライブラリの紹介、そしてPythonライブラリを活かせるテスト自動化ツールについて解説いたします。 Pythonを選ぶ理由は? Pythonは世界で人気のあるプログラミング言語の1つです。Github言語統計(https://madnight.github.io/githut/)によると、Python は2021年10月以降、Githubで利用されている言語ランキングで1位となっており、人気が高まっています。 Pythonは1991年に登場しました。 言語のドキュメント、ガイド、ビデオチュートリアルが数多く存在し、初心者にもやさしいプログラミング言語です。言語が複雑ではなく、他のプログラミング言語よりシンプルです。さらに日常で使用している言葉に近い書
Getting Started with Software Testing it becomes evident that the most important part of software development is detecting defects and ensuring it achieves the expected goals. Those two things are usually mostly done by having tests and a fitness function that can verify the software does what we really mean it to – founding pieces of the whole Software Quality Control discipline Software Testingと
はじめに 近年、深層学習を用いた自然言語処理技術の進展が目覚ましいです。 その中でも、GPT-3をはじめとする大規模言語モデル(LLM)には大きな可能性を感じています。 最近ですと、AI技術者以外にも大きなインパクトを与えたChatGPTが記憶に新しいでしょう。 今後もLLMの進化は止まらないと予想されており、私たちもどうやって活用するかを具体的に検討すべきフェーズに入ったのではないでしょうか。 しかし、LLMを実業務に適用するとなると、越えなければならない課題がいくつも出てきます。 今回は、以下にあげた第2・第3のハードルを越えるために役立つlangchainというライブラリをご紹介します。 第1のハードル:機密データの扱い LLMはOpenAPIのGPT-3等、モデル自体は公開されておらずWebAPIだけが提供されているというパターンが多いです。 そのため、機密データを社外に送信すると
鈴木たかのり(@takanory)です。今月の「Python Monthly Topics」では、Webブラウザ上でPythonが動作するPyScriptについて、内部構造なども含めて詳しく解説したいと思います。 PyScript公式サイト(https://pyscript.net/) Warning:PyScriptは現在非常に活発に開発が進んでいるプロダクトのため、将来的にこの記事のサンプルコードが動かなくなる可能性があります。記事執筆時点では最新バージョンであるPyScript 2023.03.1で動作確認しています。うまく動かない場合はPyScriptの公式ドキュメントなどを参照してみてください。 PyScript - PyScript documentation PyScriptとは? PyScriptは公式サイトに「Run Python in Your HTML」と書いてあると
Pramiko/Netomiko などデバイス接続を簡単にするライブラリはありますが、取得した情報の取り扱いは結構大変だと思います。それに対して、今更ながらNAPALMがあると聞いたので調べました。 この記事のcodeはsourjp/lab-networkにアップロードしました。 NAPALM? NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functions to interact with different router vendor devices using a unified API. NAPALM は必要とされることが多い情報取得をメソッドとして用意して
1. はじめに Python で GUI を作成するとき Tkinter を使用することが多いと思いますが、デザインがちょっと古臭いのが気になる... ただ、PyQt や kivy を勉強するのも大変そうだということで、おしゃれにちょうどいい感じの学習量で使える TomSchimansky/CustomTkinter を使って GUI を作ってみました。 実際に作ってみた GUI は以下のものになります。 動かしてみると以下のようになります。 久しぶりに Python で GUI を作成したこともあって、初心者向けにどうやって GUI を作成していくかの流れをまとめてみましたが、熟練者でサクッとコードだけを見たい方は まとめ までスキップしてください。 2. GUI 作成チュートリアル 2.1. 開発環境 Windows 11 Python 3.8.10 (および 3.10.9 で動作確認
HTTPリクエストをモックするには PythonでHTTPリクエストをモックするには、どうしたらいいか。unittest.mockを使ってHTTPリクエストを投げるメソッドをモックする方法が思い付くかもしれない。しかし、どこをモックして何を返すようにしたらよいのかは自明ではない。 HTTPrettyというライブラリを使うと、簡単にHTTPリクエストをモックできる。どんなライブラリを使っているのか、インタフェースがどうなのかを気にする必要がない。 テスト中は常にモックする PerlのTest::WWW::Stubに近いことをPythonでも実現したい。つまり、テスト中は常にHTTPリクエストをモックして外部にリクエストが飛ばないようにしたい。 pytestを使っているなら、以下のようなfixtureをconftest.pyに書くのが手軽だと思う。 import httpretty impor
pythonで簡単にプロセス間の排他制御がしたかったのでロックファイルによる実装を行いました。 尚、確認している環境は以下です。 mac(OS X El Capitan バージョン 10.11.5) pip利用可能 python 2.7.9 利用するもの zc.lockfile 指定した名称のロックファイルを作成し、排他制御をしてくれるライブラリ。 pidで管理されるので、ロックしたプロセスが終了した場合、closeしなくても排他状態が解放されるので例外が出ても扱いやすい。と思います。 以下で、いつものようにインストール $ pip install zc.lockfile 利用例 特に意味はないですが、デコレータで実装。 ロック中の処理をちゃんとしたい場合(ログを出力するとか、待機するとか)には使えないです。 なにはともあれ排他制御したい人向け。 # -*- coding: utf-8 -
はじめに マケデコという主に株式関連のマーケットAPIを活用し、分析や予測モデルを構築しているbotterのDiscordコミュニティをJPX総研様、AlpacaJapanの協賛で運営しています。 マケデコの中で、さまざまなイベントを企画する中で、前提知識として、機械学習モデルが生成するスコアについての知識があまり共有されていないと感じていて、この文章を書いた次第です。 過去に作成したものだと、JPX総研様と一緒に作成した株式分析チュートリアルなどはかなり網羅的にいろいろなトピックを扱っているのですが、こちらはSIGNATEで開催された株式分析コンペの内容を踏襲しており、与えられたコンペのお題に対してスコアを生成することを前提に記載されています。(補足: この株式分析コンペの設計の仕方は以前記事にまとめたので、ご興味あればぜひお読みください) システムトレードを行うときも、このスコアを自分
はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々なツールや処理系が開発されています。 この記事ではMITの研究者らが開発したPythonを高速化するツール「Codon」について紹介します。 この記事を3行でまとめると: 高性能で簡単に扱えるPythonコンパイラ「Codon」 Pythonとの互換性がありながら、CやC++に匹敵する高速化を実現 実際にPythonコードが100倍速くなることを検証 Codonとは Codonは高性能なPythonコンパイラです。実行時のオーバーヘッドなしにPythonコードをネイティブなマシンコードにコンパイルし、シングルスレッドで10-100倍以上の高速化が実現できます。Codonの開発はGithub上で行われており、2021
はじめからパターンを決めている場合もあれば、コードを整備しながらパターンを変えることもあります。よくあるのが、即興でパターン1で書き、書き換えているうちにパターン2,3となり、他のスクリプトからも利用したくなりパターン4に改良した、というケースです。 どのパターンを採用するかは、状況により異なりますので、各パターンの特性を理解しておく必要があります。そこで、今回は各パターンの特徴や利点について以下で説明します。 本記事の目次 サンプルプログラム パターン1:逐次型 パターン2:関数+実行文 パターン3:main()関数 パターン4:インポート時の実行回避あり 最後に サンプルプログラム 具体的なプログラムがあった方がわかりやすいので、「JPEGファイルを更新年月日でフォルダに振り分けるプログラム」を例に用います。 このプログラムは、カレントディレクトリにあるJPEGファイルを、年月日名のフ
モチベーション プルリクもらったときに,ざっと構造を理解しつつ,循環参照していないかをチェックするため,クラス図を自動作成したい。 方法 Pyreverseを使うと以下のような図が出力できる(上クラス図,下パッケージ図)。 本記事の検証環境 Windows10 python3.7.3 git-bash 環境構築手順 pythonとpipが使えることは前提とする。 Pylintをインストールする。Pyreverseが一緒にインストールされる。 出力形式(dot, svg, png等)にかかわらず,Graphvizが必要なので,ここからインストーラを落としてインストールする。 Graphvizのbinフォルダ(筆者環境だと「C:\Program Files (x86)\Graphviz2.38\bin」)のPATHを通す。 出力可能な形式をdot -Txxxで確認する。ここでエラーが起きると,
はじめに ChatGPT APIの公開後、瞬く間に様々なサービスが誕生していますね。 私も少し触ってみましたが、マルコフ連鎖的に文章を紡ぐ仕組み上、レスポンスがやや遅い点が気になります。 PythonからAPIを叩いている多くの方はOpenAIのライブラリを使用しているかと思いますが、 一般的にHTTPリクエストに使用されるrequestsを使用すれば、ウェブサイト版のChatGPTとお話するときのように、逐次返答を受け取ることができます。 追記 openaiライブラリでも普通にできました。後半で解説します。 方法 requestsのpost()からAPIを叩いて、その際、引数とペイロードのstreamをTrueにすればおkです。 以下の実装例の後半部分が該当箇所になります。 import requests, json API_URL = "https://api.openai.com/v
Pythonはシンプルな構文で読みやすいプログラミング言語ですが、コードをロバストにする機能も備わっています。本書では、Python 3.5から導入された型ヒントを使って、ロバストなPythonコードを記述する方法にアプローチします。全4部構成のうち、Ⅰ部とⅡ部ではPythonにおける型ヒントの位置づけや組み込み型について基本的な事柄をしっかりおさえ、ユーザ定義型を使う方法、部分型、プロトコル、pydanticによる実行時型チェックなど、Pythonの型システムを最大限に活用する方法を詳しく説明します。Ⅲ部は依存関係や設計手法について、Ⅳ部はセーフティネットとして高度なテスト手法を扱います。本書の内容を理解すれば、クリーンで保守しやすいPythonコードが書けるようになります。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の
本日2023年3月9日、テレワーク・テクノロジーズ株式会社と実業家堀江貴文が、企業のDX人材不足という課題を解決するために、一般社員がPythonエンジニアに転生する法人向けDX支援サービス「パイソンメイカー」を提供開始しました。 テレワーク・テクノロジーズ株式会社(本社:東京都中央区、代表取締役:荒木賢二郎)は、本日2023年3月9日より、一般社員がPythonエンジニアに転生する法人向けDX支援サービス「パイソンメイカー」を提供開始しました。 DX人材不足が深刻なIT企業・製造業・小売業・飲食宿泊業・官公庁などに、①社内DX(Python)人材育成スクール、DXコンサル、社内DX実行(システム開発)をまとめて月額22万円で提供することにより、企業のDX人材不足を解消、社内のDXを加速させることが可能になります。 パイソンメイカーの詳細: https://ctwo.pro/ ●提供の背景
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く