並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 320件

新着順 人気順

dataclassesの検索結果241 - 280 件 / 320件

  • Pythonのdataclasses.dataclassを使う - 偏った言語信者の垂れ流し

    Pythonのdataclasses.dataclassは普段からたまに使っていますが、良く使っている書き方を人に紹介するためにメモを残します。 dataclasses - データクラス - Python 3.12.2 ドキュメント dictと相互変換するクラス オブジェクトとdictで相互変換するクラスをdataclassで書くことがあります。 asdict 関数が便利です。リストで保持したいメンバー変数は、 field 関数を使って定義すれば、asdictでそのまま対象にできます。 また from_dict メソッドは厳密に実装するなら引数のチェックなどをしてもよいですが、可変長のキーワード引数としてそのままコンストラクタに渡すように書けば、実装はシンプルです。 コード main.py: from dacite import from_dict from dataclasses imp

      Pythonのdataclasses.dataclassを使う - 偏った言語信者の垂れ流し
    • PythonでボトムアップDDD 【ドメインサービス】 - Qiita

      バージョン Python 3.7.0 目次 ドメインサービスとは エンティティ自身に横断的な知識を実装 ドメインサービスに横断的な知識を実装 使う場面によっては別の案があるかも ドメインサービスとは ドメインサービスは、値オブジェクトとエンティティの横断的な知識を実装することが許されている。 エンティティ自身に横断的な知識を実装 エンティティに横断的な知識を持たせるように実装してみる。 ユーザ自身に他のユーザとの重複を判断させるのは、確かに違和感がある。 from __future__ import annotations import unittest import uuid from dataclasses import dataclass @dataclass(frozen=True) class UserId: value: str @dataclass(frozen=True)

        PythonでボトムアップDDD 【ドメインサービス】 - Qiita
      • KLab の Server Side Camp に参加してきました

        はじめに 先日, 株式会社KLab(クラブ)さん (以降敬称略) の KLab Server Side Camp 第1回 (5日間) に参加してきました. 私は個人の遊び程度でしかサーバサイドを触ったことが無かったため, 実務をなさっている方のそばで学び質問できる環境はとてもありがたかったです. というわけで本稿ではその感想でも書いていこうと思います. 軽い振り返りなので技術的な内容は少なめです^^ また, 久々に記事書くので文章がおかしくなっているかも... 追記 (2021/01/19) メンターの methane さんによるKLab技術ブログ (「DSAS開発者の部屋」) は以下のツイートからどうぞ. 告知 KLab Server Side Camp 第2回 の募集が 1/24(月) 23:59 まで行われているので興味を持った方はぜひ!! KLab Server Side Camp

          KLab の Server Side Camp に参加してきました
        • Python3.7以上のデータ格納はdataclassを活用しよう - Qiita

          はじめに Pythonでデータを格納する際に辞書や普通のクラスを使っていませんか?Python3.7からはデータ格納に便利なdataclassデコレータが用意されています。 この記事では公式ドキュメントやPEP557の説明ではいまいち掴めない、どういった時に便利で、なぜ使うべきなのかという点に触れつつ、使い方を説明していきます。 なお、以前のバージョンではPython3.6に限りpip install dataclassesによって使えるようになります。執筆時点ではGoogle Colaboratoryの環境がPython3.6.9ですが、デフォルトでdataclassesがインストールされています。 想定読者 dataclassの存在を知ったが何なのかよく分からない人 可読性高くデータを扱いたい人 「前はこんな機能なかったし、自分は別に使わなくて良いよ・・・」と思っている人 よく見かける

            Python3.7以上のデータ格納はdataclassを活用しよう - Qiita
          • DataClass 3.10での機能追加(kw_only, slots) - Keep on moving

            こんにちはPython界のレアキャラです。 dataclassから機能が追加され attrsであった機能が取り込まれました。 以前書いた記事のアップデートをしておこうと思います。 TL;DR dataclassにkw_onlyと slotsが入った attrsのつかいどころ ボイラープレートコードを避けたい.(特にdataclassにない機能を利用したい) 今Python3.9 以下を使っているし、今後dataclassを使いたい. ドキュメントをきちんと読むと色々書いてある docs.python.org kw_only https://docs.python.org/ja/3.10/glossary.html#term-parameter キーワード専用フィールドを設定するためのもの. >>> # クラスの全フィールドをキーワード専用にするもの >>> @dataclass(kw_on

              DataClass 3.10での機能追加(kw_only, slots) - Keep on moving
            • 【ドメイン駆動設計】値オブジェクト「価格」の設計例

              🎯目的 ドメイン駆動設計の具体例を記載し、ドメイン駆動設計を実践できるようにする 💡前提 この記事では、実践ドメイン駆動設計 | ヴォーン・ヴァーノン, 髙木 正弘 |本 | 通販 | Amazonを参考にしています。 💡「価格」とは ここではECサイトで販売している商品の「価格」を取り上げます。尚、ここでの設計はあくまで例です。通常は扱うドメイン領域やユビキタス言語によって、設計が変わります。 商品の価格には、次の種類があります。 通常価格 割引価格 - 期間限定での割引 - 「5,000円以上のお買い上げで〜」などの条件付き割引 会員価格 ECサイトで会員になっている人限定の価格 会員のランク(プレミアム、スタンダード、...)などによって価格が変わることもある 通常価格 割引価格 会員価格 ✍️「価格」の設計 ✍️自己参照方式の実装パターン from __future__ im

                【ドメイン駆動設計】値オブジェクト「価格」の設計例
              • Pydanticのdataclassを試す - 偏った言語信者の垂れ流し

                Pydanticは、Pythonでデータの検証(バリデーション)を実装するためのライブラリです。 基本的な入力型の検証はTypingを記述するだけで実装できるということで、最近の型ヒントを記述するPythonコードと組み合わせて使うことを想定しています。 docs.pydantic.dev 一方、Pythonには標準モジュールで、 dataclasses というのがあります。 docs.python.org dataclassesモジュールに含まれるdataclassデコレータを使うと、型ヒントを使って簡単にデータ型を記述できます。 Pydanticはこのdataclassと互換性のある機能を提供しているので、これを試してみます。 dataclassesでの記述 main.py: from dataclasses import dataclass @dataclass class User

                  Pydanticのdataclassを試す - 偏った言語信者の垂れ流し
                • 俺は長文matplotlibをやめるぞ!ジョジョーーーッ!! - Qiita

                  タイトルオチです。 記事の背景 あきとしのスクラップノートさんの以下の記事を読み、感銘を受けました。 [python] context manger を使ってmatplotlibの図を大量生産する そう、matplotlibってやたら行数多くなるんですよね…! まだ読まれてない方はこの記事より先にぜひ読んでください。 記事の内容をgithubでも公開してくださっています。 contextplt -github- 本記事では上記の記事に全面的に依拠しつつ、 データの渡し方をdictからdataclassにアレンジしてみました。 ささやかな差分ですが、自分の備忘録代わりにメモします。 ※ 2022-04-03 一部内容変更 キーワード引数の渡し方をより簡単な方法に変更しました(set_xticksのところ)。 dataclassにしてみたコード from typing import Named

                    俺は長文matplotlibをやめるぞ!ジョジョーーーッ!! - Qiita
                  • エージェントシミュレーションやってみた1(コンビニ) - Qiita

                    エージェントシミュレーションとは? マルチエージェントシステム(Multi-Agent System、MAS)とは、複数のエージェントから構成されるシステムであり、個々のエージェントやモノリシックなシステムでは困難な課題をシステム全体として達成する。 それぞれ異なった判定アルゴリズムなどの特徴(キャラクタリスティック)を持ったエージェントモデルを用い(よってマルチエージェントと呼ばれる)、複数かつある一定以上のエージェントを多数設定し、人工社会を構成しそれぞれ特徴の異なったエージェントの相互作用をシミュレーションするシステムである。(wikipediaより) すなわち人や車などをエージェントとし、それらをモデリング、観察することです。大学の授業でエージェントシミュレーションをする機会があったので、少し実装してみようと思います。(pythonのTKinterを使用) テーマ:コンビニなどの小

                      エージェントシミュレーションやってみた1(コンビニ) - Qiita
                    • 画像内の正確でほぼ重複する画像を見つける「imagededup」のインストール

                      画像内の正確でほぼ重複する画像を見つける「imagededup」ライブラリのインストールについて解説しています。 「imagededup(https://github.com/idealo/imagededup)」は、画像コレクション内の正確でほぼ重複する発見できるPythonパッケージ,ライブラリです。 ■Python 今回のPythonのバージョンは、「3.6.8」を使用しています。(Windows10)(pythonランチャーでの確認) ■imagededupをインストールするimagededupをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。 pip install imagededup起動後、上記のコマンドを入力し、Enterキーを押します。 なお、今回は、pythonランチャーを使用しており、Pyth

                        画像内の正確でほぼ重複する画像を見つける「imagededup」のインストール
                      • [pyqtgraph] カーソルを追いかける十字線とその座標を表示するクラスを作った - Qiita

                        やりたい事 この動作をやってくれるクラスの作成 カーソルを追従する十字線の作成 ラベルにx, y座標を表示 ラベルの色はプロット線と同じになる y軸の範囲外の場合はNone表示 環境 Mac OS Python 3.8.5 PyQt5 5.15.2 PyQt5-sip 12.8.1 pyqtgraph 0.11.1 pip install PyQt5 PyQt5-sip pyqtgraph pyqtgraph.exsamples import dataclasses from typing import Union import sys from PyQt5 import QtWidgets import pyqtgraph as pg @dataclasses.dataclass class CursorCrossHairLabel(object): """カーソルを追従する十字線を作成

                          [pyqtgraph] カーソルを追いかける十字線とその座標を表示するクラスを作った - Qiita
                        • openai.log を使ってLlamaIndexからOpenAIへのAPIリクエストの内容を見てみる

                          openaiのソースを読んでいて、OpenAIへのAPIリクエストの内容をログで確認できそうなことに気が付いたので、試してみる。 サンプルとする学習元テキストやPythonソースコードは前回の私のスクラップからそのまま持ってくる。 $ pip show openai langchain llama_index Name: openai Version: 0.27.8 Summary: Python client library for the OpenAI API Home-page: https://github.com/openai/openai-python Author: OpenAI Author-email: support@openai.com License: Location: /home/ubuntu/.local/lib/python3.11/site-package

                            openai.log を使ってLlamaIndexからOpenAIへのAPIリクエストの内容を見てみる
                          • 【Python】定数管理のための、値の追加・変更を不可にするクラスを実装する - yiskw note

                            概要 機械学習の実験を回していると、しばしば複数の定数を管理したくなることがあります。(例えば、実験を回すマシンごとのデータセットのパスなど) Pythonでは、他のプログラミング言語のconstのような定数がサポートされていません。 PEP8の慣例に従って、大文字とアンダースコアで命名して定数を表す変数を作成したとしても、 それらは基本的に外部から書き換え可能で、意図しない変数の変更が起きてしまいます。 そこで今回は、Pythonで定数を管理するためのクラスを作成してみました。 その定数はクラス変数として管理され、クラス変数の追加や変更はできないようになっております。 そのため、定数の意図しない書き換えは発生せず、バグを防ぐことが可能です。 もし他に良い方法があれば、コメントにて教えていただけると幸いです。 概要 実装の方針 実装 dataclassとの違い 参考 実装の方針 定数を管理

                              【Python】定数管理のための、値の追加・変更を不可にするクラスを実装する - yiskw note
                            • Streamlitを使った数理最適化ダッシュボードの構築|株式会社JDSC

                              こんにちは。JDSCデータサイエンティストの横田です。普段はDemand Insightという需要予測や数理最適化を活かしたプロダクトの開発に従事しています。 はじめにデータサイエンティストとして仕事をするにあたって新しいアイディアや手法を創り出し実現していくといった取り組みは当然重要ですが、それらが結局なんの役に立つのかを説明可能な形で示していくのも同じくらい大きなミッションであると考えています。 データサイエンティスト間であれば手法については数式、結果については各種メトリクス/グラフや出力されたテキストをベースに意思疎通が取れます。ただ、Biz-Devの同僚やクライアントにそれらだけですべてを理解してもらうのはなかなかの無理筋です。 そこで本記事ではごちゃごちゃ議論するよりも動くものを見せちゃったほうが早いという思想のもと、 簡単にUIやダッシュボードを作成できるライブラリStream

                                Streamlitを使った数理最適化ダッシュボードの構築|株式会社JDSC
                              • [解決!Python]データクラスを定義するには

                                dataclassesモジュールのdataclassデコレーターを使って、クラスの定義でさまざまな特殊メソッドを自動的に生成する方法を紹介する。 from dataclasses import dataclass @dataclass class Person:  # クラスのフィールド(属性)は型アノテーションを用いて指定 name: str height: float weight: float def hello(self): print(f'hello {self.name}')  # メソッドも定義できる p = Person('kawasaki', 180, 72) p.hello()  # hello kawasaki # 文字列化 repr(p)  # "Person(name='kawasaki', height=180, weight=72)" # 同値性の比較 p2

                                  [解決!Python]データクラスを定義するには
                                • TDnetから適時開示ダウンロードしてくる方法 - Qiita

                                  適時開示をpdf形式でダウンロードしてくるスクリプトになります。このコードはやのしん氏が提供しているAPIを使用しています。使用する場合は、負荷がかからないように常識的な利用をお願いします。 注意 このAPIは個人運営のため急に公開終了する場合があります。 Google Colaboratoryでも動作しますが、一ヶ月分のダウンロードには15時間ほどかかるため、proでない限りタイムアウトすると思われます。configは以下のように設定します。 { "max_retries": 5, "download_delay": [6, 15], "url_template": "https://webapi.yanoshin.jp/webapi/tdnet/list/{start_date}-{end_date}.json?limit=10000", "config_file": "path/to

                                    TDnetから適時開示ダウンロードしてくる方法 - Qiita
                                  • MinecraftサーバをAWSで立ててみた #2 - Qiita

                                    . ├── Pipfile ├── Pipfile.lock ├── README.md ├── app.py # mainのソースファイル ├── cdk.json ├── cdk.out/ # Cfnのファイル出力先 ├── docs/ # README.md関連のドキュメント格納用 │ ├── minecraft_server/ │   ├── resources/ # リソースごとの定義ファイルを格納 │   │   ├── abstract/ │   │   │   └── resource.py │   │   ├── ec2.py │   │   ├── ... │   └── stacks/ # スタックごとの定義ファイルを格納 │   ├── ec2_stack.py │   ├── ... ├── requirements-dev.txt ├── requirement

                                      MinecraftサーバをAWSで立ててみた #2 - Qiita
                                    • MetaのThreads(スレッズ)用非公式Pythonクライアント「threads-py」のインストール

                                      MetaのThreads(スレッズ)用非公式Pythonクライアント「threads-py」のインストールについて解説します。 「threads-py(https://github.com/junhoyeo/threads-py)」は、Meta のThreads(スレッズ)用リバース エンジニアリングされたPython クライアント。なお、リバース エンジニアリングとは、主にソフトウェアなどの製品やシステムを分析し、それらの内部構造や仕組みを解明するプロセスである。 ■Python 今回のPythonのバージョンは、「3.9.9」を使用しています。(Windows11)(pythonランチャーでの確認) ■threads-pyをインストールするthreads-pyをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。

                                        MetaのThreads(スレッズ)用非公式Pythonクライアント「threads-py」のインストール
                                      • PEP557 dataclassの仕組みを解説する - Qiita

                                        TL;DR dataclassすごくいいよ 手書きで書いたclassと遜色ないよ これからdataclassをベースにしたライブラリが出てきそう dataclassとは? dataclassはpython 3.7で追加された新しい標準ライブラリ。簡単に説明するとclassに宣言に@dataclassデコレータを付けると、__init__, __repr__, __eq__, __hash__といった所謂dunder(double underscoreの略。日本語だとダンダーと読むのかな)メソッドを生成してくるライブラリ。これを使うと面倒なクラスの定義を大幅に短縮できたり、下手な実装より高速だったりする。ここで紹介した以外にもdataclassには色々な機能があるので、詳しくは公式ドキュメントやPython3.7からは「Data Classes」がクラス定義のスタンダードになるかもしれないを

                                          PEP557 dataclassの仕組みを解説する - Qiita
                                        • 古いGPU(CUDA CC=3.0)のためのPyTorchのビルド(Ubuntu 22.04 on MacBookPro 15" Late2013) - Note to Self by notekunst

                                          CUDA, cuDNN, pytorch のいろいろなバージョンの組み合わせを試してみました。 以下の組み合わせで、一部の機能が、一応、動くようになりました。 GPU GeForce GT 750M (Compute Capability 3.0) Display Driver 418.113 (nvidia-smiによると470.129.06) CUDA 10.2 cuDNN 7.6.5 pytorch 1.9.1 torchvision 0.10.1 torchaudio 0.9.1 pytorch v0.3.1 のリリースノートには、以下の説明があります。 「バイナリから CUDA capability 3.0 と 5.0 のサポートが削除されました(今のところソースからビルドすれば動作しますが、今後のサポートは削除されます)」 https://github.com/pytorch/

                                            古いGPU(CUDA CC=3.0)のためのPyTorchのビルド(Ubuntu 22.04 on MacBookPro 15" Late2013) - Note to Self by notekunst
                                          • Django Meetup Tokyo #12

                                            Django Meetup Tokyo #12 に参加しました。 すごく良かったので感想を書こうと思います。 私とDjango 2017~2018(とあるスタートアップA) 社内の広告配信システム数値管理システム(4名のうちの一人) (先輩がdjangoマニアでmanage.pyを魔改造したり…) しかし私のメインの担当は某オンラインクレーンゲーム(php & node.js)でしたので、そちらを優先する以上チケット消費が雑で、いつもみんなに迷惑をかけていました。(えー!なるっちの担当箇所がバグだらけ!?) 2019/8 ~ 2022/3(とあるスタートアップB。倒産済み。) 社内経理システム(一から設計。それまでxlsx管理だった…) 担当は私一人 現在の会社のメイン技術 FastAPI & vue, nuxt Djangoを社内に流行らせたい野望がある 参加動機 ↑これだけ見ると結構や

                                              Django Meetup Tokyo #12
                                            • 「現場で役立つシステム設計の原則」サンプルコードをPythonで書く - 肉球でキーボード

                                              はじめに 現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法~ のJavaで書かれたサンプルコードをPythonで書いてみました。 本書はシステム設計の名著として有名で、コード・システムを綺麗に維持し続けるためのテクニックが、オブジェクト指向プログラミングの思想に基づいてまとめられています。 本記事では具体的なコードの書き方に関する部分だけ扱い、Pythonで書く場合はどうすればいいのかに注目します。 本書の中では実際の現場での設計方法や、コード設計の背景にあるドメインモデルなどの概念も紹介されていますが、本記事では触れません。 より設計について学びたい方は、本書を読むことをお勧めします。 本文中コード:https://github.com/nsakki55/system-architecture-principles-python 1章 点在してるロジックを

                                                「現場で役立つシステム設計の原則」サンプルコードをPythonで書く - 肉球でキーボード
                                              • SQL クエリ (on Treasure Workflow) の単体テストを少ない手間で実現している話 - KADOKAWA Connected Engineering Blog

                                                Integrated Data Service 部の中野 (takamoto) です。現在は主にデータプラットフォーム上のデータパイプラインの開発・運用をメインで担当しています。 私の所属しているチームでは Snowflake を中心に構築されたデータパイプラインを主に管理していますが、 Treasure Data CDP を中心としたものについても管理しています。この Treasure Data CDP を中心としたデータパイプラインは規模がそれほど大きくはないこともあり、現在は素朴に Treasure Workflow から SQL (Presto) クエリを実行する形で構築されています。 今回は、こちらのデータパイプラインで行っている ELT 処理のロジックに対して、どのような構成で単体テストを行っているかについて紹介します。 前置き: ELT 処理の品質担保について ELT 処理に

                                                  SQL クエリ (on Treasure Workflow) の単体テストを少ない手間で実現している話 - KADOKAWA Connected Engineering Blog
                                                • 【AutoML】AzureAutoMLをpythonから操作してみる【python】 - Qiita

                                                  adal==1.2.7 applicationinsights==0.11.10 argcomplete==2.0.0 attrs==22.1.0 azure-common==1.1.28 azure-core==1.25.0 azure-graphrbac==0.61.1 azure-identity==1.7.0 azure-mgmt-authorization==2.0.0 azure-mgmt-containerregistry==10.0.0 azure-mgmt-core==1.3.2 azure-mgmt-keyvault==10.1.0 azure-mgmt-resource==21.1.0 azure-mgmt-storage==20.0.0 azure-storage-blob==12.9.0 azure-storage-queue==12.4.0 azureml-au

                                                    【AutoML】AzureAutoMLをpythonから操作してみる【python】 - Qiita
                                                  • faster-whisper(Whisper-Large-V3)で字幕(srt)をいい感じに作る

                                                    この記事で、faster-whisperを使って。Whisper-Large-V3で音声文字起こしをして。事前に指定した用語変換やフィラーワードの削除等をした上でセグメントをいい感じに再構築してSRTファイルとして出力するPythonスクリプトを紹介します 目次 はじめに 環境構築・使用方法 各処理の解説 用語辞書の読み込み、モデルの初期化 文字起こし( transcribe_audio() ) 用語の置換処理( replace_terms() ) srt化( generate_srt_segments() ) & 保存 結論 1 はじめに 背景 Youtubeの字幕用にWhisper V3を使おうと思ったのですが、デフォルトのWhisperの出力だと「フィラーワード( あー や ええと など )を含む」「セグメントの粒度が大きい(画面に納まりきらない)」「専門用語を間違える」等が発生し使

                                                      faster-whisper(Whisper-Large-V3)で字幕(srt)をいい感じに作る
                                                    • 読書ログ | 『ロバストPython』14章、Pydanticのdataclassデコレータに切り替えるだけで実行時バリデーション追加!バリデータを書いて不変式を表現!なんて便利なの! - nikkie-ftnextの日記

                                                      はじめに PrayForKyoani、nikkieです。 久しぶりの『ロバストPython』読書ログ。 将来の開発者に意図を伝えるPythonの書き方が指南された(議論のための)本です。 Pydanticの関係1で14章を読みました。 目次 はじめに 目次 前回の『ロバストPython』! 14章 pydanticによる実行時型チェック 実行時型チェック TypedDictの場合 Pydanticが提供する実行時型チェックによる解決 指南された実行時型チェック 終わりに 前回の『ロバストPython』! 発売当初、いくつか読書ログを書きました。 『ロバストPython』読み始めました 📘「あなたの書くPython、将来の開発者に意図、伝えていますか?」 私(Python歴5年)「すいませんでしたあああ!🙇‍♂️ やり方マジで教えてください」 - nikkie-ftnextの日記 読書ロ

                                                        読書ログ | 『ロバストPython』14章、Pydanticのdataclassデコレータに切り替えるだけで実行時バリデーション追加!バリデータを書いて不変式を表現!なんて便利なの! - nikkie-ftnextの日記
                                                      • 【python】dataclassでお手軽引数型チェック - Qiita

                                                        はじめに DDDでコード書く練習していたときに、ValueObjectの型チェック方法を試行錯誤したのでその時のメモ Qiitaの記事練習として(初投稿)。 結論 __post_init__()で初期化時の処理がかけるので、ここで型チェックを実行 isinstanceで型チェック self.__annotations__から期待値の型を取得する dataclasses.asdict(self)でインスタンスをdictに変換。これをisinstanceにかける。 dataclassとは? init()を自動生成してくれる。 __init__()に引数を入れて、self.hoge=arg_hogeとかする必要ない。 ValueObjectを生成するのに適している。 普通の書き方

                                                          【python】dataclassでお手軽引数型チェック - Qiita
                                                        • テスタビリティを高めるために意識していること - 電通総研 テックブログ

                                                          こんにちは。X イノベーション本部 AI トランスフォーメーションセンター 所属の山田です。 本記事は電通総研 Advent Calendar 2024の 12 月 17 日の記事です。 はじめに 私達は普段、Python を使ってアプリケーション開発をしています。 本記事では、チームでアプリケーション開発を進めていく中でテスタビリティを上げるために意識していることを紹介したいと思います。 なおコード例は Python ではありますが、採用言語に関わらず品質を高めたいと考えているエンジニアやリーダーにとって参考になる内容を目指しました。 テスタビリティとはなにか 「テスタビリティ」はプロダクションコードをどれだけ容易にテストできるかを指します。 テスタビリティが低いコードはユニットテストや統合テストの作成に時間がかかるだけでなく、コードのメンテナンス性が低下しデバッグ、新機能の追加が難しく

                                                            テスタビリティを高めるために意識していること - 電通総研 テックブログ
                                                          • Rustでは「所有権」が足かせになるリストの実装、その解決策とは

                                                            Rustにはメモリー安全性を担保するために「所有権」という仕組みがある。しかし所有権は、いくつかのデータ構造の実装において障害になることがある。代表的なのが単方向リストだ。 この問題に対処するには、Rustに備わっている「スマートポインター」という機能を利用する。スマートポインターはもともとC++で導入された概念で、メモリーを自動で管理する機能を持つ。特に特徴的なのがメモリーリソースの自動解放機能で、これを利用すると安全にメモリー管理できる。 RustにおけるスマートポインターもC++のスマートポインターと同様に、安全なメモリー操作を行うための機能を備えている。Rustではよく使う機能なので、ぜひマスターしてほしい。 スマートポインターを使った単方向リストの実装 単方向リストはいわゆる「連結リスト(リンクトリスト)」の一種だ。各要素が自身のデータとともに、次の要素に対するリンクを持っている

                                                              Rustでは「所有権」が足かせになるリストの実装、その解決策とは
                                                            • 【Python】データクラスを使って引数を簡単にする【dataclass】

                                                              データクラス データを格納するのに特化したクラスです。また、データクラスを使用するには、以下のようにimportします。 from dataclass import dataclass クラスにデコレーターを添えるだけ dataclassは、使用したいクラスの一行上に「@dataclass」を添えるだけで使えます。つまり、デコレーターです。 from dataclasses import dataclass @dataclass class XXXX: フィールド名:型 フィールド名:型 また、「フィールド:型」と記述すれば、イニシャライザでフィールドに引数の値を自動で設定します。 class XXXX: フィールド名:型 フィールド名:型 本来、Pythonで関数を記述するときは、以下のように関数の引数「name」をフィールド(self.name)に設定します。 # code1-1 cl

                                                                【Python】データクラスを使って引数を簡単にする【dataclass】
                                                              • 【感想&メモ】 Effective Python 2nd Edition - われがわログ

                                                                Effective Pythonの第二版(Effective Python: 90 Specific Ways to Write Better Python)を読んだので、簡単な感想とメモを残しておく。 Effective Python: 90 Specific Ways to Write Better Python (2nd Edition) (Effective Software Development Series) 作者:Brett Slatkin出版社/メーカー: Addison-Wesley Professional発売日: 2019/11/25メディア: ペーパーバック 感想 業務でシミュレーションするときはPythonを使っているのだけれど、 もっと良い書き方がないかと思ってEffective Pythonの第二版(洋書)を読んだ。 第二版は2019月11日発売。Pytho

                                                                  【感想&メモ】 Effective Python 2nd Edition - われがわログ
                                                                • pydanticを用いて@dataclassの型を堅牢にする - Qiita

                                                                  from dataclasses import dataclass @dataclass class User: name: str age: int def main(): user_info = User(20, "Hoge") print(user_info) # User(name=20, age='Hoge') print(type(user_info.name)) # <class 'int'> print(type(user_info.age)) # <class 'str'> if __name__ == "__main__": main() なぜ強制力がないかというと、この型アノテーションは型のヒントでしかなく、言うのであればコメントと同様です2。 仕様だとしても、せっかく定義した型が違う型に書き換わるのは解せない… そういう方におすすめなのがpydanticです! 型ア

                                                                    pydanticを用いて@dataclassの型を堅牢にする - Qiita
                                                                  • iLQR全解説-基礎理論編-

                                                                    \gdef\argmax{\mathop{\rm argmax}\limits} \gdef\argmin{\mathop{\rm argmin}\limits} 本記事は東京大学の村山裕和(https://www.linkedin.com/in/裕和-村山-9b42252b1/ )による寄稿です。 はじめに 前の自分の記事(https://zenn.dev/takuya_fukatsu/articles/74bfc9b4af5ecb )でも書いた通り、今回からiLQR(DDP)を解説します。まずはiLQRの基となるLQR、及び更にその基となるベルマン方程式から、最後はALTROというiLQRのライブラリで使用されているアルゴリズムまで、iLQRの基礎となる部分を網羅出来るように書いて行く予定です。尚、離散システムもしくは連続システムを離散化した場合について扱います。 複数回に渡りますので

                                                                      iLQR全解説-基礎理論編-
                                                                    • SakanaAIのAIサイエンティストで独自の実験テンプレートを作ってみる(実験中)|shi3z

                                                                      SakanaAIが昨日発表したAIサイエンティストでは、「こういう研究をしてみなせい」とAI科学者に指示できる。とりあえずサンプルは動かせるようになったので、自分で独自の実験テンプレートを作ってAI科学者に暇さえあれば研究させたい。 まず、テンプレートは「templates」というディレクトリにある。 とりあえず一番簡単なMNISTをやりたかったので、MNISTでテンプレートを作ってみる。 nanoGPTのテンプレートをコピーして、それぞれのファイルを変更する。 重要なファイルは以下 expereiment.py 実験の本体 --out_dirを受け取り、学習した結果を--out_dirに出力する plot.py 実験結果のグラフなどを出力する seed_ideas.json 元になるアイデアを指定する prompt.json 実験に関するプロンプトを指定する まずはexperiment.

                                                                        SakanaAIのAIサイエンティストで独自の実験テンプレートを作ってみる(実験中)|shi3z
                                                                      • JSONとの間でデータクラスを簡単にシリアル化できる「dataclasses-json」のインストール

                                                                        JSONとの間でデータクラスを簡単にシリアル化できる「dataclasses-json」のインストールについて解説しています。 「dataclasses-json(https://github.com/lidatong/dataclasses-json,https://github.com/lidatong/dataclasses-json)」は、JSONとの間でデータクラスをエンコードおよびデコードすることができるライブラリです。 ■Python 今回のPythonのバージョンは、「3.7.9」を使用しています。(Windows10)(pythonランチャーでの確認) ■dataclasses-jsonをインストールするdataclasses-jsonをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。 pip i

                                                                          JSONとの間でデータクラスを簡単にシリアル化できる「dataclasses-json」のインストール
                                                                        • 2年運用しているアプリ行動ログの自動生成システム | CyberAgent Developers Blog

                                                                          ABEMA ネイティブチームの石川(@rinov)です。 今回はABEMAで2年運用しているアプリ行動ログの自動生成システムについて紹介します。 ネイティブチームはアジャイル開発を取り入れ、現在では週に1度のリリースサイクルで機能の改善や追加をしています。 このように日々変化がある中で、施策が狙い通りの結果になっているか、改善した部分がしっかりとKPIにも反映されているかを確かめるために、ユーザーの行動ログを収集し、分析に活用しています。 目次 アプリ行動ログとは 行動ログの課題 課題の解決 (自動化) おわりに アプリ行動ログとは アプリ行動ログとは、サービスがどのように利用されているかを把握するために、ユーザーの操作や端末の状態などを集計し、ビジネス分析やサービスの改善・向上に役立てるためのソリューションになります。 ABEMAでは分析にGoogle Analytics for Fir

                                                                            2年運用しているアプリ行動ログの自動生成システム | CyberAgent Developers Blog
                                                                          • 【AWSコスト削減の道 for ステージング環境】 Fargate編 - Qiita

                                                                            【AWSコスト削減の道 for 開発環境】 Fargate編 結論 FargateをFargate Spotに変更及び使用していない時間に自動停止処理を設定することで、通常料金の 約70% を低下 前提 本記事で記載している料金については、2022/02/13時点の料金を表示している 料金は「東京リージョン」の料金を表示している Fargateのリソース構築についてはTerraformを用いてリソース構築をしている Fagateについてある程度理解している Fargate Spotについてある程度理解している 詳細は参考URLを参照 Fargateのスペックは以下としている vCPU: 2 メモリ(GB): 4 本記事内ではタスク数を1としている 目次 前提 概要 背景 本記事内の利用技術について 料金について Fargate Spotの指定方法について 起動・停止方法について 次回記事に

                                                                              【AWSコスト削減の道 for ステージング環境】 Fargate編 - Qiita
                                                                            • 参照カウントをうまく使い、Rustコンパイラーの厳しいチェックを回避

                                                                              前回は、所有権の問題に対処するためのスマートポインター「Box」を紹介した。今回は、Boxと並んでよく使われるスマートポインター「Rc」、すなわち「参照カウント」について見ていこう。 ノードを共有するリストを考える 前回は単方向リストの実装を例にBoxを解説した。今度は1つのノードを2つのノードから共有するリストについて考えてみよう。 まずPythonで実装してみる 前回と同様にまずPythonで実装してみよう。「node_c」として定義した変数を、「node_a」と「node_b」から指し示すようにしている。 from dataclasses import dataclass from typing import Optional @dataclass class Node: val: int next: Optional['Node'] = None node_c = Node(3)

                                                                                参照カウントをうまく使い、Rustコンパイラーの厳しいチェックを回避
                                                                              • dataclasses-json:`DataClassJsonMixin`を継承してデータクラスを定義すれば、mypyに怒られない - Qiita

                                                                                環境 Python 3.11.2 dataclasses-json 0.5.7 mypy 1.3.0 本題 @dataclass_jsonでデータクラスを定義して、dataclass_jsonが用意したfrom_dict関数などを呼び出すと、「そんな属性はない」とmypyに怒られます。 from dataclasses_json import dataclass_json, DataClassJsonMixin from dataclasses import dataclass @dataclass_json @dataclass class Task: value: int Task.from_dict({"value": 1})

                                                                                  dataclasses-json:`DataClassJsonMixin`を継承してデータクラスを定義すれば、mypyに怒られない - Qiita
                                                                                • 2024年のPythonプログラミング - Uzabase for Engineers

                                                                                  ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、本記事ではOSとしてmacOSを前提としています。 環境構築 Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba

                                                                                    2024年のPythonプログラミング - Uzabase for Engineers